{"version":3,"sources":["langs lazy /^/.//.*$/ groupOptions: {} namespace object","../node_modules/date-fns/locale lazy /^/.//.*$/ groupOptions: {} namespace object","theme.tsx","containers/common/store/slices/accountChange.tsx","containers/common/store/slices/accountCreate.tsx","containers/common/store/slices/application.tsx","utils/authUtil.tsx","dataAccess/webApi/common/apiCaller.tsx","dataAccess/webApi/dao/accountDao.tsx","dataAccess/webApi/dao/sessionSettingMstDao.tsx","containers/common/constant/classification.tsx","containers/common/store/slices/authority.tsx","containers/common/store/slices/facilityReserve.tsx","containers/common/store/slices/facilityReserveDelete.tsx","containers/common/store/slices/facilityReserveTodayConditionInput.tsx","containers/common/store/slices/facilitySearch.tsx","containers/common/store/slices/interviewReserve.tsx","containers/common/store/slices/interviewReserveDelete.tsx","containers/common/store/slices/memberAddChild.tsx","containers/common/store/slices/memberModify.tsx","containers/common/constant/commonConstant.tsx","containers/common/store/slices/systemControl.tsx","containers/common/store/slices/login.tsx","containers/common/store/slices/lotteryReserve.tsx","containers/common/store/slices/lotteryReserveCancel.tsx","containers/common/store/slices/resetPassword.tsx","containers/common/store/slices/cognitoUser.tsx","containers/common/store/slices/facilitySearchSetting.tsx","containers/common/store/index.tsx","aws-exports.js","i18n.tsx","utils/typeUtil.tsx","containers/common/constant/appUrl.tsx","dataAccess/webApi/dao/operationLogDao.tsx","utils/stringUtil.tsx","utils/dateUtil.tsx","containers/common/sessionStore.tsx","containers/common/operationLog.tsx","dataAccess/webApi/dao/controlDao.tsx","utils/objectUtil.tsx","containers/common/useControl.tsx","containers/app/appService.tsx","containers/common/constant/externalUrl.tsx","views/components/common/link.tsx","views/components/common/appFooter.tsx","views/components/common/systemDatetimeLabel.tsx","dataAccess/webApi/dao/frontErrorLogDao.tsx","containers/common/error/errorHandler.tsx","containers/common/constant/operationLog.tsx","containers/common/application.tsx","views/components/common/buttons/buttonBase.tsx","views/components/common/buttons/buttonOutlinedBase.tsx","views/components/common/buttons/buttonOutlinedBuleS.tsx","views/components/common/buttons/iconLinkButton.tsx","views/components/common/flexboxes.tsx","views/components/common/grids.tsx","views/components/common/icons/hamburgerMenuIcon.tsx","views/components/common/icons/facilitySearchIcon.tsx","views/components/common/icons/homeIcon.tsx","views/components/common/icons/logoutIcon.tsx","views/components/common/icons/myFacilityIcon.tsx","views/components/common/icons/reserveStatusCheckIcon.tsx","views/components/common/icons/usageHistoryIcon.tsx","views/components/common/listItemLink.tsx","dataAccess/webApi/dao/couponsDao.tsx","dataAccess/webApi/dao/informationsDao.tsx","dataAccess/webApi/dao/linkSettingsDao.tsx","dataAccess/webApi/dao/projectsDao.tsx","dataAccess/webApi/dao/reservationsDao.tsx","containers/home/homeService.tsx","dataAccess/webApi/dao/facilitySearchSettingMstsDao.tsx","views/components/common/sideMenuContent.tsx","views/components/common/sideMenu.tsx","views/components/common/systemLogo.tsx","views/components/common/appHeader.tsx","views/components/common/appMain.tsx","views/components/common/authenticatedGuard.tsx","views/components/common/loadingProgress.tsx","views/components/common/toastNotification.tsx","containers/account/accountService.tsx","views/components/common/bottomActionContainer.tsx","views/components/common/bottomButtonGroup.tsx","views/components/common/breakpointSwitch.tsx","views/components/common/buttons/buttonOutlinedL.tsx","views/components/common/buttons/buttonOutlinedS.tsx","views/components/common/buttons/buttonOutlinedResponsive.tsx","views/components/common/subTitle.tsx","views/components/common/icons/exclamationMarkIcon.tsx","views/components/common/inputs/form.tsx","views/components/common/dialog.tsx","views/pages/account.tsx","containers/accountChangeVerification/accountChangeVerificationService.tsx","views/components/common/buttons/buttonContainedBase.tsx","views/components/common/buttons/buttonL.tsx","containers/common/validator.tsx","utils/itemFormatUtil.tsx","views/components/common/inputs/textBoxBaseStyled.tsx","views/components/common/inputs/textBox.tsx","views/components/common/centerTitle.tsx","views/components/common/account/oneTimePasswordVerificationContent.tsx","views/components/common/transitionCheck.tsx","views/pages/accountChangeVerification.tsx","dataAccess/webApi/dao/childrenDao.tsx","containers/common/child.tsx","dataAccess/webApi/dao/facilitiesDao.tsx","containers/common/facility.tsx","containers/common/codeMaster.tsx","dataAccess/webApi/dao/areasDao.tsx","dataAccess/webApi/dao/facilityCategoriesDao.tsx","dataAccess/webApi/dao/searchFlagsDao.tsx","containers/accountConfirmation/accountConfirmationService.tsx","views/components/common/buttons/buttonS.tsx","views/components/common/inputs/radioButtonGroup.tsx","views/components/common/inputs/checkBox.tsx","views/components/accountConfirmation/childSelectDialog.tsx","views/components/common/sizeLabelBase.tsx","views/components/common/annotationLabel.tsx","views/components/common/attentionLabel.tsx","views/components/common/buttons/backButton.tsx","views/components/common/buttons/buttonOutlinedInfoBase.tsx","views/components/common/buttons/buttonOutlinedInfoL.tsx","views/components/common/buttons/buttonOutlinedWarningBase.tsx","views/components/common/buttons/buttonOutlinedWarningL.tsx","views/components/common/infoCard.tsx","views/components/common/inputs/selectNoBind.tsx","views/components/common/inputs/select.tsx","views/components/common/titleLabel.tsx","views/pages/accountConfirmation.tsx","utils/reactUtil.tsx","views/components/common/errorMessageCard.tsx","views/components/common/stepBar.tsx","views/pages/accountCreateCompletion.tsx","containers/accountCreateCompletion/accountCreateCompletionService.tsx","dataAccess/webApi/dao/categoryMstDao.tsx","containers/common/category.tsx","containers/accountCreateConfirmation/accountCreateConfirmationService.tsx","dataAccess/webApi/dao/userAccountDao.tsx","views/components/common/elevatedCard.tsx","views/pages/accountCreateConfirmation.tsx","dataAccess/webApi/dao/residenceCategoryMstDao.tsx","containers/common/residenceCategoryMst.tsx","containers/common/constant/processEnv.tsx","containers/common/location.tsx","containers/common/passwordRule.tsx","dataAccess/webApi/dao/passwordRulePublicDao.tsx","containers/accountCreateForm/accountCreateFormService.tsx","views/components/common/icons/helpIcon.tsx","views/components/common/inputs/datePickerNoBind.tsx","views/components/common/inputs/datePicker.tsx","views/components/common/inputs/telTextBox.tsx","views/pages/accountCreateForm.tsx","views/components/common/bottomButtonGroupNoWidth.tsx","views/components/common/buttons/buttonOutlinedWarningM.tsx","views/pages/accountEmailChange.tsx","containers/accountEmailChange/accountEmailChangeService.tsx","views/pages/accountTelChange.tsx","containers/accountTelChange/accountTelChangeService.tsx","containers/accountUnsubscribe/accountUnsubscribeService.tsx","views/components/common/buttons/ButtonErrorL.tsx","views/pages/accountUnsubscribe.tsx","dataAccess/webApi/dao/guideTextDao.tsx","containers/contact/contactService.tsx","dataAccess/webApi/dao/contactDao.tsx","views/pages/contact.tsx","dataAccess/webApi/dao/usageRecordsDao.tsx","utils/timeUtil.tsx","containers/common/coupon.tsx","containers/coupon/couponService.tsx","views/components/common/icons/plusCircleOutlineIcon.tsx","views/components/common/pageTitle.tsx","views/components/common/card.tsx","views/components/common/reservation/reservationCard.tsx","views/components/common/reservation/usageHistoryCard.tsx","views/components/common/tabBar.tsx","views/components/common/timeAmountContent.tsx","views/pages/coupon.tsx","views/components/common/icons/minusCircleOutlineIcon.tsx","containers/common/useReason.tsx","dataAccess/webApi/dao/useReasonDao.tsx","containers/common/constant/decodeMst.tsx","dataAccess/webApi/dao/decodeMstDao.tsx","containers/common/decodeMst.ts","containers/common/locationStatus.ts","containers/facilityDetail/facilityDetailService.tsx","views/components/common/icons/acceptAgeIcon.tsx","views/components/common/icons/acceptWebReservationIcon.tsx","views/components/common/icons/inquiryIcon.tsx","views/components/common/icons/linkIcon.tsx","views/components/common/icons/locationIcon.tsx","views/components/common/icons/postalCodeIcon.tsx","views/components/common/icons/projectIcon.tsx","views/components/common/icons/telIcon.tsx","views/components/common/icons/timeIcon.tsx","views/components/common/icons/trainIcon.tsx","views/components/common/icons/usageIcon.tsx","views/components/common/icons/walkIcon.tsx","views/components/common/image.tsx","views/components/common/imageCarousel.tsx","views/components/common/tag.tsx","containers/facilityDetail/enum.ts","containers/facilityDetail/useGenerateUsageFeesCommon.tsx","containers/facilityDetail/useUsageFeeSetting.tsx","containers/facilityDetail/useGenerateUsageFeesByAgeRegionBasedFees.tsx","containers/facilityDetail/useGenerateUsageFeesByTImeBasedFees.tsx","views/components/common/icons/moneyIcon.tsx","views/components/facilityDetail/feeItem.tsx","views/components/facilityDetail/usageFeeSetting.tsx","views/components/facilityDetail/feeNotion.tsx","views/components/common/icons/documentIcon.tsx","views/pages/facilityDetail.tsx","dataAccess/webApi/dao/usageFeeSettingDao.ts","containers/common/reservationSelection.ts","dataAccess/webApi/dao/facilityReservationsDaysDao.tsx","dataAccess/webApi/dao/facilityReservationsWeekCitizenDao.tsx","utils/promiseUtil.tsx","containers/common/getDecodeMstValue.tsx","containers/common/reservation.tsx","containers/facilityReservationSelection/facilityReservationSelectionService.tsx","containers/facilityDetailAvailability/facilityDetailAvailabilityService.tsx","dataAccess/webApi/dao/facilityReservationsWeekPublicDao.tsx","containers/common/stateHooks.tsx","views/components/common/icons/editIcon.tsx","views/components/common/icons/removeIcon.tsx","views/components/common/inputs/availabilityCalendar/selectedRangeTextBox.tsx","views/components/common/inputs/availabilityCalendar/index.tsx","views/components/common/reservationFlow/selection/dateSelection.tsx","views/components/common/reservationFlow/selection/facilityLinkedName.tsx","views/components/common/reservationFlow/selection/facilityNote.tsx","views/components/facilityReservationForm/useReasonDetailRadioGroup.tsx","views/components/facilityReservationForm/useReasonRadioGroup.tsx","views/components/common/reservationFlow/selection/useReasonSelection.tsx","views/components/facilityDetail/diagonosisSelection.tsx","views/pages/facilityDetailAvailability.tsx","containers/facilityReservationCompletion/facilityReservationCompletionService.tsx","views/components/common/completionMessageLabel.tsx","views/pages/facilityReservationCompletion.tsx","containers/common/projectMst.tsx","containers/common/constant/projectMst.ts","containers/facilityReservationConfirmation/facilityReservationConfirmationService.tsx","views/components/common/reservationDetail/reservationDetailParts.tsx","views/components/common/lotteryReservationDetail/lotteryReservationDetailParts.tsx","views/components/common/reservationDetail/byChildDetailContent.tsx","views/components/common/reservationDetail/childContent.tsx","views/components/common/reservationDetail/commonDetailContent.tsx","views/components/common/reservationDetail/parentContent.tsx","views/components/common/reservationDetail/basicDetailContent.tsx","views/components/common/reservationDetail/reservationDetailGItems.tsx","views/pages/facilityReservationConfirmation.tsx","containers/facilityReservationDelete/facilityReservationDeleteService.tsx","views/components/common/alertCard.tsx","views/pages/facilityReservationDelete.tsx","containers/facilityReservationDeleteConfirmation/facilityReservationDeleteConfirmationService.tsx","views/pages/facilityReservationDeleteConfirmation.tsx","containers/facilityReservationDetail/facilityReservationDetailService.tsx","views/components/common/inputs/timeAmountSelect.tsx","views/components/facilityReservationDetail/couponUsageDialog.tsx","containers/common/constant/couponSetting.tsx","views/pages/facilityReservationDetail.tsx","dataAccess/webApi/dao/userDao.tsx","containers/common/user.tsx","containers/common/getFacilityMailSetting.tsx","dataAccess/webApi/dao/sendingFlagMailSettingDao.tsx","containers/facilityReservationForm/facilityReservationFormService.tsx","views/components/facilityReservationForm/fields/common/fieldTitle.tsx","views/components/facilityReservationForm/fields/common/yesNoField.tsx","views/components/facilityReservationForm/fields/lunchField.tsx","views/components/facilityReservationForm/fields/snackField.tsx","views/components/facilityReservationForm/fields/cancelWaitField.tsx","views/components/common/inputs/timePicker.tsx","containers/common/error/errorText.tsx","views/components/facilityReservationForm/fields/goingTimesField.tsx","views/components/facilityReservationForm/fields/preferenceProvisionCertificateField.tsx","views/components/facilityReservationForm/fields/common/textField.tsx","views/components/facilityReservationForm/fields/common/selectBoxField.tsx","views/components/facilityReservationForm/fields/useReasonField.tsx","views/components/facilityReservationForm/fields/common/preserveLineText.tsx","views/components/facilityReservationForm/fields/common/consentCheckField.tsx","views/components/facilityReservationForm/commonFormUnit.tsx","views/components/facilityReservationForm/fields/diagonosisField.tsx","views/components/common/inputs/checkBoxSelections.tsx","views/components/facilityReservationForm/fields/common/checkBoxField.tsx","views/components/facilityReservationForm/fields/symptomField.tsx","views/components/facilityReservationForm/fields/epidemicField.tsx","views/components/facilityReservationForm/fields/medicineField.tsx","views/components/common/inputs/numberBox.tsx","views/components/facilityReservationForm/fields/common/decimalTypeField.tsx","views/components/facilityReservationForm/fields/bodyTempatureField.tsx","views/components/facilityReservationForm/fields/febrileSeizuresField.tsx","dataAccess/webApi/dao/reservationAttachmentDao.tsx","views/components/facilityReservationForm/fields/medicalDocUploadField.tsx","views/components/facilityReservationForm/fields/medicalDocField.tsx","views/components/facilityReservationForm/fields/emergencyActionField.tsx","views/components/facilityReservationForm/fields/heightField.tsx","views/components/facilityReservationForm/fields/weightField.tsx","views/components/facilityReservationForm/fields/common/integerTypeField.tsx","views/components/facilityReservationForm/fields/eatingMethodField.tsx","views/components/facilityReservationForm/fields/foodAllergyField.tsx","views/components/facilityReservationForm/fields/eatingAbilityField.tsx","views/components/facilityReservationForm/fields/actionsField.tsx","views/components/facilityReservationForm/fields/toiletAbilityField.tsx","views/components/facilityReservationForm/fields/considerationsField.tsx","views/components/facilityReservationForm/fields/reductionTypeField.tsx","views/components/facilityReservationForm/fields/attachedDocUploadField.tsx","views/components/facilityReservationForm/fields/attachedDocField.tsx","views/components/facilityReservationForm/fields/facilityInputsField.tsx","views/components/facilityReservationForm/byChildFormUnit.tsx","views/components/facilityReservationForm/fields/noteField.tsx","views/pages/facilityReservationForm.tsx","views/components/common/inputs/checkBoxesGroup.tsx","views/components/common/reservationFlow/selection/childName.tsx","views/components/common/reservationFlow/selection/childSelection.tsx","views/components/common/reservationFlow/selection/diagonosisSelection.tsx","views/components/common/reservationFlow/selection/bottomButtons.tsx","views/components/common/reservationFlow/reservationStepBar.tsx","views/pages/facilityReservationSelection.tsx","containers/facilitySearchCondition/facilitySearchConditionService.tsx","views/components/common/icons/searchGlassIcon.tsx","views/components/common/inputs/toggleButtonGroup.tsx","views/pages/facilitySearchCondition.tsx","containers/facilitySearchResult/facilitySearchResultService.tsx","views/components/common/accordionCard.tsx","views/components/common/icons/arrowUpIcon.tsx","views/components/common/buttons/scrollTopFab.tsx","views/components/common/icons/currentLocationIcon.tsx","views/components/common/icons/numberPin.tsx","views/components/common/facilityMap.tsx","views/components/common/lazyMount.tsx","views/components/common/searchConditionTag.tsx","views/components/common/facilityCard.tsx","views/components/facilitySearchResult/resultBox.tsx","views/pages/facilitySearchResult.tsx","dataAccess/webApi/dao/lotteryReservationsDao.tsx","containers/common/lotteryReservation.tsx","containers/facilityLotteryReservationForm/facilityLotteryReservationFormService.tsx","views/components/facilityLotteryReservationForm/fields/common/yesNoField.tsx","views/components/facilityLotteryReservationForm/fields/lunchField.tsx","views/components/facilityLotteryReservationForm/fields/snackField.tsx","views/components/facilityLotteryReservationForm/fields/preferenceProvisionCertificateField.tsx","views/components/facilityLotteryReservationForm/fields/common/selectBoxField.tsx","views/components/facilityLotteryReservationForm/fields/useReasonField.tsx","views/components/facilityLotteryReservationForm/fields/cancelWaitField.tsx","views/components/facilityLotteryReservationForm/fields/goingTimesField.tsx","views/components/facilityLotteryReservationForm/fields/common/preserveLineText.tsx","views/components/facilityLotteryReservationForm/fields/common/consentCheckField.tsx","views/components/facilityLotteryReservationForm/commonFormUnitForLottery.tsx","views/components/facilityLotteryReservationForm/fields/diagonosisField.tsx","views/components/facilityLotteryReservationForm/fields/common/checkBoxField.tsx","views/components/facilityLotteryReservationForm/fields/symptomField.tsx","views/components/facilityLotteryReservationForm/fields/epidemicField.tsx","views/components/facilityLotteryReservationForm/fields/medicineField.tsx","views/components/facilityLotteryReservationForm/fields/common/decimalTypeField.tsx","views/components/facilityLotteryReservationForm/fields/bodyTempatureField.tsx","views/components/facilityLotteryReservationForm/fields/febrileSeizuresField.tsx","dataAccess/webApi/dao/lotteryReservationAttachmentDao.tsx","views/components/facilityLotteryReservationForm/fields/medicalDocUploadField.tsx","views/components/facilityLotteryReservationForm/fields/common/fieldTitle.tsx","views/components/facilityLotteryReservationForm/fields/medicalDocField.tsx","views/components/facilityLotteryReservationForm/fields/emergencyActionField.tsx","views/components/facilityLotteryReservationForm/fields/heightField.tsx","views/components/facilityLotteryReservationForm/fields/weightField.tsx","views/components/facilityLotteryReservationForm/fields/common/integerTypeField.tsx","views/components/facilityLotteryReservationForm/fields/eatingMethodField.tsx","views/components/facilityLotteryReservationForm/fields/foodAllergyField.tsx","views/components/facilityLotteryReservationForm/fields/eatingAbilityField.tsx","views/components/facilityLotteryReservationForm/fields/actionsField.tsx","views/components/facilityLotteryReservationForm/fields/toiletAbilityField.tsx","views/components/facilityLotteryReservationForm/fields/common/textField.tsx","views/components/facilityLotteryReservationForm/fields/considerationsField.tsx","views/components/facilityLotteryReservationForm/fields/reductionTypeField.tsx","views/components/facilityLotteryReservationForm/fields/attachedDocUploadField.tsx","views/components/facilityLotteryReservationForm/fields/attachedDocField.tsx","views/components/facilityLotteryReservationForm/fields/siblingsLotteryResultReferenceFlagField.tsx","views/components/facilityLotteryReservationForm/fields/facilityInputsField.tsx","views/components/facilityLotteryReservationForm/byChildFormUnitForLottery.tsx","views/pages/facilityLotteryReservationForm.tsx","dataAccess/webApi/dao/interviewsDao.tsx","dataAccess/webApi/dao/acceptNoticeDao.tsx","containers/reservationStatusList/reservationStatusListService.tsx","containers/facilityLotteryReservationCompletion/facilityLotteryReservationCompletionService.tsx","containers/facilityLotteryReservationConfirmation/facilityLotteryReservationConfirmationService.tsx","dataAccess/webApi/dao/lotterySettingsDao.tsx","views/components/common/lotteryReservationDetail/byChildDetailContent.tsx","views/components/common/lotteryReservationDetail/childContent.tsx","views/components/common/lotteryReservationDetail/commonDetailContent.tsx","views/components/common/lotteryReservationDetail/parentContent.tsx","views/components/common/lotteryReservationDetail/basicDetailContent.tsx","views/components/common/lotteryReservationDetail/lotteryReservationDetailGItems.tsx","views/pages/facilityLotteryReservationConfirmation.tsx","views/pages/facilityLotteryReservationCompletion.tsx","views/pages/facilityLotteryReservationDetail.tsx","containers/facilityLotteryReservationDetail/facilityLotteryReservationDetailService.tsx","containers/facilityLotteryReservationCancel/facilityLotteryReservationCancelService.tsx","views/pages/facilityLotteryReservationCancel.tsx","containers/facilityLotteryReservationCancelConfirmation/facilityLotteryReservationCancelConfirmationService.tsx","views/pages/facilityLotteryReservationCancelConfirmation.tsx","containers/facilityLotteryReservationUpdateSelection/facilityLotteryReservationUpdateSelectionService.tsx","views/pages/facilityLotteryReservationUpdateSelection.tsx","views/components/common/icons/externalLinkIcon.tsx","containers/faq/faqService.tsx","dataAccess/webApi/dao/faqDao.tsx","views/pages/faq.tsx","views/components/common/cityFacilityInformationCard.tsx","views/components/common/gridItems.tsx","views/pages/home.tsx","dataAccess/webApi/dto/accountDto.tsx","containers/common/transition.tsx","containers/identityEmailVerification/identityEmailVerificationService.tsx","views/components/common/identityRedirect.tsx","views/pages/identityEmailVerification.tsx","containers/identityVerification/identityVerificationService.tsx","views/pages/identityVerification.tsx","containers/information/informationService.tsx","views/pages/information.tsx","containers/informationDetail/informationDetailService.tsx","views/components/common/icons/accountIcon.tsx","views/components/information/attachmentLinks.tsx","dataAccess/webApi/dao/informationAttachmentDao.tsx","views/pages/informationDetail.tsx","views/pages/interviewReservationCompletion.tsx","containers/interviewReservationCompletion/interviewReservationCompletionService.tsx","containers/common/interview.tsx","containers/interviewReservationConfirmation/interviewReservationConfirmationService.tsx","views/pages/interviewReservationConfirmation.tsx","containers/interviewReservationDetail/interviewReservationDetailService.tsx","views/components/common/reservationDetail/interviewDetailContent.tsx","views/pages/interviewReservationDetail.tsx","views/components/common/member/unitTitle.tsx","views/components/common/member/childAllergyUnit.tsx","views/components/common/member/childDiseaseUnit.tsx","views/components/common/member/childEatingUnit.tsx","views/components/common/member/childFebrileSeizureUnit.tsx","dataAccess/webApi/dao/childrenHospitalAdmissionDao.tsx","views/components/common/member/childHospitalAdmissionUnit.tsx","views/components/common/member/childMedicalHistoryUnit.tsx","views/components/common/member/childPredispositionUnit.tsx","views/components/common/member/childSymptomUnit.tsx","views/components/common/member/childVaccinationUnit.tsx","containers/interviewReservationForm/interviewReservationFormService.tsx","views/components/interviewReservationForm/fields/tempFileUploadFiled.tsx","dataAccess/webApi/dao/interviewAttachmentDao.tsx","views/components/interviewReservationForm/fields/tempFileField.tsx","views/pages/interviewReservationForm.tsx","containers/interviewReservationSelection/interviewReservationSelectionService.tsx","dataAccess/webApi/dao/interviewReservationsWeekCitizenDao.tsx","dataAccess/webApi/dao/interviewReservationsDaysDao.tsx","views/pages/interviewReservationSelection.tsx","containers/interviewReservationDelete/interviewReservationDeleteService.tsx","views/pages/interviewReservationDelete.tsx","containers/interviewReservationDeleteConfirmation/interviewReservationDeleteConfirmationService.tsx","views/pages/interviewReservationDeleteConfirmation.tsx","containers/login/loginService.tsx","views/components/common/buttons/buttonM.tsx","views/components/common/successStatusLabel.tsx","views/pages/login.tsx","containers/forgotPassword/forgotPasswordService.tsx","views/pages/forgotPassword.tsx","containers/resetPassword/resetPasswordService.tsx","views/pages/resetPassword.tsx","containers/newPassword/newPasswordService.tsx","views/pages/newPassword.tsx","views/components/common/icons/downloadIcon.tsx","views/pages/manual.tsx","containers/common/messageConverter.tsx","views/components/common/member/childFamilyHospitalUnit.tsx","views/components/common/member/childNormallyUsedFacilityUnit.tsx","views/components/common/member/childUsuallyMedicinesUnit.tsx","dataAccess/webApi/dao/childrenDiseaseTestDao.tsx","views/components/common/member/childDiseaseTestUnit.tsx","views/components/common/member/childTreatmentUnit.tsx","containers/member/memberService.tsx","dataAccess/webApi/dao/reductionsDao.tsx","views/components/common/member/childContent.tsx","views/components/common/member/userContent.tsx","views/components/member/reductionsDialog.tsx","views/pages/member.tsx","views/pages/memberAddChild.tsx","containers/memberAddChild/memberAddChildService.tsx","containers/memberAddConfirmationChild/memberAddConfirmationChildService.tsx","views/pages/memberAddConfirmationChild.tsx","containers/memberModifyChild/memberModifyChildService.tsx","views/pages/memberModifyChild.tsx","views/components/common/memberModifyChild/flexibleCheckBoxesUnit.tsx","dataAccess/webApi/dao/childrenAllergyDao.tsx","containers/memberModifyChildAllergy/memberModifyChildAllergyService.tsx","views/pages/memberModifyChildAllergy.tsx","containers/memberModifyChildFamilyHospital/memberModifyChildFamilyHospitalService.tsx","views/pages/memberModifyChildFamilyHospital.tsx","views/components/common/inputs/textBoxAfterText.tsx","dataAccess/webApi/dao/childrenFebrileSeizureDao.tsx","containers/memberModifyChildFebrileSeizure/memberModifyChildFebrileSeizureService.tsx","views/pages/memberModifyChildFebrileSeizure.tsx","views/components/common/buttons/buttonOutlinedWarningS.tsx","containers/memberModifyChildHospitalAdmission/memberModifyChildHospitalAdmissionService.tsx","views/pages/memberModifyChildHospitalAdmission.tsx","dataAccess/webApi/dao/childrenMedicalHistoryDao.tsx","containers/memberModifyChildMedicalHistory/memberModifyChildMedicalHistoryService.tsx","views/pages/memberModifyChildMedicalHistory.tsx","containers/memberModifyChildNormallyUsedFacility/memberModifyChildNormallyUsedFacilityService.tsx","views/pages/memberModifyChildNormallyUsedFacility.tsx","containers/memberModifyChildUsuallyMedicines/memberModifyChildUsuallyMedicinesService.tsx","views/pages/memberModifyChildUsuallyMedicines.tsx","dataAccess/webApi/dao/childrenDiseaseDao.tsx","containers/memberModifyChildDisease/memberModifyChildDiseaseService.tsx","views/pages/memberModifyChildDisease.tsx","dataAccess/webApi/dao/childrenVaccinationDao.tsx","containers/memberModifyChildVaccination/memberModifyChildVaccinationService.tsx","views/pages/memberModifyChildVaccination.tsx","dataAccess/webApi/dao/childrenEatingDao.tsx","containers/memberModifyChildEating/memberModifyChildEatingService.tsx","views/pages/memberModifyChildEating.tsx","dataAccess/webApi/dao/childrenSymptomDao.tsx","containers/memberModifyChildSymptom/memberModifyChildSymptomService.tsx","views/pages/memberModifyChildSymptom.tsx","dataAccess/webApi/dao/childrenPredispositionDao.tsx","containers/memberModifyChildPredisposition/memberModifyChildPredispositionService.tsx","views/pages/memberModifyChildPredisposition.tsx","containers/memberModifyChildDiseaseTest/memberModifyChildDiseaseTestService.tsx","views/pages/memberModifyChildDiseaseTest.tsx","dataAccess/webApi/dao/childrenTreatmentDao.tsx","containers/memberModifyChildTreatment/memberModifyChildTreatmentService.tsx","views/pages/memberModifyChildTreatment.tsx","containers/memberModifyConfirmationChild/memberModifyConfirmationChildService.tsx","views/pages/memberModifyConfirmationChild.tsx","containers/memberModifyConfirmationUser/memberModifyConfirmationUserService.tsx","views/pages/memberModifyConfirmationUser.tsx","containers/memberModifyUser/memberModifyUserService.tsx","views/pages/memberModifyUser.tsx","containers/myFacility/myFacilityService.tsx","dataAccess/webApi/dao/interviewedFacilitiesDao.tsx","views/pages/myFacility.tsx","containers/mypage/mypageService.tsx","views/pages/mypage.tsx","containers/facilitySearchSettingMasterSelection/facilitySearchSettingMasterSelectionService.tsx","views/pages/facilitySearchSettingMasterSelection.tsx","views/components/common/inputs/radioButtonGroupNoBind.tsx","views/components/common/lotteryReservation/lotteryReservationCard.tsx","views/components/reservationStatusList/interviewCard.tsx","views/components/acceptNotice/acceptNoticeCard.tsx","views/pages/reservationStatusList.tsx","containers/systemError/systemErrorService.tsx","views/pages/systemError.tsx","views/components/common/buttons/windowCloseButton.tsx","views/pages/termsOfService.tsx","containers/termsOfUse/termsOfUseService.tsx","views/pages/transitionInconsistency.tsx","views/pages/underMaintenance.tsx","containers/underMaintenance/underMaintenanceService.tsx","utils/arrayUtil.ts","dataAccess/webApi/dao/certificateDao.tsx","containers/common/constant/statusCode.ts","containers/provisionCertificateIssuance/useProvisionCertificateIssuance.tsx","containers/usageHistory/usageHistoryService.tsx","views/components/provisionCertificateIssuance/downloadDialog.tsx","views/pages/usageHistory.tsx","containers/usageHistoryDetail/usageHistoryDetailService.tsx","views/pages/usageHistoryDetail.tsx","views/pages/webAccessibilityPolicy.tsx","containers/childUseEnd/childUseEndService.tsx","views/pages/childUseEnd.tsx","views/components/receipt/default/defaultFeeList.tsx","views/components/receipt/default/defaultReceipt.tsx","views/pages/receiptView.tsx","containers/receiptView/receiptViewService.tsx","containers/sso/ssoService.tsx","views/pages/sso.tsx","containers/emailVerified/emailVerifiedService.tsx","views/pages/emailVerified.tsx","containers/otp/otpService.tsx","views/pages/otp.tsx","containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService.tsx","views/components/facilityReservationTodayConditionInput/common/todayInputDecimalTypeField.tsx","views/components/facilityReservationTodayConditionInput/todayConditionSec.tsx","views/components/facilityReservationTodayConditionInput/sleepSec.tsx","views/components/facilityReservationTodayConditionInput/defecationSec.tsx","views/components/facilityReservationTodayConditionInput/mealSec.tsx","views/components/facilityReservationTodayConditionInput/otherSec.tsx","views/components/facilityReservationTodayConditionInput/reservationInfoArea.tsx","views/pages/facilityReservationTodayConditionInput.tsx","containers/facilityReservationTodayConditionInputConfirmation/facilityReservationTodayConditionInputConfirmationService.tsx","views/pages/facilityReservationTodayConditionInputConfirmation.tsx","views/pages/facilityReservationTodayConditionInputCompletion.tsx","containers/facilityReservationTodayConditionInputCompletion/facilityReservationTodayConditionInputCompletionService.tsx","app.tsx","views/components/common/scrollToTop.tsx","index.tsx"],"names":["map","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","then","e","Error","code","ids","id","keys","Object","module","exports","all","slice","t","defaultTheme","createTheme","palette","primary","main","dark","light","secondary","info","contrastText","warning","error","white","errorPale","grayLight","grayDark","greenPale","text","typography","htmlFontSize","fontFamily","join","body1","fontSize","fontWeight","fontWeightBold","button","font","sizeS","sizeM","sizeL1","sizeL2","sizeLL1","breakpoints","values","md","mixins","toolbar","minHeight","appMain","padding","appFooter","height","breakpoint","accountChangeSlice","createSlice","name","initialState","reducers","setAccountChange","state","action","entry","payload","clearAccountChange","actions","selectAccountChangeEntry","accountChange","accountCreateSlice","setAccountCreate","clearAccountCreate","selectAccountCreateEntry","accountCreate","isOpen","isLoading","isHiddenMain","isIntersectingFooter","pxPerVh","bottomActionContainerHeight","historyStackLength","sliceName","showLoading","createAsyncThunk","concat","async","process","thunkAPI","dispatch","setIsHiddenMain","applicationSlice","openSideMenu","closeSideMenu","setIsLoading","setPxPerVh","setBottomActionContainerHeight","setIsIntersectingFooter","notifyMessage","timestamp","Date","now","content","autoHideDuration","message","updateHistoryStackLength","reset","extraReducers","builder","addCase","pending","fulfilled","rejected","selectIsOpen","application","selectIsLoading","selectIsHiddenMain","selectPxPerVh","selectBottomActionContainerHeight","selectIsIntersectingFooter","selectMessage","signIn","username","password","Auth","signOut","options","getAuthenticatedUser","bypassCache","currentAuthenticatedUser","verifyTel","verifyCurrentUserAttribute","verifyEmail","getSessionIdToken","currentSession","getIdToken","getJwtToken","getSessionAccessToken","getAccessToken","keepAliveHttpAgent","http","Agent","keepAlive","keepAliveHttpsAgent","https","executeGet","apiName","path","parameter","execute","API","get","bind","queryParameter","executeGetNoResultError","isNoResultError","executeDelete","del","bodyParameter","executePost","post","executePut","put","executePostKeepAlive","isKeepAlive","api","arguments","length","undefined","token","option","httpAgent","httpsAgent","headers","Authorization","queryStringParameters","q","JSON","stringify","body","rawResponse","result","NoResultError","TypeError","axios","isAxiosError","_e$response","_e$response2","apiResponse","response","console","responseHeaders","data","resultCode","ApiError","status","constructor","statusCode","super","this","setPrototypeOf","prototype","apiPath","resultCodePutAccount","executeGetAccountOtp","showOtp","executePutAccount","input","executePostAccountIdentityVerifySubmit","executePutAccountIdentityVerifyResendEmail","executePutAccountOtp","executePutAccountAuthentication","executeGetSessionSettingMst","yesNo","yes","no","doNotWaitlist","do","not","age","class0","class1","class2","class3","class4","class5","class6","class7","purposeOfUse","common","irregular","emergency","refresh","useReasonDisplayTypes","facilitySearchSortOrder","currentLocation","facilityName","httpStatusCode","reservationStatus","interviewCrossManagementFlag","interviewStatus","permitFlag","gender","male","female","residenceCategory","inside","outsid","other","covered","notCovered","cancelReason","inconvenient","poorPhysicalCondition","accountCreateStep","step1","step2","step3","interviewReservationStep","interviewReservationStep2","step4","interviewReservationDeleteStep","facilityReservationStep","facilityReservationDeleteStep","facilityLotteryReservationCancelStep","availabilityStatus","receptionTimePattern","reservableUnitPatterMinutes","usageRecordApiStatus","bloodType","typeUnselected","typeA","typeB","typeO","typeAB","accountChangeVerificationCategory","preinterviewAccept","interviewAcceptMethod","webReservation","acceptWebReservation","interviewChangeRestriction","reservationChangeRestriction","reservationStatusSearchCondition","confirmedOnly","usageHistoryStatusSearchCondition","usedOnly","availabilityOfApplication","apply","notApply","useReasonCode","provisionCertificateFeatureStatus","paymentStatus","Flag","mailType","direction","fieldType","reservationEatingMethod","reservationBrestFeedingDetail","medicalDocUsage","reservationFieldUsage","reservationEmergencyAction","todayConditionInputFieldUsage","todayConditionInputNapType","todayConditionDefecationTiming","todayConditionAmountOfFood","todayConditionBelongings","lotteryAcceptTypeOption","siblingsLotteryResult","doNotReferTo","referTo","lotteryReservationStauts","lotteryMethod","todayConditionEscortType","facilityInputFieldType","detectLoginStatus","arg","mfaType","user","authLog","setLogin","loginId","attributes","email","verifications","tel","telVerifiedFlag","emailVerifiedFlag","setIsOTPAuthenticated","loginFlag","authoritySlice","isLoggedIn","isOTPAuthenticated","selectIsLoggedIn","authority","selectIsVerifiedTel","_state$authority$user","selectIsVerifiedEmail","_state$authority$user2","selectIsVerifiedAll","_state$authority$user3","_state$authority$user4","selectLoginUser","selectIsOTPAuthenticated","facilityReserveSlice","setFacilityReserve","setReserveModifyUpdateDatetime","updateDatetime","clearFacilityReserve","selectFacilityReserveEntry","facilityReserve","selectReserveModifyUpdateDatetime","facilityReserveDeleteSlice","setFacilityReserveDeleteEntry","setFacilityReserveDeleteUpdateDatetime","clearFacilityReserveDelete","selectFacilityReserveDeleteEntry","facilityReserveDelete","selectFacilityReserveDeleteUpdateDatetime","facilityReserveTodayConditionInputSlice","setReservationInfo","reservationInfo","clearReservationInfo","setTodayConditionInputFieldsInfo","todayConditionInputFieldsInfo","clearTodayConditionInputFieldsInfo","setInput","clearInput","selectInput","facilityReserveTodayConditionInput","selectReservationInfo","selectTodayConditionInputFieldsInfo","facilitySearchSlice","codeMaster","isDisabledCurrentLocation","setFacilitySearchCondition","condition","isDirty","clearFacilitySearchCondition","setFacilitySearchSortOrder","sortOrder","setFacilitySearchResult","searchResult","allFacilities","isLimitOver","firstFaclitity","latitude","longitude","mapCenter","setActiveFacility","activeFacilityId","clearActiveFacility","clearFacilitySearchResult","setMapCenter","setFacilitySearchCodeMaster","selectFacilitySearchCondition","facilitySearch","selectResultIsDirty","_state$facilitySearch","selectResultIsLimitOver","_state$facilitySearch2","_state$facilitySearch3","selectResultAllFacilities","_state$facilitySearch4","selectResultActiveFacilityId","_state$facilitySearch5","selectResultMapCenter","_state$facilitySearch6","selectFacilitySearchCodeMaster","selectIsDisabledCurrentLocation","interviewReserveSlice","setInterviewReserve","setInterviewReserveUpdateDatetime","updateDatetimes","clearInterviewReserve","selectInterviewReserveEntry","interviewReserve","selectInterviewReserveUpdateDatetimes","interviewReserveDeleteSlice","setInterviewReserveDeleteEntry","setInterviewReserveDeleteUpdateDatetime","clearInterviewReserveDelete","selectInterviewReserveDeleteEntry","interviewReserveDelete","selectInterviewReserveDeleteUpdateDatetime","memberAddChildSlice","setMemberAddChild","childEntry","clearMemberAddChild","selectMemberAddChildEntry","memberAddChild","memberModifySlice","setMemberModifyUser","userEntry","setMemberModifyChild","setMemberModifyUpdateDatetime","clearMemberModify","selectMemberModifyUserEntry","memberModify","selectMemberModifyChildEntry","selectMemberModifyUpdateDatetime","DOCS_SUBMIT_STATUS","PROVISION_CERTIFICATE_USER_REISSUE_STATUS","LOCATION_STATUS","USAGE_FEE_DISPLAY_STATUS","CALCULATION_PATTERN","AGE_REGION_BASED_FEE_DAY_TYPE","defaultSystemControl","serviceTitle","serviceUrlForUser","serviceUrlForManager","iconImageName","termsOfService","accountCreateInformation","s3BucketNameIcon","projectSearchFlag","facilityCategorySearchFlag","s3BucketNameManual","s3BucketNameTermsOfUse","s3BucketNameCitizenUserReservationFile","s3BucketNameCitizenUserLotteryReservation","s3BucketNameCitizenUserInterviewFile","useCouponFunctionFlag","unsubscribeAcceptFlag","childUseEndAcceptFlag","ssoUseFlag","ssoUseName","ssoEmailCertificationFlag","smsSubscriptionFlag","phoneCertificationFlag","interviewBulkReceptionFlag","duplicateConfirmControlFlag","duplicateUnsettledControlFlag","duplicateWaitControlFlag","crossBusinessDuplicationCheckFlag","multiChildReservationAvailabilityFlag","descriptionForUnsubscribe","descriptionForChildUseEnd","paymentStatusFlag","provisionCertificatePaymentStatusFlag","provisionCertificateUserReissueStatus","usageFeeDisplayStatus","issuableDate","lotteryDisplayFlag","lotteryFlag","acceptNoticeStatus","systemControlSlice","setSystemControl","systemControl","selectSystemControl","_state$systemControl$","loginSlice","setLoginForm","clearLoginForm","selectLoginError","_state$login$entry","login","lotteryReserveSlice","setLotteryReserve","clearLotteryReserve","selectLotteryReserveEntry","lotteryReserve","lotteryReserveCancelSlice","setLotteryCancelReserve","clearLotteryReserveCancel","selectLotteryReserveCancelEntry","lotteryReserveCancel","resetPasswordSlice","setResetPassword","clearResetPassword","selectResetPasswordEntry","resetPassword","selectResetPasswordError","_state$resetPassword$2","selectIsSuccessResetPassword","_state$resetPassword$3","isSuccessResetPassword","cognitoUserSlice","setCognitoUser","clearCognitoUser","selectCognitoUser","cognitoUser","facilitySearchSettingMsts","projectMsts","setFacilitySearchSettingMsts","setProjectMsts","selectFacilitySearchSettingMsts","facilitySearchSetting","selectProjectMsts","combinedReducer","combineReducers","store","configureStore","reducer","rootReducer","type","isKeepAuthority","middleware","getDefaultMiddleware","serializableCheck","ignoredActions","ignoredPaths","awsmobile","flatKey","obj","keyStack","key","value","entries","format","exp","formatedValues","expResult","previousIndex","_len","args","Array","_key","exec","placeIndex","parseInt","push","index","every","_jsx","_Fragment","children","Fragment","getFromI18n","I18n","yyyymmddMasks","ja","en","yyyymmddFormats","yyyymmMasks","yyyymmFormats","determinedLanguage","determinedLocale","getLanguageVocabulariesLocale","language","localeCode","split","langVocabularies","locale","default","getLanguage","getLocale","translate","_len2","_key2","translateNode","_len3","_key3","getClassificationValueLabels","classificationKey","classificationValues","label","getClassificationLabel","classificationValue","tuple","ts","AppUrl","baseUrl","routerPath","params","v","optionParams","url","_exec","m","filter","emptyOption","errorUrls","unknown","transitionInconsistency","rootUrl","homeUrl","loginUrl","otpUrl","forgotPasswordUrl","resetPasswordUrl","newPasswordUrl","accountCreateFormUrl","accountCreateConfirmationUrl","accountCreateCompletionUrl","accountUrl","accountTelChangeUrl","accountEmailChangeUrl","accountChangeVerificationUrl","identityVerificationUrl","identityEmailVerificationUrl","memberUrl","memberModifyUserUrl","memberModifyChildUrl","memberModifyChildAllergyUrl","memberModifyChildFamilyHospitalUrl","memberModifyChildFebrileSeizureUrl","memberModifyChildHospitalAdmissionUrl","memberModifyChildMedicalHistoryUrl","memberModifyChildNormallyUsedFacilityUrl","memberModifyChildDiseaseUrl","memberModifyChildUsuallyMedicinesUrl","memberModifyChildVaccinationUrl","memberModifyChildEatingUrl","memberModifyChildSymptomUrl","memberModifyChildPredispositionUrl","memberModifyChildDiseaseTestUrl","memberModifyChildTreatmentUrl","memberModifyConfirmationUserUrl","memberModifyConfirmationChildUrl","memberAddChildUrl","memberAddConfirmationChildUrl","accountUnsubscribeUrl","childUseEndUrl","myPageUrl","informationUrl","informationDetailUrl","facilitySearchConditionUrl","facilitySearchSettingMasterSelectionUrl","facilitySearchResultUrl","facilityDetailUrl","facilityDetailAvailabilityUrl","accountConfirmationlUrl","interviewReservationSelectionCreateUrl","interviewReservationSelectionUpdateUrl","interviewReservationFormUrl","interviewReservationConfirmationUrl","interviewReservationCompletionUrl","interviewReservationDetailUrl","interviewReservationDeleteUrl","interviewReservationDeleteConfirmationUrl","facilityReservationSelectionCreateUrl","facilityReservationSelectionUpdateUrl","facilityReservationFormUrl","facilityReservationTodayConditionInputUrl","facilityReservationTodayConditionInputConfirmationUrl","facilityReservationTodayConditionInputCompletionUrl","facilityReservationConfirmationUrl","facilityReservationCompletionUrl","facilityReservationDetailUrl","facilityReservationDeleteUrl","facilityReservationDeleteConfirmationUrl","facilityLotteryReservationFormUrl","facilityLotteryReservationConfirmationUrl","facilityLotteryReservationCompletionUrl","facilityLotteryReservationDetailUrl","facilityLotteryReservationCancelUrl","facilityLotteryReservationCancelConfirmationUrl","facilityLotteryReservationSelectionUpdateUrl","couponUrl","myFacilityUrl","reservationStatusListUrl","usageHistoryUrl","usageHistoryDetailUrl","receiptViewUrl","contactUrl","termsOfServiceUrl","manualUrl","faqUrl","webAccessibilityPolicyUrl","ssoUrl","emailVerifiedUrl","toInt","toInts","fromNumber","toString","blankToNull","splitRemoveBlank","separator","_value$split$filter","formatNumberComma","Intl","NumberFormat","formatNumberYenString","splitDecimal","returnObject","integer","fractional","convertFalsyValueToUnfilled","appendix","unfilled","INVALID_DATE_STRING","isValidDate","Number","isNaN","getDate","isValidApiYmd","fromApiYmd","formatDate","pattern","formatHmOver","baseDate","hours","differenceInHours","startOfDay","minutes","getMinutes","padStart","formatHmtoHmOver","from","to","formatHm","formatHyphenYmd","formatYmd","formatYmdWeek","formatLocaleYm","formatYmdHm","formatYmdHmWeek","formatYmdHmToHmOverWeek","differenceInHoursMinutes","base","diffMinute","differenceInMinutes","hour","Math","trunc","minute","isIncludeDate","range","isExcludingFrom","isExcludingTo","isEqual","trimTime","date","getFullYear","getMonth","sysDate","getNow","isFixedTime","getJstNow","setTime","getTime","setFullYear","getNowTrimedTime","utcOffsetMinuteFromLocal","getTimezoneOffset","endOfDay","dateString","time","timeOfEndOfDay","setUTCHours","apiFormat","toApiFormat","fromApiFormat","parse","parseDate","toApiYmdHms","toApiYmd","toApiYm","toApiHms","toApiHm","fromApiYmdHms","fromApiHms","getFromToBirthdayFromClassAge","dateCriteria","criteriaYear","getBirthday","months","days","isClosestDate","_age","calcDays","year","month","day","calculatedDate","WINDOW_ID_STORE_KEY_NAME","SSO_LOGIN_REDIRECT_TO_KEY_NAME","SSO_LINK_REDIRECT_TO_KEY_NAME","windowId","sendingQueue","latestAddOperationLogRecord","isSending","postOperationLog","operations","splice","getLatestAddOperationDatetime","_latestAddOperationLo","operationDatetime","useOperationLog","useSelector","addOperationLog","useCallback","logInput","record","uuidV4","window","location","pathname","sendOperationLog","getOnClickAddOperationLog","flushOperationLog","attachAccessData","_accessInput$operatio","accessInput","accessData","nullToUndefined","nullPropsToUndefined","fromEntries","_ref","undefinedToNull","undefinedPropsToNull","_ref2","dateToNumber","datePropsToNumber","_ref3","numberPropsToDate","_ref4","includes","undefinedPropsToOptional","_ref5","getValueByNameStr","target","parts","part","combineDecimalParts","decimalObj","_decimalObj$fractiona","integerPart","fractionalPart","parseFloat","useControl","shouldSetTitle","useDispatch","getControl","_controlRes$result$se","_controlRes$result$se2","_controlRes$result$ac","_controlRes$result$te","_controlRes$result$de","_controlRes$result$de2","controlRes","systemDatetime","_document$querySelect","document","title","querySelector","setAttribute","initializeDateUtil","usageCouponFromDate","usageCouponToDate","useAction","history","useHistory","isInitializedLoggedIn","setIsInitializedLoggedIn","useState","loginRouteMatch","useRouteMatch","exact","underMaintenanceRouteMatch","receiptViewRouteMatch","useEffect","Hub","listen","event","onResize","innerHeight","addEventListener","removeEventListener","navigator","languages","getFixedLocaleCode","vocabularies","setLanguage","putVocabularies","initializeI18n","initializeLoggedIn","onBeforeunload","onUnload","sessionStorage","setItem","onDOMContentLoaded","restoreWindowId","getItem","removeItem","handingOfPersonalDataUrl","Link","styled","props","replace","onClick","href","operationLog","linkAttrs","rel","onClickOpWrapped","onClickAttrs","MuiLink","component","RouterLink","shouldForwardProp","prop","theme","disabled","cursor","pointerEvents","color","textDecoration","Root","position","pxToRem","up","backgroundColor","LinkBox","display","flexDirection","alignItems","flexWrap","whiteSpace","justifyContent","Separater","borderRight","SysDateInfo","sysCtrl","className","left","top","AppFooter","memo","footerRef","useRef","observer","currentOvserver","IntersectionObserver","isIntersecting","current","disconnect","footerElement","observe","_jsxs","ref","underline","useErrorHandle","errorHandle","postFrontErrorLog","userAgent","errorName","errorMessage","stack","object","objectString","TextEncoder","encode","getSizeOfObject","executePostFrontErrorLog","isKeyOf","errorHandler","returnValue","catch","OperationId","useLogoutActions","logout","operationId","userId","sub","ButtonBase","buttonAttrs","Button","textAlign","textTransform","ButtonOutlinedBase","borderStyle","borderColor","ButtonOutlinedBuleS","borderWidth","borderRadius","minWidth","IconLinkButton","buttonColor","IconButton","Flexbox","FlexboxRow","FlexboxCenter","FlexboxMiddle","FlexboxRowTop","InlineFlexbox","Separator","ColonSeparator","HyphenSeparator","SpaceSeparator","GContainer","forwardRef","Grid","container","GItem","item","GItemContainer","FlexGItem","LeftGItem","CenterGItem","RightGItem","TopGItem","MiddleGItem","BottomGItem","CenterMiddleGItem","WrapValue","wordBreak","LabelGItemBase","ValueGItemBase","hideColon","through","RowSpacerGItem","xs","HamburgerMenuIcon","FormatListBulletedIcon","FacilitySearchIcon","SearchIcon","HomeIcon","MuiHomeIcon","LogoutIcon","MuiLogoutIcon","MyFacilityIcon","FavoriteIcon","ReserveStatusCheckIcon","EventNoteIcon","UsageHistoryIcon","AssignmentIcon","StyledItemIcon","ListItemIcon","ListItemLink","icon","ListItemButton","ListItemText","executeGetCouponsIssues","apiNamePublic","apiNameCitizen","executeGetInformations","isCitizen","executeGetProjects","executeGetProjectDetail","projectId","targetDate","executeGetReservations","isVerifiedEmail","isVerifiedTel","informations","setInformations","linkSettingsList","setLinkSettingsList","showCouponFunctionFlag","setShowCouponFunctionFlag","showTodayConditionInputFlag","setShowTodayConditionInputFlag","todayConditionInputName","setTodayConditionInputName","todayConditionInputEndTime","setTodayConditionInputEndTime","getInformations","isUsable","canUseCouponFunction","getLinkSettings","projectRes","getProjectMsts","todayConditionInputRservationNoListRes","todayConditionInputRservationNoData","log","reservationNoList","goMyFacility","goReservationStatusList","goUsageHistory","goCoupon","handleClickSearchFacility","facilitySearchSettingMstsRes","getFacilitySearchSettingMsts","projectCategoryId","intermediateDisplayFlag","searchConditionDisplayFlag","publicationStartDatetime","facilitySearchSettingMst","coupon","issuedNo","limitUsageMinute","totalBalanceMinute","limitDate","childId","deleteFlag","remainingMinute","getCouponsIssue","SideMenuContent","close","List","projectIds","projectMst","NotificationsIcon","AccountCircleIcon","StyledDrawer","Drawer","width","flexShrink","boxSizing","DrawerHeader","spacing","SideMenu","anchor","open","onClose","ChevronRightIcon","Divider","fontSizeLv","fontSizeNames","lv","letterSpacing","StyledBar","AppBar","LogoIconButton","HeaderButtom","margin","CityIcon","paddingRight","Logo","SystemLogo","serviceTitleLength","ButtonGItem","overflow","AppHeader","isHiddenButton","region","aws_project_region","iconUrl","encodeURIComponent","Toolbar","src","alt","Box","sx","flexGrow","edge","bottomContainerHeight","isHidden","paddingBottom","visibility","AppMain","AuthenticatedGuard","useLocation","redirectPathName","setRedirectPathName","newPath","isIgnoreVerifiedEmail","isIgnoreVerifiedTel","Modal","Circle","CircularProgress","LoadingProgress","modalContentRef","isShownCircle","setIsShownCircle","_modalContentRef$curr","focus","timeoutId","setTimeout","clearTimeout","Snackbar","ToastNotification","_message$autoHideDura","setIsOpen","closeMessage","reason","anchorOrigin","vertical","horizontal","Alert","DIALOG_PARAM_DEFAULT_VALUE","isVerifiedAll","account","setAccount","dialog","setDialog","userIdRegFlag","initialize","unlink","onCloseComplateDialog","bottom","BottomActionContainer","isUpMd","useMediaQuery","reCalc","ele","getBoundingClientRect","getComputedStyle","marginTop","resizeObserver","ResizeObserver","preHeight","contentRect","ButtonBox","BottomButtonStack","buttons","isArray","React","isValidElement","Stack","BottomButtonGroup","BreakpointSwitch","isMd","isSm","sm","ButtonOutlinedL","ButtonOutlinedS","ButtonOutlinedResponsive","fullWidth","borderBottom","SubTitle","ExclamationMarkIcon","ErrorOutlineIcon","Form","onSubmit","formMethods","FormProvider","noValidate","handleSubmit","MuiDialog","fullHeight","CloseButton","right","zIndex","Title","DialogTitle","TitleIcon","lineHeight","TitleText","DialogContent","MuiDialogContent","Actions","DialogActions","Dialog","contentComponent","isShownCloseButton","ContentComp","contentActions","CancelIcon","LinkItemBase","paddingLeft","VerifiedStatusChipBase","Chip","marginLeft","VerifiedStatusChip","chipProps","isVerified","size","LinkedStatusChipBase","LinkedStatusChip","isLinked","LabelGItem","ValueGItem","LinkGItem","DialogContentText","Account","maxWidth","rowSpacing","ssoUserId","completionMessageKey","changeEntry","identifier","setIdentifier","useForm","resend","newPassword","category","accessToken","passcode","oneTimePassword","setError","shouldFocus","ButtonContainedBase","boxShadow","shadows","ButtonL","validate","isValid","isValidPostalCode","test","cognitoAllowedSpecialCharacters","requiredValidator","trimEnd","postalCodeValidator","emailValidator","isValidEmail","katakanaValidator","isValidKatakana","passwordValidator","validateMessage","passwordRule","isValidPassword","minimumLength","requires","tmpSatisfiedRules","pwdChar","some","char","satisfiedRules","Set","rule","formatAcceptAge","acceptAge","acceptMonth","acceptDay","acceptAgeGradeFlag","upAge","isShown","highers","dayPrefix","isShownDay","flat","formatAcceptAgeRange","formattedAcceptAgeFrom","formattedAcceptAgeTo","ageMap","formatAddress","address1","address2","buildingNameRoomNo","formatPostalCode","formatCancelLimit","cancelLimit","cancelLimitTime","cancelExcludeHolidayFlag","interviewFlag","limitTime","TextBoxBaseStyled","TextField","maxLength","marginRight","formatters","postalCode","textTypeToInputType","oneTimeCode","TextBox","placeholder","required","startIcon","control","textType","requiredOnly","passwordValidationMsg","inputType","setInputType","switchPasswordVisible","old","rtrimSpaceByLine","replaceAll","useMemo","getValidators","validator","katakana","requireNumbers","requireUppercase","requireLowercase","requireSymbols","temporaryPasswordValidityDays","field","onBlur","onChange","ctrlProps","formState","errors","useController","rules","defaultValue","onChangeFormat","formatter","onBlurTrimEnd","rtrimedValue","onKeyPress","multiline","inputProps","InputProps","startAdornment","InputAdornment","endAdornment","Visibility","VisibilityOff","InputLabelProps","inputRef","helperText","paddingTop","CenterTitle","ContentContainer","InfoMessageGItem","NoResultMessageCard","OneTimePasswordVerificationContent","infoMessage","resendState","setResendState","delayRevitalization","autoComplete","TransitionCheck","check","Redirect","AccountChangeVerification","executeGetChildren","executeGetChild","facilityId","additionals","executePutChildrenDetail","ADDITIONALS","getChildrenChoices","getInterviewedChildrenChoices","getInterviewCrossManagementFlag","includeNotImplementedFlag","getLatestInterviewedFlag","getChild","additonals","child","allergies","causes","allergyCauses1","symptoms","allergySymptoms1","treatments","allergyTreatments1","concerns","allergyConcerns1","allergyCauses2","allergySymptoms2","allergyTreatments2","allergyConcerns2","allergyCauses3","allergySymptoms3","allergyTreatments3","allergyConcerns3","kana","birthday","brothersSistersFlag","multipleBirthsFlag","maternalHandbookNo","allergyFlag","interviewPermitCount","familyHospital","familyHospitalTel","usuallyMedicines","usuallyMedicinesMemo","normallyUsedFacilities","normallyUsedFacilitiesType","normallyUsedFacilitiesTel","normallyUsedFacilitiesAdmission","normallyUsedFacilitiesStartTime","normallyUsedFacilitiesEndTime","medicalHistoryFlag","febrileSeizureFlag","diseaseFlag","symptomFlag","vaccinationFlag","detailUpdateDatetime","allergy","hospitalAdmission","eating","eatingResult","predisposition","diseaseTest","treatment","resultCodeGetFacilities","executeGetFacilities","coordinateNullFacilityIds","facility","fixCoordinateNull","executeGetFacility","isFixed","_facility$latitude","_facility$longitude","getFacility","imageUrls","getAreas","area","areaId","areaName","getFacilityCategories","facilityCategoryId","facilityCategoryName","getProjects","project","projectName","getSearchFlags","flag","searchFlagNo","searchFlagName","ageKey","getAges","filteredAges","executeGetFacilitiesForAgesSixOver","yesNoKey","getYesNos","getYesNoLabel","doNotWaitlistKey","getDoNotWaitlist","getDoNotWaitlistLabel","getReservationStatusLabel","getLotteryReservationStatusLabel","getInterviewStatusLabel","getPermitFlagLabel","genderKey","getGenders","getGenderLabel","coveredKey","getCovereds","getCoveredLabel","getReductionsStatusLabel","bloodTypeKey","getBloodTypes","getBloodTypeLabel","cancelReasonKey","getCancelReasons","getCancelReasonLabel","getAccountCreateSteps","getInterviewReservationSteps","getInterviewReservationSteps2","getInterviewReservationDeleteSteps","getFacilityReservationSteps","getFacilityReservationDeleteSteps","getFacilityLotteryReservationCancelSteps","getUsageRecordApiStatusLabel","getCancelLimitHolidayOptionLabel","webReservationKey","getWebReservations","availableKey","getAvailableLabel","reservationStatusSearchConditionKey","usageHistoryStatusSearchConditionKey","availabilityOfApplicationKey","siblingsLotteryResultReferenceFlagKey","getSiblingsLotteryResultReferenceLabel","useParams","isOpenInterviewChildSelect","setIsOpenInterviewChildSelect","setState","uninterviewedChilds","childs","interviewedChildsAndStatus","locationState","defaultValues","facilityWithChilds","allChilds","interviewedChilds","exceptForChildsWithCanceledInterview","interviewedChildIdSet","has","getFacilityWithChilds","setValue","goInterview","onCloseInterviewChildSelect","isCancel","onClickTel","_state$facility","ButtonS","RadioGroup","RadioButtonGroup","buttonValueLabels","validation","customRule","FormControl","FormControlLabel","Radio","FormHelperText","CheckBox","_props$valicationMess","_messageKeys$required","valueAtCheck","messageKeys","valicationMessageKeys","checked","Checkbox","MessageBox","InterviewedChildsAndStatusItem","marginBottom","ErrorMessageItem","ChildSelectDialog","errMsg","setErrMsg","childIds","cancel","isInterviewBulkReception","selectChildIds","activeChildIds","goAddChild","completionTo","interviewedChildsAndStatusConstents","isShowToNextButton","isFontWeightRegular","fontWeightRegular","SizeLabelBase","AnnotationLabel","AttentionLabel","BackButton","goBack","ButtonOutlinedInfoBase","ButtonOutlinedInfoL","ButtonOutlinedWarningBase","ButtonOutlinedWarningL","border","InfoCard","RootBase","MuiSelect","fontWeightMedium","SelectItem","MenuItem","SelectNoBind","valueLabels","includeNone","noneLable","itemComponent","CustomItem","displayEmpty","valueLabel","Select","TitleLabel","ContentBox","preinterviewAcceptWebs","preinterviewAcceptTels","AccountConfirmation","isPreinterviewAcceptWeb","preinterviewAcceptFlag","isPreinterviewAcceptTel","reservationAcceptFlag","ReactBatchUpdater","tasks","add","task","addSetter","setter","lastTask","unstable_batchedUpdates","forEach","setFormValueClearError","methods","clearErrors","setFormErrors","downloadFile","fileUrl","fileName","a","createElement","download","click","remove","openWindow","listStyle","ErrorMessageCard","messages","stepBorderStyles","getActiveColor","isActive","StepItem","isFirst","flex","ValueLabel","ValueLabelSpace","StepBar","stepValueLabels","activeStepValue","SubMessageGItem","MainMessageLabel","AccountCreateCompletion","resendEmailResultCode","setResendEmailResultCode","validateItems","emailConfirmation","resp","SpecifyMasterType","getCategories","executePostCategory","getCategorySpecifyMasters","executeGetCategorySpecifyMaster","masterType","getYesNoText","categoryMst","_categoryMst$checkTex","_categoryMst$checkTex2","checkTextYes","checkTextNo","postUserAccount","isSsoLink","_entry$ssoLinkedParam","ssoLinkedParams","buildingNameRoomNumber","relationship","MuiCard","ElevatedCard","CardHeader","CloseIcon","style","CardContent","AccountCreateConfirmation","accountEntry","userAccountResultCode","register","categoryMap","CATEGORY_KEYS","setUserAccountResultCode","setCategoryMap","categories","tmpMap","_accountEntry$ssoLink","residenceCategoryName","childrenGender","executeGetResidenceCategoryMst","getResidenceCategoriesAndMstData","insideName","outsideName","otherName","mstData","googleMapApiKey","amplifyConfOauthDomain","amplifyConfOauthSignIn","amplifyConfOauthSignOut","authIdProviderName","getCurrentPosition","reject","geolocation","positionError","timeout","getSublocalityLevelsSetter","address","sublocalityLevels","getAdministrativeAreaLevelsSetter","administrativeAreaLevels","typeToAddressPropertyMap","country","administrative_area_level_1","administrative_area_level_2","administrative_area_level_3","administrative_area_level_4","administrative_area_level_5","locality","sublocality_level_1","sublocality_level_2","sublocality_level_3","sublocality_level_4","sublocality_level_5","postal_code","GeocodeError","getAddressStringByPostalCode","getAddressByPostalCode","sep","searchParamAddress","trim","fetch","URLSearchParams","json","results","address_components","types","isGoogleGeocodeResponse","parseAddress","addressComponents","reduce","previousValue","currentValue","typeKey","propertySetter","indexOf","long_name","DEFAULT_PASSWORD_RULE","usePasswordValidationMessage","setPasswordRule","getPasswordRule","passwordRuleRes","_passwordRule","validationMessage","passwordRequires","getPasswordRuleMessage","convertPostalCode","substr","convertTel","HelpIcon","MuiHelpIcon","INPUT_TYPE","InputField","DatePickerNoBind","maxDate","minDate","internalValue","setInternalValue","onChangeHandler","keyboardInputValue","NaN","inputFormat","mask","views","LocalizationProvider","dateAdapter","AdapterDateFns","adapterLocale","DesktopDatePicker","showToolbar","renderInput","DatePicker","invalidDate","invalidDateLimitByMaxDate","isAfter","invalidDateLimitByMinDate","splitTel","validators","isValidTel","PartTextBox","newValue","spliceTel","splittedNumbers","TelTextBox","partProps","AccountInformation","HelpIconButton","AccountCreateForm","fieldArrayMethods","appendChild","removeChild","autoCompleteAddress","childBirthdayLimitDate","residenceCategories","isDisabledAddress1","residenceCategoryMst","_history$location$sta","_history$location$sta2","isKeep","setResidenceCategoryMst","setResidenceCategories","setIsDisabledAddress1","others","city","street","houseNumber","phone","useFieldArray","append","setResidenceCategory","triggerKeywordSetInitialValue","initialValue","getValues","residenceCategoriesAndMstData","subscription","watch","unsubscribe","passwordConfirmation","element","childOthers","fields","Tooltip","enterTouchDelay","row","descriptionForResidenceCategory","BottomButtonStackNoWidth","BottomButtonGroupNoWidth","ButtonOutlinedWarningM","AccountEmailChange","newEmail","newEmailConfirmation","newEmailErrorKey","errorKey","AccountTelChange","newTel","newTelConfirmation","newTelErrorKey","deleteResultCode","ButtonErrorL","ChecklistBox","AccountUnsubscribe","_sysCtrl$descriptionF","guideTextId","freeze","executePostGuideText","getContacts","getContactCommonGuideText","contactCommonGuideText","Contact","contactList","guideText","setContactList","setGuideText","guideTextContent","contact","contactName","fax","subject","contactId","executeGetUsageRecords","executeGetUsageRecord","formatLocaleTimeAmountHm","num","floor","canUseCouponFunctionFromSysCtrl","usageCouponRange","tabValue","reservation","usageRecord","getReservations","couponUsageTargetFlag","confirmedOnlyGetFlag","usageDate","useFromDatetime","useToDatetime","getUsageHistorys","yyyymm","usageHistory","usageMinute","totalLimitUsageMinute","totalTotalBalanceMinute","couponlimitList","couponsIssuedFlag","PageTitle","subTitle","Card","CardActionArea","LabelItem","LabelItemRed","ValueItem","ReservationCard","childName","isTodayConditionInput","isCpuponFlag","reservationNo","UsageHistoryCard","Tab","Spacer","TabBar","_props$onChange","call","Label","splitAmount","Content","TimeAmountContent","subValue","subHour","columnSpacing","ExistResultMessageCard","CouponCenterGItem","CouponlimitDateListCenterGItem","MinusCircleOutlineBlackIcon","DoNotDisturbOnOutlinedIcon","PlusCircleOutlineBlackIcon","AddCircleOutlineIcon","CouponLimitDateListGItem","CouponLimitDateHeaderGItem","Coupon","activeChildId","changeChild","activeTabValue","changeTab","reservations","usageHistorys","couponsIssues","_locationState$tabVal","load","isInitialize","loadedChilds","_callGetChildren","callGetChildren","callGetReservations","callGetUsageHistorys","callGetCouponsIssues","isShownCouponLimitDateList","setIsShownCouponLimitDateList","toggleDetail","contents","limitDateList","Collapse","in","getUseReason","DecodeMstCategory","executePostDecodeMstByCategories","getDecodeMstByCategories","returnDecodeMst","res","decodeMst","getDecodeMstName","decode","findDecode","find","String","getDecodeMstValues","categoryObject","acc","getLocationStatus","locationStatus","sendAnalyticsRecord","Analytics","AcceptAgeIcon","FaceIcon","AcceptWebReservationIcon","ComputerIcon","InquiryIcon","LinkIcon","MuiLinkIcon","LocationIcon","LocationOnIcon","PostalCodeIcon","SignpostIcon","ProjectIcon","BusinessIcon","TelIcon","CallIcon","TimeIcon","AccessTimeIcon","TrainIcon","MuiTrainIcon","UsageIcon","EditIcon","WalkIcon","DirectionsWalkIcon","Image","imgUrlFileName","imageUrl","reverse","substring","lastIndexOf","loading","CarouselBase","Carousel","ul","paddingInlineStart","userSelect","MainCarousel","isClicableItem","DialogCarousel","ContainImage","objectFit","MainImage","ThumbImage","DialogImage","ImageCarousel","dialogState","setDialogState","images","thumbImages","dialogImages","onClickItem","initialIndex","showStatus","showThumbs","showIndicators","infiniteLoop","renderThumbs","selectedItem","Tag","GRID_SIZE","NORMAL","LONG","COMMON","NORMAL_ONLY_DAY","COMMON_ONLY_DAY","useGenerateUsageFeesCommon","getCommonLunchSnackFee","fees","feesFilteredCommonLocation","fee","existsFeesFilteredCommonLocation","allLunchFees","timeBasedFee","lunchFeeDisplayFlag","lunchFee","allSnackFees","snackFeeDisplayFlag","snackFee","isSameLunchFeeAll","isSameSnackFeeAll","getOtherFeeSettingsForCommonLocation","otherFeeSettings","hasOnlyDay","otherFeeSetting","otherFeeDisplayName","defaultFee","gridSize","getFeeTimeSettings","feeTimeSettings","ageCategoryId","feeTimeSetting","scheduledDayType","overtimeFee","timeUnitType","getOtherFeeSettings","useUsageFeeSetting","usageFeeSetting","feeNote","generateUsageFeesByAgeRegionBasedFees","getFeeTitle","ageRegionBasedFee","ageRegionBasedFeeType","ageRegionBasedFeeDayType","ageCategories","ageRegionBasedFees","usageFees","commonFees","hasAgeRegionBasedFees","hasFeeTimeSettings","hasOtherFeeSettings","ageCategory","filteredAgeRegionBasedFees","usageFee","useGenerateUsageFeesByAgeRegionBasedFees","generateUsageFeesByTimeBasedFees","formatRanges","timeBasedFees","applicableFeeStartTime","applicableFeeEndTime","hasTimeBasedFees","filteredTimeBasedFees","sort","b","ranges","applicableFee","useGenerateUsageFeesByTimeBasedFees","generateUsageFees","calculationPattern","shouldShowNote","shouldShowSetting","MoneyIcon","CurrencyYenIcon","FeeGItem","FeeItem","shouldShowTitle","feeIndex","UsageFeeSetting","columns","usageFeeKey","ItemIcon","FeeText","FeeNotion","rowGap","DocumentIcon","TextSnippetIcon","DetailGItem","AlignStartGItem","WrapTopGItem","SearchFlagGItem","UsageList","usages","usage","FacilityDetail","_facility$acceptStart","_facility$acceptStart2","_facility$acceptStart3","_facility$acceptEndAg","_facility$acceptEndMo","_facility$acceptEndDa","useReason","availabilityBaseDate","onClickLink","setFacility","setUseReason","setDecodeMst","setUsageFeeSetting","setLocationStatus","facilityDto","useReasonDto","resDecodeMst","resUsageFeeSetting","resLocationStatus","documentInfo","preventDefault","documentFileUrl","documentFileName","blob","_documentInfo$documen","URL","createObjectURL","revokeObjectURL","lastSegment","isInterviewSlots","interviewDailyAcceptFlag","isPreinterviewAccept","isNotLoginCalendarDisplayFlag","notLoginCalendarDisplayFlag","isInterviewRequired","interviewMethodFlag","acceptAgeFrom","acceptStartAge","acceptStartMonth","acceptStartDay","acceptStartAgeGradeFlag","acceptAgeTo","acceptEndAge","acceptEndMonth","acceptEndDay","acceptEndAgeGradeFlag","irregularDisplayType","displayNameForCitizenIrregular","emergencyDisplayType","displayNameForCitizenEmg","refreshDisplayType","displayNameForCitizenRefresh","AvailabilityPageLocationState","activeDate","classFlag","homePageUrl","nearestStation","timeFromStation","inquiryTime","openTimeWeekday","openTimeSaturday","openTimeHoliday","ageNote","searchFlagNames","documents","getUsageGuidStr","immediatelyReservationFlag","cancelWaitAcceptFlag","postponeCancelWaitAcceptFlag","isLottery","usageGuideStr","executeGetFacilityReservationsWeekCitizen","promiseAllConcurrency","promiseFactories","maxWorkerCount","workIdx","workers","p","idx","getDecodeMstValue","promises","decodeMstInputList","getReservation","decodeMstValue","canUpdate","canCancel","reservationDatetime","reservationChangeDatetime","childKana","childBirth","childGender","hasMedicalDocSubmitted","symptomOther","diagonosis","diagonosisOther","diagonosis2","diagonosisOther2","epidemic","epidemicOther","rxMedicineFlag","otcMedicineFlag","bodyTemperature","febrileSeizuresFlag","emergencyAction","emergencyActionNote","weight","eatingMethod","eatingMethodDetail","milkAmount","milkFrequency","foodAllergyFlag","eatingAbility","sleepMethod","toiletAbility","considerations","reductionType","goingToFacilityDatetime","goingHomeDatetime","citizenNote","useReasonOther","hospitalVisitDatetime","hospitalName","facilityInputAnswers","medicalDocs","i","medicalDocKey","fileNameKey","medicalDoc","delFlg","tempUploadKey","attachedDocs","attachedDocKey","attachedDoc","inputFields","curr","facilityReservationInputFieldId","answer","order","childInfoList","childInfo","docs","hasSubmitted","symptom","first","select","second","medicine","rx","otc","temperature","febrileSeizures","note","method","detail","foodFlag","reduction","hospitalInfo","facilityInputFields","formUseReason","setStringifyNamesChildInfoList","stringifySelectBox","goingDatetimeConverted","goingHomeDatetimeConverted","useFromDatetimeConverted","useToDatetimeConverted","parentInfo","goingTime","goingToFacilityDate","goingToFacilityTime","goingHomeDate","goingHomeTime","stringifyCheckBox","param","otherParam","tmpArray","tmpData","_decodeMst$find","findData","c","otherParamTrigger","targetDecodeMstData","trigger","trimStart","getDocSubmitStatus","filterdDocs","doc","docSubmitStatusTranslationMap","getDocSubmitStatusName","DECODE_MST_INPUT_LIST","brestFeedingDetail","weaningDetailOptions","getReservationDecodeMstValue","returnChildInfo","getMedicalDocSubmitStatus","medicalDocList","_combineDecimalParts","_combineDecimalParts2","_combineDecimalParts3","getDiagonosisDecodeMstValue","createChildInfoList","selectedChildrenIds","inputDiagonosis","reservationData","_inputDiagonosis$firs","_inputDiagonosis$seco","selectedChildId","_inputDiagonosis$firs2","_inputDiagonosis$seco2","createChildInfoListForLottery","getFacilityMapByUsageDateElapsed","usageDateElapsedSet","facilities","usageDateElapsed","Map","getAvailabilitiesReservationNo","getInitialSelectedUsageApiYmds","reserveEntry","usageDatetimes","getAvailabilitiesByDays","childrenIds","targetApiYmds","concatedSelectedChildrenIds","targetDates","purposeOfUseValue","executeGetFacilityReservationsDays","getAvaiabilitiesForWeek","selectedChildIds","lotteryReservationNo","isUsageDatetimeUpdated","prevUseFromDatetime","prevUseToDatetime","currUseFromDatetime","currUseToDatetime","getUseReasonMaster","getAcceptBirthdayFrom","datetime","getAcceptBirthdayTo","resultDate","maxReservableBirthday","getChildrenData","childBirthday","executeGetFacilityReservationsWeekPublic","isChildBirthdayInvalid","min","max","beforeMin","overMax","MuiEditIcon","RemoveIcon","RemoveCircleIcon","statusValidator","availabilities","errorStatuses","errorStatus","availability","duplicationValidator","otherInputs","_v$value","isBefore","exclusiveStatusValidator","selectionAvailabilities","exclusiveStatus","selectedDatetimes","selectionAvailability","_value","selectedDatetime","isSameReservationKind","statusMustBeValidator","mustBeStatus","findWaitAvailabilityStatus","_findAvailability","findAvailability","SelectedRangeTextBox","_errors$props$arrayNa","_errors$props$arrayNa2","arrayName","fieldName","availabilityMapValues","availabilityMap","unmountRef","useUnmountRef","setSelectionAvailabilities","useSafeState","setStateOrig","allInputs","_props$previousRange","isMultiple","previousRange","availabilitiesExcludePrevious","selectedAvailabilitiesExcludePrevious","currentInput","useImperativeHandle","isSingleSlotSelection","newInput","selectDateRange","differenceInCalendarDays","baseDateOfTime","_findWaitAvailability","putInitialInputs","_findWaitAvailability2","initialValidationAvailabilityMap","onClickEditHandler","onClickEdit","onClickRemoveHandler","onClickRemove","readOnly","isReadonly","focused","isActived","calendarChangeRestriction","statusLabels","getDateColor","getSlotCellColor","activeRange","keyDate","allRange","isWaiting","isDisabled","AvailabilityTableBox","EdgeCellBox","borderLeft","DateRowBox","DateCellBox","borderTop","SlotRowBox","SlotTimeCellBox","_ref6","isSingle","SlotCellBox","_ref7","slotStatus","isClickable","ChangeBaseDateButton","onChangeBaseDate","formatTimeLabelsByTimeRange","formatTimeLabelsByAmPm","getAvailabilityMapKey","timeIndex","changeRestriction","getSlotStatuses","minutesFromBaseDate","weekDates","isDisplayOnly","_availability$range$f","mapKey","addMinutes","isChangeSelectable","isSameDay","toCalAvailabilities","_ref8","statuses","statusEntry","startTime","endTime","toAvailabilityMap","_ref9","_ref10","AvailabilityCalendar","rangeMap","stepCallback","addDays","addWeeks","previousBaseDate","nextBaseDate","formatTimeLabelsByAllDay","receptionTimeName","formatTimeLabels","timeRanges","firstAvailability","_ref11","targetRange","labels","initialValidationAvailabilities","initialInputs","setInitialInputs","newInputs","watchedArrayInputs","useWatch","currentArrayInputs","allRanges","_currentArrayInputs$m","activeIndex","setActiveIndex","activeRef","activeInput","appendInput","fieldsLength","removeInput","editInput","getSlotCellClickHandler","_activeRef$current","_props$isSingleSlotSe","previousButton","nextButton","getDay","_ref12","_activeInput","_slotStatus$availabil","_slotStatus$availabil2","_createElement","DateSelection","FacilityLinkedName","FacilityNoteCard","textInputTypeValue","UseReasonDetailRadioGroup","useReasonName","useReasonDetail","useReasonDetailFlags","showValueLabels","_","_useReasonDetailFlags","useReasonDetailCategory","detailItemFlag","showAnyDetailUseReason","textInputType","UseReasonRadioGroup","_facility$detailsIrre","_facility$detailsEmg","_facility$detailsRefr","useReasonOptions","useReasonDetailIrregular","useReasonDetailEmg","useReasonDetailRefresh","isDetailHidden","isDetailHiddenProps","detailUsageFlagIrregular","detailsIrregular","detailUsageFlagEmg","detailsEmg","detailUsageFlagRefresh","detailsRefresh","UseReasonSelection","ChildSelectionGContainer","DiagonosisSelection","diagonosisDecodeMst","changeDropDownSelectedDiagonosis","FacilityDetailAvailability","changeChildBirthday","changeDate","callTel","changeUseReason","handleChangeFirst","handleChangeSecond","nextHistory","urlParams","notifyDateFetchErrorMessage","appendUseReasonDetailDescriptionsIrregular","appendUseReasonDetailDescriptionsEmg","appendUseReasonDetailDescriptionsRefresh","getNotes","acceptLottery","commonFlag","lotteryNote","_facility$detailSetti","_facility$detailSetti2","detailSetting","setting","lotteryNotes","lotteryAcceptType","_facility$lotteryNote","_facility$lotteryNote2","datecriteria","_urlParams$activeChil","historyState","useReasonDetailDescriptionsIrregular","fill","useReasonDetailDescriptionsEmg","useReasonDetailDescriptionsRefresh","useReasonUsageFlagIrregular","useReasonUsageFlagEmg","useReasonUsageFlagRefresh","useReasonCodeValue","minBirthday","maxBirthday","isolationFlag","isolationRoomUsageFlag","prev","resetIsolationFlag","diagonosisValue","_prev$diagonosis","dispMode","CompletionMessageLabel","StatementGItem","AnnotationBox","ApprovalCanselWaitCompletionMessage","FacilityReservationCompletion","displayMode","steps","getProjectMstDataToRefer","usageDates","fieldShowRuleMap","bodyTemp","foodAllergy","fieldOrderRuleMap","getByChildFormFieldRule","useReseravtionSetting","show","mustHospitalInfo","fieldKey","ruleKeyName","fieldFlag","GOING_DATETIME_DISPLAY_METHODS","INPUT_FIELD_USAGE","MEDICAL_DOC_USAGE","ATTACHED_DOC_USAGE","TEMP_FILE_CONDITION","getRegistDataCommon","facilityReserveEntry","_commonInput$lunchFla","_commonInput$snackFla","_commonInput$postpone","_commonInput$preferen","_commonInput$formUseR","_commonInput$formUseR2","_commonInput$formUseR3","_commonInput$formUseR4","commonInput","goingDatetimes","convertGoingDatetimes","goingTimes","cancelWaitFlag","useReasonCategory","useReasonDetailDescription","lunchFlag","snackFlag","postponeCancelWaitFlag","preferenceProvisionCertificateFlag","uploadDate","getRegistDataCommonForPut","convertChildInfoList","getRegistDataCommonForPost","_facilityReserveEntry","postReservation","operationLogDatetime","usageDateForUpload","putReservation","executePutReservation","getDisplayMode","mode","childReservationInfo","_childReservationInfo","_childReservationInfo2","_childReservationInfo3","_childReservationInfo4","_childReservationInfo5","_childReservationInfo6","_childReservationInfo7","_childReservationInfo8","_childReservationInfo9","_childReservationInfo10","_childReservationInfo11","_childReservationInfo12","_childReservationInfo13","_childReservationInfo14","_childReservationInfo15","_childReservationInfo16","_childReservationInfo17","_childReservationInfo18","s","ConvertFalsyValueToUnfilledValueGItem","suffix","isYesNo","ByChildDetailContent","reservationDetail","_childInfo$diagonosis","_childInfo$diagonosis2","_childInfo$symptom","_childInfo$epidemic","_childInfo$medicine","_childInfo$medicine2","_childInfo$medicine3","_childInfo$medicine4","_childInfo$temperatur","_childInfo$medicalDoc","_childInfo$medicalDoc2","_childInfo$hospitalIn","_childInfo$hospitalIn2","_childInfo$hospitalIn3","_childInfo$hospitalIn4","_childInfo$emergencyA","_childInfo$height","_childInfo$weight","_childInfo$eatingMeth","_childInfo$allergy","_childInfo$allergy2","_ref13","_childInfo$eatingAbil","_ref14","_childInfo$actions","_ref15","_childInfo$toiletAbil","_ref16","_ref17","_childInfo$reductionT","_ref18","_childInfo$attachedDo","fieldRule","sortedDetail","_a$rule$order","_b$rule$order","MAX_SAFE_INTEGER","_ref19","_ref20","_keyA","valueA","_keyB","valueB","_ref21","isAnswered","_ref22","Component","ChildContent","_childInfo$childInfo","_childInfo$childInfo2","_childInfo$childInfo3","_childInfo$childInfo4","_childInfo$childInfo5","CommonDetailContent","lunchAcceptFlag","snackAcceptFlag","provisionCertificateInput","formUseReasonUsage","ParentContent","BasicDetailContent","_props$useReason","_props$useReason2","_props$useReason3","_props$useReason4","_props$useReason5","_props$useReason6","_props$useReason7","_props$useReason8","_props$useReason9","isShownStatusItem","displayType","goingDatetimeDisplayMethods","ReservationDetailGItems","_props$reservation$pr","_props$reservation$fo","isShownReservationItem","isShownReservationDatetimeItem","useReasonInput","FacilityReservationConfirmation","reservationReference","reservationResultCode","decide","setProjectMst","setReservationResultCode","toDates","usageDatetime","projectMstData","fetchData","clearFacilityReserveFlg","_reserveEntry$commonI","_reserveEntry$commonI2","_reserveEntry$commonI3","_reserveEntry$commonI4","getReservationDetailWithRequirementSetting","_fromApiHms","cancelNote","cancelLimitHolidayOption","AlertCard","FacilityReservationDelete","goList","deleteEntry","cancelReson","setReservationDetail","isMounted","deletingReservationData","_reservationDetail$us","alertCardConents","ml","deleteReservation","cancelReasonCategory","executeDeleteReservation","FacilityReservationDeleteConfirmation","setDeleteResultCode","couponUsageMinute","couponUsageInputLimitMinute","couponUsageInputLimitTime","getCouponTotalBalanceMinute","coupons","sumVal","postCouponUsage","executePostCouponsUsage","BaseSelect","TimeSelect","partType","minuteStepUnit","maxHour","valueLables","getHourValueLabels","unitCount","getMinuteValueLabels","inputValue","numValue","spliceAmount","_hour","_minute","partValue","TimeAmountSelect","maxMinute","invalidAmount","minMinute","hourStr","minuteStr","StyledDialogContent","CouponUsageDialog","decision","maxAmount","errorMessages","setErrorMessages","usageTimeAmount","CouponBox","UsageTimeBox","FacilityReservationDetail","_reservationDetail$co","reservationUsageMinute","isCanUseCoupon","isUsedCoupon","goCancel","goChange","goTodayConditionInput","couponTotalBalanceMinute","isOpenCouponUsageDialog","openCouponUsageDialog","onCloseCouponUsageDialog","decisionCouponUsage","setCouponTotalBalanceMinute","setIsOpenCouponUsageDialog","nowYmd","isCanUseCouponSysCtrl","isInitDisplay","isDecision","rsvDetail","getUser","reductionInfos","reductionId","coveredFlag","reductionHistoryFlag","reductionName","reductionStartDate","reductionEndDate","emergencyContacts","emergencyContactName1","emergencyContactKana1","emergencyContactRelationship1","company","emergencyContactCompany1","emergencyContactTel1","emergencyContactEmail1","emergencyContactName2","emergencyContactKana2","emergencyContactRelationship2","emergencyContactCompany2","emergencyContactTel2","emergencyContactEmail2","emergencyContactName3","emergencyContactKana3","emergencyContactRelationship3","emergencyContactCompany3","emergencyContactTel3","emergencyContactEmail3","getSendingFlagMailSetting","executeGetSendingFlagMailSetting","isShownPostponeCancelWaitItem","setChildInfo","childrenData","prevChildInfo","_prevChildInfo$medica","_prevChildInfo$medica2","_prevChildInfo$medica3","_prevChildInfo$medica4","_prevChildInfo$medici","_prevChildInfo$medici2","_prevChildInfo$medici3","_prevChildInfo$medici4","_prevChildInfo$febril","_prevChildInfo$allerg","_prevChildInfo$allerg2","_prevChildInfo$allerg3","_prevChildInfo$allerg4","_prevChildInfo$eating","_prevChildInfo$eating2","_prevChildInfo$toilet","_prevChildInfo$toilet2","_prevChildInfo$consid","_prevChildInfo$reduct","_prevChildInfo$reduct2","_prevChildInfo$reduct3","_prevChildInfo$reduct4","_prevChildInfo$attach","_prevChildInfo$attach2","_reserveEntry$facilit","_prevChildInfo$hospit","_prevChildInfo$hospit2","_prevChildInfo$hospit3","_prevChildInfo$hospit4","_prevChildInfo$hospit5","_prevChildInfo$hospit6","_prevChildInfo$hospit7","_prevChildInfo$hospit8","symptomsInput","diagonosisInput","epidemicInput","medicineInput","bodyTemperatureInput","febrileSeizuresInput","emergencyActionInput","heightInput","weightInput","eatingMethodInput","allergyInput","eatingAbilityInput","actionInput","toiletAbilityInput","considerationsInput","reductionInput","consentCheck","attachedDocInput","facilityInputFieldsDisplayFlag","_returnChildInfo$faci","setCommonInputs","_detailSetting$citize","prevCommonInput","returnCommonInput","citizenNoteEntryTemplate","_facility$lunchInitia","_facility$snackInitia","_prevCommonInput$pref","lunchInitialSelect","snackInitialSelect","prevGoingTime","goingToFaclityDatetime","FieldTitle","isSubField","YesNoField","LunchField","SnackField","CancelWaitField","ErrorText","TimePicker","enabledSecondsInput","hideError","timeValue","DesktopTimePicker","ampm","shouldDisableTime","clockType","ErrorTextBase","useFormState","TimePickerWrap","textIndent","GoingTimesField","goingTimeFiled","verticalAlign","PreferenceProvisionCertificateField","minRows","mt","rows","SelectBoxField","selectLabel","selectNameApendix","otherLabel","otherNameApendix","otherTitle","addUnselected","showOtherSelection","selectName","inputWatch","setCurrentInput","optionsConvertedToLabelValue","unshift","shouldShowAdditional","_optionsConvertedToLa","UseReasonField","PreserveLineText","mb","ConsentCheckField","checkNote","CommonFormUnit","lunchAccept","snackAccept","cancelWaitAccept","consentCheckInput","consentCheckNote","DiagonosisField","childNum","firstName","secondName","CheckBoxSelections","customOnChange","handleCheckChange","selectedValue","newValues","CheckBoxField","isOtherRequired","checkBoxRequired","setCheckBoxRequired","otherRequired","setOtherRequired","checkBoxWatch","otherWatch","SymptomField","EpidemicField","MedicineField","NumberBox","showLabel","showError","PADDING","DecimalTypeField","intLabel","fracLabel","unit","intMax","intMin","intPlaceholder","fracMac","fracMin","fracPlaceholder","isIntegerRequired","setIsIntegerRequired","inteName","fracName","watchFractional","integerError","fractionalError","BodyTempatureField","FebrileSeizuresField","executePostReservationAttachment","VALID_FILE","MAX_NAME_LENGTH","MAX_MEGA_BYTE_SIZE","EXTENSION","UrlTextField","FileSelectArea","extentionStr","MedicalDocUploadField","_errors$props$name","_value$fileName","_value$fileName2","registeredFileKey","useFormContext","backetName","fileInputRef","uploadFile","loginUserId","getTempUploadKey","currentDatetime","fileInfo","inputs","ok","err","handleSelectFile","_event$target","_event$target$files","files","_translate","ext","toLowerCase","match","handleClickClear","accept","handleButtonClick","MedicalDocField","submittionName","uploadName","watchUploadFields","watchYesNoField","isOptional","validateMedicalDoc","docIndex","EmergencyActionField","setIsOtherRequired","actionName","actionWatch","HeightField","WeightField","IntegerTypeField","EatingMethodField","methodOptions","brestFeddingDetailOptions","detailOption","setDetailOption","methodName","detailName","milkAmountName","milkFrequencyName","methodWatch","FoodAllergyField","EatingAbilityField","ActionsField","ToiletAbilityField","ConsiderationsField","ReductionTypeField","useConsent","consentNote","nameBase","selectBoxName","showConsent","AttachedDocUploadField","AttachedDocField","FacilityinputField","mustFlag","inputName","ByChildFormUnit","diagnosisOptions","symptomOptions","epidemicOptions","emergencyOptions","eatingMethodOptions","brestFeedingDetailOptions","eatingAbilityOptions","actionsOptions","toiletAbilityOptions","reductionOptions","useReservationSetting","fieldComponents","getProps","BodyTemperatureField","medicalDocNote","reductionConsentInput","reductionNote","reductionConsentNote","isMultipleChild","sortedFields","facilityFields","NoteField","FacilityReservationForm","goingTimeFileds","showMessages","decodemst","cancelSendingFlag","_reserveEntry$isolati","setShowMessages","setProjectmst","childrenWatch","_data$formUseReason","_data$formUseReason2","isError","goingDatetimeLimit","difference","isStautsWait","childrenDataPromises","sendingFlagInfo","childResponse","mailId","sendingFlag","batchUpdater","messageContent","fromCancelLimitTime","isSingleChild","DetailComponent","CommonFormUnitComponent","ByChildFormUnitComponent","formContents","CheckBoxesGroup","checkedChildren","fieldOnChange","handleChange","ChildName","ThreeRowsGContainer","ChildSelection","_childs$","changeSelectedChildIds","changeDropDownSelectedChildId","isSelectable","variant","FormGroup","showOtherFlag","isrequired","BottomButtons","RESERVATION_STEPS","ReservationStepBar","reservationChangeRestrictionToCalendarChangeableMap","FacilityReservationSelection","isShowFirstOTher","isShowSecondOTher","_state$diagonosisDeco","_state$diagonosisDeco2","_state$diagonosisDeco3","_state$diagonosisDeco4","lotteryReserveEntry","initialized","prevReservation","backedFromNextPage","isCertificateUseReasonViewFlags","irregularFlag","emgFlag","refreshFlag","usageDesiredDatetimes","isInsertParams","_reserveEntry$childIn","_reserveEntry$childIn2","_reserveEntry$childIn3","_reserveEntry$childIn4","_locationState$childr","_reserveEntry$childIn5","_reserveEntry$childIn6","_reserveEntry$childIn7","_reserveEntry$childIn8","_prevReservation$chil","_prevReservation$chil2","_prevReservation$chil3","_prevReservation$chil4","childrenResponse","certificateFlag","certificateControlAtypical","useFlagAtypical","certificateControlEmergency","useFlagEmergency","certificateControlRefresh","useFlagRefresh","canGetAvaiabilitiesForWeek","scrollTo","behavior","updatedselectedChildIds","facilityMap","entriesArray","_state$selectedChildI","minReservationMinute","reservableUnitPatternMinute","reservableUnitPattern","prevReservations","usageData","crossBusinessFlg","_state$prevReservatio","duplicateCtrlStatus","strDuplicateCtrlStatus","formatDateToYYYYMMDD","dateTime","isValidateError","indexOfDescription","_state$prevReservatio2","usageBaseDate","rest","toDateString","citizenBulkReservationAcceptFlag","_searchCondition$area","_searchCondition$ages","_searchCondition$rese","_searchCondition$proj","_searchCondition$faci","_searchCondition$othe","_searchCondition$purp","searchCondition","areas","ages","freeWord","facilityCategories","otherDetailConditions","purposeOfUses","useLayoutEffect","areaIds","searchFlagNos","getFacilities","targetFacilitySearchSetting","ageSearchFlag","areaSearchFlag","reservationSearchFlag","otherSearchFlag","useReasonSearchFlag","resultDto","projects","searchFlags","allAges","getFacilityConditionInfo","addMonths","isProjectSelected","getisProjectSelected","SearchGlassIcon","getGridNumber","toggle","x","delete","ToggleButtonGroup","_field$value","xsColumns","smColumns","mdColumns","lg","lgColumns","UsageDateGItem","down","FacilitySearchCondition","_codeMaster$ages","_codeMaster$areas","_codeMaster$reservati","_codeMaster$projects","_codeMaster$facilityC","_codeMaster$otherDeta","_codeMaster$otherDeta2","_codeMaster$purposeOf","_formMethods$formStat","_map$label","mapHide","mapShow","_history$location$sta3","_history$location$sta4","_sortOrders$find$valu","_sortOrders$find","conditionExpanded","setConditionExpanded","setActiveTabValue","isResultDirty","conditionTags","areaTags","toTags","ageTags","acceptWebReservationTag","projectTags","categoryTags","otherTags","purposeOfUseTags","tag","getConditionTags","sortOrders","changeOrder","onClickCurrentLocation","coords","onClickFacilityPin","useSearch","onChangeConditionExpanded","expanded","onChangeTab","onClickFacilityName","checkTransition","isNoSearchResult","_searchCondition$curr","_searchCondition$curr2","_toInts","_values$map","codeMap","_codeMaster$map","toCodeMap","_codeMap$get","Accordion","Summary","AccordionSummary","Detail","AccordionDetails","AccordionCard","elevation","expandIcon","ExpandMoreIcon","ArrowUpIcon","ArrowUpwardIcon","Fab","opacity","ScrollTopFab","setIsShown","onScroll","documentElement","scrollTop","Zoom","CurrentLocationIcon","GpsFixedIcon","numberPinSvgViewBox","getFontScale","serialNumber","createNumberPinSvg","textFontSize","d","transform","stroke","strokeLinecap","strokeLinejoin","strokeWidth","y","textAnchor","dominantBaseline","NumberPinIcon","useTheme","NumberPin","createSvgIcon","viewBox","pinIconSize","mapContainerStyle","defaultMapPan","center","zoom","CurrentLocationButton","getPinIconUrl","xmlns","jsx","ReactDOMServer","renderToStaticMarkup","MapPanning","useGoogleMap","_props$center","_props$zoom","panTo","lat","lng","setZoom","MapMarker","onClickMarker","isHidePinNumber","mapSize","Marker","scaledSize","FacilityMap","setMapSize","controlContainer","setControlContainer","infoFacility","setInfoFacility","renderControlContainer","ReactDOM","render","ThemeProvider","onLoadScript","google","maps","Size","infoOffset","onLoadMap","isHideCurrentLocation","controls","ControlPosition","RIGHT_BOTTOM","_props$onClickFacilit","LoadScript","googleMapsApiKey","onLoad","GoogleMap","InfoWindow","pixelOffset","onCloseClick","LazyMount","setIsMounted","textOverflow","SearchConditionTag","TitleIconGItem","TitleGItem","ItemIconBox","ItemLabel","FacilityImage","maxHeight","FacilityCard","handleClickFacilityName","isDisabledImage","titleIcon","VirtuosoGContainer","scrollToIndex","virtuoso","align","VirtuosoComponents","listRef","Item","isShownPin","mapMinHeight","Virtuoso","components","useWindowScroll","increaseViewportBy","initialTopMostItemIndex","itemContent","MemoContent","ResultBox","virtuosoRef","findIndex","ConditionTagGItem","MapGItem","OrderGItem","FacilitySearchResult","isMapShown","getLotteryReservation","canChange","siblingsLotteryResultReferenceFlag","LOTTERY_RESERVATION_DECODE_MST","getLotteryReservationDecodeMstValue","getChildren","_prevChildInfo$siblin","_reserveEntry$facilit2","toISOString","CommonFormUnitForLottery","executePostLotteryReservationAttachment","hasValidDocs","SiblingsLotteryResultReferenceFlagField","ByChildFormUnitForLottery","showSiblingsLotteryResultReferenceFlag","_rule","FacilityLotteryReservationForm","lotteryReservationReference","entryInput","_entryInput$preferenc","_entryInput$lunchFlag","_entryInput$snackFlag","_entryInput$citizenNo","_formUseReason","executeGetSameAddChildInterviews","lotteryReservation","interview","acceptNotice","getProjectsMstFullHistories","activeStatusSearchCondition","getLotteryReservations","executeGetLotteryReservations","getInterviews","executeGetInterviews","interviewDate","interviewStartDatetime","interviewEndDatetime","GetAcceptNotice","_entryInput$formUseRe","_entryInput$formUseRe2","_entryInput$formUseRe3","_entryInput$formUseRe4","convertChildInfo","_entryInput$preferenc2","_entryInput$formUseRe5","_entryInput$formUseRe6","_entryInput$formUseRe7","_entryInput$formUseRe8","_facilityReserveEntry2","_facilityReserveEntry3","executePutLotteryReservation","_goingTimes$map","getLotteryAnnouncementDatetime","lotteryAnnouncementDatetime","executeGetLotterySettings","_props$useReason5$det","_props$useReason7$det","_props$useReason9$det","LotteryReservationDetailGItems","_props$lotteryReserva","FacilityLotteryReservationConfirmation","_reserveEntry$useReas","clearLotteryReserveFlg","_reserveEntry$useReas2","FacilityLotteryReservationCompletion","announcementDatetime","onClickShowReservationList","_location$state","FacilityLotteryReservationDetail","lotteryReservationDetail","setLotteryReservationDetail","_reservation$formUseR","_reservation$formUseR2","LOTTERY_CANCEL_DECODE_MST","lotteryCancelReason","FacilityLotteryReservationCancel","cancelReasonOptions","facilityData","_lotteryReservation$f","_lotteryReservation$f2","decodeMstData","_decodeMst$lotteryCan","executeDeleteLotteryReservation","FacilityLotteryReservationCancelConfirmation","getChildData","FacilityLotteryReservationUpdateSelection","_state$availabilities","selectedChildName","selectedUseReason","ExternalLinkIcon","OpenInNewIcon","getFAQs","getFaqFootnoteGuideText","faqFootnoteGuideText","QaCard","question","qaNum","setOpen","setOpenState","toggleAccordion","convertToReactNode","TrademarkNoticeGItem","FaqStack","Faq","_guideText$guideTextC","faqList","setFaqList","categList","lastCategory","faq","_faq$category","qaList","qa","qaIndex","plainText","matches","str","CityFacilityInformationCard","informaionNo","FlexItem","LeftItem","CenterItem","RightItem","MiddleItem","CenterMiddleItem","LabelItemBase","ValueItemBase","Home","firstChildcareTicketButton","link","linkUrl","linkName","linkId","accountIdentityVerifySubmitCategory","useQueryParams","search","searchParams","decodeURIComponent","queryParams","setResultCode","verifySubmit","resendEmail","sendCode","IdentityRedirect","toPathname","IdentityEmailVerification","IdentityVerification","Information","getInformation","executeGetInformation","AccountIcon","PersonIcon","AttachmentLinks","attachments","errorFlg","setErrorFlg","signedUrl","IconBox","BodyBox","HeaderBodyDivider","InformationDetail","information","setInformation","attachment1FileName","attachment1Key","attachment2FileName","attachment2Key","attachment3FileName","attachment3Key","CompletionMessageGItem","AttentionMessageLabel","InterviewReservationCompletion","interviewRequestCompletionInformation","interviewRequestCompletionNotice","_facility$interviewDa","_facility$interviewAc","_facility$interviewRe","_facility$interviewRe2","_facility$facilityNam","_facility$tel","_facility$inquiryTime","getInterview","interviewNo","reservationCancelDatetime","hasTempDoc","tempDoc1Name","tempDoc2Name","tempDoc3Name","tempDoc4Name","tempDoc5Name","canCancelWait","postInterview","userUpdateDatetime","facilityInterviewAcceptMethod","interviewDatetime","interviewDatetimes","interviewFromDatetime","interviewToDatetime","applicationChildren","parentName","parentKana","childAllergyFlag","childAllergy","childMedicalHistoryFlag","childMedicalHistory","facilityNumber","childUpdateDatetime","tempFiles","tempFile","putInterview","interviewUpdateDatetime","sameUpdateFlag","sameAddChildInfo","sameAddChildren","interviewsNo","executePutInterview","getProjectMstData","InterviewReservationConfirmation","interviewResultCode","isConfirmDialogOpen","onConfirmDialogClose","onConfirmDialogNo","onConfirmDialogYes","hasInterviewdocs","setFacilityName","setIsConfirmDialogOpen","setAddChildInfo","setInterviewResultCode","setHasInterviewdocs","interviewDocFlag","decideFinal","success","_facility$interviewDa2","_facility$interviewAc2","decideFinalFlag","newInterviewDate","newInterviewFromDatetime","newInterviewToDatetime","getSameAddChildInterviewsRes","_child$tempFile","getInterviewDetail","interviewCancelLimit","interviewCancelLimitTime","interviewCancelNote","interviewCancelExcludeHolidayFlag","interviewCancelLimitHolidayOption","interviewImmediatelyReservationFlag","isInterviewDocsFlagOn","InterviewDetailContent","InterviewReservationDetail","interviewDetail","setInterviewDetail","UnitTitle","hideLink","linkTo","CATEGORY_NAME","ChildAllergyUnit","sectionLabel","targetCategory","ChildDiseaseUnit","CATEGORY_NAMES","ChildEatingUnit","_childEating$eatingSt","targetCategories","childEating","hasEatingStyleData","eatingStyle","eatingFlag","hasEatingData","categoryName","ChildFebrileSeizureUnit","executeGetChildrenHospitalAdmission","HOSPITAL_ADMISSION","SUB_CATEGORIES","ChildHospitalAdmissionUnit","_child$hospitalAdmiss","_child$hospitalAdmiss2","_child$hospitalAdmiss3","hospitalAdmissionCategory","subCategories","mst","subCategoryMap","recordCnt","DataRow","admissionAge","admissionMonth","ChildMedicalHistoryUnit","ChildPredispositionUnit","childPredisposition","predispositionFlag","ChildSymptomUnit","ChildVaccinationUnit","ADDITIONAL_TABLES","_reserveEntry$childre","_state$facility$inter","watchAllFields","userInterviewPermitCount","setUserInterviewPermitCount","childInterviewPermitCount","setChildInterviewPermitCount","isSubmitDialogOpen","setIsSubmitDialogOpen","setChildId","setCategory","allergyCategory","setAllergyCategory","diseaseCategory","setDiseaseCategory","medicalHistoryCategory","setMedicalHistoryCategory","symptomCategory","setSymptomCategory","vaccinationCategory","setVaccinationCategory","setprojectMst","isDisabledResidenceCategory","isDisabledBirthday","projectMstResp","isAnnualUpdate","annualUpdateFlag","initializeUpdate","categoryMsts","EATING_KEYS","FEBRILE_SEIZURE","HOSPITAL_ADMISSION_KEYS","PREDISPOSITION_KEYS","ALLERGY","DISEASE","MEDICAL_HISTORY","SYMPTOM","VACCINATION","getCategoryMsts","getInitialInputs","getInitialInputsUpdate","goNext","_child$childAllergyFl","_child$childMedicalHi","confirmationData","file","filteredChildIds","closeSubmitDialog","openSubmitDialog","hasInterviewRequestNotice","interviewRequestNotice","_facility$interviewCi","interviewCitizenNoteEntryTemplate","childOrig","createTempFiles","interviewsUpdateDatetime","tempDoc1","tempDoc2","tempDoc3","tempDoc4","tempDoc5","_facility$interviewCr","pmInterviewCrossManagementFlag","valueCounts","doDuplicatelist","TempFileUploadField","_preObj","preObj","currentWord","InformationAndNote","TempFileField","tempFileNote","fieldState","InformationAndNoteWithBr","DivWithBr","InterviewReservationForm","_watchAllFields$child","tempDocField","interviewDocNote","interviewRequestInformation","interviewNote","_watchAllFields$child2","_watchAllFields$child3","_watchAllFields$child4","_watchAllFields$child5","isAvailabilityOfApplication","isInterviewMethodFlagOn","childrenInfo","setChildrenInfo","childrenName","interviewDesiredDatetimes","initialSelectedUsageApiYmds","interviewAvailabilities","getInterviewAvailabilities","searchDate","availabilitiesInterviewNo","getAvailabilitiesInterviewNo","getChildrenInfo","onNextPrevExec","facilityInterviewAvailabilities","getFacilityInterviewAvailabilities","getFacilityMapByInterviewDateElapsed","interviewReservableUnitPattern","_state$interview","interviewDateElapsedSet","interviewDateElapsed","interivew","getAvailabilities","availabilitiesResponse","executeGetInterviewReservationsWeekCitizen","facilityAvailabilities","executeGetInterviewReservationsDays","interviewChangeRestrictionToCalendarChangeableMap","InterviewReservationSelection","interviewCancelWaitAcceptFlag","interviewReceptionTimePattern","interviewReceptionTimeName","InterviewReservationDelete","_detail$childId","deleteInterview","executeDeleteInterview","InterviewReservationDeleteConfirmation","_deleteEntry$childId","_deleteEntry$childId2","getSessionSettingMst","mfaPeriod","ButtonM","SuccessStatusLabel","NoticeGContainer","CustomDivContainer","CustomDivSubContainer","SsoButtonContainer","SsoLoginButton","Login","sessionSettingMst","setSessionSettingMst","sessionSettingMstRes","isLastOtpLoginExpired","lastOtpLoginDatetimeString","mfaPeriodString","lastOtpLoginDatetime","today","challengeName","authLogRes","isVerifiedPending","batch","_sessionSettingMst$mf","verifyMfa","_sessionSettingMst$mf2","forgotPassword","BackToLoginButton","DescriptionContainer","ForgotPassword","forgotPasswordSubmit","EmptyRow","ResetPassword","completeNewPassword","email_verified","phone_number_verified","NewPassword","DownloadIcon","MuiDownloadIcon","Manual","citizenFileName","setCitizenFileName","bucketName","s3","S3Client","credentials","currentCredentials","Bucket","Prefix","listObjectsResults","send","ListObjectsCommand","Contents","pdfFiles","Key","LastModified","prefixes","fileNameList","_folderFiles$sort$","regex","RegExp","targetObject","_a$LastModified$getTi","_a$LastModified","_b$LastModified$getTi","_b$LastModified","timeA","_targetObject$Key","targetFileName","pop","trimedFileNameList","downloadClick","_listObjectsCommandOu","_targetFiles$","folderNum","targetFiles","_a$LastModified$getTi2","_a$LastModified2","_b$LastModified$getTi2","_b$LastModified2","s3Object","s3ObjectKey","endsWith","targetUrl","GetFormatMessage","messageStr","PdfConponent","gap","ChildFamilyHospitalUnit","isNoData","_category$altCategory","altCategoryName","cn","ChildNormallyUsedFacilityUnit","displayCategoryKeys","ChildUsuallyMedicinesUnit","getText","executeGetChildrenDiseaseTest","ChildDiseaseTestUnit","_child$diseaseTest","_filteredDiseaseTest$","diseaseTestCategory","filteredDiseaseTest","testDate","testResult","testName","getTestResultName","testResultMst","_testResultMst$option","targetOption","opt","optionName","ChildTreatmentUnit","_child$treatment","treatmentFlag","DEFAULT_PROJECT_ID","isOpenReductionsHistory","setIsOpenReductionsHistory","reductionHistoryState","setReductionHistoryState","FAMILY_HOSPITAL_KEYS","NORMALLY_USED_FACILITY_KEYS","USUALLY_MEDICINES_KEYS","DISEASE_TEST_KEYS","TREATMENT_KEYS","goModify","onClickReductionHistories","getReductionHistories","onCloseReductionsHistory","executeGetReductions","ChildContentAttribute","modifyChildId","showModifyLink","unSetLabel","childrenBloodType","isHideAllergy","isShowUseEnd","AttributeGContainer","UserContent","LabeGlItem","ReductionsDialog","Member","MemberAddChild","_currentHistory$locat","_currentHistory$locat2","currentHistory","addEntry","toChild","postChild","MemberAddConfirmationChild","childrenResultCode","setChildrenResultCode","MemberModifyChild","setInterviewPermitCount","modifyEntry","FlexibleCheckBoxesUnit","existFlagName","indentOff","existFlag","xsOutside","xsInside","checkExistence","OptionForm","masterData","MasterDataForm","flagValue","addQuestions","addQuestion","AddQuestionUnit","topName","questionText","_addQuestion$addQuest","_addQuestion$addQuest2","addQuestionOptions","op","optionText","optionValue","FORM_DEFAULT_VALUES","childrenUpdateDatetime","CATEGORY_KEY","setCategoryMst","allergyResp","_data$childrenUpdateD","getRegistAllergy","inputData","executePutChildrenAllergy","getAllergyForms","allergyForm","matchedAllergy","addAnswer","allergyItemName","useAllergyMedicine","_value$addAnswer$alle","_value$addAnswer","_value$addAnswer$symp","_value$addAnswer2","_value$addAnswer$trea","_value$addAnswer3","_value$addAnswer$conc","_value$addAnswer4","_value$addAnswer$useA","_value$addAnswer5","MemberModifyChildAllergy","_child$familyHospital","getRegistFamilyHospital","MemberModifyChildFamilyHospital","setUpdateDatetime","_child$detailUpdateDa","regData","InputForm","_categoryMst$altCateg","_categoryMst$altCateg2","_categoryMst$altCateg3","_categoryMst$altCateg4","TextBoxAfterText","afterText","EXIST_FLAG_NAME","setDetailUpdateDatetime","febrileSeizureUpdateDatetime","setFebrileSeizureUpdateDatetime","_febrileSeizureResp$r","_febrileSeizureResp$r2","febrileSeizureResp","executeGetChildrenFebrileSeizure","getRegistFebrileSeizure","executePutChildrenFebrileSeizure","childrenFebrileSeizure","_child$febrileSeizure","febrileSeizure","firstSeizureAge","lastSeizureAge","count","commonInfo","_data$febrileSeizureF","regFebrileSeizure","MemberModifyChildFebrileSeizure","_febrileSeizureCatego","_febrileSeizureCatego2","_febrileSeizureCatego3","febrileSeizureCategory","_categoryMst$altCateg5","_categoryMst$altCateg6","labelData","ButtonOutlinedWarningS","hospitalAdmissions","hospitalAdmissionResp","getRegistHospitalAdmission","executePutChildrenHospitalAdmission","onFieldAppend","onFieldRemove","childrenHospitalAdmission","targetData","_e$reason","deleted","comparer","_a$admissionMonth","_b$admissionMonth","seq","MemberModifyChildHospitalAdmission","_hospitalAdmissions$i","onRemove","AdmissionDivider","ShortNumberBox","admissionAgeError","admissionMonthError","_admissionAge$altCate","_reason$maxLength","medicalHistory","medicalHistoryResp","executeGetChildrenMedicalHistory","resetField","_data$detailUpdateDat","getRegistMedicalHistory","executePutChildrenMedicalHistory","getMedicalHistoryForms","medicalHistoryForm","matchedMedicalHistory","mh","medicalHistoryId","MemberModifyChildMedicalHistory","_child$normallyUsedFa","getRegistNormallyUsedFacility","_toApiYm","facilitiesAdmissionString","MemberModifyChildNormallyUsedFacility","facilitiesTypeList","setFacilitiesTypeList","_decodeMst$DecodeMstC","_decodeMst$DecodeMstC2","_categoryMst$altCateg7","_categoryMst$altCateg8","_categoryMst$altCateg9","getRegistUsuallyMedicines","MemberModifyChildUsuallyMedicines","radioWidth_xs","radioWidth_sm","disease","diseaseResp","executeGetChildrenDisease","getRegistDisease","executePutChildrenDisease","getDiseaseForms","diseaseForm","matchedDisease","diseaseId","MemberModifyChildDisease","vaccination","vaccinationResp","executeGetChildrenVaccination","_data$vaccinationFlag","regVaccinationData","getRegistVaccination","executePutChildrenVaccination","childrenVaccination","_child$vaccinationFla","getVaccinationFormInputs","vaccinationForm","matchedVaccination","_matchedVaccination$c","_matchedVaccination$n","vaccinationId","vaccinationDate","_value$count","_value$note","MemberModifyChildVaccination","_targetCategory$altCa","items","topFlagValue","_item$addQuestionOpti","listData","eatingUpdateDatetime","setEatingUpdateDatetime","_eatingResp$result$ea","_eatingResp$result","_eatingResp$result$ea2","eatingResp","executeGetChildrenEating","getRegistEating","executePutChildrenEating","childrenEating","_childrenEating$eatin","getEatingStyleForms","babyFoodStart","babyFoodEnd","regEatingStyle","regEating","getRegistEatingStyle","eatingStyleForm","matchedEatingStyle","MemberModifyChildEating","Typography","symptomResp","executeGetChildrenSymptom","getRegistSymptom","executePutChildrenSymptom","getSymptomForms","symptomForm","matchedSymptom","symptomId","MemberModifyChildSymptom","predispositionResp","executeGetChildrenPredisposition","getRegistPredisposition","executePutChildrenPredisposition","childrenPredisposition","_childrenPredispositi","getPredispositionForms","predispositionForm","matchedPredisposition","MemberModifyChildPredisposition","diseaseTests","_diseaseTestCategory$","diseaseTestResp","getRegistDiseaseTest","executePutChildrenDiseaseTest","childrenDiseaseTest","convertDiseaseTest","diseaseTestForm","_e$testName","_item$code","MemberModifyChildDiseaseTest","_testResult$options$m","_testResult$options","_diseaseTests$i","_testResult$options$m2","_testResult$options2","_testName$maxLength","treatmentUpdateDatetime","setTreatmentUpdateDatetime","_treatmentResp$result","_treatmentResp$result2","treatmentResp","executeGetChildrenTreatment","getRegistTreatment","executePutChildrenTreatment","childrenTreatment","convertTreatment","treatmentForm","appearanceDate","regTreatment","MemberModifyChildTreatment","putChild","executePutChild","MemberModifyConfirmationChild","toUser","putUser","MemberModifyConfirmationUser","usersResultCode","setUsersResultCode","emergencyContact1","emergencyContact2","emergencyContact3","UserContentAttribute","MemberModifyUser","getMyFacilities","MyFacility","myFacilities","goFacilityReservationSelection","goFacilityDetailAvailability","getUserName","UserContainer","Mypage","userName","goAccount","goMember","setUserName","loginUser","projectTopCommonGuideText","getContactCommonBottomGuideText","InformationField","GridWrapper","OffsetCard","FacilitySearchSettingMasterSelection","bottomGuideText","handleClick","setBottomGuideText","bottomGuide","projectMstsRes","projectCategoryName","RadioButtonGroupNoBind","LotteryReservationCard","InterviewCard","AcceptNoticeCard","isDownLoading","setIsDownLoading","reservationDate","reservationType","batchId","joinedUsageDates","desiredUsageMonth","resPdfUrl","executeGetDownloadPdfUrl","ReservationStatusList","lotteryReservations","interviews","batchResults","tabs","statusSearchConditionChangeHandle","_locationState$status","statusSearchCondition","callGetLotteryReservations","callGetInterviews","callGetAcceptNotice","callGetProjects","batchResult","interviewMethodAllZero","tabNameString","repTabName","strRepValues","strValue","repUser","my","getNoDataMessage","noDataMessageKey","subTitleContent","getHttpStatusCodeLabel","ErrorContentItem","SystemError","WindowCloseButton","closeWindow","TermsOfService","isOpenedNewTab","TransitionInconsistency","MessageItem","UnderMaintenance","_maintenanceMessage$t","_maintenanceMessage$m","_maintenanceMessage$m2","maintenanceMessage","setmaintenanceMessage","isHomeTransition","goUnknownError","goHome","loadMessage","messageUrl","cache","messageObj","maintenanceDatetime","maintenanceDatetimeTitle","STATUS_CODE","useProvisionCertificateIssuance","usageFromDate","facilityIds","provisionCertificateIssuance","setProvisionCertificateIssuance","provisionCertificateIssuanceShowFlag","setProvisionCertificateIssuanceShowFlag","certificateResultCode","setCertificateResultCode","certificateResultResponseData","setCertificateResultResponseData","onClickIssueProvisionCertificateIssuance","provisionCertificateIssuanceHandler","resetCertificateResultResponse","resProvisionCertificateIssuanceCreateDetail","resCreatePdf","executePostCreateCertificatePdf","downloadPdfUrlInput","createCertificates","resDownloadPdfUrl","executePostDownloadCertificatePdfUrl","activeYyyymm","cancelHandler","getUsageHistories","usedOnlyGetFlag","getLotteryHistories","targetYearMonth","executeGetLotteryReservationHistroies","getIssuableFacilityId","usageHistories","_Array$from","issueCertificateFlag","filteredFacilityIds","facilityIdsHaveUnsettledAndConfirmReservations","issuableFacilityIdsRes","facilityIdsHaveUnsettledAndConfirmReservationsRes","executePostFacilityIdsHaveUnsettledAndConfirmReservations","getShouldShowDownloadCertificate","usageHistoriesGroupByFacilityId","groupKey","groupBy","shouldShowDownloadCertificateResult","targetUsageHistories","ButtonWrap","gridAutoFlow","columnGap","StyledTitle","DownloadDialog","StyledTypography","MonthControl","previousMonth","nextMonth","UsageHistory","_certificateResultRes","provisionCertificateFeatureStatusInCtrl","dateChecker","shouldShowDownloadCertificate","activeStatuses","lotteryHistories","changeLotteryStatus","_locationState$yyyymm","_locationState$lotter","_state$activeChildId","startOfMonth","lotteryStatuses","callGetUsageHistroies","callGetLotteryHistories","filteredUsageHistories","changeMonth","subMonths","startOfCurrentMonth","isSameMonth","showBottomArrows","searchContents","histroy","usageDetail","setUsageDetail","facilityInfo","setFacilityInfo","useReasonMst","getUsageDetail","getFacilityInfo","goReservation","goReceiptView","getUrlPathname","getYesNoValue","acceptFlag","UsageHistoryDetail","amount","lunchCount","snackCount","usageReceiptViewMethod","PageTitleNoBoder","TableCellBace","TableCell","HeaderTableCell","BodyTableCell","BodyTableCellS","TextLeft","TextCenter","list","criterion","grade","suitable","WebAccessibilityPolicy","Table","TableHead","TableRow","TableBody","GuideTextBox","ChildUseEnd","TableCellLeft","TableCellRight","DefaultFeeList","receiptData","cells","cell","useCouponFee","extentionFee","nightlyFee","otherFee1","otherFeeDisplayName1","otherFee2","otherFeeDisplayName2","otherFee3","otherFeeDisplayName3","FacilityTableCell","AmountTextItem","RecepttemplateBox","TitleItem","FeeTableGItem","AddressNameItem","DefaultReceipt","actualUpdateDatetime","ReceiptItem","ReceiptView","printData","isDefaultLayout","setPrintData","setReceiptData","setIsDefaultLayout","_receiptViewData$name","_receiptViewData$chil","_receiptViewData$amou","_receiptViewData$usag","_receiptViewData$useC","_receiptViewData$exte","_receiptViewData$nigh","_receiptViewData$lunc","_receiptViewData$snac","_receiptViewData$othe","_receiptViewData$othe2","_receiptViewData$othe3","_receiptViewData$redu","_data$facilityName","_data$address","_data$address2","_data$buildingNameRoo","_data$tel","_data$projectName","_receiptViewData$othe4","_receiptViewData$othe5","_receiptViewData$othe6","_receiptViewData$actu","receiptViewData","buttonLabel","isButtonOutlined","loginRedirectTo","linkRedirectTo","loadedLoginTo","loadDeleteSsoLoginRedirectTo","loadedLinkTo","loadDeleteSsoLinkRedirectTo","errorDescription","error_description","redirectTo","itemsJson","unescape","_ssoLinkedParams$emai","onCloseErrorDialog","saveSsoLinkRedirectTo","providerName","federatedSignIn","customProvider","isSsoFirstLogin","getIsSsoFirstLogin","_loginUser$email","sessionSetting","userInfo","_sessionSetting$resul","idDatePassed","Sso","EmailVerification","getEmailVerifiedGuideText","handleClose","handleClickMember","emailVerifiedGuideText","ERROR_MESSAGE","setAuthLog","validateOtp","otp","generateDatetime","diffInMilliseconds","isWithinOneHour","_user$otp","_user$generateDatetim","resendCode","_authLog$userId","CustomColorButtonM","OTP","TODAY_CONDITION_INPUT_DECODE_MST_LIST","napType","defecationTiming","defecationCondition","amountOfFood","escortType","belongings","todayConditionInputDetail","setTodayConditionInputDetail","todayConditionInputDecodeMst","setTodayConditionInputDecodeMst","isCough","setIsCough","isRunnyNose","setIsRunnyNose","isEczema","setIsEczema","isAllergy","setIsAllergy","isFoodAllergy","setIsFoodAllergy","isMedicine","setIsMedicine","isMood","setIsMood","isDisease","setIsDisease","isVaccine","setIsVaccine","isHospitalVisit","setIsHospitalVisit","isInfection","setIsInfection","isTodayConditionPoint","setIsTodayConditionPoint","isStroll","setIsStroll","isLastNightSleep","setIsLastNightSleep","isNap","setIsNap","setNapType","setDefecationTiming","isMeal","setIsMeal","setEatingMethod","breakfast","setBreakfast","lunch","setLunch","snack","setSnack","setEatingMethodDetail","setEscortType","setBelongings","isShowNoChange","setIsShowNoChange","initPutTodayConditionInputDto","setInitPutTodayConditionInputDto","inputState","yesNos","editInitPutTodayConditionInputDto","_responseDtoToInputData","_inputStateToInputData","cough","runnyNose","eczema","mood","vaccine","hospitalVisit","infection","todayConditionPoint","stroll","lastNightSleep","nap","meal","putTodayConditionInputDto","_inputDataToRequstDto","_inputDataDiffCheck","todayConditionInputDetailData","morningBodyTemperature","morningBodyTemperatureIntPart","morningBodyTemperatureFracPart","morningBodyTemperatureMeasurementTime","afterComingAmBodyTemperature","afterComingAmBodyTemperatureIntPart","afterComingAmBodyTemperatureFracPart","afterComingPmBodyTemperature","afterComingPmBodyTemperatureIntPart","afterComingPmBodyTemperatureFracPart","coughNote","runnyNoseNote","eczemaName","allergyNote","foodAllergyNote","medicineName","moodNote","diseaseWithinMonth","diseaseNote","vaccineMonthsAgo","vaccineNote","hospitalVisitMonthsAgo","hospitalVisitNote","infectionNote","todayConditionPointNote","lastNightFromTime","lastNightToTime","napAmFromTime","napAmToTime","napPmFromTime","napPmToTime","defecationHours","defecationDaysAgo","mealTime","breakfastTime","breakfastWhat","lunchTime","lunchWhat","snackTime","milkTime","breastMilkTime","escort1Name","escort1Relationship","escort1Tel","escort2Name","escort2Relationship","escort2Tel","belongingsMilkCount","belongingsMilkDissolveHotWater","belongingsOther","updateDateTime","todayConditionInputInfo","getTodayConditionInputDetailDto","intPart","FracPart","TodayInputDecimalTypeField","SectionText","BlackDivider","TodayConditionSec","afterComingBodyTemperature","SleepSec","napTypeDecodeMst","napTypeValueLabels","DefecationSec","defecationTimingDecodeMst","defecationConditionDecodeMst","defecationTimingValueLabels","defecationConditionValueLabels","defecation","MealSec","eatingMethodDecodeMst","amountOfFoodDecodeMst","brestFeedingDetailDecodeMst","eatingMethodValueLabels","amountOfFoodValueLabels","brestFeedingDetailValueLabels","mealDetail","OtherSec","escortTypeDecodeMst","belongingsDecodeMst","escortTypeValueLabels","belongingsValueLabels","escort","ReservationInfoArea","userKana","FacilityReservationTodayConditionInput","isViewTodayConditionSec","isViewSleepSec","isViewDefecationSec","isViewMealSec","regResultCode","setRegResultCode","executePutTodayConditionInput","FacilityReservationTodayConditionInputConfirmation","getValueLabels","decodeItems","getLabelByValue","FacilityReservationTodayConditionInputCompletion","Amplify","configure","oauth","domain","scope","redirectSignIn","redirectSignOut","responseType","autoTrack","enable","getUrl","App","isUnderMaintenanceRoute","isExact","isReceiptViewRoute","AppContent","isShowHeaderFooter","Switch","Route","ScrollToTop","StrictMode","Provider","CssBaseline","BrowserRouter","getElementById"],"mappings":"wLAAA,IAAIA,EAAM,CACT,OAAQ,CACP,IACA,KAED,WAAY,CACX,IACA,KAED,OAAQ,CACP,IACA,KAED,WAAY,CACX,IACA,MAGF,SAASC,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEJ,EAAKE,GAC9B,OAAOG,QAAQC,UAAUC,MAAK,WAC7B,IAAIC,EAAI,IAAIC,MAAM,uBAAyBP,EAAM,KAEjD,MADAM,EAAEE,KAAO,mBACHF,KAIR,IAAIG,EAAMX,EAAIE,GAAMU,EAAKD,EAAI,GAC7B,OAAOR,EAAoBK,EAAEG,EAAI,IAAIJ,MAAK,WACzC,OAAOJ,EAAoBS,MAG7BX,EAAoBY,KAAO,WAC1B,OAAOC,OAAOD,KAAKb,IAEpBC,EAAoBW,GAAK,KACzBG,EAAOC,QAAUf,G,qBCpCjB,IAAID,EAAM,CACT,KAAM,CACL,KACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,mCAAoC,CACnC,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,GAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,GAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,IAED,iCAAkC,CACjC,IACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,GACA,GAED,WAAY,CACX,GACA,GAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,IACA,EACA,KAED,oBAAqB,CACpB,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,IAED,iCAAkC,CACjC,IACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,IAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,UAAW,CACV,KACA,EACA,EACA,KAED,aAAc,CACb,KACA,EACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,YAAa,CACZ,IACA,EACA,KAED,aAAc,CACb,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,kBAAmB,CAClB,IACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,0BAA2B,CAC1B,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,yBAA0B,CACzB,KACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,YAAa,CACZ,KACA,EACA,KAED,iBAAkB,CACjB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,GAED,4BAA6B,CAC5B,IACA,EACA,GAED,iCAAkC,CACjC,IACA,EACA,GAED,oCAAqC,CACpC,IACA,EACA,GAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,YAAa,CACZ,IACA,EACA,KAED,aAAc,CACb,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,kCAAmC,CAClC,IACA,EACA,KAED,qCAAsC,CACrC,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,sCAAuC,CACtC,IACA,EACA,KAED,yCAA0C,CACzC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,6BAA8B,CAC7B,IACA,EACA,IAED,gCAAiC,CAChC,IACA,EACA,IAED,kBAAmB,CAClB,IACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,0BAA2B,CAC1B,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,yBAA0B,CACzB,KACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,UAAW,CACV,KACA,EACA,KAED,aAAc,CACb,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,IAED,4BAA6B,CAC5B,IACA,EACA,IAED,iCAAkC,CACjC,IACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,IAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,OAAQ,CACP,IACA,EACA,KAED,QAAS,CACR,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uBAAwB,CACvB,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,6BAA8B,CAC7B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,4BAA6B,CAC5B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,KAED,sBAAuB,CACtB,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,kBAAmB,CAClB,IACA,EACA,IAED,mBAAoB,CACnB,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,aAAc,CACb,IACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,gBAAiB,CAChB,IACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,eAAgB,CACf,KACA,EACA,KAED,oBAAqB,CACpB,KACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,IAED,+BAAgC,CAC/B,IACA,EACA,IAED,oCAAqC,CACpC,IACA,EACA,IAED,uCAAwC,CACvC,IACA,EACA,IAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CACnC,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,wBAAyB,CACxB,IACA,EACA,KAED,yBAA0B,CACzB,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,iCAAkC,CACjC,IACA,EACA,KAED,qBAAsB,CACrB,IACA,EACA,IAED,sBAAuB,CACtB,IACA,EACA,IAED,2BAA4B,CAC3B,IACA,EACA,IAED,8BAA+B,CAC9B,IACA,EACA,IAED,gBAAiB,CAChB,IACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,qBAAsB,CACrB,KACA,EACA,KAED,mBAAoB,CACnB,IACA,EACA,KAED,wBAAyB,CACxB,KACA,EACA,KAED,kBAAmB,CAClB,KACA,EACA,KAED,uBAAwB,CACvB,KACA,EACA,KAED,UAAW,CACV,IACA,EACA,KAED,WAAY,CACX,IACA,EACA,KAED,8BAA+B,CAC9B,IACA,EACA,KAED,+BAAgC,CAC/B,IACA,EACA,KAED,oCAAqC,CACpC,IACA,EACA,KAED,uCAAwC,CACvC,IACA,EACA,KAED,0BAA2B,CAC1B,IACA,EACA,KAED,2BAA4B,CAC3B,IACA,EACA,KAED,gCAAiC,CAChC,IACA,EACA,KAED,mCAAoC,CA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","file":"static/js/main.d2b8b5bf.chunk.js","sourcesContent":["var map = {\n\t\"./en\": [\n\t\t935,\n\t\t518\n\t],\n\t\"./en.tsx\": [\n\t\t935,\n\t\t518\n\t],\n\t\"./ja\": [\n\t\t936,\n\t\t519\n\t],\n\t\"./ja.tsx\": [\n\t\t936,\n\t\t519\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1215;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./\": [\n\t\t1258,\n\t\t9,\n\t\t765\n\t],\n\t\"./_lib/buildFormatLongFn\": [\n\t\t209,\n\t\t7,\n\t\t257\n\t],\n\t\"./_lib/buildFormatLongFn/\": [\n\t\t209,\n\t\t7,\n\t\t257\n\t],\n\t\"./_lib/buildFormatLongFn/index\": [\n\t\t209,\n\t\t7,\n\t\t257\n\t],\n\t\"./_lib/buildFormatLongFn/index.js\": [\n\t\t209,\n\t\t7,\n\t\t257\n\t],\n\t\"./_lib/buildLocalizeFn\": [\n\t\t210,\n\t\t7,\n\t\t258\n\t],\n\t\"./_lib/buildLocalizeFn/\": [\n\t\t210,\n\t\t7,\n\t\t258\n\t],\n\t\"./_lib/buildLocalizeFn/index\": [\n\t\t210,\n\t\t7,\n\t\t258\n\t],\n\t\"./_lib/buildLocalizeFn/index.js\": [\n\t\t210,\n\t\t7,\n\t\t258\n\t],\n\t\"./_lib/buildMatchFn\": [\n\t\t211,\n\t\t7,\n\t\t259\n\t],\n\t\"./_lib/buildMatchFn/\": [\n\t\t211,\n\t\t7,\n\t\t259\n\t],\n\t\"./_lib/buildMatchFn/index\": [\n\t\t211,\n\t\t7,\n\t\t259\n\t],\n\t\"./_lib/buildMatchFn/index.js\": [\n\t\t211,\n\t\t7,\n\t\t259\n\t],\n\t\"./_lib/buildMatchPatternFn\": [\n\t\t212,\n\t\t7,\n\t\t260\n\t],\n\t\"./_lib/buildMatchPatternFn/\": [\n\t\t212,\n\t\t7,\n\t\t260\n\t],\n\t\"./_lib/buildMatchPatternFn/index\": [\n\t\t212,\n\t\t7,\n\t\t260\n\t],\n\t\"./_lib/buildMatchPatternFn/index.js\": [\n\t\t212,\n\t\t7,\n\t\t260\n\t],\n\t\"./af\": [\n\t\t762,\n\t\t9,\n\t\t602\n\t],\n\t\"./af/\": [\n\t\t762,\n\t\t9,\n\t\t602\n\t],\n\t\"./af/_lib/formatDistance\": [\n\t\t228,\n\t\t7,\n\t\t261\n\t],\n\t\"./af/_lib/formatDistance/\": [\n\t\t228,\n\t\t7,\n\t\t261\n\t],\n\t\"./af/_lib/formatDistance/index\": [\n\t\t228,\n\t\t7,\n\t\t261\n\t],\n\t\"./af/_lib/formatDistance/index.js\": [\n\t\t228,\n\t\t7,\n\t\t261\n\t],\n\t\"./af/_lib/formatLong\": [\n\t\t229,\n\t\t7,\n\t\t92\n\t],\n\t\"./af/_lib/formatLong/\": [\n\t\t229,\n\t\t7,\n\t\t92\n\t],\n\t\"./af/_lib/formatLong/index\": [\n\t\t229,\n\t\t7,\n\t\t92\n\t],\n\t\"./af/_lib/formatLong/index.js\": [\n\t\t229,\n\t\t7,\n\t\t92\n\t],\n\t\"./af/_lib/formatRelative\": [\n\t\t230,\n\t\t7,\n\t\t262\n\t],\n\t\"./af/_lib/formatRelative/\": [\n\t\t230,\n\t\t7,\n\t\t262\n\t],\n\t\"./af/_lib/formatRelative/index\": [\n\t\t230,\n\t\t7,\n\t\t262\n\t],\n\t\"./af/_lib/formatRelative/index.js\": [\n\t\t230,\n\t\t7,\n\t\t262\n\t],\n\t\"./af/_lib/localize\": [\n\t\t231,\n\t\t7,\n\t\t178\n\t],\n\t\"./af/_lib/localize/\": [\n\t\t231,\n\t\t7,\n\t\t178\n\t],\n\t\"./af/_lib/localize/index\": [\n\t\t231,\n\t\t7,\n\t\t178\n\t],\n\t\"./af/_lib/localize/index.js\": [\n\t\t231,\n\t\t7,\n\t\t178\n\t],\n\t\"./af/_lib/match\": [\n\t\t232,\n\t\t7,\n\t\t15\n\t],\n\t\"./af/_lib/match/\": [\n\t\t232,\n\t\t7,\n\t\t15\n\t],\n\t\"./af/_lib/match/index\": [\n\t\t232,\n\t\t7,\n\t\t15\n\t],\n\t\"./af/_lib/match/index.js\": [\n\t\t232,\n\t\t7,\n\t\t15\n\t],\n\t\"./af/index\": [\n\t\t847,\n\t\t7,\n\t\t418\n\t],\n\t\"./af/index.d\": [\n\t\t937,\n\t\t9,\n\t\t531\n\t],\n\t\"./af/index.d.ts\": [\n\t\t937,\n\t\t9,\n\t\t531\n\t],\n\t\"./af/index.js\": [\n\t\t847,\n\t\t7,\n\t\t418\n\t],\n\t\"./af/index.js.flow\": [\n\t\t1259,\n\t\t9,\n\t\t766\n\t],\n\t\"./af/package\": [\n\t\t938,\n\t\t3,\n\t\t672\n\t],\n\t\"./af/package.json\": [\n\t\t938,\n\t\t3,\n\t\t672\n\t],\n\t\"./ar\": [\n\t\t763,\n\t\t9,\n\t\t608\n\t],\n\t\"./ar-DZ\": [\n\t\t764,\n\t\t9,\n\t\t603\n\t],\n\t\"./ar-DZ/\": [\n\t\t764,\n\t\t9,\n\t\t603\n\t],\n\t\"./ar-DZ/_lib/formatDistance\": [\n\t\t238,\n\t\t7,\n\t\t263\n\t],\n\t\"./ar-DZ/_lib/formatDistance/\": [\n\t\t238,\n\t\t7,\n\t\t263\n\t],\n\t\"./ar-DZ/_lib/formatDistance/index\": [\n\t\t238,\n\t\t7,\n\t\t263\n\t],\n\t\"./ar-DZ/_lib/formatDistance/index.js\": [\n\t\t238,\n\t\t7,\n\t\t263\n\t],\n\t\"./ar-DZ/_lib/formatLong\": [\n\t\t239,\n\t\t7,\n\t\t93\n\t],\n\t\"./ar-DZ/_lib/formatLong/\": [\n\t\t239,\n\t\t7,\n\t\t93\n\t],\n\t\"./ar-DZ/_lib/formatLong/index\": [\n\t\t239,\n\t\t7,\n\t\t93\n\t],\n\t\"./ar-DZ/_lib/formatLong/index.js\": [\n\t\t239,\n\t\t7,\n\t\t93\n\t],\n\t\"./ar-DZ/_lib/formatRelative\": [\n\t\t240,\n\t\t7,\n\t\t264\n\t],\n\t\"./ar-DZ/_lib/formatRelative/\": [\n\t\t240,\n\t\t7,\n\t\t264\n\t],\n\t\"./ar-DZ/_lib/formatRelative/index\": [\n\t\t240,\n\t\t7,\n\t\t264\n\t],\n\t\"./ar-DZ/_lib/formatRelative/index.js\": [\n\t\t240,\n\t\t7,\n\t\t264\n\t],\n\t\"./ar-DZ/_lib/localize\": [\n\t\t241,\n\t\t7,\n\t\t179\n\t],\n\t\"./ar-DZ/_lib/localize/\": [\n\t\t241,\n\t\t7,\n\t\t179\n\t],\n\t\"./ar-DZ/_lib/localize/index\": [\n\t\t241,\n\t\t7,\n\t\t179\n\t],\n\t\"./ar-DZ/_lib/localize/index.js\": [\n\t\t241,\n\t\t7,\n\t\t179\n\t],\n\t\"./ar-DZ/_lib/match\": [\n\t\t242,\n\t\t7,\n\t\t16\n\t],\n\t\"./ar-DZ/_lib/match/\": [\n\t\t242,\n\t\t7,\n\t\t16\n\t],\n\t\"./ar-DZ/_lib/match/index\": [\n\t\t242,\n\t\t7,\n\t\t16\n\t],\n\t\"./ar-DZ/_lib/match/index.js\": [\n\t\t242,\n\t\t7,\n\t\t16\n\t],\n\t\"./ar-DZ/index\": [\n\t\t849,\n\t\t7,\n\t\t419\n\t],\n\t\"./ar-DZ/index.d\": [\n\t\t941,\n\t\t9,\n\t\t532\n\t],\n\t\"./ar-DZ/index.d.ts\": [\n\t\t941,\n\t\t9,\n\t\t532\n\t],\n\t\"./ar-DZ/index.js\": [\n\t\t849,\n\t\t7,\n\t\t419\n\t],\n\t\"./ar-DZ/index.js.flow\": [\n\t\t1261,\n\t\t9,\n\t\t767\n\t],\n\t\"./ar-DZ/package\": [\n\t\t942,\n\t\t3,\n\t\t673\n\t],\n\t\"./ar-DZ/package.json\": [\n\t\t942,\n\t\t3,\n\t\t673\n\t],\n\t\"./ar-EG\": [\n\t\t765,\n\t\t9,\n\t\t604\n\t],\n\t\"./ar-EG/\": [\n\t\t765,\n\t\t9,\n\t\t604\n\t],\n\t\"./ar-EG/_lib/formatDistance\": [\n\t\t243,\n\t\t7,\n\t\t265\n\t],\n\t\"./ar-EG/_lib/formatDistance/\": [\n\t\t243,\n\t\t7,\n\t\t265\n\t],\n\t\"./ar-EG/_lib/formatDistance/index\": [\n\t\t243,\n\t\t7,\n\t\t265\n\t],\n\t\"./ar-EG/_lib/formatDistance/index.js\": [\n\t\t243,\n\t\t7,\n\t\t265\n\t],\n\t\"./ar-EG/_lib/formatLong\": [\n\t\t244,\n\t\t7,\n\t\t94\n\t],\n\t\"./ar-EG/_lib/formatLong/\": [\n\t\t244,\n\t\t7,\n\t\t94\n\t],\n\t\"./ar-EG/_lib/formatLong/index\": [\n\t\t244,\n\t\t7,\n\t\t94\n\t],\n\t\"./ar-EG/_lib/formatLong/index.js\": [\n\t\t244,\n\t\t7,\n\t\t94\n\t],\n\t\"./ar-EG/_lib/formatRelative\": [\n\t\t245,\n\t\t7,\n\t\t266\n\t],\n\t\"./ar-EG/_lib/formatRelative/\": [\n\t\t245,\n\t\t7,\n\t\t266\n\t],\n\t\"./ar-EG/_lib/formatRelative/index\": [\n\t\t245,\n\t\t7,\n\t\t266\n\t],\n\t\"./ar-EG/_lib/formatRelative/index.js\": [\n\t\t245,\n\t\t7,\n\t\t266\n\t],\n\t\"./ar-EG/_lib/localize\": [\n\t\t246,\n\t\t7,\n\t\t180\n\t],\n\t\"./ar-EG/_lib/localize/\": [\n\t\t246,\n\t\t7,\n\t\t180\n\t],\n\t\"./ar-EG/_lib/localize/index\": [\n\t\t246,\n\t\t7,\n\t\t180\n\t],\n\t\"./ar-EG/_lib/localize/index.js\": [\n\t\t246,\n\t\t7,\n\t\t180\n\t],\n\t\"./ar-EG/_lib/match\": [\n\t\t247,\n\t\t7,\n\t\t17\n\t],\n\t\"./ar-EG/_lib/match/\": [\n\t\t247,\n\t\t7,\n\t\t17\n\t],\n\t\"./ar-EG/_lib/match/index\": [\n\t\t247,\n\t\t7,\n\t\t17\n\t],\n\t\"./ar-EG/_lib/match/index.js\": [\n\t\t247,\n\t\t7,\n\t\t17\n\t],\n\t\"./ar-EG/index\": [\n\t\t850,\n\t\t7,\n\t\t420\n\t],\n\t\"./ar-EG/index.d\": [\n\t\t943,\n\t\t9,\n\t\t533\n\t],\n\t\"./ar-EG/index.d.ts\": [\n\t\t943,\n\t\t9,\n\t\t533\n\t],\n\t\"./ar-EG/index.js\": [\n\t\t850,\n\t\t7,\n\t\t420\n\t],\n\t\"./ar-EG/index.js.flow\": [\n\t\t1262,\n\t\t9,\n\t\t768\n\t],\n\t\"./ar-EG/index.ts.flow\": [\n\t\t1263,\n\t\t9,\n\t\t769\n\t],\n\t\"./ar-EG/package\": [\n\t\t944,\n\t\t3,\n\t\t674\n\t],\n\t\"./ar-EG/package.json\": [\n\t\t944,\n\t\t3,\n\t\t674\n\t],\n\t\"./ar-MA\": [\n\t\t766,\n\t\t9,\n\t\t605\n\t],\n\t\"./ar-MA/\": [\n\t\t766,\n\t\t9,\n\t\t605\n\t],\n\t\"./ar-MA/_lib/formatDistance\": [\n\t\t248,\n\t\t7,\n\t\t267\n\t],\n\t\"./ar-MA/_lib/formatDistance/\": [\n\t\t248,\n\t\t7,\n\t\t267\n\t],\n\t\"./ar-MA/_lib/formatDistance/index\": [\n\t\t248,\n\t\t7,\n\t\t267\n\t],\n\t\"./ar-MA/_lib/formatDistance/index.js\": [\n\t\t248,\n\t\t7,\n\t\t267\n\t],\n\t\"./ar-MA/_lib/formatLong\": [\n\t\t249,\n\t\t7,\n\t\t95\n\t],\n\t\"./ar-MA/_lib/formatLong/\": [\n\t\t249,\n\t\t7,\n\t\t95\n\t],\n\t\"./ar-MA/_lib/formatLong/index\": [\n\t\t249,\n\t\t7,\n\t\t95\n\t],\n\t\"./ar-MA/_lib/formatLong/index.js\": [\n\t\t249,\n\t\t7,\n\t\t95\n\t],\n\t\"./ar-MA/_lib/formatRelative\": [\n\t\t250,\n\t\t7,\n\t\t268\n\t],\n\t\"./ar-MA/_lib/formatRelative/\": [\n\t\t250,\n\t\t7,\n\t\t268\n\t],\n\t\"./ar-MA/_lib/formatRelative/index\": [\n\t\t250,\n\t\t7,\n\t\t268\n\t],\n\t\"./ar-MA/_lib/formatRelative/index.js\": [\n\t\t250,\n\t\t7,\n\t\t268\n\t],\n\t\"./ar-MA/_lib/localize\": [\n\t\t251,\n\t\t7,\n\t\t181\n\t],\n\t\"./ar-MA/_lib/localize/\": [\n\t\t251,\n\t\t7,\n\t\t181\n\t],\n\t\"./ar-MA/_lib/localize/index\": [\n\t\t251,\n\t\t7,\n\t\t181\n\t],\n\t\"./ar-MA/_lib/localize/index.js\": [\n\t\t251,\n\t\t7,\n\t\t181\n\t],\n\t\"./ar-MA/_lib/match\": [\n\t\t252,\n\t\t7,\n\t\t18\n\t],\n\t\"./ar-MA/_lib/match/\": [\n\t\t252,\n\t\t7,\n\t\t18\n\t],\n\t\"./ar-MA/_lib/match/index\": [\n\t\t252,\n\t\t7,\n\t\t18\n\t],\n\t\"./ar-MA/_lib/match/index.js\": [\n\t\t252,\n\t\t7,\n\t\t18\n\t],\n\t\"./ar-MA/index\": [\n\t\t851,\n\t\t7,\n\t\t421\n\t],\n\t\"./ar-MA/index.d\": [\n\t\t945,\n\t\t9,\n\t\t534\n\t],\n\t\"./ar-MA/index.d.ts\": [\n\t\t945,\n\t\t9,\n\t\t534\n\t],\n\t\"./ar-MA/index.js\": [\n\t\t851,\n\t\t7,\n\t\t421\n\t],\n\t\"./ar-MA/index.js.flow\": [\n\t\t1264,\n\t\t9,\n\t\t770\n\t],\n\t\"./ar-MA/package\": [\n\t\t946,\n\t\t3,\n\t\t675\n\t],\n\t\"./ar-MA/package.json\": [\n\t\t946,\n\t\t3,\n\t\t675\n\t],\n\t\"./ar-SA\": [\n\t\t767,\n\t\t9,\n\t\t606\n\t],\n\t\"./ar-SA/\": [\n\t\t767,\n\t\t9,\n\t\t606\n\t],\n\t\"./ar-SA/_lib/formatDistance\": [\n\t\t253,\n\t\t7,\n\t\t269\n\t],\n\t\"./ar-SA/_lib/formatDistance/\": [\n\t\t253,\n\t\t7,\n\t\t269\n\t],\n\t\"./ar-SA/_lib/formatDistance/index\": [\n\t\t253,\n\t\t7,\n\t\t269\n\t],\n\t\"./ar-SA/_lib/formatDistance/index.js\": [\n\t\t253,\n\t\t7,\n\t\t269\n\t],\n\t\"./ar-SA/_lib/formatLong\": [\n\t\t254,\n\t\t7,\n\t\t96\n\t],\n\t\"./ar-SA/_lib/formatLong/\": [\n\t\t254,\n\t\t7,\n\t\t96\n\t],\n\t\"./ar-SA/_lib/formatLong/index\": [\n\t\t254,\n\t\t7,\n\t\t96\n\t],\n\t\"./ar-SA/_lib/formatLong/index.js\": [\n\t\t254,\n\t\t7,\n\t\t96\n\t],\n\t\"./ar-SA/_lib/formatRelative\": [\n\t\t255,\n\t\t7,\n\t\t270\n\t],\n\t\"./ar-SA/_lib/formatRelative/\": [\n\t\t255,\n\t\t7,\n\t\t270\n\t],\n\t\"./ar-SA/_lib/formatRelative/index\": [\n\t\t255,\n\t\t7,\n\t\t270\n\t],\n\t\"./ar-SA/_lib/formatRelative/index.js\": [\n\t\t255,\n\t\t7,\n\t\t270\n\t],\n\t\"./ar-SA/_lib/localize\": [\n\t\t256,\n\t\t7,\n\t\t182\n\t],\n\t\"./ar-SA/_lib/localize/\": [\n\t\t256,\n\t\t7,\n\t\t182\n\t],\n\t\"./ar-SA/_lib/localize/index\": [\n\t\t256,\n\t\t7,\n\t\t182\n\t],\n\t\"./ar-SA/_lib/localize/index.js\": [\n\t\t256,\n\t\t7,\n\t\t182\n\t],\n\t\"./ar-SA/_lib/match\": [\n\t\t257,\n\t\t7,\n\t\t19\n\t],\n\t\"./ar-SA/_lib/match/\": [\n\t\t257,\n\t\t7,\n\t\t19\n\t],\n\t\"./ar-SA/_lib/match/index\": [\n\t\t257,\n\t\t7,\n\t\t19\n\t],\n\t\"./ar-SA/_lib/match/index.js\": [\n\t\t257,\n\t\t7,\n\t\t19\n\t],\n\t\"./ar-SA/index\": [\n\t\t852,\n\t\t7,\n\t\t422\n\t],\n\t\"./ar-SA/index.d\": [\n\t\t947,\n\t\t9,\n\t\t535\n\t],\n\t\"./ar-SA/index.d.ts\": [\n\t\t947,\n\t\t9,\n\t\t535\n\t],\n\t\"./ar-SA/index.js\": [\n\t\t852,\n\t\t7,\n\t\t422\n\t],\n\t\"./ar-SA/index.js.flow\": [\n\t\t1265,\n\t\t9,\n\t\t771\n\t],\n\t\"./ar-SA/package\": [\n\t\t948,\n\t\t3,\n\t\t676\n\t],\n\t\"./ar-SA/package.json\": [\n\t\t948,\n\t\t3,\n\t\t676\n\t],\n\t\"./ar-TN\": [\n\t\t768,\n\t\t9,\n\t\t607\n\t],\n\t\"./ar-TN/\": [\n\t\t768,\n\t\t9,\n\t\t607\n\t],\n\t\"./ar-TN/_lib/formatDistance\": [\n\t\t258,\n\t\t7,\n\t\t271\n\t],\n\t\"./ar-TN/_lib/formatDistance/\": [\n\t\t258,\n\t\t7,\n\t\t271\n\t],\n\t\"./ar-TN/_lib/formatDistance/index\": [\n\t\t258,\n\t\t7,\n\t\t271\n\t],\n\t\"./ar-TN/_lib/formatDistance/index.js\": [\n\t\t258,\n\t\t7,\n\t\t271\n\t],\n\t\"./ar-TN/_lib/formatLong\": [\n\t\t259,\n\t\t7,\n\t\t97\n\t],\n\t\"./ar-TN/_lib/formatLong/\": [\n\t\t259,\n\t\t7,\n\t\t97\n\t],\n\t\"./ar-TN/_lib/formatLong/index\": [\n\t\t259,\n\t\t7,\n\t\t97\n\t],\n\t\"./ar-TN/_lib/formatLong/index.js\": [\n\t\t259,\n\t\t7,\n\t\t97\n\t],\n\t\"./ar-TN/_lib/formatRelative\": [\n\t\t260,\n\t\t7,\n\t\t272\n\t],\n\t\"./ar-TN/_lib/formatRelative/\": [\n\t\t260,\n\t\t7,\n\t\t272\n\t],\n\t\"./ar-TN/_lib/formatRelative/index\": [\n\t\t260,\n\t\t7,\n\t\t272\n\t],\n\t\"./ar-TN/_lib/formatRelative/index.js\": [\n\t\t260,\n\t\t7,\n\t\t272\n\t],\n\t\"./ar-TN/_lib/localize\": [\n\t\t261,\n\t\t7,\n\t\t183\n\t],\n\t\"./ar-TN/_lib/localize/\": [\n\t\t261,\n\t\t7,\n\t\t183\n\t],\n\t\"./ar-TN/_lib/localize/index\": [\n\t\t261,\n\t\t7,\n\t\t183\n\t],\n\t\"./ar-TN/_lib/localize/index.js\": [\n\t\t261,\n\t\t7,\n\t\t183\n\t],\n\t\"./ar-TN/_lib/match\": [\n\t\t262,\n\t\t7,\n\t\t20\n\t],\n\t\"./ar-TN/_lib/match/\": [\n\t\t262,\n\t\t7,\n\t\t20\n\t],\n\t\"./ar-TN/_lib/match/index\": [\n\t\t262,\n\t\t7,\n\t\t20\n\t],\n\t\"./ar-TN/_lib/match/index.js\": [\n\t\t262,\n\t\t7,\n\t\t20\n\t],\n\t\"./ar-TN/index\": [\n\t\t853,\n\t\t7,\n\t\t423\n\t],\n\t\"./ar-TN/index.d\": [\n\t\t949,\n\t\t9,\n\t\t536\n\t],\n\t\"./ar-TN/index.d.ts\": [\n\t\t949,\n\t\t9,\n\t\t536\n\t],\n\t\"./ar-TN/index.js\": [\n\t\t853,\n\t\t7,\n\t\t423\n\t],\n\t\"./ar-TN/index.ts.flow\": [\n\t\t1266,\n\t\t9,\n\t\t772\n\t],\n\t\"./ar-TN/package\": [\n\t\t950,\n\t\t3,\n\t\t677\n\t],\n\t\"./ar-TN/package.json\": [\n\t\t950,\n\t\t3,\n\t\t677\n\t],\n\t\"./ar/\": [\n\t\t763,\n\t\t9,\n\t\t608\n\t],\n\t\"./ar/_lib/formatDistance\": [\n\t\t233,\n\t\t7,\n\t\t273\n\t],\n\t\"./ar/_lib/formatDistance/\": [\n\t\t233,\n\t\t7,\n\t\t273\n\t],\n\t\"./ar/_lib/formatDistance/index\": [\n\t\t233,\n\t\t7,\n\t\t273\n\t],\n\t\"./ar/_lib/formatDistance/index.js\": [\n\t\t233,\n\t\t7,\n\t\t273\n\t],\n\t\"./ar/_lib/formatLong\": [\n\t\t234,\n\t\t7,\n\t\t98\n\t],\n\t\"./ar/_lib/formatLong/\": [\n\t\t234,\n\t\t7,\n\t\t98\n\t],\n\t\"./ar/_lib/formatLong/index\": [\n\t\t234,\n\t\t7,\n\t\t98\n\t],\n\t\"./ar/_lib/formatLong/index.js\": [\n\t\t234,\n\t\t7,\n\t\t98\n\t],\n\t\"./ar/_lib/formatRelative\": [\n\t\t235,\n\t\t7,\n\t\t274\n\t],\n\t\"./ar/_lib/formatRelative/\": [\n\t\t235,\n\t\t7,\n\t\t274\n\t],\n\t\"./ar/_lib/formatRelative/index\": [\n\t\t235,\n\t\t7,\n\t\t274\n\t],\n\t\"./ar/_lib/formatRelative/index.js\": [\n\t\t235,\n\t\t7,\n\t\t274\n\t],\n\t\"./ar/_lib/localize\": [\n\t\t236,\n\t\t7,\n\t\t184\n\t],\n\t\"./ar/_lib/localize/\": [\n\t\t236,\n\t\t7,\n\t\t184\n\t],\n\t\"./ar/_lib/localize/index\": [\n\t\t236,\n\t\t7,\n\t\t184\n\t],\n\t\"./ar/_lib/localize/index.js\": [\n\t\t236,\n\t\t7,\n\t\t184\n\t],\n\t\"./ar/_lib/match\": [\n\t\t237,\n\t\t7,\n\t\t21\n\t],\n\t\"./ar/_lib/match/\": [\n\t\t237,\n\t\t7,\n\t\t21\n\t],\n\t\"./ar/_lib/match/index\": [\n\t\t237,\n\t\t7,\n\t\t21\n\t],\n\t\"./ar/_lib/match/index.js\": [\n\t\t237,\n\t\t7,\n\t\t21\n\t],\n\t\"./ar/index\": [\n\t\t848,\n\t\t7,\n\t\t424\n\t],\n\t\"./ar/index.d\": [\n\t\t939,\n\t\t9,\n\t\t537\n\t],\n\t\"./ar/index.d.ts\": [\n\t\t939,\n\t\t9,\n\t\t537\n\t],\n\t\"./ar/index.js\": [\n\t\t848,\n\t\t7,\n\t\t424\n\t],\n\t\"./ar/index.ts.flow\": [\n\t\t1260,\n\t\t9,\n\t\t773\n\t],\n\t\"./ar/package\": [\n\t\t940,\n\t\t3,\n\t\t678\n\t],\n\t\"./ar/package.json\": [\n\t\t940,\n\t\t3,\n\t\t678\n\t],\n\t\"./az\": [\n\t\t769,\n\t\t9,\n\t\t609\n\t],\n\t\"./az/\": [\n\t\t769,\n\t\t9,\n\t\t609\n\t],\n\t\"./az/_lib/formatDistance\": [\n\t\t263,\n\t\t7,\n\t\t275\n\t],\n\t\"./az/_lib/formatDistance/\": [\n\t\t263,\n\t\t7,\n\t\t275\n\t],\n\t\"./az/_lib/formatDistance/index\": [\n\t\t263,\n\t\t7,\n\t\t275\n\t],\n\t\"./az/_lib/formatDistance/index.js\": [\n\t\t263,\n\t\t7,\n\t\t275\n\t],\n\t\"./az/_lib/formatLong\": [\n\t\t264,\n\t\t7,\n\t\t99\n\t],\n\t\"./az/_lib/formatLong/\": [\n\t\t264,\n\t\t7,\n\t\t99\n\t],\n\t\"./az/_lib/formatLong/index\": [\n\t\t264,\n\t\t7,\n\t\t99\n\t],\n\t\"./az/_lib/formatLong/index.js\": [\n\t\t264,\n\t\t7,\n\t\t99\n\t],\n\t\"./az/_lib/formatRelative\": [\n\t\t265,\n\t\t7,\n\t\t276\n\t],\n\t\"./az/_lib/formatRelative/\": [\n\t\t265,\n\t\t7,\n\t\t276\n\t],\n\t\"./az/_lib/formatRelative/index\": [\n\t\t265,\n\t\t7,\n\t\t276\n\t],\n\t\"./az/_lib/formatRelative/index.js\": [\n\t\t265,\n\t\t7,\n\t\t276\n\t],\n\t\"./az/_lib/localize\": [\n\t\t266,\n\t\t7,\n\t\t185\n\t],\n\t\"./az/_lib/localize/\": [\n\t\t266,\n\t\t7,\n\t\t185\n\t],\n\t\"./az/_lib/localize/index\": [\n\t\t266,\n\t\t7,\n\t\t185\n\t],\n\t\"./az/_lib/localize/index.js\": [\n\t\t266,\n\t\t7,\n\t\t185\n\t],\n\t\"./az/_lib/match\": [\n\t\t267,\n\t\t7,\n\t\t22\n\t],\n\t\"./az/_lib/match/\": [\n\t\t267,\n\t\t7,\n\t\t22\n\t],\n\t\"./az/_lib/match/index\": [\n\t\t267,\n\t\t7,\n\t\t22\n\t],\n\t\"./az/_lib/match/index.js\": [\n\t\t267,\n\t\t7,\n\t\t22\n\t],\n\t\"./az/index\": [\n\t\t854,\n\t\t7,\n\t\t425\n\t],\n\t\"./az/index.d\": [\n\t\t951,\n\t\t9,\n\t\t538\n\t],\n\t\"./az/index.d.ts\": [\n\t\t951,\n\t\t9,\n\t\t538\n\t],\n\t\"./az/index.js\": [\n\t\t854,\n\t\t7,\n\t\t425\n\t],\n\t\"./az/index.js.flow\": [\n\t\t1267,\n\t\t9,\n\t\t774\n\t],\n\t\"./az/package\": [\n\t\t952,\n\t\t3,\n\t\t679\n\t],\n\t\"./az/package.json\": [\n\t\t952,\n\t\t3,\n\t\t679\n\t],\n\t\"./be\": [\n\t\t770,\n\t\t9,\n\t\t520\n\t],\n\t\"./be/\": [\n\t\t770,\n\t\t9,\n\t\t520\n\t],\n\t\"./be/_lib/formatDistance\": [\n\t\t609,\n\t\t7,\n\t\t277\n\t],\n\t\"./be/_lib/formatDistance/\": [\n\t\t609,\n\t\t7,\n\t\t277\n\t],\n\t\"./be/_lib/formatDistance/index\": [\n\t\t609,\n\t\t7,\n\t\t277\n\t],\n\t\"./be/_lib/formatDistance/index.js\": [\n\t\t609,\n\t\t7,\n\t\t277\n\t],\n\t\"./be/_lib/formatLong\": [\n\t\t610,\n\t\t7,\n\t\t100\n\t],\n\t\"./be/_lib/formatLong/\": [\n\t\t610,\n\t\t7,\n\t\t100\n\t],\n\t\"./be/_lib/formatLong/index\": [\n\t\t610,\n\t\t7,\n\t\t100\n\t],\n\t\"./be/_lib/formatLong/index.js\": [\n\t\t610,\n\t\t7,\n\t\t100\n\t],\n\t\"./be/_lib/formatRelative\": [\n\t\t611,\n\t\t7,\n\t\t1\n\t],\n\t\"./be/_lib/formatRelative/\": [\n\t\t611,\n\t\t7,\n\t\t1\n\t],\n\t\"./be/_lib/formatRelative/index\": [\n\t\t611,\n\t\t7,\n\t\t1\n\t],\n\t\"./be/_lib/formatRelative/index.js\": [\n\t\t611,\n\t\t7,\n\t\t1\n\t],\n\t\"./be/_lib/localize\": [\n\t\t612,\n\t\t7,\n\t\t186\n\t],\n\t\"./be/_lib/localize/\": [\n\t\t612,\n\t\t7,\n\t\t186\n\t],\n\t\"./be/_lib/localize/index\": [\n\t\t612,\n\t\t7,\n\t\t186\n\t],\n\t\"./be/_lib/localize/index.js\": [\n\t\t612,\n\t\t7,\n\t\t186\n\t],\n\t\"./be/_lib/match\": [\n\t\t613,\n\t\t7,\n\t\t23\n\t],\n\t\"./be/_lib/match/\": [\n\t\t613,\n\t\t7,\n\t\t23\n\t],\n\t\"./be/_lib/match/index\": [\n\t\t613,\n\t\t7,\n\t\t23\n\t],\n\t\"./be/_lib/match/index.js\": [\n\t\t613,\n\t\t7,\n\t\t23\n\t],\n\t\"./be/index\": [\n\t\t934,\n\t\t7,\n\t\t0\n\t],\n\t\"./be/index.d\": [\n\t\t953,\n\t\t9,\n\t\t505\n\t],\n\t\"./be/index.d.ts\": [\n\t\t953,\n\t\t9,\n\t\t505\n\t],\n\t\"./be/index.js\": [\n\t\t934,\n\t\t7,\n\t\t0\n\t],\n\t\"./be/index.js.flow\": [\n\t\t1268,\n\t\t9,\n\t\t775\n\t],\n\t\"./be/package\": [\n\t\t954,\n\t\t3,\n\t\t680\n\t],\n\t\"./be/package.json\": [\n\t\t954,\n\t\t3,\n\t\t680\n\t],\n\t\"./bg\": [\n\t\t771,\n\t\t9,\n\t\t521\n\t],\n\t\"./bg/\": [\n\t\t771,\n\t\t9,\n\t\t521\n\t],\n\t\"./bg/_lib/formatDistance\": [\n\t\t268,\n\t\t7,\n\t\t278\n\t],\n\t\"./bg/_lib/formatDistance/\": [\n\t\t268,\n\t\t7,\n\t\t278\n\t],\n\t\"./bg/_lib/formatDistance/index\": [\n\t\t268,\n\t\t7,\n\t\t278\n\t],\n\t\"./bg/_lib/formatDistance/index.js\": [\n\t\t268,\n\t\t7,\n\t\t278\n\t],\n\t\"./bg/_lib/formatLong\": [\n\t\t269,\n\t\t7,\n\t\t101\n\t],\n\t\"./bg/_lib/formatLong/\": [\n\t\t269,\n\t\t7,\n\t\t101\n\t],\n\t\"./bg/_lib/formatLong/index\": [\n\t\t269,\n\t\t7,\n\t\t101\n\t],\n\t\"./bg/_lib/formatLong/index.js\": [\n\t\t269,\n\t\t7,\n\t\t101\n\t],\n\t\"./bg/_lib/formatRelative\": [\n\t\t270,\n\t\t7,\n\t\t2\n\t],\n\t\"./bg/_lib/formatRelative/\": [\n\t\t270,\n\t\t7,\n\t\t2\n\t],\n\t\"./bg/_lib/formatRelative/index\": [\n\t\t270,\n\t\t7,\n\t\t2\n\t],\n\t\"./bg/_lib/formatRelative/index.js\": [\n\t\t270,\n\t\t7,\n\t\t2\n\t],\n\t\"./bg/_lib/localize\": [\n\t\t271,\n\t\t7,\n\t\t187\n\t],\n\t\"./bg/_lib/localize/\": [\n\t\t271,\n\t\t7,\n\t\t187\n\t],\n\t\"./bg/_lib/localize/index\": [\n\t\t271,\n\t\t7,\n\t\t187\n\t],\n\t\"./bg/_lib/localize/index.js\": [\n\t\t271,\n\t\t7,\n\t\t187\n\t],\n\t\"./bg/_lib/match\": [\n\t\t272,\n\t\t7,\n\t\t24\n\t],\n\t\"./bg/_lib/match/\": [\n\t\t272,\n\t\t7,\n\t\t24\n\t],\n\t\"./bg/_lib/match/index\": [\n\t\t272,\n\t\t7,\n\t\t24\n\t],\n\t\"./bg/_lib/match/index.js\": [\n\t\t272,\n\t\t7,\n\t\t24\n\t],\n\t\"./bg/index\": [\n\t\t855,\n\t\t7,\n\t\t408\n\t],\n\t\"./bg/index.d\": [\n\t\t955,\n\t\t9,\n\t\t506\n\t],\n\t\"./bg/index.d.ts\": [\n\t\t955,\n\t\t9,\n\t\t506\n\t],\n\t\"./bg/index.js\": [\n\t\t855,\n\t\t7,\n\t\t408\n\t],\n\t\"./bg/index.js.flow\": [\n\t\t1269,\n\t\t9,\n\t\t776\n\t],\n\t\"./bg/package\": [\n\t\t956,\n\t\t3,\n\t\t681\n\t],\n\t\"./bg/package.json\": [\n\t\t956,\n\t\t3,\n\t\t681\n\t],\n\t\"./bn\": [\n\t\t772,\n\t\t9,\n\t\t610\n\t],\n\t\"./bn/\": [\n\t\t772,\n\t\t9,\n\t\t610\n\t],\n\t\"./bn/_lib/formatDistance\": [\n\t\t273,\n\t\t7,\n\t\t13\n\t],\n\t\"./bn/_lib/formatDistance/\": [\n\t\t273,\n\t\t7,\n\t\t13\n\t],\n\t\"./bn/_lib/formatDistance/index\": [\n\t\t273,\n\t\t7,\n\t\t13\n\t],\n\t\"./bn/_lib/formatDistance/index.js\": [\n\t\t273,\n\t\t7,\n\t\t13\n\t],\n\t\"./bn/_lib/formatLong\": [\n\t\t274,\n\t\t7,\n\t\t102\n\t],\n\t\"./bn/_lib/formatLong/\": [\n\t\t274,\n\t\t7,\n\t\t102\n\t],\n\t\"./bn/_lib/formatLong/index\": [\n\t\t274,\n\t\t7,\n\t\t102\n\t],\n\t\"./bn/_lib/formatLong/index.js\": [\n\t\t274,\n\t\t7,\n\t\t102\n\t],\n\t\"./bn/_lib/formatRelative\": [\n\t\t275,\n\t\t7,\n\t\t279\n\t],\n\t\"./bn/_lib/formatRelative/\": [\n\t\t275,\n\t\t7,\n\t\t279\n\t],\n\t\"./bn/_lib/formatRelative/index\": [\n\t\t275,\n\t\t7,\n\t\t279\n\t],\n\t\"./bn/_lib/formatRelative/index.js\": [\n\t\t275,\n\t\t7,\n\t\t279\n\t],\n\t\"./bn/_lib/localize\": [\n\t\t221,\n\t\t7,\n\t\t188\n\t],\n\t\"./bn/_lib/localize/\": [\n\t\t221,\n\t\t7,\n\t\t188\n\t],\n\t\"./bn/_lib/localize/index\": [\n\t\t221,\n\t\t7,\n\t\t188\n\t],\n\t\"./bn/_lib/localize/index.js\": [\n\t\t221,\n\t\t7,\n\t\t188\n\t],\n\t\"./bn/_lib/match\": [\n\t\t276,\n\t\t7,\n\t\t25\n\t],\n\t\"./bn/_lib/match/\": [\n\t\t276,\n\t\t7,\n\t\t25\n\t],\n\t\"./bn/_lib/match/index\": [\n\t\t276,\n\t\t7,\n\t\t25\n\t],\n\t\"./bn/_lib/match/index.js\": [\n\t\t276,\n\t\t7,\n\t\t25\n\t],\n\t\"./bn/index\": [\n\t\t856,\n\t\t7,\n\t\t426\n\t],\n\t\"./bn/index.d\": [\n\t\t957,\n\t\t9,\n\t\t539\n\t],\n\t\"./bn/index.d.ts\": [\n\t\t957,\n\t\t9,\n\t\t539\n\t],\n\t\"./bn/index.js\": [\n\t\t856,\n\t\t7,\n\t\t426\n\t],\n\t\"./bn/index.js.flow\": [\n\t\t1270,\n\t\t9,\n\t\t777\n\t],\n\t\"./bn/package\": [\n\t\t958,\n\t\t3,\n\t\t682\n\t],\n\t\"./bn/package.json\": [\n\t\t958,\n\t\t3,\n\t\t682\n\t],\n\t\"./bs\": [\n\t\t773,\n\t\t9,\n\t\t611\n\t],\n\t\"./bs/\": [\n\t\t773,\n\t\t9,\n\t\t611\n\t],\n\t\"./bs/_lib/formatDistance\": [\n\t\t277,\n\t\t7,\n\t\t280\n\t],\n\t\"./bs/_lib/formatDistance/\": [\n\t\t277,\n\t\t7,\n\t\t280\n\t],\n\t\"./bs/_lib/formatDistance/index\": [\n\t\t277,\n\t\t7,\n\t\t280\n\t],\n\t\"./bs/_lib/formatDistance/index.js\": [\n\t\t277,\n\t\t7,\n\t\t280\n\t],\n\t\"./bs/_lib/formatLong\": [\n\t\t278,\n\t\t7,\n\t\t103\n\t],\n\t\"./bs/_lib/formatLong/\": [\n\t\t278,\n\t\t7,\n\t\t103\n\t],\n\t\"./bs/_lib/formatLong/index\": [\n\t\t278,\n\t\t7,\n\t\t103\n\t],\n\t\"./bs/_lib/formatLong/index.js\": [\n\t\t278,\n\t\t7,\n\t\t103\n\t],\n\t\"./bs/_lib/formatRelative\": [\n\t\t279,\n\t\t7,\n\t\t281\n\t],\n\t\"./bs/_lib/formatRelative/\": [\n\t\t279,\n\t\t7,\n\t\t281\n\t],\n\t\"./bs/_lib/formatRelative/index\": [\n\t\t279,\n\t\t7,\n\t\t281\n\t],\n\t\"./bs/_lib/formatRelative/index.js\": [\n\t\t279,\n\t\t7,\n\t\t281\n\t],\n\t\"./bs/_lib/localize\": [\n\t\t280,\n\t\t7,\n\t\t189\n\t],\n\t\"./bs/_lib/localize/\": [\n\t\t280,\n\t\t7,\n\t\t189\n\t],\n\t\"./bs/_lib/localize/index\": [\n\t\t280,\n\t\t7,\n\t\t189\n\t],\n\t\"./bs/_lib/localize/index.js\": [\n\t\t280,\n\t\t7,\n\t\t189\n\t],\n\t\"./bs/_lib/match\": [\n\t\t281,\n\t\t7,\n\t\t26\n\t],\n\t\"./bs/_lib/match/\": [\n\t\t281,\n\t\t7,\n\t\t26\n\t],\n\t\"./bs/_lib/match/index\": [\n\t\t281,\n\t\t7,\n\t\t26\n\t],\n\t\"./bs/_lib/match/index.js\": [\n\t\t281,\n\t\t7,\n\t\t26\n\t],\n\t\"./bs/index\": [\n\t\t857,\n\t\t7,\n\t\t427\n\t],\n\t\"./bs/index.d\": [\n\t\t959,\n\t\t9,\n\t\t540\n\t],\n\t\"./bs/index.d.ts\": [\n\t\t959,\n\t\t9,\n\t\t540\n\t],\n\t\"./bs/index.js\": [\n\t\t857,\n\t\t7,\n\t\t427\n\t],\n\t\"./bs/index.js.flow\": [\n\t\t1271,\n\t\t9,\n\t\t778\n\t],\n\t\"./bs/package\": [\n\t\t960,\n\t\t3,\n\t\t683\n\t],\n\t\"./bs/package.json\": [\n\t\t960,\n\t\t3,\n\t\t683\n\t],\n\t\"./ca\": [\n\t\t774,\n\t\t9,\n\t\t612\n\t],\n\t\"./ca/\": [\n\t\t774,\n\t\t9,\n\t\t612\n\t],\n\t\"./ca/_lib/formatDistance\": [\n\t\t282,\n\t\t7,\n\t\t282\n\t],\n\t\"./ca/_lib/formatDistance/\": [\n\t\t282,\n\t\t7,\n\t\t282\n\t],\n\t\"./ca/_lib/formatDistance/index\": [\n\t\t282,\n\t\t7,\n\t\t282\n\t],\n\t\"./ca/_lib/formatDistance/index.js\": [\n\t\t282,\n\t\t7,\n\t\t282\n\t],\n\t\"./ca/_lib/formatLong\": [\n\t\t283,\n\t\t7,\n\t\t104\n\t],\n\t\"./ca/_lib/formatLong/\": [\n\t\t283,\n\t\t7,\n\t\t104\n\t],\n\t\"./ca/_lib/formatLong/index\": [\n\t\t283,\n\t\t7,\n\t\t104\n\t],\n\t\"./ca/_lib/formatLong/index.js\": [\n\t\t283,\n\t\t7,\n\t\t104\n\t],\n\t\"./ca/_lib/formatRelative\": [\n\t\t284,\n\t\t7,\n\t\t283\n\t],\n\t\"./ca/_lib/formatRelative/\": [\n\t\t284,\n\t\t7,\n\t\t283\n\t],\n\t\"./ca/_lib/formatRelative/index\": [\n\t\t284,\n\t\t7,\n\t\t283\n\t],\n\t\"./ca/_lib/formatRelative/index.js\": [\n\t\t284,\n\t\t7,\n\t\t283\n\t],\n\t\"./ca/_lib/localize\": [\n\t\t285,\n\t\t7,\n\t\t190\n\t],\n\t\"./ca/_lib/localize/\": [\n\t\t285,\n\t\t7,\n\t\t190\n\t],\n\t\"./ca/_lib/localize/index\": [\n\t\t285,\n\t\t7,\n\t\t190\n\t],\n\t\"./ca/_lib/localize/index.js\": [\n\t\t285,\n\t\t7,\n\t\t190\n\t],\n\t\"./ca/_lib/match\": [\n\t\t286,\n\t\t7,\n\t\t27\n\t],\n\t\"./ca/_lib/match/\": [\n\t\t286,\n\t\t7,\n\t\t27\n\t],\n\t\"./ca/_lib/match/index\": [\n\t\t286,\n\t\t7,\n\t\t27\n\t],\n\t\"./ca/_lib/match/index.js\": [\n\t\t286,\n\t\t7,\n\t\t27\n\t],\n\t\"./ca/index\": [\n\t\t858,\n\t\t7,\n\t\t428\n\t],\n\t\"./ca/index.d\": [\n\t\t961,\n\t\t9,\n\t\t541\n\t],\n\t\"./ca/index.d.ts\": [\n\t\t961,\n\t\t9,\n\t\t541\n\t],\n\t\"./ca/index.js\": [\n\t\t858,\n\t\t7,\n\t\t428\n\t],\n\t\"./ca/index.js.flow\": [\n\t\t1272,\n\t\t9,\n\t\t779\n\t],\n\t\"./ca/package\": [\n\t\t962,\n\t\t3,\n\t\t684\n\t],\n\t\"./ca/package.json\": [\n\t\t962,\n\t\t3,\n\t\t684\n\t],\n\t\"./cs\": [\n\t\t775,\n\t\t9,\n\t\t613\n\t],\n\t\"./cs/\": [\n\t\t775,\n\t\t9,\n\t\t613\n\t],\n\t\"./cs/_lib/formatDistance\": [\n\t\t287,\n\t\t7,\n\t\t284\n\t],\n\t\"./cs/_lib/formatDistance/\": [\n\t\t287,\n\t\t7,\n\t\t284\n\t],\n\t\"./cs/_lib/formatDistance/index\": [\n\t\t287,\n\t\t7,\n\t\t284\n\t],\n\t\"./cs/_lib/formatDistance/index.js\": [\n\t\t287,\n\t\t7,\n\t\t284\n\t],\n\t\"./cs/_lib/formatLong\": [\n\t\t288,\n\t\t7,\n\t\t105\n\t],\n\t\"./cs/_lib/formatLong/\": [\n\t\t288,\n\t\t7,\n\t\t105\n\t],\n\t\"./cs/_lib/formatLong/index\": [\n\t\t288,\n\t\t7,\n\t\t105\n\t],\n\t\"./cs/_lib/formatLong/index.js\": [\n\t\t288,\n\t\t7,\n\t\t105\n\t],\n\t\"./cs/_lib/formatRelative\": [\n\t\t289,\n\t\t7,\n\t\t285\n\t],\n\t\"./cs/_lib/formatRelative/\": [\n\t\t289,\n\t\t7,\n\t\t285\n\t],\n\t\"./cs/_lib/formatRelative/index\": [\n\t\t289,\n\t\t7,\n\t\t285\n\t],\n\t\"./cs/_lib/formatRelative/index.js\": [\n\t\t289,\n\t\t7,\n\t\t285\n\t],\n\t\"./cs/_lib/localize\": [\n\t\t290,\n\t\t7,\n\t\t191\n\t],\n\t\"./cs/_lib/localize/\": [\n\t\t290,\n\t\t7,\n\t\t191\n\t],\n\t\"./cs/_lib/localize/index\": [\n\t\t290,\n\t\t7,\n\t\t191\n\t],\n\t\"./cs/_lib/localize/index.js\": [\n\t\t290,\n\t\t7,\n\t\t191\n\t],\n\t\"./cs/_lib/match\": [\n\t\t291,\n\t\t7,\n\t\t28\n\t],\n\t\"./cs/_lib/match/\": [\n\t\t291,\n\t\t7,\n\t\t28\n\t],\n\t\"./cs/_lib/match/index\": [\n\t\t291,\n\t\t7,\n\t\t28\n\t],\n\t\"./cs/_lib/match/index.js\": [\n\t\t291,\n\t\t7,\n\t\t28\n\t],\n\t\"./cs/index\": [\n\t\t859,\n\t\t7,\n\t\t429\n\t],\n\t\"./cs/index.d\": [\n\t\t963,\n\t\t9,\n\t\t542\n\t],\n\t\"./cs/index.d.ts\": [\n\t\t963,\n\t\t9,\n\t\t542\n\t],\n\t\"./cs/index.js\": [\n\t\t859,\n\t\t7,\n\t\t429\n\t],\n\t\"./cs/index.js.flow\": [\n\t\t1273,\n\t\t9,\n\t\t780\n\t],\n\t\"./cs/package\": [\n\t\t964,\n\t\t3,\n\t\t685\n\t],\n\t\"./cs/package.json\": [\n\t\t964,\n\t\t3,\n\t\t685\n\t],\n\t\"./cy\": [\n\t\t776,\n\t\t9,\n\t\t614\n\t],\n\t\"./cy/\": [\n\t\t776,\n\t\t9,\n\t\t614\n\t],\n\t\"./cy/_lib/formatDistance\": [\n\t\t292,\n\t\t7,\n\t\t286\n\t],\n\t\"./cy/_lib/formatDistance/\": [\n\t\t292,\n\t\t7,\n\t\t286\n\t],\n\t\"./cy/_lib/formatDistance/index\": [\n\t\t292,\n\t\t7,\n\t\t286\n\t],\n\t\"./cy/_lib/formatDistance/index.js\": [\n\t\t292,\n\t\t7,\n\t\t286\n\t],\n\t\"./cy/_lib/formatLong\": [\n\t\t293,\n\t\t7,\n\t\t106\n\t],\n\t\"./cy/_lib/formatLong/\": [\n\t\t293,\n\t\t7,\n\t\t106\n\t],\n\t\"./cy/_lib/formatLong/index\": [\n\t\t293,\n\t\t7,\n\t\t106\n\t],\n\t\"./cy/_lib/formatLong/index.js\": [\n\t\t293,\n\t\t7,\n\t\t106\n\t],\n\t\"./cy/_lib/formatRelative\": [\n\t\t294,\n\t\t7,\n\t\t287\n\t],\n\t\"./cy/_lib/formatRelative/\": [\n\t\t294,\n\t\t7,\n\t\t287\n\t],\n\t\"./cy/_lib/formatRelative/index\": [\n\t\t294,\n\t\t7,\n\t\t287\n\t],\n\t\"./cy/_lib/formatRelative/index.js\": [\n\t\t294,\n\t\t7,\n\t\t287\n\t],\n\t\"./cy/_lib/localize\": [\n\t\t295,\n\t\t7,\n\t\t192\n\t],\n\t\"./cy/_lib/localize/\": [\n\t\t295,\n\t\t7,\n\t\t192\n\t],\n\t\"./cy/_lib/localize/index\": [\n\t\t295,\n\t\t7,\n\t\t192\n\t],\n\t\"./cy/_lib/localize/index.js\": [\n\t\t295,\n\t\t7,\n\t\t192\n\t],\n\t\"./cy/_lib/match\": [\n\t\t296,\n\t\t7,\n\t\t29\n\t],\n\t\"./cy/_lib/match/\": [\n\t\t296,\n\t\t7,\n\t\t29\n\t],\n\t\"./cy/_lib/match/index\": [\n\t\t296,\n\t\t7,\n\t\t29\n\t],\n\t\"./cy/_lib/match/index.js\": [\n\t\t296,\n\t\t7,\n\t\t29\n\t],\n\t\"./cy/index\": [\n\t\t860,\n\t\t7,\n\t\t430\n\t],\n\t\"./cy/index.d\": [\n\t\t965,\n\t\t9,\n\t\t543\n\t],\n\t\"./cy/index.d.ts\": [\n\t\t965,\n\t\t9,\n\t\t543\n\t],\n\t\"./cy/index.js\": [\n\t\t860,\n\t\t7,\n\t\t430\n\t],\n\t\"./cy/index.js.flow\": [\n\t\t1274,\n\t\t9,\n\t\t781\n\t],\n\t\"./cy/package\": [\n\t\t966,\n\t\t3,\n\t\t686\n\t],\n\t\"./cy/package.json\": [\n\t\t966,\n\t\t3,\n\t\t686\n\t],\n\t\"./da\": [\n\t\t777,\n\t\t9,\n\t\t615\n\t],\n\t\"./da/\": [\n\t\t777,\n\t\t9,\n\t\t615\n\t],\n\t\"./da/_lib/formatDistance\": [\n\t\t297,\n\t\t7,\n\t\t288\n\t],\n\t\"./da/_lib/formatDistance/\": [\n\t\t297,\n\t\t7,\n\t\t288\n\t],\n\t\"./da/_lib/formatDistance/index\": [\n\t\t297,\n\t\t7,\n\t\t288\n\t],\n\t\"./da/_lib/formatDistance/index.js\": [\n\t\t297,\n\t\t7,\n\t\t288\n\t],\n\t\"./da/_lib/formatLong\": [\n\t\t298,\n\t\t7,\n\t\t107\n\t],\n\t\"./da/_lib/formatLong/\": [\n\t\t298,\n\t\t7,\n\t\t107\n\t],\n\t\"./da/_lib/formatLong/index\": [\n\t\t298,\n\t\t7,\n\t\t107\n\t],\n\t\"./da/_lib/formatLong/index.js\": [\n\t\t298,\n\t\t7,\n\t\t107\n\t],\n\t\"./da/_lib/formatRelative\": [\n\t\t299,\n\t\t7,\n\t\t289\n\t],\n\t\"./da/_lib/formatRelative/\": [\n\t\t299,\n\t\t7,\n\t\t289\n\t],\n\t\"./da/_lib/formatRelative/index\": [\n\t\t299,\n\t\t7,\n\t\t289\n\t],\n\t\"./da/_lib/formatRelative/index.js\": [\n\t\t299,\n\t\t7,\n\t\t289\n\t],\n\t\"./da/_lib/localize\": [\n\t\t300,\n\t\t7,\n\t\t193\n\t],\n\t\"./da/_lib/localize/\": [\n\t\t300,\n\t\t7,\n\t\t193\n\t],\n\t\"./da/_lib/localize/index\": [\n\t\t300,\n\t\t7,\n\t\t193\n\t],\n\t\"./da/_lib/localize/index.js\": [\n\t\t300,\n\t\t7,\n\t\t193\n\t],\n\t\"./da/_lib/match\": [\n\t\t301,\n\t\t7,\n\t\t30\n\t],\n\t\"./da/_lib/match/\": [\n\t\t301,\n\t\t7,\n\t\t30\n\t],\n\t\"./da/_lib/match/index\": [\n\t\t301,\n\t\t7,\n\t\t30\n\t],\n\t\"./da/_lib/match/index.js\": [\n\t\t301,\n\t\t7,\n\t\t30\n\t],\n\t\"./da/index\": [\n\t\t861,\n\t\t7,\n\t\t431\n\t],\n\t\"./da/index.d\": [\n\t\t967,\n\t\t9,\n\t\t544\n\t],\n\t\"./da/index.d.ts\": [\n\t\t967,\n\t\t9,\n\t\t544\n\t],\n\t\"./da/index.js\": [\n\t\t861,\n\t\t7,\n\t\t431\n\t],\n\t\"./da/index.js.flow\": [\n\t\t1275,\n\t\t9,\n\t\t782\n\t],\n\t\"./da/package\": [\n\t\t968,\n\t\t3,\n\t\t687\n\t],\n\t\"./da/package.json\": [\n\t\t968,\n\t\t3,\n\t\t687\n\t],\n\t\"./de\": [\n\t\t839,\n\t\t9,\n\t\t500\n\t],\n\t\"./de-AT\": [\n\t\t840,\n\t\t9,\n\t\t499\n\t],\n\t\"./de-AT/\": [\n\t\t840,\n\t\t9,\n\t\t499\n\t],\n\t\"./de-AT/_lib/localize\": [\n\t\t303,\n\t\t7,\n\t\t194\n\t],\n\t\"./de-AT/_lib/localize/\": [\n\t\t303,\n\t\t7,\n\t\t194\n\t],\n\t\"./de-AT/_lib/localize/index\": [\n\t\t303,\n\t\t7,\n\t\t194\n\t],\n\t\"./de-AT/_lib/localize/index.js\": [\n\t\t303,\n\t\t7,\n\t\t194\n\t],\n\t\"./de-AT/index\": [\n\t\t863,\n\t\t7,\n\t\t432\n\t],\n\t\"./de-AT/index.d\": [\n\t\t971,\n\t\t9,\n\t\t495\n\t],\n\t\"./de-AT/index.d.ts\": [\n\t\t971,\n\t\t9,\n\t\t495\n\t],\n\t\"./de-AT/index.js\": [\n\t\t863,\n\t\t7,\n\t\t432\n\t],\n\t\"./de-AT/index.js.flow\": [\n\t\t1278,\n\t\t9,\n\t\t783\n\t],\n\t\"./de-AT/index.ts.flow\": [\n\t\t1279,\n\t\t9,\n\t\t784\n\t],\n\t\"./de-AT/package\": [\n\t\t972,\n\t\t3,\n\t\t688\n\t],\n\t\"./de-AT/package.json\": [\n\t\t972,\n\t\t3,\n\t\t688\n\t],\n\t\"./de/\": [\n\t\t839,\n\t\t9,\n\t\t500\n\t],\n\t\"./de/_lib/formatDistance\": [\n\t\t222,\n\t\t7,\n\t\t290\n\t],\n\t\"./de/_lib/formatDistance/\": [\n\t\t222,\n\t\t7,\n\t\t290\n\t],\n\t\"./de/_lib/formatDistance/index\": [\n\t\t222,\n\t\t7,\n\t\t290\n\t],\n\t\"./de/_lib/formatDistance/index.js\": [\n\t\t222,\n\t\t7,\n\t\t290\n\t],\n\t\"./de/_lib/formatLong\": [\n\t\t223,\n\t\t7,\n\t\t108\n\t],\n\t\"./de/_lib/formatLong/\": [\n\t\t223,\n\t\t7,\n\t\t108\n\t],\n\t\"./de/_lib/formatLong/index\": [\n\t\t223,\n\t\t7,\n\t\t108\n\t],\n\t\"./de/_lib/formatLong/index.js\": [\n\t\t223,\n\t\t7,\n\t\t108\n\t],\n\t\"./de/_lib/formatRelative\": [\n\t\t224,\n\t\t7,\n\t\t291\n\t],\n\t\"./de/_lib/formatRelative/\": [\n\t\t224,\n\t\t7,\n\t\t291\n\t],\n\t\"./de/_lib/formatRelative/index\": [\n\t\t224,\n\t\t7,\n\t\t291\n\t],\n\t\"./de/_lib/formatRelative/index.js\": [\n\t\t224,\n\t\t7,\n\t\t291\n\t],\n\t\"./de/_lib/localize\": [\n\t\t302,\n\t\t7,\n\t\t195\n\t],\n\t\"./de/_lib/localize/\": [\n\t\t302,\n\t\t7,\n\t\t195\n\t],\n\t\"./de/_lib/localize/index\": [\n\t\t302,\n\t\t7,\n\t\t195\n\t],\n\t\"./de/_lib/localize/index.js\": [\n\t\t302,\n\t\t7,\n\t\t195\n\t],\n\t\"./de/_lib/match\": [\n\t\t225,\n\t\t7,\n\t\t31\n\t],\n\t\"./de/_lib/match/\": [\n\t\t225,\n\t\t7,\n\t\t31\n\t],\n\t\"./de/_lib/match/index\": [\n\t\t225,\n\t\t7,\n\t\t31\n\t],\n\t\"./de/_lib/match/index.js\": [\n\t\t225,\n\t\t7,\n\t\t31\n\t],\n\t\"./de/index\": [\n\t\t862,\n\t\t7,\n\t\t433\n\t],\n\t\"./de/index.d\": [\n\t\t969,\n\t\t9,\n\t\t496\n\t],\n\t\"./de/index.d.ts\": [\n\t\t969,\n\t\t9,\n\t\t496\n\t],\n\t\"./de/index.js\": [\n\t\t862,\n\t\t7,\n\t\t433\n\t],\n\t\"./de/index.js.flow\": [\n\t\t1276,\n\t\t9,\n\t\t785\n\t],\n\t\"./de/index.ts.flow\": [\n\t\t1277,\n\t\t9,\n\t\t786\n\t],\n\t\"./de/package\": [\n\t\t970,\n\t\t3,\n\t\t689\n\t],\n\t\"./de/package.json\": [\n\t\t970,\n\t\t3,\n\t\t689\n\t],\n\t\"./el\": [\n\t\t778,\n\t\t9,\n\t\t616\n\t],\n\t\"./el/\": [\n\t\t778,\n\t\t9,\n\t\t616\n\t],\n\t\"./el/_lib/formatDistance\": [\n\t\t304,\n\t\t7,\n\t\t292\n\t],\n\t\"./el/_lib/formatDistance/\": [\n\t\t304,\n\t\t7,\n\t\t292\n\t],\n\t\"./el/_lib/formatDistance/index\": [\n\t\t304,\n\t\t7,\n\t\t292\n\t],\n\t\"./el/_lib/formatDistance/index.js\": [\n\t\t304,\n\t\t7,\n\t\t292\n\t],\n\t\"./el/_lib/formatLong\": [\n\t\t305,\n\t\t7,\n\t\t109\n\t],\n\t\"./el/_lib/formatLong/\": [\n\t\t305,\n\t\t7,\n\t\t109\n\t],\n\t\"./el/_lib/formatLong/index\": [\n\t\t305,\n\t\t7,\n\t\t109\n\t],\n\t\"./el/_lib/formatLong/index.js\": [\n\t\t305,\n\t\t7,\n\t\t109\n\t],\n\t\"./el/_lib/formatRelative\": [\n\t\t306,\n\t\t7,\n\t\t293\n\t],\n\t\"./el/_lib/formatRelative/\": [\n\t\t306,\n\t\t7,\n\t\t293\n\t],\n\t\"./el/_lib/formatRelative/index\": [\n\t\t306,\n\t\t7,\n\t\t293\n\t],\n\t\"./el/_lib/formatRelative/index.js\": [\n\t\t306,\n\t\t7,\n\t\t293\n\t],\n\t\"./el/_lib/localize\": [\n\t\t307,\n\t\t7,\n\t\t196\n\t],\n\t\"./el/_lib/localize/\": [\n\t\t307,\n\t\t7,\n\t\t196\n\t],\n\t\"./el/_lib/localize/index\": [\n\t\t307,\n\t\t7,\n\t\t196\n\t],\n\t\"./el/_lib/localize/index.js\": [\n\t\t307,\n\t\t7,\n\t\t196\n\t],\n\t\"./el/_lib/match\": [\n\t\t308,\n\t\t7,\n\t\t32\n\t],\n\t\"./el/_lib/match/\": [\n\t\t308,\n\t\t7,\n\t\t32\n\t],\n\t\"./el/_lib/match/index\": [\n\t\t308,\n\t\t7,\n\t\t32\n\t],\n\t\"./el/_lib/match/index.js\": [\n\t\t308,\n\t\t7,\n\t\t32\n\t],\n\t\"./el/index\": [\n\t\t864,\n\t\t7,\n\t\t434\n\t],\n\t\"./el/index.d\": [\n\t\t973,\n\t\t9,\n\t\t545\n\t],\n\t\"./el/index.d.ts\": [\n\t\t973,\n\t\t9,\n\t\t545\n\t],\n\t\"./el/index.js\": [\n\t\t864,\n\t\t7,\n\t\t434\n\t],\n\t\"./el/index.js.flow\": [\n\t\t1280,\n\t\t9,\n\t\t787\n\t],\n\t\"./el/package\": [\n\t\t974,\n\t\t3,\n\t\t690\n\t],\n\t\"./el/package.json\": [\n\t\t974,\n\t\t3,\n\t\t690\n\t],\n\t\"./en-AU\": [\n\t\t841,\n\t\t9,\n\t\t617\n\t],\n\t\"./en-AU/\": [\n\t\t841,\n\t\t9,\n\t\t617\n\t],\n\t\"./en-AU/_lib/formatLong\": [\n\t\t309,\n\t\t7,\n\t\t110\n\t],\n\t\"./en-AU/_lib/formatLong/\": [\n\t\t309,\n\t\t7,\n\t\t110\n\t],\n\t\"./en-AU/_lib/formatLong/index\": [\n\t\t309,\n\t\t7,\n\t\t110\n\t],\n\t\"./en-AU/_lib/formatLong/index.js\": [\n\t\t309,\n\t\t7,\n\t\t110\n\t],\n\t\"./en-AU/index\": [\n\t\t865,\n\t\t7,\n\t\t435\n\t],\n\t\"./en-AU/index.d\": [\n\t\t975,\n\t\t9,\n\t\t546\n\t],\n\t\"./en-AU/index.d.ts\": [\n\t\t975,\n\t\t9,\n\t\t546\n\t],\n\t\"./en-AU/index.js\": [\n\t\t865,\n\t\t7,\n\t\t435\n\t],\n\t\"./en-AU/index.js.flow\": [\n\t\t1281,\n\t\t9,\n\t\t788\n\t],\n\t\"./en-AU/index.ts.flow\": [\n\t\t1282,\n\t\t9,\n\t\t789\n\t],\n\t\"./en-AU/package\": [\n\t\t976,\n\t\t3,\n\t\t691\n\t],\n\t\"./en-AU/package.json\": [\n\t\t976,\n\t\t3,\n\t\t691\n\t],\n\t\"./en-CA\": [\n\t\t837,\n\t\t9,\n\t\t618\n\t],\n\t\"./en-CA/\": [\n\t\t837,\n\t\t9,\n\t\t618\n\t],\n\t\"./en-CA/_lib/formatDistance\": [\n\t\t310,\n\t\t7,\n\t\t294\n\t],\n\t\"./en-CA/_lib/formatDistance/\": [\n\t\t310,\n\t\t7,\n\t\t294\n\t],\n\t\"./en-CA/_lib/formatDistance/index\": [\n\t\t310,\n\t\t7,\n\t\t294\n\t],\n\t\"./en-CA/_lib/formatDistance/index.js\": [\n\t\t310,\n\t\t7,\n\t\t294\n\t],\n\t\"./en-CA/_lib/formatLong\": [\n\t\t311,\n\t\t7,\n\t\t111\n\t],\n\t\"./en-CA/_lib/formatLong/\": [\n\t\t311,\n\t\t7,\n\t\t111\n\t],\n\t\"./en-CA/_lib/formatLong/index\": [\n\t\t311,\n\t\t7,\n\t\t111\n\t],\n\t\"./en-CA/_lib/formatLong/index.js\": [\n\t\t311,\n\t\t7,\n\t\t111\n\t],\n\t\"./en-CA/index\": [\n\t\t866,\n\t\t7,\n\t\t436\n\t],\n\t\"./en-CA/index.d\": [\n\t\t977,\n\t\t9,\n\t\t547\n\t],\n\t\"./en-CA/index.d.ts\": [\n\t\t977,\n\t\t9,\n\t\t547\n\t],\n\t\"./en-CA/index.js\": [\n\t\t866,\n\t\t7,\n\t\t436\n\t],\n\t\"./en-CA/index.js.flow\": [\n\t\t1283,\n\t\t9,\n\t\t790\n\t],\n\t\"./en-CA/index.ts.flow\": [\n\t\t1284,\n\t\t9,\n\t\t791\n\t],\n\t\"./en-CA/package\": [\n\t\t978,\n\t\t3,\n\t\t692\n\t],\n\t\"./en-CA/package.json\": [\n\t\t978,\n\t\t3,\n\t\t692\n\t],\n\t\"./en-GB\": [\n\t\t760,\n\t\t9,\n\t\t548\n\t],\n\t\"./en-GB/\": [\n\t\t760,\n\t\t9,\n\t\t548\n\t],\n\t\"./en-GB/_lib/formatLong\": [\n\t\t226,\n\t\t7,\n\t\t112\n\t],\n\t\"./en-GB/_lib/formatLong/\": [\n\t\t226,\n\t\t7,\n\t\t112\n\t],\n\t\"./en-GB/_lib/formatLong/index\": [\n\t\t226,\n\t\t7,\n\t\t112\n\t],\n\t\"./en-GB/_lib/formatLong/index.js\": [\n\t\t226,\n\t\t7,\n\t\t112\n\t],\n\t\"./en-GB/index\": [\n\t\t867,\n\t\t7,\n\t\t437\n\t],\n\t\"./en-GB/index.d\": [\n\t\t979,\n\t\t9,\n\t\t516\n\t],\n\t\"./en-GB/index.d.ts\": [\n\t\t979,\n\t\t9,\n\t\t516\n\t],\n\t\"./en-GB/index.js\": [\n\t\t867,\n\t\t7,\n\t\t437\n\t],\n\t\"./en-GB/index.js.flow\": [\n\t\t1285,\n\t\t9,\n\t\t792\n\t],\n\t\"./en-GB/index.ts.flow\": [\n\t\t1286,\n\t\t9,\n\t\t793\n\t],\n\t\"./en-GB/package\": [\n\t\t980,\n\t\t3,\n\t\t693\n\t],\n\t\"./en-GB/package.json\": [\n\t\t980,\n\t\t3,\n\t\t693\n\t],\n\t\"./en-IE\": [\n\t\t761,\n\t\t9,\n\t\t549\n\t],\n\t\"./en-IE/\": [\n\t\t761,\n\t\t9,\n\t\t549\n\t],\n\t\"./en-IE/index\": [\n\t\t868,\n\t\t7,\n\t\t438\n\t],\n\t\"./en-IE/index.d\": [\n\t\t981,\n\t\t9,\n\t\t517\n\t],\n\t\"./en-IE/index.d.ts\": [\n\t\t981,\n\t\t9,\n\t\t517\n\t],\n\t\"./en-IE/index.js\": [\n\t\t868,\n\t\t7,\n\t\t438\n\t],\n\t\"./en-IE/index.ts.flow\": [\n\t\t1287,\n\t\t9,\n\t\t794\n\t],\n\t\"./en-IE/package\": [\n\t\t982,\n\t\t3,\n\t\t694\n\t],\n\t\"./en-IE/package.json\": [\n\t\t982,\n\t\t3,\n\t\t694\n\t],\n\t\"./en-IN\": [\n\t\t842,\n\t\t9,\n\t\t619\n\t],\n\t\"./en-IN/\": [\n\t\t842,\n\t\t9,\n\t\t619\n\t],\n\t\"./en-IN/_lib/formatLong\": [\n\t\t312,\n\t\t7,\n\t\t113\n\t],\n\t\"./en-IN/_lib/formatLong/\": [\n\t\t312,\n\t\t7,\n\t\t113\n\t],\n\t\"./en-IN/_lib/formatLong/index\": [\n\t\t312,\n\t\t7,\n\t\t113\n\t],\n\t\"./en-IN/_lib/formatLong/index.js\": [\n\t\t312,\n\t\t7,\n\t\t113\n\t],\n\t\"./en-IN/index\": [\n\t\t869,\n\t\t7,\n\t\t439\n\t],\n\t\"./en-IN/index.d\": [\n\t\t983,\n\t\t9,\n\t\t550\n\t],\n\t\"./en-IN/index.d.ts\": [\n\t\t983,\n\t\t9,\n\t\t550\n\t],\n\t\"./en-IN/index.js\": [\n\t\t869,\n\t\t7,\n\t\t439\n\t],\n\t\"./en-IN/index.js.flow\": [\n\t\t1288,\n\t\t9,\n\t\t795\n\t],\n\t\"./en-IN/index.ts.flow\": [\n\t\t1289,\n\t\t9,\n\t\t796\n\t],\n\t\"./en-IN/package\": [\n\t\t984,\n\t\t3,\n\t\t695\n\t],\n\t\"./en-IN/package.json\": [\n\t\t984,\n\t\t3,\n\t\t695\n\t],\n\t\"./en-NZ\": [\n\t\t843,\n\t\t9,\n\t\t620\n\t],\n\t\"./en-NZ/\": [\n\t\t843,\n\t\t9,\n\t\t620\n\t],\n\t\"./en-NZ/_lib/formatLong\": [\n\t\t313,\n\t\t7,\n\t\t114\n\t],\n\t\"./en-NZ/_lib/formatLong/\": [\n\t\t313,\n\t\t7,\n\t\t114\n\t],\n\t\"./en-NZ/_lib/formatLong/index\": [\n\t\t313,\n\t\t7,\n\t\t114\n\t],\n\t\"./en-NZ/_lib/formatLong/index.js\": [\n\t\t313,\n\t\t7,\n\t\t114\n\t],\n\t\"./en-NZ/index\": [\n\t\t870,\n\t\t7,\n\t\t440\n\t],\n\t\"./en-NZ/index.d\": [\n\t\t985,\n\t\t9,\n\t\t551\n\t],\n\t\"./en-NZ/index.d.ts\": [\n\t\t985,\n\t\t9,\n\t\t551\n\t],\n\t\"./en-NZ/index.js\": [\n\t\t870,\n\t\t7,\n\t\t440\n\t],\n\t\"./en-NZ/index.js.flow\": [\n\t\t1290,\n\t\t9,\n\t\t797\n\t],\n\t\"./en-NZ/index.ts.flow\": [\n\t\t1291,\n\t\t9,\n\t\t798\n\t],\n\t\"./en-NZ/package\": [\n\t\t986,\n\t\t3,\n\t\t696\n\t],\n\t\"./en-NZ/package.json\": [\n\t\t986,\n\t\t3,\n\t\t696\n\t],\n\t\"./en-US\": [\n\t\t99,\n\t\t9\n\t],\n\t\"./en-US/\": [\n\t\t99,\n\t\t9\n\t],\n\t\"./en-US/_lib/formatDistance\": [\n\t\t216,\n\t\t7,\n\t\t295\n\t],\n\t\"./en-US/_lib/formatDistance/\": [\n\t\t216,\n\t\t7,\n\t\t295\n\t],\n\t\"./en-US/_lib/formatDistance/index\": [\n\t\t216,\n\t\t7,\n\t\t295\n\t],\n\t\"./en-US/_lib/formatDistance/index.js\": [\n\t\t216,\n\t\t7,\n\t\t295\n\t],\n\t\"./en-US/_lib/formatLong\": [\n\t\t314,\n\t\t7,\n\t\t115\n\t],\n\t\"./en-US/_lib/formatLong/\": [\n\t\t314,\n\t\t7,\n\t\t115\n\t],\n\t\"./en-US/_lib/formatLong/index\": [\n\t\t314,\n\t\t7,\n\t\t115\n\t],\n\t\"./en-US/_lib/formatLong/index.js\": [\n\t\t314,\n\t\t7,\n\t\t115\n\t],\n\t\"./en-US/_lib/formatRelative\": [\n\t\t213,\n\t\t7,\n\t\t296\n\t],\n\t\"./en-US/_lib/formatRelative/\": [\n\t\t213,\n\t\t7,\n\t\t296\n\t],\n\t\"./en-US/_lib/formatRelative/index\": [\n\t\t213,\n\t\t7,\n\t\t296\n\t],\n\t\"./en-US/_lib/formatRelative/index.js\": [\n\t\t213,\n\t\t7,\n\t\t296\n\t],\n\t\"./en-US/_lib/localize\": [\n\t\t214,\n\t\t7,\n\t\t197\n\t],\n\t\"./en-US/_lib/localize/\": [\n\t\t214,\n\t\t7,\n\t\t197\n\t],\n\t\"./en-US/_lib/localize/index\": [\n\t\t214,\n\t\t7,\n\t\t197\n\t],\n\t\"./en-US/_lib/localize/index.js\": [\n\t\t214,\n\t\t7,\n\t\t197\n\t],\n\t\"./en-US/_lib/match\": [\n\t\t215,\n\t\t7,\n\t\t33\n\t],\n\t\"./en-US/_lib/match/\": [\n\t\t215,\n\t\t7,\n\t\t33\n\t],\n\t\"./en-US/_lib/match/index\": [\n\t\t215,\n\t\t7,\n\t\t33\n\t],\n\t\"./en-US/_lib/match/index.js\": [\n\t\t215,\n\t\t7,\n\t\t33\n\t],\n\t\"./en-US/index\": [\n\t\t871,\n\t\t7,\n\t\t441\n\t],\n\t\"./en-US/index.d\": [\n\t\t987,\n\t\t9,\n\t\t697\n\t],\n\t\"./en-US/index.d.ts\": [\n\t\t987,\n\t\t9,\n\t\t697\n\t],\n\t\"./en-US/index.js\": [\n\t\t871,\n\t\t7,\n\t\t441\n\t],\n\t\"./en-US/index.js.flow\": [\n\t\t1292,\n\t\t9,\n\t\t799\n\t],\n\t\"./en-US/index.ts.flow\": [\n\t\t1293,\n\t\t9,\n\t\t800\n\t],\n\t\"./en-US/package\": [\n\t\t988,\n\t\t3,\n\t\t698\n\t],\n\t\"./en-US/package.json\": [\n\t\t988,\n\t\t3,\n\t\t698\n\t],\n\t\"./en-ZA\": [\n\t\t844,\n\t\t9,\n\t\t621\n\t],\n\t\"./en-ZA/\": [\n\t\t844,\n\t\t9,\n\t\t621\n\t],\n\t\"./en-ZA/_lib/formatLong\": [\n\t\t315,\n\t\t7,\n\t\t116\n\t],\n\t\"./en-ZA/_lib/formatLong/\": [\n\t\t315,\n\t\t7,\n\t\t116\n\t],\n\t\"./en-ZA/_lib/formatLong/index\": [\n\t\t315,\n\t\t7,\n\t\t116\n\t],\n\t\"./en-ZA/_lib/formatLong/index.js\": [\n\t\t315,\n\t\t7,\n\t\t116\n\t],\n\t\"./en-ZA/index\": [\n\t\t872,\n\t\t7,\n\t\t442\n\t],\n\t\"./en-ZA/index.d\": [\n\t\t989,\n\t\t9,\n\t\t552\n\t],\n\t\"./en-ZA/index.d.ts\": [\n\t\t989,\n\t\t9,\n\t\t552\n\t],\n\t\"./en-ZA/index.js\": [\n\t\t872,\n\t\t7,\n\t\t442\n\t],\n\t\"./en-ZA/index.js.flow\": [\n\t\t1294,\n\t\t9,\n\t\t801\n\t],\n\t\"./en-ZA/index.ts.flow\": [\n\t\t1295,\n\t\t9,\n\t\t802\n\t],\n\t\"./en-ZA/package\": [\n\t\t990,\n\t\t3,\n\t\t699\n\t],\n\t\"./en-ZA/package.json\": [\n\t\t990,\n\t\t3,\n\t\t699\n\t],\n\t\"./eo\": [\n\t\t779,\n\t\t9,\n\t\t622\n\t],\n\t\"./eo/\": [\n\t\t779,\n\t\t9,\n\t\t622\n\t],\n\t\"./eo/_lib/formatDistance\": [\n\t\t316,\n\t\t7,\n\t\t297\n\t],\n\t\"./eo/_lib/formatDistance/\": [\n\t\t316,\n\t\t7,\n\t\t297\n\t],\n\t\"./eo/_lib/formatDistance/index\": [\n\t\t316,\n\t\t7,\n\t\t297\n\t],\n\t\"./eo/_lib/formatDistance/index.js\": [\n\t\t316,\n\t\t7,\n\t\t297\n\t],\n\t\"./eo/_lib/formatLong\": [\n\t\t317,\n\t\t7,\n\t\t117\n\t],\n\t\"./eo/_lib/formatLong/\": [\n\t\t317,\n\t\t7,\n\t\t117\n\t],\n\t\"./eo/_lib/formatLong/index\": [\n\t\t317,\n\t\t7,\n\t\t117\n\t],\n\t\"./eo/_lib/formatLong/index.js\": [\n\t\t317,\n\t\t7,\n\t\t117\n\t],\n\t\"./eo/_lib/formatRelative\": [\n\t\t318,\n\t\t7,\n\t\t298\n\t],\n\t\"./eo/_lib/formatRelative/\": [\n\t\t318,\n\t\t7,\n\t\t298\n\t],\n\t\"./eo/_lib/formatRelative/index\": [\n\t\t318,\n\t\t7,\n\t\t298\n\t],\n\t\"./eo/_lib/formatRelative/index.js\": [\n\t\t318,\n\t\t7,\n\t\t298\n\t],\n\t\"./eo/_lib/localize\": [\n\t\t319,\n\t\t7,\n\t\t198\n\t],\n\t\"./eo/_lib/localize/\": [\n\t\t319,\n\t\t7,\n\t\t198\n\t],\n\t\"./eo/_lib/localize/index\": [\n\t\t319,\n\t\t7,\n\t\t198\n\t],\n\t\"./eo/_lib/localize/index.js\": [\n\t\t319,\n\t\t7,\n\t\t198\n\t],\n\t\"./eo/_lib/match\": [\n\t\t320,\n\t\t7,\n\t\t34\n\t],\n\t\"./eo/_lib/match/\": [\n\t\t320,\n\t\t7,\n\t\t34\n\t],\n\t\"./eo/_lib/match/index\": [\n\t\t320,\n\t\t7,\n\t\t34\n\t],\n\t\"./eo/_lib/match/index.js\": [\n\t\t320,\n\t\t7,\n\t\t34\n\t],\n\t\"./eo/index\": [\n\t\t873,\n\t\t7,\n\t\t443\n\t],\n\t\"./eo/index.d\": [\n\t\t991,\n\t\t9,\n\t\t553\n\t],\n\t\"./eo/index.d.ts\": [\n\t\t991,\n\t\t9,\n\t\t553\n\t],\n\t\"./eo/index.js\": [\n\t\t873,\n\t\t7,\n\t\t443\n\t],\n\t\"./eo/index.js.flow\": [\n\t\t1296,\n\t\t9,\n\t\t803\n\t],\n\t\"./eo/package\": [\n\t\t992,\n\t\t3,\n\t\t700\n\t],\n\t\"./eo/package.json\": [\n\t\t992,\n\t\t3,\n\t\t700\n\t],\n\t\"./es\": [\n\t\t780,\n\t\t9,\n\t\t623\n\t],\n\t\"./es/\": [\n\t\t780,\n\t\t9,\n\t\t623\n\t],\n\t\"./es/_lib/formatDistance\": [\n\t\t321,\n\t\t7,\n\t\t299\n\t],\n\t\"./es/_lib/formatDistance/\": [\n\t\t321,\n\t\t7,\n\t\t299\n\t],\n\t\"./es/_lib/formatDistance/index\": [\n\t\t321,\n\t\t7,\n\t\t299\n\t],\n\t\"./es/_lib/formatDistance/index.js\": [\n\t\t321,\n\t\t7,\n\t\t299\n\t],\n\t\"./es/_lib/formatLong\": [\n\t\t322,\n\t\t7,\n\t\t118\n\t],\n\t\"./es/_lib/formatLong/\": [\n\t\t322,\n\t\t7,\n\t\t118\n\t],\n\t\"./es/_lib/formatLong/index\": [\n\t\t322,\n\t\t7,\n\t\t118\n\t],\n\t\"./es/_lib/formatLong/index.js\": [\n\t\t322,\n\t\t7,\n\t\t118\n\t],\n\t\"./es/_lib/formatRelative\": [\n\t\t323,\n\t\t7,\n\t\t300\n\t],\n\t\"./es/_lib/formatRelative/\": [\n\t\t323,\n\t\t7,\n\t\t300\n\t],\n\t\"./es/_lib/formatRelative/index\": [\n\t\t323,\n\t\t7,\n\t\t300\n\t],\n\t\"./es/_lib/formatRelative/index.js\": [\n\t\t323,\n\t\t7,\n\t\t300\n\t],\n\t\"./es/_lib/localize\": [\n\t\t324,\n\t\t7,\n\t\t199\n\t],\n\t\"./es/_lib/localize/\": [\n\t\t324,\n\t\t7,\n\t\t199\n\t],\n\t\"./es/_lib/localize/index\": [\n\t\t324,\n\t\t7,\n\t\t199\n\t],\n\t\"./es/_lib/localize/index.js\": [\n\t\t324,\n\t\t7,\n\t\t199\n\t],\n\t\"./es/_lib/match\": [\n\t\t325,\n\t\t7,\n\t\t35\n\t],\n\t\"./es/_lib/match/\": [\n\t\t325,\n\t\t7,\n\t\t35\n\t],\n\t\"./es/_lib/match/index\": [\n\t\t325,\n\t\t7,\n\t\t35\n\t],\n\t\"./es/_lib/match/index.js\": [\n\t\t325,\n\t\t7,\n\t\t35\n\t],\n\t\"./es/index\": [\n\t\t874,\n\t\t7,\n\t\t444\n\t],\n\t\"./es/index.d\": [\n\t\t993,\n\t\t9,\n\t\t554\n\t],\n\t\"./es/index.d.ts\": [\n\t\t993,\n\t\t9,\n\t\t554\n\t],\n\t\"./es/index.js\": [\n\t\t874,\n\t\t7,\n\t\t444\n\t],\n\t\"./es/index.js.flow\": [\n\t\t1297,\n\t\t9,\n\t\t804\n\t],\n\t\"./es/package\": [\n\t\t994,\n\t\t3,\n\t\t701\n\t],\n\t\"./es/package.json\": [\n\t\t994,\n\t\t3,\n\t\t701\n\t],\n\t\"./et\": [\n\t\t781,\n\t\t9,\n\t\t624\n\t],\n\t\"./et/\": [\n\t\t781,\n\t\t9,\n\t\t624\n\t],\n\t\"./et/_lib/formatDistance\": [\n\t\t326,\n\t\t7,\n\t\t301\n\t],\n\t\"./et/_lib/formatDistance/\": [\n\t\t326,\n\t\t7,\n\t\t301\n\t],\n\t\"./et/_lib/formatDistance/index\": [\n\t\t326,\n\t\t7,\n\t\t301\n\t],\n\t\"./et/_lib/formatDistance/index.js\": [\n\t\t326,\n\t\t7,\n\t\t301\n\t],\n\t\"./et/_lib/formatLong\": [\n\t\t327,\n\t\t7,\n\t\t119\n\t],\n\t\"./et/_lib/formatLong/\": [\n\t\t327,\n\t\t7,\n\t\t119\n\t],\n\t\"./et/_lib/formatLong/index\": [\n\t\t327,\n\t\t7,\n\t\t119\n\t],\n\t\"./et/_lib/formatLong/index.js\": [\n\t\t327,\n\t\t7,\n\t\t119\n\t],\n\t\"./et/_lib/formatRelative\": [\n\t\t328,\n\t\t7,\n\t\t302\n\t],\n\t\"./et/_lib/formatRelative/\": [\n\t\t328,\n\t\t7,\n\t\t302\n\t],\n\t\"./et/_lib/formatRelative/index\": [\n\t\t328,\n\t\t7,\n\t\t302\n\t],\n\t\"./et/_lib/formatRelative/index.js\": [\n\t\t328,\n\t\t7,\n\t\t302\n\t],\n\t\"./et/_lib/localize\": [\n\t\t329,\n\t\t7,\n\t\t200\n\t],\n\t\"./et/_lib/localize/\": [\n\t\t329,\n\t\t7,\n\t\t200\n\t],\n\t\"./et/_lib/localize/index\": [\n\t\t329,\n\t\t7,\n\t\t200\n\t],\n\t\"./et/_lib/localize/index.js\": [\n\t\t329,\n\t\t7,\n\t\t200\n\t],\n\t\"./et/_lib/match\": [\n\t\t330,\n\t\t7,\n\t\t36\n\t],\n\t\"./et/_lib/match/\": [\n\t\t330,\n\t\t7,\n\t\t36\n\t],\n\t\"./et/_lib/match/index\": [\n\t\t330,\n\t\t7,\n\t\t36\n\t],\n\t\"./et/_lib/match/index.js\": [\n\t\t330,\n\t\t7,\n\t\t36\n\t],\n\t\"./et/index\": [\n\t\t875,\n\t\t7,\n\t\t445\n\t],\n\t\"./et/index.d\": [\n\t\t995,\n\t\t9,\n\t\t555\n\t],\n\t\"./et/index.d.ts\": [\n\t\t995,\n\t\t9,\n\t\t555\n\t],\n\t\"./et/index.js\": [\n\t\t875,\n\t\t7,\n\t\t445\n\t],\n\t\"./et/index.js.flow\": [\n\t\t1298,\n\t\t9,\n\t\t805\n\t],\n\t\"./et/package\": [\n\t\t996,\n\t\t3,\n\t\t702\n\t],\n\t\"./et/package.json\": [\n\t\t996,\n\t\t3,\n\t\t702\n\t],\n\t\"./eu\": [\n\t\t782,\n\t\t9,\n\t\t625\n\t],\n\t\"./eu/\": [\n\t\t782,\n\t\t9,\n\t\t625\n\t],\n\t\"./eu/_lib/formatDistance\": [\n\t\t331,\n\t\t7,\n\t\t303\n\t],\n\t\"./eu/_lib/formatDistance/\": [\n\t\t331,\n\t\t7,\n\t\t303\n\t],\n\t\"./eu/_lib/formatDistance/index\": [\n\t\t331,\n\t\t7,\n\t\t303\n\t],\n\t\"./eu/_lib/formatDistance/index.js\": [\n\t\t331,\n\t\t7,\n\t\t303\n\t],\n\t\"./eu/_lib/formatLong\": [\n\t\t332,\n\t\t7,\n\t\t120\n\t],\n\t\"./eu/_lib/formatLong/\": [\n\t\t332,\n\t\t7,\n\t\t120\n\t],\n\t\"./eu/_lib/formatLong/index\": [\n\t\t332,\n\t\t7,\n\t\t120\n\t],\n\t\"./eu/_lib/formatLong/index.js\": [\n\t\t332,\n\t\t7,\n\t\t120\n\t],\n\t\"./eu/_lib/formatRelative\": [\n\t\t333,\n\t\t7,\n\t\t304\n\t],\n\t\"./eu/_lib/formatRelative/\": [\n\t\t333,\n\t\t7,\n\t\t304\n\t],\n\t\"./eu/_lib/formatRelative/index\": [\n\t\t333,\n\t\t7,\n\t\t304\n\t],\n\t\"./eu/_lib/formatRelative/index.js\": [\n\t\t333,\n\t\t7,\n\t\t304\n\t],\n\t\"./eu/_lib/localize\": [\n\t\t334,\n\t\t7,\n\t\t201\n\t],\n\t\"./eu/_lib/localize/\": [\n\t\t334,\n\t\t7,\n\t\t201\n\t],\n\t\"./eu/_lib/localize/index\": [\n\t\t334,\n\t\t7,\n\t\t201\n\t],\n\t\"./eu/_lib/localize/index.js\": [\n\t\t334,\n\t\t7,\n\t\t201\n\t],\n\t\"./eu/_lib/match\": [\n\t\t335,\n\t\t7,\n\t\t37\n\t],\n\t\"./eu/_lib/match/\": [\n\t\t335,\n\t\t7,\n\t\t37\n\t],\n\t\"./eu/_lib/match/index\": [\n\t\t335,\n\t\t7,\n\t\t37\n\t],\n\t\"./eu/_lib/match/index.js\": [\n\t\t335,\n\t\t7,\n\t\t37\n\t],\n\t\"./eu/index\": [\n\t\t876,\n\t\t7,\n\t\t446\n\t],\n\t\"./eu/index.d\": [\n\t\t997,\n\t\t9,\n\t\t556\n\t],\n\t\"./eu/index.d.ts\": [\n\t\t997,\n\t\t9,\n\t\t556\n\t],\n\t\"./eu/index.js\": [\n\t\t876,\n\t\t7,\n\t\t446\n\t],\n\t\"./eu/index.js.flow\": [\n\t\t1299,\n\t\t9,\n\t\t806\n\t],\n\t\"./eu/package\": [\n\t\t998,\n\t\t3,\n\t\t703\n\t],\n\t\"./eu/package.json\": [\n\t\t998,\n\t\t3,\n\t\t703\n\t],\n\t\"./fa-IR\": [\n\t\t783,\n\t\t9,\n\t\t626\n\t],\n\t\"./fa-IR/\": [\n\t\t783,\n\t\t9,\n\t\t626\n\t],\n\t\"./fa-IR/_lib/formatDistance\": [\n\t\t336,\n\t\t7,\n\t\t305\n\t],\n\t\"./fa-IR/_lib/formatDistance/\": [\n\t\t336,\n\t\t7,\n\t\t305\n\t],\n\t\"./fa-IR/_lib/formatDistance/index\": [\n\t\t336,\n\t\t7,\n\t\t305\n\t],\n\t\"./fa-IR/_lib/formatDistance/index.js\": [\n\t\t336,\n\t\t7,\n\t\t305\n\t],\n\t\"./fa-IR/_lib/formatLong\": [\n\t\t337,\n\t\t7,\n\t\t121\n\t],\n\t\"./fa-IR/_lib/formatLong/\": [\n\t\t337,\n\t\t7,\n\t\t121\n\t],\n\t\"./fa-IR/_lib/formatLong/index\": [\n\t\t337,\n\t\t7,\n\t\t121\n\t],\n\t\"./fa-IR/_lib/formatLong/index.js\": [\n\t\t337,\n\t\t7,\n\t\t121\n\t],\n\t\"./fa-IR/_lib/formatRelative\": [\n\t\t338,\n\t\t7,\n\t\t306\n\t],\n\t\"./fa-IR/_lib/formatRelative/\": [\n\t\t338,\n\t\t7,\n\t\t306\n\t],\n\t\"./fa-IR/_lib/formatRelative/index\": [\n\t\t338,\n\t\t7,\n\t\t306\n\t],\n\t\"./fa-IR/_lib/formatRelative/index.js\": [\n\t\t338,\n\t\t7,\n\t\t306\n\t],\n\t\"./fa-IR/_lib/localize\": [\n\t\t339,\n\t\t7,\n\t\t202\n\t],\n\t\"./fa-IR/_lib/localize/\": [\n\t\t339,\n\t\t7,\n\t\t202\n\t],\n\t\"./fa-IR/_lib/localize/index\": [\n\t\t339,\n\t\t7,\n\t\t202\n\t],\n\t\"./fa-IR/_lib/localize/index.js\": [\n\t\t339,\n\t\t7,\n\t\t202\n\t],\n\t\"./fa-IR/_lib/match\": [\n\t\t340,\n\t\t7,\n\t\t38\n\t],\n\t\"./fa-IR/_lib/match/\": [\n\t\t340,\n\t\t7,\n\t\t38\n\t],\n\t\"./fa-IR/_lib/match/index\": [\n\t\t340,\n\t\t7,\n\t\t38\n\t],\n\t\"./fa-IR/_lib/match/index.js\": [\n\t\t340,\n\t\t7,\n\t\t38\n\t],\n\t\"./fa-IR/index\": [\n\t\t877,\n\t\t7,\n\t\t447\n\t],\n\t\"./fa-IR/index.d\": [\n\t\t999,\n\t\t9,\n\t\t557\n\t],\n\t\"./fa-IR/index.d.ts\": [\n\t\t999,\n\t\t9,\n\t\t557\n\t],\n\t\"./fa-IR/index.js\": [\n\t\t877,\n\t\t7,\n\t\t447\n\t],\n\t\"./fa-IR/index.js.flow\": [\n\t\t1300,\n\t\t9,\n\t\t807\n\t],\n\t\"./fa-IR/package\": [\n\t\t1000,\n\t\t3,\n\t\t704\n\t],\n\t\"./fa-IR/package.json\": [\n\t\t1000,\n\t\t3,\n\t\t704\n\t],\n\t\"./fi\": [\n\t\t784,\n\t\t9,\n\t\t627\n\t],\n\t\"./fi/\": [\n\t\t784,\n\t\t9,\n\t\t627\n\t],\n\t\"./fi/_lib/formatDistance\": [\n\t\t341,\n\t\t7,\n\t\t307\n\t],\n\t\"./fi/_lib/formatDistance/\": [\n\t\t341,\n\t\t7,\n\t\t307\n\t],\n\t\"./fi/_lib/formatDistance/index\": [\n\t\t341,\n\t\t7,\n\t\t307\n\t],\n\t\"./fi/_lib/formatDistance/index.js\": [\n\t\t341,\n\t\t7,\n\t\t307\n\t],\n\t\"./fi/_lib/formatLong\": [\n\t\t342,\n\t\t7,\n\t\t122\n\t],\n\t\"./fi/_lib/formatLong/\": [\n\t\t342,\n\t\t7,\n\t\t122\n\t],\n\t\"./fi/_lib/formatLong/index\": [\n\t\t342,\n\t\t7,\n\t\t122\n\t],\n\t\"./fi/_lib/formatLong/index.js\": [\n\t\t342,\n\t\t7,\n\t\t122\n\t],\n\t\"./fi/_lib/formatRelative\": [\n\t\t343,\n\t\t7,\n\t\t308\n\t],\n\t\"./fi/_lib/formatRelative/\": [\n\t\t343,\n\t\t7,\n\t\t308\n\t],\n\t\"./fi/_lib/formatRelative/index\": [\n\t\t343,\n\t\t7,\n\t\t308\n\t],\n\t\"./fi/_lib/formatRelative/index.js\": [\n\t\t343,\n\t\t7,\n\t\t308\n\t],\n\t\"./fi/_lib/localize\": [\n\t\t344,\n\t\t7,\n\t\t203\n\t],\n\t\"./fi/_lib/localize/\": [\n\t\t344,\n\t\t7,\n\t\t203\n\t],\n\t\"./fi/_lib/localize/index\": [\n\t\t344,\n\t\t7,\n\t\t203\n\t],\n\t\"./fi/_lib/localize/index.js\": [\n\t\t344,\n\t\t7,\n\t\t203\n\t],\n\t\"./fi/_lib/match\": [\n\t\t345,\n\t\t7,\n\t\t39\n\t],\n\t\"./fi/_lib/match/\": [\n\t\t345,\n\t\t7,\n\t\t39\n\t],\n\t\"./fi/_lib/match/index\": [\n\t\t345,\n\t\t7,\n\t\t39\n\t],\n\t\"./fi/_lib/match/index.js\": [\n\t\t345,\n\t\t7,\n\t\t39\n\t],\n\t\"./fi/index\": [\n\t\t878,\n\t\t7,\n\t\t448\n\t],\n\t\"./fi/index.d\": [\n\t\t1001,\n\t\t9,\n\t\t558\n\t],\n\t\"./fi/index.d.ts\": [\n\t\t1001,\n\t\t9,\n\t\t558\n\t],\n\t\"./fi/index.js\": [\n\t\t878,\n\t\t7,\n\t\t448\n\t],\n\t\"./fi/index.js.flow\": [\n\t\t1301,\n\t\t9,\n\t\t808\n\t],\n\t\"./fi/package\": [\n\t\t1002,\n\t\t3,\n\t\t705\n\t],\n\t\"./fi/package.json\": [\n\t\t1002,\n\t\t3,\n\t\t705\n\t],\n\t\"./fr\": [\n\t\t845,\n\t\t9,\n\t\t503\n\t],\n\t\"./fr-CA\": [\n\t\t846,\n\t\t9,\n\t\t501\n\t],\n\t\"./fr-CA/\": [\n\t\t846,\n\t\t9,\n\t\t501\n\t],\n\t\"./fr-CA/_lib/formatLong\": [\n\t\t347,\n\t\t7,\n\t\t123\n\t],\n\t\"./fr-CA/_lib/formatLong/\": [\n\t\t347,\n\t\t7,\n\t\t123\n\t],\n\t\"./fr-CA/_lib/formatLong/index\": [\n\t\t347,\n\t\t7,\n\t\t123\n\t],\n\t\"./fr-CA/_lib/formatLong/index.js\": [\n\t\t347,\n\t\t7,\n\t\t123\n\t],\n\t\"./fr-CA/index\": [\n\t\t880,\n\t\t7,\n\t\t449\n\t],\n\t\"./fr-CA/index.d\": [\n\t\t1005,\n\t\t9,\n\t\t497\n\t],\n\t\"./fr-CA/index.d.ts\": [\n\t\t1005,\n\t\t9,\n\t\t497\n\t],\n\t\"./fr-CA/index.js\": [\n\t\t880,\n\t\t7,\n\t\t449\n\t],\n\t\"./fr-CA/index.js.flow\": [\n\t\t1304,\n\t\t9,\n\t\t809\n\t],\n\t\"./fr-CA/index.ts.flow\": [\n\t\t1305,\n\t\t9,\n\t\t810\n\t],\n\t\"./fr-CA/package\": [\n\t\t1006,\n\t\t3,\n\t\t706\n\t],\n\t\"./fr-CA/package.json\": [\n\t\t1006,\n\t\t3,\n\t\t706\n\t],\n\t\"./fr-CH\": [\n\t\t838,\n\t\t9,\n\t\t504\n\t],\n\t\"./fr-CH/\": [\n\t\t838,\n\t\t9,\n\t\t504\n\t],\n\t\"./fr-CH/_lib/formatLong\": [\n\t\t348,\n\t\t7,\n\t\t124\n\t],\n\t\"./fr-CH/_lib/formatLong/\": [\n\t\t348,\n\t\t7,\n\t\t124\n\t],\n\t\"./fr-CH/_lib/formatLong/index\": [\n\t\t348,\n\t\t7,\n\t\t124\n\t],\n\t\"./fr-CH/_lib/formatLong/index.js\": [\n\t\t348,\n\t\t7,\n\t\t124\n\t],\n\t\"./fr-CH/_lib/formatRelative\": [\n\t\t349,\n\t\t7,\n\t\t309\n\t],\n\t\"./fr-CH/_lib/formatRelative/\": [\n\t\t349,\n\t\t7,\n\t\t309\n\t],\n\t\"./fr-CH/_lib/formatRelative/index\": [\n\t\t349,\n\t\t7,\n\t\t309\n\t],\n\t\"./fr-CH/_lib/formatRelative/index.js\": [\n\t\t349,\n\t\t7,\n\t\t309\n\t],\n\t\"./fr-CH/index\": [\n\t\t881,\n\t\t7,\n\t\t450\n\t],\n\t\"./fr-CH/index.d\": [\n\t\t1007,\n\t\t9,\n\t\t502\n\t],\n\t\"./fr-CH/index.d.ts\": [\n\t\t1007,\n\t\t9,\n\t\t502\n\t],\n\t\"./fr-CH/index.js\": [\n\t\t881,\n\t\t7,\n\t\t450\n\t],\n\t\"./fr-CH/index.js.flow\": [\n\t\t1306,\n\t\t9,\n\t\t811\n\t],\n\t\"./fr-CH/index.ts.flow\": [\n\t\t1307,\n\t\t9,\n\t\t812\n\t],\n\t\"./fr-CH/package\": [\n\t\t1008,\n\t\t3,\n\t\t707\n\t],\n\t\"./fr-CH/package.json\": [\n\t\t1008,\n\t\t3,\n\t\t707\n\t],\n\t\"./fr/\": [\n\t\t845,\n\t\t9,\n\t\t503\n\t],\n\t\"./fr/_lib/formatDistance\": [\n\t\t218,\n\t\t7,\n\t\t310\n\t],\n\t\"./fr/_lib/formatDistance/\": [\n\t\t218,\n\t\t7,\n\t\t310\n\t],\n\t\"./fr/_lib/formatDistance/index\": [\n\t\t218,\n\t\t7,\n\t\t310\n\t],\n\t\"./fr/_lib/formatDistance/index.js\": [\n\t\t218,\n\t\t7,\n\t\t310\n\t],\n\t\"./fr/_lib/formatLong\": [\n\t\t346,\n\t\t7,\n\t\t125\n\t],\n\t\"./fr/_lib/formatLong/\": [\n\t\t346,\n\t\t7,\n\t\t125\n\t],\n\t\"./fr/_lib/formatLong/index\": [\n\t\t346,\n\t\t7,\n\t\t125\n\t],\n\t\"./fr/_lib/formatLong/index.js\": [\n\t\t346,\n\t\t7,\n\t\t125\n\t],\n\t\"./fr/_lib/formatRelative\": [\n\t\t227,\n\t\t7,\n\t\t311\n\t],\n\t\"./fr/_lib/formatRelative/\": [\n\t\t227,\n\t\t7,\n\t\t311\n\t],\n\t\"./fr/_lib/formatRelative/index\": [\n\t\t227,\n\t\t7,\n\t\t311\n\t],\n\t\"./fr/_lib/formatRelative/index.js\": [\n\t\t227,\n\t\t7,\n\t\t311\n\t],\n\t\"./fr/_lib/localize\": [\n\t\t219,\n\t\t7,\n\t\t204\n\t],\n\t\"./fr/_lib/localize/\": [\n\t\t219,\n\t\t7,\n\t\t204\n\t],\n\t\"./fr/_lib/localize/index\": [\n\t\t219,\n\t\t7,\n\t\t204\n\t],\n\t\"./fr/_lib/localize/index.js\": [\n\t\t219,\n\t\t7,\n\t\t204\n\t],\n\t\"./fr/_lib/match\": [\n\t\t220,\n\t\t7,\n\t\t40\n\t],\n\t\"./fr/_lib/match/\": [\n\t\t220,\n\t\t7,\n\t\t40\n\t],\n\t\"./fr/_lib/match/index\": [\n\t\t220,\n\t\t7,\n\t\t40\n\t],\n\t\"./fr/_lib/match/index.js\": [\n\t\t220,\n\t\t7,\n\t\t40\n\t],\n\t\"./fr/index\": [\n\t\t879,\n\t\t7,\n\t\t451\n\t],\n\t\"./fr/index.d\": [\n\t\t1003,\n\t\t9,\n\t\t498\n\t],\n\t\"./fr/index.d.ts\": [\n\t\t1003,\n\t\t9,\n\t\t498\n\t],\n\t\"./fr/index.js\": [\n\t\t879,\n\t\t7,\n\t\t451\n\t],\n\t\"./fr/index.js.flow\": [\n\t\t1302,\n\t\t9,\n\t\t813\n\t],\n\t\"./fr/index.ts.flow\": [\n\t\t1303,\n\t\t9,\n\t\t814\n\t],\n\t\"./fr/package\": [\n\t\t1004,\n\t\t3,\n\t\t708\n\t],\n\t\"./fr/package.json\": [\n\t\t1004,\n\t\t3,\n\t\t708\n\t],\n\t\"./gd\": [\n\t\t785,\n\t\t9,\n\t\t628\n\t],\n\t\"./gd/\": [\n\t\t785,\n\t\t9,\n\t\t628\n\t],\n\t\"./gd/_lib/formatDistance\": [\n\t\t350,\n\t\t7,\n\t\t312\n\t],\n\t\"./gd/_lib/formatDistance/\": [\n\t\t350,\n\t\t7,\n\t\t312\n\t],\n\t\"./gd/_lib/formatDistance/index\": [\n\t\t350,\n\t\t7,\n\t\t312\n\t],\n\t\"./gd/_lib/formatDistance/index.js\": [\n\t\t350,\n\t\t7,\n\t\t312\n\t],\n\t\"./gd/_lib/formatLong\": [\n\t\t351,\n\t\t7,\n\t\t126\n\t],\n\t\"./gd/_lib/formatLong/\": [\n\t\t351,\n\t\t7,\n\t\t126\n\t],\n\t\"./gd/_lib/formatLong/index\": [\n\t\t351,\n\t\t7,\n\t\t126\n\t],\n\t\"./gd/_lib/formatLong/index.js\": [\n\t\t351,\n\t\t7,\n\t\t126\n\t],\n\t\"./gd/_lib/formatRelative\": [\n\t\t352,\n\t\t7,\n\t\t313\n\t],\n\t\"./gd/_lib/formatRelative/\": [\n\t\t352,\n\t\t7,\n\t\t313\n\t],\n\t\"./gd/_lib/formatRelative/index\": [\n\t\t352,\n\t\t7,\n\t\t313\n\t],\n\t\"./gd/_lib/formatRelative/index.js\": [\n\t\t352,\n\t\t7,\n\t\t313\n\t],\n\t\"./gd/_lib/localize\": [\n\t\t353,\n\t\t7,\n\t\t205\n\t],\n\t\"./gd/_lib/localize/\": [\n\t\t353,\n\t\t7,\n\t\t205\n\t],\n\t\"./gd/_lib/localize/index\": [\n\t\t353,\n\t\t7,\n\t\t205\n\t],\n\t\"./gd/_lib/localize/index.js\": [\n\t\t353,\n\t\t7,\n\t\t205\n\t],\n\t\"./gd/_lib/match\": [\n\t\t354,\n\t\t7,\n\t\t41\n\t],\n\t\"./gd/_lib/match/\": [\n\t\t354,\n\t\t7,\n\t\t41\n\t],\n\t\"./gd/_lib/match/index\": [\n\t\t354,\n\t\t7,\n\t\t41\n\t],\n\t\"./gd/_lib/match/index.js\": [\n\t\t354,\n\t\t7,\n\t\t41\n\t],\n\t\"./gd/index\": [\n\t\t882,\n\t\t7,\n\t\t452\n\t],\n\t\"./gd/index.d\": [\n\t\t1009,\n\t\t9,\n\t\t559\n\t],\n\t\"./gd/index.d.ts\": [\n\t\t1009,\n\t\t9,\n\t\t559\n\t],\n\t\"./gd/index.js\": [\n\t\t882,\n\t\t7,\n\t\t452\n\t],\n\t\"./gd/index.js.flow\": [\n\t\t1308,\n\t\t9,\n\t\t815\n\t],\n\t\"./gd/package\": [\n\t\t1010,\n\t\t3,\n\t\t709\n\t],\n\t\"./gd/package.json\": [\n\t\t1010,\n\t\t3,\n\t\t709\n\t],\n\t\"./gl\": [\n\t\t786,\n\t\t9,\n\t\t629\n\t],\n\t\"./gl/\": [\n\t\t786,\n\t\t9,\n\t\t629\n\t],\n\t\"./gl/_lib/formatDistance\": [\n\t\t355,\n\t\t7,\n\t\t314\n\t],\n\t\"./gl/_lib/formatDistance/\": [\n\t\t355,\n\t\t7,\n\t\t314\n\t],\n\t\"./gl/_lib/formatDistance/index\": [\n\t\t355,\n\t\t7,\n\t\t314\n\t],\n\t\"./gl/_lib/formatDistance/index.js\": [\n\t\t355,\n\t\t7,\n\t\t314\n\t],\n\t\"./gl/_lib/formatLong\": [\n\t\t356,\n\t\t7,\n\t\t127\n\t],\n\t\"./gl/_lib/formatLong/\": [\n\t\t356,\n\t\t7,\n\t\t127\n\t],\n\t\"./gl/_lib/formatLong/index\": [\n\t\t356,\n\t\t7,\n\t\t127\n\t],\n\t\"./gl/_lib/formatLong/index.js\": [\n\t\t356,\n\t\t7,\n\t\t127\n\t],\n\t\"./gl/_lib/formatRelative\": [\n\t\t357,\n\t\t7,\n\t\t315\n\t],\n\t\"./gl/_lib/formatRelative/\": [\n\t\t357,\n\t\t7,\n\t\t315\n\t],\n\t\"./gl/_lib/formatRelative/index\": [\n\t\t357,\n\t\t7,\n\t\t315\n\t],\n\t\"./gl/_lib/formatRelative/index.js\": [\n\t\t357,\n\t\t7,\n\t\t315\n\t],\n\t\"./gl/_lib/localize\": [\n\t\t358,\n\t\t7,\n\t\t206\n\t],\n\t\"./gl/_lib/localize/\": [\n\t\t358,\n\t\t7,\n\t\t206\n\t],\n\t\"./gl/_lib/localize/index\": [\n\t\t358,\n\t\t7,\n\t\t206\n\t],\n\t\"./gl/_lib/localize/index.js\": [\n\t\t358,\n\t\t7,\n\t\t206\n\t],\n\t\"./gl/_lib/match\": [\n\t\t359,\n\t\t7,\n\t\t42\n\t],\n\t\"./gl/_lib/match/\": [\n\t\t359,\n\t\t7,\n\t\t42\n\t],\n\t\"./gl/_lib/match/index\": [\n\t\t359,\n\t\t7,\n\t\t42\n\t],\n\t\"./gl/_lib/match/index.js\": [\n\t\t359,\n\t\t7,\n\t\t42\n\t],\n\t\"./gl/index\": [\n\t\t883,\n\t\t7,\n\t\t453\n\t],\n\t\"./gl/index.d\": [\n\t\t1011,\n\t\t9,\n\t\t560\n\t],\n\t\"./gl/index.d.ts\": [\n\t\t1011,\n\t\t9,\n\t\t560\n\t],\n\t\"./gl/index.js\": [\n\t\t883,\n\t\t7,\n\t\t453\n\t],\n\t\"./gl/index.js.flow\": [\n\t\t1309,\n\t\t9,\n\t\t816\n\t],\n\t\"./gl/package\": [\n\t\t1012,\n\t\t3,\n\t\t710\n\t],\n\t\"./gl/package.json\": [\n\t\t1012,\n\t\t3,\n\t\t710\n\t],\n\t\"./gu\": [\n\t\t787,\n\t\t9,\n\t\t630\n\t],\n\t\"./gu/\": [\n\t\t787,\n\t\t9,\n\t\t630\n\t],\n\t\"./gu/_lib/formatDistance\": [\n\t\t360,\n\t\t7,\n\t\t316\n\t],\n\t\"./gu/_lib/formatDistance/\": [\n\t\t360,\n\t\t7,\n\t\t316\n\t],\n\t\"./gu/_lib/formatDistance/index\": [\n\t\t360,\n\t\t7,\n\t\t316\n\t],\n\t\"./gu/_lib/formatDistance/index.js\": [\n\t\t360,\n\t\t7,\n\t\t316\n\t],\n\t\"./gu/_lib/formatLong\": [\n\t\t361,\n\t\t7,\n\t\t128\n\t],\n\t\"./gu/_lib/formatLong/\": [\n\t\t361,\n\t\t7,\n\t\t128\n\t],\n\t\"./gu/_lib/formatLong/index\": [\n\t\t361,\n\t\t7,\n\t\t128\n\t],\n\t\"./gu/_lib/formatLong/index.js\": [\n\t\t361,\n\t\t7,\n\t\t128\n\t],\n\t\"./gu/_lib/formatRelative\": [\n\t\t362,\n\t\t7,\n\t\t317\n\t],\n\t\"./gu/_lib/formatRelative/\": [\n\t\t362,\n\t\t7,\n\t\t317\n\t],\n\t\"./gu/_lib/formatRelative/index\": [\n\t\t362,\n\t\t7,\n\t\t317\n\t],\n\t\"./gu/_lib/formatRelative/index.js\": [\n\t\t362,\n\t\t7,\n\t\t317\n\t],\n\t\"./gu/_lib/localize\": [\n\t\t363,\n\t\t7,\n\t\t207\n\t],\n\t\"./gu/_lib/localize/\": [\n\t\t363,\n\t\t7,\n\t\t207\n\t],\n\t\"./gu/_lib/localize/index\": [\n\t\t363,\n\t\t7,\n\t\t207\n\t],\n\t\"./gu/_lib/localize/index.js\": [\n\t\t363,\n\t\t7,\n\t\t207\n\t],\n\t\"./gu/_lib/match\": [\n\t\t364,\n\t\t7,\n\t\t43\n\t],\n\t\"./gu/_lib/match/\": [\n\t\t364,\n\t\t7,\n\t\t43\n\t],\n\t\"./gu/_lib/match/index\": [\n\t\t364,\n\t\t7,\n\t\t43\n\t],\n\t\"./gu/_lib/match/index.js\": [\n\t\t364,\n\t\t7,\n\t\t43\n\t],\n\t\"./gu/index\": [\n\t\t884,\n\t\t7,\n\t\t454\n\t],\n\t\"./gu/index.d\": [\n\t\t1013,\n\t\t9,\n\t\t561\n\t],\n\t\"./gu/index.d.ts\": [\n\t\t1013,\n\t\t9,\n\t\t561\n\t],\n\t\"./gu/index.js\": [\n\t\t884,\n\t\t7,\n\t\t454\n\t],\n\t\"./gu/index.js.flow\": [\n\t\t1310,\n\t\t9,\n\t\t817\n\t],\n\t\"./gu/package\": [\n\t\t1014,\n\t\t3,\n\t\t711\n\t],\n\t\"./gu/package.json\": [\n\t\t1014,\n\t\t3,\n\t\t711\n\t],\n\t\"./he\": [\n\t\t788,\n\t\t9,\n\t\t631\n\t],\n\t\"./he/\": [\n\t\t788,\n\t\t9,\n\t\t631\n\t],\n\t\"./he/_lib/formatDistance\": [\n\t\t365,\n\t\t7,\n\t\t318\n\t],\n\t\"./he/_lib/formatDistance/\": [\n\t\t365,\n\t\t7,\n\t\t318\n\t],\n\t\"./he/_lib/formatDistance/index\": [\n\t\t365,\n\t\t7,\n\t\t318\n\t],\n\t\"./he/_lib/formatDistance/index.js\": [\n\t\t365,\n\t\t7,\n\t\t318\n\t],\n\t\"./he/_lib/formatLong\": [\n\t\t366,\n\t\t7,\n\t\t129\n\t],\n\t\"./he/_lib/formatLong/\": [\n\t\t366,\n\t\t7,\n\t\t129\n\t],\n\t\"./he/_lib/formatLong/index\": [\n\t\t366,\n\t\t7,\n\t\t129\n\t],\n\t\"./he/_lib/formatLong/index.js\": [\n\t\t366,\n\t\t7,\n\t\t129\n\t],\n\t\"./he/_lib/formatRelative\": [\n\t\t367,\n\t\t7,\n\t\t319\n\t],\n\t\"./he/_lib/formatRelative/\": [\n\t\t367,\n\t\t7,\n\t\t319\n\t],\n\t\"./he/_lib/formatRelative/index\": [\n\t\t367,\n\t\t7,\n\t\t319\n\t],\n\t\"./he/_lib/formatRelative/index.js\": [\n\t\t367,\n\t\t7,\n\t\t319\n\t],\n\t\"./he/_lib/localize\": [\n\t\t368,\n\t\t7,\n\t\t208\n\t],\n\t\"./he/_lib/localize/\": [\n\t\t368,\n\t\t7,\n\t\t208\n\t],\n\t\"./he/_lib/localize/index\": [\n\t\t368,\n\t\t7,\n\t\t208\n\t],\n\t\"./he/_lib/localize/index.js\": [\n\t\t368,\n\t\t7,\n\t\t208\n\t],\n\t\"./he/_lib/match\": [\n\t\t369,\n\t\t7,\n\t\t44\n\t],\n\t\"./he/_lib/match/\": [\n\t\t369,\n\t\t7,\n\t\t44\n\t],\n\t\"./he/_lib/match/index\": [\n\t\t369,\n\t\t7,\n\t\t44\n\t],\n\t\"./he/_lib/match/index.js\": [\n\t\t369,\n\t\t7,\n\t\t44\n\t],\n\t\"./he/index\": [\n\t\t885,\n\t\t7,\n\t\t455\n\t],\n\t\"./he/index.d\": [\n\t\t1015,\n\t\t9,\n\t\t562\n\t],\n\t\"./he/index.d.ts\": [\n\t\t1015,\n\t\t9,\n\t\t562\n\t],\n\t\"./he/index.js\": [\n\t\t885,\n\t\t7,\n\t\t455\n\t],\n\t\"./he/index.js.flow\": [\n\t\t1311,\n\t\t9,\n\t\t818\n\t],\n\t\"./he/package\": [\n\t\t1016,\n\t\t3,\n\t\t712\n\t],\n\t\"./he/package.json\": [\n\t\t1016,\n\t\t3,\n\t\t712\n\t],\n\t\"./hi\": [\n\t\t789,\n\t\t9,\n\t\t632\n\t],\n\t\"./hi/\": [\n\t\t789,\n\t\t9,\n\t\t632\n\t],\n\t\"./hi/_lib/formatDistance\": [\n\t\t370,\n\t\t7,\n\t\t14\n\t],\n\t\"./hi/_lib/formatDistance/\": [\n\t\t370,\n\t\t7,\n\t\t14\n\t],\n\t\"./hi/_lib/formatDistance/index\": [\n\t\t370,\n\t\t7,\n\t\t14\n\t],\n\t\"./hi/_lib/formatDistance/index.js\": [\n\t\t370,\n\t\t7,\n\t\t14\n\t],\n\t\"./hi/_lib/formatLong\": [\n\t\t371,\n\t\t7,\n\t\t130\n\t],\n\t\"./hi/_lib/formatLong/\": [\n\t\t371,\n\t\t7,\n\t\t130\n\t],\n\t\"./hi/_lib/formatLong/index\": [\n\t\t371,\n\t\t7,\n\t\t130\n\t],\n\t\"./hi/_lib/formatLong/index.js\": [\n\t\t371,\n\t\t7,\n\t\t130\n\t],\n\t\"./hi/_lib/formatRelative\": [\n\t\t372,\n\t\t7,\n\t\t320\n\t],\n\t\"./hi/_lib/formatRelative/\": [\n\t\t372,\n\t\t7,\n\t\t320\n\t],\n\t\"./hi/_lib/formatRelative/index\": [\n\t\t372,\n\t\t7,\n\t\t320\n\t],\n\t\"./hi/_lib/formatRelative/index.js\": [\n\t\t372,\n\t\t7,\n\t\t320\n\t],\n\t\"./hi/_lib/localize\": [\n\t\t217,\n\t\t7,\n\t\t209\n\t],\n\t\"./hi/_lib/localize/\": [\n\t\t217,\n\t\t7,\n\t\t209\n\t],\n\t\"./hi/_lib/localize/index\": [\n\t\t217,\n\t\t7,\n\t\t209\n\t],\n\t\"./hi/_lib/localize/index.js\": [\n\t\t217,\n\t\t7,\n\t\t209\n\t],\n\t\"./hi/_lib/match\": [\n\t\t373,\n\t\t7,\n\t\t12\n\t],\n\t\"./hi/_lib/match/\": [\n\t\t373,\n\t\t7,\n\t\t12\n\t],\n\t\"./hi/_lib/match/index\": [\n\t\t373,\n\t\t7,\n\t\t12\n\t],\n\t\"./hi/_lib/match/index.js\": [\n\t\t373,\n\t\t7,\n\t\t12\n\t],\n\t\"./hi/index\": [\n\t\t886,\n\t\t7,\n\t\t456\n\t],\n\t\"./hi/index.d\": [\n\t\t1017,\n\t\t9,\n\t\t563\n\t],\n\t\"./hi/index.d.ts\": [\n\t\t1017,\n\t\t9,\n\t\t563\n\t],\n\t\"./hi/index.js\": [\n\t\t886,\n\t\t7,\n\t\t456\n\t],\n\t\"./hi/index.js.flow\": [\n\t\t1312,\n\t\t9,\n\t\t819\n\t],\n\t\"./hi/package\": [\n\t\t1018,\n\t\t3,\n\t\t713\n\t],\n\t\"./hi/package.json\": [\n\t\t1018,\n\t\t3,\n\t\t713\n\t],\n\t\"./hr\": [\n\t\t790,\n\t\t9,\n\t\t633\n\t],\n\t\"./hr/\": [\n\t\t790,\n\t\t9,\n\t\t633\n\t],\n\t\"./hr/_lib/formatDistance\": [\n\t\t374,\n\t\t7,\n\t\t321\n\t],\n\t\"./hr/_lib/formatDistance/\": [\n\t\t374,\n\t\t7,\n\t\t321\n\t],\n\t\"./hr/_lib/formatDistance/index\": [\n\t\t374,\n\t\t7,\n\t\t321\n\t],\n\t\"./hr/_lib/formatDistance/index.js\": [\n\t\t374,\n\t\t7,\n\t\t321\n\t],\n\t\"./hr/_lib/formatLong\": [\n\t\t375,\n\t\t7,\n\t\t131\n\t],\n\t\"./hr/_lib/formatLong/\": [\n\t\t375,\n\t\t7,\n\t\t131\n\t],\n\t\"./hr/_lib/formatLong/index\": [\n\t\t375,\n\t\t7,\n\t\t131\n\t],\n\t\"./hr/_lib/formatLong/index.js\": [\n\t\t375,\n\t\t7,\n\t\t131\n\t],\n\t\"./hr/_lib/formatRelative\": [\n\t\t376,\n\t\t7,\n\t\t322\n\t],\n\t\"./hr/_lib/formatRelative/\": [\n\t\t376,\n\t\t7,\n\t\t322\n\t],\n\t\"./hr/_lib/formatRelative/index\": [\n\t\t376,\n\t\t7,\n\t\t322\n\t],\n\t\"./hr/_lib/formatRelative/index.js\": [\n\t\t376,\n\t\t7,\n\t\t322\n\t],\n\t\"./hr/_lib/localize\": [\n\t\t377,\n\t\t7,\n\t\t210\n\t],\n\t\"./hr/_lib/localize/\": [\n\t\t377,\n\t\t7,\n\t\t210\n\t],\n\t\"./hr/_lib/localize/index\": [\n\t\t377,\n\t\t7,\n\t\t210\n\t],\n\t\"./hr/_lib/localize/index.js\": [\n\t\t377,\n\t\t7,\n\t\t210\n\t],\n\t\"./hr/_lib/match\": [\n\t\t378,\n\t\t7,\n\t\t45\n\t],\n\t\"./hr/_lib/match/\": [\n\t\t378,\n\t\t7,\n\t\t45\n\t],\n\t\"./hr/_lib/match/index\": [\n\t\t378,\n\t\t7,\n\t\t45\n\t],\n\t\"./hr/_lib/match/index.js\": [\n\t\t378,\n\t\t7,\n\t\t45\n\t],\n\t\"./hr/index\": [\n\t\t887,\n\t\t7,\n\t\t457\n\t],\n\t\"./hr/index.d\": [\n\t\t1019,\n\t\t9,\n\t\t564\n\t],\n\t\"./hr/index.d.ts\": [\n\t\t1019,\n\t\t9,\n\t\t564\n\t],\n\t\"./hr/index.js\": [\n\t\t887,\n\t\t7,\n\t\t457\n\t],\n\t\"./hr/index.js.flow\": [\n\t\t1313,\n\t\t9,\n\t\t820\n\t],\n\t\"./hr/package\": [\n\t\t1020,\n\t\t3,\n\t\t714\n\t],\n\t\"./hr/package.json\": [\n\t\t1020,\n\t\t3,\n\t\t714\n\t],\n\t\"./ht\": [\n\t\t791,\n\t\t9,\n\t\t634\n\t],\n\t\"./ht/\": [\n\t\t791,\n\t\t9,\n\t\t634\n\t],\n\t\"./ht/_lib/formatDistance\": [\n\t\t379,\n\t\t7,\n\t\t323\n\t],\n\t\"./ht/_lib/formatDistance/\": [\n\t\t379,\n\t\t7,\n\t\t323\n\t],\n\t\"./ht/_lib/formatDistance/index\": [\n\t\t379,\n\t\t7,\n\t\t323\n\t],\n\t\"./ht/_lib/formatDistance/index.js\": [\n\t\t379,\n\t\t7,\n\t\t323\n\t],\n\t\"./ht/_lib/formatLong\": [\n\t\t380,\n\t\t7,\n\t\t132\n\t],\n\t\"./ht/_lib/formatLong/\": [\n\t\t380,\n\t\t7,\n\t\t132\n\t],\n\t\"./ht/_lib/formatLong/index\": [\n\t\t380,\n\t\t7,\n\t\t132\n\t],\n\t\"./ht/_lib/formatLong/index.js\": [\n\t\t380,\n\t\t7,\n\t\t132\n\t],\n\t\"./ht/_lib/formatRelative\": [\n\t\t381,\n\t\t7,\n\t\t324\n\t],\n\t\"./ht/_lib/formatRelative/\": [\n\t\t381,\n\t\t7,\n\t\t324\n\t],\n\t\"./ht/_lib/formatRelative/index\": [\n\t\t381,\n\t\t7,\n\t\t324\n\t],\n\t\"./ht/_lib/formatRelative/index.js\": [\n\t\t381,\n\t\t7,\n\t\t324\n\t],\n\t\"./ht/_lib/formatters\": [\n\t\t614,\n\t\t7,\n\t\t325\n\t],\n\t\"./ht/_lib/formatters/\": [\n\t\t614,\n\t\t7,\n\t\t325\n\t],\n\t\"./ht/_lib/formatters/index\": [\n\t\t614,\n\t\t7,\n\t\t325\n\t],\n\t\"./ht/_lib/formatters/index.js\": [\n\t\t614,\n\t\t7,\n\t\t325\n\t],\n\t\"./ht/_lib/localize\": [\n\t\t382,\n\t\t7,\n\t\t211\n\t],\n\t\"./ht/_lib/localize/\": [\n\t\t382,\n\t\t7,\n\t\t211\n\t],\n\t\"./ht/_lib/localize/index\": [\n\t\t382,\n\t\t7,\n\t\t211\n\t],\n\t\"./ht/_lib/localize/index.js\": [\n\t\t382,\n\t\t7,\n\t\t211\n\t],\n\t\"./ht/_lib/match\": [\n\t\t383,\n\t\t7,\n\t\t46\n\t],\n\t\"./ht/_lib/match/\": [\n\t\t383,\n\t\t7,\n\t\t46\n\t],\n\t\"./ht/_lib/match/index\": [\n\t\t383,\n\t\t7,\n\t\t46\n\t],\n\t\"./ht/_lib/match/index.js\": [\n\t\t383,\n\t\t7,\n\t\t46\n\t],\n\t\"./ht/index\": [\n\t\t888,\n\t\t7,\n\t\t458\n\t],\n\t\"./ht/index.d\": [\n\t\t1021,\n\t\t9,\n\t\t565\n\t],\n\t\"./ht/index.d.ts\": [\n\t\t1021,\n\t\t9,\n\t\t565\n\t],\n\t\"./ht/index.js\": [\n\t\t888,\n\t\t7,\n\t\t458\n\t],\n\t\"./ht/index.js.flow\": [\n\t\t1314,\n\t\t9,\n\t\t821\n\t],\n\t\"./ht/package\": [\n\t\t1022,\n\t\t3,\n\t\t715\n\t],\n\t\"./ht/package.json\": [\n\t\t1022,\n\t\t3,\n\t\t715\n\t],\n\t\"./hu\": [\n\t\t792,\n\t\t9,\n\t\t635\n\t],\n\t\"./hu/\": [\n\t\t792,\n\t\t9,\n\t\t635\n\t],\n\t\"./hu/_lib/formatDistance\": [\n\t\t384,\n\t\t7,\n\t\t326\n\t],\n\t\"./hu/_lib/formatDistance/\": [\n\t\t384,\n\t\t7,\n\t\t326\n\t],\n\t\"./hu/_lib/formatDistance/index\": [\n\t\t384,\n\t\t7,\n\t\t326\n\t],\n\t\"./hu/_lib/formatDistance/index.js\": [\n\t\t384,\n\t\t7,\n\t\t326\n\t],\n\t\"./hu/_lib/formatLong\": [\n\t\t385,\n\t\t7,\n\t\t133\n\t],\n\t\"./hu/_lib/formatLong/\": [\n\t\t385,\n\t\t7,\n\t\t133\n\t],\n\t\"./hu/_lib/formatLong/index\": [\n\t\t385,\n\t\t7,\n\t\t133\n\t],\n\t\"./hu/_lib/formatLong/index.js\": [\n\t\t385,\n\t\t7,\n\t\t133\n\t],\n\t\"./hu/_lib/formatRelative\": [\n\t\t386,\n\t\t7,\n\t\t327\n\t],\n\t\"./hu/_lib/formatRelative/\": [\n\t\t386,\n\t\t7,\n\t\t327\n\t],\n\t\"./hu/_lib/formatRelative/index\": [\n\t\t386,\n\t\t7,\n\t\t327\n\t],\n\t\"./hu/_lib/formatRelative/index.js\": [\n\t\t386,\n\t\t7,\n\t\t327\n\t],\n\t\"./hu/_lib/localize\": [\n\t\t387,\n\t\t7,\n\t\t212\n\t],\n\t\"./hu/_lib/localize/\": [\n\t\t387,\n\t\t7,\n\t\t212\n\t],\n\t\"./hu/_lib/localize/index\": [\n\t\t387,\n\t\t7,\n\t\t212\n\t],\n\t\"./hu/_lib/localize/index.js\": [\n\t\t387,\n\t\t7,\n\t\t212\n\t],\n\t\"./hu/_lib/match\": [\n\t\t388,\n\t\t7,\n\t\t47\n\t],\n\t\"./hu/_lib/match/\": [\n\t\t388,\n\t\t7,\n\t\t47\n\t],\n\t\"./hu/_lib/match/index\": [\n\t\t388,\n\t\t7,\n\t\t47\n\t],\n\t\"./hu/_lib/match/index.js\": [\n\t\t388,\n\t\t7,\n\t\t47\n\t],\n\t\"./hu/index\": [\n\t\t889,\n\t\t7,\n\t\t459\n\t],\n\t\"./hu/index.d\": [\n\t\t1023,\n\t\t9,\n\t\t566\n\t],\n\t\"./hu/index.d.ts\": [\n\t\t1023,\n\t\t9,\n\t\t566\n\t],\n\t\"./hu/index.js\": [\n\t\t889,\n\t\t7,\n\t\t459\n\t],\n\t\"./hu/index.js.flow\": [\n\t\t1315,\n\t\t9,\n\t\t822\n\t],\n\t\"./hu/package\": [\n\t\t1024,\n\t\t3,\n\t\t716\n\t],\n\t\"./hu/package.json\": [\n\t\t1024,\n\t\t3,\n\t\t716\n\t],\n\t\"./hy\": [\n\t\t793,\n\t\t9,\n\t\t636\n\t],\n\t\"./hy/\": [\n\t\t793,\n\t\t9,\n\t\t636\n\t],\n\t\"./hy/_lib/formatDistance\": [\n\t\t389,\n\t\t7,\n\t\t328\n\t],\n\t\"./hy/_lib/formatDistance/\": [\n\t\t389,\n\t\t7,\n\t\t328\n\t],\n\t\"./hy/_lib/formatDistance/index\": [\n\t\t389,\n\t\t7,\n\t\t328\n\t],\n\t\"./hy/_lib/formatDistance/index.js\": [\n\t\t389,\n\t\t7,\n\t\t328\n\t],\n\t\"./hy/_lib/formatLong\": [\n\t\t390,\n\t\t7,\n\t\t134\n\t],\n\t\"./hy/_lib/formatLong/\": [\n\t\t390,\n\t\t7,\n\t\t134\n\t],\n\t\"./hy/_lib/formatLong/index\": [\n\t\t390,\n\t\t7,\n\t\t134\n\t],\n\t\"./hy/_lib/formatLong/index.js\": [\n\t\t390,\n\t\t7,\n\t\t134\n\t],\n\t\"./hy/_lib/formatRelative\": [\n\t\t391,\n\t\t7,\n\t\t329\n\t],\n\t\"./hy/_lib/formatRelative/\": [\n\t\t391,\n\t\t7,\n\t\t329\n\t],\n\t\"./hy/_lib/formatRelative/index\": [\n\t\t391,\n\t\t7,\n\t\t329\n\t],\n\t\"./hy/_lib/formatRelative/index.js\": [\n\t\t391,\n\t\t7,\n\t\t329\n\t],\n\t\"./hy/_lib/localize\": [\n\t\t392,\n\t\t7,\n\t\t213\n\t],\n\t\"./hy/_lib/localize/\": [\n\t\t392,\n\t\t7,\n\t\t213\n\t],\n\t\"./hy/_lib/localize/index\": [\n\t\t392,\n\t\t7,\n\t\t213\n\t],\n\t\"./hy/_lib/localize/index.js\": [\n\t\t392,\n\t\t7,\n\t\t213\n\t],\n\t\"./hy/_lib/match\": [\n\t\t393,\n\t\t7,\n\t\t48\n\t],\n\t\"./hy/_lib/match/\": [\n\t\t393,\n\t\t7,\n\t\t48\n\t],\n\t\"./hy/_lib/match/index\": [\n\t\t393,\n\t\t7,\n\t\t48\n\t],\n\t\"./hy/_lib/match/index.js\": [\n\t\t393,\n\t\t7,\n\t\t48\n\t],\n\t\"./hy/index\": [\n\t\t890,\n\t\t7,\n\t\t460\n\t],\n\t\"./hy/index.d\": [\n\t\t1025,\n\t\t9,\n\t\t567\n\t],\n\t\"./hy/index.d.ts\": [\n\t\t1025,\n\t\t9,\n\t\t567\n\t],\n\t\"./hy/index.js\": [\n\t\t890,\n\t\t7,\n\t\t460\n\t],\n\t\"./hy/index.js.flow\": [\n\t\t1316,\n\t\t9,\n\t\t823\n\t],\n\t\"./hy/package\": [\n\t\t1026,\n\t\t3,\n\t\t717\n\t],\n\t\"./hy/package.json\": [\n\t\t1026,\n\t\t3,\n\t\t717\n\t],\n\t\"./id\": [\n\t\t794,\n\t\t9,\n\t\t637\n\t],\n\t\"./id/\": [\n\t\t794,\n\t\t9,\n\t\t637\n\t],\n\t\"./id/_lib/formatDistance\": [\n\t\t394,\n\t\t7,\n\t\t330\n\t],\n\t\"./id/_lib/formatDistance/\": [\n\t\t394,\n\t\t7,\n\t\t330\n\t],\n\t\"./id/_lib/formatDistance/index\": [\n\t\t394,\n\t\t7,\n\t\t330\n\t],\n\t\"./id/_lib/formatDistance/index.js\": [\n\t\t394,\n\t\t7,\n\t\t330\n\t],\n\t\"./id/_lib/formatLong\": [\n\t\t395,\n\t\t7,\n\t\t135\n\t],\n\t\"./id/_lib/formatLong/\": [\n\t\t395,\n\t\t7,\n\t\t135\n\t],\n\t\"./id/_lib/formatLong/index\": [\n\t\t395,\n\t\t7,\n\t\t135\n\t],\n\t\"./id/_lib/formatLong/index.js\": [\n\t\t395,\n\t\t7,\n\t\t135\n\t],\n\t\"./id/_lib/formatRelative\": [\n\t\t396,\n\t\t7,\n\t\t331\n\t],\n\t\"./id/_lib/formatRelative/\": [\n\t\t396,\n\t\t7,\n\t\t331\n\t],\n\t\"./id/_lib/formatRelative/index\": [\n\t\t396,\n\t\t7,\n\t\t331\n\t],\n\t\"./id/_lib/formatRelative/index.js\": [\n\t\t396,\n\t\t7,\n\t\t331\n\t],\n\t\"./id/_lib/localize\": [\n\t\t397,\n\t\t7,\n\t\t214\n\t],\n\t\"./id/_lib/localize/\": [\n\t\t397,\n\t\t7,\n\t\t214\n\t],\n\t\"./id/_lib/localize/index\": [\n\t\t397,\n\t\t7,\n\t\t214\n\t],\n\t\"./id/_lib/localize/index.js\": [\n\t\t397,\n\t\t7,\n\t\t214\n\t],\n\t\"./id/_lib/match\": [\n\t\t398,\n\t\t7,\n\t\t49\n\t],\n\t\"./id/_lib/match/\": [\n\t\t398,\n\t\t7,\n\t\t49\n\t],\n\t\"./id/_lib/match/index\": [\n\t\t398,\n\t\t7,\n\t\t49\n\t],\n\t\"./id/_lib/match/index.js\": [\n\t\t398,\n\t\t7,\n\t\t49\n\t],\n\t\"./id/index\": [\n\t\t891,\n\t\t7,\n\t\t461\n\t],\n\t\"./id/index.d\": [\n\t\t1027,\n\t\t9,\n\t\t568\n\t],\n\t\"./id/index.d.ts\": [\n\t\t1027,\n\t\t9,\n\t\t568\n\t],\n\t\"./id/index.js\": [\n\t\t891,\n\t\t7,\n\t\t461\n\t],\n\t\"./id/index.js.flow\": [\n\t\t1317,\n\t\t9,\n\t\t824\n\t],\n\t\"./id/package\": [\n\t\t1028,\n\t\t3,\n\t\t718\n\t],\n\t\"./id/package.json\": [\n\t\t1028,\n\t\t3,\n\t\t718\n\t],\n\t\"./index\": [\n\t\t1029,\n\t\t7,\n\t\t0,\n\t\t407\n\t],\n\t\"./index.js\": [\n\t\t1029,\n\t\t7,\n\t\t0,\n\t\t407\n\t],\n\t\"./index.js.flow\": [\n\t\t1318,\n\t\t9,\n\t\t825\n\t],\n\t\"./is\": [\n\t\t795,\n\t\t9,\n\t\t638\n\t],\n\t\"./is/\": [\n\t\t795,\n\t\t9,\n\t\t638\n\t],\n\t\"./is/_lib/formatDistance\": [\n\t\t399,\n\t\t7,\n\t\t332\n\t],\n\t\"./is/_lib/formatDistance/\": [\n\t\t399,\n\t\t7,\n\t\t332\n\t],\n\t\"./is/_lib/formatDistance/index\": [\n\t\t399,\n\t\t7,\n\t\t332\n\t],\n\t\"./is/_lib/formatDistance/index.js\": [\n\t\t399,\n\t\t7,\n\t\t332\n\t],\n\t\"./is/_lib/formatLong\": [\n\t\t400,\n\t\t7,\n\t\t136\n\t],\n\t\"./is/_lib/formatLong/\": [\n\t\t400,\n\t\t7,\n\t\t136\n\t],\n\t\"./is/_lib/formatLong/index\": [\n\t\t400,\n\t\t7,\n\t\t136\n\t],\n\t\"./is/_lib/formatLong/index.js\": [\n\t\t400,\n\t\t7,\n\t\t136\n\t],\n\t\"./is/_lib/formatRelative\": [\n\t\t401,\n\t\t7,\n\t\t333\n\t],\n\t\"./is/_lib/formatRelative/\": [\n\t\t401,\n\t\t7,\n\t\t333\n\t],\n\t\"./is/_lib/formatRelative/index\": [\n\t\t401,\n\t\t7,\n\t\t333\n\t],\n\t\"./is/_lib/formatRelative/index.js\": [\n\t\t401,\n\t\t7,\n\t\t333\n\t],\n\t\"./is/_lib/localize\": [\n\t\t402,\n\t\t7,\n\t\t215\n\t],\n\t\"./is/_lib/localize/\": [\n\t\t402,\n\t\t7,\n\t\t215\n\t],\n\t\"./is/_lib/localize/index\": [\n\t\t402,\n\t\t7,\n\t\t215\n\t],\n\t\"./is/_lib/localize/index.js\": [\n\t\t402,\n\t\t7,\n\t\t215\n\t],\n\t\"./is/_lib/match\": [\n\t\t403,\n\t\t7,\n\t\t50\n\t],\n\t\"./is/_lib/match/\": [\n\t\t403,\n\t\t7,\n\t\t50\n\t],\n\t\"./is/_lib/match/index\": [\n\t\t403,\n\t\t7,\n\t\t50\n\t],\n\t\"./is/_lib/match/index.js\": [\n\t\t403,\n\t\t7,\n\t\t50\n\t],\n\t\"./is/index\": [\n\t\t892,\n\t\t7,\n\t\t462\n\t],\n\t\"./is/index.d\": [\n\t\t1030,\n\t\t9,\n\t\t569\n\t],\n\t\"./is/index.d.ts\": [\n\t\t1030,\n\t\t9,\n\t\t569\n\t],\n\t\"./is/index.js\": [\n\t\t892,\n\t\t7,\n\t\t462\n\t],\n\t\"./is/index.js.flow\": [\n\t\t1319,\n\t\t9,\n\t\t826\n\t],\n\t\"./is/package\": [\n\t\t1031,\n\t\t3,\n\t\t719\n\t],\n\t\"./is/package.json\": [\n\t\t1031,\n\t\t3,\n\t\t719\n\t],\n\t\"./it\": [\n\t\t796,\n\t\t9,\n\t\t522\n\t],\n\t\"./it/\": [\n\t\t796,\n\t\t9,\n\t\t522\n\t],\n\t\"./it/_lib/formatDistance\": [\n\t\t404,\n\t\t7,\n\t\t334\n\t],\n\t\"./it/_lib/formatDistance/\": [\n\t\t404,\n\t\t7,\n\t\t334\n\t],\n\t\"./it/_lib/formatDistance/index\": [\n\t\t404,\n\t\t7,\n\t\t334\n\t],\n\t\"./it/_lib/formatDistance/index.js\": [\n\t\t404,\n\t\t7,\n\t\t334\n\t],\n\t\"./it/_lib/formatLong\": [\n\t\t405,\n\t\t7,\n\t\t137\n\t],\n\t\"./it/_lib/formatLong/\": [\n\t\t405,\n\t\t7,\n\t\t137\n\t],\n\t\"./it/_lib/formatLong/index\": [\n\t\t405,\n\t\t7,\n\t\t137\n\t],\n\t\"./it/_lib/formatLong/index.js\": [\n\t\t405,\n\t\t7,\n\t\t137\n\t],\n\t\"./it/_lib/formatRelative\": [\n\t\t406,\n\t\t7,\n\t\t3\n\t],\n\t\"./it/_lib/formatRelative/\": [\n\t\t406,\n\t\t7,\n\t\t3\n\t],\n\t\"./it/_lib/formatRelative/index\": [\n\t\t406,\n\t\t7,\n\t\t3\n\t],\n\t\"./it/_lib/formatRelative/index.js\": [\n\t\t406,\n\t\t7,\n\t\t3\n\t],\n\t\"./it/_lib/localize\": [\n\t\t407,\n\t\t7,\n\t\t216\n\t],\n\t\"./it/_lib/localize/\": [\n\t\t407,\n\t\t7,\n\t\t216\n\t],\n\t\"./it/_lib/localize/index\": [\n\t\t407,\n\t\t7,\n\t\t216\n\t],\n\t\"./it/_lib/localize/index.js\": [\n\t\t407,\n\t\t7,\n\t\t216\n\t],\n\t\"./it/_lib/match\": [\n\t\t408,\n\t\t7,\n\t\t51\n\t],\n\t\"./it/_lib/match/\": [\n\t\t408,\n\t\t7,\n\t\t51\n\t],\n\t\"./it/_lib/match/index\": [\n\t\t408,\n\t\t7,\n\t\t51\n\t],\n\t\"./it/_lib/match/index.js\": [\n\t\t408,\n\t\t7,\n\t\t51\n\t],\n\t\"./it/index\": [\n\t\t893,\n\t\t7,\n\t\t409\n\t],\n\t\"./it/index.d\": [\n\t\t1032,\n\t\t9,\n\t\t507\n\t],\n\t\"./it/index.d.ts\": [\n\t\t1032,\n\t\t9,\n\t\t507\n\t],\n\t\"./it/index.js\": [\n\t\t893,\n\t\t7,\n\t\t409\n\t],\n\t\"./it/index.js.flow\": [\n\t\t1320,\n\t\t9,\n\t\t827\n\t],\n\t\"./it/package\": [\n\t\t1033,\n\t\t3,\n\t\t720\n\t],\n\t\"./it/package.json\": [\n\t\t1033,\n\t\t3,\n\t\t720\n\t],\n\t\"./ja\": [\n\t\t797,\n\t\t9,\n\t\t640\n\t],\n\t\"./ja-Hira\": [\n\t\t798,\n\t\t9,\n\t\t639\n\t],\n\t\"./ja-Hira/\": [\n\t\t798,\n\t\t9,\n\t\t639\n\t],\n\t\"./ja-Hira/_lib/formatDistance\": [\n\t\t414,\n\t\t7,\n\t\t335\n\t],\n\t\"./ja-Hira/_lib/formatDistance/\": [\n\t\t414,\n\t\t7,\n\t\t335\n\t],\n\t\"./ja-Hira/_lib/formatDistance/index\": [\n\t\t414,\n\t\t7,\n\t\t335\n\t],\n\t\"./ja-Hira/_lib/formatDistance/index.js\": [\n\t\t414,\n\t\t7,\n\t\t335\n\t],\n\t\"./ja-Hira/_lib/formatLong\": [\n\t\t415,\n\t\t7,\n\t\t138\n\t],\n\t\"./ja-Hira/_lib/formatLong/\": [\n\t\t415,\n\t\t7,\n\t\t138\n\t],\n\t\"./ja-Hira/_lib/formatLong/index\": [\n\t\t415,\n\t\t7,\n\t\t138\n\t],\n\t\"./ja-Hira/_lib/formatLong/index.js\": [\n\t\t415,\n\t\t7,\n\t\t138\n\t],\n\t\"./ja-Hira/_lib/formatRelative\": [\n\t\t416,\n\t\t7,\n\t\t336\n\t],\n\t\"./ja-Hira/_lib/formatRelative/\": [\n\t\t416,\n\t\t7,\n\t\t336\n\t],\n\t\"./ja-Hira/_lib/formatRelative/index\": [\n\t\t416,\n\t\t7,\n\t\t336\n\t],\n\t\"./ja-Hira/_lib/formatRelative/index.js\": [\n\t\t416,\n\t\t7,\n\t\t336\n\t],\n\t\"./ja-Hira/_lib/localize\": [\n\t\t417,\n\t\t7,\n\t\t217\n\t],\n\t\"./ja-Hira/_lib/localize/\": [\n\t\t417,\n\t\t7,\n\t\t217\n\t],\n\t\"./ja-Hira/_lib/localize/index\": [\n\t\t417,\n\t\t7,\n\t\t217\n\t],\n\t\"./ja-Hira/_lib/localize/index.js\": [\n\t\t417,\n\t\t7,\n\t\t217\n\t],\n\t\"./ja-Hira/_lib/match\": [\n\t\t418,\n\t\t7,\n\t\t52\n\t],\n\t\"./ja-Hira/_lib/match/\": [\n\t\t418,\n\t\t7,\n\t\t52\n\t],\n\t\"./ja-Hira/_lib/match/index\": [\n\t\t418,\n\t\t7,\n\t\t52\n\t],\n\t\"./ja-Hira/_lib/match/index.js\": [\n\t\t418,\n\t\t7,\n\t\t52\n\t],\n\t\"./ja-Hira/index\": [\n\t\t895,\n\t\t7,\n\t\t463\n\t],\n\t\"./ja-Hira/index.d\": [\n\t\t1036,\n\t\t9,\n\t\t570\n\t],\n\t\"./ja-Hira/index.d.ts\": [\n\t\t1036,\n\t\t9,\n\t\t570\n\t],\n\t\"./ja-Hira/index.js\": [\n\t\t895,\n\t\t7,\n\t\t463\n\t],\n\t\"./ja-Hira/index.js.flow\": [\n\t\t1322,\n\t\t9,\n\t\t828\n\t],\n\t\"./ja-Hira/package\": [\n\t\t1037,\n\t\t3,\n\t\t721\n\t],\n\t\"./ja-Hira/package.json\": [\n\t\t1037,\n\t\t3,\n\t\t721\n\t],\n\t\"./ja/\": [\n\t\t797,\n\t\t9,\n\t\t640\n\t],\n\t\"./ja/_lib/formatDistance\": [\n\t\t409,\n\t\t7,\n\t\t337\n\t],\n\t\"./ja/_lib/formatDistance/\": [\n\t\t409,\n\t\t7,\n\t\t337\n\t],\n\t\"./ja/_lib/formatDistance/index\": [\n\t\t409,\n\t\t7,\n\t\t337\n\t],\n\t\"./ja/_lib/formatDistance/index.js\": [\n\t\t409,\n\t\t7,\n\t\t337\n\t],\n\t\"./ja/_lib/formatLong\": [\n\t\t410,\n\t\t7,\n\t\t139\n\t],\n\t\"./ja/_lib/formatLong/\": [\n\t\t410,\n\t\t7,\n\t\t139\n\t],\n\t\"./ja/_lib/formatLong/index\": [\n\t\t410,\n\t\t7,\n\t\t139\n\t],\n\t\"./ja/_lib/formatLong/index.js\": [\n\t\t410,\n\t\t7,\n\t\t139\n\t],\n\t\"./ja/_lib/formatRelative\": [\n\t\t411,\n\t\t7,\n\t\t338\n\t],\n\t\"./ja/_lib/formatRelative/\": [\n\t\t411,\n\t\t7,\n\t\t338\n\t],\n\t\"./ja/_lib/formatRelative/index\": [\n\t\t411,\n\t\t7,\n\t\t338\n\t],\n\t\"./ja/_lib/formatRelative/index.js\": [\n\t\t411,\n\t\t7,\n\t\t338\n\t],\n\t\"./ja/_lib/localize\": [\n\t\t412,\n\t\t7,\n\t\t218\n\t],\n\t\"./ja/_lib/localize/\": [\n\t\t412,\n\t\t7,\n\t\t218\n\t],\n\t\"./ja/_lib/localize/index\": [\n\t\t412,\n\t\t7,\n\t\t218\n\t],\n\t\"./ja/_lib/localize/index.js\": [\n\t\t412,\n\t\t7,\n\t\t218\n\t],\n\t\"./ja/_lib/match\": [\n\t\t413,\n\t\t7,\n\t\t53\n\t],\n\t\"./ja/_lib/match/\": [\n\t\t413,\n\t\t7,\n\t\t53\n\t],\n\t\"./ja/_lib/match/index\": [\n\t\t413,\n\t\t7,\n\t\t53\n\t],\n\t\"./ja/_lib/match/index.js\": [\n\t\t413,\n\t\t7,\n\t\t53\n\t],\n\t\"./ja/index\": [\n\t\t894,\n\t\t7,\n\t\t464\n\t],\n\t\"./ja/index.d\": [\n\t\t1034,\n\t\t9,\n\t\t571\n\t],\n\t\"./ja/index.d.ts\": [\n\t\t1034,\n\t\t9,\n\t\t571\n\t],\n\t\"./ja/index.js\": [\n\t\t894,\n\t\t7,\n\t\t464\n\t],\n\t\"./ja/index.ts.flow\": [\n\t\t1321,\n\t\t9,\n\t\t829\n\t],\n\t\"./ja/package\": [\n\t\t1035,\n\t\t3,\n\t\t722\n\t],\n\t\"./ja/package.json\": [\n\t\t1035,\n\t\t3,\n\t\t722\n\t],\n\t\"./ka\": [\n\t\t799,\n\t\t9,\n\t\t641\n\t],\n\t\"./ka/\": [\n\t\t799,\n\t\t9,\n\t\t641\n\t],\n\t\"./ka/_lib/formatDistance\": [\n\t\t419,\n\t\t7,\n\t\t339\n\t],\n\t\"./ka/_lib/formatDistance/\": [\n\t\t419,\n\t\t7,\n\t\t339\n\t],\n\t\"./ka/_lib/formatDistance/index\": [\n\t\t419,\n\t\t7,\n\t\t339\n\t],\n\t\"./ka/_lib/formatDistance/index.js\": [\n\t\t419,\n\t\t7,\n\t\t339\n\t],\n\t\"./ka/_lib/formatLong\": [\n\t\t420,\n\t\t7,\n\t\t140\n\t],\n\t\"./ka/_lib/formatLong/\": [\n\t\t420,\n\t\t7,\n\t\t140\n\t],\n\t\"./ka/_lib/formatLong/index\": [\n\t\t420,\n\t\t7,\n\t\t140\n\t],\n\t\"./ka/_lib/formatLong/index.js\": [\n\t\t420,\n\t\t7,\n\t\t140\n\t],\n\t\"./ka/_lib/formatRelative\": [\n\t\t421,\n\t\t7,\n\t\t340\n\t],\n\t\"./ka/_lib/formatRelative/\": [\n\t\t421,\n\t\t7,\n\t\t340\n\t],\n\t\"./ka/_lib/formatRelative/index\": [\n\t\t421,\n\t\t7,\n\t\t340\n\t],\n\t\"./ka/_lib/formatRelative/index.js\": [\n\t\t421,\n\t\t7,\n\t\t340\n\t],\n\t\"./ka/_lib/localize\": [\n\t\t422,\n\t\t7,\n\t\t219\n\t],\n\t\"./ka/_lib/localize/\": [\n\t\t422,\n\t\t7,\n\t\t219\n\t],\n\t\"./ka/_lib/localize/index\": [\n\t\t422,\n\t\t7,\n\t\t219\n\t],\n\t\"./ka/_lib/localize/index.js\": [\n\t\t422,\n\t\t7,\n\t\t219\n\t],\n\t\"./ka/_lib/match\": [\n\t\t423,\n\t\t7,\n\t\t54\n\t],\n\t\"./ka/_lib/match/\": [\n\t\t423,\n\t\t7,\n\t\t54\n\t],\n\t\"./ka/_lib/match/index\": [\n\t\t423,\n\t\t7,\n\t\t54\n\t],\n\t\"./ka/_lib/match/index.js\": [\n\t\t423,\n\t\t7,\n\t\t54\n\t],\n\t\"./ka/index\": [\n\t\t896,\n\t\t7,\n\t\t465\n\t],\n\t\"./ka/index.d\": [\n\t\t1038,\n\t\t9,\n\t\t572\n\t],\n\t\"./ka/index.d.ts\": [\n\t\t1038,\n\t\t9,\n\t\t572\n\t],\n\t\"./ka/index.js\": [\n\t\t896,\n\t\t7,\n\t\t465\n\t],\n\t\"./ka/index.js.flow\": [\n\t\t1323,\n\t\t9,\n\t\t830\n\t],\n\t\"./ka/package\": [\n\t\t1039,\n\t\t3,\n\t\t723\n\t],\n\t\"./ka/package.json\": [\n\t\t1039,\n\t\t3,\n\t\t723\n\t],\n\t\"./kk\": [\n\t\t800,\n\t\t9,\n\t\t523\n\t],\n\t\"./kk/\": [\n\t\t800,\n\t\t9,\n\t\t523\n\t],\n\t\"./kk/_lib/formatDistance\": [\n\t\t424,\n\t\t7,\n\t\t341\n\t],\n\t\"./kk/_lib/formatDistance/\": [\n\t\t424,\n\t\t7,\n\t\t341\n\t],\n\t\"./kk/_lib/formatDistance/index\": [\n\t\t424,\n\t\t7,\n\t\t341\n\t],\n\t\"./kk/_lib/formatDistance/index.js\": [\n\t\t424,\n\t\t7,\n\t\t341\n\t],\n\t\"./kk/_lib/formatLong\": [\n\t\t425,\n\t\t7,\n\t\t141\n\t],\n\t\"./kk/_lib/formatLong/\": [\n\t\t425,\n\t\t7,\n\t\t141\n\t],\n\t\"./kk/_lib/formatLong/index\": [\n\t\t425,\n\t\t7,\n\t\t141\n\t],\n\t\"./kk/_lib/formatLong/index.js\": [\n\t\t425,\n\t\t7,\n\t\t141\n\t],\n\t\"./kk/_lib/formatRelative\": [\n\t\t426,\n\t\t7,\n\t\t4\n\t],\n\t\"./kk/_lib/formatRelative/\": [\n\t\t426,\n\t\t7,\n\t\t4\n\t],\n\t\"./kk/_lib/formatRelative/index\": [\n\t\t426,\n\t\t7,\n\t\t4\n\t],\n\t\"./kk/_lib/formatRelative/index.js\": [\n\t\t426,\n\t\t7,\n\t\t4\n\t],\n\t\"./kk/_lib/localize\": [\n\t\t427,\n\t\t7,\n\t\t220\n\t],\n\t\"./kk/_lib/localize/\": [\n\t\t427,\n\t\t7,\n\t\t220\n\t],\n\t\"./kk/_lib/localize/index\": [\n\t\t427,\n\t\t7,\n\t\t220\n\t],\n\t\"./kk/_lib/localize/index.js\": [\n\t\t427,\n\t\t7,\n\t\t220\n\t],\n\t\"./kk/_lib/match\": [\n\t\t428,\n\t\t7,\n\t\t55\n\t],\n\t\"./kk/_lib/match/\": [\n\t\t428,\n\t\t7,\n\t\t55\n\t],\n\t\"./kk/_lib/match/index\": [\n\t\t428,\n\t\t7,\n\t\t55\n\t],\n\t\"./kk/_lib/match/index.js\": [\n\t\t428,\n\t\t7,\n\t\t55\n\t],\n\t\"./kk/index\": [\n\t\t897,\n\t\t7,\n\t\t410\n\t],\n\t\"./kk/index.d\": [\n\t\t1040,\n\t\t9,\n\t\t508\n\t],\n\t\"./kk/index.d.ts\": [\n\t\t1040,\n\t\t9,\n\t\t508\n\t],\n\t\"./kk/index.js\": [\n\t\t897,\n\t\t7,\n\t\t410\n\t],\n\t\"./kk/index.js.flow\": [\n\t\t1324,\n\t\t9,\n\t\t831\n\t],\n\t\"./kk/package\": [\n\t\t1041,\n\t\t3,\n\t\t724\n\t],\n\t\"./kk/package.json\": [\n\t\t1041,\n\t\t3,\n\t\t724\n\t],\n\t\"./km\": [\n\t\t801,\n\t\t9,\n\t\t642\n\t],\n\t\"./km/\": [\n\t\t801,\n\t\t9,\n\t\t642\n\t],\n\t\"./km/_lib/formatDistance\": [\n\t\t429,\n\t\t7,\n\t\t342\n\t],\n\t\"./km/_lib/formatDistance/\": [\n\t\t429,\n\t\t7,\n\t\t342\n\t],\n\t\"./km/_lib/formatDistance/index\": [\n\t\t429,\n\t\t7,\n\t\t342\n\t],\n\t\"./km/_lib/formatDistance/index.js\": [\n\t\t429,\n\t\t7,\n\t\t342\n\t],\n\t\"./km/_lib/formatLong\": [\n\t\t430,\n\t\t7,\n\t\t142\n\t],\n\t\"./km/_lib/formatLong/\": [\n\t\t430,\n\t\t7,\n\t\t142\n\t],\n\t\"./km/_lib/formatLong/index\": [\n\t\t430,\n\t\t7,\n\t\t142\n\t],\n\t\"./km/_lib/formatLong/index.js\": [\n\t\t430,\n\t\t7,\n\t\t142\n\t],\n\t\"./km/_lib/formatRelative\": [\n\t\t431,\n\t\t7,\n\t\t343\n\t],\n\t\"./km/_lib/formatRelative/\": [\n\t\t431,\n\t\t7,\n\t\t343\n\t],\n\t\"./km/_lib/formatRelative/index\": [\n\t\t431,\n\t\t7,\n\t\t343\n\t],\n\t\"./km/_lib/formatRelative/index.js\": [\n\t\t431,\n\t\t7,\n\t\t343\n\t],\n\t\"./km/_lib/localize\": [\n\t\t432,\n\t\t7,\n\t\t221\n\t],\n\t\"./km/_lib/localize/\": [\n\t\t432,\n\t\t7,\n\t\t221\n\t],\n\t\"./km/_lib/localize/index\": [\n\t\t432,\n\t\t7,\n\t\t221\n\t],\n\t\"./km/_lib/localize/index.js\": [\n\t\t432,\n\t\t7,\n\t\t221\n\t],\n\t\"./km/_lib/match\": [\n\t\t433,\n\t\t7,\n\t\t56\n\t],\n\t\"./km/_lib/match/\": [\n\t\t433,\n\t\t7,\n\t\t56\n\t],\n\t\"./km/_lib/match/index\": [\n\t\t433,\n\t\t7,\n\t\t56\n\t],\n\t\"./km/_lib/match/index.js\": [\n\t\t433,\n\t\t7,\n\t\t56\n\t],\n\t\"./km/index\": [\n\t\t898,\n\t\t7,\n\t\t466\n\t],\n\t\"./km/index.d\": [\n\t\t1042,\n\t\t9,\n\t\t573\n\t],\n\t\"./km/index.d.ts\": [\n\t\t1042,\n\t\t9,\n\t\t573\n\t],\n\t\"./km/index.js\": [\n\t\t898,\n\t\t7,\n\t\t466\n\t],\n\t\"./km/index.js.flow\": [\n\t\t1325,\n\t\t9,\n\t\t832\n\t],\n\t\"./km/index.ts.flow\": [\n\t\t1326,\n\t\t9,\n\t\t833\n\t],\n\t\"./km/package\": [\n\t\t1043,\n\t\t3,\n\t\t725\n\t],\n\t\"./km/package.json\": [\n\t\t1043,\n\t\t3,\n\t\t725\n\t],\n\t\"./kn\": [\n\t\t802,\n\t\t9,\n\t\t643\n\t],\n\t\"./kn/\": [\n\t\t802,\n\t\t9,\n\t\t643\n\t],\n\t\"./kn/_lib/formatDistance\": [\n\t\t434,\n\t\t7,\n\t\t344\n\t],\n\t\"./kn/_lib/formatDistance/\": [\n\t\t434,\n\t\t7,\n\t\t344\n\t],\n\t\"./kn/_lib/formatDistance/index\": [\n\t\t434,\n\t\t7,\n\t\t344\n\t],\n\t\"./kn/_lib/formatDistance/index.js\": [\n\t\t434,\n\t\t7,\n\t\t344\n\t],\n\t\"./kn/_lib/formatLong\": [\n\t\t435,\n\t\t7,\n\t\t143\n\t],\n\t\"./kn/_lib/formatLong/\": [\n\t\t435,\n\t\t7,\n\t\t143\n\t],\n\t\"./kn/_lib/formatLong/index\": [\n\t\t435,\n\t\t7,\n\t\t143\n\t],\n\t\"./kn/_lib/formatLong/index.js\": [\n\t\t435,\n\t\t7,\n\t\t143\n\t],\n\t\"./kn/_lib/formatRelative\": [\n\t\t436,\n\t\t7,\n\t\t345\n\t],\n\t\"./kn/_lib/formatRelative/\": [\n\t\t436,\n\t\t7,\n\t\t345\n\t],\n\t\"./kn/_lib/formatRelative/index\": [\n\t\t436,\n\t\t7,\n\t\t345\n\t],\n\t\"./kn/_lib/formatRelative/index.js\": [\n\t\t436,\n\t\t7,\n\t\t345\n\t],\n\t\"./kn/_lib/localize\": [\n\t\t437,\n\t\t7,\n\t\t222\n\t],\n\t\"./kn/_lib/localize/\": [\n\t\t437,\n\t\t7,\n\t\t222\n\t],\n\t\"./kn/_lib/localize/index\": [\n\t\t437,\n\t\t7,\n\t\t222\n\t],\n\t\"./kn/_lib/localize/index.js\": [\n\t\t437,\n\t\t7,\n\t\t222\n\t],\n\t\"./kn/_lib/match\": [\n\t\t438,\n\t\t7,\n\t\t57\n\t],\n\t\"./kn/_lib/match/\": [\n\t\t438,\n\t\t7,\n\t\t57\n\t],\n\t\"./kn/_lib/match/index\": [\n\t\t438,\n\t\t7,\n\t\t57\n\t],\n\t\"./kn/_lib/match/index.js\": [\n\t\t438,\n\t\t7,\n\t\t57\n\t],\n\t\"./kn/index\": [\n\t\t899,\n\t\t7,\n\t\t467\n\t],\n\t\"./kn/index.d\": [\n\t\t1044,\n\t\t9,\n\t\t574\n\t],\n\t\"./kn/index.d.ts\": [\n\t\t1044,\n\t\t9,\n\t\t574\n\t],\n\t\"./kn/index.js\": [\n\t\t899,\n\t\t7,\n\t\t467\n\t],\n\t\"./kn/index.js.flow\": [\n\t\t1327,\n\t\t9,\n\t\t834\n\t],\n\t\"./kn/package\": [\n\t\t1045,\n\t\t3,\n\t\t726\n\t],\n\t\"./kn/package.json\": [\n\t\t1045,\n\t\t3,\n\t\t726\n\t],\n\t\"./ko\": [\n\t\t803,\n\t\t9,\n\t\t644\n\t],\n\t\"./ko/\": [\n\t\t803,\n\t\t9,\n\t\t644\n\t],\n\t\"./ko/_lib/formatDistance\": [\n\t\t439,\n\t\t7,\n\t\t346\n\t],\n\t\"./ko/_lib/formatDistance/\": [\n\t\t439,\n\t\t7,\n\t\t346\n\t],\n\t\"./ko/_lib/formatDistance/index\": [\n\t\t439,\n\t\t7,\n\t\t346\n\t],\n\t\"./ko/_lib/formatDistance/index.js\": [\n\t\t439,\n\t\t7,\n\t\t346\n\t],\n\t\"./ko/_lib/formatLong\": [\n\t\t440,\n\t\t7,\n\t\t144\n\t],\n\t\"./ko/_lib/formatLong/\": [\n\t\t440,\n\t\t7,\n\t\t144\n\t],\n\t\"./ko/_lib/formatLong/index\": [\n\t\t440,\n\t\t7,\n\t\t144\n\t],\n\t\"./ko/_lib/formatLong/index.js\": [\n\t\t440,\n\t\t7,\n\t\t144\n\t],\n\t\"./ko/_lib/formatRelative\": [\n\t\t441,\n\t\t7,\n\t\t347\n\t],\n\t\"./ko/_lib/formatRelative/\": [\n\t\t441,\n\t\t7,\n\t\t347\n\t],\n\t\"./ko/_lib/formatRelative/index\": [\n\t\t441,\n\t\t7,\n\t\t347\n\t],\n\t\"./ko/_lib/formatRelative/index.js\": [\n\t\t441,\n\t\t7,\n\t\t347\n\t],\n\t\"./ko/_lib/localize\": [\n\t\t442,\n\t\t7,\n\t\t223\n\t],\n\t\"./ko/_lib/localize/\": [\n\t\t442,\n\t\t7,\n\t\t223\n\t],\n\t\"./ko/_lib/localize/index\": [\n\t\t442,\n\t\t7,\n\t\t223\n\t],\n\t\"./ko/_lib/localize/index.js\": [\n\t\t442,\n\t\t7,\n\t\t223\n\t],\n\t\"./ko/_lib/match\": [\n\t\t443,\n\t\t7,\n\t\t58\n\t],\n\t\"./ko/_lib/match/\": [\n\t\t443,\n\t\t7,\n\t\t58\n\t],\n\t\"./ko/_lib/match/index\": [\n\t\t443,\n\t\t7,\n\t\t58\n\t],\n\t\"./ko/_lib/match/index.js\": [\n\t\t443,\n\t\t7,\n\t\t58\n\t],\n\t\"./ko/index\": [\n\t\t900,\n\t\t7,\n\t\t468\n\t],\n\t\"./ko/index.d\": [\n\t\t1046,\n\t\t9,\n\t\t575\n\t],\n\t\"./ko/index.d.ts\": [\n\t\t1046,\n\t\t9,\n\t\t575\n\t],\n\t\"./ko/index.js\": [\n\t\t900,\n\t\t7,\n\t\t468\n\t],\n\t\"./ko/index.js.flow\": [\n\t\t1328,\n\t\t9,\n\t\t835\n\t],\n\t\"./ko/package\": [\n\t\t1047,\n\t\t3,\n\t\t727\n\t],\n\t\"./ko/package.json\": [\n\t\t1047,\n\t\t3,\n\t\t727\n\t],\n\t\"./lb\": [\n\t\t804,\n\t\t9,\n\t\t645\n\t],\n\t\"./lb/\": [\n\t\t804,\n\t\t9,\n\t\t645\n\t],\n\t\"./lb/_lib/formatDistance\": [\n\t\t444,\n\t\t7,\n\t\t348\n\t],\n\t\"./lb/_lib/formatDistance/\": [\n\t\t444,\n\t\t7,\n\t\t348\n\t],\n\t\"./lb/_lib/formatDistance/index\": [\n\t\t444,\n\t\t7,\n\t\t348\n\t],\n\t\"./lb/_lib/formatDistance/index.js\": [\n\t\t444,\n\t\t7,\n\t\t348\n\t],\n\t\"./lb/_lib/formatLong\": [\n\t\t445,\n\t\t7,\n\t\t145\n\t],\n\t\"./lb/_lib/formatLong/\": [\n\t\t445,\n\t\t7,\n\t\t145\n\t],\n\t\"./lb/_lib/formatLong/index\": [\n\t\t445,\n\t\t7,\n\t\t145\n\t],\n\t\"./lb/_lib/formatLong/index.js\": [\n\t\t445,\n\t\t7,\n\t\t145\n\t],\n\t\"./lb/_lib/formatRelative\": [\n\t\t446,\n\t\t7,\n\t\t349\n\t],\n\t\"./lb/_lib/formatRelative/\": [\n\t\t446,\n\t\t7,\n\t\t349\n\t],\n\t\"./lb/_lib/formatRelative/index\": [\n\t\t446,\n\t\t7,\n\t\t349\n\t],\n\t\"./lb/_lib/formatRelative/index.js\": [\n\t\t446,\n\t\t7,\n\t\t349\n\t],\n\t\"./lb/_lib/localize\": [\n\t\t447,\n\t\t7,\n\t\t224\n\t],\n\t\"./lb/_lib/localize/\": [\n\t\t447,\n\t\t7,\n\t\t224\n\t],\n\t\"./lb/_lib/localize/index\": [\n\t\t447,\n\t\t7,\n\t\t224\n\t],\n\t\"./lb/_lib/localize/index.js\": [\n\t\t447,\n\t\t7,\n\t\t224\n\t],\n\t\"./lb/_lib/match\": [\n\t\t448,\n\t\t7,\n\t\t59\n\t],\n\t\"./lb/_lib/match/\": [\n\t\t448,\n\t\t7,\n\t\t59\n\t],\n\t\"./lb/_lib/match/index\": [\n\t\t448,\n\t\t7,\n\t\t59\n\t],\n\t\"./lb/_lib/match/index.js\": [\n\t\t448,\n\t\t7,\n\t\t59\n\t],\n\t\"./lb/index\": [\n\t\t901,\n\t\t7,\n\t\t469\n\t],\n\t\"./lb/index.d\": [\n\t\t1048,\n\t\t9,\n\t\t576\n\t],\n\t\"./lb/index.d.ts\": [\n\t\t1048,\n\t\t9,\n\t\t576\n\t],\n\t\"./lb/index.js\": [\n\t\t901,\n\t\t7,\n\t\t469\n\t],\n\t\"./lb/index.js.flow\": [\n\t\t1329,\n\t\t9,\n\t\t836\n\t],\n\t\"./lb/package\": [\n\t\t1049,\n\t\t3,\n\t\t728\n\t],\n\t\"./lb/package.json\": [\n\t\t1049,\n\t\t3,\n\t\t728\n\t],\n\t\"./lt\": [\n\t\t805,\n\t\t9,\n\t\t646\n\t],\n\t\"./lt/\": [\n\t\t805,\n\t\t9,\n\t\t646\n\t],\n\t\"./lt/_lib/formatDistance\": [\n\t\t449,\n\t\t7,\n\t\t350\n\t],\n\t\"./lt/_lib/formatDistance/\": [\n\t\t449,\n\t\t7,\n\t\t350\n\t],\n\t\"./lt/_lib/formatDistance/index\": [\n\t\t449,\n\t\t7,\n\t\t350\n\t],\n\t\"./lt/_lib/formatDistance/index.js\": [\n\t\t449,\n\t\t7,\n\t\t350\n\t],\n\t\"./lt/_lib/formatLong\": [\n\t\t450,\n\t\t7,\n\t\t146\n\t],\n\t\"./lt/_lib/formatLong/\": [\n\t\t450,\n\t\t7,\n\t\t146\n\t],\n\t\"./lt/_lib/formatLong/index\": [\n\t\t450,\n\t\t7,\n\t\t146\n\t],\n\t\"./lt/_lib/formatLong/index.js\": [\n\t\t450,\n\t\t7,\n\t\t146\n\t],\n\t\"./lt/_lib/formatRelative\": [\n\t\t451,\n\t\t7,\n\t\t351\n\t],\n\t\"./lt/_lib/formatRelative/\": [\n\t\t451,\n\t\t7,\n\t\t351\n\t],\n\t\"./lt/_lib/formatRelative/index\": [\n\t\t451,\n\t\t7,\n\t\t351\n\t],\n\t\"./lt/_lib/formatRelative/index.js\": [\n\t\t451,\n\t\t7,\n\t\t351\n\t],\n\t\"./lt/_lib/localize\": [\n\t\t452,\n\t\t7,\n\t\t225\n\t],\n\t\"./lt/_lib/localize/\": [\n\t\t452,\n\t\t7,\n\t\t225\n\t],\n\t\"./lt/_lib/localize/index\": [\n\t\t452,\n\t\t7,\n\t\t225\n\t],\n\t\"./lt/_lib/localize/index.js\": [\n\t\t452,\n\t\t7,\n\t\t225\n\t],\n\t\"./lt/_lib/match\": [\n\t\t453,\n\t\t7,\n\t\t60\n\t],\n\t\"./lt/_lib/match/\": [\n\t\t453,\n\t\t7,\n\t\t60\n\t],\n\t\"./lt/_lib/match/index\": [\n\t\t453,\n\t\t7,\n\t\t60\n\t],\n\t\"./lt/_lib/match/index.js\": [\n\t\t453,\n\t\t7,\n\t\t60\n\t],\n\t\"./lt/index\": [\n\t\t902,\n\t\t7,\n\t\t470\n\t],\n\t\"./lt/index.d\": [\n\t\t1050,\n\t\t9,\n\t\t577\n\t],\n\t\"./lt/index.d.ts\": [\n\t\t1050,\n\t\t9,\n\t\t577\n\t],\n\t\"./lt/index.js\": [\n\t\t902,\n\t\t7,\n\t\t470\n\t],\n\t\"./lt/index.js.flow\": [\n\t\t1330,\n\t\t9,\n\t\t837\n\t],\n\t\"./lt/package\": [\n\t\t1051,\n\t\t3,\n\t\t729\n\t],\n\t\"./lt/package.json\": [\n\t\t1051,\n\t\t3,\n\t\t729\n\t],\n\t\"./lv\": [\n\t\t806,\n\t\t9,\n\t\t524\n\t],\n\t\"./lv/\": [\n\t\t806,\n\t\t9,\n\t\t524\n\t],\n\t\"./lv/_lib/formatDistance\": [\n\t\t454,\n\t\t7,\n\t\t352\n\t],\n\t\"./lv/_lib/formatDistance/\": [\n\t\t454,\n\t\t7,\n\t\t352\n\t],\n\t\"./lv/_lib/formatDistance/index\": [\n\t\t454,\n\t\t7,\n\t\t352\n\t],\n\t\"./lv/_lib/formatDistance/index.js\": [\n\t\t454,\n\t\t7,\n\t\t352\n\t],\n\t\"./lv/_lib/formatLong\": [\n\t\t455,\n\t\t7,\n\t\t147\n\t],\n\t\"./lv/_lib/formatLong/\": [\n\t\t455,\n\t\t7,\n\t\t147\n\t],\n\t\"./lv/_lib/formatLong/index\": [\n\t\t455,\n\t\t7,\n\t\t147\n\t],\n\t\"./lv/_lib/formatLong/index.js\": [\n\t\t455,\n\t\t7,\n\t\t147\n\t],\n\t\"./lv/_lib/formatRelative\": [\n\t\t456,\n\t\t7,\n\t\t5\n\t],\n\t\"./lv/_lib/formatRelative/\": [\n\t\t456,\n\t\t7,\n\t\t5\n\t],\n\t\"./lv/_lib/formatRelative/index\": [\n\t\t456,\n\t\t7,\n\t\t5\n\t],\n\t\"./lv/_lib/formatRelative/index.js\": [\n\t\t456,\n\t\t7,\n\t\t5\n\t],\n\t\"./lv/_lib/localize\": [\n\t\t457,\n\t\t7,\n\t\t226\n\t],\n\t\"./lv/_lib/localize/\": [\n\t\t457,\n\t\t7,\n\t\t226\n\t],\n\t\"./lv/_lib/localize/index\": [\n\t\t457,\n\t\t7,\n\t\t226\n\t],\n\t\"./lv/_lib/localize/index.js\": [\n\t\t457,\n\t\t7,\n\t\t226\n\t],\n\t\"./lv/_lib/match\": [\n\t\t458,\n\t\t7,\n\t\t61\n\t],\n\t\"./lv/_lib/match/\": [\n\t\t458,\n\t\t7,\n\t\t61\n\t],\n\t\"./lv/_lib/match/index\": [\n\t\t458,\n\t\t7,\n\t\t61\n\t],\n\t\"./lv/_lib/match/index.js\": [\n\t\t458,\n\t\t7,\n\t\t61\n\t],\n\t\"./lv/index\": [\n\t\t903,\n\t\t7,\n\t\t411\n\t],\n\t\"./lv/index.d\": [\n\t\t1052,\n\t\t9,\n\t\t509\n\t],\n\t\"./lv/index.d.ts\": [\n\t\t1052,\n\t\t9,\n\t\t509\n\t],\n\t\"./lv/index.js\": [\n\t\t903,\n\t\t7,\n\t\t411\n\t],\n\t\"./lv/index.js.flow\": [\n\t\t1331,\n\t\t9,\n\t\t838\n\t],\n\t\"./lv/package\": [\n\t\t1053,\n\t\t3,\n\t\t730\n\t],\n\t\"./lv/package.json\": [\n\t\t1053,\n\t\t3,\n\t\t730\n\t],\n\t\"./mk\": [\n\t\t807,\n\t\t9,\n\t\t525\n\t],\n\t\"./mk/\": [\n\t\t807,\n\t\t9,\n\t\t525\n\t],\n\t\"./mk/_lib/formatDistance\": [\n\t\t459,\n\t\t7,\n\t\t353\n\t],\n\t\"./mk/_lib/formatDistance/\": [\n\t\t459,\n\t\t7,\n\t\t353\n\t],\n\t\"./mk/_lib/formatDistance/index\": [\n\t\t459,\n\t\t7,\n\t\t353\n\t],\n\t\"./mk/_lib/formatDistance/index.js\": [\n\t\t459,\n\t\t7,\n\t\t353\n\t],\n\t\"./mk/_lib/formatLong\": [\n\t\t460,\n\t\t7,\n\t\t148\n\t],\n\t\"./mk/_lib/formatLong/\": [\n\t\t460,\n\t\t7,\n\t\t148\n\t],\n\t\"./mk/_lib/formatLong/index\": [\n\t\t460,\n\t\t7,\n\t\t148\n\t],\n\t\"./mk/_lib/formatLong/index.js\": [\n\t\t460,\n\t\t7,\n\t\t148\n\t],\n\t\"./mk/_lib/formatRelative\": [\n\t\t461,\n\t\t7,\n\t\t6\n\t],\n\t\"./mk/_lib/formatRelative/\": [\n\t\t461,\n\t\t7,\n\t\t6\n\t],\n\t\"./mk/_lib/formatRelative/index\": [\n\t\t461,\n\t\t7,\n\t\t6\n\t],\n\t\"./mk/_lib/formatRelative/index.js\": [\n\t\t461,\n\t\t7,\n\t\t6\n\t],\n\t\"./mk/_lib/localize\": [\n\t\t462,\n\t\t7,\n\t\t227\n\t],\n\t\"./mk/_lib/localize/\": [\n\t\t462,\n\t\t7,\n\t\t227\n\t],\n\t\"./mk/_lib/localize/index\": [\n\t\t462,\n\t\t7,\n\t\t227\n\t],\n\t\"./mk/_lib/localize/index.js\": [\n\t\t462,\n\t\t7,\n\t\t227\n\t],\n\t\"./mk/_lib/match\": [\n\t\t463,\n\t\t7,\n\t\t62\n\t],\n\t\"./mk/_lib/match/\": [\n\t\t463,\n\t\t7,\n\t\t62\n\t],\n\t\"./mk/_lib/match/index\": [\n\t\t463,\n\t\t7,\n\t\t62\n\t],\n\t\"./mk/_lib/match/index.js\": [\n\t\t463,\n\t\t7,\n\t\t62\n\t],\n\t\"./mk/index\": [\n\t\t904,\n\t\t7,\n\t\t412\n\t],\n\t\"./mk/index.d\": [\n\t\t1054,\n\t\t9,\n\t\t510\n\t],\n\t\"./mk/index.d.ts\": [\n\t\t1054,\n\t\t9,\n\t\t510\n\t],\n\t\"./mk/index.js\": [\n\t\t904,\n\t\t7,\n\t\t412\n\t],\n\t\"./mk/index.js.flow\": [\n\t\t1332,\n\t\t9,\n\t\t839\n\t],\n\t\"./mk/package\": [\n\t\t1055,\n\t\t3,\n\t\t731\n\t],\n\t\"./mk/package.json\": [\n\t\t1055,\n\t\t3,\n\t\t731\n\t],\n\t\"./mn\": [\n\t\t808,\n\t\t9,\n\t\t647\n\t],\n\t\"./mn/\": [\n\t\t808,\n\t\t9,\n\t\t647\n\t],\n\t\"./mn/_lib/formatDistance\": [\n\t\t464,\n\t\t7,\n\t\t354\n\t],\n\t\"./mn/_lib/formatDistance/\": [\n\t\t464,\n\t\t7,\n\t\t354\n\t],\n\t\"./mn/_lib/formatDistance/index\": [\n\t\t464,\n\t\t7,\n\t\t354\n\t],\n\t\"./mn/_lib/formatDistance/index.js\": [\n\t\t464,\n\t\t7,\n\t\t354\n\t],\n\t\"./mn/_lib/formatLong\": [\n\t\t465,\n\t\t7,\n\t\t149\n\t],\n\t\"./mn/_lib/formatLong/\": [\n\t\t465,\n\t\t7,\n\t\t149\n\t],\n\t\"./mn/_lib/formatLong/index\": [\n\t\t465,\n\t\t7,\n\t\t149\n\t],\n\t\"./mn/_lib/formatLong/index.js\": [\n\t\t465,\n\t\t7,\n\t\t149\n\t],\n\t\"./mn/_lib/formatRelative\": [\n\t\t466,\n\t\t7,\n\t\t355\n\t],\n\t\"./mn/_lib/formatRelative/\": [\n\t\t466,\n\t\t7,\n\t\t355\n\t],\n\t\"./mn/_lib/formatRelative/index\": [\n\t\t466,\n\t\t7,\n\t\t355\n\t],\n\t\"./mn/_lib/formatRelative/index.js\": [\n\t\t466,\n\t\t7,\n\t\t355\n\t],\n\t\"./mn/_lib/localize\": [\n\t\t467,\n\t\t7,\n\t\t228\n\t],\n\t\"./mn/_lib/localize/\": [\n\t\t467,\n\t\t7,\n\t\t228\n\t],\n\t\"./mn/_lib/localize/index\": [\n\t\t467,\n\t\t7,\n\t\t228\n\t],\n\t\"./mn/_lib/localize/index.js\": [\n\t\t467,\n\t\t7,\n\t\t228\n\t],\n\t\"./mn/_lib/match\": [\n\t\t468,\n\t\t7,\n\t\t63\n\t],\n\t\"./mn/_lib/match/\": [\n\t\t468,\n\t\t7,\n\t\t63\n\t],\n\t\"./mn/_lib/match/index\": [\n\t\t468,\n\t\t7,\n\t\t63\n\t],\n\t\"./mn/_lib/match/index.js\": [\n\t\t468,\n\t\t7,\n\t\t63\n\t],\n\t\"./mn/index\": [\n\t\t905,\n\t\t7,\n\t\t471\n\t],\n\t\"./mn/index.d\": [\n\t\t1056,\n\t\t9,\n\t\t578\n\t],\n\t\"./mn/index.d.ts\": [\n\t\t1056,\n\t\t9,\n\t\t578\n\t],\n\t\"./mn/index.js\": [\n\t\t905,\n\t\t7,\n\t\t471\n\t],\n\t\"./mn/index.js.flow\": [\n\t\t1333,\n\t\t9,\n\t\t840\n\t],\n\t\"./mn/package\": [\n\t\t1057,\n\t\t3,\n\t\t732\n\t],\n\t\"./mn/package.json\": [\n\t\t1057,\n\t\t3,\n\t\t732\n\t],\n\t\"./ms\": [\n\t\t809,\n\t\t9,\n\t\t648\n\t],\n\t\"./ms/\": [\n\t\t809,\n\t\t9,\n\t\t648\n\t],\n\t\"./ms/_lib/formatDistance\": [\n\t\t469,\n\t\t7,\n\t\t356\n\t],\n\t\"./ms/_lib/formatDistance/\": [\n\t\t469,\n\t\t7,\n\t\t356\n\t],\n\t\"./ms/_lib/formatDistance/index\": [\n\t\t469,\n\t\t7,\n\t\t356\n\t],\n\t\"./ms/_lib/formatDistance/index.js\": [\n\t\t469,\n\t\t7,\n\t\t356\n\t],\n\t\"./ms/_lib/formatLong\": [\n\t\t470,\n\t\t7,\n\t\t150\n\t],\n\t\"./ms/_lib/formatLong/\": [\n\t\t470,\n\t\t7,\n\t\t150\n\t],\n\t\"./ms/_lib/formatLong/index\": [\n\t\t470,\n\t\t7,\n\t\t150\n\t],\n\t\"./ms/_lib/formatLong/index.js\": [\n\t\t470,\n\t\t7,\n\t\t150\n\t],\n\t\"./ms/_lib/formatRelative\": [\n\t\t471,\n\t\t7,\n\t\t357\n\t],\n\t\"./ms/_lib/formatRelative/\": [\n\t\t471,\n\t\t7,\n\t\t357\n\t],\n\t\"./ms/_lib/formatRelative/index\": [\n\t\t471,\n\t\t7,\n\t\t357\n\t],\n\t\"./ms/_lib/formatRelative/index.js\": [\n\t\t471,\n\t\t7,\n\t\t357\n\t],\n\t\"./ms/_lib/localize\": [\n\t\t472,\n\t\t7,\n\t\t229\n\t],\n\t\"./ms/_lib/localize/\": [\n\t\t472,\n\t\t7,\n\t\t229\n\t],\n\t\"./ms/_lib/localize/index\": [\n\t\t472,\n\t\t7,\n\t\t229\n\t],\n\t\"./ms/_lib/localize/index.js\": [\n\t\t472,\n\t\t7,\n\t\t229\n\t],\n\t\"./ms/_lib/match\": [\n\t\t473,\n\t\t7,\n\t\t64\n\t],\n\t\"./ms/_lib/match/\": [\n\t\t473,\n\t\t7,\n\t\t64\n\t],\n\t\"./ms/_lib/match/index\": [\n\t\t473,\n\t\t7,\n\t\t64\n\t],\n\t\"./ms/_lib/match/index.js\": [\n\t\t473,\n\t\t7,\n\t\t64\n\t],\n\t\"./ms/index\": [\n\t\t906,\n\t\t7,\n\t\t472\n\t],\n\t\"./ms/index.d\": [\n\t\t1058,\n\t\t9,\n\t\t579\n\t],\n\t\"./ms/index.d.ts\": [\n\t\t1058,\n\t\t9,\n\t\t579\n\t],\n\t\"./ms/index.js\": [\n\t\t906,\n\t\t7,\n\t\t472\n\t],\n\t\"./ms/index.js.flow\": [\n\t\t1334,\n\t\t9,\n\t\t841\n\t],\n\t\"./ms/package\": [\n\t\t1059,\n\t\t3,\n\t\t733\n\t],\n\t\"./ms/package.json\": [\n\t\t1059,\n\t\t3,\n\t\t733\n\t],\n\t\"./mt\": [\n\t\t810,\n\t\t9,\n\t\t649\n\t],\n\t\"./mt/\": [\n\t\t810,\n\t\t9,\n\t\t649\n\t],\n\t\"./mt/_lib/formatDistance\": [\n\t\t474,\n\t\t7,\n\t\t358\n\t],\n\t\"./mt/_lib/formatDistance/\": [\n\t\t474,\n\t\t7,\n\t\t358\n\t],\n\t\"./mt/_lib/formatDistance/index\": [\n\t\t474,\n\t\t7,\n\t\t358\n\t],\n\t\"./mt/_lib/formatDistance/index.js\": [\n\t\t474,\n\t\t7,\n\t\t358\n\t],\n\t\"./mt/_lib/formatLong\": [\n\t\t475,\n\t\t7,\n\t\t151\n\t],\n\t\"./mt/_lib/formatLong/\": [\n\t\t475,\n\t\t7,\n\t\t151\n\t],\n\t\"./mt/_lib/formatLong/index\": [\n\t\t475,\n\t\t7,\n\t\t151\n\t],\n\t\"./mt/_lib/formatLong/index.js\": [\n\t\t475,\n\t\t7,\n\t\t151\n\t],\n\t\"./mt/_lib/formatRelative\": [\n\t\t476,\n\t\t7,\n\t\t359\n\t],\n\t\"./mt/_lib/formatRelative/\": [\n\t\t476,\n\t\t7,\n\t\t359\n\t],\n\t\"./mt/_lib/formatRelative/index\": [\n\t\t476,\n\t\t7,\n\t\t359\n\t],\n\t\"./mt/_lib/formatRelative/index.js\": [\n\t\t476,\n\t\t7,\n\t\t359\n\t],\n\t\"./mt/_lib/localize\": [\n\t\t477,\n\t\t7,\n\t\t230\n\t],\n\t\"./mt/_lib/localize/\": [\n\t\t477,\n\t\t7,\n\t\t230\n\t],\n\t\"./mt/_lib/localize/index\": [\n\t\t477,\n\t\t7,\n\t\t230\n\t],\n\t\"./mt/_lib/localize/index.js\": [\n\t\t477,\n\t\t7,\n\t\t230\n\t],\n\t\"./mt/_lib/match\": [\n\t\t478,\n\t\t7,\n\t\t65\n\t],\n\t\"./mt/_lib/match/\": [\n\t\t478,\n\t\t7,\n\t\t65\n\t],\n\t\"./mt/_lib/match/index\": [\n\t\t478,\n\t\t7,\n\t\t65\n\t],\n\t\"./mt/_lib/match/index.js\": [\n\t\t478,\n\t\t7,\n\t\t65\n\t],\n\t\"./mt/index\": [\n\t\t907,\n\t\t7,\n\t\t473\n\t],\n\t\"./mt/index.d\": [\n\t\t1060,\n\t\t9,\n\t\t580\n\t],\n\t\"./mt/index.d.ts\": [\n\t\t1060,\n\t\t9,\n\t\t580\n\t],\n\t\"./mt/index.js\": [\n\t\t907,\n\t\t7,\n\t\t473\n\t],\n\t\"./mt/index.js.flow\": [\n\t\t1335,\n\t\t9,\n\t\t842\n\t],\n\t\"./mt/package\": [\n\t\t1061,\n\t\t3,\n\t\t734\n\t],\n\t\"./mt/package.json\": [\n\t\t1061,\n\t\t3,\n\t\t734\n\t],\n\t\"./nb\": [\n\t\t811,\n\t\t9,\n\t\t650\n\t],\n\t\"./nb/\": [\n\t\t811,\n\t\t9,\n\t\t650\n\t],\n\t\"./nb/_lib/formatDistance\": [\n\t\t479,\n\t\t7,\n\t\t360\n\t],\n\t\"./nb/_lib/formatDistance/\": [\n\t\t479,\n\t\t7,\n\t\t360\n\t],\n\t\"./nb/_lib/formatDistance/index\": [\n\t\t479,\n\t\t7,\n\t\t360\n\t],\n\t\"./nb/_lib/formatDistance/index.js\": [\n\t\t479,\n\t\t7,\n\t\t360\n\t],\n\t\"./nb/_lib/formatLong\": [\n\t\t480,\n\t\t7,\n\t\t152\n\t],\n\t\"./nb/_lib/formatLong/\": [\n\t\t480,\n\t\t7,\n\t\t152\n\t],\n\t\"./nb/_lib/formatLong/index\": [\n\t\t480,\n\t\t7,\n\t\t152\n\t],\n\t\"./nb/_lib/formatLong/index.js\": [\n\t\t480,\n\t\t7,\n\t\t152\n\t],\n\t\"./nb/_lib/formatRelative\": [\n\t\t481,\n\t\t7,\n\t\t361\n\t],\n\t\"./nb/_lib/formatRelative/\": [\n\t\t481,\n\t\t7,\n\t\t361\n\t],\n\t\"./nb/_lib/formatRelative/index\": [\n\t\t481,\n\t\t7,\n\t\t361\n\t],\n\t\"./nb/_lib/formatRelative/index.js\": [\n\t\t481,\n\t\t7,\n\t\t361\n\t],\n\t\"./nb/_lib/localize\": [\n\t\t482,\n\t\t7,\n\t\t231\n\t],\n\t\"./nb/_lib/localize/\": [\n\t\t482,\n\t\t7,\n\t\t231\n\t],\n\t\"./nb/_lib/localize/index\": [\n\t\t482,\n\t\t7,\n\t\t231\n\t],\n\t\"./nb/_lib/localize/index.js\": [\n\t\t482,\n\t\t7,\n\t\t231\n\t],\n\t\"./nb/_lib/match\": [\n\t\t483,\n\t\t7,\n\t\t66\n\t],\n\t\"./nb/_lib/match/\": [\n\t\t483,\n\t\t7,\n\t\t66\n\t],\n\t\"./nb/_lib/match/index\": [\n\t\t483,\n\t\t7,\n\t\t66\n\t],\n\t\"./nb/_lib/match/index.js\": [\n\t\t483,\n\t\t7,\n\t\t66\n\t],\n\t\"./nb/index\": [\n\t\t908,\n\t\t7,\n\t\t474\n\t],\n\t\"./nb/index.d\": [\n\t\t1062,\n\t\t9,\n\t\t581\n\t],\n\t\"./nb/index.d.ts\": [\n\t\t1062,\n\t\t9,\n\t\t581\n\t],\n\t\"./nb/index.js\": [\n\t\t908,\n\t\t7,\n\t\t474\n\t],\n\t\"./nb/index.js.flow\": [\n\t\t1336,\n\t\t9,\n\t\t843\n\t],\n\t\"./nb/package\": [\n\t\t1063,\n\t\t3,\n\t\t735\n\t],\n\t\"./nb/package.json\": [\n\t\t1063,\n\t\t3,\n\t\t735\n\t],\n\t\"./nl\": [\n\t\t812,\n\t\t9,\n\t\t652\n\t],\n\t\"./nl-BE\": [\n\t\t813,\n\t\t9,\n\t\t651\n\t],\n\t\"./nl-BE/\": [\n\t\t813,\n\t\t9,\n\t\t651\n\t],\n\t\"./nl-BE/_lib/formatDistance\": [\n\t\t489,\n\t\t7,\n\t\t362\n\t],\n\t\"./nl-BE/_lib/formatDistance/\": [\n\t\t489,\n\t\t7,\n\t\t362\n\t],\n\t\"./nl-BE/_lib/formatDistance/index\": [\n\t\t489,\n\t\t7,\n\t\t362\n\t],\n\t\"./nl-BE/_lib/formatDistance/index.js\": [\n\t\t489,\n\t\t7,\n\t\t362\n\t],\n\t\"./nl-BE/_lib/formatLong\": [\n\t\t490,\n\t\t7,\n\t\t153\n\t],\n\t\"./nl-BE/_lib/formatLong/\": [\n\t\t490,\n\t\t7,\n\t\t153\n\t],\n\t\"./nl-BE/_lib/formatLong/index\": [\n\t\t490,\n\t\t7,\n\t\t153\n\t],\n\t\"./nl-BE/_lib/formatLong/index.js\": [\n\t\t490,\n\t\t7,\n\t\t153\n\t],\n\t\"./nl-BE/_lib/formatRelative\": [\n\t\t491,\n\t\t7,\n\t\t363\n\t],\n\t\"./nl-BE/_lib/formatRelative/\": [\n\t\t491,\n\t\t7,\n\t\t363\n\t],\n\t\"./nl-BE/_lib/formatRelative/index\": [\n\t\t491,\n\t\t7,\n\t\t363\n\t],\n\t\"./nl-BE/_lib/formatRelative/index.js\": [\n\t\t491,\n\t\t7,\n\t\t363\n\t],\n\t\"./nl-BE/_lib/localize\": [\n\t\t492,\n\t\t7,\n\t\t232\n\t],\n\t\"./nl-BE/_lib/localize/\": [\n\t\t492,\n\t\t7,\n\t\t232\n\t],\n\t\"./nl-BE/_lib/localize/index\": [\n\t\t492,\n\t\t7,\n\t\t232\n\t],\n\t\"./nl-BE/_lib/localize/index.js\": [\n\t\t492,\n\t\t7,\n\t\t232\n\t],\n\t\"./nl-BE/_lib/match\": [\n\t\t493,\n\t\t7,\n\t\t67\n\t],\n\t\"./nl-BE/_lib/match/\": [\n\t\t493,\n\t\t7,\n\t\t67\n\t],\n\t\"./nl-BE/_lib/match/index\": [\n\t\t493,\n\t\t7,\n\t\t67\n\t],\n\t\"./nl-BE/_lib/match/index.js\": [\n\t\t493,\n\t\t7,\n\t\t67\n\t],\n\t\"./nl-BE/index\": [\n\t\t910,\n\t\t7,\n\t\t475\n\t],\n\t\"./nl-BE/index.d\": [\n\t\t1066,\n\t\t9,\n\t\t582\n\t],\n\t\"./nl-BE/index.d.ts\": [\n\t\t1066,\n\t\t9,\n\t\t582\n\t],\n\t\"./nl-BE/index.js\": [\n\t\t910,\n\t\t7,\n\t\t475\n\t],\n\t\"./nl-BE/index.js.flow\": [\n\t\t1338,\n\t\t9,\n\t\t844\n\t],\n\t\"./nl-BE/package\": [\n\t\t1067,\n\t\t3,\n\t\t736\n\t],\n\t\"./nl-BE/package.json\": [\n\t\t1067,\n\t\t3,\n\t\t736\n\t],\n\t\"./nl/\": [\n\t\t812,\n\t\t9,\n\t\t652\n\t],\n\t\"./nl/_lib/formatDistance\": [\n\t\t484,\n\t\t7,\n\t\t364\n\t],\n\t\"./nl/_lib/formatDistance/\": [\n\t\t484,\n\t\t7,\n\t\t364\n\t],\n\t\"./nl/_lib/formatDistance/index\": [\n\t\t484,\n\t\t7,\n\t\t364\n\t],\n\t\"./nl/_lib/formatDistance/index.js\": [\n\t\t484,\n\t\t7,\n\t\t364\n\t],\n\t\"./nl/_lib/formatLong\": [\n\t\t485,\n\t\t7,\n\t\t154\n\t],\n\t\"./nl/_lib/formatLong/\": [\n\t\t485,\n\t\t7,\n\t\t154\n\t],\n\t\"./nl/_lib/formatLong/index\": [\n\t\t485,\n\t\t7,\n\t\t154\n\t],\n\t\"./nl/_lib/formatLong/index.js\": [\n\t\t485,\n\t\t7,\n\t\t154\n\t],\n\t\"./nl/_lib/formatRelative\": [\n\t\t486,\n\t\t7,\n\t\t365\n\t],\n\t\"./nl/_lib/formatRelative/\": [\n\t\t486,\n\t\t7,\n\t\t365\n\t],\n\t\"./nl/_lib/formatRelative/index\": [\n\t\t486,\n\t\t7,\n\t\t365\n\t],\n\t\"./nl/_lib/formatRelative/index.js\": [\n\t\t486,\n\t\t7,\n\t\t365\n\t],\n\t\"./nl/_lib/localize\": [\n\t\t487,\n\t\t7,\n\t\t233\n\t],\n\t\"./nl/_lib/localize/\": [\n\t\t487,\n\t\t7,\n\t\t233\n\t],\n\t\"./nl/_lib/localize/index\": [\n\t\t487,\n\t\t7,\n\t\t233\n\t],\n\t\"./nl/_lib/localize/index.js\": [\n\t\t487,\n\t\t7,\n\t\t233\n\t],\n\t\"./nl/_lib/match\": [\n\t\t488,\n\t\t7,\n\t\t68\n\t],\n\t\"./nl/_lib/match/\": [\n\t\t488,\n\t\t7,\n\t\t68\n\t],\n\t\"./nl/_lib/match/index\": [\n\t\t488,\n\t\t7,\n\t\t68\n\t],\n\t\"./nl/_lib/match/index.js\": [\n\t\t488,\n\t\t7,\n\t\t68\n\t],\n\t\"./nl/index\": [\n\t\t909,\n\t\t7,\n\t\t476\n\t],\n\t\"./nl/index.d\": [\n\t\t1064,\n\t\t9,\n\t\t583\n\t],\n\t\"./nl/index.d.ts\": [\n\t\t1064,\n\t\t9,\n\t\t583\n\t],\n\t\"./nl/index.js\": [\n\t\t909,\n\t\t7,\n\t\t476\n\t],\n\t\"./nl/index.js.flow\": [\n\t\t1337,\n\t\t9,\n\t\t845\n\t],\n\t\"./nl/package\": [\n\t\t1065,\n\t\t3,\n\t\t737\n\t],\n\t\"./nl/package.json\": [\n\t\t1065,\n\t\t3,\n\t\t737\n\t],\n\t\"./nn\": [\n\t\t814,\n\t\t9,\n\t\t653\n\t],\n\t\"./nn/\": [\n\t\t814,\n\t\t9,\n\t\t653\n\t],\n\t\"./nn/_lib/formatDistance\": [\n\t\t494,\n\t\t7,\n\t\t366\n\t],\n\t\"./nn/_lib/formatDistance/\": [\n\t\t494,\n\t\t7,\n\t\t366\n\t],\n\t\"./nn/_lib/formatDistance/index\": [\n\t\t494,\n\t\t7,\n\t\t366\n\t],\n\t\"./nn/_lib/formatDistance/index.js\": [\n\t\t494,\n\t\t7,\n\t\t366\n\t],\n\t\"./nn/_lib/formatLong\": [\n\t\t495,\n\t\t7,\n\t\t155\n\t],\n\t\"./nn/_lib/formatLong/\": [\n\t\t495,\n\t\t7,\n\t\t155\n\t],\n\t\"./nn/_lib/formatLong/index\": [\n\t\t495,\n\t\t7,\n\t\t155\n\t],\n\t\"./nn/_lib/formatLong/index.js\": [\n\t\t495,\n\t\t7,\n\t\t155\n\t],\n\t\"./nn/_lib/formatRelative\": [\n\t\t496,\n\t\t7,\n\t\t367\n\t],\n\t\"./nn/_lib/formatRelative/\": [\n\t\t496,\n\t\t7,\n\t\t367\n\t],\n\t\"./nn/_lib/formatRelative/index\": [\n\t\t496,\n\t\t7,\n\t\t367\n\t],\n\t\"./nn/_lib/formatRelative/index.js\": [\n\t\t496,\n\t\t7,\n\t\t367\n\t],\n\t\"./nn/_lib/localize\": [\n\t\t497,\n\t\t7,\n\t\t234\n\t],\n\t\"./nn/_lib/localize/\": [\n\t\t497,\n\t\t7,\n\t\t234\n\t],\n\t\"./nn/_lib/localize/index\": [\n\t\t497,\n\t\t7,\n\t\t234\n\t],\n\t\"./nn/_lib/localize/index.js\": [\n\t\t497,\n\t\t7,\n\t\t234\n\t],\n\t\"./nn/_lib/match\": [\n\t\t498,\n\t\t7,\n\t\t69\n\t],\n\t\"./nn/_lib/match/\": [\n\t\t498,\n\t\t7,\n\t\t69\n\t],\n\t\"./nn/_lib/match/index\": [\n\t\t498,\n\t\t7,\n\t\t69\n\t],\n\t\"./nn/_lib/match/index.js\": [\n\t\t498,\n\t\t7,\n\t\t69\n\t],\n\t\"./nn/index\": [\n\t\t911,\n\t\t7,\n\t\t477\n\t],\n\t\"./nn/index.d\": [\n\t\t1068,\n\t\t9,\n\t\t584\n\t],\n\t\"./nn/index.d.ts\": [\n\t\t1068,\n\t\t9,\n\t\t584\n\t],\n\t\"./nn/index.js\": [\n\t\t911,\n\t\t7,\n\t\t477\n\t],\n\t\"./nn/index.js.flow\": [\n\t\t1339,\n\t\t9,\n\t\t846\n\t],\n\t\"./nn/package\": [\n\t\t1069,\n\t\t3,\n\t\t738\n\t],\n\t\"./nn/package.json\": [\n\t\t1069,\n\t\t3,\n\t\t738\n\t],\n\t\"./package\": [\n\t\t1070,\n\t\t3,\n\t\t739\n\t],\n\t\"./package.json\": [\n\t\t1070,\n\t\t3,\n\t\t739\n\t],\n\t\"./pl\": [\n\t\t815,\n\t\t9,\n\t\t526\n\t],\n\t\"./pl/\": [\n\t\t815,\n\t\t9,\n\t\t526\n\t],\n\t\"./pl/_lib/formatDistance\": [\n\t\t499,\n\t\t7,\n\t\t368\n\t],\n\t\"./pl/_lib/formatDistance/\": [\n\t\t499,\n\t\t7,\n\t\t368\n\t],\n\t\"./pl/_lib/formatDistance/index\": [\n\t\t499,\n\t\t7,\n\t\t368\n\t],\n\t\"./pl/_lib/formatDistance/index.js\": [\n\t\t499,\n\t\t7,\n\t\t368\n\t],\n\t\"./pl/_lib/formatLong\": [\n\t\t500,\n\t\t7,\n\t\t156\n\t],\n\t\"./pl/_lib/formatLong/\": [\n\t\t500,\n\t\t7,\n\t\t156\n\t],\n\t\"./pl/_lib/formatLong/index\": [\n\t\t500,\n\t\t7,\n\t\t156\n\t],\n\t\"./pl/_lib/formatLong/index.js\": [\n\t\t500,\n\t\t7,\n\t\t156\n\t],\n\t\"./pl/_lib/formatRelative\": [\n\t\t501,\n\t\t7,\n\t\t7\n\t],\n\t\"./pl/_lib/formatRelative/\": [\n\t\t501,\n\t\t7,\n\t\t7\n\t],\n\t\"./pl/_lib/formatRelative/index\": [\n\t\t501,\n\t\t7,\n\t\t7\n\t],\n\t\"./pl/_lib/formatRelative/index.js\": [\n\t\t501,\n\t\t7,\n\t\t7\n\t],\n\t\"./pl/_lib/localize\": [\n\t\t502,\n\t\t7,\n\t\t235\n\t],\n\t\"./pl/_lib/localize/\": [\n\t\t502,\n\t\t7,\n\t\t235\n\t],\n\t\"./pl/_lib/localize/index\": [\n\t\t502,\n\t\t7,\n\t\t235\n\t],\n\t\"./pl/_lib/localize/index.js\": [\n\t\t502,\n\t\t7,\n\t\t235\n\t],\n\t\"./pl/_lib/match\": [\n\t\t503,\n\t\t7,\n\t\t70\n\t],\n\t\"./pl/_lib/match/\": [\n\t\t503,\n\t\t7,\n\t\t70\n\t],\n\t\"./pl/_lib/match/index\": [\n\t\t503,\n\t\t7,\n\t\t70\n\t],\n\t\"./pl/_lib/match/index.js\": [\n\t\t503,\n\t\t7,\n\t\t70\n\t],\n\t\"./pl/index\": [\n\t\t912,\n\t\t7,\n\t\t413\n\t],\n\t\"./pl/index.d\": [\n\t\t1071,\n\t\t9,\n\t\t511\n\t],\n\t\"./pl/index.d.ts\": [\n\t\t1071,\n\t\t9,\n\t\t511\n\t],\n\t\"./pl/index.js\": [\n\t\t912,\n\t\t7,\n\t\t413\n\t],\n\t\"./pl/index.js.flow\": [\n\t\t1340,\n\t\t9,\n\t\t847\n\t],\n\t\"./pl/package\": [\n\t\t1072,\n\t\t3,\n\t\t740\n\t],\n\t\"./pl/package.json\": [\n\t\t1072,\n\t\t3,\n\t\t740\n\t],\n\t\"./pt\": [\n\t\t816,\n\t\t9,\n\t\t655\n\t],\n\t\"./pt-BR\": [\n\t\t817,\n\t\t9,\n\t\t654\n\t],\n\t\"./pt-BR/\": [\n\t\t817,\n\t\t9,\n\t\t654\n\t],\n\t\"./pt-BR/_lib/formatDistance\": [\n\t\t509,\n\t\t7,\n\t\t369\n\t],\n\t\"./pt-BR/_lib/formatDistance/\": [\n\t\t509,\n\t\t7,\n\t\t369\n\t],\n\t\"./pt-BR/_lib/formatDistance/index\": [\n\t\t509,\n\t\t7,\n\t\t369\n\t],\n\t\"./pt-BR/_lib/formatDistance/index.js\": [\n\t\t509,\n\t\t7,\n\t\t369\n\t],\n\t\"./pt-BR/_lib/formatLong\": [\n\t\t510,\n\t\t7,\n\t\t157\n\t],\n\t\"./pt-BR/_lib/formatLong/\": [\n\t\t510,\n\t\t7,\n\t\t157\n\t],\n\t\"./pt-BR/_lib/formatLong/index\": [\n\t\t510,\n\t\t7,\n\t\t157\n\t],\n\t\"./pt-BR/_lib/formatLong/index.js\": [\n\t\t510,\n\t\t7,\n\t\t157\n\t],\n\t\"./pt-BR/_lib/formatRelative\": [\n\t\t511,\n\t\t7,\n\t\t370\n\t],\n\t\"./pt-BR/_lib/formatRelative/\": [\n\t\t511,\n\t\t7,\n\t\t370\n\t],\n\t\"./pt-BR/_lib/formatRelative/index\": [\n\t\t511,\n\t\t7,\n\t\t370\n\t],\n\t\"./pt-BR/_lib/formatRelative/index.js\": [\n\t\t511,\n\t\t7,\n\t\t370\n\t],\n\t\"./pt-BR/_lib/localize\": [\n\t\t512,\n\t\t7,\n\t\t236\n\t],\n\t\"./pt-BR/_lib/localize/\": [\n\t\t512,\n\t\t7,\n\t\t236\n\t],\n\t\"./pt-BR/_lib/localize/index\": [\n\t\t512,\n\t\t7,\n\t\t236\n\t],\n\t\"./pt-BR/_lib/localize/index.js\": [\n\t\t512,\n\t\t7,\n\t\t236\n\t],\n\t\"./pt-BR/_lib/match\": [\n\t\t513,\n\t\t7,\n\t\t71\n\t],\n\t\"./pt-BR/_lib/match/\": [\n\t\t513,\n\t\t7,\n\t\t71\n\t],\n\t\"./pt-BR/_lib/match/index\": [\n\t\t513,\n\t\t7,\n\t\t71\n\t],\n\t\"./pt-BR/_lib/match/index.js\": [\n\t\t513,\n\t\t7,\n\t\t71\n\t],\n\t\"./pt-BR/index\": [\n\t\t914,\n\t\t7,\n\t\t478\n\t],\n\t\"./pt-BR/index.d\": [\n\t\t1075,\n\t\t9,\n\t\t585\n\t],\n\t\"./pt-BR/index.d.ts\": [\n\t\t1075,\n\t\t9,\n\t\t585\n\t],\n\t\"./pt-BR/index.js\": [\n\t\t914,\n\t\t7,\n\t\t478\n\t],\n\t\"./pt-BR/index.js.flow\": [\n\t\t1342,\n\t\t9,\n\t\t848\n\t],\n\t\"./pt-BR/package\": [\n\t\t1076,\n\t\t3,\n\t\t741\n\t],\n\t\"./pt-BR/package.json\": [\n\t\t1076,\n\t\t3,\n\t\t741\n\t],\n\t\"./pt/\": [\n\t\t816,\n\t\t9,\n\t\t655\n\t],\n\t\"./pt/_lib/formatDistance\": [\n\t\t504,\n\t\t7,\n\t\t371\n\t],\n\t\"./pt/_lib/formatDistance/\": [\n\t\t504,\n\t\t7,\n\t\t371\n\t],\n\t\"./pt/_lib/formatDistance/index\": [\n\t\t504,\n\t\t7,\n\t\t371\n\t],\n\t\"./pt/_lib/formatDistance/index.js\": [\n\t\t504,\n\t\t7,\n\t\t371\n\t],\n\t\"./pt/_lib/formatLong\": [\n\t\t505,\n\t\t7,\n\t\t158\n\t],\n\t\"./pt/_lib/formatLong/\": [\n\t\t505,\n\t\t7,\n\t\t158\n\t],\n\t\"./pt/_lib/formatLong/index\": [\n\t\t505,\n\t\t7,\n\t\t158\n\t],\n\t\"./pt/_lib/formatLong/index.js\": [\n\t\t505,\n\t\t7,\n\t\t158\n\t],\n\t\"./pt/_lib/formatRelative\": [\n\t\t506,\n\t\t7,\n\t\t372\n\t],\n\t\"./pt/_lib/formatRelative/\": [\n\t\t506,\n\t\t7,\n\t\t372\n\t],\n\t\"./pt/_lib/formatRelative/index\": [\n\t\t506,\n\t\t7,\n\t\t372\n\t],\n\t\"./pt/_lib/formatRelative/index.js\": [\n\t\t506,\n\t\t7,\n\t\t372\n\t],\n\t\"./pt/_lib/localize\": [\n\t\t507,\n\t\t7,\n\t\t237\n\t],\n\t\"./pt/_lib/localize/\": [\n\t\t507,\n\t\t7,\n\t\t237\n\t],\n\t\"./pt/_lib/localize/index\": [\n\t\t507,\n\t\t7,\n\t\t237\n\t],\n\t\"./pt/_lib/localize/index.js\": [\n\t\t507,\n\t\t7,\n\t\t237\n\t],\n\t\"./pt/_lib/match\": [\n\t\t508,\n\t\t7,\n\t\t72\n\t],\n\t\"./pt/_lib/match/\": [\n\t\t508,\n\t\t7,\n\t\t72\n\t],\n\t\"./pt/_lib/match/index\": [\n\t\t508,\n\t\t7,\n\t\t72\n\t],\n\t\"./pt/_lib/match/index.js\": [\n\t\t508,\n\t\t7,\n\t\t72\n\t],\n\t\"./pt/index\": [\n\t\t913,\n\t\t7,\n\t\t479\n\t],\n\t\"./pt/index.d\": [\n\t\t1073,\n\t\t9,\n\t\t586\n\t],\n\t\"./pt/index.d.ts\": [\n\t\t1073,\n\t\t9,\n\t\t586\n\t],\n\t\"./pt/index.js\": [\n\t\t913,\n\t\t7,\n\t\t479\n\t],\n\t\"./pt/index.js.flow\": [\n\t\t1341,\n\t\t9,\n\t\t849\n\t],\n\t\"./pt/package\": [\n\t\t1074,\n\t\t3,\n\t\t742\n\t],\n\t\"./pt/package.json\": [\n\t\t1074,\n\t\t3,\n\t\t742\n\t],\n\t\"./ro\": [\n\t\t818,\n\t\t9,\n\t\t656\n\t],\n\t\"./ro/\": [\n\t\t818,\n\t\t9,\n\t\t656\n\t],\n\t\"./ro/_lib/formatDistance\": [\n\t\t514,\n\t\t7,\n\t\t373\n\t],\n\t\"./ro/_lib/formatDistance/\": [\n\t\t514,\n\t\t7,\n\t\t373\n\t],\n\t\"./ro/_lib/formatDistance/index\": [\n\t\t514,\n\t\t7,\n\t\t373\n\t],\n\t\"./ro/_lib/formatDistance/index.js\": [\n\t\t514,\n\t\t7,\n\t\t373\n\t],\n\t\"./ro/_lib/formatLong\": [\n\t\t515,\n\t\t7,\n\t\t159\n\t],\n\t\"./ro/_lib/formatLong/\": [\n\t\t515,\n\t\t7,\n\t\t159\n\t],\n\t\"./ro/_lib/formatLong/index\": [\n\t\t515,\n\t\t7,\n\t\t159\n\t],\n\t\"./ro/_lib/formatLong/index.js\": [\n\t\t515,\n\t\t7,\n\t\t159\n\t],\n\t\"./ro/_lib/formatRelative\": [\n\t\t516,\n\t\t7,\n\t\t374\n\t],\n\t\"./ro/_lib/formatRelative/\": [\n\t\t516,\n\t\t7,\n\t\t374\n\t],\n\t\"./ro/_lib/formatRelative/index\": [\n\t\t516,\n\t\t7,\n\t\t374\n\t],\n\t\"./ro/_lib/formatRelative/index.js\": [\n\t\t516,\n\t\t7,\n\t\t374\n\t],\n\t\"./ro/_lib/localize\": [\n\t\t517,\n\t\t7,\n\t\t238\n\t],\n\t\"./ro/_lib/localize/\": [\n\t\t517,\n\t\t7,\n\t\t238\n\t],\n\t\"./ro/_lib/localize/index\": [\n\t\t517,\n\t\t7,\n\t\t238\n\t],\n\t\"./ro/_lib/localize/index.js\": [\n\t\t517,\n\t\t7,\n\t\t238\n\t],\n\t\"./ro/_lib/match\": [\n\t\t518,\n\t\t7,\n\t\t73\n\t],\n\t\"./ro/_lib/match/\": [\n\t\t518,\n\t\t7,\n\t\t73\n\t],\n\t\"./ro/_lib/match/index\": [\n\t\t518,\n\t\t7,\n\t\t73\n\t],\n\t\"./ro/_lib/match/index.js\": [\n\t\t518,\n\t\t7,\n\t\t73\n\t],\n\t\"./ro/index\": [\n\t\t915,\n\t\t7,\n\t\t480\n\t],\n\t\"./ro/index.d\": [\n\t\t1077,\n\t\t9,\n\t\t587\n\t],\n\t\"./ro/index.d.ts\": [\n\t\t1077,\n\t\t9,\n\t\t587\n\t],\n\t\"./ro/index.js\": [\n\t\t915,\n\t\t7,\n\t\t480\n\t],\n\t\"./ro/index.js.flow\": [\n\t\t1343,\n\t\t9,\n\t\t850\n\t],\n\t\"./ro/package\": [\n\t\t1078,\n\t\t3,\n\t\t743\n\t],\n\t\"./ro/package.json\": [\n\t\t1078,\n\t\t3,\n\t\t743\n\t],\n\t\"./ru\": [\n\t\t819,\n\t\t9,\n\t\t527\n\t],\n\t\"./ru/\": [\n\t\t819,\n\t\t9,\n\t\t527\n\t],\n\t\"./ru/_lib/formatDistance\": [\n\t\t519,\n\t\t7,\n\t\t375\n\t],\n\t\"./ru/_lib/formatDistance/\": [\n\t\t519,\n\t\t7,\n\t\t375\n\t],\n\t\"./ru/_lib/formatDistance/index\": [\n\t\t519,\n\t\t7,\n\t\t375\n\t],\n\t\"./ru/_lib/formatDistance/index.js\": [\n\t\t519,\n\t\t7,\n\t\t375\n\t],\n\t\"./ru/_lib/formatLong\": [\n\t\t520,\n\t\t7,\n\t\t160\n\t],\n\t\"./ru/_lib/formatLong/\": [\n\t\t520,\n\t\t7,\n\t\t160\n\t],\n\t\"./ru/_lib/formatLong/index\": [\n\t\t520,\n\t\t7,\n\t\t160\n\t],\n\t\"./ru/_lib/formatLong/index.js\": [\n\t\t520,\n\t\t7,\n\t\t160\n\t],\n\t\"./ru/_lib/formatRelative\": [\n\t\t521,\n\t\t7,\n\t\t8\n\t],\n\t\"./ru/_lib/formatRelative/\": [\n\t\t521,\n\t\t7,\n\t\t8\n\t],\n\t\"./ru/_lib/formatRelative/index\": [\n\t\t521,\n\t\t7,\n\t\t8\n\t],\n\t\"./ru/_lib/formatRelative/index.js\": [\n\t\t521,\n\t\t7,\n\t\t8\n\t],\n\t\"./ru/_lib/localize\": [\n\t\t522,\n\t\t7,\n\t\t239\n\t],\n\t\"./ru/_lib/localize/\": [\n\t\t522,\n\t\t7,\n\t\t239\n\t],\n\t\"./ru/_lib/localize/index\": [\n\t\t522,\n\t\t7,\n\t\t239\n\t],\n\t\"./ru/_lib/localize/index.js\": [\n\t\t522,\n\t\t7,\n\t\t239\n\t],\n\t\"./ru/_lib/match\": [\n\t\t523,\n\t\t7,\n\t\t74\n\t],\n\t\"./ru/_lib/match/\": [\n\t\t523,\n\t\t7,\n\t\t74\n\t],\n\t\"./ru/_lib/match/index\": [\n\t\t523,\n\t\t7,\n\t\t74\n\t],\n\t\"./ru/_lib/match/index.js\": [\n\t\t523,\n\t\t7,\n\t\t74\n\t],\n\t\"./ru/index\": [\n\t\t916,\n\t\t7,\n\t\t414\n\t],\n\t\"./ru/index.d\": [\n\t\t1079,\n\t\t9,\n\t\t512\n\t],\n\t\"./ru/index.d.ts\": [\n\t\t1079,\n\t\t9,\n\t\t512\n\t],\n\t\"./ru/index.js\": [\n\t\t916,\n\t\t7,\n\t\t414\n\t],\n\t\"./ru/index.js.flow\": [\n\t\t1344,\n\t\t9,\n\t\t851\n\t],\n\t\"./ru/package\": [\n\t\t1080,\n\t\t3,\n\t\t744\n\t],\n\t\"./ru/package.json\": [\n\t\t1080,\n\t\t3,\n\t\t744\n\t],\n\t\"./sk\": [\n\t\t820,\n\t\t9,\n\t\t528\n\t],\n\t\"./sk/\": [\n\t\t820,\n\t\t9,\n\t\t528\n\t],\n\t\"./sk/_lib/formatDistance\": [\n\t\t524,\n\t\t7,\n\t\t376\n\t],\n\t\"./sk/_lib/formatDistance/\": [\n\t\t524,\n\t\t7,\n\t\t376\n\t],\n\t\"./sk/_lib/formatDistance/index\": [\n\t\t524,\n\t\t7,\n\t\t376\n\t],\n\t\"./sk/_lib/formatDistance/index.js\": [\n\t\t524,\n\t\t7,\n\t\t376\n\t],\n\t\"./sk/_lib/formatLong\": [\n\t\t525,\n\t\t7,\n\t\t161\n\t],\n\t\"./sk/_lib/formatLong/\": [\n\t\t525,\n\t\t7,\n\t\t161\n\t],\n\t\"./sk/_lib/formatLong/index\": [\n\t\t525,\n\t\t7,\n\t\t161\n\t],\n\t\"./sk/_lib/formatLong/index.js\": [\n\t\t525,\n\t\t7,\n\t\t161\n\t],\n\t\"./sk/_lib/formatRelative\": [\n\t\t526,\n\t\t7,\n\t\t9\n\t],\n\t\"./sk/_lib/formatRelative/\": [\n\t\t526,\n\t\t7,\n\t\t9\n\t],\n\t\"./sk/_lib/formatRelative/index\": [\n\t\t526,\n\t\t7,\n\t\t9\n\t],\n\t\"./sk/_lib/formatRelative/index.js\": [\n\t\t526,\n\t\t7,\n\t\t9\n\t],\n\t\"./sk/_lib/localize\": [\n\t\t527,\n\t\t7,\n\t\t240\n\t],\n\t\"./sk/_lib/localize/\": [\n\t\t527,\n\t\t7,\n\t\t240\n\t],\n\t\"./sk/_lib/localize/index\": [\n\t\t527,\n\t\t7,\n\t\t240\n\t],\n\t\"./sk/_lib/localize/index.js\": [\n\t\t527,\n\t\t7,\n\t\t240\n\t],\n\t\"./sk/_lib/match\": [\n\t\t528,\n\t\t7,\n\t\t75\n\t],\n\t\"./sk/_lib/match/\": [\n\t\t528,\n\t\t7,\n\t\t75\n\t],\n\t\"./sk/_lib/match/index\": [\n\t\t528,\n\t\t7,\n\t\t75\n\t],\n\t\"./sk/_lib/match/index.js\": [\n\t\t528,\n\t\t7,\n\t\t75\n\t],\n\t\"./sk/index\": [\n\t\t917,\n\t\t7,\n\t\t415\n\t],\n\t\"./sk/index.d\": [\n\t\t1081,\n\t\t9,\n\t\t513\n\t],\n\t\"./sk/index.d.ts\": [\n\t\t1081,\n\t\t9,\n\t\t513\n\t],\n\t\"./sk/index.js\": [\n\t\t917,\n\t\t7,\n\t\t415\n\t],\n\t\"./sk/index.js.flow\": [\n\t\t1345,\n\t\t9,\n\t\t852\n\t],\n\t\"./sk/package\": [\n\t\t1082,\n\t\t3,\n\t\t745\n\t],\n\t\"./sk/package.json\": [\n\t\t1082,\n\t\t3,\n\t\t745\n\t],\n\t\"./sl\": [\n\t\t821,\n\t\t9,\n\t\t657\n\t],\n\t\"./sl/\": [\n\t\t821,\n\t\t9,\n\t\t657\n\t],\n\t\"./sl/_lib/formatDistance\": [\n\t\t529,\n\t\t7,\n\t\t377\n\t],\n\t\"./sl/_lib/formatDistance/\": [\n\t\t529,\n\t\t7,\n\t\t377\n\t],\n\t\"./sl/_lib/formatDistance/index\": [\n\t\t529,\n\t\t7,\n\t\t377\n\t],\n\t\"./sl/_lib/formatDistance/index.js\": [\n\t\t529,\n\t\t7,\n\t\t377\n\t],\n\t\"./sl/_lib/formatLong\": [\n\t\t530,\n\t\t7,\n\t\t162\n\t],\n\t\"./sl/_lib/formatLong/\": [\n\t\t530,\n\t\t7,\n\t\t162\n\t],\n\t\"./sl/_lib/formatLong/index\": [\n\t\t530,\n\t\t7,\n\t\t162\n\t],\n\t\"./sl/_lib/formatLong/index.js\": [\n\t\t530,\n\t\t7,\n\t\t162\n\t],\n\t\"./sl/_lib/formatRelative\": [\n\t\t531,\n\t\t7,\n\t\t378\n\t],\n\t\"./sl/_lib/formatRelative/\": [\n\t\t531,\n\t\t7,\n\t\t378\n\t],\n\t\"./sl/_lib/formatRelative/index\": [\n\t\t531,\n\t\t7,\n\t\t378\n\t],\n\t\"./sl/_lib/formatRelative/index.js\": [\n\t\t531,\n\t\t7,\n\t\t378\n\t],\n\t\"./sl/_lib/localize\": [\n\t\t532,\n\t\t7,\n\t\t241\n\t],\n\t\"./sl/_lib/localize/\": [\n\t\t532,\n\t\t7,\n\t\t241\n\t],\n\t\"./sl/_lib/localize/index\": [\n\t\t532,\n\t\t7,\n\t\t241\n\t],\n\t\"./sl/_lib/localize/index.js\": [\n\t\t532,\n\t\t7,\n\t\t241\n\t],\n\t\"./sl/_lib/match\": [\n\t\t533,\n\t\t7,\n\t\t76\n\t],\n\t\"./sl/_lib/match/\": [\n\t\t533,\n\t\t7,\n\t\t76\n\t],\n\t\"./sl/_lib/match/index\": [\n\t\t533,\n\t\t7,\n\t\t76\n\t],\n\t\"./sl/_lib/match/index.js\": [\n\t\t533,\n\t\t7,\n\t\t76\n\t],\n\t\"./sl/index\": [\n\t\t918,\n\t\t7,\n\t\t481\n\t],\n\t\"./sl/index.d\": [\n\t\t1083,\n\t\t9,\n\t\t588\n\t],\n\t\"./sl/index.d.ts\": [\n\t\t1083,\n\t\t9,\n\t\t588\n\t],\n\t\"./sl/index.js\": [\n\t\t918,\n\t\t7,\n\t\t481\n\t],\n\t\"./sl/index.js.flow\": [\n\t\t1346,\n\t\t9,\n\t\t853\n\t],\n\t\"./sl/package\": [\n\t\t1084,\n\t\t3,\n\t\t746\n\t],\n\t\"./sl/package.json\": [\n\t\t1084,\n\t\t3,\n\t\t746\n\t],\n\t\"./sq\": [\n\t\t822,\n\t\t9,\n\t\t658\n\t],\n\t\"./sq/\": [\n\t\t822,\n\t\t9,\n\t\t658\n\t],\n\t\"./sq/_lib/formatDistance\": [\n\t\t534,\n\t\t7,\n\t\t379\n\t],\n\t\"./sq/_lib/formatDistance/\": [\n\t\t534,\n\t\t7,\n\t\t379\n\t],\n\t\"./sq/_lib/formatDistance/index\": [\n\t\t534,\n\t\t7,\n\t\t379\n\t],\n\t\"./sq/_lib/formatDistance/index.js\": [\n\t\t534,\n\t\t7,\n\t\t379\n\t],\n\t\"./sq/_lib/formatLong\": [\n\t\t535,\n\t\t7,\n\t\t163\n\t],\n\t\"./sq/_lib/formatLong/\": [\n\t\t535,\n\t\t7,\n\t\t163\n\t],\n\t\"./sq/_lib/formatLong/index\": [\n\t\t535,\n\t\t7,\n\t\t163\n\t],\n\t\"./sq/_lib/formatLong/index.js\": [\n\t\t535,\n\t\t7,\n\t\t163\n\t],\n\t\"./sq/_lib/formatRelative\": [\n\t\t536,\n\t\t7,\n\t\t380\n\t],\n\t\"./sq/_lib/formatRelative/\": [\n\t\t536,\n\t\t7,\n\t\t380\n\t],\n\t\"./sq/_lib/formatRelative/index\": [\n\t\t536,\n\t\t7,\n\t\t380\n\t],\n\t\"./sq/_lib/formatRelative/index.js\": [\n\t\t536,\n\t\t7,\n\t\t380\n\t],\n\t\"./sq/_lib/localize\": [\n\t\t537,\n\t\t7,\n\t\t242\n\t],\n\t\"./sq/_lib/localize/\": [\n\t\t537,\n\t\t7,\n\t\t242\n\t],\n\t\"./sq/_lib/localize/index\": [\n\t\t537,\n\t\t7,\n\t\t242\n\t],\n\t\"./sq/_lib/localize/index.js\": [\n\t\t537,\n\t\t7,\n\t\t242\n\t],\n\t\"./sq/_lib/match\": [\n\t\t538,\n\t\t7,\n\t\t77\n\t],\n\t\"./sq/_lib/match/\": [\n\t\t538,\n\t\t7,\n\t\t77\n\t],\n\t\"./sq/_lib/match/index\": [\n\t\t538,\n\t\t7,\n\t\t77\n\t],\n\t\"./sq/_lib/match/index.js\": [\n\t\t538,\n\t\t7,\n\t\t77\n\t],\n\t\"./sq/index\": [\n\t\t919,\n\t\t7,\n\t\t482\n\t],\n\t\"./sq/index.d\": [\n\t\t1085,\n\t\t9,\n\t\t589\n\t],\n\t\"./sq/index.d.ts\": [\n\t\t1085,\n\t\t9,\n\t\t589\n\t],\n\t\"./sq/index.js\": [\n\t\t919,\n\t\t7,\n\t\t482\n\t],\n\t\"./sq/index.js.flow\": [\n\t\t1347,\n\t\t9,\n\t\t854\n\t],\n\t\"./sq/package\": [\n\t\t1086,\n\t\t3,\n\t\t747\n\t],\n\t\"./sq/package.json\": [\n\t\t1086,\n\t\t3,\n\t\t747\n\t],\n\t\"./sr\": [\n\t\t823,\n\t\t9,\n\t\t660\n\t],\n\t\"./sr-Latn\": [\n\t\t824,\n\t\t9,\n\t\t659\n\t],\n\t\"./sr-Latn/\": [\n\t\t824,\n\t\t9,\n\t\t659\n\t],\n\t\"./sr-Latn/_lib/formatDistance\": [\n\t\t544,\n\t\t7,\n\t\t381\n\t],\n\t\"./sr-Latn/_lib/formatDistance/\": [\n\t\t544,\n\t\t7,\n\t\t381\n\t],\n\t\"./sr-Latn/_lib/formatDistance/index\": [\n\t\t544,\n\t\t7,\n\t\t381\n\t],\n\t\"./sr-Latn/_lib/formatDistance/index.js\": [\n\t\t544,\n\t\t7,\n\t\t381\n\t],\n\t\"./sr-Latn/_lib/formatLong\": [\n\t\t545,\n\t\t7,\n\t\t164\n\t],\n\t\"./sr-Latn/_lib/formatLong/\": [\n\t\t545,\n\t\t7,\n\t\t164\n\t],\n\t\"./sr-Latn/_lib/formatLong/index\": [\n\t\t545,\n\t\t7,\n\t\t164\n\t],\n\t\"./sr-Latn/_lib/formatLong/index.js\": [\n\t\t545,\n\t\t7,\n\t\t164\n\t],\n\t\"./sr-Latn/_lib/formatRelative\": [\n\t\t546,\n\t\t7,\n\t\t382\n\t],\n\t\"./sr-Latn/_lib/formatRelative/\": [\n\t\t546,\n\t\t7,\n\t\t382\n\t],\n\t\"./sr-Latn/_lib/formatRelative/index\": [\n\t\t546,\n\t\t7,\n\t\t382\n\t],\n\t\"./sr-Latn/_lib/formatRelative/index.js\": [\n\t\t546,\n\t\t7,\n\t\t382\n\t],\n\t\"./sr-Latn/_lib/localize\": [\n\t\t547,\n\t\t7,\n\t\t243\n\t],\n\t\"./sr-Latn/_lib/localize/\": [\n\t\t547,\n\t\t7,\n\t\t243\n\t],\n\t\"./sr-Latn/_lib/localize/index\": [\n\t\t547,\n\t\t7,\n\t\t243\n\t],\n\t\"./sr-Latn/_lib/localize/index.js\": [\n\t\t547,\n\t\t7,\n\t\t243\n\t],\n\t\"./sr-Latn/_lib/match\": [\n\t\t548,\n\t\t7,\n\t\t78\n\t],\n\t\"./sr-Latn/_lib/match/\": [\n\t\t548,\n\t\t7,\n\t\t78\n\t],\n\t\"./sr-Latn/_lib/match/index\": [\n\t\t548,\n\t\t7,\n\t\t78\n\t],\n\t\"./sr-Latn/_lib/match/index.js\": [\n\t\t548,\n\t\t7,\n\t\t78\n\t],\n\t\"./sr-Latn/index\": [\n\t\t921,\n\t\t7,\n\t\t483\n\t],\n\t\"./sr-Latn/index.d\": [\n\t\t1089,\n\t\t9,\n\t\t590\n\t],\n\t\"./sr-Latn/index.d.ts\": [\n\t\t1089,\n\t\t9,\n\t\t590\n\t],\n\t\"./sr-Latn/index.js\": [\n\t\t921,\n\t\t7,\n\t\t483\n\t],\n\t\"./sr-Latn/index.js.flow\": [\n\t\t1349,\n\t\t9,\n\t\t855\n\t],\n\t\"./sr-Latn/package\": [\n\t\t1090,\n\t\t3,\n\t\t748\n\t],\n\t\"./sr-Latn/package.json\": [\n\t\t1090,\n\t\t3,\n\t\t748\n\t],\n\t\"./sr/\": [\n\t\t823,\n\t\t9,\n\t\t660\n\t],\n\t\"./sr/_lib/formatDistance\": [\n\t\t539,\n\t\t7,\n\t\t383\n\t],\n\t\"./sr/_lib/formatDistance/\": [\n\t\t539,\n\t\t7,\n\t\t383\n\t],\n\t\"./sr/_lib/formatDistance/index\": [\n\t\t539,\n\t\t7,\n\t\t383\n\t],\n\t\"./sr/_lib/formatDistance/index.js\": [\n\t\t539,\n\t\t7,\n\t\t383\n\t],\n\t\"./sr/_lib/formatLong\": [\n\t\t540,\n\t\t7,\n\t\t165\n\t],\n\t\"./sr/_lib/formatLong/\": [\n\t\t540,\n\t\t7,\n\t\t165\n\t],\n\t\"./sr/_lib/formatLong/index\": [\n\t\t540,\n\t\t7,\n\t\t165\n\t],\n\t\"./sr/_lib/formatLong/index.js\": [\n\t\t540,\n\t\t7,\n\t\t165\n\t],\n\t\"./sr/_lib/formatRelative\": [\n\t\t541,\n\t\t7,\n\t\t384\n\t],\n\t\"./sr/_lib/formatRelative/\": [\n\t\t541,\n\t\t7,\n\t\t384\n\t],\n\t\"./sr/_lib/formatRelative/index\": [\n\t\t541,\n\t\t7,\n\t\t384\n\t],\n\t\"./sr/_lib/formatRelative/index.js\": [\n\t\t541,\n\t\t7,\n\t\t384\n\t],\n\t\"./sr/_lib/localize\": [\n\t\t542,\n\t\t7,\n\t\t244\n\t],\n\t\"./sr/_lib/localize/\": [\n\t\t542,\n\t\t7,\n\t\t244\n\t],\n\t\"./sr/_lib/localize/index\": [\n\t\t542,\n\t\t7,\n\t\t244\n\t],\n\t\"./sr/_lib/localize/index.js\": [\n\t\t542,\n\t\t7,\n\t\t244\n\t],\n\t\"./sr/_lib/match\": [\n\t\t543,\n\t\t7,\n\t\t79\n\t],\n\t\"./sr/_lib/match/\": [\n\t\t543,\n\t\t7,\n\t\t79\n\t],\n\t\"./sr/_lib/match/index\": [\n\t\t543,\n\t\t7,\n\t\t79\n\t],\n\t\"./sr/_lib/match/index.js\": [\n\t\t543,\n\t\t7,\n\t\t79\n\t],\n\t\"./sr/index\": [\n\t\t920,\n\t\t7,\n\t\t484\n\t],\n\t\"./sr/index.d\": [\n\t\t1087,\n\t\t9,\n\t\t591\n\t],\n\t\"./sr/index.d.ts\": [\n\t\t1087,\n\t\t9,\n\t\t591\n\t],\n\t\"./sr/index.js\": [\n\t\t920,\n\t\t7,\n\t\t484\n\t],\n\t\"./sr/index.js.flow\": [\n\t\t1348,\n\t\t9,\n\t\t856\n\t],\n\t\"./sr/package\": [\n\t\t1088,\n\t\t3,\n\t\t749\n\t],\n\t\"./sr/package.json\": [\n\t\t1088,\n\t\t3,\n\t\t749\n\t],\n\t\"./sv\": [\n\t\t825,\n\t\t9,\n\t\t661\n\t],\n\t\"./sv/\": [\n\t\t825,\n\t\t9,\n\t\t661\n\t],\n\t\"./sv/_lib/formatDistance\": [\n\t\t549,\n\t\t7,\n\t\t385\n\t],\n\t\"./sv/_lib/formatDistance/\": [\n\t\t549,\n\t\t7,\n\t\t385\n\t],\n\t\"./sv/_lib/formatDistance/index\": [\n\t\t549,\n\t\t7,\n\t\t385\n\t],\n\t\"./sv/_lib/formatDistance/index.js\": [\n\t\t549,\n\t\t7,\n\t\t385\n\t],\n\t\"./sv/_lib/formatLong\": [\n\t\t550,\n\t\t7,\n\t\t166\n\t],\n\t\"./sv/_lib/formatLong/\": [\n\t\t550,\n\t\t7,\n\t\t166\n\t],\n\t\"./sv/_lib/formatLong/index\": [\n\t\t550,\n\t\t7,\n\t\t166\n\t],\n\t\"./sv/_lib/formatLong/index.js\": [\n\t\t550,\n\t\t7,\n\t\t166\n\t],\n\t\"./sv/_lib/formatRelative\": [\n\t\t551,\n\t\t7,\n\t\t386\n\t],\n\t\"./sv/_lib/formatRelative/\": [\n\t\t551,\n\t\t7,\n\t\t386\n\t],\n\t\"./sv/_lib/formatRelative/index\": [\n\t\t551,\n\t\t7,\n\t\t386\n\t],\n\t\"./sv/_lib/formatRelative/index.js\": [\n\t\t551,\n\t\t7,\n\t\t386\n\t],\n\t\"./sv/_lib/localize\": [\n\t\t552,\n\t\t7,\n\t\t245\n\t],\n\t\"./sv/_lib/localize/\": [\n\t\t552,\n\t\t7,\n\t\t245\n\t],\n\t\"./sv/_lib/localize/index\": [\n\t\t552,\n\t\t7,\n\t\t245\n\t],\n\t\"./sv/_lib/localize/index.js\": [\n\t\t552,\n\t\t7,\n\t\t245\n\t],\n\t\"./sv/_lib/match\": [\n\t\t553,\n\t\t7,\n\t\t80\n\t],\n\t\"./sv/_lib/match/\": [\n\t\t553,\n\t\t7,\n\t\t80\n\t],\n\t\"./sv/_lib/match/index\": [\n\t\t553,\n\t\t7,\n\t\t80\n\t],\n\t\"./sv/_lib/match/index.js\": [\n\t\t553,\n\t\t7,\n\t\t80\n\t],\n\t\"./sv/index\": [\n\t\t922,\n\t\t7,\n\t\t485\n\t],\n\t\"./sv/index.d\": [\n\t\t1091,\n\t\t9,\n\t\t592\n\t],\n\t\"./sv/index.d.ts\": [\n\t\t1091,\n\t\t9,\n\t\t592\n\t],\n\t\"./sv/index.js\": [\n\t\t922,\n\t\t7,\n\t\t485\n\t],\n\t\"./sv/index.js.flow\": [\n\t\t1350,\n\t\t9,\n\t\t857\n\t],\n\t\"./sv/package\": [\n\t\t1092,\n\t\t3,\n\t\t750\n\t],\n\t\"./sv/package.json\": [\n\t\t1092,\n\t\t3,\n\t\t750\n\t],\n\t\"./ta\": [\n\t\t826,\n\t\t9,\n\t\t662\n\t],\n\t\"./ta/\": [\n\t\t826,\n\t\t9,\n\t\t662\n\t],\n\t\"./ta/_lib/formatDistance\": [\n\t\t554,\n\t\t7,\n\t\t387\n\t],\n\t\"./ta/_lib/formatDistance/\": [\n\t\t554,\n\t\t7,\n\t\t387\n\t],\n\t\"./ta/_lib/formatDistance/index\": [\n\t\t554,\n\t\t7,\n\t\t387\n\t],\n\t\"./ta/_lib/formatDistance/index.js\": [\n\t\t554,\n\t\t7,\n\t\t387\n\t],\n\t\"./ta/_lib/formatLong\": [\n\t\t555,\n\t\t7,\n\t\t167\n\t],\n\t\"./ta/_lib/formatLong/\": [\n\t\t555,\n\t\t7,\n\t\t167\n\t],\n\t\"./ta/_lib/formatLong/index\": [\n\t\t555,\n\t\t7,\n\t\t167\n\t],\n\t\"./ta/_lib/formatLong/index.js\": [\n\t\t555,\n\t\t7,\n\t\t167\n\t],\n\t\"./ta/_lib/formatRelative\": [\n\t\t556,\n\t\t7,\n\t\t388\n\t],\n\t\"./ta/_lib/formatRelative/\": [\n\t\t556,\n\t\t7,\n\t\t388\n\t],\n\t\"./ta/_lib/formatRelative/index\": [\n\t\t556,\n\t\t7,\n\t\t388\n\t],\n\t\"./ta/_lib/formatRelative/index.js\": [\n\t\t556,\n\t\t7,\n\t\t388\n\t],\n\t\"./ta/_lib/localize\": [\n\t\t557,\n\t\t7,\n\t\t246\n\t],\n\t\"./ta/_lib/localize/\": [\n\t\t557,\n\t\t7,\n\t\t246\n\t],\n\t\"./ta/_lib/localize/index\": [\n\t\t557,\n\t\t7,\n\t\t246\n\t],\n\t\"./ta/_lib/localize/index.js\": [\n\t\t557,\n\t\t7,\n\t\t246\n\t],\n\t\"./ta/_lib/match\": [\n\t\t558,\n\t\t7,\n\t\t81\n\t],\n\t\"./ta/_lib/match/\": [\n\t\t558,\n\t\t7,\n\t\t81\n\t],\n\t\"./ta/_lib/match/index\": [\n\t\t558,\n\t\t7,\n\t\t81\n\t],\n\t\"./ta/_lib/match/index.js\": [\n\t\t558,\n\t\t7,\n\t\t81\n\t],\n\t\"./ta/index\": [\n\t\t923,\n\t\t7,\n\t\t486\n\t],\n\t\"./ta/index.d\": [\n\t\t1093,\n\t\t9,\n\t\t593\n\t],\n\t\"./ta/index.d.ts\": [\n\t\t1093,\n\t\t9,\n\t\t593\n\t],\n\t\"./ta/index.js\": [\n\t\t923,\n\t\t7,\n\t\t486\n\t],\n\t\"./ta/index.js.flow\": [\n\t\t1351,\n\t\t9,\n\t\t858\n\t],\n\t\"./ta/package\": [\n\t\t1094,\n\t\t3,\n\t\t751\n\t],\n\t\"./ta/package.json\": [\n\t\t1094,\n\t\t3,\n\t\t751\n\t],\n\t\"./te\": [\n\t\t827,\n\t\t9,\n\t\t663\n\t],\n\t\"./te/\": [\n\t\t827,\n\t\t9,\n\t\t663\n\t],\n\t\"./te/_lib/formatDistance\": [\n\t\t559,\n\t\t7,\n\t\t389\n\t],\n\t\"./te/_lib/formatDistance/\": [\n\t\t559,\n\t\t7,\n\t\t389\n\t],\n\t\"./te/_lib/formatDistance/index\": [\n\t\t559,\n\t\t7,\n\t\t389\n\t],\n\t\"./te/_lib/formatDistance/index.js\": [\n\t\t559,\n\t\t7,\n\t\t389\n\t],\n\t\"./te/_lib/formatLong\": [\n\t\t560,\n\t\t7,\n\t\t168\n\t],\n\t\"./te/_lib/formatLong/\": [\n\t\t560,\n\t\t7,\n\t\t168\n\t],\n\t\"./te/_lib/formatLong/index\": [\n\t\t560,\n\t\t7,\n\t\t168\n\t],\n\t\"./te/_lib/formatLong/index.js\": [\n\t\t560,\n\t\t7,\n\t\t168\n\t],\n\t\"./te/_lib/formatRelative\": [\n\t\t561,\n\t\t7,\n\t\t390\n\t],\n\t\"./te/_lib/formatRelative/\": [\n\t\t561,\n\t\t7,\n\t\t390\n\t],\n\t\"./te/_lib/formatRelative/index\": [\n\t\t561,\n\t\t7,\n\t\t390\n\t],\n\t\"./te/_lib/formatRelative/index.js\": [\n\t\t561,\n\t\t7,\n\t\t390\n\t],\n\t\"./te/_lib/localize\": [\n\t\t562,\n\t\t7,\n\t\t247\n\t],\n\t\"./te/_lib/localize/\": [\n\t\t562,\n\t\t7,\n\t\t247\n\t],\n\t\"./te/_lib/localize/index\": [\n\t\t562,\n\t\t7,\n\t\t247\n\t],\n\t\"./te/_lib/localize/index.js\": [\n\t\t562,\n\t\t7,\n\t\t247\n\t],\n\t\"./te/_lib/match\": [\n\t\t563,\n\t\t7,\n\t\t82\n\t],\n\t\"./te/_lib/match/\": [\n\t\t563,\n\t\t7,\n\t\t82\n\t],\n\t\"./te/_lib/match/index\": [\n\t\t563,\n\t\t7,\n\t\t82\n\t],\n\t\"./te/_lib/match/index.js\": [\n\t\t563,\n\t\t7,\n\t\t82\n\t],\n\t\"./te/index\": [\n\t\t924,\n\t\t7,\n\t\t487\n\t],\n\t\"./te/index.d\": [\n\t\t1095,\n\t\t9,\n\t\t594\n\t],\n\t\"./te/index.d.ts\": [\n\t\t1095,\n\t\t9,\n\t\t594\n\t],\n\t\"./te/index.js\": [\n\t\t924,\n\t\t7,\n\t\t487\n\t],\n\t\"./te/index.js.flow\": [\n\t\t1352,\n\t\t9,\n\t\t859\n\t],\n\t\"./te/package\": [\n\t\t1096,\n\t\t3,\n\t\t752\n\t],\n\t\"./te/package.json\": [\n\t\t1096,\n\t\t3,\n\t\t752\n\t],\n\t\"./th\": [\n\t\t828,\n\t\t9,\n\t\t664\n\t],\n\t\"./th/\": [\n\t\t828,\n\t\t9,\n\t\t664\n\t],\n\t\"./th/_lib/formatDistance\": [\n\t\t564,\n\t\t7,\n\t\t391\n\t],\n\t\"./th/_lib/formatDistance/\": [\n\t\t564,\n\t\t7,\n\t\t391\n\t],\n\t\"./th/_lib/formatDistance/index\": [\n\t\t564,\n\t\t7,\n\t\t391\n\t],\n\t\"./th/_lib/formatDistance/index.js\": [\n\t\t564,\n\t\t7,\n\t\t391\n\t],\n\t\"./th/_lib/formatLong\": [\n\t\t565,\n\t\t7,\n\t\t169\n\t],\n\t\"./th/_lib/formatLong/\": [\n\t\t565,\n\t\t7,\n\t\t169\n\t],\n\t\"./th/_lib/formatLong/index\": [\n\t\t565,\n\t\t7,\n\t\t169\n\t],\n\t\"./th/_lib/formatLong/index.js\": [\n\t\t565,\n\t\t7,\n\t\t169\n\t],\n\t\"./th/_lib/formatRelative\": [\n\t\t566,\n\t\t7,\n\t\t392\n\t],\n\t\"./th/_lib/formatRelative/\": [\n\t\t566,\n\t\t7,\n\t\t392\n\t],\n\t\"./th/_lib/formatRelative/index\": [\n\t\t566,\n\t\t7,\n\t\t392\n\t],\n\t\"./th/_lib/formatRelative/index.js\": [\n\t\t566,\n\t\t7,\n\t\t392\n\t],\n\t\"./th/_lib/localize\": [\n\t\t567,\n\t\t7,\n\t\t248\n\t],\n\t\"./th/_lib/localize/\": [\n\t\t567,\n\t\t7,\n\t\t248\n\t],\n\t\"./th/_lib/localize/index\": [\n\t\t567,\n\t\t7,\n\t\t248\n\t],\n\t\"./th/_lib/localize/index.js\": [\n\t\t567,\n\t\t7,\n\t\t248\n\t],\n\t\"./th/_lib/match\": [\n\t\t568,\n\t\t7,\n\t\t83\n\t],\n\t\"./th/_lib/match/\": [\n\t\t568,\n\t\t7,\n\t\t83\n\t],\n\t\"./th/_lib/match/index\": [\n\t\t568,\n\t\t7,\n\t\t83\n\t],\n\t\"./th/_lib/match/index.js\": [\n\t\t568,\n\t\t7,\n\t\t83\n\t],\n\t\"./th/index\": [\n\t\t925,\n\t\t7,\n\t\t488\n\t],\n\t\"./th/index.d\": [\n\t\t1097,\n\t\t9,\n\t\t595\n\t],\n\t\"./th/index.d.ts\": [\n\t\t1097,\n\t\t9,\n\t\t595\n\t],\n\t\"./th/index.js\": [\n\t\t925,\n\t\t7,\n\t\t488\n\t],\n\t\"./th/index.js.flow\": [\n\t\t1353,\n\t\t9,\n\t\t860\n\t],\n\t\"./th/package\": [\n\t\t1098,\n\t\t3,\n\t\t753\n\t],\n\t\"./th/package.json\": [\n\t\t1098,\n\t\t3,\n\t\t753\n\t],\n\t\"./tr\": [\n\t\t829,\n\t\t9,\n\t\t665\n\t],\n\t\"./tr/\": [\n\t\t829,\n\t\t9,\n\t\t665\n\t],\n\t\"./tr/_lib/formatDistance\": [\n\t\t569,\n\t\t7,\n\t\t393\n\t],\n\t\"./tr/_lib/formatDistance/\": [\n\t\t569,\n\t\t7,\n\t\t393\n\t],\n\t\"./tr/_lib/formatDistance/index\": [\n\t\t569,\n\t\t7,\n\t\t393\n\t],\n\t\"./tr/_lib/formatDistance/index.js\": [\n\t\t569,\n\t\t7,\n\t\t393\n\t],\n\t\"./tr/_lib/formatLong\": [\n\t\t570,\n\t\t7,\n\t\t170\n\t],\n\t\"./tr/_lib/formatLong/\": [\n\t\t570,\n\t\t7,\n\t\t170\n\t],\n\t\"./tr/_lib/formatLong/index\": [\n\t\t570,\n\t\t7,\n\t\t170\n\t],\n\t\"./tr/_lib/formatLong/index.js\": [\n\t\t570,\n\t\t7,\n\t\t170\n\t],\n\t\"./tr/_lib/formatRelative\": [\n\t\t571,\n\t\t7,\n\t\t394\n\t],\n\t\"./tr/_lib/formatRelative/\": [\n\t\t571,\n\t\t7,\n\t\t394\n\t],\n\t\"./tr/_lib/formatRelative/index\": [\n\t\t571,\n\t\t7,\n\t\t394\n\t],\n\t\"./tr/_lib/formatRelative/index.js\": [\n\t\t571,\n\t\t7,\n\t\t394\n\t],\n\t\"./tr/_lib/localize\": [\n\t\t572,\n\t\t7,\n\t\t249\n\t],\n\t\"./tr/_lib/localize/\": [\n\t\t572,\n\t\t7,\n\t\t249\n\t],\n\t\"./tr/_lib/localize/index\": [\n\t\t572,\n\t\t7,\n\t\t249\n\t],\n\t\"./tr/_lib/localize/index.js\": [\n\t\t572,\n\t\t7,\n\t\t249\n\t],\n\t\"./tr/_lib/match\": [\n\t\t573,\n\t\t7,\n\t\t84\n\t],\n\t\"./tr/_lib/match/\": [\n\t\t573,\n\t\t7,\n\t\t84\n\t],\n\t\"./tr/_lib/match/index\": [\n\t\t573,\n\t\t7,\n\t\t84\n\t],\n\t\"./tr/_lib/match/index.js\": [\n\t\t573,\n\t\t7,\n\t\t84\n\t],\n\t\"./tr/index\": [\n\t\t926,\n\t\t7,\n\t\t489\n\t],\n\t\"./tr/index.d\": [\n\t\t1099,\n\t\t9,\n\t\t596\n\t],\n\t\"./tr/index.d.ts\": [\n\t\t1099,\n\t\t9,\n\t\t596\n\t],\n\t\"./tr/index.js\": [\n\t\t926,\n\t\t7,\n\t\t489\n\t],\n\t\"./tr/index.js.flow\": [\n\t\t1354,\n\t\t9,\n\t\t861\n\t],\n\t\"./tr/index.ts.flow\": [\n\t\t1355,\n\t\t9,\n\t\t862\n\t],\n\t\"./tr/package\": [\n\t\t1100,\n\t\t3,\n\t\t754\n\t],\n\t\"./tr/package.json\": [\n\t\t1100,\n\t\t3,\n\t\t754\n\t],\n\t\"./types\": [\n\t\t1101,\n\t\t7,\n\t\t671\n\t],\n\t\"./types.js\": [\n\t\t1101,\n\t\t7,\n\t\t671\n\t],\n\t\"./ug\": [\n\t\t830,\n\t\t9,\n\t\t666\n\t],\n\t\"./ug/\": [\n\t\t830,\n\t\t9,\n\t\t666\n\t],\n\t\"./ug/_lib/formatDistance\": [\n\t\t574,\n\t\t7,\n\t\t395\n\t],\n\t\"./ug/_lib/formatDistance/\": [\n\t\t574,\n\t\t7,\n\t\t395\n\t],\n\t\"./ug/_lib/formatDistance/index\": [\n\t\t574,\n\t\t7,\n\t\t395\n\t],\n\t\"./ug/_lib/formatDistance/index.js\": [\n\t\t574,\n\t\t7,\n\t\t395\n\t],\n\t\"./ug/_lib/formatLong\": [\n\t\t575,\n\t\t7,\n\t\t171\n\t],\n\t\"./ug/_lib/formatLong/\": [\n\t\t575,\n\t\t7,\n\t\t171\n\t],\n\t\"./ug/_lib/formatLong/index\": [\n\t\t575,\n\t\t7,\n\t\t171\n\t],\n\t\"./ug/_lib/formatLong/index.js\": [\n\t\t575,\n\t\t7,\n\t\t171\n\t],\n\t\"./ug/_lib/formatRelative\": [\n\t\t576,\n\t\t7,\n\t\t396\n\t],\n\t\"./ug/_lib/formatRelative/\": [\n\t\t576,\n\t\t7,\n\t\t396\n\t],\n\t\"./ug/_lib/formatRelative/index\": [\n\t\t576,\n\t\t7,\n\t\t396\n\t],\n\t\"./ug/_lib/formatRelative/index.js\": [\n\t\t576,\n\t\t7,\n\t\t396\n\t],\n\t\"./ug/_lib/localize\": [\n\t\t577,\n\t\t7,\n\t\t250\n\t],\n\t\"./ug/_lib/localize/\": [\n\t\t577,\n\t\t7,\n\t\t250\n\t],\n\t\"./ug/_lib/localize/index\": [\n\t\t577,\n\t\t7,\n\t\t250\n\t],\n\t\"./ug/_lib/localize/index.js\": [\n\t\t577,\n\t\t7,\n\t\t250\n\t],\n\t\"./ug/_lib/match\": [\n\t\t578,\n\t\t7,\n\t\t85\n\t],\n\t\"./ug/_lib/match/\": [\n\t\t578,\n\t\t7,\n\t\t85\n\t],\n\t\"./ug/_lib/match/index\": [\n\t\t578,\n\t\t7,\n\t\t85\n\t],\n\t\"./ug/_lib/match/index.js\": [\n\t\t578,\n\t\t7,\n\t\t85\n\t],\n\t\"./ug/index\": [\n\t\t927,\n\t\t7,\n\t\t490\n\t],\n\t\"./ug/index.d\": [\n\t\t1102,\n\t\t9,\n\t\t597\n\t],\n\t\"./ug/index.d.ts\": [\n\t\t1102,\n\t\t9,\n\t\t597\n\t],\n\t\"./ug/index.js\": [\n\t\t927,\n\t\t7,\n\t\t490\n\t],\n\t\"./ug/index.js.flow\": [\n\t\t1356,\n\t\t9,\n\t\t863\n\t],\n\t\"./ug/package\": [\n\t\t1103,\n\t\t3,\n\t\t755\n\t],\n\t\"./ug/package.json\": [\n\t\t1103,\n\t\t3,\n\t\t755\n\t],\n\t\"./uk\": [\n\t\t831,\n\t\t9,\n\t\t529\n\t],\n\t\"./uk/\": [\n\t\t831,\n\t\t9,\n\t\t529\n\t],\n\t\"./uk/_lib/formatDistance\": [\n\t\t579,\n\t\t7,\n\t\t397\n\t],\n\t\"./uk/_lib/formatDistance/\": [\n\t\t579,\n\t\t7,\n\t\t397\n\t],\n\t\"./uk/_lib/formatDistance/index\": [\n\t\t579,\n\t\t7,\n\t\t397\n\t],\n\t\"./uk/_lib/formatDistance/index.js\": [\n\t\t579,\n\t\t7,\n\t\t397\n\t],\n\t\"./uk/_lib/formatLong\": [\n\t\t580,\n\t\t7,\n\t\t172\n\t],\n\t\"./uk/_lib/formatLong/\": [\n\t\t580,\n\t\t7,\n\t\t172\n\t],\n\t\"./uk/_lib/formatLong/index\": [\n\t\t580,\n\t\t7,\n\t\t172\n\t],\n\t\"./uk/_lib/formatLong/index.js\": [\n\t\t580,\n\t\t7,\n\t\t172\n\t],\n\t\"./uk/_lib/formatRelative\": [\n\t\t581,\n\t\t7,\n\t\t10\n\t],\n\t\"./uk/_lib/formatRelative/\": [\n\t\t581,\n\t\t7,\n\t\t10\n\t],\n\t\"./uk/_lib/formatRelative/index\": [\n\t\t581,\n\t\t7,\n\t\t10\n\t],\n\t\"./uk/_lib/formatRelative/index.js\": [\n\t\t581,\n\t\t7,\n\t\t10\n\t],\n\t\"./uk/_lib/localize\": [\n\t\t582,\n\t\t7,\n\t\t251\n\t],\n\t\"./uk/_lib/localize/\": [\n\t\t582,\n\t\t7,\n\t\t251\n\t],\n\t\"./uk/_lib/localize/index\": [\n\t\t582,\n\t\t7,\n\t\t251\n\t],\n\t\"./uk/_lib/localize/index.js\": [\n\t\t582,\n\t\t7,\n\t\t251\n\t],\n\t\"./uk/_lib/match\": [\n\t\t583,\n\t\t7,\n\t\t86\n\t],\n\t\"./uk/_lib/match/\": [\n\t\t583,\n\t\t7,\n\t\t86\n\t],\n\t\"./uk/_lib/match/index\": [\n\t\t583,\n\t\t7,\n\t\t86\n\t],\n\t\"./uk/_lib/match/index.js\": [\n\t\t583,\n\t\t7,\n\t\t86\n\t],\n\t\"./uk/index\": [\n\t\t928,\n\t\t7,\n\t\t416\n\t],\n\t\"./uk/index.d\": [\n\t\t1104,\n\t\t9,\n\t\t514\n\t],\n\t\"./uk/index.d.ts\": [\n\t\t1104,\n\t\t9,\n\t\t514\n\t],\n\t\"./uk/index.js\": [\n\t\t928,\n\t\t7,\n\t\t416\n\t],\n\t\"./uk/index.js.flow\": [\n\t\t1357,\n\t\t9,\n\t\t864\n\t],\n\t\"./uk/package\": [\n\t\t1105,\n\t\t3,\n\t\t756\n\t],\n\t\"./uk/package.json\": [\n\t\t1105,\n\t\t3,\n\t\t756\n\t],\n\t\"./uz\": [\n\t\t832,\n\t\t9,\n\t\t667\n\t],\n\t\"./uz/\": [\n\t\t832,\n\t\t9,\n\t\t667\n\t],\n\t\"./uz/_lib/formatDistance\": [\n\t\t584,\n\t\t7,\n\t\t398\n\t],\n\t\"./uz/_lib/formatDistance/\": [\n\t\t584,\n\t\t7,\n\t\t398\n\t],\n\t\"./uz/_lib/formatDistance/index\": [\n\t\t584,\n\t\t7,\n\t\t398\n\t],\n\t\"./uz/_lib/formatDistance/index.js\": [\n\t\t584,\n\t\t7,\n\t\t398\n\t],\n\t\"./uz/_lib/formatLong\": [\n\t\t585,\n\t\t7,\n\t\t173\n\t],\n\t\"./uz/_lib/formatLong/\": [\n\t\t585,\n\t\t7,\n\t\t173\n\t],\n\t\"./uz/_lib/formatLong/index\": [\n\t\t585,\n\t\t7,\n\t\t173\n\t],\n\t\"./uz/_lib/formatLong/index.js\": [\n\t\t585,\n\t\t7,\n\t\t173\n\t],\n\t\"./uz/_lib/formatRelative\": [\n\t\t586,\n\t\t7,\n\t\t399\n\t],\n\t\"./uz/_lib/formatRelative/\": [\n\t\t586,\n\t\t7,\n\t\t399\n\t],\n\t\"./uz/_lib/formatRelative/index\": [\n\t\t586,\n\t\t7,\n\t\t399\n\t],\n\t\"./uz/_lib/formatRelative/index.js\": [\n\t\t586,\n\t\t7,\n\t\t399\n\t],\n\t\"./uz/_lib/localize\": [\n\t\t587,\n\t\t7,\n\t\t252\n\t],\n\t\"./uz/_lib/localize/\": [\n\t\t587,\n\t\t7,\n\t\t252\n\t],\n\t\"./uz/_lib/localize/index\": [\n\t\t587,\n\t\t7,\n\t\t252\n\t],\n\t\"./uz/_lib/localize/index.js\": [\n\t\t587,\n\t\t7,\n\t\t252\n\t],\n\t\"./uz/_lib/match\": [\n\t\t588,\n\t\t7,\n\t\t87\n\t],\n\t\"./uz/_lib/match/\": [\n\t\t588,\n\t\t7,\n\t\t87\n\t],\n\t\"./uz/_lib/match/index\": [\n\t\t588,\n\t\t7,\n\t\t87\n\t],\n\t\"./uz/_lib/match/index.js\": [\n\t\t588,\n\t\t7,\n\t\t87\n\t],\n\t\"./uz/index\": [\n\t\t929,\n\t\t7,\n\t\t491\n\t],\n\t\"./uz/index.d\": [\n\t\t1106,\n\t\t9,\n\t\t598\n\t],\n\t\"./uz/index.d.ts\": [\n\t\t1106,\n\t\t9,\n\t\t598\n\t],\n\t\"./uz/index.js\": [\n\t\t929,\n\t\t7,\n\t\t491\n\t],\n\t\"./uz/index.js.flow\": [\n\t\t1358,\n\t\t9,\n\t\t865\n\t],\n\t\"./uz/package\": [\n\t\t1107,\n\t\t3,\n\t\t757\n\t],\n\t\"./uz/package.json\": [\n\t\t1107,\n\t\t3,\n\t\t757\n\t],\n\t\"./vi\": [\n\t\t833,\n\t\t9,\n\t\t668\n\t],\n\t\"./vi/\": [\n\t\t833,\n\t\t9,\n\t\t668\n\t],\n\t\"./vi/_lib/formatDistance\": [\n\t\t589,\n\t\t7,\n\t\t400\n\t],\n\t\"./vi/_lib/formatDistance/\": [\n\t\t589,\n\t\t7,\n\t\t400\n\t],\n\t\"./vi/_lib/formatDistance/index\": [\n\t\t589,\n\t\t7,\n\t\t400\n\t],\n\t\"./vi/_lib/formatDistance/index.js\": [\n\t\t589,\n\t\t7,\n\t\t400\n\t],\n\t\"./vi/_lib/formatLong\": [\n\t\t590,\n\t\t7,\n\t\t174\n\t],\n\t\"./vi/_lib/formatLong/\": [\n\t\t590,\n\t\t7,\n\t\t174\n\t],\n\t\"./vi/_lib/formatLong/index\": [\n\t\t590,\n\t\t7,\n\t\t174\n\t],\n\t\"./vi/_lib/formatLong/index.js\": [\n\t\t590,\n\t\t7,\n\t\t174\n\t],\n\t\"./vi/_lib/formatRelative\": [\n\t\t591,\n\t\t7,\n\t\t401\n\t],\n\t\"./vi/_lib/formatRelative/\": [\n\t\t591,\n\t\t7,\n\t\t401\n\t],\n\t\"./vi/_lib/formatRelative/index\": [\n\t\t591,\n\t\t7,\n\t\t401\n\t],\n\t\"./vi/_lib/formatRelative/index.js\": [\n\t\t591,\n\t\t7,\n\t\t401\n\t],\n\t\"./vi/_lib/localize\": [\n\t\t592,\n\t\t7,\n\t\t253\n\t],\n\t\"./vi/_lib/localize/\": [\n\t\t592,\n\t\t7,\n\t\t253\n\t],\n\t\"./vi/_lib/localize/index\": [\n\t\t592,\n\t\t7,\n\t\t253\n\t],\n\t\"./vi/_lib/localize/index.js\": [\n\t\t592,\n\t\t7,\n\t\t253\n\t],\n\t\"./vi/_lib/match\": [\n\t\t593,\n\t\t7,\n\t\t88\n\t],\n\t\"./vi/_lib/match/\": [\n\t\t593,\n\t\t7,\n\t\t88\n\t],\n\t\"./vi/_lib/match/index\": [\n\t\t593,\n\t\t7,\n\t\t88\n\t],\n\t\"./vi/_lib/match/index.js\": [\n\t\t593,\n\t\t7,\n\t\t88\n\t],\n\t\"./vi/index\": [\n\t\t930,\n\t\t7,\n\t\t492\n\t],\n\t\"./vi/index.d\": [\n\t\t1108,\n\t\t9,\n\t\t599\n\t],\n\t\"./vi/index.d.ts\": [\n\t\t1108,\n\t\t9,\n\t\t599\n\t],\n\t\"./vi/index.js\": [\n\t\t930,\n\t\t7,\n\t\t492\n\t],\n\t\"./vi/index.js.flow\": [\n\t\t1359,\n\t\t9,\n\t\t866\n\t],\n\t\"./vi/package\": [\n\t\t1109,\n\t\t3,\n\t\t758\n\t],\n\t\"./vi/package.json\": [\n\t\t1109,\n\t\t3,\n\t\t758\n\t],\n\t\"./zh-CN\": [\n\t\t834,\n\t\t9,\n\t\t530\n\t],\n\t\"./zh-CN/\": [\n\t\t834,\n\t\t9,\n\t\t530\n\t],\n\t\"./zh-CN/_lib/formatDistance\": [\n\t\t594,\n\t\t7,\n\t\t402\n\t],\n\t\"./zh-CN/_lib/formatDistance/\": [\n\t\t594,\n\t\t7,\n\t\t402\n\t],\n\t\"./zh-CN/_lib/formatDistance/index\": [\n\t\t594,\n\t\t7,\n\t\t402\n\t],\n\t\"./zh-CN/_lib/formatDistance/index.js\": [\n\t\t594,\n\t\t7,\n\t\t402\n\t],\n\t\"./zh-CN/_lib/formatLong\": [\n\t\t595,\n\t\t7,\n\t\t175\n\t],\n\t\"./zh-CN/_lib/formatLong/\": [\n\t\t595,\n\t\t7,\n\t\t175\n\t],\n\t\"./zh-CN/_lib/formatLong/index\": [\n\t\t595,\n\t\t7,\n\t\t175\n\t],\n\t\"./zh-CN/_lib/formatLong/index.js\": [\n\t\t595,\n\t\t7,\n\t\t175\n\t],\n\t\"./zh-CN/_lib/formatRelative\": [\n\t\t596,\n\t\t7,\n\t\t11\n\t],\n\t\"./zh-CN/_lib/formatRelative/\": [\n\t\t596,\n\t\t7,\n\t\t11\n\t],\n\t\"./zh-CN/_lib/formatRelative/index\": [\n\t\t596,\n\t\t7,\n\t\t11\n\t],\n\t\"./zh-CN/_lib/formatRelative/index.js\": [\n\t\t596,\n\t\t7,\n\t\t11\n\t],\n\t\"./zh-CN/_lib/localize\": [\n\t\t597,\n\t\t7,\n\t\t254\n\t],\n\t\"./zh-CN/_lib/localize/\": [\n\t\t597,\n\t\t7,\n\t\t254\n\t],\n\t\"./zh-CN/_lib/localize/index\": [\n\t\t597,\n\t\t7,\n\t\t254\n\t],\n\t\"./zh-CN/_lib/localize/index.js\": [\n\t\t597,\n\t\t7,\n\t\t254\n\t],\n\t\"./zh-CN/_lib/match\": [\n\t\t598,\n\t\t7,\n\t\t89\n\t],\n\t\"./zh-CN/_lib/match/\": [\n\t\t598,\n\t\t7,\n\t\t89\n\t],\n\t\"./zh-CN/_lib/match/index\": [\n\t\t598,\n\t\t7,\n\t\t89\n\t],\n\t\"./zh-CN/_lib/match/index.js\": [\n\t\t598,\n\t\t7,\n\t\t89\n\t],\n\t\"./zh-CN/index\": [\n\t\t931,\n\t\t7,\n\t\t417\n\t],\n\t\"./zh-CN/index.d\": [\n\t\t1110,\n\t\t9,\n\t\t515\n\t],\n\t\"./zh-CN/index.d.ts\": [\n\t\t1110,\n\t\t9,\n\t\t515\n\t],\n\t\"./zh-CN/index.js\": [\n\t\t931,\n\t\t7,\n\t\t417\n\t],\n\t\"./zh-CN/index.js.flow\": [\n\t\t1360,\n\t\t9,\n\t\t867\n\t],\n\t\"./zh-CN/package\": [\n\t\t1111,\n\t\t3,\n\t\t759\n\t],\n\t\"./zh-CN/package.json\": [\n\t\t1111,\n\t\t3,\n\t\t759\n\t],\n\t\"./zh-HK\": [\n\t\t835,\n\t\t9,\n\t\t669\n\t],\n\t\"./zh-HK/\": [\n\t\t835,\n\t\t9,\n\t\t669\n\t],\n\t\"./zh-HK/_lib/formatDistance\": [\n\t\t599,\n\t\t7,\n\t\t403\n\t],\n\t\"./zh-HK/_lib/formatDistance/\": [\n\t\t599,\n\t\t7,\n\t\t403\n\t],\n\t\"./zh-HK/_lib/formatDistance/index\": [\n\t\t599,\n\t\t7,\n\t\t403\n\t],\n\t\"./zh-HK/_lib/formatDistance/index.js\": [\n\t\t599,\n\t\t7,\n\t\t403\n\t],\n\t\"./zh-HK/_lib/formatLong\": [\n\t\t600,\n\t\t7,\n\t\t176\n\t],\n\t\"./zh-HK/_lib/formatLong/\": [\n\t\t600,\n\t\t7,\n\t\t176\n\t],\n\t\"./zh-HK/_lib/formatLong/index\": [\n\t\t600,\n\t\t7,\n\t\t176\n\t],\n\t\"./zh-HK/_lib/formatLong/index.js\": [\n\t\t600,\n\t\t7,\n\t\t176\n\t],\n\t\"./zh-HK/_lib/formatRelative\": [\n\t\t601,\n\t\t7,\n\t\t404\n\t],\n\t\"./zh-HK/_lib/formatRelative/\": [\n\t\t601,\n\t\t7,\n\t\t404\n\t],\n\t\"./zh-HK/_lib/formatRelative/index\": [\n\t\t601,\n\t\t7,\n\t\t404\n\t],\n\t\"./zh-HK/_lib/formatRelative/index.js\": [\n\t\t601,\n\t\t7,\n\t\t404\n\t],\n\t\"./zh-HK/_lib/localize\": [\n\t\t602,\n\t\t7,\n\t\t255\n\t],\n\t\"./zh-HK/_lib/localize/\": [\n\t\t602,\n\t\t7,\n\t\t255\n\t],\n\t\"./zh-HK/_lib/localize/index\": [\n\t\t602,\n\t\t7,\n\t\t255\n\t],\n\t\"./zh-HK/_lib/localize/index.js\": [\n\t\t602,\n\t\t7,\n\t\t255\n\t],\n\t\"./zh-HK/_lib/match\": [\n\t\t603,\n\t\t7,\n\t\t90\n\t],\n\t\"./zh-HK/_lib/match/\": [\n\t\t603,\n\t\t7,\n\t\t90\n\t],\n\t\"./zh-HK/_lib/match/index\": [\n\t\t603,\n\t\t7,\n\t\t90\n\t],\n\t\"./zh-HK/_lib/match/index.js\": [\n\t\t603,\n\t\t7,\n\t\t90\n\t],\n\t\"./zh-HK/index\": [\n\t\t932,\n\t\t7,\n\t\t493\n\t],\n\t\"./zh-HK/index.d\": [\n\t\t1112,\n\t\t9,\n\t\t600\n\t],\n\t\"./zh-HK/index.d.ts\": [\n\t\t1112,\n\t\t9,\n\t\t600\n\t],\n\t\"./zh-HK/index.js\": [\n\t\t932,\n\t\t7,\n\t\t493\n\t],\n\t\"./zh-HK/index.js.flow\": [\n\t\t1361,\n\t\t9,\n\t\t868\n\t],\n\t\"./zh-HK/package\": [\n\t\t1113,\n\t\t3,\n\t\t760\n\t],\n\t\"./zh-HK/package.json\": [\n\t\t1113,\n\t\t3,\n\t\t760\n\t],\n\t\"./zh-TW\": [\n\t\t836,\n\t\t9,\n\t\t670\n\t],\n\t\"./zh-TW/\": [\n\t\t836,\n\t\t9,\n\t\t670\n\t],\n\t\"./zh-TW/_lib/formatDistance\": [\n\t\t604,\n\t\t7,\n\t\t405\n\t],\n\t\"./zh-TW/_lib/formatDistance/\": [\n\t\t604,\n\t\t7,\n\t\t405\n\t],\n\t\"./zh-TW/_lib/formatDistance/index\": [\n\t\t604,\n\t\t7,\n\t\t405\n\t],\n\t\"./zh-TW/_lib/formatDistance/index.js\": [\n\t\t604,\n\t\t7,\n\t\t405\n\t],\n\t\"./zh-TW/_lib/formatLong\": [\n\t\t605,\n\t\t7,\n\t\t177\n\t],\n\t\"./zh-TW/_lib/formatLong/\": [\n\t\t605,\n\t\t7,\n\t\t177\n\t],\n\t\"./zh-TW/_lib/formatLong/index\": [\n\t\t605,\n\t\t7,\n\t\t177\n\t],\n\t\"./zh-TW/_lib/formatLong/index.js\": [\n\t\t605,\n\t\t7,\n\t\t177\n\t],\n\t\"./zh-TW/_lib/formatRelative\": [\n\t\t606,\n\t\t7,\n\t\t406\n\t],\n\t\"./zh-TW/_lib/formatRelative/\": [\n\t\t606,\n\t\t7,\n\t\t406\n\t],\n\t\"./zh-TW/_lib/formatRelative/index\": [\n\t\t606,\n\t\t7,\n\t\t406\n\t],\n\t\"./zh-TW/_lib/formatRelative/index.js\": [\n\t\t606,\n\t\t7,\n\t\t406\n\t],\n\t\"./zh-TW/_lib/localize\": [\n\t\t607,\n\t\t7,\n\t\t256\n\t],\n\t\"./zh-TW/_lib/localize/\": [\n\t\t607,\n\t\t7,\n\t\t256\n\t],\n\t\"./zh-TW/_lib/localize/index\": [\n\t\t607,\n\t\t7,\n\t\t256\n\t],\n\t\"./zh-TW/_lib/localize/index.js\": [\n\t\t607,\n\t\t7,\n\t\t256\n\t],\n\t\"./zh-TW/_lib/match\": [\n\t\t608,\n\t\t7,\n\t\t91\n\t],\n\t\"./zh-TW/_lib/match/\": [\n\t\t608,\n\t\t7,\n\t\t91\n\t],\n\t\"./zh-TW/_lib/match/index\": [\n\t\t608,\n\t\t7,\n\t\t91\n\t],\n\t\"./zh-TW/_lib/match/index.js\": [\n\t\t608,\n\t\t7,\n\t\t91\n\t],\n\t\"./zh-TW/index\": [\n\t\t933,\n\t\t7,\n\t\t494\n\t],\n\t\"./zh-TW/index.d\": [\n\t\t1114,\n\t\t9,\n\t\t601\n\t],\n\t\"./zh-TW/index.d.ts\": [\n\t\t1114,\n\t\t9,\n\t\t601\n\t],\n\t\"./zh-TW/index.js\": [\n\t\t933,\n\t\t7,\n\t\t494\n\t],\n\t\"./zh-TW/index.js.flow\": [\n\t\t1362,\n\t\t9,\n\t\t869\n\t],\n\t\"./zh-TW/package\": [\n\t\t1115,\n\t\t3,\n\t\t761\n\t],\n\t\"./zh-TW/package.json\": [\n\t\t1115,\n\t\t3,\n\t\t761\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(2).map(__webpack_require__.e)).then(function() {\n\t\treturn __webpack_require__.t(id, ids[1])\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 1216;\nmodule.exports = webpackAsyncContext;","import { Breakpoint, createTheme } from '@mui/material'\r\n\r\nconst defaultTheme = createTheme()\r\n\r\nexport default createTheme({\r\n palette: {\r\n // テーマカラー 1\r\n primary: {\r\n main: '#006dcc',\r\n dark: '#00439a',\r\n light: '#5c9bff',\r\n },\r\n // テーマカラー 2\r\n secondary: {\r\n main: '#2e2e2e',\r\n dark: '#030303',\r\n light: '#575757',\r\n },\r\n // テーマカラー 3\r\n info: {\r\n main: '#e5f8ff',\r\n dark: '#b3c5cc',\r\n light: '#ffffff',\r\n contrastText: '#000000',\r\n },\r\n // テーマカラー 4\r\n warning: {\r\n main: '#fff55b',\r\n dark: '#c9c323',\r\n light: '#ffff8e',\r\n contrastText: '#000000',\r\n },\r\n // テーマカラー 5\r\n error: {\r\n main: '#c53030',\r\n dark: '#8d0009',\r\n light: '#fe645a',\r\n },\r\n // テーマカラー 6\r\n white: {\r\n main: '#ffffff',\r\n dark: '#cccccc',\r\n light: '#ffffff',\r\n contrastText: '#000000',\r\n },\r\n // テーマカラー 7\r\n errorPale: {\r\n main: '#fee9e9',\r\n dark: '#cbb7b7',\r\n light: '#ffffff',\r\n contrastText: '#000000',\r\n },\r\n // テーマカラー 8\r\n grayLight: {\r\n main: '#dfdfdf',\r\n dark: '#adadad',\r\n light: '#ffffff',\r\n contrastText: '#000000',\r\n },\r\n // テーマカラー 9\r\n grayDark: {\r\n main: '#757575',\r\n dark: '#494949',\r\n light: '#a4a4a4',\r\n },\r\n // テーマカラー 10\r\n greenPale: {\r\n main: '#e7f4e9',\r\n dark: '#b5c1b7',\r\n light: '#ffffff',\r\n },\r\n text: {\r\n primary: '#2e2e2e',\r\n },\r\n },\r\n typography: {\r\n htmlFontSize: 10,\r\n fontFamily: [\r\n '\"Noto Sans JP\"',\r\n '\"Meiryo\"',\r\n '\"Hiragino Kaku Gothic ProN\"',\r\n '\"Hiragino Sans\"',\r\n '\"Helvetica Neue\"',\r\n '\"Arial\"',\r\n '\"sans-serif\"',\r\n ].join(','),\r\n body1: {\r\n fontSize: '1.2rem',\r\n fontWeight: defaultTheme.typography.fontWeightBold,\r\n },\r\n button: {\r\n fontWeight: defaultTheme.typography.fontWeightBold,\r\n },\r\n font: {\r\n sizeS: '1rem',\r\n sizeM: '1.2rem',\r\n sizeL1: '1.4rem',\r\n sizeL2: '1.8rem',\r\n sizeLL1: '3rem',\r\n },\r\n },\r\n breakpoints: {\r\n values: {\r\n ...defaultTheme.breakpoints.values,\r\n md: 1024,\r\n },\r\n },\r\n mixins: {\r\n toolbar: {\r\n minHeight: 8 * 6,\r\n },\r\n },\r\n appMain: {\r\n padding: 8 * 3,\r\n },\r\n appFooter: {\r\n height: (breakpoint: Breakpoint): number => {\r\n switch (breakpoint) {\r\n case 'xs':\r\n return 8 * 13\r\n default:\r\n return 8 * 5\r\n }\r\n },\r\n },\r\n})\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ValueType } from '../../../../utils/typeUtil'\r\nimport { accountChangeVerificationCategory } from '../../constant/classification'\r\n\r\ninterface AccountChangeEntryBase {\r\n category: ValueType\r\n}\r\ninterface AccountEmailChangeEntry extends AccountChangeEntryBase {\r\n category: '1'\r\n email: string\r\n}\r\ninterface AccountTelChangeEntry extends AccountChangeEntryBase {\r\n category: '2'\r\n tel: string\r\n}\r\ninterface AccountPasswordChangeEntry extends AccountChangeEntryBase {\r\n category: '3'\r\n password: string\r\n newPassword: string\r\n}\r\n\r\ntype AccountChangeEntry = AccountEmailChangeEntry | AccountTelChangeEntry | AccountPasswordChangeEntry\r\n\r\ninterface AccountChangeState {\r\n entry?: AccountChangeEntry\r\n}\r\n\r\nconst initialState: AccountChangeState = {}\r\n\r\nconst accountChangeSlice = createSlice({\r\n name: 'accountChange',\r\n initialState,\r\n reducers: {\r\n setAccountChange: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n clearAccountChange: (state) => {\r\n delete state.entry\r\n },\r\n },\r\n})\r\n\r\nexport const { setAccountChange, clearAccountChange } = accountChangeSlice.actions\r\nexport const selectAccountChangeEntry = (state: RootState) => state.accountChange.entry\r\nexport default accountChangeSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\n\r\ninterface ChildEntry {\r\n name: string\r\n kana: string\r\n gender: string\r\n birthday: ElapsedMillisecond\r\n //TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする\r\n //maternalHandbookNo: string\r\n}\r\n\r\nexport interface AccountCreateEntry {\r\n name: string\r\n kana: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber: string\r\n residenceCategory: string\r\n residenceCategoryName: string\r\n relationship: string\r\n tel: string\r\n email: string\r\n emailConfirmation: string\r\n password: string\r\n passwordConfirmation: string\r\n ssoLinkedParams?: {\r\n id: string\r\n email: string\r\n }\r\n\r\n children: ChildEntry[]\r\n}\r\n\r\ninterface AccountCreateState {\r\n entry?: AccountCreateEntry\r\n}\r\n\r\nconst initialState: AccountCreateState = {}\r\n\r\nexport const accountCreateSlice = createSlice({\r\n name: 'accountCreate',\r\n initialState,\r\n reducers: {\r\n setAccountCreate: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n clearAccountCreate: (state) => {\r\n delete state.entry\r\n },\r\n },\r\n})\r\nexport const { setAccountCreate, clearAccountCreate } = accountCreateSlice.actions\r\nexport const selectAccountCreateEntry = (state: RootState) => state.accountCreate.entry\r\nexport default accountCreateSlice.reducer\r\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { Action } from 'history'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\n\r\n/**\r\n * ブラウザ履歴の最小の長さ。\r\n * ブラウザを表示するとそのページが履歴に入るので最小は1\r\n */\r\nconst historyLengthMin = 1\r\ninterface ApplicationState {\r\n /** サイドメニュー開閉状態 */\r\n isOpen: boolean\r\n /** ローディング表示状態 */\r\n isLoading: boolean\r\n /** mainのvisibleをhideにするか否か */\r\n isHiddenMain: boolean\r\n /** 1vhあたりのピクセル */\r\n pxPerVh: number\r\n /** 画面下アクションコンテナの高さ */\r\n bottomActionContainerHeight: number\r\n /** フッターが画面内に入ったか */\r\n isIntersectingFooter: boolean\r\n /** トースト表示メッセージ */\r\n message?: {\r\n content: string\r\n timestamp: ElapsedMillisecond\r\n autoHideDuration?: number\r\n }\r\n /** ブラウザの履歴スタック数 */\r\n historyStackLength: number\r\n}\r\n\r\ntype LoadingProcess = () => void\r\n\r\nconst initialState: ApplicationState = {\r\n isOpen: false,\r\n isLoading: false,\r\n isHiddenMain: false,\r\n isIntersectingFooter: false,\r\n pxPerVh: 0,\r\n bottomActionContainerHeight: 0,\r\n historyStackLength: historyLengthMin,\r\n}\r\n\r\nconst sliceName = 'application'\r\n\r\nexport const showLoading = createAsyncThunk(\r\n `${sliceName}/showLoading`,\r\n async (process: LoadingProcess | { process: LoadingProcess; isHiddenMain: boolean }, thunkAPI) => {\r\n if (typeof process === 'function') {\r\n thunkAPI.dispatch(setIsHiddenMain(true))\r\n await process()\r\n } else {\r\n thunkAPI.dispatch(setIsHiddenMain(process.isHiddenMain))\r\n await process.process()\r\n }\r\n }\r\n)\r\nexport const applicationSlice = createSlice({\r\n name: sliceName,\r\n initialState,\r\n reducers: {\r\n openSideMenu: (state) => {\r\n state.isOpen = true\r\n },\r\n closeSideMenu: (state) => {\r\n state.isOpen = false\r\n },\r\n setIsLoading: (state, action: PayloadAction) => {\r\n state.isLoading = action.payload\r\n },\r\n setIsHiddenMain: (state, action: PayloadAction) => {\r\n state.isHiddenMain = action.payload\r\n },\r\n setPxPerVh: (state, action: PayloadAction) => {\r\n state.pxPerVh = action.payload\r\n },\r\n setBottomActionContainerHeight: (state, action: PayloadAction) => {\r\n state.bottomActionContainerHeight = action.payload\r\n },\r\n setIsIntersectingFooter: (state, action: PayloadAction) => {\r\n state.isIntersectingFooter = action.payload\r\n },\r\n notifyMessage: (state, action: PayloadAction) => {\r\n // timestampは同じ文言でも別メッセージとして扱うために使用している為、JSTでの生成は不要\r\n const timestamp = Date.now()\r\n let content\r\n let autoHideDuration\r\n if (typeof action.payload === 'string') {\r\n content = action.payload\r\n } else {\r\n content = action.payload.content\r\n autoHideDuration = action.payload.autoHideDuration\r\n }\r\n\r\n state.message = { content, timestamp, autoHideDuration }\r\n },\r\n updateHistoryStackLength: (state, action: PayloadAction) => {\r\n switch (action.payload) {\r\n case 'POP':\r\n if (state.historyStackLength > historyLengthMin) {\r\n // メモリ管理のカウントである為、F5ボタンなどで画面リロードされるとクリアされてしまう\r\n // その場合最小数より減算しないようにする\r\n state.historyStackLength--\r\n }\r\n break\r\n case 'REPLACE':\r\n // スタック数変動なし\r\n break\r\n case 'PUSH':\r\n state.historyStackLength++\r\n break\r\n }\r\n },\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n reset: (state, action: PayloadAction<{ isKeepAuthority: boolean }>) => {\r\n // RootStateの初期化が必要なのでstate初期化処理はRootRecucerで実装\r\n // そのため、引数未使用のeslintチェックも無効化している\r\n },\r\n },\r\n extraReducers: (builder) => {\r\n builder\r\n .addCase(showLoading.pending, (state) => {\r\n state.isLoading = true\r\n })\r\n .addCase(showLoading.fulfilled, (state) => {\r\n state.isLoading = false\r\n state.isHiddenMain = false\r\n })\r\n .addCase(showLoading.rejected, (state) => {\r\n state.isLoading = false\r\n state.isHiddenMain = false\r\n })\r\n },\r\n})\r\n\r\nexport const {\r\n openSideMenu,\r\n closeSideMenu,\r\n setIsLoading,\r\n setPxPerVh,\r\n setBottomActionContainerHeight,\r\n setIsIntersectingFooter,\r\n setIsHiddenMain,\r\n notifyMessage,\r\n updateHistoryStackLength,\r\n reset,\r\n} = applicationSlice.actions\r\nexport const selectIsOpen = (state: RootState) => state.application.isOpen\r\nexport const selectIsLoading = (state: RootState) => state.application.isLoading\r\nexport const selectIsHiddenMain = (state: RootState) => state.application.isHiddenMain\r\nexport const selectPxPerVh = (state: RootState) => state.application.pxPerVh\r\nexport const selectBottomActionContainerHeight = (state: RootState) => state.application.bottomActionContainerHeight\r\nexport const selectIsIntersectingFooter = (state: RootState) => state.application.isIntersectingFooter\r\nexport const selectMessage = (state: RootState) => state.application.message\r\nexport const selectIsExistsBackHistory = (state: RootState) => state.application.historyStackLength > historyLengthMin\r\nexport default applicationSlice.reducer\r\n","// 認証関連のユーティリティ関数を定義\r\n//\r\nimport { SignOutOpts } from '@aws-amplify/auth/lib-esm/types'\r\nimport { Auth } from 'aws-amplify'\r\nimport { CognitoUser } from 'amazon-cognito-identity-js';\r\n\r\n/** ログインする */\r\nexport const signIn = (username: string, password: string) => Auth.signIn(username, password)\r\n// export const signIn = (username: string, password: string): Promise => Auth.signIn(username, password)\r\n\r\n/** ログアウトする */\r\nexport const signOut = (options?: SignOutOpts) => Auth.signOut(options)\r\n\r\n/** パスワードリセット時のワンタイムパスワードを要求 */\r\n\r\nexport const forgotPassword = (username: string) => Auth.forgotPassword(username)\r\n\r\n/** パスワードリセット用の新パスワードを送信 */\r\n\r\nexport const forgotPasswordSubmit = (username: string, code: string, password: string) => Auth.forgotPasswordSubmit(username, code, password)\r\n\r\n/** 初期パスワードリセット用の新パスワードを送信 */\r\n\r\nexport const completeNewPassword = (cognitoUser: CognitoUser, password: string) => Auth.completeNewPassword(cognitoUser, password)\r\n\r\n/** フェデレーション(saml)でログイン */\r\nexport const federatedSignIn = (providerName: string) => Auth.federatedSignIn({ customProvider: providerName })\r\n\r\n/**\r\n * 現在ログインしているcognitoユーザー情報を取得。\r\n * ログインしていない場合は例外がスローされる\r\n *\r\n * @param bypassCache キャッシュから取得を行わない場合true\r\n * @returns cognitoユーザー情報\r\n */\r\nexport const getAuthenticatedUser = (bypassCache?: boolean) =>\r\n Auth.currentAuthenticatedUser({ bypassCache: !!bypassCache })\r\n\r\n/**\r\n * cognitoの電話番号属性に対し検証行う。SMSでワンタイムパスワードの送信が実施される\r\n */\r\nexport const verifyTel = () => Auth.verifyCurrentUserAttribute('phone_number')\r\n/**\r\n * cognitoの電話番号属性に対し検証行った際に送信されたワンタイムパスワードのチェックを行う。\r\n * 正しいワンタイムパスワードであれば、電話番号検証済みとなる\r\n *\r\n * @param code ワンタイムパスワード\r\n * @throws {AmplifyAuthError}\r\n */\r\nexport const verifyTelSubmit = (code: string) => Auth.verifyCurrentUserAttributeSubmit('phone_number', code)\r\n\r\n/**\r\n * cognitoのEメール属性に対し検証行う。メールで認証用メールの送信が実施される\r\n */\r\nexport const verifyEmail = () => Auth.verifyCurrentUserAttribute('email')\r\n\r\n/**\r\n * @returns ユーザープールに格納されている情報を確認するのに必要なJWTトークン\r\n */\r\nexport const getSessionIdToken = async () => (await Auth.currentSession()).getIdToken().getJwtToken()\r\n/**\r\n * @returns ユーザープールの情報の更新のために必要なJWTトークン\r\n */\r\nexport const getSessionAccessToken = async () => (await Auth.currentSession()).getAccessToken().getJwtToken()\r\n\r\n/**\r\n * AuthAPIで発生したエラーインスタンスの内、ハンドリングに必要なプロパティを定義したインターフェース\r\n *\r\n * Cognito のエラーコードまとめ\r\n * https://qiita.com/kugyo/items/b3c1d706a85d5c772670\r\n */\r\ninterface AmplifyAuthError {\r\n /** エラーの種類を識別するコード */\r\n code: string\r\n /** エラーメッセージ(英語) */\r\n message: string\r\n}\r\n\r\n/**\r\n * AmplifyのAuthAPIで発生する例外のハンドリングする際、\r\n * エラーインスタンスの型ガード関数\r\n * @param e AuthAPIで発生したエラーインスタンス\r\n * @returns 渡されたインスタンスがAmplifyAuthErrorにマッチすればtrue\r\n */\r\nexport const isAmplifyAuthError = (e: any): e is AmplifyAuthError => {\r\n return e && typeof e.code === 'string' && typeof e.message === 'string'\r\n}\r\n","import { API } from 'aws-amplify'\r\nimport axios from 'axios'\r\nimport http from 'http'\r\nimport https from 'https'\r\nimport { getSessionIdToken } from '../../../utils/authUtil'\r\n\r\nconst keepAliveHttpAgent = new http.Agent({ keepAlive: true })\r\nconst keepAliveHttpsAgent = new https.Agent({ keepAlive: true })\r\n\r\n/**\r\n * GETでAPI呼び出し。\r\n * 結果無し(ApiResponse.result == null)時に例外としない\r\n * @param apiName\r\n * @param path\r\n * @param parameter\r\n * @returns レスポンス\r\n * @throws {ApiError} httpStatusCodeが2xx以外、resultCode,resultがbodyに含まれない場合\r\n */\r\nexport const executeGet = (apiName: string, path: string, parameter?: Record) => {\r\n return execute(apiName, path, API.get.bind(API), { queryParameter: parameter })\r\n}\r\n\r\n/**\r\n * GETでAPI呼び出し。\r\n * 結果無し(ApiResponse.result == null)時に例外とする\r\n * @param apiName\r\n * @param path\r\n * @param parameter\r\n * @returns レスポンス\r\n * @throws {NoResultError} result == nullの場合\r\n * @throws {ApiError} httpStatusCodeが2xx以外、resultCode,resultがbodyに含まれない場合\r\n */\r\nexport const executeGetNoResultError = (apiName: string, path: string, parameter?: Record) => {\r\n return execute(apiName, path, API.get.bind(API), { queryParameter: parameter }, { isNoResultError: true })\r\n}\r\n\r\nexport const executeDelete = (apiName: string, path: string, parameter?: Record) => {\r\n return execute(apiName, path, API.del.bind(API), { bodyParameter: parameter })\r\n}\r\n\r\nexport const executePost = (apiName: string, path: string, parameter?: Record) => {\r\n return execute(apiName, path, API.post.bind(API), { bodyParameter: parameter })\r\n}\r\n\r\nexport const executePut = (apiName: string, path: string, parameter?: Record) => {\r\n return execute(apiName, path, API.put.bind(API), { bodyParameter: parameter })\r\n}\r\n\r\n/**\r\n * POSTでAPI呼び出し。\r\n * keepAlive: true で実行する\r\n * @param apiName\r\n * @param path\r\n * @param parameter\r\n * @returns レスポンス\r\n * @throws {ApiError} httpStatusCodeが2xx以外\r\n */\r\nexport const executePostKeepAlive = (apiName: string, path: string, parameter?: Record) => {\r\n return execute(apiName, path, API.post.bind(API), { bodyParameter: parameter }, { isKeepAlive: true })\r\n}\r\n\r\nconst execute = async (\r\n apiName: string,\r\n path: string,\r\n api: (apiName: any, path: any, init: any) => Promise,\r\n parameter: {\r\n queryParameter?: Record\r\n bodyParameter?: Record\r\n },\r\n { isNoResultError = false, isKeepAlive = false } = {}\r\n) => {\r\n const { queryParameter, bodyParameter } = parameter\r\n let token\r\n try {\r\n token = await getSessionIdToken()\r\n } catch {\r\n // 未ログイン時はトークン無し\r\n }\r\n const option = {\r\n ...(isKeepAlive && {\r\n httpAgent: keepAliveHttpAgent,\r\n httpsAgent: keepAliveHttpsAgent,\r\n }),\r\n ...(token && {\r\n headers: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n }),\r\n ...(queryParameter && {\r\n queryStringParameters: {\r\n q: JSON.stringify(queryParameter),\r\n },\r\n }),\r\n ...(bodyParameter && {\r\n body: bodyParameter,\r\n }),\r\n }\r\n try {\r\n const rawResponse = await api(apiName, path, option)\r\n if ('resultCode' in rawResponse && 'result' in rawResponse) {\r\n if (isNoResultError && rawResponse.result == null) {\r\n throw new NoResultError(apiName, path, parameter, 'NoResult', 200, rawResponse)\r\n }\r\n return rawResponse as ApiResponse\r\n } else {\r\n throw TypeError(JSON.stringify(rawResponse))\r\n }\r\n } catch (e) {\r\n if (e instanceof NoResultError) {\r\n throw e\r\n } else if (axios.isAxiosError(e)) {\r\n if (e.response == null) {\r\n console.error('apiCallerレスポンス取得不可', e)\r\n }\r\n let apiResponse\r\n const responseHeaders: Record | undefined = e.response?.headers\r\n if (e.response && e.response.data.resultCode != null) {\r\n const body = e.response.data\r\n apiResponse = {\r\n resultCode: body.resultCode as number,\r\n ...(body.result != null && {\r\n result: body.result as NonNullable,\r\n }),\r\n }\r\n }\r\n throw new ApiError(apiName, path, parameter, e.message, e.response?.status, apiResponse, responseHeaders)\r\n } else {\r\n // 想定されないエラー\r\n console.error('apiCaller想定されないエラー', e)\r\n throw new ApiError(apiName, path, parameter)\r\n }\r\n }\r\n}\r\n\r\nexport interface ApiResponse {\r\n resultCode: number\r\n result: T\r\n}\r\n\r\nexport interface ApiResponseError {\r\n resultCode: number\r\n result?: NonNullable\r\n}\r\n\r\nexport class ApiError extends Error {\r\n apiName: string\r\n path: string\r\n parameter: {\r\n queryParameter?: Record\r\n bodyParameter?: Record\r\n }\r\n statusCode?: number\r\n response?: ApiResponseError\r\n responseHeaders?: Record\r\n\r\n constructor(\r\n apiName: string,\r\n path: string,\r\n parameter: {\r\n queryParameter?: Record\r\n bodyParameter?: Record\r\n },\r\n message?: string,\r\n statusCode?: number,\r\n response?: ApiResponseError,\r\n responseHeaders?: Record\r\n ) {\r\n super(message)\r\n this.name = new.target.name\r\n // 下記の行はTypeScriptの出力ターゲットがES2015より古い場合(ES3, ES5)のみ必要\r\n Object.setPrototypeOf(this, new.target.prototype)\r\n\r\n this.apiName = apiName\r\n this.path = path\r\n this.parameter = parameter\r\n this.statusCode = statusCode\r\n this.response = response\r\n this.responseHeaders = responseHeaders\r\n }\r\n}\r\n\r\n/**\r\n * 結果無し(ApiResponse.result === null)時に例外とするモードで呼び出した際、\r\n * スローされる例外\r\n */\r\nexport class NoResultError extends ApiError {}\r\n","import { executeDelete, executeGetNoResultError, executePost, executePut } from '../common/apiCaller'\r\nimport {\r\n GetAccountDto,\r\n GetAccountIsSsoFirstLoginDto,\r\n GetAccountOtpDto,\r\n PostAccountIdentityVerifySubmitInputDto,\r\n PostAccountInputDto,\r\n PutAccountIdentityVerifyResendEmailInputDto,\r\n PutAccountInputDto,\r\n} from '../dto/accountDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/account'\r\n\r\nexport const executeGetAccount = () => {\r\n return executeGetNoResultError(apiName, apiPath)\r\n}\r\n\r\nexport const resultCodePutAccount = {\r\n notChangedEmail: 2,\r\n notChangedTel: 3,\r\n alreadyRegisteredEmail: 4,\r\n alreadyRegisteredTel: 5,\r\n notMatchedCurrentPassword: 6,\r\n violatePolicyNewPassword: 7,\r\n} as const\r\n\r\nexport const executeGetAccountIsSsoFirstLogin = () => {\r\n return executeGetNoResultError(apiName, `${apiPath}/is-sso-first-login`)\r\n}\r\n\r\nexport const executeGetAccountOtp = (showOtp?: boolean) => {\r\n return showOtp\r\n ? executeGetNoResultError(apiName, `${apiPath}/otp?showOtp=${showOtp}`)\r\n : executeGetNoResultError(apiName, `${apiPath}/otp`)\r\n}\r\n\r\nexport const executePutAccount = (input: PutAccountInputDto) => {\r\n return executePut(apiName, apiPath, input)\r\n}\r\n\r\nexport const executePostAccount = (input: PostAccountInputDto) => {\r\n return executePost(apiName, apiPath, input)\r\n}\r\n\r\nexport const executePostAccountIdentityVerifySubmit = (input: PostAccountIdentityVerifySubmitInputDto) => {\r\n return executePost(apiName, `${apiPath}/identity-verify/submit`, input)\r\n}\r\n\r\nexport const executePutAccountIdentityVerifyResendEmail = (input: PutAccountIdentityVerifyResendEmailInputDto) => {\r\n return executePut(apiName, `${apiPath}/identity-verify/resend-email`, input)\r\n}\r\n\r\nexport const executePutAccountOtp = (input: { userId: string | null }) => {\r\n return executePut(apiName, `${apiPath}/otp`, input)\r\n}\r\n\r\nexport const executePutAccountAuthentication = (input: { userId: string | null, loginFlag: string | null }) => {\r\n return executePut(apiName, `${apiPath}/authentication`, input)\r\n}\r\n\r\nexport const executeDeleteAccount = () => {\r\n return executeDelete(apiName, apiPath)\r\n}\r\n\r\nexport const executePutAccountSsoLinkUnlink = () => {\r\n return executePut(apiName, `${apiPath}/sso-link/unlink`)\r\n}","import { executeGetNoResultError } from \"../common/apiCaller\"\nimport { GetSessionSettingMstDto } from \"../dto/sessionSettingMstDto\"\n\nconst apiName = 'public'\nconst apiPath = '/session-setting-mst'\n\nexport const executeGetSessionSettingMst = () => {\n return executeGetNoResultError(apiName, apiPath)\n} \n","// 区分値定数の定義\n//\n\n/**\n * 有り無し\n * フラグの判定用にも使用する。\n */\nexport const yesNo = {\n yes: '1',\n no: '0',\n} as const\nexport type yesNo = (typeof yesNo)[keyof typeof yesNo]\n\n/**\n * キャンセル待ちしない キャンセル待ちする\n * フラグの判定用にも使用する。\n */\nexport const doNotWaitlist = {\n do: '1',\n not: '0',\n} as const\n\n/** 年齢 */\nexport const age = {\n class0: '0',\n class1: '1',\n class2: '2',\n class3: '3',\n class4: '4',\n class5: '5',\n class6: '6',\n class7: '7',\n} as const\n\n/** 年齢(2桁表記) */\nexport const ageTwoDigits = {\n class0: '00',\n class1: '01',\n class2: '02',\n class3: '03',\n class4: '04',\n class5: '05',\n class6: '06',\n class7: '07',\n} as const\n\n/** 利用目的(施設検索) */\nexport const purposeOfUse = {\n common: '0', // 設定上の値。予約データとしてはNULLが登録される\n irregular: '1',\n emergency: '2',\n refresh: '3',\n} as const\n\n/** 利用目的 */\nexport const useReasonCategory = {\n irregular: '1',\n emergency_flag: '2',\n refresh_flag: '3',\n} as const\n\n/** 利用目的表示タイプ */\nexport const useReasonDisplayTypes = {\n notUsed: '0',\n usedInBoth: '1',\n usedOnlyInFacility: '2',\n} as const\n\n/** 施設検索並び順 */\nexport const facilitySearchSortOrder = {\n currentLocation: '1',\n facilityName: '2',\n} as const\n\n/** HTTPステータスコード */\nexport const httpStatusCode = {\n ok: 200,\n badRequest: 400,\n unauthorized: 401,\n forbidden: 403,\n notFound: 404,\n methodNotAllowed: 405,\n requestTimeout: 408,\n conflict: 409,\n internalServerError: 500,\n serviceUnavailable: 503,\n} as const\n\n/** 利用予約情報ステータス */\nexport const reservationStatus = {\n /**未確定 */\n notFixed: '0',\n /**確定済み */\n fixed: '1',\n /**利用済み */\n used: '2',\n /**キャンセル済み */\n canceled: '3',\n /**キャンセル待ち */\n wait: '4',\n /**キャンセル待ち取り消し */\n canceledWait: '5',\n /**見送り */\n rejected: '6',\n /**未利用 */\n unused: '7',\n} as const\n\n/** 面談許可時の利用許可範囲 */\nexport const interviewCrossManagementFlag = {\n /** 施設毎に利用許可を行う */\n byFacility: '0',\n /** 1つでも利用許可したら同一事業内の施設で利用可能とする */\n sameBusiness: '1',\n} as const\n\n/** 面談予約情報ステータス */\nexport const interviewStatus = {\n notFixed: '0',\n fixed: '1',\n interviewed: '2',\n canceled: '3',\n wait: '4',\n canceledWait: '5',\n} as const\n\n/** 面談予約利用許可フラグ */\nexport const permitFlag = {\n shelved: '0',\n permitted: '1',\n notImplemented: '2',\n updatedAnnually: '9',\n} as const\n\n/** 性別 */\nexport const gender = {\n male: '1',\n female: '2',\n} as const\n/** 在住種別 */\nexport const residenceCategory = {\n /** 市内・区内 */\n inside: '1',\n /** 市外・区外 */\n outsid: '2',\n /** その他 */\n other: '3',\n} as const\n/** 対象 */\nexport const covered = {\n /** 対象 */\n covered: '1',\n /** 対象外 */\n notCovered: '0',\n} as const\n\n/** キャンセル理由 */\nexport const cancelReason = {\n inconvenient: '1',\n poorPhysicalCondition: '2',\n other: '3',\n} as const\n\n/** アカウント作成ステップ */\nexport const accountCreateStep = {\n step1: '①',\n step2: '②',\n step3: '③',\n} as const\n\n/** 面談予約ステップ */\nexport const interviewReservationStep = {\n step1: '①',\n step2: '②',\n step3: '③',\n} as const\n\n/** 面談予約ステップ */\nexport const interviewReservationStep2 = {\n step1: '①',\n step2: '②',\n step3: '③',\n step4: '④',\n} as const\n\n/** 面談予約キャンセルステップ */\nexport const interviewReservationDeleteStep = {\n step1: '①',\n step2: '②',\n} as const\n\nexport const facilityReservationStep = {\n step1: '①',\n step2: '②',\n step3: '③',\n step4: '④',\n} as const\n\n/** 利用予約キャンセルステップ */\nexport const facilityReservationDeleteStep = {\n step1: '①',\n step2: '②',\n} as const\n\n/** 抽選予約キャンセルステップ */\nexport const facilityLotteryReservationCancelStep = {\n step1: '①',\n step2: '②',\n} as const\n\n/** 空き状況ステータス */\nexport const availabilityStatus = {\n /** 対象外 */\n outside: '0',\n /** 空き無し */\n noSpace: '1',\n /** 空きあり */\n vacant: '2',\n /** キャンセル待ち可 */\n wait: '3',\n /** 予約済(確定済み) */\n doneFixed: '4',\n /** 予約済(キャンセル待ち) */\n doneWait: '5',\n /** 予約済(未確定) */\n doneNotFixed: '6',\n /** 抽選予約可能 */\n lotteryReservationAvailable: '7',\n /** 抽選予約済み */\n lotteryReserved: '8',\n} as const\n\n/** 受付時間単位パターン */\nexport const receptionTimePattern = {\n quarterOfHour: '1',\n halfOfHour: '2',\n hour: '3',\n amPm: '4',\n allDay: '5',\n} as const\n\ninterface reservableUnitPatterMinuteType {\n readonly [key: string]: number | null\n}\n/** 予約可能単位の時間(分)*/\nexport const reservableUnitPatterMinutes: reservableUnitPatterMinuteType = {\n /**15分 */\n [receptionTimePattern.quarterOfHour]: 15,\n /** 30分 */\n [receptionTimePattern.halfOfHour]: 30,\n /** 1時間 */\n [receptionTimePattern.hour]: 60,\n /** AMPM */\n [receptionTimePattern.amPm]: null,\n /** 1日 */\n [receptionTimePattern.allDay]: null,\n} as const\n\n/** 利用実績APIのステータス */\nexport const usageRecordApiStatus = {\n unused: '0',\n used: '1',\n canceled: '2',\n} as const\n\n/** 血液型 */\nexport const bloodType = {\n typeUnselected: '-',\n typeA: 'A',\n typeB: 'B',\n typeO: 'O',\n typeAB: 'AB',\n} as const\n\n/** アカウント情報変更時の対象を識別するためのカテゴリー */\nexport const accountChangeVerificationCategory = {\n email: '1',\n tel: '2',\n password: '3',\n} as const\n\n/** 事前面談予約受付可否 */\nexport const preinterviewAccept = {\n /** 電話のみ */\n tel: '0',\n /** 電話とWeb */\n telWeb: '1',\n /** Webのみ */\n web: '2',\n /** 掲載のみ */\n postOnly: '3',\n} as const\n\n/** 事前面談予約受付可否 */\nexport const interviewAcceptMethod = {\n /** 申込のみ */\n applicationOnly: '0',\n /** 面談枠で受け付ける */\n interviewSlots: '1',\n} as const\n\n/** Web予約可否 */\nexport const webReservation = {\n /** Web予約可能 */\n acceptWebReservation: '1',\n} as const\n\n/** 可・不可 */\nexport const available = {\n /** 可 */\n available: '1',\n /** 不可 */\n notAvailable: '0',\n} as const\n\n/** 予約変更制限(面談予約) */\nexport const interviewChangeRestriction = {\n /** 日時共に変更可 */\n allowChangeDatetime: '1',\n /** 時間のみ変更可 */\n allowChangeTimeOnly: '2',\n /** 日時共に変更不可 */\n notAllowChangeDatetime: '3',\n} as const\n\n/** 予約変更制限(利用予約) */\nexport const reservationChangeRestriction = {\n /** 日時共に変更可 */\n allowChangeDatetime: '1',\n /** 時間のみ変更可 */\n allowChangeTimeOnly: '2',\n /** 日時共に変更不可 */\n notAllowChangeDatetime: '3',\n} as const\n\n/** 案内文マスタのID */\nexport const guidTextMstId = {\n /** 退会 */\n unsubscribe: 1,\n /** お子さま利用終了 */\n childUseEnd: 2,\n}\n\n/** 利用予約のステータスの検索条件のID */\nexport const reservationStatusSearchCondition = {\n /** 確定済のみ */\n confirmedOnly: '1',\n /** すべての予約 */\n all: '2',\n} as const\n\n/** 利用履歴のステータスの検索条件のID */\nexport const usageHistoryStatusSearchCondition = {\n /** 利用済のみ */\n usedOnly: '1',\n /** すべての予約 */\n all: '2',\n} as const\n\n/** 利用履歴のステータスの検索条件のID */\nexport const availabilityOfApplication = {\n /** 利用済のみ */\n apply: '1',\n /** すべての予約 */\n notApply: '0',\n} as const\n\n/** 利用目的別コード番号 */\nexport const useReasonCode = {\n common: '0',\n irregular: '1',\n emg: '2',\n refresh: '3',\n} as const\n\n/** 提供証明書機能利用ステータス */\nexport const provisionCertificateFeatureStatus = {\n /** 利用しない */\n notUsed: '1',\n /** 施設管理者のみ利用する */\n onlyManagement: '2',\n /** 施設管理者と利用者で利用する */\n all: '3',\n}\n\nexport const paymentStatus = {\n /** 未徴収 */\n notCollected: '1',\n /** 徴収済み */\n collected: '2',\n}\n\nexport const Flag = {\n OFF: '0',\n ON: '1',\n} as const\n\nexport const mailType = {\n immediatelyCancelVacant: 13,\n} as const\n\n/** 項目マスタの選択肢の整列方向 */\nexport const direction = {\n vertical : '1',\n horizontal : '2',\n} as const\n\n/** 項目マスタの入力種別 */\nexport const fieldType = {\n radio : '1',\n checkBox : '2',\n text : '3',\n textArea : '4',\n} as const\n\nexport const reservationEatingMethod = {\n brestFeeding: '0',\n weaning: '1',\n normal: '2',\n} as const\n\nexport const reservationBrestFeedingDetail = {\n breastMilk: '0',\n formula: '1',\n mixed: '2',\n} as const\n\nexport const medicalDocUsage = {\n noUse: '0',\n optional: '1',\n necessary: '2',\n tillUpload: '3',\n mustHospitalInfo: '4',\n byFacility: '5'\n} as const;\n\nexport const reservationFieldUsage = {\n noUse: '0',\n optional: '1',\n necessary: '2',\n} as const\n\nexport const reservationEmergencyAction = {\n byParent: '0',\n byFacility: '1',\n other: '2',\n} as const\n\nexport const todayConditionInputFieldUsage = {\n noUse: '0',\n optional: '1',\n necessary: '2',\n} as const\n\nexport const todayConditionInputNapType = {\n amOnly: '0',\n pmOnly: '1',\n both: '2',\n} as const\n\nexport const todayConditionDefecationTiming = {\n today: '0',\n yesterday: '1',\n twoDaysAgoOrLater: '2',\n} as const\n\nexport const todayConditionAmountOfFood = {\n plenty: '0',\n normal: '1',\n little: '2',\n none: '3',\n} as const\n\nexport const todayConditionBelongings = {\n milk: '0',\n snack: '1',\n lunch: '2',\n drink: '3',\n other: '4',\n} as const\n\n/** 抽選予約受付方法 */\nexport const lotteryAcceptTypeOption = {\n /** 共通 */\n common: '0',\n /** 利用目的別 */\n byPurposeOfUse: '1',\n} as const;\n\n/** きょうだい全員当選とならない場合 */\nexport const siblingsLotteryResult = {\n /** 当選のままとする */\n doNotReferTo: '0',\n /** 当選を辞退する */\n referTo: '1',\n} as const;\n\n/** 抽選予約ステータス */\nexport const lotteryReservationStauts = {\n /** 抽選待ち */\n PENDING: '0',\n /** 当選 */\n WIN: '1', \n /** 落選 */\n LOSE: '2',\n /** キャンセル済 */\n CANCELLED: '3'\n} as const;\nexport type LotteryReservationStatus = typeof lotteryReservationStauts [keyof typeof lotteryReservationStauts]\n\n/** 抽選方法 */\nexport const lotteryMethod = {\n /** お子さまごと */\n byChild: '1',\n /** 世帯ごと */\n byParent: '2',\n} as const;\n\n/** 送迎者種類 */\nexport const todayConditionEscortType = {\n /** 保護者自身で送迎 */\n transportationByParent: '0',\n /** 代理人による送迎 */\n transportationByAgent : '1',\n} as const;\n\n/** 施設別項目回答形式 */\nexport const facilityInputFieldType = {\n /** 選択肢 */\n select: '0',\n /** 回答文字列 */\n text: '1',\n} as const;\n","import { createAsyncThunk, createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { getAuthenticatedUser } from '../../../../utils/authUtil'\r\nimport { executeGetAccountOtp } from '../../../../dataAccess/webApi/dao/accountDao'\r\nimport { executeGetSessionSettingMst } from '../../../../dataAccess/webApi/dao/sessionSettingMstDao'\r\nimport { yesNo } from '../../../common/constant/classification'\r\n\r\ninterface Userinformation {\r\n loginId: string\r\n verifications: {\r\n tel: boolean\r\n email: boolean\r\n }\r\n}\r\n\r\ninterface AuthorityState {\r\n isLoggedIn: boolean\r\n user?: Userinformation\r\n isOTPAuthenticated: boolean\r\n}\r\n\r\nconst initialState: AuthorityState = {\r\n isLoggedIn: false,\r\n isOTPAuthenticated: false,\r\n}\r\n\r\nconst sliceName = 'authority'\r\n\r\nexport const detectLoginStatus = createAsyncThunk(`${sliceName}/detectLoginStatus`, async (arg, thunkAPI) => {\r\n const sessionSettingMst = await executeGetSessionSettingMst()\r\n\r\n const mfaType = sessionSettingMst.result.mfaType\r\n\r\n try {\r\n const user = await getAuthenticatedUser(true)\r\n\r\n const authLog = await executeGetAccountOtp()\r\n\r\n thunkAPI.dispatch(\r\n setLogin({\r\n loginId: user.attributes.email,\r\n verifications: {\r\n tel: authLog.result.telVerifiedFlag === yesNo.yes,\r\n email: authLog.result.emailVerifiedFlag === yesNo.yes\r\n },\r\n })\r\n )\r\n thunkAPI.dispatch(\r\n setIsOTPAuthenticated(mfaType === '0' || authLog.result.loginFlag === yesNo.yes)\r\n )\r\n } catch (e) {\r\n console.error(e)\r\n thunkAPI.dispatch(setLogin())\r\n thunkAPI.dispatch(setIsOTPAuthenticated(false))\r\n }\r\n})\r\n\r\nexport const authoritySlice = createSlice({\r\n name: sliceName,\r\n initialState,\r\n reducers: {\r\n setLogin: (state, action: PayloadAction) => {\r\n state.isLoggedIn = !!action.payload\r\n state.user = action.payload\r\n },\r\n setIsOTPAuthenticated: (state, action: PayloadAction) => {\r\n state.isOTPAuthenticated = action.payload\r\n },\r\n },\r\n})\r\n\r\nexport const { setLogin, setIsOTPAuthenticated } = authoritySlice.actions\r\nexport const selectIsLoggedIn = (state: RootState) => state.authority.isLoggedIn\r\nexport const selectIsVerifiedTel = (state: RootState) => !!state.authority.user?.verifications.tel\r\nexport const selectIsVerifiedEmail = (state: RootState) => !!state.authority.user?.verifications.email\r\nexport const selectIsVerifiedAll = (state: RootState) =>\r\n !!state.authority.user?.verifications.tel && !!state.authority.user?.verifications.email\r\nexport const selectLoginUser = (state: RootState) => state.authority.user\r\nexport const selectIsOTPAuthenticated = (state: RootState) => state.authority.isOTPAuthenticated\r\nexport default authoritySlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { GetUseReasonDto } from '../../../../dataAccess/webApi/dto/useReasonDto'\r\nimport { \r\n ParentInfoType, \r\n ChildReservationInfoType, \r\n UsageDatetimeType, \r\n ShowMessage,\r\n FacilityInfoType,\r\n CommonInput\r\n} from '../../reservation'\r\n\r\n// TODO: common/reservationに移動する\r\nexport interface IsCertificateUseReasonViewFlags {\r\n irregularFlag: boolean\r\n emgFlag: boolean\r\n refreshFlag: boolean\r\n}\r\n\r\nexport interface FacilityReserveEntry {\r\n reservationNo?: string\r\n showMessages: ShowMessage[]\r\n useReasonCategory: string | null\r\n useReasonDetailCategory: string | null\r\n useReasonDetailDescription: string | null\r\n\r\n /** 利用日時 */\r\n usageDatetimes: UsageDatetimeType[]\r\n\r\n /** 施設情報 */\r\n facility: FacilityInfoType\r\n\r\n /** 保護者情報 */\r\n parentInfo?: ParentInfoType\r\n \r\n /** お子様さま情報 + お子様別予約情報 */\r\n childInfoList: ChildReservationInfoType[]\r\n \r\n /** お子様共通予約情報 */\r\n commonInput?: CommonInput\r\n\r\n /** 利用目的マスタ情報 */\r\n useReason?: GetUseReasonDto\r\n isCertificateUseReasonViewFlags: IsCertificateUseReasonViewFlags\r\n\r\n /** 利用同意事項同意 */\r\n consentCheck?: string\r\n\r\n /** 隔離フラグ */\r\n isolationFlag?: Boolean | null\r\n}\r\n\r\ninterface FacilityReserveState {\r\n entry?: FacilityReserveEntry\r\n updateDatetime?: string\r\n}\r\n\r\nconst initialState: FacilityReserveState = {}\r\n\r\nexport const facilityReserveSlice = createSlice({\r\n name: 'facilityReserve',\r\n initialState,\r\n reducers: {\r\n setFacilityReserve: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n setReserveModifyUpdateDatetime: (state, action: PayloadAction) => {\r\n state.updateDatetime = action.payload\r\n },\r\n clearFacilityReserve: (state) => {\r\n delete state.entry\r\n delete state.updateDatetime\r\n },\r\n },\r\n})\r\n\r\nexport const { setFacilityReserve, setReserveModifyUpdateDatetime, clearFacilityReserve } = facilityReserveSlice.actions\r\nexport const selectFacilityReserveEntry = (state: RootState) => state.facilityReserve.entry\r\nexport const selectReserveModifyUpdateDatetime = (state: RootState) => state.facilityReserve.updateDatetime\r\nexport default facilityReserveSlice.reducer","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\nimport { GetUseReasonDto } from '../../../../dataAccess/webApi/dto/useReasonDto'\r\nimport { ParentInfoType, ChildReservationInfoType, GoingTimeType, CommonInput } from '../../reservation'\r\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\r\n \r\nexport interface FacilityReserveDeleteEntry extends Required> {\r\n reservationNo: string\r\n facilityId: string\r\n \r\n status: string \r\n \r\n useReasonCategory: string | null\r\n useReasonDetailCategory: string | null\r\n useReasonDetailDescription: string | null\r\n\r\n /** 利用日時 */\r\n usageDate: ElapsedMillisecond\r\n useFromDatetime: ElapsedMillisecond\r\n useToDatetime: ElapsedMillisecond\r\n \r\n /** 施設情報 */\r\n facilityName: string\r\n immediatelyReservationFlag: string\r\n lunchAcceptFlag: string\r\n snackAcceptFlag: string\r\n postponeCancelWaitAcceptFlag: string\r\n \r\n /** 保護者情報 */\r\n parentInfo: Omit\r\n\r\n /** お子様さま情報 */\r\n childInfo: ChildReservationInfoType\r\n \r\n /** お子様共通予約情報 */\r\n goingTime: GoingTimeType\r\n\r\n /** 利用目的マスタ情報 */\r\n useReason: GetUseReasonDto\r\n\r\n cancelLimit?: number\r\n cancelLimitTime?: ElapsedMillisecond\r\n cancelNote?: string\r\n cancelLimitHolidayOption?: string\r\n\r\n cancelReason?: string\r\n \r\n /** 事業マスタ */\r\n projectMst: GetProjectDetailDto\r\n}\r\n\r\ninterface FacilityReserveDeleteState {\r\n entry?: FacilityReserveDeleteEntry\r\n /** 排他制御用更新日時 */\r\n updateDatetime?: string\r\n}\r\nconst initialState: FacilityReserveDeleteState = {}\r\n\r\nexport const facilityReserveDeleteSlice = createSlice({\r\n name: 'facilityReserveDelete',\r\n initialState,\r\n reducers: {\r\n setFacilityReserveDeleteEntry: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n setFacilityReserveDeleteUpdateDatetime: (state, action: PayloadAction) => {\r\n state.updateDatetime = action.payload\r\n },\r\n clearFacilityReserveDelete: (state) => {\r\n delete state.entry\r\n delete state.updateDatetime\r\n },\r\n },\r\n})\r\n\r\nexport const { setFacilityReserveDeleteEntry, setFacilityReserveDeleteUpdateDatetime, clearFacilityReserveDelete } =\r\n facilityReserveDeleteSlice.actions\r\nexport const selectFacilityReserveDeleteEntry = (state: RootState) => state.facilityReserveDelete.entry\r\nexport const selectFacilityReserveDeleteUpdateDatetime = (state: RootState) =>\r\n state.facilityReserveDelete.updateDatetime\r\nexport default facilityReserveDeleteSlice.reducer","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport {\r\n GetTodayConditionInputDetailDto,\r\n PutTodayConditionInputDto,\r\n} from '../../../../dataAccess/webApi/dto/reservationsDto'\r\n\r\ninterface FacilityReserveTodayConditionInputState {\r\n reservationInfo?: GetTodayConditionInputDetailDto['reservationInfo']\r\n todayConditionInputFieldsInfo?: GetTodayConditionInputDetailDto['todayConditionInputFieldsInfo']\r\n input?: PutTodayConditionInputDto\r\n}\r\n\r\nconst initialState: FacilityReserveTodayConditionInputState = {}\r\n\r\nexport const facilityReserveTodayConditionInputSlice = createSlice({\r\n name: 'facilityReserveTodayConditionInput',\r\n initialState,\r\n reducers: {\r\n setReservationInfo: (state, action: PayloadAction) => {\r\n state.reservationInfo = action.payload\r\n },\r\n clearReservationInfo: (state) => {\r\n delete state.reservationInfo\r\n },\r\n setTodayConditionInputFieldsInfo: (state, action: PayloadAction) => {\r\n state.todayConditionInputFieldsInfo = action.payload\r\n },\r\n clearTodayConditionInputFieldsInfo: (state) => {\r\n delete state.todayConditionInputFieldsInfo\r\n },\r\n setInput: (state, action: PayloadAction) => {\r\n state.input = action.payload\r\n },\r\n clearInput: (state) => {\r\n delete state.input\r\n },\r\n },\r\n})\r\n\r\nexport const {\r\n setReservationInfo,\r\n clearReservationInfo,\r\n setTodayConditionInputFieldsInfo,\r\n clearTodayConditionInputFieldsInfo,\r\n setInput,\r\n clearInput\r\n} = facilityReserveTodayConditionInputSlice.actions\r\nexport const selectInput = (state: RootState) => state.facilityReserveTodayConditionInput.input\r\nexport const selectReservationInfo = (state: RootState) => state.facilityReserveTodayConditionInput.reservationInfo\r\nexport const selectTodayConditionInputFieldsInfo = (state: RootState) => state.facilityReserveTodayConditionInput.todayConditionInputFieldsInfo\r\nexport default facilityReserveTodayConditionInputSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\ninterface MapPosition {\r\n latitude: number\r\n longitude: number\r\n}\r\n\r\nexport interface SearchCondition {\r\n /** 現在地 */\r\n currentLocation?: MapPosition\r\n /** 地域 */\r\n areas?: string[]\r\n /** 年齢 */\r\n ages?: string[]\r\n /** フリーワード */\r\n freeWord?: string\r\n /** Web受付可否 */\r\n reservationAcceptFlag?: string[]\r\n /** 事業ID */\r\n projectIds?: string[]\r\n /** 事業項目が選択状態 */\r\n isProjectSelected?: boolean\r\n /** 施設種別 */\r\n facilityCategories?: string[]\r\n /** その他詳細条件 */\r\n otherDetailConditions?: string[]\r\n /** 利用日 */\r\n usageDate?: ElapsedMillisecond\r\n /** 利用目的 */\r\n purposeOfUses?: string[]\r\n /** 並び順 */\r\n sortOrder?: string\r\n}\r\nexport interface Facility {\r\n facilityId: string\r\n facilityName: string\r\n projectName?: string\r\n address1?: string\r\n address2?: string\r\n buildingNameRoomNo?: string\r\n openTimeWeekday?: string\r\n openTimeSaturday?: string\r\n openTimeHoliday?: string\r\n latitude: number\r\n longitude: number\r\n nearestStation?: string\r\n imageUrl?: string\r\n acceptStartAge?: number\r\n acceptStartMonth?: number\r\n acceptStartDay?: number\r\n acceptStartAgeGradeFlag?: string\r\n acceptEndAge?: number\r\n acceptEndMonth?: number\r\n acceptEndDay?: number\r\n acceptEndAgeGradeFlag?: string\r\n reservationAcceptFlag: string\r\n}\r\n\r\ninterface SearchResult {\r\n isDirty: boolean\r\n isLimitOver: boolean\r\n allFacilities: Facility[]\r\n mapCenter?: MapPosition\r\n activeFacilityId?: string\r\n}\r\n\r\nexport interface CodeEntry {\r\n value: string\r\n label: string\r\n}\r\nexport interface CodeMaster {\r\n /** 地域 */\r\n areas?: CodeEntry[]\r\n /** 年齢 */\r\n ages?: CodeEntry[]\r\n /** Web予約可否 */\r\n reservationAcceptFlag?: CodeEntry[]\r\n /** 事業 */\r\n projects?: CodeEntry[]\r\n /** 事業項目が選択状態 */\r\n isProjectSelected?: boolean\r\n /** 施設種別 */\r\n facilityCategories?: CodeEntry[]\r\n /** その他詳細条件 */\r\n otherDetailConditions?: CodeEntry[]\r\n /** 利用目的 */\r\n purposeOfUses?: CodeEntry[]\r\n}\r\n\r\ninterface FacilitySearchState {\r\n condition?: SearchCondition\r\n result?: SearchResult\r\n codeMaster: CodeMaster\r\n isDisabledCurrentLocation: boolean\r\n}\r\n\r\nconst initialState: FacilitySearchState = {\r\n codeMaster: {},\r\n isDisabledCurrentLocation: false,\r\n}\r\n\r\nexport const facilitySearchSlice = createSlice({\r\n name: 'facilitySearch',\r\n initialState,\r\n reducers: {\r\n setFacilitySearchCondition: (state, action: PayloadAction) => {\r\n state.condition = action.payload\r\n if (state.result) {\r\n state.result.isDirty = true\r\n }\r\n },\r\n clearFacilitySearchCondition: (state) => {\r\n delete state.condition\r\n },\r\n setFacilitySearchSortOrder: (\r\n state,\r\n action: PayloadAction<{ sortOrder: string; currentLocation?: MapPosition; isDisabledCurrentLocation?: boolean }>\r\n ) => {\r\n if (state.condition) {\r\n state.condition.sortOrder = action.payload.sortOrder\r\n if (action.payload.currentLocation) {\r\n state.condition.currentLocation = action.payload.currentLocation\r\n }\r\n if (state.result) {\r\n state.result.isDirty = true\r\n }\r\n }\r\n if (action.payload.isDisabledCurrentLocation != null) {\r\n state.isDisabledCurrentLocation = action.payload.isDisabledCurrentLocation\r\n }\r\n },\r\n setFacilitySearchResult: (\r\n state,\r\n action: PayloadAction<{ searchResult?: { isLimitOver: boolean; allFacilities: Facility[] } }>\r\n ) => {\r\n const { searchResult } = action.payload\r\n if (searchResult) {\r\n const { allFacilities, isLimitOver } = searchResult\r\n state.result = { allFacilities, isLimitOver, isDirty: false }\r\n const firstFaclitity = allFacilities[0]\r\n if (firstFaclitity) {\r\n const { latitude, longitude } = firstFaclitity\r\n state.result.mapCenter = { latitude, longitude }\r\n }\r\n }\r\n },\r\n setActiveFacility: (state, action: PayloadAction) => {\r\n if (state.result) {\r\n state.result.activeFacilityId = action.payload\r\n }\r\n },\r\n clearActiveFacility: (state) => {\r\n if (state.result) {\r\n delete state.result.activeFacilityId\r\n }\r\n },\r\n clearFacilitySearchResult: (state) => {\r\n delete state.result\r\n },\r\n setMapCenter: (state, action: PayloadAction) => {\r\n if (state.result != null) {\r\n state.result.mapCenter = action.payload\r\n }\r\n },\r\n setFacilitySearchCodeMaster: (state, action: PayloadAction) => {\r\n state.codeMaster = { ...state.codeMaster, ...action.payload }\r\n },\r\n },\r\n})\r\n\r\nexport const {\r\n setFacilitySearchCondition,\r\n clearFacilitySearchCondition,\r\n setFacilitySearchSortOrder,\r\n setFacilitySearchResult,\r\n setActiveFacility,\r\n clearActiveFacility,\r\n clearFacilitySearchResult,\r\n setMapCenter,\r\n setFacilitySearchCodeMaster,\r\n} = facilitySearchSlice.actions\r\nexport const selectFacilitySearchCondition = (state: RootState) => state.facilitySearch.condition\r\nexport const selectResultIsDirty = (state: RootState) => state.facilitySearch.result?.isDirty\r\nexport const selectResultIsLimitOver = (state: RootState) => state.facilitySearch.result?.isLimitOver ?? false\r\nexport const selectResultAllFacilities = (state: RootState) => state.facilitySearch.result?.allFacilities\r\nexport const selectResultActiveFacilityId = (state: RootState) => state.facilitySearch.result?.activeFacilityId\r\nexport const selectResultMapCenter = (state: RootState) => state.facilitySearch.result?.mapCenter\r\nexport const selectFacilitySearchCodeMaster = (state: RootState) => state.facilitySearch.codeMaster\r\nexport const selectIsDisabledCurrentLocation = (state: RootState) => state.facilitySearch.isDisabledCurrentLocation\r\nexport default facilitySearchSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\nimport { TempFile } from '../../interview'\r\n\r\nexport interface InterviewReserveEntry {\r\n facilityId: string\r\n childId: string\r\n interviewNo?: string\r\n childIds?: string[]\r\n\r\n parentName?: string\r\n parentKana?: string\r\n postalCode?: string\r\n address1?: string\r\n address2?: string\r\n buildingNameRoomNumber?: string\r\n residenceCategory?: string\r\n residenceCategoryName?: string\r\n relationship?: string\r\n\r\n isDisabledResidenceCategory?: boolean\r\n\r\n children?: {\r\n childId: string\r\n childName: string\r\n childKana: string\r\n childGender: string\r\n childBirthday: ElapsedMillisecond\r\n childMedicalHistoryFlag: string\r\n childMedicalHistory: string\r\n childAllergyFlag: string\r\n childAllergy: string\r\n maternalHandbookNo: string\r\n note: string\r\n facilityNumber: string\r\n childUpdateDatetime: string\r\n childInterviewPermitCount: number\r\n availabilityOfApplication: string\r\n tempFile?: TempFile\r\n }[]\r\n\r\n /** 面談日時 */\r\n interviewDatetimes?: {\r\n interviewDate: ElapsedMillisecond\r\n interviewFromDatetime: ElapsedMillisecond\r\n interviewToDatetime: ElapsedMillisecond\r\n status: string\r\n }[]\r\n}\r\n\r\ninterface InterviewReserveState {\r\n entry?: InterviewReserveEntry\r\n /** 排他制御用更新日時 */\r\n updateDatetimes?: {\r\n userUpdateDatetime: string\r\n interviewUpdateDatetime?: string\r\n }\r\n}\r\n\r\nconst initialState: InterviewReserveState = {}\r\n\r\nexport const interviewReserveSlice = createSlice({\r\n name: 'interviewReserve',\r\n initialState,\r\n reducers: {\r\n setInterviewReserve: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n setInterviewReserveUpdateDatetime: (\r\n state,\r\n action: PayloadAction<{ userUpdateDatetime: string; interviewUpdateDatetime?: string }>\r\n ) => {\r\n state.updateDatetimes = action.payload\r\n },\r\n clearInterviewReserve: (state) => {\r\n delete state.entry\r\n },\r\n },\r\n})\r\nexport const { setInterviewReserve, setInterviewReserveUpdateDatetime, clearInterviewReserve } =\r\n interviewReserveSlice.actions\r\nexport const selectInterviewReserveEntry = (state: RootState) => state.interviewReserve.entry\r\nexport const selectInterviewReserveUpdateDatetimes = (state: RootState) => state.interviewReserve.updateDatetimes\r\nexport default interviewReserveSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\n\r\nexport interface InterviewReservationDeleteEntry {\r\n interviewNo: string\r\n\r\n facilityId: string\r\n facilityName: string\r\n\r\n interviewDate?: ElapsedMillisecond\r\n interviewStartDatetime?: ElapsedMillisecond\r\n interviewEndDatetime?: ElapsedMillisecond\r\n reservationDatetime: ElapsedMillisecond\r\n reservationChangeDatetime?: ElapsedMillisecond\r\n reservationCancelDatetime?: ElapsedMillisecond\r\n status: string\r\n permitFlag: string\r\n\r\n parentName: string\r\n parentKana: string\r\n tel: string\r\n email: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber?: string\r\n residenceCategory: string\r\n residenceCategoryName: string\r\n relationship?: string\r\n\r\n childId?: string\r\n childName: string\r\n childKana: string\r\n childBirthday: ElapsedMillisecond\r\n childGender: string\r\n childMedicalHistoryFlag: string\r\n childMedicalHistory?: string\r\n childAllergyFlag: string\r\n childAllergy?: string\r\n\r\n maternalHandbookNo?: string\r\n note?: string\r\n facilityNumber?: string\r\n\r\n cancelLimit?: number\r\n cancelLimitTime?: ElapsedMillisecond\r\n cancelNote?: string\r\n cancelExcludeHolidayFlag?: string\r\n cancelLimitHolidayOption?: string\r\n\r\n cancelReason?: string\r\n\r\n immediatelyReservationFlag: string\r\n isInterviewDocsFlagOn: boolean\r\n}\r\n\r\ninterface InterviewReserveDeleteState {\r\n entry?: InterviewReservationDeleteEntry\r\n /** 排他制御用更新日時 */\r\n updateDatetime?: string\r\n}\r\nconst initialState: InterviewReserveDeleteState = {}\r\n\r\nexport const interviewReserveDeleteSlice = createSlice({\r\n name: 'interviewReserveDelete',\r\n initialState,\r\n reducers: {\r\n setInterviewReserveDeleteEntry: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n setInterviewReserveDeleteUpdateDatetime: (state, action: PayloadAction) => {\r\n state.updateDatetime = action.payload\r\n },\r\n clearInterviewReserveDelete: (state) => {\r\n delete state.entry\r\n delete state.updateDatetime\r\n },\r\n },\r\n})\r\n\r\nexport const { setInterviewReserveDeleteEntry, setInterviewReserveDeleteUpdateDatetime, clearInterviewReserveDelete } =\r\n interviewReserveDeleteSlice.actions\r\nexport const selectInterviewReserveDeleteEntry = (state: RootState) => state.interviewReserveDelete.entry\r\nexport const selectInterviewReserveDeleteUpdateDatetime = (state: RootState) =>\r\n state.interviewReserveDelete.updateDatetime\r\nexport default interviewReserveDeleteSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\n\r\nexport interface MemberAddChildEntry {\r\n name: string\r\n kana: string\r\n birthday: ElapsedMillisecond\r\n brothersSistersFlag: string\r\n multipleBirthsFlag: string\r\n gender: string\r\n bloodType: string\r\n maternalHandbookNo: string\r\n}\r\n\r\ninterface MemberAddChildState {\r\n childEntry?: MemberAddChildEntry\r\n}\r\n\r\nconst initialState: MemberAddChildState = {}\r\n\r\nexport const memberAddChildSlice = createSlice({\r\n name: 'memberAddChild',\r\n initialState,\r\n reducers: {\r\n setMemberAddChild: (state, action: PayloadAction) => {\r\n state.childEntry = action.payload\r\n },\r\n clearMemberAddChild: (state) => {\r\n delete state.childEntry\r\n },\r\n },\r\n})\r\nexport const { setMemberAddChild, clearMemberAddChild } = memberAddChildSlice.actions\r\nexport const selectMemberAddChildEntry = (state: RootState) => state.memberAddChild.childEntry\r\nexport default memberAddChildSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\n\r\nexport interface MemberModifyUserEntry {\r\n name: string\r\n kana: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber: string\r\n residenceCategory: string\r\n residenceCategoryName: string\r\n relationship: string\r\n\r\n emergencyContactName1: string\r\n emergencyContactKana1: string\r\n emergencyContactRelationship1: string\r\n emergencyContactCompany1: string\r\n emergencyContactTel1: string\r\n emergencyContactEmail1: string\r\n\r\n emergencyContactName2: string\r\n emergencyContactKana2: string\r\n emergencyContactRelationship2: string\r\n emergencyContactCompany2: string\r\n emergencyContactTel2: string\r\n emergencyContactEmail2: string\r\n\r\n emergencyContactName3: string\r\n emergencyContactKana3: string\r\n emergencyContactRelationship3: string\r\n emergencyContactCompany3: string\r\n emergencyContactTel3: string\r\n emergencyContactEmail3: string\r\n \r\n isDisabledResidenceCategory: boolean\r\n}\r\n\r\nexport interface MemberModifyChildEntry {\r\n childId: string\r\n name: string\r\n kana: string\r\n birthday: ElapsedMillisecond\r\n brothersSistersFlag: string\r\n multipleBirthsFlag: string\r\n gender: string\r\n bloodType: string\r\n maternalHandbookNo: string\r\n}\r\n\r\ninterface MemberModifyState {\r\n userEntry?: MemberModifyUserEntry\r\n childEntry?: MemberModifyChildEntry\r\n /** 排他制御用更新日時 */\r\n updateDatetime?: string\r\n}\r\n\r\nconst initialState: MemberModifyState = {}\r\n\r\nexport const memberModifySlice = createSlice({\r\n name: 'memberModify',\r\n initialState,\r\n reducers: {\r\n setMemberModifyUser: (state, action: PayloadAction) => {\r\n state.userEntry = action.payload\r\n },\r\n setMemberModifyChild: (state, action: PayloadAction) => {\r\n state.childEntry = action.payload\r\n },\r\n setMemberModifyUpdateDatetime: (state, action: PayloadAction) => {\r\n state.updateDatetime = action.payload\r\n },\r\n clearMemberModify: (state) => {\r\n delete state.userEntry\r\n delete state.childEntry\r\n delete state.updateDatetime\r\n },\r\n },\r\n})\r\nexport const {\r\n setMemberModifyUser,\r\n setMemberModifyChild,\r\n setMemberModifyUpdateDatetime,\r\n clearMemberModify,\r\n} = memberModifySlice.actions\r\nexport const selectMemberModifyUserEntry = (state: RootState) => state.memberModify.userEntry\r\nexport const selectMemberModifyChildEntry = (state: RootState) => state.memberModify.childEntry\r\nexport const selectMemberModifyUpdateDatetime = (state: RootState) => state.memberModify.updateDatetime\r\nexport default memberModifySlice.reducer\r\n","export const DOCS_SUBMIT_STATUS = {\n UN_SUBMITTED: '未提出',\n UPLOADED: 'アップロード提出済',\n HANDED: '施設に直接提出済み',\n} as const\n\n// 提供証明書発行ステータス\nexport const PROVISIONED_CERTIFICATE_STATUS = {\n /** 未発行 */\n UNISSUED: '1',\n /** 発行済 */\n ISSUE: '2',\n} as const\nexport type PROVISIONED_CERTIFICATE_STATUS =\n (typeof PROVISIONED_CERTIFICATE_STATUS)[keyof typeof PROVISIONED_CERTIFICATE_STATUS]\n\n//\nexport const PROVISION_CERTIFICATE_USER_REISSUE_STATUS = {\n /** 再発行不可 */\n REISSUE_DISABLED: '1',\n /** 再発行可 */\n REISSUE_ALLOWED: '2',\n /** 差分のみ発行可 */\n DIFFERENCE_ALLOWED: '3',\n} as const\nexport type PROVISION_CERTIFICATE_USER_REISSUE_STATUS =\n (typeof PROVISION_CERTIFICATE_USER_REISSUE_STATUS)[keyof typeof PROVISION_CERTIFICATE_USER_REISSUE_STATUS]\n\n/** 利用料金設定の適応地域 */\nexport const LOCATION_STATUS = {\n /** 共通 */\n COMMON: 1,\n /** 市内 */\n INSIDE: 2,\n /** 市外 */\n OUTSIDE: 3,\n /** その他 */\n OTHER: 4,\n} as const\nexport type LOCATION_STATUS = (typeof LOCATION_STATUS)[keyof typeof LOCATION_STATUS]\n\n/** 利用料金設定表示ステータス */\nexport const USAGE_FEE_DISPLAY_STATUS = {\n /** 利用料金設定に登録されている設定 */\n SETTING: 1,\n /** 利用料金設定の最終確認画面の利用料金案内 */\n NOTE: 2,\n /** 両方表示 */\n ALL: 3,\n} as const\nexport type USAGE_FEE_DISPLAY_STATUS = (typeof USAGE_FEE_DISPLAY_STATUS)[keyof typeof USAGE_FEE_DISPLAY_STATUS]\n\n/** 利用料金設定パターン */\nexport const CALCULATION_PATTERN = {\n /** データが存在しない場合 */\n NOTE: 0,\n /** 年齢別料金設定 */\n PATTERN1: 1,\n /** 時間別料金設定 */\n PATTERN2: 2,\n} as const\nexport type CALCULATION_PATTERN = (typeof CALCULATION_PATTERN)[keyof typeof CALCULATION_PATTERN]\n\nexport const AGE_REGION_BASED_FEE_DAY_TYPE = {\n /** 平日 */\n DAY: 1,\n} as const\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { ElapsedMillisecond } from '../../../../utils/dateUtil'\r\nimport { lotteryMethod, provisionCertificateFeatureStatus, yesNo } from '../../constant/classification'\r\nimport { PROVISION_CERTIFICATE_USER_REISSUE_STATUS, USAGE_FEE_DISPLAY_STATUS } from '../../constant/commonConstant'\r\n\r\n/**\r\n * システム全体の制御情報\r\n * 市民機能で必要な情報があれば追加する\r\n */\r\nexport interface SystemControl {\r\n serviceTitle: string\r\n /** ユーザー向けサービスURL */\r\n serviceUrlForUser: string\r\n /** 管理者向けサービスURL */\r\n serviceUrlForManager: string\r\n iconImageName: string | null\r\n s3BucketNameIcon: string\r\n projectSearchFlag: string\r\n facilityCategorySearchFlag: string\r\n systemDatetime?: ElapsedMillisecond\r\n /** 利用規約 */\r\n termsOfService: string\r\n /** アカウント作成案内文 */\r\n accountCreateInformation: string\r\n /** S3バケット(操作マニュアル) */\r\n s3BucketNameManual: string\r\n /** S3バケット(利用規約) */\r\n s3BucketNameTermsOfUse: string\r\n /** S3バケット(医師連絡票)*/\r\n s3BucketNameCitizenUserReservationFile: string\r\n /** S3バケット(添付ファイル)*/\r\n s3BucketNameCitizenUserLotteryReservation: string\r\n /** S3バケット(添付ファイル)*/\r\n s3BucketNameCitizenUserInterviewFile: string\r\n\r\n useCouponFunctionFlag: string\r\n /** クーポン利用できる期限(開始日) */\r\n usageCouponFromDate?: ElapsedMillisecond\r\n /** クーポン利用できる期限(終了日) */\r\n usageCouponToDate?: ElapsedMillisecond\r\n /** アカウント退会受付可否フラグ */\r\n unsubscribeAcceptFlag: string\r\n /** お子さま利用終了受付可否フラグ */\r\n childUseEndAcceptFlag: string\r\n /** SSO利用フラグ */\r\n ssoUseFlag: string\r\n /** SSOリンク先名称 */\r\n ssoUseName: string | null\r\n /** SSO連携時メール認証要否 */\r\n ssoEmailCertificationFlag: string | null\r\n /** SMS契約有無フラグ */\r\n smsSubscriptionFlag: string\r\n /** 電話番号の認証要否 */\r\n phoneCertificationFlag: string\r\n /** 面談申込時のお子さま複数申込可否 */\r\n interviewBulkReceptionFlag: string\r\n /** 利用予約の重複登録フラグ */\r\n duplicateConfirmControlFlag: string,\r\n duplicateUnsettledControlFlag: string,\r\n duplicateWaitControlFlag: string,\r\n /** 事業を跨いだ重複判定フラグ */\r\n crossBusinessDuplicationCheckFlag: string\r\n /** 複数お子さま登録可否フラグ */\r\n multiChildReservationAvailabilityFlag: string\r\n /** 利用者の退会時説明文 */\r\n descriptionForUnsubscribe: string\r\n /** お子さまの利用終了時説明文 */\r\n descriptionForChildUseEnd: string\r\n /** 提供証明書機能の利用有無 */\r\n provisionCertificateFeatureStatus: string\r\n /** 徴収ステータス利用有無フラグ */\r\n paymentStatusFlag: string\r\n /** (提供証明)徴収ステータス利用有無フラグ */\r\n provisionCertificatePaymentStatusFlag: string\r\n /** 利用者による再発行ステータス */\r\n provisionCertificateUserReissueStatus: PROVISION_CERTIFICATE_USER_REISSUE_STATUS\r\n usageFeeDisplayStatus: USAGE_FEE_DISPLAY_STATUS\r\n /** 提供証明書出力可能年月(yyyy/MM) */\r\n issuableDate: string | null\r\n\r\n /** 抽選予約機能自治体使用フラグ */\r\n lotteryDisplayFlag: string\r\n /** 抽選予約機能利用フラグ */\r\n lotteryFlag: string\r\n /** 抽選方法(お子様ごと・世帯ごと) */\r\n lotteryMethod: string\r\n\r\n /** 承諾通知書機能ステータス */\r\n acceptNoticeStatus: string\r\n}\r\n\r\nconst defaultSystemControl: SystemControl = {\r\n serviceTitle: '',\r\n serviceUrlForUser: '',\r\n serviceUrlForManager: '',\r\n iconImageName: '',\r\n termsOfService: '',\r\n accountCreateInformation: '',\r\n s3BucketNameIcon: '',\r\n projectSearchFlag: yesNo.no,\r\n facilityCategorySearchFlag: yesNo.no,\r\n s3BucketNameManual: '',\r\n s3BucketNameTermsOfUse: '',\r\n s3BucketNameCitizenUserReservationFile: '',\r\n s3BucketNameCitizenUserLotteryReservation: '',\r\n s3BucketNameCitizenUserInterviewFile: '',\r\n useCouponFunctionFlag: yesNo.no,\r\n unsubscribeAcceptFlag: yesNo.no,\r\n childUseEndAcceptFlag: yesNo.no,\r\n ssoUseFlag: yesNo.no,\r\n ssoUseName: null,\r\n ssoEmailCertificationFlag: null,\r\n smsSubscriptionFlag: yesNo.no,\r\n phoneCertificationFlag: yesNo.no,\r\n interviewBulkReceptionFlag: yesNo.no,\r\n duplicateConfirmControlFlag: yesNo.no,\r\n duplicateUnsettledControlFlag: yesNo.no,\r\n duplicateWaitControlFlag: yesNo.no,\r\n crossBusinessDuplicationCheckFlag: yesNo.no,\r\n multiChildReservationAvailabilityFlag: yesNo.no,\r\n descriptionForUnsubscribe: '',\r\n descriptionForChildUseEnd: '',\r\n provisionCertificateFeatureStatus: provisionCertificateFeatureStatus.notUsed,\r\n paymentStatusFlag: yesNo.no,\r\n provisionCertificatePaymentStatusFlag: yesNo.no,\r\n provisionCertificateUserReissueStatus: PROVISION_CERTIFICATE_USER_REISSUE_STATUS.REISSUE_DISABLED,\r\n usageFeeDisplayStatus: USAGE_FEE_DISPLAY_STATUS.NOTE,\r\n issuableDate: null,\r\n lotteryDisplayFlag: yesNo.no,\r\n lotteryFlag: yesNo.no,\r\n lotteryMethod: lotteryMethod.byChild,\r\n acceptNoticeStatus: ''\r\n}\r\n\r\ninterface SystemControlState {\r\n systemControl?: SystemControl\r\n}\r\n\r\nconst initialState: SystemControlState = {}\r\n\r\nconst sliceName = 'systemControl'\r\n\r\nexport const systemControlSlice = createSlice({\r\n name: sliceName,\r\n initialState,\r\n reducers: {\r\n setSystemControl: (state, action: PayloadAction) => {\r\n state.systemControl = action.payload\r\n },\r\n },\r\n})\r\n\r\nexport const { setSystemControl } = systemControlSlice.actions\r\nexport const selectSystemControl = (state: RootState) => state.systemControl.systemControl ?? defaultSystemControl\r\nexport default systemControlSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { RootState } from '..'\n\nexport interface LoginEntry {\n email?: string\n password?: string\n error?: string\n}\n\ninterface LoginState {\n entry?: LoginEntry\n}\n\nconst initialState: LoginState = {}\n\nexport const loginSlice = createSlice({\n name: 'login',\n initialState,\n reducers: {\n setLoginForm: (state, action: PayloadAction) => {\n state.entry = action.payload\n },\n clearLoginForm: (state) => {\n delete state.entry\n },\n },\n})\nexport const { setLoginForm, clearLoginForm } = loginSlice.actions\nexport const selectLogin = (state: RootState) => state.login.entry\nexport const selectLoginError = (state: RootState) => state.login.entry?.error\nexport default loginSlice.reducer\n","// HOIKU-1949のfacilityReserveを参照\r\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { GetUseReasonDto } from '../../../../dataAccess/webApi/dto/useReasonDto'\r\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\r\nimport { \r\n FacilityInfoType,\r\n ParentInfoType, \r\n ChildLotteryReservationInfoType, \r\n UsageDatetimeType, \r\n CommonInput,\r\n IsCertificateUseReasonViewFlags\r\n} from '../../lotteryReservation'\r\n\r\nexport interface LotteryReserveEntry {\r\n reservationNo?: string\r\n updateDatetime?: string\r\n \r\n useReasonCategory: string | null\r\n useReasonDetailCategory: string | null\r\n useReasonDetailDescription: string | null\r\n\r\n /** 利用日時 */\r\n usageDatetimes: UsageDatetimeType[]\r\n\r\n /** 施設情報 */\r\n facility: FacilityInfoType\r\n\r\n /** 保護者情報 */\r\n parentInfo?: ParentInfoType\r\n \r\n /** お子様さま情報 + お子様別予約情報 */\r\n childInfoList: ( ChildLotteryReservationInfoType & { siblingsLotteryResultReferenceFlag?: string } )[]\r\n \r\n /** お子様共通予約情報 */\r\n commonInput?: CommonInput\r\n\r\n /** 利用目的マスタ情報 */\r\n useReason?: GetUseReasonDto\r\n\r\n /** 事業マスタ */\r\n projectMst?: GetProjectDetailDto\r\n\r\n /** 証明書情報に基づく利用目的の表示非表示の切り替え */\r\n isCertificateUseReasonViewFlags: IsCertificateUseReasonViewFlags\r\n /** 病気 */\r\n diagonosis?: {\r\n first: string | null,\r\n second: string | null\r\n } \r\n}\r\n\r\ninterface LotteryReserveState {\r\n entry?: LotteryReserveEntry\r\n}\r\n\r\nconst initialState: LotteryReserveState = {}\r\n\r\nexport const lotteryReserveSlice = createSlice({\r\n name: 'lotteryReserve',\r\n initialState,\r\n reducers: {\r\n setLotteryReserve: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n clearLotteryReserve: (state) => {\r\n delete state.entry\r\n },\r\n },\r\n})\r\n\r\nexport const { setLotteryReserve, clearLotteryReserve } = lotteryReserveSlice.actions\r\nexport const selectLotteryReserveEntry = (state: RootState) => state.lotteryReserve.entry\r\nexport default lotteryReserveSlice.reducer\r\n","// HOIKU-1949のfacilityReserveを参照\r\nimport { createSlice, PayloadAction } from '@reduxjs/toolkit'\r\nimport { RootState } from '..'\r\nimport { LotteryReserveEntry } from './lotteryReserve'\r\nimport { CommonInput } from '../../lotteryReservation'\r\n\r\nexport type LotteryReserveCancelEntry = Omit<\r\n Required>,\r\n 'diagonosis'\r\n> & { diagonosis?: { first: string | null; second: string | null } } & Omit & {\r\n cancelReason: { select: string; stringify?: string }\r\n};\r\n\r\ninterface LotteryReserveCancelState {\r\n entry?: LotteryReserveCancelEntry\r\n}\r\n\r\nconst initialState: LotteryReserveCancelState = {}\r\n\r\nexport const lotteryReserveCancelSlice = createSlice({\r\n name: 'lotteryReserveCompleted',\r\n initialState,\r\n reducers: {\r\n setLotteryCancelReserve: (state, action: PayloadAction) => {\r\n state.entry = action.payload\r\n },\r\n clearLotteryReserveCancel: (state) => {\r\n delete state.entry\r\n },\r\n },\r\n})\r\n\r\nexport const { setLotteryCancelReserve, clearLotteryReserveCancel } = lotteryReserveCancelSlice.actions\r\nexport const selectLotteryReserveCancelEntry = (state: RootState) => state.lotteryReserveCancel.entry\r\nexport default lotteryReserveCancelSlice.reducer\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { RootState } from '..'\n\nexport interface ResetPasswordEntry {\n email?: string,\n error?: string,\n isSuccessResetPassword?: boolean,\n}\n\ninterface ResetPasswordState {\n entry?: ResetPasswordEntry\n}\n\nconst initialState: ResetPasswordState = {}\n\nexport const resetPasswordSlice = createSlice({\n name: 'resetPassword',\n initialState,\n reducers: {\n setResetPassword: (state, action: PayloadAction) => {\n state.entry = action.payload\n },\n clearResetPassword: (state) => {\n delete state.entry\n },\n },\n})\nexport const { setResetPassword, clearResetPassword } = resetPasswordSlice.actions\nexport const selectResetPasswordEntry = (state: RootState) => state.resetPassword.entry\nexport const selectResetPasswordEmail = (state: RootState) => state.resetPassword.entry?.email\nexport const selectResetPasswordError = (state: RootState) => state.resetPassword.entry?.error\nexport const selectIsSuccessResetPassword = (state: RootState) => state.resetPassword.entry?.isSuccessResetPassword\nexport default resetPasswordSlice.reducer\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { RootState } from '..'\nimport { CognitoUser } from 'amazon-cognito-identity-js';\n\ninterface CognitoUserState {\n entry?: CognitoUser\n}\n\nconst initialState: CognitoUserState = {}\n\nexport const cognitoUserSlice = createSlice({\n name: 'cognitoUser',\n initialState,\n reducers: {\n setCognitoUser: (state, action: PayloadAction) => {\n state.entry = action.payload\n },\n clearCognitoUser: (state) => {\n delete state.entry\n },\n },\n})\n\nexport const { setCognitoUser, clearCognitoUser } = cognitoUserSlice.actions\nexport const selectCognitoUser = (state: RootState) => state.cognitoUser.entry\nexport default cognitoUserSlice.reducer\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit'\nimport { RootState } from '..'\n\nexport interface FacilitySearchSettingMst {\n projectCategoryId: string\n projectCategoryName: string\n intermediateDisplayFlag: string\n searchConditionDisplayFlag: string\n ageSearchFlag: string | null\n projectSearchFlag: string | null\n facilityCategorySearchFlag: string | null\n areaSearchFlag: string | null\n reservationSearchFlag: string | null\n otherSearchFlag: string | null\n useReasonSearchFlag: string | null\n information: string | null\n createUser: string\n createDatetime: string\n updateUser: string\n updateDatetime: string\n}\n\nexport interface ProjectMst {\n projectId: string\n projectName: string\n projectCategoryId: string | null\n}\n\n\ninterface FacilitySearchSettingState {\n facilitySearchSettingMsts: FacilitySearchSettingMst[]\n projectMsts: ProjectMst[]\n}\n\nconst initialState: FacilitySearchSettingState = {\n facilitySearchSettingMsts: [],\n projectMsts: [],\n}\n\nexport const facilitySearchSettingMsts = createSlice({\n name: 'facilitySearchSettingMaster',\n initialState,\n reducers: {\n setFacilitySearchSettingMsts: (state, action: PayloadAction) => {\n state.facilitySearchSettingMsts = action.payload\n },\n setProjectMsts: (state, action: PayloadAction) => {\n state.projectMsts = action.payload\n },\n },\n})\n\nexport const { setFacilitySearchSettingMsts, setProjectMsts } = facilitySearchSettingMsts.actions\nexport const selectFacilitySearchSettingMsts = (state: RootState) => state.facilitySearchSetting.facilitySearchSettingMsts\nexport const selectProjectMsts = (state: RootState) => state.facilitySearchSetting.projectMsts\nexport default facilitySearchSettingMsts.reducer\n","// Reduxのstoreを定義\r\n// すべてのsliceを纏める部分\r\n// 新しくsliceを追加する場合は、combineReducersに\r\n// sliceのreducerを追加する必要がある。\r\n//\r\n\r\nimport { combineReducers, configureStore } from '@reduxjs/toolkit'\r\nimport accountChange from './slices/accountChange'\r\nimport accountCreate from './slices/accountCreate'\r\nimport application from './slices/application'\r\nimport authority from './slices/authority'\r\nimport facilityReserve from './slices/facilityReserve'\r\nimport facilityReserveDelete from './slices/facilityReserveDelete'\r\nimport facilityReserveTodayConditionInput from './slices/facilityReserveTodayConditionInput'\r\nimport facilitySearch from './slices/facilitySearch'\r\nimport interviewReserve from './slices/interviewReserve'\r\nimport interviewReserveDelete from './slices/interviewReserveDelete'\r\nimport memberAddChild from './slices/memberAddChild'\r\nimport memberModify from './slices/memberModify'\r\nimport systemControl from './slices/systemControl'\r\nimport login from './slices/login'\r\nimport lotteryReserve from './slices/lotteryReserve'\r\nimport lotteryReserveCancel from './slices/lotteryReserveCancel'\r\nimport resetPassword from './slices/resetPassword'\r\nimport cognitoUser from './slices/cognitoUser'\r\nimport facilitySearchSetting from './slices/facilitySearchSetting'\r\n\r\nconst combinedReducer = combineReducers({\r\n application,\r\n systemControl,\r\n authority,\r\n facilitySearch,\r\n facilityReserve,\r\n facilityReserveDelete,\r\n facilityReserveTodayConditionInput,\r\n interviewReserve,\r\n interviewReserveDelete,\r\n memberModify,\r\n memberAddChild,\r\n accountChange,\r\n accountCreate,\r\n login,\r\n lotteryReserve,\r\n lotteryReserveCancel,\r\n resetPassword,\r\n cognitoUser,\r\n facilitySearchSetting,\r\n})\r\n\r\n/**\r\n * 基本的に各sliceのreducerへ処理を委譲するが、\r\n * 全sliceのstateを削除するリセット処理だけは、\r\n * stateを横断してアクセスするひつようがある為\r\n * ここに削除処理を実装する。\r\n * actionを作成するためにapplicationのsliceにreducer関数を空実装している。\r\n *\r\n * state,actionの型がanyを指定してるのは、全sliceのreducer呼び出しが\r\n * この関数を通るので型を指定できない為。\r\n *\r\n * @param state 状態\r\n * @param action アクション\r\n * @returns reducerの戻り値\r\n */\r\nconst rootReducer = (state: any, action: any) => {\r\n if (action.type === 'application/reset') {\r\n const application = state.application\r\n const systemControl = state.systemControl\r\n let authority\r\n if (action.payload.isKeepAuthority) {\r\n authority = state.authority\r\n }\r\n state = { application, systemControl, authority }\r\n }\r\n return combinedReducer(state, action)\r\n}\r\n\r\n/**\r\n * ReduxのStore\r\n */\r\nexport const store = configureStore({\r\n reducer: rootReducer,\r\n middleware: (getDefaultMiddleware) =>\r\n getDefaultMiddleware({\r\n serializableCheck: {\r\n // CognitoUserオブジェクトはシリアライズ不可能だが、コンソールエラーが出ないようにシリアライズ可否チェックを無視する\r\n ignoredActions: ['cognitoUser/setCognitoUser', 'cognitoUser/clearCognitoUser'],\r\n ignoredPaths: ['cognitoUser.entry'],\r\n },\r\n }),\r\n})\r\n\r\n/**\r\n * Storeに格納されたstateの型\r\n */\r\nexport type RootState = ReturnType\r\n","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"ap-northeast-1\",\n \"aws_mobile_analytics_app_id\": \"1fba31bfbe1043dfa07f05c317243e11\",\n \"aws_mobile_analytics_app_region\": \"ap-northeast-1\",\n \"Analytics\": {\n \"AWSPinpoint\": {\n \"appId\": \"1fba31bfbe1043dfa07f05c317243e11\",\n \"region\": \"ap-northeast-1\"\n }\n },\n \"aws_cloud_logic_custom\": [\n {\n \"name\": \"citizen\",\n \"endpoint\": \"https://uykcse6ngd.execute-api.ap-northeast-1.amazonaws.com/prd\",\n \"region\": \"ap-northeast-1\"\n },\n {\n \"name\": \"public\",\n \"endpoint\": \"https://x5590h110g.execute-api.ap-northeast-1.amazonaws.com/prd\",\n \"region\": \"ap-northeast-1\"\n }\n ],\n \"aws_cognito_identity_pool_id\": \"ap-northeast-1:33921b0c-5fcb-4d34-97e4-35aac98f1952\",\n \"aws_cognito_region\": \"ap-northeast-1\",\n \"aws_user_pools_id\": \"ap-northeast-1_IBjvlMAOn\",\n \"aws_user_pools_web_client_id\": \"onu5mcuvt3tecqt0fdtua19m7\",\n \"oauth\": {},\n \"aws_cognito_username_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"PHONE_NUMBER\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [\n \"SMS\"\n ],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": \"6\",\n \"passwordPolicyCharacters\": []\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ]\n};\n\n\nexport default awsmobile;\n","import { I18n } from 'aws-amplify'\r\nimport React, { Fragment, ReactNode } from 'react'\r\n\r\nfunction flatKey(obj: string | { [key: string]: any }, keyStack: string[], result: { [key: string]: string }) {\r\n if (typeof obj === 'string') {\r\n result[keyStack.join('.')] = obj\r\n return\r\n }\r\n\r\n for (const [key, value] of Object.entries(obj)) {\r\n flatKey(value, [...keyStack, key], result)\r\n }\r\n return result\r\n}\r\n\r\ntype Result = T extends string ? string : JSX.Element\r\nconst format = (value: string, ...args: T[]): Result => {\r\n const exp = /{(\\d+)}/g\r\n const formatedValues: T[] = []\r\n let expResult\r\n let previousIndex = 0\r\n while ((expResult = exp.exec(value)) != null) {\r\n const placeIndex = parseInt(expResult[1], 10)\r\n formatedValues.push(value.slice(previousIndex, expResult.index) as T)\r\n formatedValues.push(args[placeIndex])\r\n\r\n previousIndex = expResult.index + expResult[0].length\r\n }\r\n formatedValues.push(value.slice(previousIndex) as T)\r\n\r\n if (args.every((arg) => typeof arg === 'string')) {\r\n return formatedValues.join('') as Result\r\n } else {\r\n return (\r\n <>\r\n {formatedValues.map((value, index) => (\r\n {value}\r\n ))}\r\n \r\n ) as Result\r\n }\r\n}\r\n\r\nconst getFromI18n = (key: string): string => I18n.get(key)\r\n\r\nconst getFixedLocaleCode = (localeCode: string) => {\r\n if (localeCode === 'en') {\r\n return 'en-US'\r\n } else if (localeCode === 'ja-JP') {\r\n return 'ja'\r\n }\r\n return localeCode\r\n}\r\n\r\nconst yyyymmddMasks: Record = {\r\n ja: '____/__/__',\r\n en: '__/__/____',\r\n}\r\n\r\nconst yyyymmddFormats: Record = {\r\n ja: 'yyyy/MM/dd',\r\n en: 'dd/MM/yyyy',\r\n}\r\n\r\nconst yyyymmMasks: Record = {\r\n ja: '____/__',\r\n en: '__/____',\r\n}\r\n\r\nconst yyyymmFormats: Record = {\r\n ja: 'yyyy/MM',\r\n en: 'MM/yyyy',\r\n}\r\n\r\n/** 判定した結果の言語 */\r\nlet determinedLanguage: string\r\n/** 判定した結果のロケール */\r\nlet determinedLocale: Locale\r\n\r\nconst getLanguageVocabulariesLocale = async (localeCode: string) => {\r\n const language = localeCode.split(/-/)[0]\r\n const langVocabularies: { [key: string]: any } = await import(`./langs/${language}`)\r\n const locale: Locale = (await import(`date-fns/locale/${localeCode}`)).default\r\n return {\r\n language,\r\n langVocabularies,\r\n locale,\r\n }\r\n}\r\n\r\nexport const initializeI18n = async () => {\r\n // ブラウザ優先言語取得の確認\r\n let localeCode = (window.navigator.languages && window.navigator.languages[0]) || window.navigator.language\r\n localeCode = getFixedLocaleCode(localeCode)\r\n let language: string\r\n let langVocabularies: { [key: string]: any }\r\n let locale: Locale\r\n try {\r\n ;({ language, langVocabularies, locale } = await getLanguageVocabulariesLocale(localeCode))\r\n } catch {\r\n // 対象言語が存在しない場合\r\n localeCode = 'en-US'\r\n ;({ language, langVocabularies, locale } = await getLanguageVocabulariesLocale(localeCode))\r\n }\r\n\r\n const vocabularies = { [language]: flatKey(langVocabularies.default, [], {}) }\r\n\r\n I18n.setLanguage(language)\r\n I18n.putVocabularies(vocabularies)\r\n determinedLanguage = language\r\n determinedLocale = locale\r\n}\r\n\r\nexport const getLanguage = () => {\r\n return determinedLanguage\r\n}\r\n\r\nexport const getLocale = () => {\r\n return determinedLocale\r\n}\r\n\r\nexport const translate = (key: string, ...args: string[]) => {\r\n return format(getFromI18n(key), ...args)\r\n}\r\n\r\nexport const translateNode = (key: string, ...args: ReactNode[]) => {\r\n return format(getFromI18n(key), ...args)\r\n}\r\n\r\nexport const getClassificationValueLabels = (classificationKey: string, classificationValues: string[]) => {\r\n return classificationValues.map((value) => ({ value, label: getClassificationLabel(classificationKey, value) }))\r\n}\r\n\r\nexport const getClassificationLabel = (classificationKey: string, classificationValue: string) => {\r\n return getFromI18n(`${classificationKey}.${classificationValue}`)\r\n}\r\n\r\nexport const getYyyymmddFormat = () => {\r\n return yyyymmddFormats[determinedLanguage]\r\n}\r\n\r\nexport const getYyyymmddMask = () => {\r\n return yyyymmddMasks[determinedLanguage]\r\n}\r\n\r\nexport const getYyyymmFormat = () => {\r\n return yyyymmFormats[determinedLanguage]\r\n}\r\n\r\nexport const getYyyymmMask = () => {\r\n return yyyymmMasks[determinedLanguage]\r\n}\r\n","/** キーを削除して値だけ取り出す */\r\nexport type ValueType = T extends { [_ in keyof T]: infer R } ? R : never\r\n\r\n/** T | null を T | undefined に変換する */\r\nexport type NullToUndefinedType = T extends null ? undefined : T\r\n\r\n/** T | null のプロパティを T | undefined に変換する */\r\nexport type NullPropsToUndefinedType = {\r\n [P in keyof T]: NullToUndefinedType\r\n}\r\n\r\n/** T | undefined を T | null に変換する */\r\nexport type UndefinedToNullType = T extends undefined ? null : T\r\n\r\n/** T | undefined のプロパティを T | null に変換する */\r\nexport type UndefinedPropsToNullType = {\r\n [P in keyof T]: UndefinedToNullType\r\n}\r\n\r\n/** T | null のプロパティを T に変換する */\r\nexport type NullPropsToNonNullType = {\r\n [P in keyof T]: NonNullable\r\n}\r\n\r\n/** Date を number に変換する */\r\nexport type DateToNumberType = T extends Date ? number : T\r\n\r\n/** Date のプロパティを number に変換する */\r\nexport type DatePropsToNumberType = {\r\n [P in keyof T]: DateToNumberType\r\n}\r\n\r\n/** number を Date に変換する */\r\nexport type NumberToDateType = T extends number ? Date : T\r\n\r\n/** number の指定したプロパティを Date に変換する */\r\nexport type NumberPropsToDateType> = Omit & {\r\n [P in K]: NumberToDateType\r\n}\r\n\r\n/** TからVの型にマッチするプロパティ名をUnion型で取り出す */\r\nexport type KeysMatching = {\r\n [K in keyof T]-?: T[K] extends V ? K : never\r\n}[keyof T]\r\n\r\n/** TからVの型を含むプロパティ名をUnion型で取り出す */\r\nexport type KeysInclude = {\r\n [K in keyof T]-?: V extends T[K] ? K : never\r\n}[keyof T]\r\n\r\n/** undefined を含むプロパティを オプショナル型(?付き) に変換する */\r\nexport type UndefinedPropsToOptionalType = Omit> &\r\n Partial>>\r\n\r\ntype Nullable = T | undefined\r\n\r\ntype NullableRecord = {\r\n [K in keyof T]: Nullable\r\n}\r\n\r\n/** Tuple の先頭を取り出す */\r\ntype Head = Types extends [any, ...any[]]\r\n ? ((...args: Types) => any) extends (head: infer H, ...args: any) => any\r\n ? H\r\n : never\r\n : never\r\n\r\n/** Tuple の先頭以外を Tuple として取り出す */\r\ntype Tail = Types extends [any, any, ...any[]]\r\n ? ((...args: Types) => any) extends (head: any, ...args: infer T) => any\r\n ? T\r\n : never\r\n : never\r\n\r\n/** 省略可能Tuple */\r\nexport type OptionalTuple =\r\n | NullableRecord\r\n | {\r\n 0: Nullable> | []\r\n 1: OptionalTuple>\r\n }[Tail extends never ? 0 : 1]\r\n\r\n/** 最低N個の必須指定がある省略可能Tuple */\r\nexport type OptionalTupleMin = OptionTypes extends never[]\r\n ? Types\r\n : Types extends never[]\r\n ? NullableRecord\r\n :\r\n | [...Types, ...NullableRecord]\r\n | {\r\n 0: [...Types, Head] | Types\r\n 1: OptionalTupleMin>\r\n }[Tail extends never ? 0 : 1]\r\n\r\n/**\r\n * 値の型からnullおよびundefinedを除外して型にキャストする。\r\n * ※値の変換は行いません。型情報のキャストのみ\r\n * @param value 値\r\n * @returns nullおよびundefinedを除外した型\r\n */\r\nexport const castNonNullable = (value: T) => value as NonNullable\r\n\r\n/**\r\n * 値の型にnullおよびundefinedをUnionした型にキャストする。\r\n * ※値の変換は行いません。型情報のキャストのみ\r\n * @param value 値\r\n * @returns 値の型にnullおよびundefinedをUnionした型\r\n */\r\nexport const castNullable = (value: T) => value as Nullable\r\n\r\n/**\r\n * 渡された値のタプルを生成する\r\n *\r\n * @param ts タプルの値\r\n * @returns タプル\r\n */\r\nexport const tuple = (...ts: T): T => ts\r\n\r\n/**\r\n * キー値が対象オブジェクトのプロパティであるかを判定する。\r\n * また、型ガード関数としても機能するのでキー値が対象オブジェクトのプロパティでない可能性がある\r\n * というコンパイルエラーが出た場合にこのチェックで対象のプロパティであることを証明できる\r\n *\r\n * @param key キー値\r\n * @param value 対象オブジェクト\r\n * @returns キー値が対象オブジェクトのプロパティである場合true\r\n */\r\nexport const isKeyOf = (key: any, value: T): key is keyof T => {\r\n return key != null && key in value\r\n}\r\n\r\n/**\r\n * 渡された値がタプルの値かを判定する型ガード関数\r\n *\r\n * @param tuple タプル\r\n * @param value 値\r\n * @returns タプルの値ならtrue\r\n */\r\nexport const isTupleValue = >(tuple: T, value: any): value is T[number] => {\r\n if (tuple == null) {\r\n return false\r\n }\r\n return tuple.includes(value)\r\n}\r\n\r\nexport type DecimalType = {\r\n integer?: number | null \r\n fractional?: number | null\r\n}\r\n","// 各アプリ画面のURLパス定数を定義\r\n//\r\n\r\nimport { OptionalTupleMin, tuple } from '../../../utils/typeUtil'\r\nimport { httpStatusCode } from './classification'\r\n\r\n/**\r\n * アプリ画面URL情報定数用の不変クラス。\r\n * URLのベースパスと必須URLパラメータ名配列、任意URLパラメータ名配列を保持し、\r\n * react-routerのpathに使用する文字列と画面遷移で使用する文字列を取得が行える。\r\n */\r\nclass AppUrl {\r\n routerPath: string\r\n /**\r\n * コンストラクタ\r\n * @param baseUrl ページを識別する基本URL。トラッキングの為、\"/\" を含めることを禁止\r\n * @param option 必須、任意のURLパスパラメータ\r\n */\r\n constructor(private baseUrl: string, option: { params: Params; optionParams: OptionParams }) {\r\n this.routerPath = [\r\n baseUrl,\r\n ...option.params.map((v) => ':' + v),\r\n ...option.optionParams.map((v) => ':' + v + '?'),\r\n ].join('/')\r\n }\r\n\r\n url(...params: OptionalTupleMin) {\r\n if (params.length === 0) {\r\n return this.baseUrl\r\n }\r\n const m = /^(\\/)?(.*)/.exec(this.baseUrl) ?? []\r\n return m[1] + [m[2], ...(params ?? [])].filter((v) => v).join('/')\r\n }\r\n}\r\n\r\nconst emptyOption = { params: tuple(), optionParams: tuple() } as const\r\n\r\nexport const errorUrls = {\r\n [httpStatusCode.badRequest]: new AppUrl('/error_400', emptyOption),\r\n [httpStatusCode.unauthorized]: new AppUrl('/error_401', emptyOption),\r\n [httpStatusCode.forbidden]: new AppUrl('/error_403', emptyOption),\r\n [httpStatusCode.notFound]: new AppUrl('/error_404', emptyOption),\r\n [httpStatusCode.methodNotAllowed]: new AppUrl('/error_405', emptyOption),\r\n [httpStatusCode.requestTimeout]: new AppUrl('/error_408', emptyOption),\r\n [httpStatusCode.conflict]: new AppUrl('/error_409', emptyOption),\r\n [httpStatusCode.internalServerError]: new AppUrl('/error_500', emptyOption),\r\n [httpStatusCode.serviceUnavailable]: new AppUrl('/error_503', emptyOption),\r\n unknown: new AppUrl('/error_unknown', emptyOption),\r\n transitionInconsistency: new AppUrl('/error_transition_inconsistency', emptyOption),\r\n} as const\r\n\r\nexport const rootUrl = new AppUrl('/', emptyOption)\r\nexport const homeUrl = new AppUrl('/home', emptyOption)\r\nexport const loginUrl = new AppUrl('/login', emptyOption)\r\nexport const otpUrl = new AppUrl('/otp', emptyOption)\r\nexport const forgotPasswordUrl = new AppUrl('/forgot_password', emptyOption)\r\nexport const resetPasswordUrl = new AppUrl('/reset_password', emptyOption)\r\nexport const newPasswordUrl = new AppUrl('/new_password', emptyOption)\r\nexport const accountCreateFormUrl = new AppUrl('/account_create_form', emptyOption)\r\nexport const accountCreateConfirmationUrl = new AppUrl('/account_create_confirmation', emptyOption)\r\nexport const accountCreateCompletionUrl = new AppUrl('/account_create_completion', emptyOption)\r\n\r\nexport const accountUrl = new AppUrl('/account', emptyOption)\r\nexport const accountTelChangeUrl = new AppUrl('/account_tel_change', emptyOption)\r\nexport const accountEmailChangeUrl = new AppUrl('/account_email_change', emptyOption)\r\nexport const accountChangeVerificationUrl = new AppUrl('/account_change_verification', emptyOption)\r\nexport const identityVerificationUrl = new AppUrl('/identity_verification', emptyOption)\r\nexport const identityEmailVerificationUrl = new AppUrl('/identity_email_verification', emptyOption)\r\n\r\nexport const memberUrl = new AppUrl('/member', emptyOption)\r\nexport const memberModifyUserUrl = new AppUrl('/member_modify_user', emptyOption)\r\nexport const memberModifyChildUrl = new AppUrl('/member_modify_child', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildAllergyUrl = new AppUrl('/member_modify_child_allergy', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildFamilyHospitalUrl = new AppUrl('/member_modify_child_family_hospital', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildFebrileSeizureUrl = new AppUrl('/member_modify_child_febrile_seizure', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildHospitalAdmissionUrl = new AppUrl('/member_modify_child_hospital_admission', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildMedicalHistoryUrl = new AppUrl('/member_modify_child_medical_history', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildNormallyUsedFacilityUrl = new AppUrl('/member_modify_child_normally_used_facility', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildDiseaseUrl = new AppUrl('/member_modify_child_disease', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildUsuallyMedicinesUrl = new AppUrl('/member_modify_child_usually_medicines', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildVaccinationUrl = new AppUrl('/member_modify_child_vaccination', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildEatingUrl = new AppUrl('/member_modify_child_eating', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildSymptomUrl = new AppUrl('/member_modify_child_symptom', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildPredispositionUrl = new AppUrl('/member_modify_child_predisposition', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildDiseaseTestUrl = new AppUrl('/member_modify_child_disease_test', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyChildTreatmentUrl = new AppUrl('/member_modify_child_treatment', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\nexport const memberModifyConfirmationUserUrl = new AppUrl('/member_modify_confirmation_user', emptyOption)\r\nexport const memberModifyConfirmationChildUrl = new AppUrl('/member_modify_confirmation_child', emptyOption)\r\nexport const memberAddChildUrl = new AppUrl('/member_add_child', emptyOption)\r\nexport const memberAddConfirmationChildUrl = new AppUrl('/member_add_confirmation_child', emptyOption)\r\n\r\nexport const accountUnsubscribeUrl = new AppUrl('/account_unsubscribe', emptyOption)\r\nexport const childUseEndUrl = new AppUrl('/child_use_end', {\r\n ...emptyOption,\r\n params: tuple<[string]>('childId'),\r\n})\r\n\r\nexport const myPageUrl = new AppUrl('/my_page', emptyOption)\r\nexport const informationUrl = new AppUrl('/information', emptyOption)\r\nexport const informationDetailUrl = new AppUrl('/information_detail', {\r\n ...emptyOption,\r\n params: tuple<[string]>('informaionNo'),\r\n})\r\n\r\nexport const facilitySearchConditionUrl = new AppUrl('/facility_search_condition', {\r\n ...emptyOption,\r\n params: tuple<[string]>('projectCategoryId'),\r\n})\r\nexport const facilitySearchSettingMasterSelectionUrl = new AppUrl(\r\n '/facility_search_setting_master_selection',\r\n emptyOption\r\n)\r\nexport const facilitySearchResultUrl = new AppUrl('/facility_search_result', emptyOption)\r\nexport const facilityDetailUrl = new AppUrl('/facility_detail', {\r\n ...emptyOption,\r\n params: tuple<[string]>('facilityId'),\r\n})\r\nexport const facilityDetailAvailabilityUrl = new AppUrl('/facility_detail_availability', {\r\n params: tuple<[string]>('facilityId'),\r\n optionParams: tuple<[string]>('childId'),\r\n})\r\nexport const accountConfirmationlUrl = new AppUrl('/account_confirmation', {\r\n ...emptyOption,\r\n params: tuple<[string]>('facilityId'),\r\n})\r\n\r\nexport const interviewReservationSelectionCreateUrl = new AppUrl('/interview_reservation_selection', {\r\n ...emptyOption,\r\n params: tuple<[string]>('facilityId'),\r\n})\r\nexport const interviewReservationSelectionUpdateUrl = new AppUrl('/interview_reservation_selection_update', {\r\n ...emptyOption,\r\n params: tuple<[string]>('interviewNo'),\r\n})\r\nexport const interviewReservationFormUrl = new AppUrl('/interview_reservation_form', {\r\n ...emptyOption,\r\n params: tuple<[string]>('facilityId'),\r\n})\r\nexport const interviewReservationConfirmationUrl = new AppUrl('/interview_reservation_confirmation', emptyOption)\r\nexport const interviewReservationCompletionUrl = new AppUrl('/interview_reservation_completion', emptyOption)\r\nexport const interviewReservationDetailUrl = new AppUrl('/interview_reservation_detail', {\r\n ...emptyOption,\r\n params: tuple<[string]>('interviewNo'),\r\n})\r\nexport const interviewReservationDeleteUrl = new AppUrl('/interview_reservation_delete', {\r\n ...emptyOption,\r\n params: tuple<[string]>('interviewNo'),\r\n})\r\nexport const interviewReservationDeleteConfirmationUrl = new AppUrl(\r\n '/interview_reservation_delete_confirmation',\r\n emptyOption\r\n)\r\n\r\nexport const facilityReservationSelectionCreateUrl = new AppUrl('/facility_reservation_selection', {\r\n ...emptyOption,\r\n params: tuple<[string, string]>('facilityId', 'childId'),\r\n})\r\nexport const facilityReservationSelectionUpdateUrl = new AppUrl('/facility_reservation_selection', {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n})\r\nexport const facilityReservationFormUrl = new AppUrl('/facility_reservation_form', emptyOption)\r\nexport const facilityReservationTodayConditionInputUrl = new AppUrl('/facility_reservation_today_condition_input', {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n})\r\nexport const facilityReservationTodayConditionInputConfirmationUrl = new AppUrl(\r\n '/facility_reservation_today_condition_input_confirmation',\r\n {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n }\r\n)\r\nexport const facilityReservationTodayConditionInputCompletionUrl = new AppUrl(\r\n '/facility_reservation_today_condition_input_completion',\r\n {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n }\r\n)\r\nexport const facilityReservationConfirmationUrl = new AppUrl('/facility_reservation_confirmation', emptyOption)\r\nexport const facilityReservationCompletionUrl = new AppUrl('/facility_reservation_completion', {\r\n ...emptyOption,\r\n params: tuple<[string, string, string]>('facilityId', 'childId', 'displayMode'),\r\n})\r\nexport const facilityReservationDetailUrl = new AppUrl('/facility_reservation_detail', {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n})\r\nexport const facilityReservationDeleteUrl = new AppUrl('/facility_reservation_delete', {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n})\r\nexport const facilityReservationDeleteConfirmationUrl = new AppUrl(\r\n '/facility_reservation_delete_confirmation',\r\n emptyOption\r\n)\r\n\r\nexport const facilityLotteryReservationFormUrl = new AppUrl('/facility_lottery_reservation_form', emptyOption)\r\nexport const facilityLotteryReservationConfirmationUrl = new AppUrl('/facility_lottery_reservation_confirmation', emptyOption)\r\nexport const facilityLotteryReservationCompletionUrl = new AppUrl('/facility_lottery_reservation_completion', {\r\n ...emptyOption,\r\n params: tuple<[string, string, string]>('facilityId', 'childId', 'displayMode'),\r\n})\r\nexport const facilityLotteryReservationDetailUrl = new AppUrl('/facility_lottery_reservation_detail', {\r\n ...emptyOption,\r\n params: tuple<[string]>('lotteryReservationNo'),\r\n})\r\nexport const facilityLotteryReservationCancelUrl = new AppUrl('/facility_lottery_reservation_cancel', {\r\n ...emptyOption,\r\n params: tuple<[string]>('lotteryReservationNo'),\r\n})\r\nexport const facilityLotteryReservationCancelConfirmationUrl = new AppUrl(\r\n '/facility_lottery_reservation_cancel_confirmation',\r\n emptyOption\r\n)\r\nexport const facilityLotteryReservationSelectionUpdateUrl = new AppUrl('/facility_lottery_reservation_selection_update', {\r\n ...emptyOption,\r\n params: tuple<[string]>('lotteryReservationNo'),\r\n})\r\n\r\n\r\nexport const couponUrl = new AppUrl('/coupon', emptyOption)\r\nexport const myFacilityUrl = new AppUrl('/my_facility', emptyOption)\r\nexport const reservationStatusListUrl = new AppUrl('/reservation_status_list', emptyOption)\r\nexport const usageHistoryUrl = new AppUrl('/usage_history', emptyOption)\r\nexport const usageHistoryDetailUrl = new AppUrl('/usage_history_detail', {\r\n ...emptyOption,\r\n params: tuple<[string]>('reservationNo'),\r\n})\r\nexport const receiptViewUrl = new AppUrl('/receipt_view', emptyOption)\r\n\r\nexport const contactUrl = new AppUrl('/contact', emptyOption)\r\nexport const termsOfServiceUrl = new AppUrl('/terms_of_service', emptyOption)\r\nexport const manualUrl = new AppUrl('/manual', emptyOption)\r\nexport const faqUrl = new AppUrl('/faq', emptyOption)\r\nexport const webAccessibilityPolicyUrl = new AppUrl('/web_accessibility_policy', emptyOption)\r\n\r\nexport const ssoUrl = new AppUrl('/sso', emptyOption)\r\nexport const emailVerifiedUrl = new AppUrl('/email_verified', emptyOption)\r\n","import { executePostKeepAlive as executePostKeepAlive } from '../common/apiCaller'\r\nimport { PostOperationLogAccessDataInputDto, PostOperationLogInputDto } from '../dto/operationLogDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/operation-log'\r\n\r\nexport const executePostOperationLog = (input: PostOperationLogInputDto) => {\r\n return executePostKeepAlive(apiName, apiPath, input)\r\n}\r\n\r\nexport const executePostOperationLogAccessData = (input: PostOperationLogAccessDataInputDto) => {\r\n return executePostKeepAlive(apiName, `${apiPath}/access-data`, input)\r\n}\r\n","import { DecimalType, tuple } from './typeUtil'\r\nimport { translate } from '../i18n'\r\n\r\n// 文字列操作の内汎用的な処理を行うユーティリティ関数\r\n//\r\n\r\ntype StringToNumber = T extends string ? number : T\r\n/**\r\n * 文字列を数値に変換する\r\n * @param value 文字列\r\n * @returns 数値\r\n */\r\nexport const toInt = (value: T): StringToNumber => {\r\n let result: number | undefined\r\n if (value != null) {\r\n result = parseInt(value, 10)\r\n }\r\n return result as StringToNumber\r\n}\r\n\r\n/**\r\n * 文字列の配列を数値の配列に変換する\r\n * @param values 文字列の配列\r\n * @returns 数値の配列\r\n */\r\nexport const toInts = (values?: string[]) => {\r\n return values?.map(toInt)\r\n}\r\n\r\ntype StringFromNumber = T extends number ? string : T\r\n/**\r\n * 数値から文字列に変換する\r\n * @param value 数値\r\n * @returns 文字列\r\n */\r\nexport const fromNumber = (value: T): StringFromNumber => {\r\n let result: string | undefined\r\n if (value != null) {\r\n result = value.toString(10)\r\n }\r\n return result as StringFromNumber\r\n}\r\n\r\n/**\r\n * 数値の配列から文字列の配列に変換する\r\n * @param values 数値の配列\r\n * @returns 文字列の配列\r\n */\r\nexport const fromNumbers = (values?: number[]) => {\r\n return values?.map(fromNumber)\r\n}\r\n\r\n/**\r\n * 空文字列をnullに変換する。空文字列以外は、そのまま返却する\r\n * 渡された値が、null,undefinedの場合は、nullを返却する\r\n *\r\n * @param value 対象文字列\r\n * @returns 空文字列,null,undefinedの場合はnull、それ以外は渡された値\r\n */\r\nexport const blankToNull = (value?: string | null) => {\r\n return value ? value : null\r\n}\r\n\r\n/**\r\n * 文字列を指定した区切り文字列で分割し、配列で返却する。\r\n * ただし、配列の要素の内、空文字は除去する\r\n * また、対象文字列がundefinedの場合は、空配列を返却する\r\n *\r\n * @param value 対象文字列\r\n * @param separator 区切り文字列\r\n * @returns 分割した文字列配列\r\n */\r\nexport const splitRemoveBlank = (separator: string, value?: string) => {\r\n return value?.split(separator).filter((v) => v) ?? []\r\n}\r\n\r\n/**\r\n * 電話番号をパーツに分割\r\n * telがnullの場合は、市外、市内、加入者番号に空文字を設定して返す\r\n * @param tel 電話番号(ハイフン付き)\r\n * @returns 市外、市内、加入者番号に分割して返す\r\n */\r\nexport const splitTelParts = (tel?: string | null) => {\r\n let parts: string[]\r\n if (tel == null) {\r\n parts = Array(3).fill('')\r\n } else {\r\n parts = tel.split('-')\r\n }\r\n return tuple(parts[0], parts[1], parts[2])\r\n}\r\n\r\n/**\r\n * 電話番号バーツをハイフン付き電話番号に結合\r\n * @param tel1 1つ目 *市外\r\n * @param tel2 2つ目 *市内\r\n * @param tel3 3つ目 *加入者番号\r\n * @returns 結合した電話番号\r\n */\r\nexport const joinTelParts = (tel1?: string | null, tel2?: string | null, tel3?: string | null) => {\r\n if (!tel1 || !tel2 || !tel3) {\r\n return null\r\n }\r\n return [tel1, tel2, tel3].join('-')\r\n}\r\n\r\n/**\r\n * 数値を3桁カンマ区切りの文字列にフォーマットする。\r\n *\r\n * @param value 数値\r\n * @returns 3桁カンマ区切りの文字列\r\n */\r\nexport const formatNumberComma = (value: number) => {\r\n return new Intl.NumberFormat().format(value)\r\n}\r\n\r\n/**\r\n * 数値を¥3桁カンマ区切りの文字列にフォーマットする。\r\n *\r\n * @param value 数値\r\n * @returns ¥3桁カンマ区切りの文字列\r\n */\r\nexport const formatNumberYen = (value: number) => {\r\n return `¥${formatNumberComma(value)}`\r\n}\r\n\r\n/**\r\n * 数値を「[3桁カンマ区切りの文字列]円」にフォーマット\r\n *\r\n * @param number\r\n * @return string\r\n */\r\nexport const formatNumberYenString = (v: number) => {\r\n if (v === 0) return '無料'\r\n return `${formatNumberComma(v)}円`\r\n}\r\n\r\nexport const splitDecimal = (input: string | number | null | undefined): DecimalType => {\r\n const returnObject: DecimalType = {\r\n integer: undefined,\r\n fractional: undefined\r\n }\r\n \r\n if ( input ) {\r\n // 入力が数値の場合は文字列に変換\r\n const [integer, fractional] = input.toString().split(\".\");\r\n returnObject.integer = parseInt(integer, 10);\r\n returnObject.fractional = fractional ? parseInt(fractional, 10) : null\r\n }\r\n \r\n return returnObject;\r\n}\r\n\r\n/**\r\n * ユーザー入力値を引数にとり、nullまたはundefinedの場合は「未入力」の文字列をリターンする\r\n *\r\n * @param string\r\n * @return string\r\n */\r\nexport const convertFalsyValueToUnfilled = (value?: string | null, appendix?: string) => {\r\n const unfilled = translate('system.reservationDetailGItems.value.unfilled')\r\n return value? value + (appendix?? ''): unfilled\r\n}\r\n","// 日付関連の操作を行うユーティリティ関数を定義\r\n// format系関数は、使用される可能性があるものは一通りの形式をそろえている。\r\n\r\nimport { \r\n differenceInHours, \r\n differenceInMinutes, \r\n format, \r\n getMinutes, \r\n isEqual, \r\n parse, \r\n startOfDay } from 'date-fns'\r\nimport { getLocale } from '../i18n'\r\nimport { fromNumber } from './stringUtil'\r\n\r\n/** 無効な日付を表す文字列値 */\r\nexport const INVALID_DATE_STRING = 'Invalid Date'\r\n/**\r\n * Date.getTime()で取得した1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒。\r\n * reduxではシリアライズ可能なインスタンスしか保存出来ない為、DateはDate.getTime()をこの型を指定したプロパティに格納\r\n * Dateに復元する場合は、new Date(ElapsedMillisecondの値)でDateインスタンス化する\r\n */\r\nexport type ElapsedMillisecond = number\r\n/**\r\n * 日付範囲(Date型)\r\n */\r\nexport interface DateRange {\r\n from: Date\r\n to: Date\r\n}\r\n/**\r\n * 日付範囲(Date、ElapsedMillisecond型混在可能)\r\n */\r\nexport interface DateElapsedRange {\r\n from: Date | ElapsedMillisecond\r\n to: Date | ElapsedMillisecond\r\n}\r\n\r\n/**\r\n * 日付インスタンスが有効な日付であるか判定する。\r\n * 実在しない日付を入力された場合は、Invalid Date となる為これを判別する為に使用できる。\r\n * 渡された値がnull,undefinedの場合はfalseとする。\r\n * また、Date型への型ガード関数としても機能するので型をDateに特定したい場合にも使用できる。\r\n *\r\n * @param value 日付インスタンス\r\n * @returns 有効な日付ならtrue\r\n */\r\nexport const isValidDate = (value?: Date | null): value is Date => value != null && !Number.isNaN(value?.getDate())\r\n\r\nexport const isValidApiYmd = (value?: string | null): value is string => {\r\n if (value === INVALID_DATE_STRING) {\r\n return false\r\n }\r\n try {\r\n return isValidDate(fromApiYmd(value))\r\n } catch {\r\n return false\r\n }\r\n}\r\n\r\nexport const isValidApiHms = (value?: string | null): value is string => {\r\n if (value === INVALID_DATE_STRING) {\r\n return false\r\n }\r\n try {\r\n return isValidDate(fromApiHms(value))\r\n } catch {\r\n return false\r\n }\r\n}\r\n\r\ntype FormatDateString = T extends Date | ElapsedMillisecond ? string : T\r\n\r\n/**\r\n * 日付を指定したパターンでフォーマットする。\r\n * 使用できるパターンは以下サイト参照\r\n * https://date-fns.org/v2.28.0/docs/format\r\n *\r\n * @param value 日付\r\n * @param pattern フォーマットパターン\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatDate = (\r\n value: T,\r\n pattern: string\r\n): FormatDateString => {\r\n let result\r\n if (value == null) {\r\n result = value\r\n } else {\r\n const locale = getLocale()\r\n result = format(value, pattern, { locale })\r\n }\r\n return result as FormatDateString\r\n}\r\n\r\n/**\r\n * 日付をHH:mm(24時間以上)形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @param baseDate 基準とする日付(24以上とするかを判別するために必須)\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatHmOver = (value: Date | ElapsedMillisecond, baseDate: Date | ElapsedMillisecond) => {\r\n const hours = differenceInHours(value, startOfDay(baseDate))\r\n const minutes = getMinutes(value)\r\n return `${fromNumber(hours).padStart(2, '0')}:${fromNumber(minutes).padStart(2, '0')}`\r\n}\r\n\r\n/**\r\n * 日付範囲をHH:mm~HH:mm(24時間以上)形式にフォーマット\r\n *\r\n * @param value 日付範囲\r\n * @param baseDate 基準とする日付(24以上とするかを判別するために必須)\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatHmtoHmOver = (value: DateElapsedRange, baseDate: Date | ElapsedMillisecond) => {\r\n return `${formatHmOver(value.from, baseDate)}~${formatHmOver(value.to, baseDate)}`\r\n}\r\n\r\n/**\r\n * 日付をHH:mm形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatHm = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'HH:mm')\r\n}\r\n\r\n/**\r\n * 日付をHH:mm形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatHyphenYmd = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'yyyy-MM-dd')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmd = (value: T) => {\r\n return formatDate(value, 'yyyy/MM/dd')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYm = (value: T) => {\r\n return formatDate(value, 'yyyy/MM')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatD = (value: T) => {\r\n return formatDate(value, 'd')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd(E)形式にフォーマット\r\n * Eは曜日。※月、火、水が入る\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdWeek = (value: T) => {\r\n return formatDate(value, 'yyyy/MM/dd(E)')\r\n}\r\n\r\n/**\r\n * 日付をyyyy年M月形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatLocaleYm = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'yyyy年M月')\r\n}\r\n\r\n/**\r\n * 日付範囲をyyyy年M月~yyyy年M月形式にフォーマット\r\n *\r\n * @param value 日付範囲\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatLocaleYmToYm = (value: DateElapsedRange) => {\r\n return `${formatDate(value.from, 'yyyy年M月')}~${formatDate(value.to, 'yyyy年M月')}`\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd HH:mm形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHm = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'yyyy/MM/dd HH:mm')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd HH:mm:ss形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHms = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'yyyy/MM/dd HH:mm:ss')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd HH:mm(24時間以上)形式にフォーマット\r\n *\r\n * @param value 日付\r\n * @param baseDate 基準とする日付(24以上とするかを判別するために必須)\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHmOver = (value: Date | ElapsedMillisecond, baseDate: Date | ElapsedMillisecond) => {\r\n return `${formatYmd(baseDate)} ${formatHmOver(value, baseDate)}`\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd(E) HH:mm形式にフォーマット\r\n * Eは曜日。※月、火、水が入る\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHmWeek = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'yyyy/MM/dd(E) HH:mm')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd(E) HH:mm(24時間以上)形式にフォーマット\r\n * Eは曜日。※月、火、水が入る\r\n *\r\n * @param value 日付\r\n * @param baseDate 基準とする日付(24以上とするかを判別するために必須)\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHmOverWeek = (value: Date | ElapsedMillisecond, baseDate: Date | ElapsedMillisecond) => {\r\n return `${formatYmdWeek(baseDate)} ${formatHmOver(value, baseDate)}`\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd(E) HH:mm:ss形式にフォーマット\r\n * Eは曜日。※月、火、水が入る\r\n *\r\n * @param value 日付\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHmsWeek = (value: Date | ElapsedMillisecond) => {\r\n return formatDate(value, 'yyyy/MM/dd(E) HH:mm:ss')\r\n}\r\n\r\n/**\r\n * 日付をyyyy/MM/dd(E) HH:mm~HH:mm(24時間以上)形式にフォーマット\r\n * Eは曜日。※月、火、水が入る\r\n *\r\n * @param value 日付範囲\r\n * @param baseDate 基準とする日付(24以上とするかを判別するために必須)\r\n * @returns フォーマットされた文字列\r\n */\r\nexport const formatYmdHmToHmOverWeek = (value: DateElapsedRange, baseDate: Date | ElapsedMillisecond) => {\r\n return `${formatYmdWeek(baseDate)} ${formatHmtoHmOver(value, baseDate)}`\r\n}\r\n\r\n/**\r\n * 日付文字列をパースし、日付インスタンスを返す。\r\n *\r\n * @param value 日付文字列\r\n * @param pattern 日付文字列のフォーマットパターン\r\n * @param baseDate 基準とする日付(文字列が時間のみの場合を想定し、日を補完する目的で使用する)\r\n * デフォルトは現在日時(getNow())\r\n * @returns 日付インスタンス\r\n */\r\nexport const parseDate = (value: string, pattern: string, baseDate = getNow()) => {\r\n const locale = getLocale()\r\n return parse(value, pattern, baseDate, { locale })\r\n}\r\n\r\n/**\r\n * 基準とする日付から何時間、何分の差があるかを返す\r\n * 利用時間の表示に使用する想定で作成したもの。\r\n * ※現在はUIが変わり使用箇所が無くなったが、将来使用する可能性がある為残す\r\n *\r\n * @param value 日付\r\n * @param base 基準とする日付\r\n * @returns\r\n */\r\nexport const differenceInHoursMinutes = (value: Date, base: Date) => {\r\n const diffMinute = differenceInMinutes(value, base)\r\n const hour = Math.trunc(diffMinute / 60)\r\n const minute = diffMinute % 60\r\n return {\r\n hour,\r\n minute,\r\n }\r\n}\r\n\r\n/**\r\n * 日付が日付範囲に含まれるか否かを返す。\r\n *\r\n * @param value 日付\r\n * @param range 日付範囲\r\n * @param option オプション\r\n * @param option.isExcludingFrom:判定に範囲のfromを含めない場合はtrue\r\n * @param option.isExcludingTo 判定に範囲のtoを含めない場合はtrue\r\n * @returns 日付が日付範囲に含まれる場合はtrue\r\n */\r\nexport const isIncludeDate = (\r\n value: Date,\r\n range: DateRange,\r\n { isExcludingFrom = false, isExcludingTo = false } = {}\r\n) => {\r\n if (range.from < value && value < range.to) {\r\n return true\r\n }\r\n if (!isExcludingFrom && isEqual(range.from, value)) {\r\n return true\r\n }\r\n if (!isExcludingTo && isEqual(range.to, value)) {\r\n return true\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * @param date 日時\r\n * @returns 日時から時刻成分を0に設定したDateインスタンス\r\n */\r\nexport const trimTime = (date: Date) => {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n}\r\n\r\n/**\r\n * システム日付(業務日付)\r\n * テストなどで現在日を固定したい場合に使用する。\r\n * 通常はundefined\r\n */\r\nlet sysDate: Date | undefined\r\n\r\n/**\r\n * DateUtil初期化\r\n * @param systemDatetime システム日時\r\n */\r\nexport const initializeDateUtil = (systemDatetime: Date | undefined) => {\r\n sysDate = systemDatetime\r\n}\r\n\r\n/**\r\n * 現在日時を取得する。※日本の時間に補正された値\r\n * ただし、業務日付が設定されていれば、\r\n * システム日付の年月日をその設定値に置き換えたものを返す\r\n * @param isFixedTime 時刻についてもシステム日付で固定する場合はtrue\r\n * @returns 現在日時\r\n */\r\nexport const getNow = (isFixedTime?: boolean) => {\r\n const now = getJstNow()\r\n if (sysDate) {\r\n if (isFixedTime) {\r\n now.setTime(sysDate.getTime())\r\n } else {\r\n now.setFullYear(sysDate.getFullYear(), sysDate.getMonth(), sysDate.getDate())\r\n }\r\n }\r\n return now\r\n}\r\n\r\n/**\r\n * @returns 現在日時(時刻成分を0に設定したDateインスタンス)\r\n */\r\nexport const getNowTrimedTime = () => trimTime(getNow())\r\n\r\n/**\r\n * 機械日時 + (getTimezoneOffset()) + (+9時間のミリ秒単位)\r\n * を行うことで日本の時間に補正\r\n * https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset\r\n * @returns 日本の時間に補正したDate\r\n */\r\nconst getJstNow = () => {\r\n const now = new Date()\r\n const utcOffsetMinuteFromLocal = now.getTimezoneOffset()\r\n return new Date(now.getTime() + utcOffsetMinuteFromLocal * 60 * 1000 + 9 * 60 * 60 * 1000)\r\n}\r\n\r\n/**\r\n * @param dateString 日付文字列(Date.parse() メソッドで認識される形式)\r\n * @returns dateString で指定した日付の一日の終わりに対応する Date オブジェクト(日本の時間に補正されたもの)\r\n */\r\nexport const endOfDay = (dateString: string): Date => {\r\n const time = new Date(dateString).getTime()\r\n const timeOffset = time + 9 * 60 * 60 * 1000\r\n const timeOfEndOfDay = new Date(timeOffset).setUTCHours(23, 59, 59, 999)\r\n return new Date(timeOfEndOfDay - 9 * 60 * 60 * 1000)\r\n}\r\n\r\ntype DateToApiString = T extends Date | ElapsedMillisecond ? string : T\r\ntype DateFromApiString = T extends string ? Date : T\r\n\r\n/** APIで扱い日付文字列フォーマットパターン */\r\nconst apiFormat = {\r\n ymdHmsS: 'yyyy-MM-dd HH:mm:ss.SSS',\r\n ymdHms: 'yyyy-MM-dd HH:mm:ss',\r\n ymdHm: 'yyyy-MM-dd HH:mm',\r\n ymd: 'yyyy-MM-dd',\r\n ym: 'yyyy-MM',\r\n hms: 'HH:mm:ss',\r\n hm: 'HH:mm',\r\n} as const\r\n\r\n/** APIのタイムスタンプ項目をパースする際に使用するフォーマット */\r\nconst apiYmdHmsSParseFormats = [\r\n 'yyyy-MM-dd HH:mm:ss.SSS',\r\n 'yyyy-MM-dd HH:mm:ss.SS',\r\n 'yyyy-MM-dd HH:mm:ss.S',\r\n 'yyyy-MM-dd HH:mm:ss',\r\n]\r\n\r\nconst toApiFormat = (\r\n pattern: string,\r\n value: T\r\n): DateToApiString => {\r\n let result\r\n if (value != null) {\r\n result = formatDate(value, pattern)\r\n } else {\r\n result = value\r\n }\r\n return result as DateToApiString\r\n}\r\nconst fromApiFormat = (\r\n pattern: string,\r\n value: T,\r\n baseDate?: Date\r\n): DateFromApiString => {\r\n let result\r\n if (value != null) {\r\n result = parseDate(value, pattern, baseDate)\r\n } else {\r\n result = value\r\n }\r\n return result as DateFromApiString\r\n}\r\n\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(yyyy-MM-dd HH:mm:ss.SSS)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiYmdHmsS = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.ymdHmsS, value)\r\n}\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(yyyy-MM-dd HH:mm:ss)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiYmdHms = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.ymdHms, value)\r\n}\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(yyyy-MM-dd HH:mm)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiYmdHm = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.ymdHm, value)\r\n}\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(yyyy-MM-dd)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiYmd = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.ymd, value)\r\n}\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(yyyy-MM)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiYm = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.ym, value)\r\n}\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(HH:mm:ss)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiHms = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.hms, value)\r\n}\r\n/**\r\n * 日付をAPI受け渡し用日付文字列(HH:mm)へ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付\r\n * @returns API受け渡し用日付文字列\r\n */\r\nexport const toApiHm = (value: T): DateToApiString => {\r\n return toApiFormat(apiFormat.hm, value)\r\n}\r\n\r\n/**\r\n * API受け渡し用日付文字列(yyyy-MM-dd HH:mm:ss.SSS)※1 から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * ※1\r\n * ミリ秒について、末尾0が省略された文字列が返されてしまう為\r\n * 文字列長に応じた書式を適用してパースする。\r\n * 適用する書式は以下の通り\r\n * yyyy-MM-dd HH:mm:ss.SSS\r\n * yyyy-MM-dd HH:mm:ss.SS\r\n * yyyy-MM-dd HH:mm:ss.S\r\n * yyyy-MM-dd HH:mm:ss\r\n *\r\n * @param value 日付文字列\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiYmdHmsS = (value: T): DateFromApiString => {\r\n for (const format of apiYmdHmsSParseFormats) {\r\n if (value != null && value.length === format.length) {\r\n return fromApiFormat(format, value)\r\n }\r\n }\r\n // もしいずれにもマッチしない場合は以下フォーマットで処理\r\n return fromApiFormat(apiFormat.ymdHmsS, value)\r\n}\r\n/**\r\n * API受け渡し用日付文字列(yyyy-MM-dd HH:mm:ss)から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付文字列\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiYmdHms = (value: T): DateFromApiString => {\r\n return fromApiFormat(apiFormat.ymdHms, value)\r\n}\r\n/**\r\n * API受け渡し用日付文字列(yyyy-MM-dd HH:mm)から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付文字列\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiYmdHm = (value: T): DateFromApiString => {\r\n return fromApiFormat(apiFormat.ymdHm, value)\r\n}\r\n/**\r\n * API受け渡し用日付文字列(yyyy-MM-dd)から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付文字列\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiYmd = (value: T): DateFromApiString => {\r\n return fromApiFormat(apiFormat.ymd, value)\r\n}\r\n/**\r\n * API受け渡し用日付文字列(yyyy-MM)から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付文字列\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiYm = (value: T): DateFromApiString => {\r\n return fromApiFormat(apiFormat.ym, value)\r\n}\r\n/**\r\n * API受け渡し用日付文字列(HH:mm:ss)から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付文字列\r\n * @param baseDate 基準とする日付(日を補完する目的で使用する)。省略した場合はgetNow()を採用\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiHms = (value: T, baseDate?: Date): DateFromApiString => {\r\n return fromApiFormat(apiFormat.hms, value, baseDate)\r\n}\r\n/**\r\n * API受け渡し用日付文字列(HH:mm)から日付インスタンスへ変換する。\r\n * null,undefinedを受け渡した場合は、そのままnull,undefinedを返す。\r\n *\r\n * @param value 日付文字列\r\n * @param baseDate 基準とする日付(日を補完する目的で使用する)。省略した場合はgetNow()を採用\r\n * @returns 日付インスタンス\r\n */\r\nexport const fromApiHm = (value: T, baseDate?: Date): DateFromApiString => {\r\n return fromApiFormat(apiFormat.hm, value, baseDate)\r\n}\r\n\r\n/**\r\n * 入力されたクラス年齢から対象の誕生日の下限と上限日を取得する。\r\n * @param age \r\n * @return { from, to } Date\r\n */\r\nexport const getFromToBirthdayFromClassAge = (dateCriteria: Date, age: number) => {\r\n let from = null;\r\n let to = null;\r\n\r\n const criteriaYear = dateCriteria.getFullYear() - age;\r\n\r\n // 1~3月の場合\r\n if (dateCriteria.getMonth() <= 2) {\r\n from = new Date(`${criteriaYear - 2}/04/02`);\r\n to = new Date(`${criteriaYear - 1}/04/01`);\r\n }else {\r\n from = new Date(`${criteriaYear - 1}/04/02`);\r\n to = new Date(`${criteriaYear}/04/01`);\r\n }\r\n \r\n if (age === 0) {\r\n to = dateCriteria;\r\n }\r\n\r\n return { from, to };\r\n}\r\n\r\n/**\r\n * 入力された年齢(月齢、日齢)から誕生日を割り出す。\r\n * @param dateCriteria 日付基準\r\n * @param age 年齢(年単位)\r\n * @param month 月齢(月単位)\r\n * @param day 日齢(日単位)\r\n * @param isClosestDate 最も近い日付を返すかどうか(true: 最も近い, false: 最も遠い)\r\n * @return Date 誕生日\r\n */\r\nexport const getBirthday = (dateCriteria: Date, age: number | null, months: number | null, days: number | null, isClosestDate: boolean): Date => {\r\n // 全てのパラメータがnullの場合、基準日付をそのまま返す\r\n if (age === null && months === null && days === null) {\r\n return dateCriteria;\r\n }\r\n\r\n // 年齢がnullの場合は0を代入\r\n age = age ?? 0;\r\n\r\n let calcDays;\r\n\r\n if (days === null) {\r\n if (isClosestDate) {\r\n calcDays = 0;\r\n }else {\r\n calcDays = new Date(dateCriteria.getFullYear(), dateCriteria.getMonth() + 1, 0).getDate();\r\n }\r\n }else {\r\n calcDays = days;\r\n }\r\n\r\n if (months === null) {\r\n if (isClosestDate) {\r\n months = 0;\r\n }else if (days === null) {\r\n months = 11;\r\n }else {\r\n months = 0;\r\n }\r\n }\r\n\r\n // 日付を基準に年齢、月齢、日齢を減算\r\n let year = dateCriteria.getFullYear() - age;\r\n let month = dateCriteria.getMonth() - months;\r\n let day = dateCriteria.getDate() - calcDays;\r\n\r\n // 日がマイナスになるのを防ぐ\r\n if (day < 1) {\r\n month -= 1;\r\n if (month < 0) {\r\n year -= 1;\r\n month += 12;\r\n }\r\n day += new Date(year, month + 1, 0).getDate();\r\n }\r\n\r\n // 正しい日付を作成\r\n const calculatedDate = new Date(year, month, day);\r\n\r\n // days=null で isClosestDate=false の場合に1日追加\r\n if (!isClosestDate && days === null) {\r\n return new Date(year, month, dateCriteria.getDate() + 1);\r\n }\r\n\r\n return calculatedDate;\r\n}\r\n\r\n/**\r\n * 日付に日数を足す\r\n * @param date Date\r\n * @param days number 足したい日数\r\n */\r\nexport const addDays = (date: Date, days: number) => {\r\n const newDate = new Date(date);\r\n newDate.setDate(date.getDate() + days);\r\n return newDate;\r\n}","import { v4 as uuidV4 } from 'uuid'\r\n\r\n/** WindowIDのsessionストレージ保存キー */\r\nconst WINDOW_ID_STORE_KEY_NAME = 'operation_log_window_id'\r\n/** SSOで連携、ログイン後に遷移する先のsessionストレージ保存キー */\r\nconst SSO_LOGIN_REDIRECT_TO_KEY_NAME = 'sso_login_redirect_to'\r\n/** ログイン済でSSOで連携後に遷移する先のsessionストレージ保存キー */\r\nconst SSO_LINK_REDIRECT_TO_KEY_NAME = 'sso_link_redirect_to'\r\n\r\nlet windowId: string | undefined = undefined\r\n\r\nexport const getWindowId = () => {\r\n if (windowId == null) {\r\n windowId = uuidV4()\r\n }\r\n return windowId\r\n}\r\n\r\nexport const backupWindowId = () => {\r\n if (windowId != null) {\r\n window.sessionStorage.setItem(WINDOW_ID_STORE_KEY_NAME, windowId)\r\n }\r\n}\r\n\r\nexport const restoreWindowId = () => {\r\n const id = window.sessionStorage.getItem(WINDOW_ID_STORE_KEY_NAME)\r\n if (id != null) {\r\n windowId = id\r\n // タブ複製、新しいタブで開く等のsessionStorageコピーで引き継がれないよう\r\n // 復元後は削除\r\n window.sessionStorage.removeItem(WINDOW_ID_STORE_KEY_NAME)\r\n }\r\n}\r\n\r\n\r\nexport const saveSsoLoginRedirectTo = (to: string) => {\r\n window.sessionStorage.setItem(SSO_LOGIN_REDIRECT_TO_KEY_NAME, to)\r\n}\r\n\r\nexport const loadDeleteSsoLoginRedirectTo = () => {\r\n const to = window.sessionStorage.getItem(SSO_LOGIN_REDIRECT_TO_KEY_NAME)\r\n window.sessionStorage.removeItem(SSO_LOGIN_REDIRECT_TO_KEY_NAME)\r\n return to\r\n}\r\n\r\nexport const saveSsoLinkRedirectTo = (to: string) => {\r\n window.sessionStorage.setItem(SSO_LINK_REDIRECT_TO_KEY_NAME, to)\r\n}\r\n\r\nexport const loadDeleteSsoLinkRedirectTo = () => {\r\n const to = window.sessionStorage.getItem(SSO_LINK_REDIRECT_TO_KEY_NAME)\r\n window.sessionStorage.removeItem(SSO_LINK_REDIRECT_TO_KEY_NAME)\r\n return to\r\n}","import { useCallback } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { executePostOperationLog, executePostOperationLogAccessData } from '../../dataAccess/webApi/dao/operationLogDao'\r\nimport { AccessData } from '../../dataAccess/webApi/dto/operationLogDto'\r\nimport { getNow, toApiYmdHmsS } from '../../utils/dateUtil'\r\nimport { getWindowId } from './sessionStore'\r\nimport { selectIsLoggedIn } from './store/slices/authority'\r\n\r\nconst getCurrentUrl = () => {\r\n const locationPath = window.location.pathname\r\n return locationPath.split('/', 2).join('/')\r\n}\r\n\r\nexport interface OperationLogInput {\r\n operationId: string\r\n accessData?: AccessData[]\r\n}\r\n\r\nexport interface OperationLogRecord extends OperationLogInput {\r\n windowId: string\r\n url: string\r\n operationDatetime: string\r\n}\r\n\r\nconst sendingQueue: OperationLogRecord[] = []\r\nlet isSending = false\r\nlet latestAddOperationLogRecord: OperationLogRecord | undefined\r\n\r\nconst postOperationLog = async () => {\r\n const operations = sendingQueue.splice(0)\r\n if (operations.length === 0) {\r\n return\r\n }\r\n try {\r\n await executePostOperationLog({ operations })\r\n } catch (e) {\r\n // エラーでも処理続行\r\n console.error(e)\r\n }\r\n}\r\n\r\nconst sendOperationLog = async () => {\r\n if (isSending) {\r\n return\r\n }\r\n isSending = true\r\n while (sendingQueue.length) {\r\n await postOperationLog()\r\n }\r\n isSending = false\r\n}\r\n\r\n/**\r\n * @returns 最後にaddOperationLogしたレコードの操作日時\r\n */\r\nexport const getLatestAddOperationDatetime = () => {\r\n return latestAddOperationLogRecord?.operationDatetime\r\n}\r\n\r\nexport const useOperationLog = () => {\r\n const isLoggedIn = useSelector(selectIsLoggedIn)\r\n\r\n const addOperationLog = useCallback(\r\n (logInput: OperationLogInput) => {\r\n if (!isLoggedIn) {\r\n // ログインしていない場合は記録しない\r\n return\r\n }\r\n\r\n const record: OperationLogRecord = {\r\n ...logInput,\r\n windowId: getWindowId(),\r\n url: getCurrentUrl(),\r\n operationDatetime: toApiYmdHmsS(getNow()),\r\n }\r\n // アクセスデータログ登録をその他APIで行う際に\r\n // 操作ログ紐づけ用のキー情報を取り出す目的に設定\r\n latestAddOperationLogRecord = record\r\n\r\n sendingQueue.push(record)\r\n return sendOperationLog()\r\n },\r\n [isLoggedIn]\r\n )\r\n\r\n const getOnClickAddOperationLog = useCallback(\r\n (logInput: OperationLogInput) => {\r\n return () => {\r\n addOperationLog(logInput)\r\n }\r\n },\r\n [addOperationLog]\r\n )\r\n\r\n const flushOperationLog = useCallback(() => {\r\n return postOperationLog()\r\n }, [])\r\n\r\n const attachAccessData = useCallback(\r\n async (accessInput: { operationDatetime?: string; accessData?: AccessData[] }) => {\r\n try {\r\n const operationDatetime = accessInput.operationDatetime ?? getLatestAddOperationDatetime()\r\n if (!operationDatetime) {\r\n console.error('operationDatetime none')\r\n return\r\n }\r\n await executePostOperationLogAccessData({ operationDatetime, accessData: accessInput.accessData })\r\n } catch (e) {\r\n // エラーでも処理続行\r\n console.error(e)\r\n }\r\n },\r\n []\r\n )\r\n\r\n return { addOperationLog, getOnClickAddOperationLog, flushOperationLog, attachAccessData }\r\n}\r\n","import { executeGetNoResultError } from '../common/apiCaller'\r\nimport { GetControlDto, GetGuideTextDto } from '../dto/controlDto'\r\n\r\nconst apiName = 'public'\r\nconst apiPath = '/control'\r\n\r\nexport const executeGetControl = () => {\r\n return executeGetNoResultError(apiName, apiPath)\r\n}\r\n\r\nexport const executeGetGuideText = (id: number) => {\r\n return executeGetNoResultError(apiName, `${apiPath}/guide-text/${id}`)\r\n}\r\n","import { DecimalType } from './typeUtil'\r\n\r\n// Objectに対する操作を扱うユーティリティ関数\r\n//\r\n\r\nimport {\r\n DatePropsToNumberType,\r\n DateToNumberType,\r\n KeysInclude,\r\n NullPropsToUndefinedType,\r\n NumberPropsToDateType,\r\n UndefinedPropsToNullType,\r\n UndefinedPropsToOptionalType,\r\n} from './typeUtil'\r\n\r\n/**\r\n * nullをundefinedに変換する\r\n *\r\n * @param value 値\r\n * @returns nullならundefined\r\n */\r\nexport const nullToUndefined = (value: T) => {\r\n return value ?? undefined\r\n}\r\n\r\n/**\r\n * 値の各プロパティに対し、nullをundefinedに変換する\r\n *\r\n * @param value 値\r\n * @returns 各プロパティのnullをundefinedに変換したもの\r\n */\r\nexport const nullPropsToUndefined = (value: T): NullPropsToUndefinedType => {\r\n return Object.fromEntries(\r\n Object.entries(value).map(([key, value]) => [key, nullToUndefined(value)])\r\n ) as NullPropsToUndefinedType\r\n}\r\n\r\n/**\r\n * undefinedをnullに変換する\r\n *\r\n * @param value 値\r\n * @returns undefinedならnull\r\n */\r\nexport const undefinedToNull = (value: T) => {\r\n return value ?? null\r\n}\r\n\r\n/**\r\n * 値の各プロパティに対し、undefinedをnullに変換する\r\n *\r\n * @param value 値\r\n * @returns 各プロパティのundefinedをnullに変換したもの\r\n */\r\nexport const undefinedPropsToNull = (value: T): UndefinedPropsToNullType => {\r\n return Object.fromEntries(\r\n Object.entries(value).map(([key, value]) => [key, undefinedToNull(value)])\r\n ) as UndefinedPropsToNullType\r\n}\r\n\r\n/**\r\n * Dateをnumber(1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒)に変換する\r\n *\r\n * @param value 日付\r\n * @returns number(1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒)\r\n */\r\nexport const dateToNumber = (value: T): DateToNumberType => {\r\n return (value instanceof Date ? value.getTime() : value) as DateToNumberType\r\n}\r\n\r\n/**\r\n * 値の日付型の各プロパティに対し、Dateをnumber(1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒)に変換する\r\n *\r\n * @param value 値\r\n * @returns 日付型の各プロパティに対し、Dateをnumber(1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒)に変換したもの\r\n */\r\nexport const datePropsToNumber = (value: T): DatePropsToNumberType => {\r\n return Object.fromEntries(\r\n Object.entries(value).map(([key, value]) => [key, dateToNumber(value)])\r\n ) as DatePropsToNumberType\r\n}\r\n\r\n/**\r\n * 指定した変換対象プロパティに対し、number(1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒)をDateに変換する\r\n *\r\n * @param value 値\r\n * @param keys 変換対象プロパティ名配列。\r\n * Conditional typesを用いて値のプロパティの内number型のみを指定するように型チェックしている\r\n *\r\n * @returns 指定した変換対象プロパティに対し、number(1970 年 1 月 1 日 00:00:00 UTCからの経過ミリ秒)をDateに変換したもの\r\n */\r\nexport const numberPropsToDate = >(value: T, keys: K[]) => {\r\n return Object.fromEntries(\r\n Object.entries(value).map(([key, value]) => [\r\n key,\r\n value && (keys as string[]).includes(key) ? new Date(value) : value,\r\n ])\r\n ) as NumberPropsToDateType\r\n}\r\n\r\n/**\r\n * undefinedを含むプロパティをオプショナルに変換して返す。\r\n * @param value 変換対象のオブジェクト\r\n * @returns undefined,nullのプロパティを除去したオブジェクトを返す。\r\n * 戻り値の型は、undefinedを含むプロパティをオプショナル型に変換した型\r\n */\r\nexport const undefinedPropsToOptional = (value: T) => {\r\n return Object.fromEntries(\r\n Object.entries(value).filter(([, value]) => value != null)\r\n ) as UndefinedPropsToOptionalType\r\n}\r\n\r\n/**\r\n * targetからnameのオブジェクト名の値を返す\r\n * @param target 対象のオブジェクト\r\n * @param name 取得対象のオブジェクト名\r\n * @returns\r\n */\r\nexport const getValueByNameStr = (target: any, name: string) => {\r\n const parts = name.split('.')\r\n let obj = target\r\n for (const part of parts) {\r\n if (obj == null) {\r\n return obj\r\n }\r\n obj = obj[part]\r\n }\r\n return obj\r\n}\r\n\r\nexport const getSizeOfObject = (object: any): number => {\r\n const objectString = JSON.stringify(object);\r\n // Encode the JSON string as a UTF-8 byte array\r\n return new TextEncoder().encode(objectString).length;\r\n}\r\n\r\nexport const combineDecimalParts = (decimalObj: DecimalType | null): number | null => {\r\n if (!decimalObj || decimalObj.integer === null || decimalObj.integer === undefined) {\r\n return null;\r\n }\r\n\r\n const integerPart = decimalObj.integer;\r\n const fractionalPart = decimalObj.fractional ?? 0;\r\n\r\n // 数値に変換して返す\r\n return parseFloat(`${integerPart}.${fractionalPart}`);\r\n}","import { useCallback } from 'react'\nimport { executeGetControl } from '../../dataAccess/webApi/dao/controlDao'\nimport { fromApiYmdHms, initializeDateUtil, fromApiYmd } from '../../utils/dateUtil'\nimport { nullToUndefined, datePropsToNumber } from '../../utils/objectUtil'\nimport { setSystemControl } from './store/slices/systemControl'\nimport { useDispatch } from 'react-redux'\n\ntype UseControlReturn = {\n getControl: () => Promise\n}\ntype UseControlArg = {\n shouldSetTitle?: boolean\n}\ntype UseControl = (arg: UseControlArg) => UseControlReturn\n\nexport const useControl: UseControl = ({ shouldSetTitle = false }) => {\n const dispatch = useDispatch()\n\n const getControl = useCallback(async () => {\n const controlRes = await executeGetControl()\n const systemDatetime = nullToUndefined(fromApiYmdHms(controlRes.result.systemDatetime))\n const serviceTitle = controlRes.result.serviceTitle\n if (shouldSetTitle) {\n document.title = serviceTitle\n document.querySelector('meta[name=\"description\"]')?.setAttribute('content', serviceTitle)\n }\n initializeDateUtil(systemDatetime)\n dispatch(\n setSystemControl(\n datePropsToNumber({\n serviceTitle,\n serviceUrlForUser: controlRes.result.serviceUrlForUser ?? '',\n serviceUrlForManager: controlRes.result.serviceUrlForManager ?? '',\n iconImageName: controlRes.result.iconImageName,\n accountCreateInformation: controlRes.result.accountCreateInformation ?? '',\n termsOfService: controlRes.result.termsOfService ?? '',\n s3BucketNameIcon: controlRes.result.s3BucketNameIcon,\n s3BucketNameCitizenUserReservationFile: controlRes.result.s3BucketNameCitizenUserReservationFile,\n s3BucketNameCitizenUserLotteryReservation: controlRes.result.s3BucketNameCitizenUserLotteryReservation,\n s3BucketNameCitizenUserInterviewFile: controlRes.result.s3BucketNameCitizenUserInterviewFile,\n projectSearchFlag: controlRes.result.projectSearchFlag,\n facilityCategorySearchFlag: controlRes.result.facilityCategorySearchFlag,\n ssoUseFlag: controlRes.result.ssoUseFlag,\n ssoUseName: controlRes.result.ssoUseName,\n ssoEmailCertificationFlag: controlRes.result.ssoEmailCertificationFlag,\n smsSubscriptionFlag: controlRes.result.smsSubscriptionFlag,\n phoneCertificationFlag: controlRes.result.phoneCertificationFlag,\n duplicateConfirmControlFlag: controlRes.result.duplicateConfirmControlFlag,\n duplicateUnsettledControlFlag: controlRes.result.duplicateUnsettledControlFlag,\n duplicateWaitControlFlag: controlRes.result.duplicateWaitControlFlag,\n crossBusinessDuplicationCheckFlag: controlRes.result.crossBusinessDuplicationCheckFlag,\n multiChildReservationAvailabilityFlag: controlRes.result.multiChildReservationAvailabilityFlag,\n systemDatetime,\n s3BucketNameManual: controlRes.result.s3BucketNameManual,\n s3BucketNameTermsOfUse: controlRes.result.s3BucketNameTermsOfUse,\n useCouponFunctionFlag: controlRes.result.useCouponFunctionFlag,\n ...(controlRes.result.usageCouponFromDate &&\n controlRes.result.usageCouponToDate && {\n usageCouponFromDate: fromApiYmd(controlRes.result.usageCouponFromDate),\n usageCouponToDate: fromApiYmd(controlRes.result.usageCouponToDate),\n }),\n\n unsubscribeAcceptFlag: controlRes.result.unsubscribeAcceptFlag,\n childUseEndAcceptFlag: controlRes.result.childUseEndAcceptFlag,\n descriptionForUnsubscribe: controlRes.result.descriptionForUnsubscribe ?? '',\n descriptionForChildUseEnd: controlRes.result.descriptionForChildUseEnd ?? '',\n interviewBulkReceptionFlag: controlRes.result.interviewBulkReceptionFlag,\n provisionCertificateFeatureStatus: controlRes.result.provisionCertificateFeatureStatus,\n paymentStatusFlag: controlRes.result.paymentStatusFlag,\n provisionCertificatePaymentStatusFlag: controlRes.result.provisionCertificatePaymentStatusFlag,\n provisionCertificateUserReissueStatus: controlRes.result.provisionCertificateUserReissueStatus,\n usageFeeDisplayStatus: controlRes.result.usageFeeDisplayStatus,\n issuableDate: controlRes.result.issuableDate,\n lotteryDisplayFlag: controlRes.result.lotteryDisplayFlag,\n lotteryFlag: controlRes.result.lotteryFlag,\n lotteryMethod: controlRes.result.lotteryMethod,\n acceptNoticeStatus: controlRes.result.acceptNoticeStatus,\n })\n )\n )\n }, [dispatch, shouldSetTitle])\n\n return {\n getControl,\n }\n}\n","import { useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useRouteMatch } from 'react-router-dom'\r\nimport { initializeI18n } from '../../i18n'\r\nimport { errorUrls, loginUrl, receiptViewUrl } from '../common/constant/appUrl'\r\nimport { httpStatusCode } from '../common/constant/classification'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { backupWindowId, restoreWindowId } from '../common/sessionStore'\r\nimport { setPxPerVh, updateHistoryStackLength } from '../common/store/slices/application'\r\nimport { detectLoginStatus } from '../common/store/slices/authority'\r\nimport { Hub } from 'aws-amplify'\r\nimport { useControl } from '../common/useControl'\r\n\r\nconst getPxPerVh = () => window.innerHeight / 100\r\n\r\nexport const useAction = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [isInitializedLoggedIn, setIsInitializedLoggedIn] = useState(false)\r\n const loginRouteMatch = useRouteMatch({\r\n path: loginUrl.routerPath,\r\n exact: true,\r\n })\r\n const underMaintenanceRouteMatch = useRouteMatch({\r\n path: errorUrls[httpStatusCode.serviceUnavailable].routerPath,\r\n exact: true,\r\n })\r\n const receiptViewRouteMatch = useRouteMatch({\r\n path: receiptViewUrl.routerPath,\r\n exact: true,\r\n })\r\n\r\n const { flushOperationLog } = useOperationLog()\r\n const { getControl } = useControl({\r\n shouldSetTitle: true,\r\n })\r\n\r\n useEffect(() => {\r\n return Hub.listen('auth', async ({ payload: { event } }) => {\r\n if (event === 'cognitoHostedUI') {\r\n await dispatch(detectLoginStatus())\r\n }\r\n })\r\n }, [])\r\n useEffect(() => {\r\n return history.listen((location, action) => {\r\n dispatch(updateHistoryStackLength(action))\r\n })\r\n }, [])\r\n useEffect(() => {\r\n const onResize = () => dispatch(setPxPerVh(getPxPerVh()))\r\n onResize()\r\n window.addEventListener('resize', onResize)\r\n return () => window.removeEventListener('resize', onResize)\r\n }, [])\r\n useEffect(() => {\r\n const initializeLoggedIn = async () => {\r\n await Promise.all([\r\n (async () => {\r\n await initializeI18n()\r\n })(),\r\n dispatch(detectLoginStatus()),\r\n getControl(),\r\n ])\r\n\r\n setIsInitializedLoggedIn(true)\r\n }\r\n initializeLoggedIn()\r\n }, [dispatch, getControl])\r\n\r\n useEffect(() => {\r\n const onBeforeunload = () => {\r\n flushOperationLog()\r\n }\r\n window.addEventListener('beforeunload', onBeforeunload)\r\n return () => window.removeEventListener('beforeunload', onBeforeunload)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [flushOperationLog])\r\n\r\n useEffect(() => {\r\n const onUnload = () => backupWindowId()\r\n window.addEventListener('unload', onUnload)\r\n return () => window.removeEventListener('unload', onUnload)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const onDOMContentLoaded = () => restoreWindowId()\r\n window.addEventListener('DOMContentLoaded', onDOMContentLoaded)\r\n return () => window.removeEventListener('DOMContentLoaded', onDOMContentLoaded)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return {\r\n isInitializedLoggedIn,\r\n loginRouteMatch,\r\n receiptViewRouteMatch,\r\n underMaintenanceRouteMatch,\r\n }\r\n}\r\n","/** 個人情報の取り扱いについて */\r\nexport const handingOfPersonalDataUrl = 'https://www.densan-s.co.jp/privacy.html'\r\n/** 乳幼児一時預かりについて */\r\nexport const aboutTemporaryCustodyOfInfantsUrl =\r\n 'https://www.city.yokohama.lg.jp/kurashi/kosodate-kyoiku/kosodateshien/nyuyoji-ichiji/nyuyoji-ichiji.html'\r\n\r\n/** 一時保育事業について */\r\nexport const aboutTemporaryChildcareBusinessUrl =\r\n 'https://www.city.yokohama.lg.jp/kurashi/kosodate-kyoiku/hoiku-yoji/shisetsu/hoikuseido/ichiji/ichijiannai.html'\r\n\r\n/** はじめてのお預かり券とは */\r\nexport const aboutFirstChildcareTicketUrl =\r\n 'https://www.city.yokohama.lg.jp//kurashi/kosodate-kyoiku/kosodateshien/hajimetenoazukari.html'\r\n\r\n/** GoogleMapへのリンクURL(Search) */\r\nexport const googleMapLinkSearchUrl = 'https://www.google.com/maps/search/?api=1&query='\r\n\r\n/** 当システムのマニュアルPDF */ // バケットをシステムコントロールから取得するように変更\r\n// export const systemManualPdfUrl =\r\n// 'https://public-manual-bucket.s3.ap-northeast-1.amazonaws.com/%E6%A8%AA%E6%B5%9C%E5%B8%82_%E4%B8%80%E6%99%82%E9%A0%90%E3%81%8B%E3%82%8A%E4%BF%9D%E8%82%B2%E4%BA%88%E7%B4%84%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0_%E5%B8%82%E6%B0%91%E5%90%91%E3%81%91%E3%83%9E%E3%83%8B%E3%83%A5%E3%82%A2%E3%83%AB.pdf'\r\n\r\n/** 横浜市一時預かりWEB予約システム */\r\nexport const yokohamaCityTemporaryChildcareReservationServiceUrl = 'https://ichiji-yoyaku.city.yokohama.lg.jp/'\r\n\r\n/** docomoメール設定画面 */\r\nexport const docomoMailSetupUrl = 'https://www.docomo.ne.jp/info/spam_mail/domain/'\r\n\r\n/** auメール設定画面 */\r\nexport const auMailSetupUrl = 'https://www.au.com/support/service/mobile/trouble/mail/email/filter/detail/domain/'\r\n\r\n/** softbankメール設定画面 */\r\nexport const softbankMailSetupUrl = 'https://www.softbank.jp/mobile/support/mail/antispam/mms/whiteblack/'\r\n\r\n/** ymobileメール設定画面 */\r\nexport const ymobileMailSetupUrl = 'https://www.ymobile.jp/support/relief/trouble_mail/'\r\n","import { Link as MuiLink, styled } from '@mui/material'\r\nimport { LocationDescriptor } from 'history'\r\nimport { MouseEvent, MouseEventHandler, ReactNode, useCallback } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\nimport { OperationLogInput, useOperationLog } from '../../../containers/common/operationLog'\r\n\r\ninterface LinkProps {\r\n children: ReactNode\r\n className?: string\r\n underline?: 'none' | 'hover' | 'always'\r\n target?: '_blank'\r\n onClick?: MouseEventHandler\r\n to?: LocationDescriptor\r\n replace?: boolean\r\n href?: string\r\n disabled?: boolean\r\n download?: string\r\n operationLog?: OperationLogInput\r\n}\r\n\r\nconst Root = (props: LinkProps) => {\r\n const { children, to, replace, onClick, href, operationLog, ...linkAttrs } = props\r\n const { getOnClickAddOperationLog } = useOperationLog()\r\n\r\n let rel\r\n if (linkAttrs.target === '_blank') {\r\n rel = 'noreferrer'\r\n }\r\n const onClickOpWrapped = useCallback(\r\n (event: MouseEvent) => {\r\n if (operationLog == null) {\r\n return\r\n }\r\n getOnClickAddOperationLog(operationLog)()\r\n if (onClick != null) {\r\n return onClick(event)\r\n }\r\n },\r\n [onClick, operationLog, getOnClickAddOperationLog]\r\n )\r\n\r\n let onClickAttrs = {\r\n onClick,\r\n }\r\n if (operationLog) {\r\n onClickAttrs = {\r\n onClick: onClickOpWrapped,\r\n }\r\n }\r\n\r\n return to ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\nexport const Link = styled(Root, { shouldForwardProp: (prop) => prop !== 'disabled' })<{ disabled?: boolean }>(\r\n ({ theme, disabled }) => ({\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n ...(disabled && {\r\n pointerEvents: 'none',\r\n color: theme.palette.text.disabled,\r\n textDecoration: 'none',\r\n }),\r\n })\r\n)\r\n","// 画面共通のフッター部\r\n//\r\n\r\nimport { styled } from '@mui/material'\r\nimport { memo, useEffect, useRef } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport {\r\n contactUrl,\r\n faqUrl,\r\n manualUrl,\r\n webAccessibilityPolicyUrl,\r\n termsOfServiceUrl,\r\n} from '../../../containers/common/constant/appUrl'\r\nimport { handingOfPersonalDataUrl } from '../../../containers/common/constant/externalUrl'\r\nimport { setIsIntersectingFooter } from '../../../containers/common/store/slices/application'\r\nimport { translate } from '../../../i18n'\r\nimport { Link } from './link'\r\nimport { SystemDatetimeLabel } from './systemDatetimeLabel'\r\n\r\nconst Root = styled('footer')(({ theme }) => ({\r\n position: 'relative',\r\n fontSize: theme.typography.font.sizeS,\r\n padding: '20px 30px',\r\n height: theme.typography.pxToRem(theme.appFooter.height('xs')),\r\n [theme.breakpoints.up('sm')]: {\r\n padding: '16px 30px',\r\n height: theme.typography.pxToRem(theme.appFooter.height('sm')),\r\n },\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.main,\r\n}))\r\nconst LinkBox = styled('div')(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'start',\r\n flexWrap: 'wrap',\r\n height: '100%',\r\n '& .MuiLink-root': {\r\n color: theme.palette.primary.contrastText,\r\n whiteSpace: 'nowrap',\r\n padding: '3px 0',\r\n },\r\n [theme.breakpoints.up('sm')]: {\r\n flexDirection: 'row',\r\n justifyContent: 'center',\r\n alignItems: 'stretch',\r\n '& .MuiLink-root': {\r\n padding: '0 15px',\r\n },\r\n },\r\n}))\r\nconst Separater = styled('div')(({ theme }) => ({\r\n borderRight: `1px solid ${theme.palette.white.main}`,\r\n}))\r\nconst SysDateInfo = styled(SystemDatetimeLabel)({\r\n position: 'absolute',\r\n left: 0,\r\n top: 0,\r\n})\r\n\r\n/** 画面共通フッター */\r\nexport const AppFooter = memo(function AppFooter() {\r\n const dispatch = useDispatch()\r\n const footerRef = useRef(null)\r\n const observer = useRef()\r\n\r\n useEffect(() => {\r\n const currentOvserver = new IntersectionObserver((entries) => {\r\n const target = entries[0]\r\n dispatch(setIsIntersectingFooter(target.isIntersecting))\r\n })\r\n observer.current = currentOvserver\r\n return () => currentOvserver.disconnect()\r\n }, [])\r\n useEffect(() => {\r\n const currentOvserver = observer.current\r\n const footerElement = footerRef.current\r\n if (footerElement && currentOvserver) {\r\n currentOvserver.observe(footerElement)\r\n }\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n {translate('system.appFooter.termsOfService')}\r\n \r\n \r\n \r\n {translate('system.appFooter.handingOfPersonalData')}\r\n \r\n \r\n \r\n {translate('system.appFooter.manual')}\r\n \r\n \r\n \r\n {translate('system.appFooter.faq')}\r\n \r\n \r\n \r\n {translate('system.appFooter.contact')}\r\n \r\n \r\n \r\n {translate('system.appFooter.webAccessibility')}\r\n \r\n \r\n \r\n \r\n )\r\n})\r\n","import { useSelector } from 'react-redux'\r\nimport { selectSystemControl } from '../../../containers/common/store/slices/systemControl'\r\nimport { formatYmdHms } from '../../../utils/dateUtil'\r\n\r\nexport const SystemDatetimeLabel = (props: { className?: string }) => {\r\n const sysCtrl = useSelector(selectSystemControl)\r\n return sysCtrl.systemDatetime == null ? null : (\r\n {formatYmdHms(sysCtrl.systemDatetime)}\r\n )\r\n}\r\n","import { executePost } from '../common/apiCaller';\r\nimport { PostFrontErrorLog } from '../dto/frontErrorLogDto';\r\n\r\nconst apiName = 'public'\r\nconst apiPath = '/front-error-log'\r\n\r\n/**\r\n * エラーログをClourWatch上に出力\r\n */\r\nexport const executePostFrontErrorLog = (data: PostFrontErrorLog) => {\r\n return executePost(apiName, apiPath, data)\r\n}\r\n\r\n","import { useCallback } from 'react'\r\nimport { useHistory } from 'react-router'\r\nimport { ApiError, NoResultError } from '../../../dataAccess/webApi/common/apiCaller'\r\nimport { isKeyOf } from '../../../utils/typeUtil'\r\nimport { getSizeOfObject } from '../../../utils/objectUtil'\r\nimport { errorUrls } from '../constant/appUrl'\r\nimport { httpStatusCode } from '../constant/classification'\r\nimport { PostFrontErrorLog } from '../../../dataAccess/webApi/dto/frontErrorLogDto'\r\nimport { executePostFrontErrorLog } from '../../../dataAccess/webApi/dao/frontErrorLogDao'\r\n\r\nconst MAX_BODY_SIZE = 7900\r\n\r\n/**\r\n * useEffect、onClickなどのイベントハンドラー内の処理で\r\n * 例外ハンドリングを行う関数を生成するフック関数。\r\n * この関数でラップしなければ、処理内で例外が発生してもエラー画面へ遷移させる処理が行われず\r\n * 例外は握りつぶされることになる。\r\n *\r\n * @returns 例外ハンドリング関数\r\n */\r\nexport const useErrorHandle = () => {\r\n const history = useHistory()\r\n\r\n const errorHandle = useCallback((e: unknown, data?: Object) => {\r\n if (e instanceof NoResultError) {\r\n // APIレスポンスのresult=nullなどで発生した例外の場合\r\n history.replace(errorUrls[httpStatusCode.notFound].url())\r\n } else if (e instanceof ApiError) {\r\n // その他のAPI呼び出しで発生した例外(httpstatus!=200)\r\n if (e.statusCode == null) {\r\n // statusCodeが無い場合、メンテナンス中用に設定した\r\n // WAFのレスポンスである可能性がある為、一度503ページへ遷移\r\n history.replace(errorUrls[503].url())\r\n } else if (isKeyOf(e.statusCode, errorUrls)) {\r\n history.replace(errorUrls[e.statusCode].url())\r\n } else {\r\n history.replace(errorUrls.unknown.url())\r\n }\r\n } else {\r\n // 想定されないエラー。開発中のバグなど\r\n console.error('想定されないエラー', e);\r\n const postFrontErrorLog: PostFrontErrorLog = {\r\n url: window.location.pathname,\r\n userAgent: navigator.userAgent,\r\n data: data \r\n }\r\n if (e instanceof Error) {\r\n postFrontErrorLog.errorName = e.name\r\n postFrontErrorLog.errorMessage = e.message\r\n postFrontErrorLog.stack = e.stack\r\n }\r\n \r\n const bodySize = getSizeOfObject(postFrontErrorLog)\r\n if ( bodySize > MAX_BODY_SIZE ) {\r\n postFrontErrorLog.data = {\r\n error: 'ボディサイズが8kbを超えています'\r\n }\r\n }\r\n \r\n executePostFrontErrorLog(postFrontErrorLog);\r\n \r\n history.replace(errorUrls.unknown.url())\r\n }\r\n }, [])\r\n\r\n const errorHandler = useCallback( R>(process: T, data?: Object) => {\r\n const wrapedProcess = (...args: never[]) => {\r\n try {\r\n const returnValue = process(...args)\r\n if (returnValue instanceof Promise) {\r\n return returnValue.catch((error) => errorHandle(error, data));\r\n } else {\r\n return returnValue\r\n }\r\n } catch (e) {\r\n errorHandle(e, data)\r\n }\r\n }\r\n return wrapedProcess as T\r\n }, [])\r\n\r\n return errorHandler\r\n}\r\n","/**\r\n * 操作ID\r\n * 市民機能のみに存在する操作も含めた連番定義\r\n * ※市民側は施設で定義した定数のコピーとする。その都合で命名も施設基準になっている\r\n */\r\nexport const OperationId = {\r\n /** 初期表示 */\r\n OP_00000001: '00000001',\r\n /** 利用者選択 */\r\n OP_00000002: '00000002',\r\n /** 保護者一覧:検索 */\r\n OP_00000003: '00000003',\r\n /** 予約サマリ */\r\n OP_00000004: '00000004',\r\n /** 仮予約 */\r\n OP_00000005: '00000005',\r\n /** 予約確定 */\r\n OP_00000006: '00000006',\r\n /** 予約見送り */\r\n OP_00000007: '00000007',\r\n /** キャンセル待ち */\r\n OP_00000008: '00000008',\r\n /** 予約キャンセル */\r\n OP_00000009: '00000009',\r\n /** 実績確定 */\r\n OP_00000010: '00000010',\r\n /** 未利用 */\r\n OP_00000011: '00000011',\r\n /** 領収書 */\r\n OP_00000012: '00000012',\r\n /** 保護者氏名 */\r\n OP_00000013: '00000013',\r\n /** お子さま氏名 */\r\n OP_00000014: '00000014',\r\n /** 検索 */\r\n OP_00000015: '00000015',\r\n /** Excelデータダウンロード(一覧情報を出力) */\r\n OP_00000016: '00000016',\r\n /** Excelデータダウンロード(詳細情報を出力) */\r\n OP_00000017: '00000017',\r\n /** 新規登録 */\r\n OP_00000018: '00000018',\r\n /** My施設 */\r\n OP_00000019: '00000019',\r\n /** 予約状況を確認する */\r\n OP_00000020: '00000020',\r\n /** 利用履歴 */\r\n OP_00000021: '00000021',\r\n /** はじめてのおあずかり券 */\r\n OP_00000022: '00000022',\r\n /** マイページ */\r\n OP_00000023: '00000023',\r\n /** ログアウト */\r\n OP_00000024: '00000024',\r\n /** 申込内容の確認 */\r\n OP_00000025: '00000025',\r\n /** 上記の内容で申し込み */\r\n OP_00000026: '00000026',\r\n /** 施設名 */\r\n OP_00000027: '00000027',\r\n /** 対象のお子さまを選択 */\r\n OP_00000028: '00000028',\r\n /** 利用希望日を選択 */\r\n OP_00000029: '00000029',\r\n /** 選択した日程で申し込み */\r\n OP_00000030: '00000030',\r\n /** 予約をキャンセル */\r\n OP_00000031: '00000031',\r\n /** キャンセル待ちを取消 */\r\n OP_00000032: '00000032',\r\n /** 利用する */\r\n OP_00000033: '00000033',\r\n /** クーポン利用:確定する */\r\n OP_00000034: '00000034',\r\n /** 変更 */\r\n OP_00000035: '00000035',\r\n /** キャンセル内容の確認 */\r\n OP_00000036: '00000036',\r\n /** 確定 */\r\n OP_00000037: '00000037',\r\n /** アカウント情報 */\r\n OP_00000038: '00000038',\r\n /** 会員情報 */\r\n OP_00000039: '00000039',\r\n /** 予約する */\r\n OP_00000040: '00000040',\r\n /** 空き状況確認 */\r\n OP_00000041: '00000041',\r\n /** タブ:利用予約 */\r\n OP_00000042: '00000042',\r\n /** タブ:面談予約 */\r\n OP_00000043: '00000043',\r\n /** 利用予約詳細 */\r\n OP_00000044: '00000044',\r\n /** 面談予約詳細 */\r\n OP_00000045: '00000045',\r\n /** 詳細 */\r\n OP_00000046: '00000046',\r\n /** 電話番号変更 */\r\n OP_00000047: '00000047',\r\n /** メールアドレス変更 */\r\n OP_00000048: '00000048',\r\n /** パスワード変更 */\r\n OP_00000049: '00000049',\r\n /** 確認 */\r\n OP_00000050: '00000050',\r\n /** ワンタイムパスワード再送信 */\r\n OP_00000051: '00000051',\r\n /** タブ:保護者 */\r\n OP_00000052: '00000052',\r\n /** タブ:お子さま */\r\n OP_00000053: '00000053',\r\n /** 減免詳細 */\r\n OP_00000054: '00000054',\r\n /** 減免詳細:閉じる */\r\n OP_00000055: '00000055',\r\n /** お子さまを追加 */\r\n OP_00000056: '00000056',\r\n /** 修正 */\r\n OP_00000057: '00000057',\r\n /** 修正内容の確認 */\r\n OP_00000058: '00000058',\r\n /** 再送信 */\r\n OP_00000059: '00000059',\r\n /** 登録内容の確認 */\r\n OP_00000060: '00000060',\r\n /** あずかり券を使う */\r\n OP_00000061: '00000061',\r\n /** タブ:おあずかり券を使う */\r\n OP_00000062: '00000062',\r\n /** タブ:利用履歴 */\r\n OP_00000063: '00000063',\r\n /** あずかり券を使う時間入力 */\r\n OP_00000064: '00000064',\r\n /** 利用履歴詳細 */\r\n OP_00000065: '00000065',\r\n /** 登録 */\r\n OP_00000066: '00000066',\r\n /** 更新 */\r\n OP_00000067: '00000067',\r\n /** 一括更新 */\r\n OP_00000068: '00000068',\r\n /** 追加 */\r\n OP_00000069: '00000069',\r\n /** 削除 */\r\n OP_00000070: '00000070',\r\n /** 登録確認:キャンセル */\r\n OP_00000071: '00000071',\r\n /** 登録確認:登録 */\r\n OP_00000072: '00000072',\r\n /** 登録エラー:閉じる */\r\n OP_00000073: '00000073',\r\n /** 登録完了:閉じる */\r\n OP_00000074: '00000074',\r\n /** エラー:閉じる */\r\n OP_00000075: '00000075',\r\n /** 削除確認:キャンセル */\r\n OP_00000076: '00000076',\r\n /** Excelデータダウンロード */\r\n OP_00000077: '00000077',\r\n /** ダウンロード */\r\n OP_00000078: '00000078',\r\n /** データ出力 */\r\n OP_00000079: '00000079',\r\n /** 詳細検索 */\r\n OP_00000080: '00000080',\r\n /** 本日の予約 */\r\n OP_00000081: '00000081',\r\n /** 翌営業日の予約 */\r\n OP_00000082: '00000082',\r\n /** 利用予約登録 */\r\n OP_00000083: '00000083',\r\n /** 面談予約登録 */\r\n OP_00000084: '00000084',\r\n /** TODO:未確定の面談予約 */\r\n OP_00000085: '00000085',\r\n /** TODO:未確定の利用予約 */\r\n OP_00000086: '00000086',\r\n /** TODO:本日の面談予約 */\r\n OP_00000087: '00000087',\r\n /** TODO:報告書 */\r\n OP_00000088: '00000088',\r\n /** 予約情報反映 */\r\n OP_00000089: '00000089',\r\n /** 実績利用日時 */\r\n OP_00000090: '00000090',\r\n /** はじめてのおあずかり券反映 */\r\n OP_00000091: '00000091',\r\n /** 残時間表示 */\r\n OP_00000092: '00000092',\r\n /** 予約反映確認:反映 */\r\n OP_00000093: '00000093',\r\n /** 予約反映確認:キャンセル */\r\n OP_00000094: '00000094',\r\n /** WEB予約枠(一括):一律設定 */\r\n OP_00000095: '00000095',\r\n /** WEB予約枠(一括):更新 */\r\n OP_00000096: '00000096',\r\n /** WEB予約枠(個別):更新 */\r\n OP_00000097: '00000097',\r\n /** 初期パスワード再送 */\r\n OP_00000098: '00000098',\r\n /** 初期パスワード再送確認:キャンセル */\r\n OP_00000099: '00000099',\r\n /** 初期パスワード再送確認:送信 */\r\n OP_00000100: '00000100',\r\n /** 基本情報:お子様情報 明細 */\r\n OP_00000101: '00000101',\r\n /** 減免情報:新規登録 */\r\n OP_00000102: '00000102',\r\n /** 減免情報:減免情報リスト 明細 */\r\n OP_00000103: '00000103',\r\n /** 行動履歴:利用者削除 */\r\n OP_00000104: '00000104',\r\n /** 行動履歴:利用者削除確認:キャンセル */\r\n OP_00000105: '00000105',\r\n /** 行動履歴:利用者削除確認:削除 */\r\n OP_00000106: '00000106',\r\n /** はじめてのおあずかり券:利用停止 */\r\n OP_00000107: '00000107',\r\n /** はじめてのおあずかり券:利用再開 */\r\n OP_00000108: '00000108',\r\n /** はじめてのおあずかり券:利用停止/再開確認:キャンセル */\r\n OP_00000109: '00000109',\r\n /** はじめてのおあずかり券:利用停止/再開確認:OK */\r\n OP_00000110: '00000110',\r\n /** 報告書の出力 */\r\n OP_00000111: '00000111',\r\n /** 報告書の提出 */\r\n OP_00000112: '00000112',\r\n /** 報告書提出確認:キャンセル */\r\n OP_00000113: '00000113',\r\n /** 報告書提出確認:登録 */\r\n OP_00000114: '00000114',\r\n /** 確定確認:キャンセル */\r\n OP_00000115: '00000115',\r\n /** 確定確認:登録 */\r\n OP_00000116: '00000116',\r\n /** 差戻し */\r\n OP_00000117: '00000117',\r\n /** 差戻し確認:キャンセル */\r\n OP_00000118: '00000118',\r\n /** 差戻し確認:登録 */\r\n OP_00000119: '00000119',\r\n /** 障害情報:新規登録 */\r\n OP_00000120: '00000120',\r\n /** 導入編 */\r\n OP_00000121: '00000121',\r\n /** 運用編 */\r\n OP_00000122: '00000122',\r\n /** ①-1年齢+曜日+施設情報別利用時間数:ファイル作成 */\r\n OP_00000123: '00000123',\r\n /** ①-1年齢+曜日+施設情報別利用時間数:ダウンロード */\r\n OP_00000124: '00000124',\r\n /** ①-2年齢+曜日+施設情報別利用児童数:ファイル作成 */\r\n OP_00000125: '00000125',\r\n /** ①-2年齢+曜日+施設情報別利用児童数:ダウンロード */\r\n OP_00000126: '00000126',\r\n /** ②年齢+利用方法・利用目的別実績:ファイル作成 */\r\n OP_00000127: '00000127',\r\n /** ②年齢+利用方法・利用目的別実績:ダウンロード */\r\n OP_00000128: '00000128',\r\n /** ③利用目的+曜日別実績:ファイル作成 */\r\n OP_00000129: '00000129',\r\n /** ③利用目的+曜日別実績:ダウンロード */\r\n OP_00000130: '00000130',\r\n /** ④-1特定項目+年齢+施設情報別_利用時間数_施設別:ファイル作成 */\r\n OP_00000131: '00000131',\r\n /** ④-1特定項目+年齢+施設情報別_利用時間数_施設別:ダウンロード */\r\n OP_00000132: '00000132',\r\n /** ④-2特定項目+年齢+施設情報別_利用時間数_区・適用単価別:ファイル作成 */\r\n OP_00000133: '00000133',\r\n /** ④-2特定項目+年齢+施設情報別_利用時間数_区・適用単価別:ダウンロード */\r\n OP_00000134: '00000134',\r\n /** ④-3特定項目+年齢+施設情報別_利用児童数_施設別:ファイル作成 */\r\n OP_00000135: '00000135',\r\n /** ④-3特定項目+年齢+施設情報別_利用児童数_施設別:ダウンロード */\r\n OP_00000136: '00000136',\r\n /** ④-4特定項目+年齢+施設情報別_利用児童数_区・適用単価別:ファイル作成 */\r\n OP_00000137: '00000137',\r\n /** ④-4特定項目+年齢+施設情報別_利用児童数_区・適用単価別:ダウンロード */\r\n OP_00000138: '00000138',\r\n /** ⑤時間帯+曜日+施設情報別実績:ファイル作成 */\r\n OP_00000139: '00000139',\r\n /** ⑤時間帯+曜日+施設情報別実績:ダウンロード */\r\n OP_00000140: '00000140',\r\n /** ⑥利用時間加算対象時間:ファイル作成 */\r\n OP_00000141: '00000141',\r\n /** ⑥利用時間加算対象時間:ダウンロード */\r\n OP_00000142: '00000142',\r\n /** ⑦ステータス別利用予約数:ファイル作成 */\r\n OP_00000143: '00000143',\r\n /** ⑦ステータス別利用予約数:ダウンロード */\r\n OP_00000144: '00000144',\r\n /** ⑧上限利用率:ファイル作成 */\r\n OP_00000145: '00000145',\r\n /** ⑧上限利用率:ダウンロード */\r\n OP_00000146: '00000146',\r\n /** 導入編:アップロード */\r\n OP_00000147: '00000147',\r\n /** 導入編:ダウンロード */\r\n OP_00000148: '00000148',\r\n /** 運用編:アップロード */\r\n OP_00000149: '00000149',\r\n /** 運用編:ダウンロード */\r\n OP_00000150: '00000150',\r\n /** 利用者側:アップロード */\r\n OP_00000151: '00000151',\r\n /** 利用者側:ダウンロード */\r\n OP_00000152: '00000152',\r\n /** ⑨おあずかり券利用状況:ファイル作成 */\r\n OP_00000153: '00000153',\r\n /** ⑨おあずかり券利用状況:ダウンロード */\r\n OP_00000154: '00000154',\r\n /** 退会手続きはこちら */\r\n OP_00000155: '00000155',\r\n /** 退会する */\r\n OP_00000156: '00000156',\r\n /** 利用終了手続きはこちら */\r\n OP_00000159: '00000159',\r\n /** 利用終了する */\r\n OP_00000160: '00000160',\r\n /** SSO連携はこちら */\r\n OP_00000162: '00000162',\r\n /** SSO連携解除はこちら */\r\n OP_00000167: '00000167',\r\n /** 施設を探す */\r\n OP_00000168: '00000168',\r\n /** タブ:抽選予約 */\r\n OP_00000169: '00000169',\r\n /** 抽選予約詳細 */\r\n OP_00000170: '00000170',\r\n /** 抽選予約をキャンセル */\r\n OP_00000171: '00000171',\r\n /** 抽選予約を変更 */\r\n OP_00000172: '00000172',\r\n /** 利用目的を選択 */\r\n OP_00000173: '00000173',\r\n /** 抽選予約キャンセル内容の確認 */\r\n OP_000001734: '00000174',\r\n /** 編集:既往症 */\r\n OP_00000175: '00000175',\r\n /** 編集:予防接種 */\r\n OP_00000176: '00000176',\r\n /** 編集:アレルギー */\r\n OP_00000177: '00000177',\r\n /** 編集:熱性けいれん */\r\n OP_00000178: '00000178',\r\n /** 編集:症状 */\r\n OP_00000180: '00000180',\r\n /** 編集:検査 */\r\n OP_00000181: '00000181',\r\n /** 編集:治療 */\r\n OP_00000182: '00000182',\r\n /** 編集:入院歴 */\r\n OP_00000183: '00000183',\r\n /** 編集:体質・くせ */\r\n OP_00000184: '00000184',\r\n /** 編集:食事 */\r\n OP_00000185: '00000185',\r\n /** 編集:通常利用施設 */\r\n OP_00000188: '00000188',\r\n /** 編集:かかりつけ医 */\r\n OP_00000189: '00000189',\r\n /** 編集:常時服用している薬 */\r\n OP_00000190: '00000190',\r\n /** タブ:承諾通知書 */\r\n OP_00000191: '00000191',\r\n /** 承諾通知書詳細 */\r\n OP_00000192: '00000192',\r\n /** 健康チェック入力 */\r\n OP_00000193: '00000193',\r\n /** 健康チェック入力の確認 */\r\n OP_00000194: '00000194',\r\n /** 登録(健康チェック入力) */\r\n OP_00000195: '00000195',\r\n /** 更新(健康チェック入力) */\r\n OP_00000196: '00000196',\r\n} as const","import { useCallback } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { getAuthenticatedUser, signOut } from '../../utils/authUtil'\r\nimport { loginUrl } from './constant/appUrl'\r\nimport { useErrorHandle } from './error/errorHandler'\r\nimport { reset, showLoading } from './store/slices/application'\r\nimport { useOperationLog } from './operationLog'\r\nimport { OperationId } from './constant/operationLog'\r\nimport { selectIsOTPAuthenticated } from './store/slices/authority'\r\nimport { setIsOTPAuthenticated } from './store/slices/authority'\r\nimport { executePutAccountAuthentication } from '../../dataAccess/webApi/dao/accountDao'\r\n\r\nexport const useLogoutActions = () => {\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const errorHandle = useErrorHandle()\r\n const { addOperationLog } = useOperationLog()\r\n const isOTPAuthenticated = useSelector(selectIsOTPAuthenticated)\r\n\r\n /**\r\n * ログアウトしてログイン画面へ移動。\r\n * 未ログイン状態でsignOutを呼び出しても特に何もしない為\r\n * ログイン・ログアウト共通で利用\r\n */\r\n const logout = useCallback(async() => {\r\n addOperationLog({ operationId: OperationId.OP_00000024 })\r\n\r\n if (isOTPAuthenticated) {\r\n const user = await getAuthenticatedUser()\r\n await executePutAccountAuthentication({ userId: user.attributes.sub, loginFlag: '0'})\r\n }\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n await signOut()\r\n dispatch(reset({ isKeepAuthority: false }))\r\n if (isOTPAuthenticated) {\r\n dispatch(setIsOTPAuthenticated(false))\r\n }\r\n history.push(loginUrl.url())\r\n })\r\n )\r\n )\r\n }, [dispatch, history, errorHandle, addOperationLog])\r\n\r\n return { logout }\r\n}\r\n","// ボタンコントロールの共通部分を定義\r\n//\r\n\r\nimport { Button, styled } from '@mui/material'\r\nimport { LocationDescriptor } from 'history'\r\nimport React, { MouseEventHandler, ReactNode } from 'react'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\n\r\nexport interface ButtonProps {\r\n /**\r\n * ボタンの中身。\r\n * ボタンの表示文言を設定。\r\n */\r\n children: ReactNode\r\n /** buttonタグのtype属性 */\r\n type?: 'submit' | 'reset' | 'button'\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n /** ボタンクリック時に呼び出される関数 */\r\n onClick?: MouseEventHandler\r\n /** ボタン左に表示するアイコン */\r\n startIcon?: React.ReactNode\r\n /** ボタン右に表示するアイコン */\r\n endIcon?: React.ReactNode\r\n /**\r\n * 遷移先を示す情報。\r\n * 参照:https://v5.reactrouter.com/web/api/Link\r\n */\r\n to?: LocationDescriptor\r\n /** history.replaceで遷移する場合true */\r\n replace?: boolean\r\n /**\r\n * リンクのタグのhref属性。\r\n * toプロパティが設定されている場合は、このプロパティを無視します\r\n */\r\n href?: string\r\n /** width: 100% にする場合true */\r\n fullWidth?: boolean\r\n \r\n disabled?: boolean\r\n}\r\n\r\nconst Root = (props: ButtonProps) => {\r\n const { children, to, replace, href, onClick, ...buttonAttrs } = props\r\n return to ? (\r\n \r\n ) : href ? (\r\n \r\n ) : (\r\n \r\n )\r\n}\r\n\r\n/**\r\n * ボタンコントロールの基本部分。\r\n * テキストは中央寄せ、英字の大文字変換は無効化している。\r\n */\r\nexport const ButtonBase = styled(Root)({\r\n textAlign: 'center',\r\n textTransform: 'none',\r\n})\r\n","import { styled } from '@mui/material'\r\nimport { ButtonBase } from './buttonBase'\r\n\r\n/**\r\n * whiteカラーのボタンコントロール基本部分。\r\n */\r\nexport const ButtonOutlinedBase = styled(ButtonBase)(({ theme }) => ({\r\n borderStyle: 'solid',\r\n borderColor: theme.palette.primary.main,\r\n backgroundColor: theme.palette.white.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.white.dark,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.white.main,\r\n },\r\n },\r\n}))\r\n","import { styled } from '@mui/system'\r\nimport { ButtonOutlinedBase } from './buttonOutlinedBase'\r\n\r\n/**\r\n * buleカラーのボタンコントロールSサイズ。\r\n */\r\nexport const ButtonOutlinedBuleS = styled(ButtonOutlinedBase)(({ theme }) => ({\r\n borderColor: theme.palette.white.main,\r\n backgroundColor: theme.palette.primary.main,\r\n fontSize: theme.typography.font.sizeS,\r\n color: theme.palette.white.main,\r\n padding: '0 5px',\r\n borderWidth: 3,\r\n borderRadius: 8,\r\n minWidth: '30px',\r\n minHeight: '10px',\r\n display: 'inline-block',\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.dark,\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n}))\r\n","import React, { MouseEventHandler, ReactNode } from 'react'\r\nimport { IconButton, IconButtonPropsColorOverrides } from '@mui/material'\r\nimport { Link as RouterLink } from 'react-router-dom'\r\n\r\ninterface IconLinkButtonProps {\r\n /**\r\n * ボタンの中身。\r\n * ボタンの表示文言を設定。\r\n */\r\n children: ReactNode\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n /**\r\n * カラー指定\r\n * @default 'inherit'\r\n */\r\n color?:\r\n | 'inherit'\r\n | 'default'\r\n | 'primary'\r\n | 'secondary'\r\n | 'error'\r\n | 'info'\r\n | 'success'\r\n | 'warning'\r\n | keyof IconButtonPropsColorOverrides\r\n\r\n /** ボタンクリック時に呼び出される関数 */\r\n onClick?: MouseEventHandler\r\n /**\r\n * MaterialUIのIconButtonプロパティ(edge)\r\n * 参照:https://mui.com/api/icon-button/#props\r\n */\r\n edge?: 'start' | 'end' | false\r\n /**\r\n * 遷移先を示す情報。\r\n * 参照:https://v5.reactrouter.com/web/api/Link\r\n */\r\n to?: string\r\n}\r\n\r\n/**\r\n * アイコンのボタン\r\n */\r\nexport const IconLinkButton = (props: IconLinkButtonProps) => {\r\n const { children, to, onClick, color, ...buttonAttrs } = props\r\n const buttonColor = color ?? 'inherit'\r\n return to ? (\r\n \r\n {children}\r\n \r\n ) : (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport React from 'react'\r\n\r\nexport const Flexbox = styled('div')({\r\n display: 'flex',\r\n})\r\n\r\nexport const FlexboxRow = styled(Flexbox)({\r\n flexDirection: 'row',\r\n})\r\n\r\nexport const FlexboxCenter = styled(Flexbox)({\r\n justifyContent: 'center',\r\n})\r\n\r\nexport const FlexboxMiddle = styled(Flexbox)({\r\n alignItems: 'center',\r\n})\r\n\r\nexport const FlexboxRowTop = styled(FlexboxRow)({\r\n alignItems: 'start',\r\n})\r\n\r\nexport const FlexboxRowMiddle = styled(FlexboxRow)({\r\n alignItems: 'center',\r\n})\r\n\r\nexport const InlineFlexbox = styled('div')({\r\n display: 'inline-flex',\r\n})\r\n\r\nexport const InlineFlexboxMiddle = styled(InlineFlexbox)({\r\n alignItems: 'center',\r\n})\r\n\r\nexport const Separator = styled('div')(({ theme }) => ({\r\n display: 'inline-block',\r\n textAlign: 'center',\r\n minWidth: theme.typography.body1.fontSize,\r\n}))\r\n\r\nexport const ColonSeparator = () => {\r\n return :\r\n}\r\n\r\nexport const HyphenSeparator = () => {\r\n return -\r\n}\r\n\r\nexport const SpaceSeparator = () => {\r\n return  \r\n}\r\n","// Material UI Gridコンポーネントをラップしたコントロールなどのユーティリティ部品\r\n//\r\n\r\nimport { Grid, GridSize, styled } from '@mui/material'\r\nimport React, { forwardRef, ReactNode, Ref } from 'react'\r\nimport { ColonSeparator, InlineFlexbox, SpaceSeparator } from './flexboxes'\r\n\r\n/** Grid container */\r\nexport const GContainer = forwardRef(function GContainer(\r\n props: Omit[0], 'item' | 'container' | 'xs' | 'sm' | 'md' | 'lg' | 'xl'>,\r\n ref: Ref\r\n) {\r\n return \r\n})\r\n/** Grid item */\r\nexport const GItem = forwardRef(function GItem(\r\n props: Omit<\r\n Parameters[0],\r\n 'item' | 'container' | 'direction' | 'spacing' | 'rowSpacing' | 'columnSpacing'\r\n >,\r\n ref: Ref\r\n) {\r\n return \r\n})\r\n/** Grid item かつ container */\r\nexport const GItemContainer = (props: Omit[0], 'item' | 'container'>) => {\r\n return \r\n}\r\n\r\n/** display:flexの Grid item */\r\nexport const FlexGItem = styled(GItem)({\r\n display: 'flex',\r\n})\r\n\r\n/** 水平左寄せ Grid item */\r\nexport const LeftGItem = styled(FlexGItem)({\r\n justifyContent: 'start',\r\n})\r\n/** 水平中央寄せ Grid item */\r\nexport const CenterGItem = styled(FlexGItem)({\r\n justifyContent: 'center',\r\n})\r\n/**\r\n * 水平右寄せ Grid item\r\n * iOSで end は機能しないので flex-end を使用\r\n */\r\nexport const RightGItem = styled(FlexGItem)({\r\n justifyContent: 'flex-end',\r\n})\r\n\r\n/** 垂直上寄せ Grid item */\r\nexport const TopGItem = styled(FlexGItem)({\r\n alignItems: 'start',\r\n})\r\n/** 垂直中央寄せ Grid item */\r\nexport const MiddleGItem = styled(FlexGItem)({\r\n alignItems: 'center',\r\n})\r\n/** 垂直下寄せ Grid item */\r\nexport const BottomGItem = styled(FlexGItem)({\r\n alignItems: 'flex-end',\r\n})\r\n\r\n/** 真ん中寄せ Grid item */\r\nexport const CenterMiddleGItem = styled(CenterGItem)({\r\n alignItems: 'center',\r\n})\r\n\r\nconst WrapValue = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-all',\r\n})\r\n\r\ninterface LabelValueItemProps {\r\n children: ReactNode\r\n hideColon?: boolean\r\n xs?: boolean | GridSize\r\n sm?: boolean | GridSize\r\n md?: boolean | GridSize\r\n}\r\n\r\n/**\r\n * 項目名:項目値\r\n * の列挙表示コンテンツで使用する\r\n * 項目名の Grid item 基本コントロール\r\n */\r\nexport const LabelGItemBase = GItem\r\n\r\n/**\r\n * 項目名:項目値\r\n * の列挙表示コンテンツで使用する\r\n * 項目値の Grid item 基本コントロール\r\n */\r\nexport const ValueGItemBase = (props: LabelValueItemProps) => {\r\n const { children, hideColon, ...through } = props\r\n return (\r\n \r\n \r\n {!hideColon ? : }\r\n {children}\r\n \r\n \r\n )\r\n}\r\n\r\n/** 1行分開ける為のGrid item */\r\nexport const RowSpacerGItem = () =>  \r\n","import React from 'react'\r\nimport FormatListBulletedIcon from '@mui/icons-material/FormatListBulleted'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** ハンバーガーメニューアイコン */\r\nexport const HamburgerMenuIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import React from 'react'\nimport SearchIcon from '@mui/icons-material/Search'\nimport { IconProps } from './iconBase'\n\n/** 施設検索機能アイコン */\nexport const FacilitySearchIcon = (props: IconProps) => {\n return \n}\n","import React from 'react'\nimport MuiHomeIcon from '@mui/icons-material/Home'\nimport { IconProps } from './iconBase'\n\n/**\n * HOME画面アイコン。\n */\nexport const HomeIcon = (props: IconProps) => {\n return \n}\n","import MuiLogoutIcon from '@mui/icons-material/Logout'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** ログアウトアイコン */\r\nexport const LogoutIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import React from 'react'\nimport FavoriteIcon from '@mui/icons-material/Favorite'\nimport { IconProps } from './iconBase'\n\n/** My施設機能アイコン */\nexport const MyFacilityIcon = (props: IconProps) => {\n return \n}\n","import React from 'react'\nimport EventNoteIcon from '@mui/icons-material/EventNote'\nimport { IconProps } from './iconBase'\n\n/** 予約状況照会機能アイコン */\nexport const ReserveStatusCheckIcon = (props: IconProps) => {\n return \n}\n","import React from 'react'\nimport AssignmentIcon from '@mui/icons-material/Assignment'\nimport { IconProps } from './iconBase'\n\n/** 利用履歴機能アイコン */\nexport const UsageHistoryIcon = (props: IconProps) => {\n return \n}\n","import { ListItemButton, ListItemIcon, ListItemText, styled } from '@mui/material'\r\nimport { LocationDescriptor } from 'history'\r\nimport React, { MouseEventHandler } from 'react'\r\nimport { Link } from './link'\r\n\r\nconst StyledItemIcon = styled(ListItemIcon)(() => ({\r\n minWidth: '36px',\r\n}))\r\n\r\ninterface ListItemLinkProps {\r\n icon?: React.ReactElement\r\n primary: string\r\n onClick?: MouseEventHandler\r\n to?: LocationDescriptor\r\n}\r\n\r\nexport const ListItemLink = (props: ListItemLinkProps) => {\r\n const { icon, primary, to, onClick } = props\r\n\r\n return (\r\n \r\n {icon && {icon}}\r\n \r\n \r\n )\r\n}\r\n","import { executeGet, executePost } from '../common/apiCaller'\r\nimport { GetCouponsIssuesDto, GetCouponsIssuesInputDto, PostCouponsUsageInputDto } from '../dto/couponsDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/coupons'\r\n\r\nexport const executeGetCouponsIssues = (input?: GetCouponsIssuesInputDto) => {\r\n return executeGet(apiName, `${apiPath}/issue`, input)\r\n}\r\n\r\nexport const resultCodePostCouponsUsage = {\r\n /** 利用日当日ではない */\r\n notUsageDate: 1,\r\n /** 有効なクーポンが無い */\r\n notExistsValidCoupon: 2,\r\n /** 既に登録済み */\r\n alreadyRegistered: 3,\r\n /** 残高が不足 */\r\n insufficientBalance: 4,\r\n} as const\r\n\r\nexport const executePostCouponsUsage = (reservationNo: string, input: PostCouponsUsageInputDto) => {\r\n return executePost(apiName, `${apiPath}/usage/${reservationNo}`, input)\r\n}\r\n","import { executeGet, executeGetNoResultError } from '../common/apiCaller'\r\nimport { GetInformationDto, GetInformationsDto } from '../dto/informationsDto'\r\n\r\nconst apiNamePublic = 'public'\r\nconst apiNameCitizen = 'citizen'\r\nconst apiPath = '/informations'\r\n\r\nexport const executeGetInformations = (isCitizen: boolean) => {\r\n return executeGet(isCitizen ? apiNameCitizen : apiNamePublic, apiPath)\r\n}\r\n\r\nexport const executeGetInformation = (isCitizen: boolean, id: string) => {\r\n return executeGetNoResultError(isCitizen ? apiNameCitizen : apiNamePublic, `${apiPath}/${id}`)\r\n}\r\n","// import { executePost, KANRI_API_NAME } from '../common/apiCaller'\r\nimport { executeGet, executePost } from '../common/apiCaller'\r\nimport { PostLinkSettingsDto } from '../dto/linkSettingsDto'\r\n\r\n// const apiName = KANRI_API_NAME\r\nconst apiName = 'public'\r\nconst apiPath = '/link-settings'\r\n\r\n/**\r\n * 当日分を全件取得\r\n */\r\nexport const executeGetLinkSettings = () => {\r\n return executeGet(apiName, apiPath)\r\n}\r\n\r\n/**\r\n * 全件取得\r\n */\r\nexport const executePostLinkSettings = () => {\r\n return executePost(apiName, apiPath)\r\n}\r\n","import { executeGet } from '../common/apiCaller'\nimport { \n GetProjectsDto, \n GetProjectsFullHistoriesDto,\n GetProjectsInputDto,\n GetProjectsFullHistoriesInputDto,\n GetProjectDetailDto\n} from '../dto/projectsDto'\n\nconst apiName = 'public'\nconst apiPath = '/projects'\nconst apiPath2 = '/projects/full-histories'\n\nexport const executeGetProjects = (input?: GetProjectsInputDto) => {\n return executeGet(apiName, apiPath, input)\n}\n\nexport const executeGetProjectDetail = (projectId: string, targetDate: string) => {\n return executeGet(apiName, `${apiPath}/${projectId}/${targetDate}`)\n}\n\nexport const executeGetProjectsFullHistories = (input?: GetProjectsFullHistoriesInputDto) => {\n return executeGet(apiName, apiPath2, input)\n}\n","import { executeDelete, executeGet, executeGetNoResultError, executePost, executePut } from '../common/apiCaller'\r\nimport {\r\n GetReservationsInputDto,\r\n GetReservationsDto,\r\n GetReservationDto,\r\n PostFacilityIdsHaveUnsettledAndConfirmReservationsDto,\r\n PostFacilityIdsHaveUnsettledAndConfirmReservationsInputDto,\r\n PostReservationInputDto,\r\n PutReservationInputDto,\r\n DeleteReservationInputDto,\r\n GetTodayConditionInputReservationNoDto,\r\n PutTodayConditionInputDto,\r\n GetTodayConditionInputDetailDto,\r\n GetIsolationInputDto\r\n} from '../dto/reservationsDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/reservations'\r\n\r\nexport const executeGetReservations = async (input?: GetReservationsInputDto) => {\r\n return executeGet(apiName, apiPath, input)\r\n}\r\n\r\nexport const executeGetReservation = (id: string) => {\r\n return executeGetNoResultError(apiName, `${apiPath}/${id}`)\r\n}\r\n\r\nexport const executeGetIsolationFlag = async (input: GetIsolationInputDto) => {\r\n return executeGetNoResultError(apiName, `${apiPath}/isolation/flag`, input)\r\n}\r\n\r\nexport const executeDeleteReservation = (id: string, input: DeleteReservationInputDto) => {\r\n return executeDelete(apiName, `${apiPath}/${id}`, input)\r\n}\r\n\r\nexport const executePostReservation = (input: PostReservationInputDto) => {\r\n return executePost(apiName, apiPath, input)\r\n}\r\n\r\nexport const executePutReservation = (id: string, input: PutReservationInputDto) => {\r\n return executePut(apiName, `${apiPath}/${id}`, input)\r\n}\r\n\r\nexport const executePostFacilityIdsHaveUnsettledAndConfirmReservations = (\r\n input: PostFacilityIdsHaveUnsettledAndConfirmReservationsInputDto\r\n) => {\r\n return executePost(\r\n apiName,\r\n `${apiPath}/facility-ids-have-unsettled-and-confirm-reservations`,\r\n input\r\n )\r\n}\r\n\r\nexport const executeGetTodayConditionInputReservationNo = () => {\r\n return executeGet(\r\n apiName,\r\n `${apiPath}/todayConditionInput/reservationNo`\r\n )\r\n}\r\n\r\nexport const executeGetTodayConditionInputDetail = (id: string) => {\r\n return executeGetNoResultError(\r\n apiName,\r\n `${apiPath}/todayConditionInputDetail/${id}`\r\n )\r\n}\r\n\r\nexport const executePutTodayConditionInput = (id: string, input: PutTodayConditionInputDto) => {\r\n return executePut(apiName, `${apiPath}/todayConditionInput/${id}`, input)\r\n}\r\n\r\n","import { useCallback, useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { showLoading } from '../../containers/common/store/slices/application'\nimport { executeGetCouponsIssues } from '../../dataAccess/webApi/dao/couponsDao'\nimport { executeGetInformations } from '../../dataAccess/webApi/dao/informationsDao'\nimport { executePostFacilitySearchSettingMsts } from '../../dataAccess/webApi/dao/facilitySearchSettingMstsDao'\n// import { checkDto } from 'containers/common/commonFunction'\nimport { executeGetLinkSettings } from '../../dataAccess/webApi/dao/linkSettingsDao'\n// import { LinkMasterData, LinkMasterDto } from 'dataAccess/webApi/dto/linkMasterDto'\nimport { PostLinkSettingsDto } from '../../dataAccess/webApi/dto/linkSettingsDto'\nimport { ElapsedMillisecond, fromApiYmd, fromApiYmdHms, toApiYmd } from '../../utils/dateUtil'\nimport { datePropsToNumber, nullPropsToUndefined } from '../../utils/objectUtil'\nimport { yesNo } from '../common/constant/classification'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { selectIsLoggedIn, selectIsVerifiedEmail, selectIsVerifiedTel } from '../common/store/slices/authority'\nimport { SystemControl, selectSystemControl } from '../common/store/slices/systemControl'\nimport { setFacilitySearchCondition } from '../common/store/slices/facilitySearch'\nimport { useHistory } from 'react-router-dom'\nimport { myFacilityUrl, reservationStatusListUrl, usageHistoryUrl, couponUrl, facilitySearchResultUrl, facilitySearchSettingMasterSelectionUrl, facilitySearchConditionUrl } from '../common/constant/appUrl'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { setProjectMsts } from '../common/store/slices/facilitySearchSetting'\nimport { executeGetProjects } from '../../dataAccess/webApi/dao/projectsDao'\nimport { executeGetTodayConditionInputReservationNo } from '../../dataAccess/webApi/dao/reservationsDao'\n// import { executeApi } from 'dataAccess/webApi/dao/commonDao'\n\ninterface Information {\n informaionNo: string\n publicationStartDatetime: Date\n facilityName: string\n title: string\n}\n// interface LinkSettings {\n// link_id: number\n// link_name: string\n// link_url: string\n// }\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const sysCtrl = useSelector(selectSystemControl)\n const isLoggedIn = useSelector(selectIsLoggedIn)\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\n const history = useHistory()\n const { addOperationLog } = useOperationLog()\n \n const [informations, setInformations] = useState()\n // const [linkSettingsList, setLinkSettingsList] = useState()\n const [linkSettingsList, setLinkSettingsList] = useState()\n const [showCouponFunctionFlag, setShowCouponFunctionFlag] = useState(false)\n const [showTodayConditionInputFlag, setShowTodayConditionInputFlag] = useState(false)\n const [todayConditionInputName, setTodayConditionInputName] = useState(null)\n const [todayConditionInputEndTime, setTodayConditionInputEndTime] = useState(null)\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n\n const initialize = async () => {\n const result = await getInformations(isLoggedIn, isVerifiedEmail, isVerifiedTel)\n setInformations(result)\n if (isLoggedIn && isVerifiedEmail && isVerifiedTel) {\n // クーポン利用可能判定\n const isUsable = await canUseCouponFunction(sysCtrl)\n setShowCouponFunctionFlag(isUsable)\n }\n \n // 各種リンクを取得\n { \n const linkSettingsList = await getLinkSettings()\n setLinkSettingsList(linkSettingsList)\n // console.log(\"linkSettingsList\", linkSettingsList)\n }\n\n // 事業マスタを取得\n {\n const projectRes = await getProjectMsts()\n dispatch(setProjectMsts(projectRes))\n }\n\n //当日入力対象の予約番号を取得\n if (\n // メール認証/電話番号認証完了\n (isLoggedIn && isVerifiedEmail && isVerifiedTel) ||\n // メール認証完了/電話番号認証フラグはOFF\n (isLoggedIn && isVerifiedEmail && (sysCtrl.phoneCertificationFlag === yesNo.no || sysCtrl.smsSubscriptionFlag === yesNo.no))\n ) {\n const todayConditionInputRservationNoListRes = await executeGetTodayConditionInputReservationNo()\n const todayConditionInputRservationNoData = todayConditionInputRservationNoListRes.result\n console.log(todayConditionInputRservationNoListRes.result)\n if (todayConditionInputRservationNoData &&\n todayConditionInputRservationNoData.reservationNoList.length > 0 &&\n todayConditionInputRservationNoData.todayConditionInputName !== null &&\n todayConditionInputRservationNoData.todayConditionInputEndTime !== null\n ) {\n setShowTodayConditionInputFlag(true)\n setTodayConditionInputName(todayConditionInputRservationNoData.todayConditionInputName)\n setTodayConditionInputEndTime(todayConditionInputRservationNoData.todayConditionInputEndTime)\n }\n }\n\n \n }\n dispatch(showLoading(errorHandle(initialize)))\n\n dispatch(\n setFacilitySearchCondition(\n nullPropsToUndefined(\n datePropsToNumber({})\n )\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // 施設を探すボタンをクリック\n const handleClickSearchFacility = async () => {\n addOperationLog({ operationId: OperationId.OP_00000168 })\n\n const facilitySearchSettingMstsRes = await getFacilitySearchSettingMsts()\n\n const {\n projectCategoryId,\n intermediateDisplayFlag, \n searchConditionDisplayFlag, \n } = facilitySearchSettingMstsRes?.[0] || {}\n \n if (intermediateDisplayFlag === '0') {\n if (searchConditionDisplayFlag === '0') {\n history.push(facilitySearchResultUrl.url())\n\n dispatch(\n setFacilitySearchCondition(\n nullPropsToUndefined(\n datePropsToNumber({})\n )\n )\n ) \n } else {\n history.push({\n pathname: facilitySearchConditionUrl.url(projectCategoryId),\n state: {},\n }) \n }\n } else {\n history.push(facilitySearchSettingMasterSelectionUrl.url())\n }\n }\n \n // My施設へ遷移\n const goMyFacility = useCallback(() => {\n addOperationLog({ operationId: OperationId.OP_00000019 })\n history.push(myFacilityUrl.url())\n }, [addOperationLog, history])\n\n // 予約状況へ遷移\n const goReservationStatusList = useCallback(() => {\n addOperationLog({ operationId: OperationId.OP_00000020 })\n history.push(reservationStatusListUrl.url())\n }, [addOperationLog, history])\n\n // 利用履歴へ遷移\n const goUsageHistory = useCallback(() => {\n addOperationLog({ operationId: OperationId.OP_00000021 })\n history.push(usageHistoryUrl.url())\n }, [addOperationLog, history])\n\n // はじめてのおあずかり券へ遷移\n const goCoupon = useCallback(() => {\n addOperationLog({ operationId: OperationId.OP_00000022 })\n history.push(couponUrl.url())\n }, [addOperationLog, history])\n\n return {\n informations,\n linkSettingsList,\n showCouponFunctionFlag,\n showTodayConditionInputFlag,\n todayConditionInputName,\n todayConditionInputEndTime,\n goMyFacility,\n goReservationStatusList,\n goUsageHistory,\n goCoupon,\n handleClickSearchFacility,\n }\n}\n\nconst getInformations = async (isLoggedIn: boolean, isVerifiedEmail: boolean, isVerifiedTel: boolean) => {\n const response = await executeGetInformations(isLoggedIn && isVerifiedEmail && isVerifiedTel)\n // HOMEに表示するお知らせは2件まで\n return response.result.slice(0, 2).map((info) => {\n const { publicationStartDatetime, ...other } = info\n return {\n ...other,\n publicationStartDatetime: fromApiYmdHms(publicationStartDatetime),\n }\n })\n}\nconst getCouponsIssue = async () => {\n const response = await executeGetCouponsIssues()\n return response.result.map((coupon) => {\n const { issuedNo, limitUsageMinute, totalBalanceMinute, limitDate, childId, deleteFlag, ...other } = coupon\n return {\n ...other,\n issuedNo: issuedNo,\n limitUsageMinute: limitUsageMinute,\n remainingMinute: totalBalanceMinute,\n limitDate: fromApiYmd(limitDate),\n childId: childId,\n deleteFlag: deleteFlag,\n }\n })\n}\n/**\n * 各種リンクを一覧取得して返す\n * @return {Array} - linkSettingsのリスト\n */\nconst getLinkSettings = async () => {\n // const response = await executePostLinkSettings()\n const response = await executeGetLinkSettings()\n return response.result.map((entry) => {\n const { ...other } = entry\n return {\n ...other,\n }\n })\n}\n\n/**\n * 施設検索制御マスタを一覧取得して返す\n * @return {Array} - facilitySearchSettingMstsのリスト\n */\nexport const getFacilitySearchSettingMsts = async () => {\n const response = await executePostFacilitySearchSettingMsts()\n return response.result.map((facilitySearchSettingMst) => {\n const { ...other } = facilitySearchSettingMst\n return {\n ...other,\n }\n })\n}\n\n/**\n * 事業マスタマスタを一覧取得して返す\n * @return {Array} - projectMstsのリスト\n */\nexport const getProjectMsts = async (targetDate?: Date | ElapsedMillisecond) => {\n const response = await executeGetProjects({ targetDate: toApiYmd(targetDate) })\n return response.result\n}\n\nconst canUseCouponFunction = async (sysCtrl: SystemControl) => {\n const isUsable = sysCtrl.useCouponFunctionFlag === yesNo.yes\n if (!isUsable) {\n // コントロール設定で利用不可\n return false\n }\n\n const result = await getCouponsIssue()\n // 利用可能かクーポンが存在すれば利用可\n return result.length >= 1\n}\n","import { executePost } from '../common/apiCaller'\nimport { PostFacilitySearchSettingMstsDto, PostFacilitySearchSettingMstsInputDto } from '../dto/facilitySearchSettingMstsDto'\n\nconst apiName = 'public'\nconst apiPath = '/facility-search-setting-mst'\n\nexport const executePostFacilitySearchSettingMsts = (input?: PostFacilitySearchSettingMstsInputDto) => {\n return executePost(apiName, apiPath, input)\n}\n ","import AccountCircleIcon from '@mui/icons-material/AccountCircle'\r\nimport NotificationsIcon from '@mui/icons-material/Notifications'\r\nimport { List } from '@mui/material'\r\nimport { useCallback } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { useLogoutActions } from '../../../containers/common/application'\r\nimport {\r\n facilitySearchConditionUrl,\r\n facilitySearchResultUrl,\r\n facilitySearchSettingMasterSelectionUrl,\r\n informationUrl,\r\n myFacilityUrl,\r\n myPageUrl,\r\n reservationStatusListUrl,\r\n rootUrl,\r\n usageHistoryUrl,\r\n} from '../../../containers/common/constant/appUrl'\r\nimport { closeSideMenu } from '../../../containers/common/store/slices/application'\r\nimport { \r\n // selectIsLoggedIn,\r\n selectIsOTPAuthenticated,\r\n} from '../../../containers/common/store/slices/authority'\r\nimport { translate } from '../../../i18n'\r\nimport { FacilitySearchIcon } from './icons/facilitySearchIcon'\r\nimport { HomeIcon } from './icons/homeIcon'\r\nimport { LogoutIcon } from './icons/logoutIcon'\r\nimport { MyFacilityIcon } from './icons/myFacilityIcon'\r\nimport { ReserveStatusCheckIcon } from './icons/reserveStatusCheckIcon'\r\nimport { UsageHistoryIcon } from './icons/usageHistoryIcon'\r\nimport { ListItemLink } from './listItemLink'\r\nimport { useOperationLog } from '../../../containers/common/operationLog'\r\nimport { OperationId } from '../../../containers/common/constant/operationLog'\r\nimport { selectProjectMsts } from '../../../containers/common/store/slices/facilitySearchSetting'\r\nimport { setFacilitySearchCondition } from '../../../containers/common/store/slices/facilitySearch'\r\nimport { datePropsToNumber, nullPropsToUndefined } from '../../../utils/objectUtil'\r\nimport { getFacilitySearchSettingMsts } from '../../../containers/home/homeService'\r\n\r\nexport const SideMenuContent = () => {\r\n const { logout } = useLogoutActions()\r\n const dispatch = useDispatch()\r\n const projectMsts = useSelector(selectProjectMsts)\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const close = useCallback(() => dispatch(closeSideMenu()), [])\r\n\r\n // const isLoggedIn = useSelector(selectIsLoggedIn)\r\n const isOTPAuthenticated = useSelector(selectIsOTPAuthenticated)\r\n\r\n const handleClickFacilitySearch = async () => {\r\n addOperationLog({ operationId: OperationId.OP_00000168 })\r\n\r\n const facilitySearchSettingMstsRes = await getFacilitySearchSettingMsts()\r\n\r\n const { projectCategoryId, intermediateDisplayFlag, searchConditionDisplayFlag } = facilitySearchSettingMstsRes?.[0] || {}\r\n \r\n if (intermediateDisplayFlag === '0') {\r\n const projectIds = projectMsts\r\n ?.filter((projectMst: any) => projectMst.projectCategoryId === '01')\r\n .map((projectMst: any) => projectMst.projectId)\r\n \r\n if (searchConditionDisplayFlag === '0') {\r\n history.push(facilitySearchResultUrl.url())\r\n \r\n dispatch(\r\n setFacilitySearchCondition(\r\n nullPropsToUndefined(\r\n datePropsToNumber({})\r\n )\r\n )\r\n )\r\n } else {\r\n history.push({\r\n pathname: facilitySearchConditionUrl.url(projectCategoryId),\r\n state: { projectIds },\r\n })\r\n }\r\n } else {\r\n history.push(facilitySearchSettingMasterSelectionUrl.url())\r\n }\r\n } \r\n\r\n return (\r\n <>\r\n \r\n } primary={translate('system.sideMenuContent.home')} to={rootUrl.url()} />\r\n }\r\n primary={translate('system.sideMenuContent.facilitySearch')}\r\n onClick={handleClickFacilitySearch}\r\n />\r\n }\r\n primary={translate('system.sideMenuContent.myFacility')}\r\n to={myFacilityUrl.url()}\r\n onClick={() => addOperationLog({ operationId: OperationId.OP_00000019 })}\r\n />\r\n }\r\n primary={translate('system.sideMenuContent.reserveStatusCheck')}\r\n to={reservationStatusListUrl.url()}\r\n onClick={() => addOperationLog({ operationId: OperationId.OP_00000020 })}\r\n />\r\n }\r\n primary={translate('system.sideMenuContent.usageHistory')}\r\n to={usageHistoryUrl.url()}\r\n onClick={() => addOperationLog({ operationId: OperationId.OP_00000021 })}\r\n />\r\n }\r\n primary={translate('system.sideMenuContent.information')}\r\n to={informationUrl.url()}\r\n />\r\n {isOTPAuthenticated && (\r\n }\r\n primary={translate('system.sideMenuContent.myPage')}\r\n to={myPageUrl.url()}\r\n onClick={() => addOperationLog({ operationId: OperationId.OP_00000023 })}\r\n />\r\n )}\r\n {isOTPAuthenticated && (\r\n } primary={translate('system.sideMenuContent.logout')} onClick={logout} />\r\n )}\r\n \r\n \r\n )\r\n}\r\n","import ChevronRightIcon from '@mui/icons-material/ChevronRight'\r\nimport { Divider, Drawer, IconButton, styled } from '@mui/material'\r\nimport { useCallback } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { closeSideMenu, selectIsOpen } from '../../../containers/common/store/slices/application'\r\nimport { SideMenuContent } from './sideMenuContent'\r\n\r\nconst drawerWidth = 240\r\nconst StyledDrawer = styled(Drawer)({\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n '& .MuiDrawer-paper': {\r\n width: drawerWidth,\r\n boxSizing: 'border-box',\r\n },\r\n})\r\n\r\nconst DrawerHeader = styled('div')(({ theme }) => ({\r\n ...theme.mixins.toolbar,\r\n display: 'flex',\r\n alignItems: 'center',\r\n padding: theme.spacing(0, 1),\r\n justifyContent: 'flex-start',\r\n}))\r\n\r\nexport const SideMenu = () => {\r\n const dispatch = useDispatch()\r\n const isOpen = useSelector(selectIsOpen)\r\n const close = useCallback(() => dispatch(closeSideMenu()), [])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectSystemControl } from '../../../containers/common/store/slices/systemControl'\r\n\r\nconst fontSizeLv = {\r\n lv0: 0,\r\n lv1: 1,\r\n lv2: 2,\r\n lv3: 3,\r\n} as const\r\n\r\nconst fontSizeNames = {\r\n [fontSizeLv.lv0]: 'sizeS',\r\n [fontSizeLv.lv1]: 'sizeM',\r\n [fontSizeLv.lv2]: 'sizeL1',\r\n [fontSizeLv.lv3]: 'sizeL2',\r\n} as const\r\ntype fontSizeNameKey = keyof typeof fontSizeNames\r\n\r\nconst Root = styled('span', { shouldForwardProp: (prop) => prop !== 'lv' })<{ lv: fontSizeNameKey }>(\r\n ({ theme, lv }) => ({\r\n fontSize: theme.typography.font[fontSizeNames[lv]],\r\n letterSpacing: 0,\r\n })\r\n)\r\n\r\nexport const SystemLogo = () => {\r\n const serviceTitle = useSelector(selectSystemControl).serviceTitle\r\n const serviceTitleLength = serviceTitle.length\r\n\r\n let lv: fontSizeNameKey = fontSizeLv.lv0\r\n if (serviceTitleLength < 14) {\r\n lv = fontSizeLv.lv3\r\n } else if (serviceTitleLength < 18) {\r\n lv = fontSizeLv.lv2\r\n } else if (serviceTitleLength < 23) {\r\n lv = fontSizeLv.lv1\r\n }\r\n\r\n return {serviceTitle}\r\n}\r\n","// 画面共通のヘッダー部\n//\n\nimport { AppBar, Box, styled, Toolbar } from '@mui/material'\nimport { memo, useCallback } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useLogoutActions } from '../../../containers/common/application'\nimport { accountCreateFormUrl, rootUrl } from '../../../containers/common/constant/appUrl'\nimport { openSideMenu } from '../../../containers/common/store/slices/application'\nimport { \n // selectIsLoggedIn,\n selectIsOTPAuthenticated,\n} from '../../../containers/common/store/slices/authority'\nimport { translate } from '../../../i18n'\nimport { ButtonOutlinedBuleS } from './buttons/buttonOutlinedBuleS'\nimport { IconLinkButton } from './buttons/iconLinkButton'\nimport { RightGItem } from './grids'\nimport { HamburgerMenuIcon } from './icons/hamburgerMenuIcon'\nimport { SideMenu } from './sideMenu'\nimport { SystemLogo } from './systemLogo'\nimport { selectSystemControl } from '../../../containers/common/store/slices/systemControl'\nimport awsmobile from '../../../aws-exports'\n\nconst StyledBar = styled(AppBar)({\n position: 'fixed',\n})\nconst LogoIconButton = styled(IconLinkButton)({\n padding: 0,\n})\nconst HeaderButtom = styled(ButtonOutlinedBuleS)({\n margin: '0 3px',\n borderWidth: 1,\n whiteSpace: 'nowrap',\n minWidth: '5rem',\n minHeight: '2rem',\n})\nconst CityIcon = styled('img')({\n width: 35,\n paddingRight: 5,\n})\nconst Logo = styled(SystemLogo)(({}) => ({\n width: 180,\n}))\n\ninterface AppHeaderProps {\n isHiddenButton: boolean\n}\nconst ButtonGItem = styled(RightGItem)(({}) => ({\n flexWrap: 'wrap',\n overflow: 'hidden',\n height: '2rem',\n justifyContent: 'end',\n flexDirection: 'row-reverse',\n}))\n\n/** 画面共通ヘッダー */\nexport const AppHeader = memo(function AppHeader(props: AppHeaderProps) {\n const { isHiddenButton } = props\n const { logout } = useLogoutActions()\n const dispatch = useDispatch()\n\n // const isLoggedIn = useSelector(selectIsLoggedIn)\n const isOTPAuthenticated = useSelector(selectIsOTPAuthenticated)\n\n const iconImageName = useSelector(selectSystemControl).iconImageName\n const s3BucketNameIcon = useSelector(selectSystemControl).s3BucketNameIcon\n const region = awsmobile.aws_project_region\n const iconUrl = iconImageName\n ? `https://${s3BucketNameIcon}.s3.${region}.amazonaws.com/${encodeURIComponent(iconImageName)}`\n : null\n\n const open = useCallback(() => dispatch(openSideMenu()), [])\n\n return (\n <>\n \n \n {isHiddenButton ? (\n
\n {iconUrl && }\n \n
\n ) : (\n \n {iconUrl && }\n \n \n )}\n \n {!isHiddenButton && !isOTPAuthenticated && (\n \n {translate('system.appHeader.login')}\n {translate('system.appHeader.createAccount')}\n \n )}\n {!isHiddenButton && (\n \n \n \n )}\n
\n
\n \n \n )\n})\n","// 画面メインコンテンツエリア\r\n//\r\n\r\nimport { styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport {\r\n selectBottomActionContainerHeight,\r\n selectIsHiddenMain,\r\n selectPxPerVh,\r\n} from '../../../containers/common/store/slices/application'\r\n\r\ninterface MainProps {\r\n children: ReactNode\r\n className?: string\r\n}\r\n\r\nconst Root = styled('main', {\r\n shouldForwardProp: (prop) => prop !== 'pxPerVh' && prop !== 'bottomContainerHeight' && prop !== 'isHidden',\r\n})<{\r\n pxPerVh: number\r\n bottomContainerHeight: number\r\n isHidden: boolean\r\n}>(({ theme, pxPerVh, bottomContainerHeight, isHidden }) => ({\r\n position: 'relative',\r\n flexGrow: 1,\r\n padding: theme.appMain.padding,\r\n paddingBottom: theme.appMain.padding + bottomContainerHeight,\r\n minHeight: `calc(${pxPerVh}px * 100 - ${theme.typography.pxToRem(theme.appFooter.height('xs'))})`,\r\n [theme.breakpoints.up('sm')]: {\r\n minHeight: `calc(${pxPerVh}px * 100 - ${theme.typography.pxToRem(theme.appFooter.height('sm'))})`,\r\n },\r\n ...(isHidden && { visibility: 'hidden' }),\r\n}))\r\n\r\n/**\r\n * 画面メインコンテンツエリア。\r\n * このコントロールの子に各画面のページコントロールが配置される。\r\n *\r\n * ■ minHeight を指定する目的\r\n * ページコンテンツの高さが画面一杯より遥かに低い場合、\r\n * 画面共通フッター(AppFooter)がページコンテンツにくっついて表示されることを防ぐため\r\n *\r\n * ■ paddingBottomにbottomContainerHeightを追加している目的\r\n * メインコンテンツエリア下部に表示する「登録」「戻る」などのアクションコントロールを格納する部分は\r\n * このメインコンテンツエリアに対して絶対位置で下部に固定されて表示する為、\r\n * 下部アクションコンテナ分のパディングを追加している。\r\n *\r\n * ※positionを以下のように設定して下部固定\r\n * *(position: 'relative')\r\n * *(position: 'absolute', bottom:)\r\n */\r\nexport const AppMain = (props: MainProps) => {\r\n const { className } = props\r\n const pxPerVh = useSelector(selectPxPerVh)\r\n const bottomContainerHeight = useSelector(selectBottomActionContainerHeight)\r\n const isHidden = useSelector(selectIsHiddenMain)\r\n\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n","import { ReactNode, useEffect, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport {\r\n useLocation,\r\n useHistory\r\n} from 'react-router'\r\nimport {\r\n identityEmailVerificationUrl,\r\n identityVerificationUrl,\r\n loginUrl,\r\n otpUrl,\r\n} from '../../../containers/common/constant/appUrl'\r\nimport {\r\n selectIsLoggedIn,\r\n selectIsOTPAuthenticated,\r\n selectIsVerifiedEmail,\r\n selectIsVerifiedTel,\r\n} from '../../../containers/common/store/slices/authority'\r\nimport { selectSystemControl } from '../../../containers/common/store/slices/systemControl'\r\nimport { yesNo } from '../../../containers/common/constant/classification'\r\n\r\ninterface AuthenticatedGuardProps {\r\n children: ReactNode\r\n /**\r\n * trueの場合、電話番号の検証フラグチェックは行わない\r\n * 本人確認用の電話番号検証画面の為に用意したフラグ\r\n * ※検証画面はログインしている必要がある為\r\n */\r\n isIgnoreVerifiedTel?: boolean\r\n\r\n isIgnoreVerifiedEmail?: boolean\r\n}\r\n\r\n/**\r\n * ログイン状態をチェックし、\r\n * ログイン状態なら子コントロール(各ページ)を実行\r\n * 未ログイン状態ならログイン画面へリダイレクトする\r\n * ログイン必須画面が未ログインで実行されないようにする部品。\r\n *\r\n * 本人確認が未実施の場合、検証コードを確認する画面へ遷移する。\r\n *\r\n * ログイン後、本来の遷移先へ遷移出来るようにするために\r\n * リダイレクト時に現在のロケーション情報をhistoryのstateとして設定している。\r\n */\r\nexport const AuthenticatedGuard = (props: AuthenticatedGuardProps) => {\r\n const isLoggedIn = useSelector(selectIsLoggedIn)\r\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\r\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\r\n const { smsSubscriptionFlag, phoneCertificationFlag } = useSelector(selectSystemControl)\r\n const isOTPAuthenticated = useSelector(selectIsOTPAuthenticated)\r\n const location = useLocation()\r\n const history = useHistory()\r\n\r\n // リダイレクトパス\r\n const [redirectPathName, setRedirectPathName] = useState('')\r\n\r\n /**\r\n * リダイレクトパスをセットする\r\n */\r\n useEffect(() => {\r\n\r\n // いずれかの認証が未済の場合のリダイレクトパス\r\n let newPath = null\r\n\r\n if (isLoggedIn) {\r\n if (!props.isIgnoreVerifiedEmail && !isVerifiedEmail) {\r\n // メール認証未済\r\n newPath = identityEmailVerificationUrl.url()\r\n } else if (!props.isIgnoreVerifiedTel && !isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes) {\r\n // 電話番号認証未済\r\n newPath = identityVerificationUrl.url()\r\n } else if (!isOTPAuthenticated && isVerifiedEmail) {\r\n // 2要素認証未済\r\n if (isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes) {\r\n newPath = otpUrl.url()\r\n }\r\n if (smsSubscriptionFlag === yesNo.no || phoneCertificationFlag === yesNo.no) {\r\n newPath = otpUrl.url()\r\n }\r\n }\r\n } else {\r\n // ログイン未済\r\n newPath = loginUrl.url()\r\n }\r\n\r\n if (newPath && location.pathname !== newPath && redirectPathName !== newPath) {\r\n // いずれかの認証が未済の場合、リダイレクトパスをセット\r\n setRedirectPathName(newPath)\r\n } else {\r\n // 認証済みのため、リダイレクトパスを初期化\r\n setRedirectPathName('')\r\n }\r\n }, [\r\n isLoggedIn, isVerifiedEmail, isVerifiedTel,\r\n smsSubscriptionFlag, phoneCertificationFlag, isOTPAuthenticated,\r\n location.pathname, props.isIgnoreVerifiedEmail, props.isIgnoreVerifiedTel,\r\n ])\r\n\r\n /**\r\n * リダイレクトを行う\r\n */\r\n useEffect(() => {\r\n if (redirectPathName && location.pathname !== redirectPathName) {\r\n // リダイレクトパスがセットされている場合、リダイレクトを行う\r\n history.replace({\r\n pathname: redirectPathName,\r\n state: { from: location },\r\n })\r\n }\r\n }, [redirectPathName, location.pathname])\r\n\r\n // リダイレクトパスがセットされている場合、アクセス先には遷移させない\r\n if (!isLoggedIn) {\r\n // ログイン未済\r\n return null\r\n }\r\n if (!props.isIgnoreVerifiedEmail && !isVerifiedEmail) {\r\n // メール認証未済\r\n return null\r\n }\r\n if (!props.isIgnoreVerifiedTel && !isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes) {\r\n // 電話番号認証未済\r\n return null\r\n }\r\n if (!isOTPAuthenticated && isVerifiedEmail) {\r\n // 2要素認証未済\r\n if (isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes) {\r\n return null\r\n }\r\n if (smsSubscriptionFlag === yesNo.no || phoneCertificationFlag === yesNo.no) {\r\n return null\r\n }\r\n }\r\n\r\n return <>{props.children}\r\n}\r\n","import { CircularProgress, Modal, styled } from '@mui/material'\r\nimport { memo, useEffect, useRef, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectIsLoading } from '../../../containers/common/store/slices/application'\r\n\r\nconst Root = styled(Modal)({\r\n '.MuiBackdrop-root': {\r\n backgroundColor: 'rgba(0, 0, 0, 0.01)',\r\n },\r\n})\r\nconst Circle = styled(CircularProgress)({\r\n position: 'absolute',\r\n // Circleの幅40px\r\n top: 'calc(50% - 20px)',\r\n left: 'calc(50% - 20px)',\r\n})\r\n\r\nexport const LoadingProgress = memo(function LoadingProgress() {\r\n const modalContentRef = useRef(null)\r\n const [isShownCircle, setIsShownCircle] = useState(false)\r\n const isLoading = useSelector(selectIsLoading)\r\n\r\n useEffect(() => {\r\n if (isLoading) {\r\n // onChangeでloading表示する場合、フォーカスが残ったままだと\r\n // そのまま変更出来てしまうのでモーダル側にフォーカスを移す\r\n modalContentRef.current?.focus()\r\n setIsShownCircle(false)\r\n const timeoutId = setTimeout(() => setIsShownCircle(true), 500)\r\n return () => clearTimeout(timeoutId)\r\n }\r\n }, [isLoading])\r\n return (\r\n \r\n
{isShownCircle && }
\r\n
\r\n )\r\n})\r\n","import { Alert, Snackbar, styled } from '@mui/material'\r\nimport { memo, SyntheticEvent, useCallback, useEffect, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectMessage } from '../../../containers/common/store/slices/application'\r\n\r\nconst Root = styled(Snackbar)(({ theme }) => ({\r\n top: '64px',\r\n [theme.breakpoints.up('sm')]: {\r\n '&.MuiSnackbar-root': {\r\n top: '70px',\r\n },\r\n },\r\n}))\r\n\r\n/** デフォルト自動非表示期間 */\r\nconst defaultAutoHideDuration = 3000\r\n\r\nexport const ToastNotification = memo(function ToastNotification() {\r\n const message = useSelector(selectMessage)\r\n const [isOpen, setIsOpen] = useState(false)\r\n\r\n // messageを空にするとhideのtransition中に幅が変わって見栄えが悪い為\r\n // messageはそのままにして非表示化を行う。\r\n useEffect(() => {\r\n setIsOpen(!!message)\r\n }, [message?.timestamp])\r\n\r\n const closeMessage = useCallback((event: SyntheticEvent | Event, reason?: string) => {\r\n if (reason === 'clickaway') {\r\n // 何処かのボタンクリックでメッセージを閉じない\r\n return\r\n }\r\n setIsOpen(false)\r\n }, [])\r\n\r\n return (\r\n \r\n {message?.content}\r\n \r\n )\r\n})\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router'\r\nimport { executeGetAccount, executePutAccountSsoLinkUnlink } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { GetAccountDto } from '../../dataAccess/webApi/dto/accountDto'\r\nimport { signOut } from '../../utils/authUtil'\r\nimport { loginUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { reset, showLoading } from '../common/store/slices/application'\r\nimport { selectIsVerifiedAll, selectIsVerifiedEmail, selectIsVerifiedTel } from '../common/store/slices/authority'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { translate } from '../../i18n'\r\n\r\ninterface DialogParam {\r\n isOpen: boolean\r\n onClose: () => void,\r\n message?: string,\r\n}\r\n\r\nconst DIALOG_PARAM_DEFAULT_VALUE: DialogParam = {\r\n isOpen: false,\r\n onClose: () => {},\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\r\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\r\n const isVerifiedAll = useSelector(selectIsVerifiedAll)\r\n const { ssoUseFlag, ssoUseName } = useSelector(selectSystemControl)\r\n\r\n const [account, setAccount] = useState()\r\n const [dialog, setDialog] = useState(DIALOG_PARAM_DEFAULT_VALUE)\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n \r\n dispatch(showLoading(errorHandle(() => initialize())))\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n\r\n }, [])\r\n \r\n const initialize = useCallback(\r\n async () => {\r\n const response = await executeGetAccount()\r\n setAccount(response.result)\r\n },\r\n [account]\r\n )\r\n \r\n const logout = useCallback(() => {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n await signOut()\r\n dispatch(reset({ isKeepAuthority: false }))\r\n history.push(loginUrl.url())\r\n })\r\n )\r\n )\r\n }, [dispatch, errorHandle, history])\r\n \r\n //SSO連携解除\r\n const unlink = useCallback(async() => {\r\n \r\n try {\r\n await executePutAccountSsoLinkUnlink()\r\n \r\n setDialog({\r\n isOpen: true,\r\n message: translate('account.success.unlinkCompletionMessage'),\r\n onClose: () => {onCloseComplateDialog()},\r\n })\r\n \r\n } catch {\r\n setDialog({\r\n isOpen: true,\r\n message: translate('account.error.unlinkErrorMessage'),\r\n onClose: () => {setDialog(DIALOG_PARAM_DEFAULT_VALUE)},\r\n })\r\n }\r\n }, [])\r\n \r\n const onCloseComplateDialog = useCallback(async() => {\r\n setDialog(DIALOG_PARAM_DEFAULT_VALUE)\r\n // 連携解除後ログアウトしないと再連携でエラーになる為、ログアウトする\r\n logout()\r\n }, [])\r\n\r\n return { sysCtrl, isVerifiedTel, isVerifiedEmail, isVerifiedAll, account, logout, ssoUseFlag, ssoUseName, unlink, dialog }\r\n}\r\n","import { styled, Theme, useMediaQuery } from '@mui/material'\r\nimport { ReactNode, useCallback, useEffect, useRef } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { setBottomActionContainerHeight } from '../../../containers/common/store/slices/application'\r\n\r\ninterface BottomActionContainerProps {\r\n children: ReactNode\r\n}\r\n\r\nconst Root = styled('div')(({ theme }) => ({\r\n position: 'absolute',\r\n bottom: theme.appMain.padding,\r\n width: `calc(100% - ${theme.appMain.padding * 2}px)`,\r\n}))\r\n\r\n/**\r\n * メインコンテンツエリア下部に表示する「登録」「戻る」などのアクションコントロールを格納するコントロール\r\n */\r\nexport const BottomActionContainer = (props: BottomActionContainerProps) => {\r\n const dispatch = useDispatch()\r\n const ref = useRef(null)\r\n const isUpMd = useMediaQuery((theme) => theme.breakpoints.up('md'))\r\n\r\n const reCalc = useCallback(\r\n (ele: HTMLDivElement) => {\r\n const height = ele.getBoundingClientRect().height + parseFloat(getComputedStyle(ele).marginTop)\r\n dispatch(setBottomActionContainerHeight(height))\r\n },\r\n [dispatch]\r\n )\r\n\r\n useEffect(() => {\r\n return () => {\r\n dispatch(setBottomActionContainerHeight(0))\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n reCalc(ref.current)\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isUpMd])\r\n\r\n useEffect(() => {\r\n let resizeObserver: ResizeObserver | undefined\r\n if (ref.current && window.ResizeObserver) {\r\n const ele = ref.current\r\n let preHeight: number | undefined\r\n resizeObserver = new ResizeObserver((entries) => {\r\n if (entries.length) {\r\n const height = entries[0].contentRect.height\r\n if (preHeight !== height) {\r\n preHeight = height\r\n reCalc(ele)\r\n }\r\n }\r\n })\r\n resizeObserver.observe(ele)\r\n }\r\n return () => resizeObserver && resizeObserver.disconnect()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n return {props.children}\r\n}\r\n","import { Stack, styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { BottomActionContainer } from './bottomActionContainer'\r\nimport { FlexboxCenter } from './flexboxes'\r\n\r\ninterface BottomButtonProps {\r\n children: ReactNode\r\n}\r\n\r\nconst ButtonBox = styled(FlexboxCenter)(({ theme }) => ({\r\n [theme.breakpoints.up('md')]: {\r\n width: '19rem',\r\n },\r\n}))\r\n\r\n/**\r\n * メインコンテンツエリア下部に表示する「登録」「戻る」などのアクションコントロールを\r\n * 画面幅に応じて適切に配置するコントロール。\r\n * PC以外のレイアウトでは縦\r\n * PCレイアウトでは横かつ逆順 ※左側に「戻る」「中止」を配置したいため\r\n */\r\nexport const BottomButtonStack = (props: BottomButtonProps) => {\r\n /** 配列のコピーを作成。要素以外は除去 */\r\n const buttons = (Array.isArray(props.children) ? [...props.children] : [props.children]).filter((v) =>\r\n React.isValidElement(v)\r\n )\r\n return (\r\n \r\n {buttons.map((button, index) => (\r\n {button}\r\n ))}\r\n \r\n )\r\n}\r\n\r\n/**\r\n * メインコンテンツエリア下部に表示するコントロール。\r\n * BottomButtonStack含む\r\n */\r\nexport const BottomButtonGroup = (props: BottomButtonProps) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n","import { Theme, useMediaQuery } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface BreakpointSwitchProps {\r\n xs?: ReactNode\r\n sm?: ReactNode\r\n md?: ReactNode\r\n}\r\n\r\n/**\r\n * ブレイクポイントxs,sm,mdに応じた内容を切り分けたい場合に使用するコントロール。\r\n */\r\nexport const BreakpointSwitch = (props: BreakpointSwitchProps) => {\r\n const isMd = useMediaQuery((theme) => theme.breakpoints.up('md'))\r\n const isSm = useMediaQuery((theme) => theme.breakpoints.up('sm'))\r\n if (props.md && isMd) {\r\n return <>{props.md}\r\n }\r\n if (props.sm && isSm) {\r\n return <>{props.sm}\r\n }\r\n return <>{props.xs}\r\n}\r\n","import { styled } from '@mui/system'\r\nimport { ButtonOutlinedBase } from './buttonOutlinedBase'\r\n\r\n/**\r\n * whiteカラーのボタンコントロールLサイズ。\r\n */\r\nexport const ButtonOutlinedL = styled(ButtonOutlinedBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n padding: '14px 14px',\r\n borderWidth: 4,\r\n}))\r\n","import { styled } from '@mui/system'\r\nimport { ButtonOutlinedBase } from './buttonOutlinedBase'\r\n\r\n/**\r\n * whiteカラーのボタンコントロールSサイズ。\r\n */\r\nexport const ButtonOutlinedS = styled(ButtonOutlinedBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n padding: '0 10px',\r\n borderWidth: 3,\r\n borderRadius: 8,\r\n}))\r\n","import React from 'react'\r\nimport { BreakpointSwitch } from '../breakpointSwitch'\r\nimport { ButtonProps } from './buttonBase'\r\nimport { ButtonOutlinedL } from './buttonOutlinedL'\r\nimport { ButtonOutlinedS } from './buttonOutlinedS'\r\n\r\n/**\r\n * whiteカラーのボタンコントロールをxs,mdでS,Lサイズの切り替えを行うコントロール。\r\n */\r\nexport const ButtonOutlinedResponsive = (props: ButtonProps) => {\r\n const { children, ...through } = props\r\n return (\r\n {children}}\r\n md={\r\n \r\n {children}\r\n \r\n }\r\n />\r\n )\r\n}\r\n","import { Box, styled } from '@mui/material'\nimport { ReactNode } from 'react'\n\ninterface SubTitleProps {\n title: ReactNode\n}\n\nconst Root = styled(Box)(({ theme }) => ({\n fontSize: theme.typography.font.sizeL1,\n letterSpacing: '0.2em',\n color: theme.palette.secondary.main,\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\n}))\n\nexport const SubTitle = (props: SubTitleProps) => {\n return {props.title}\n}\n","import ErrorOutlineIcon from '@mui/icons-material/ErrorOutline'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 感嘆符のアイコン */\r\nexport const ExclamationMarkIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import { ReactNode } from 'react'\r\nimport { FieldValues, FormProvider, SubmitHandler, UseFormReturn } from 'react-hook-form'\r\n\r\ninterface FormProps {\r\n /** 子要素 */\r\n children: ReactNode\r\n /**\r\n * submit時に呼び出される関数。\r\n * コントロールのバリデーションでエラーになった場合は呼び出されません。\r\n */\r\n onSubmit?: SubmitHandler\r\n /**\r\n * useForm関数の戻り値を設定する\r\n */\r\n formMethods: UseFormReturn\r\n id?: string\r\n}\r\n\r\n/** フォームコントロール */\r\nexport const Form = ({\r\n children,\r\n onSubmit,\r\n formMethods,\r\n id,\r\n}: FormProps) => {\r\n return (\r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import CancelIcon from '@mui/icons-material/Cancel'\r\nimport {\r\n Breakpoint,\r\n DialogActions,\r\n DialogTitle,\r\n IconButton,\r\n Dialog as MuiDialog,\r\n DialogContent as MuiDialogContent,\r\n styled,\r\n} from '@mui/material'\r\nimport { ElementType, ReactNode, useCallback } from 'react'\r\nimport { FieldValues, SubmitHandler, UseFormReturn } from 'react-hook-form'\r\nimport { ExclamationMarkIcon } from './icons/exclamationMarkIcon'\r\nimport { Form } from './inputs/form'\r\n\r\ninterface DialogProps {\r\n /** ダイアログのコンテンツ部 */\r\n children: ReactNode\r\n /**\r\n * コンテンツ要素のコンポーネント。\r\n * 指定が無ければ {@link DialogContent} を使用する\r\n */\r\n contentComponent?: ElementType\r\n /** ダイアログを表示する場合true */\r\n isOpen: boolean\r\n /** ダイアログが閉じられる操作が行われたときに呼び出される関数 */\r\n onClose: () => void\r\n /**\r\n * ダイアログのタイトル。指定なしの場合はタイトルなしで表示\r\n */\r\n title?: string\r\n /**\r\n * ダイアログ下部に配置するボタン。\r\n * 指定なければそのエリアはなしで表示する\r\n */\r\n buttons?: ReactNode\r\n /** ダイアログの最大幅 */\r\n maxWidth?: Breakpoint | false\r\n /**\r\n * trueの場合、ダイアログはmaxWidthまで拡大されます。\r\n * ダイアログの幅の拡大は、デフォルトのマージンによって制限されていることに注意してください。\r\n */\r\n fullWidth?: boolean\r\n /** ダイアログの高さを100%にする場合true */\r\n fullHeight?: boolean\r\n /** ダイアログ右上に閉じるボタンを表示する場合true */\r\n isShownCloseButton?: boolean\r\n\r\n /**\r\n * submit時に呼び出される関数。\r\n * コントロールのバリデーションでエラーになった場合は呼び出されません。\r\n */\r\n onSubmit?: SubmitHandler\r\n /**\r\n * useForm関数の戻り値を設定する\r\n */\r\n formMethods?: UseFormReturn\r\n}\r\n\r\nconst Root = styled(MuiDialog, { shouldForwardProp: (prop) => prop !== 'fullHeight' })<{ fullHeight?: boolean }>(\r\n ({ fullHeight }) => ({\r\n ...(fullHeight && {\r\n '.MuiDialog-paper': {\r\n height: '100%',\r\n },\r\n }),\r\n })\r\n)\r\nconst CloseButton = styled(IconButton)({ position: 'absolute', top: 0, right: 0, zIndex: 10, padding: 4 })\r\n\r\nconst Title = styled(DialogTitle)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n fontWeight: theme.typography.fontWeightBold,\r\n color: theme.palette.error.main,\r\n}))\r\nconst TitleIcon = styled('div')({\r\n textAlign: 'center',\r\n fontSize: '4rem',\r\n lineHeight: 0.6,\r\n})\r\nconst TitleText = styled('div')({\r\n textAlign: 'center',\r\n})\r\nexport const DialogContent = styled(MuiDialogContent)({\r\n paddingBottom: 8,\r\n})\r\n\r\nconst Actions = styled(DialogActions)({\r\n justifyContent: 'center',\r\n paddingBottom: 16,\r\n})\r\n\r\n/**\r\n * モーダルダイアログコントロール\r\n */\r\nexport const Dialog = (\r\n props: DialogProps\r\n) => {\r\n const {\r\n isOpen,\r\n onClose,\r\n children,\r\n contentComponent,\r\n buttons,\r\n title,\r\n fullHeight,\r\n isShownCloseButton,\r\n onSubmit,\r\n formMethods,\r\n ...through\r\n } = props\r\n const close = useCallback(() => onClose(), [onClose])\r\n\r\n const ContentComp = contentComponent ?? DialogContent\r\n const contentActions = (\r\n <>\r\n {children}\r\n {buttons && {buttons}}\r\n \r\n )\r\n return (\r\n \r\n {isShownCloseButton && (\r\n \r\n \r\n \r\n )}\r\n {title && (\r\n \r\n <TitleIcon>\r\n <ExclamationMarkIcon fontSize=\"inherit\" />\r\n </TitleIcon>\r\n <TitleText>{title}</TitleText>\r\n \r\n )}\r\n\r\n {onSubmit && formMethods ? (\r\n
\r\n {contentActions}\r\n
\r\n ) : (\r\n contentActions\r\n )}\r\n
\r\n )\r\n}\r\n","import { Chip, Stack, styled, Grid } from '@mui/material'\r\n\r\nimport { ReactNode } from 'react'\r\n\r\nimport { useAction } from '../../containers/account/accountService'\r\nimport {\r\n accountEmailChangeUrl,\r\n accountTelChangeUrl,\r\n accountUnsubscribeUrl,\r\n myPageUrl,\r\n ssoUrl,\r\n accountUrl,\r\n} from '../../containers/common/constant/appUrl'\r\nimport { OperationId } from '../../containers/common/constant/operationLog'\r\n\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { translate, translateNode } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { GContainer, GItem, GItemContainer, LabelGItemBase, ValueGItemBase } from '../components/common/grids'\r\nimport { Link } from '../components/common/link'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { Dialog } from '../components/common/dialog'\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\r\n\r\nconst LinkItemBase = styled(GItem)({\r\n paddingLeft: 4,\r\n})\r\nconst VerifiedStatusChipBase = styled(Chip)({ marginLeft: 12 })\r\nconst VerifiedStatusChip = (props: { isVerified: boolean }) => {\r\n const chipProps = props.isVerified\r\n ? ({\r\n label: translate('account.text.authenticated'),\r\n color: 'success',\r\n } as const)\r\n : ({\r\n label: translate('account.text.unauthenticated'),\r\n color: 'error',\r\n } as const)\r\n\r\n return \r\n}\r\n\r\nconst LinkedStatusChipBase = styled(Chip)({ marginLeft: 12 })\r\nconst LinkedStatusChip = (props: { isLinked: boolean }) => {\r\n const chipProps = props.isLinked\r\n ? ({\r\n label: translate('account.text.linked'),\r\n color: 'success',\r\n } as const)\r\n : ({\r\n label: translate('account.text.unlinked'),\r\n color: 'error',\r\n } as const)\r\n return \r\n}\r\n\r\nconst LabelGItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueGItem = (props: { children: ReactNode }) => {props.children}\r\nconst LinkGItem = (props: { children?: ReactNode }) => {props.children}\r\n\r\nconst DialogContentText = styled('div')({\r\n whiteSpace: 'pre-line',\r\n textAlign: 'center',\r\n})\r\n\r\nexport const Account = () => {\r\n const { sysCtrl, isVerifiedTel, isVerifiedEmail, isVerifiedAll, account, logout, ssoUseFlag, ssoUseName, unlink, dialog } = useAction()\r\n\r\n if (account == null) {\r\n return null\r\n }\r\n \r\n return (\r\n \r\n {translate('system.button.close')}\r\n }\r\n maxWidth={'xs'}\r\n fullWidth\r\n >\r\n \r\n {dialog.message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('account.label.email')}\r\n {account.email}\r\n \r\n {isVerifiedAll && (\r\n {`${translate('account.text.change')}>`}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('account.label.telMobile')}\r\n {account.tel}\r\n \r\n {`${translate('account.text.change')}>`}\r\n \r\n \r\n {sysCtrl.phoneCertificationFlag === yesNo.yes &&\r\n \r\n \r\n \r\n }\r\n \r\n\r\n {translate('account.label.password')}\r\n {translate('account.text.passwordChangeInformation')}\r\n \r\n {isVerifiedAll && (\r\n {`${translate(\r\n 'account.text.change'\r\n )}>`}\r\n )}\r\n \r\n\r\n {sysCtrl.unsubscribeAcceptFlag === yesNo.yes && (\r\n <>\r\n {translate('account.label.unsubscribe')}\r\n \r\n {translateNode(\r\n 'account.text.unsubscribe',\r\n \r\n {translate('account.text.here')}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n { ssoUseFlag === yesNo.yes && (\r\n <>\r\n \r\n {ssoUseName}{translate('account.label.linkage')}\r\n \r\n { account.ssoUserId != null ? (\r\n <>\r\n \r\n {translateNode(\r\n 'account.text.unlinkage',\r\n \r\n {translate('account.text.here')}\r\n \r\n )}\r\n \r\n \r\n \r\n ):(\r\n <>\r\n \r\n {translateNode(\r\n 'account.text.linkage',\r\n \r\n {translate('account.text.here')}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('account.button.backToMypage')}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePostAccount, executePutAccount } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { translate } from '../../i18n'\r\nimport { getSessionAccessToken } from '../../utils/authUtil'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { accountUrl, errorUrls } from '../common/constant/appUrl'\r\nimport { accountChangeVerificationCategory, httpStatusCode, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { clearAccountChange, selectAccountChangeEntry } from '../common/store/slices/accountChange'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { detectLoginStatus } from '../common/store/slices/authority'\r\n\r\ninterface Inputs {\r\n oneTimePassword: string\r\n}\r\n\r\nconst completionMessageKey = {\r\n [accountChangeVerificationCategory.email]: 'accountChangeVerification.success.completionMessageEmail',\r\n [accountChangeVerificationCategory.tel]: 'accountChangeVerification.success.completionMessageTel',\r\n [accountChangeVerificationCategory.password]: 'accountChangeVerification.success.completionMessagePassword',\r\n} as const\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const changeEntry = useSelector(selectAccountChangeEntry)\r\n\r\n const [identifier, setIdentifier] = useState(getNow())\r\n\r\n const formMethods = useForm()\r\n\r\n const resend = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000051 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (changeEntry == null) {\r\n // 変更画面以外から遷移した場合はエラーにするので有り得ない\r\n return\r\n }\r\n let tel\r\n let email\r\n let password\r\n let newPassword\r\n switch (changeEntry.category) {\r\n case accountChangeVerificationCategory.tel:\r\n tel = changeEntry.tel\r\n break\r\n case accountChangeVerificationCategory.password:\r\n password = changeEntry.password\r\n newPassword = changeEntry.newPassword\r\n break\r\n }\r\n const response = await executePutAccount(\r\n undefinedPropsToNull({\r\n accessToken: await getSessionAccessToken(),\r\n tel,\r\n email,\r\n password,\r\n newPassword,\r\n })\r\n )\r\n if (response.resultCode) {\r\n // 再送信失敗時 ※通常のオペレーションでの発生は考え難いエラーなのでシステムエラーにする\r\n history.replace(errorUrls[httpStatusCode.internalServerError].url())\r\n } else {\r\n // 再送信成功時\r\n dispatch(notifyMessage(translate('system.success.resendOneTimePassword')))\r\n setIdentifier(getNow())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000050, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (changeEntry == null) {\r\n // 変更画面以外から遷移した場合はエラーにするので有り得ない\r\n return\r\n }\r\n const response = await executePostAccount({\r\n accessToken: await getSessionAccessToken(),\r\n category: changeEntry.category,\r\n passcode: data.oneTimePassword,\r\n })\r\n if (response.resultCode) {\r\n // 検証失敗時\r\n // ローディング表示中はsetErrorでメッセージ表示が反映されないので遅延させる\r\n setTimeout(() => {\r\n formMethods.setError(\r\n 'oneTimePassword',\r\n {\r\n message: translate(`accountChangeVerification.error.verificationResultCode${response.resultCode}`),\r\n },\r\n { shouldFocus: true }\r\n )\r\n }, 0)\r\n } else {\r\n // 検証成功時\r\n await dispatch(detectLoginStatus())\r\n dispatch(notifyMessage(translate(completionMessageKey[changeEntry.category])))\r\n history.push(accountUrl.url())\r\n dispatch(clearAccountChange())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog]\r\n )\r\n\r\n return {\r\n changeEntry,\r\n formMethods,\r\n identifier,\r\n resend,\r\n onSubmit,\r\n }\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { ButtonBase } from './buttonBase'\r\n\r\n/**\r\n * primaryカラーのボタンコントロール基本部分。\r\n */\r\nexport const ButtonContainedBase = styled(ButtonBase)(({ theme }) => ({\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.main,\r\n borderColor: theme.palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.dark,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n '&:active': {\r\n boxShadow: theme.shadows[8],\r\n },\r\n}))\r\n","import { styled } from '@mui/material'\r\nimport { ButtonContainedBase } from './buttonContainedBase'\r\n\r\n/**\r\n * primaryカラーのボタンコントロールLサイズ。\r\n */\r\nexport const ButtonL = styled(ButtonContainedBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n padding: '18px 18px',\r\n}))\r\n","// 項目バリデーションチェック処理を定義\r\n//\r\n\r\nimport { translate } from '../../i18n'\r\n\r\ninterface PasswordRule {\r\n minimumLength: number\r\n requireNumbers: boolean\r\n requireUppercase: boolean\r\n requireLowercase: boolean\r\n requireSymbols: boolean\r\n temporaryPasswordValidityDays: number\r\n}\r\n\r\ntype Validate = (isValid: boolean, message: string) => string | true\r\nconst validate: Validate = (isValid: boolean, message: string) => isValid || message\r\n\r\n/**\r\n * @param value 文字列\r\n * @returns 文字列が郵便番号として妥当ならtrue\r\n */\r\nexport const isValidPostalCode = (value: string) => /^[0-9]{3}-[0-9]{4}$/.test(value)\r\n\r\n/**\r\n * @param value 文字列\r\n * @returns 文字列が電話番号として妥当ならtrue\r\n */\r\nexport const isValidTel = (value: string) => value.length <= 13 && /^[0-9]+-[0-9]+-[0-9]+$/.test(value)\r\n\r\n/**\r\n * メールアドレスの妥当性チェック。\r\n * 本番環境とそれ以外の環境でチェック制限が異なる。\r\n * ※テストで複数アカウントを作成しやすくする為\r\n *\r\n * 本番環境:Gmailのエイリアスで追加したアドレスを許容しない。\r\n * その他環境:Gmailのエイリアスで追加したアドレスを許容する。※xxx+xxxx@xxxx.xxx を許す\r\n *\r\n * @param value 文字列\r\n * @returns 文字列がメールアドレスとして妥当ならtrue\r\n */\r\nexport const isValidEmail = (value: string) =>\r\n /^(?:[a-z0-9!#$%&'*/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(value)\r\n\r\n/**\r\n * @param value 文字列\r\n * @returns 文字列がカタカナ入力の値として妥当ならtrue\r\n */\r\nexport const isValidKatakana = (value: string) => /^[\\u30A1-\\u30F6\\u30FC  ]+$/.test(value)\r\n\r\n/**\r\n * REQUIRES_SYMBOLS の特殊文字\r\n *\r\n * https://github.com/aws-amplify/amplify-ui/blob/main/packages/ui/src/machines/authenticator/defaultServices.ts\r\n */\r\nconst cognitoAllowedSpecialCharacters = [\r\n '^',\r\n '$',\r\n '*',\r\n '.',\r\n '[',\r\n ']',\r\n '{',\r\n '}',\r\n '(',\r\n ')',\r\n '?',\r\n '\"',\r\n '!',\r\n '@',\r\n '#',\r\n '%',\r\n '&',\r\n '/',\r\n '\\\\',\r\n ',',\r\n '>',\r\n '<',\r\n \"'\",\r\n ':',\r\n ';',\r\n '|',\r\n '_',\r\n '~',\r\n '`',\r\n '=',\r\n '+',\r\n '-',\r\n ' ',\r\n] as const\r\n\r\n/** パスワードの最大文字数 */\r\nexport const cognitoPasswordMaxLength = 256\r\n\r\n/**\r\n * amplify validateFormPassword の実装を元に\r\n * パスワード\r\n * @param password 文字列\r\n * @returns 文字列がパスワードの値として妥当ならtrue\r\n */\r\nexport const isValidPassword = (password: string, passwordRule: PasswordRule) => {\r\n if (password.length < passwordRule.minimumLength) {\r\n // 最小文字数\r\n return false\r\n }\r\n if (/^ | $/.test(password)) {\r\n // 先頭、末尾のスペース\r\n return false\r\n }\r\n\r\n const requires = []\r\n for (const [key, value] of Object.entries(passwordRule)) {\r\n if (key !== 'minimumLength' && key !== 'temporaryPasswordValidityDays' && value) {\r\n requires.push(key)\r\n }\r\n }\r\n \r\n if (requires.length === 0) {\r\n return true\r\n }\r\n \r\n const tmpSatisfiedRules: string[] = []\r\n\r\n for (const pwdChar of password) {\r\n if (/[a-z]/.test(pwdChar)) {\r\n tmpSatisfiedRules.push('requireLowercase')\r\n } else if (/[A-Z]/.test(pwdChar)) {\r\n tmpSatisfiedRules.push('requireUppercase')\r\n } else if (/[0-9]/.test(pwdChar)) {\r\n tmpSatisfiedRules.push('requireNumbers')\r\n } else if (cognitoAllowedSpecialCharacters.some((char) => char === pwdChar)) {\r\n tmpSatisfiedRules.push('requireSymbols')\r\n } else {\r\n // 許可文字列以外\r\n return false\r\n }\r\n }\r\n \r\n const satisfiedRules = Array.from(new Set(tmpSatisfiedRules));\r\n \r\n for (const rule of requires) {\r\n if (!satisfiedRules.includes(rule)) {\r\n return false\r\n }\r\n }\r\n \r\n return true\r\n}\r\n\r\n/**\r\n * 必須バリデータ関数を返す\r\n * @param label 項目ラベル\r\n * @returns {Validate}\r\n */\r\nexport const requiredValidator = (label: string) => {\r\n return (value: string) => validate(value != null && !!value.trimEnd(), translate('system.error.requiredInput', label))\r\n}\r\n\r\n/**\r\n * 電話番号バリデータ関数を返す\r\n * @returns {Validate}\r\n */\r\nexport const telValidator = () => {\r\n return (value: string) => validate(value.length === 0 || isValidTel(value), translate('system.error.validTel'))\r\n}\r\n\r\n/**\r\n * 郵便番号バリデータ関数を返す\r\n * @returns {Validate}\r\n */\r\nexport const postalCodeValidator = () => {\r\n return (value: string) =>\r\n validate(value.length === 0 || isValidPostalCode(value), translate('system.error.validPostalCode'))\r\n}\r\n\r\n/**\r\n * メールアドレスバリデータ関数を返す\r\n * @returns {Validate}\r\n */\r\nexport const emailValidator = () => {\r\n return (value: string) => validate(value.length === 0 || isValidEmail(value), translate('system.error.validEmail'))\r\n}\r\n\r\n/**\r\n * カタカナバリデータ関数を返す\r\n * @returns {Validate}\r\n */\r\nexport const katakanaValidator = () => {\r\n return (value: string) =>\r\n validate(value.length === 0 || isValidKatakana(value), translate('system.error.validKatakana'))\r\n}\r\n\r\n/**\r\n * パスワードバリデータ関数を返す\r\n * @returns {Validate}\r\n */\r\nexport const passwordValidator = (validateMessage: string, passwordRule: PasswordRule) => {\r\n return (value: string) =>\r\n validate(value.length === 0 || isValidPassword(value, passwordRule), validateMessage)\r\n}\r\n","// 受入年齢、住所など業務要素のある項目フォーマットユーティリティ関数\r\n// stringUtilに格納してしまうと、dateUtilなどとの循環参照が発生する為\r\n// 別モジュールへ分離している\r\n\r\nimport { yesNo } from '../containers/common/constant/classification'\r\nimport { translate } from '../i18n'\r\nimport { ElapsedMillisecond, formatHm } from './dateUtil'\r\nimport { fromNumber } from './stringUtil'\r\n\r\n/**\r\n * 受入年齢表示形式にフォーマットする\r\n * @param acceptAge 受入年齢(年齢)\r\n * @param acceptMonth 受入年齢(月齢)\r\n * @param acceptDay 受入年齢(日齢)\r\n * @param acceptAgeGradeFlag 年度満年齢フラグ\r\n * @returns 受入年齢表示文字列。受入年齢(年齢)~受入年齢(日齢)がすべて未設定ならundefined\r\n */\r\nexport const formatAcceptAge = (\r\n acceptAge?: number,\r\n acceptMonth?: number,\r\n acceptDay?: number,\r\n acceptAgeGradeFlag?: string\r\n) => {\r\n if (acceptAge != null || acceptMonth != null || acceptDay != null) {\r\n let age = acceptAge\r\n let month\r\n if (acceptMonth != null) {\r\n // 月齢のみ年齢への繰り上げ処理を行う\r\n const upAge = Math.trunc(acceptMonth / 12)\r\n if (upAge) {\r\n age = (age ?? 0) + upAge\r\n }\r\n month = acceptMonth % 12\r\n }\r\n\r\n const isShown = (value?: number, ...highers: (number | undefined)[]) =>\r\n value != null && !(value === 0 && highers.some((v) => (v ?? 0) > 0))\r\n\r\n let dayPrefix = translate('system.text.acceptAgeUnit.dayPrefix')\r\n if (dayPrefix === 'system.text.acceptAgeUnit.dayPrefix') {\r\n // 辞書エントリ無しの場合は、空で編集\r\n dayPrefix = ''\r\n }\r\n const isShownDay = isShown(acceptDay, age, month)\r\n return [\r\n isShownDay ? [dayPrefix] : [],\r\n age != null ? [fromNumber(age), translate('system.text.acceptAgeUnit.age')] : [],\r\n isShown(month, age) ? [fromNumber(month), translate('system.text.acceptAgeUnit.month')] : [],\r\n isShownDay ? [fromNumber(acceptDay), translate('system.text.acceptAgeUnit.day')] : [],\r\n acceptAgeGradeFlag !== yesNo.yes ? [translate('system.text.acceptAgeUnit.class')] : [],\r\n ]\r\n .flat()\r\n .join('')\r\n }\r\n}\r\n\r\n/**\r\n * 受入年齢範囲表示形式にフォーマットする\r\n *\r\n * @param formattedAcceptAgeFrom 受入年齢表示形式(下限)\r\n * @param formattedAcceptAgeTo 受入年齢表示形式(上限)\r\n * @returns 受入年齢範囲表示形式文字列\r\n */\r\nexport const formatAcceptAgeRange = (formattedAcceptAgeFrom: string, formattedAcceptAgeTo: string) => {\r\n interface age {\r\n [key: string]: string\r\n }\r\n const ageMap : age = {\r\n '6歳児クラス': '小学校1年生',\r\n '7歳児クラス': '小学校2年生',\r\n '8歳児クラス': '小学校3年生',\r\n '9歳児クラス': '小学校4年生',\r\n '10歳児クラス': '小学校5年生',\r\n '11歳児クラス': '小学校6年生',\r\n };\r\n formattedAcceptAgeFrom = ageMap[formattedAcceptAgeFrom] || formattedAcceptAgeFrom;\r\n formattedAcceptAgeTo = ageMap[formattedAcceptAgeTo] || formattedAcceptAgeTo;\r\n\r\n return translate('system.text.acceptAgeUnit.range', formattedAcceptAgeFrom, formattedAcceptAgeTo);\r\n}\r\n\r\n/**\r\n * 表示用住所にフォーマット。\r\n * 住所1・2と建物名は半角スペースで区切る\r\n * @param address1 住所1\r\n * @param address2 住所2\r\n * @param buildingNameRoomNo 建物名・部屋番号\r\n * @returns 表示用住所\r\n */\r\nexport const formatAddress = (address1?: string, address2?: string, buildingNameRoomNo?: string) => {\r\n return [[address1, address2].join(''), buildingNameRoomNo].filter((v) => v).join(' ')\r\n}\r\n\r\n/**\r\n * 郵便番号フォーマット。\r\n * 数字のみ以外は渡された文字列をそのまま返す\r\n * @param value 文字列\r\n * @returns 郵便番号フォーマットか渡された文字列\r\n */\r\nexport const formatPostalCode = (value: string) => {\r\n const result = /^(\\d{3})(\\d+)$/.exec(value)\r\n if (result) {\r\n return `${result[1]}-${result[2]}`\r\n }\r\n return value\r\n}\r\n\r\n/**\r\n * キャンセル期限のフォーマット。\r\n *\r\n * @param cancelLimit キャンセル受付期限(日数)\r\n * @param cancelLimitTime キャンセル受付終了時間\r\n * @param cancelExcludeHolidayFlag キャンセル受付終了土日祝日/年末年始除外フラグ\r\n * @returns キャンセル期限のフォーマットされた文字列\r\n */\r\nexport const formatCancelLimit = (\r\n cancelLimit: number,\r\n cancelLimitTime: Date | ElapsedMillisecond,\r\n cancelExcludeHolidayFlag?: string,\r\n interviewFlag?: boolean\r\n) => {\r\n const limitTime = formatHm(cancelLimitTime)\r\n return cancelLimit === 0\r\n ? (interviewFlag\r\n ? translate('system.text.interviewCancelLimit.onDay', limitTime)\r\n : translate('system.text.cancelLimit.onDay', limitTime)\r\n )\r\n : (interviewFlag\r\n ? cancelExcludeHolidayFlag === yesNo.yes ?\r\n translate('system.text.interviewCancelLimit.excludeHoliday', fromNumber(cancelLimit), limitTime)\r\n : translate('system.text.interviewCancelLimit.other', fromNumber(cancelLimit), limitTime)\r\n : translate('system.text.cancelLimit.other', fromNumber(cancelLimit), limitTime)\r\n )\r\n}\r\n","// テキストコントロールの共通スタイル定義\r\n//\r\n\r\nimport { styled, TextField } from '@mui/material'\r\n\r\n/** テキストコントロールで共通適用するスタイル */\r\nexport const TextBoxBaseStyled = styled(TextField, { shouldForwardProp: (prop) => prop !== 'maxLength' })<{\r\n maxLength?: number\r\n fullWidth?: boolean\r\n}>(({ maxLength, fullWidth }) => ({\r\n ...(maxLength &&\r\n !fullWidth && {\r\n width: `${maxLength * 1.5}rem`,\r\n maxWidth: '100%',\r\n }),\r\n whiteSpace: 'pre-line',\r\n '& .MuiInputBase-root': {\r\n padding: 0,\r\n },\r\n '& .MuiInputBase-input': {\r\n padding: '4px 5px',\r\n },\r\n '& .MuiInputBase-root.MuiInputBase-adornedStart': {\r\n paddingLeft: 4,\r\n },\r\n '& .MuiInputAdornment-positionStart': {\r\n marginRight: 0,\r\n },\r\n '& .MuiInputAdornment-positionEnd': {\r\n marginLeft: 0,\r\n },\r\n}))\r\n","// テキストフォームコントロール\r\n//\r\n\r\nimport Visibility from '@mui/icons-material/Visibility'\r\nimport VisibilityOff from '@mui/icons-material/VisibilityOff'\r\nimport { IconButton, InputAdornment } from '@mui/material'\r\nimport React, { ChangeEvent, FocusEvent, KeyboardEvent, useCallback, useMemo, useState } from 'react'\r\nimport { Control, Validate, useController } from 'react-hook-form'\r\nimport {\r\n emailValidator,\r\n katakanaValidator,\r\n passwordValidator,\r\n postalCodeValidator,\r\n requiredValidator,\r\n} from '../../../../containers/common/validator'\r\nimport { translate } from '../../../../i18n'\r\nimport { formatPostalCode } from '../../../../utils/itemFormatUtil'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\nimport { TextBoxBaseStyled } from './textBoxBaseStyled'\r\n\r\ntype TextType = 'postalCode' | 'email' | 'katakana' | 'oneTimeCode' | 'password'\r\n\r\ninterface PasswordRule {\r\n minimumLength: number\r\n requireNumbers: boolean\r\n requireUppercase: boolean\r\n requireLowercase: boolean\r\n requireSymbols: boolean\r\n temporaryPasswordValidityDays: number\r\n}\r\n\r\ninterface TextBoxProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /** 非活性とする場合true */\r\n disabled?: boolean\r\n /** 最大入力文字数 */\r\n maxLength?: number\r\n /** width: 100% にする場合true */\r\n fullWidth?: boolean\r\n /** プレースホルダ */\r\n placeholder?: string\r\n /** 入力欄左に表示するアイコン */\r\n startIcon?: React.ReactNode\r\n /** 複数行入力する場合true */\r\n multiline?: boolean\r\n /** 複数行入力する場合の最低表示行数(こちらのみの指定だと自動で高さ調整してくれる) */\r\n minRows?: number\r\n /** 複数行入力する場合の固定表示行数(設定値を超えるとスクロールバーが表示される) */\r\n rows?: number\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n /**\r\n * テキストのタイプに応じて入力値のバリデーションチェックを行います\r\n */\r\n textType?: TextType\r\n /** autocomplete属性 */\r\n autoComplete?: string\r\n /** バリデーションチェックは必須チェックのみ行うかどうか */\r\n requiredOnly?: boolean\r\n /** パスワード動的バリデーションメッセージ */\r\n passwordValidationMsg?: string\r\n /** パスワードルール */\r\n passwordRule?: PasswordRule\r\n}\r\n\r\nconst getValidators = (label: string, required?: boolean, textType?: TextType, requiredOnly?: boolean, passwordValidationMsg?: string, passwordRule?: PasswordRule) => {\r\n const validator: Record> = {}\r\n if (required) {\r\n validator.required = requiredValidator(label)\r\n }\r\n \r\n if (requiredOnly) {\r\n return validator\r\n }\r\n\r\n switch (textType) {\r\n case 'postalCode':\r\n validator.postalCode = postalCodeValidator()\r\n break\r\n case 'email':\r\n validator.email = emailValidator()\r\n break\r\n case 'katakana':\r\n validator.katakana = katakanaValidator()\r\n break\r\n case 'password':\r\n validator.password = passwordValidator(\r\n passwordValidationMsg ?? translate('system.error.validPassword'),\r\n passwordRule ?? {\r\n minimumLength: 8,\r\n requireNumbers: true,\r\n requireUppercase: true,\r\n requireLowercase: true,\r\n requireSymbols: true,\r\n temporaryPasswordValidityDays: 8,\r\n })\r\n break\r\n default:\r\n break\r\n }\r\n return validator\r\n}\r\n\r\nconst formatters: Record string> = {\r\n postalCode: (value) => formatPostalCode(value),\r\n}\r\n\r\n/**\r\n * プロパティtextTypeに対応するinputタグのtype属性値のマップ。\r\n * このマップに存在しない場合は、type属性の指定なし。\r\n * 数値のみ項目に tel を指定しているのは、numberの使い勝手が非常に悪い為、敢えて tel を指定しています。\r\n * 参考:https://qiita.com/Avocado/items/2148d3af400823f91ea5\r\n */\r\nconst textTypeToInputType: Record = {\r\n postalCode: 'tel',\r\n email: 'email',\r\n oneTimeCode: 'tel',\r\n password: 'password',\r\n}\r\n\r\n/** テキストフォームコントロール */\r\nexport const TextBox = (props: TextBoxProps) => {\r\n const { name, label, placeholder, required, maxLength, startIcon, control, textType, disabled, requiredOnly, passwordValidationMsg, passwordRule, ...through } = props\r\n\r\n const [inputType, setInputType] = useState(textType && textTypeToInputType[textType])\r\n\r\n const switchPasswordVisible = useCallback(() => {\r\n setInputType((old) => {\r\n if (old === textTypeToInputType.password) {\r\n return 'text'\r\n } else {\r\n return textTypeToInputType.password\r\n }\r\n })\r\n }, [])\r\n\r\n /**\r\n * password入力ではトリム処理は行わない\r\n * @param value 文字列\r\n * @returns 各行で末尾スペース(半角全角)を除去した文字列\r\n */\r\n const rtrimSpaceByLine = useCallback(\r\n (value: string) => {\r\n if (textType === 'password') {\r\n return value\r\n }\r\n return value.replaceAll(/[  ]+$/gm, '')\r\n },\r\n [textType]\r\n )\r\n\r\n const validate = useMemo(\r\n () => getValidators(label, required, textType, requiredOnly, passwordValidationMsg, passwordRule),\r\n [label, required, textType, requiredOnly, passwordRule]\r\n );\r\n\r\n const {\r\n field: { ref, onBlur, onChange, ...ctrlProps },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n ...(maxLength != null && {\r\n maxLength: {\r\n value: maxLength,\r\n message: translate('system.error.charactersCountOver'),\r\n }\r\n }),\r\n validate,\r\n },\r\n defaultValue: '',\r\n control,\r\n })\r\n const onChangeFormat = useCallback(\r\n (event: ChangeEvent | string) => {\r\n let value = typeof event === 'string' ? event : event.target.value\r\n const formatter = formatters[textType ?? '']\r\n if (formatter) {\r\n value = formatter(value)\r\n }\r\n onChange(value)\r\n },\r\n [onChange, textType]\r\n )\r\n const onBlurTrimEnd = useCallback(\r\n (event: FocusEvent) => {\r\n const rtrimedValue = rtrimSpaceByLine(event.target.value)\r\n onChangeFormat(rtrimedValue)\r\n onBlur()\r\n },\r\n [onBlur, onChangeFormat, rtrimSpaceByLine]\r\n )\r\n const error = getValueByNameStr(errors, name)\r\n\r\n return (\r\n {\r\n if (!through.multiline && event.key === 'Enter') {\r\n // Enterでサブミットされた場合い末尾トリムを実施\r\n const rtrimedValue = rtrimSpaceByLine(ctrlProps.value)\r\n if (rtrimedValue !== ctrlProps.value) {\r\n onChangeFormat(rtrimedValue)\r\n }\r\n }\r\n }}\r\n maxLength={maxLength}\r\n inputProps={{\r\n maxLength,\r\n }}\r\n InputProps={{\r\n ...(startIcon && {\r\n startAdornment: {startIcon},\r\n }),\r\n ...(textType === 'password' && {\r\n endAdornment: (\r\n \r\n \r\n {inputType === textTypeToInputType.password ? : }\r\n \r\n \r\n ),\r\n }),\r\n }}\r\n // *を表示する為にlabelプロパティにのみrequired適用 ※ブラウザ固有必須動作をさせないため\r\n // https://stackoverflow.com/questions/52067514/material-ui-replicating-the-required-text-field-error-message/52067539\r\n InputLabelProps={{ required }}\r\n inputRef={ref}\r\n error={!!error}\r\n helperText={error?.message}\r\n disabled={disabled}\r\n placeholder={placeholder}\r\n />\r\n )\r\n}\r\n","import { Box, styled } from '@mui/material'\nimport { ReactNode } from 'react'\n\ninterface CenterTitleProps {\n title: ReactNode\n}\n\nconst Root = styled(Box)(({ theme }) => ({\n fontSize: theme.typography.font.sizeL1,\n letterSpacing: '0.2em',\n color: theme.palette.secondary.main,\n textAlign: 'center',\n paddingTop: '20px',\n}))\n\nexport const CenterTitle = (props: CenterTitleProps) => {\n return {props.title}\n}\n","// ワンタイムパスワード入力を行う画面で共通する部分を定義\r\n//\r\n\r\nimport { Grid, styled } from '@mui/material'\r\nimport { useCallback, useEffect, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { translate, translateNode } from '../../../../i18n'\r\nimport { ButtonL } from '../buttons/buttonL'\r\nimport { CenterGItem, GItem, RowSpacerGItem } from '../grids'\r\nimport { TextBox } from '../inputs/textBox'\r\nimport { Link } from '../link'\r\nimport { faqUrl, accountTelChangeUrl } from '../../../../containers/common/constant/appUrl'\r\nimport { CenterTitle } from '../centerTitle'\r\nimport { selectAccountChangeEntry } from '../../../../containers/common/store/slices/accountChange'\r\n\r\ninterface OneTimePasswordVerificationContentProps {\r\n /**\r\n * 再送信活性化タイマーの識別子。\r\n * このプロパティが変化すると再送信リンクが非活性になり、\r\n * 活性化タイマーが再スタートする。\r\n * 値は何でもよいが、基本的にはgetNow()の値を設定\r\n */\r\n identifier: unknown\r\n /**\r\n * 再送信クリック時に呼び出される関数。\r\n * 未設定であれば、再送信リンクを表示されない。\r\n */\r\n resend?: () => void\r\n\r\n /** 案内文 */\r\n infoMessage?: string\r\n}\r\n\r\nconst ContentContainer = styled(Grid)({\r\n marginTop: '8vh',\r\n})\r\n\r\nconst InfoMessageGItem = styled(GItem)({\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-all',\r\n})\r\n\r\ninterface ResendState {\r\n identifier?: unknown\r\n disabled: boolean\r\n timeoutId?: number\r\n}\r\n\r\n// 説明文\r\nconst NoResultMessageCard = styled('div')({\r\n paddingTop: '3px',\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\n/** 活性化遅延時間(ミリ秒) */\r\nconst delayTime = 90 * 1000\r\n\r\n/**\r\n * ワンタイムパスワード入力を行う画面で共通するUI部分\r\n */\r\nexport const OneTimePasswordVerificationContent = (props: OneTimePasswordVerificationContentProps) => {\r\n const { identifier, resend, infoMessage } = props\r\n const [resendState, setResendState] = useState({ disabled: true })\r\n const changeEntry = useSelector(selectAccountChangeEntry)\r\n\r\n const delayRevitalization = useCallback(\r\n (identifier: unknown) => {\r\n if (identifier === resendState.identifier) {\r\n // 識別子がタイマー開始時と同じなら何もしない\r\n return\r\n }\r\n if (resendState.timeoutId) {\r\n window.clearTimeout(resendState.timeoutId)\r\n }\r\n setResendState({\r\n identifier,\r\n disabled: true,\r\n timeoutId: window.setTimeout(() => setResendState({ identifier, disabled: false }), delayTime),\r\n })\r\n },\r\n [resendState.timeoutId]\r\n )\r\n\r\n useEffect(() => {\r\n if (resend) {\r\n delayRevitalization(identifier)\r\n return () => window.clearTimeout(resendState.timeoutId)\r\n }\r\n }, [identifier, resend, delayRevitalization, resendState.timeoutId])\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {infoMessage && (\r\n <>\r\n \r\n \r\n \r\n \r\n {translateNode(\r\n 'identityVerification.text.infoMessage',\r\n \r\n {translate('identityVerification.text.faq')}\r\n \r\n )}\r\n {translateNode(\r\n 'identityVerification.text.infoMessage2',\r\n \r\n {translate('identityVerification.text.here')}\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {!infoMessage && \r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n changeEntry?.category === '1' ?\r\n <>{translate('system.oneTimePasswordVerificationContent.text.sendOneTimeMessageforEmail')} :\r\n <>{translate('system.oneTimePasswordVerificationContent.text.sendOneTimeMessageforTel')}\r\n }\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n {translate('system.oneTimePasswordVerificationContent.label.oneTimePassword')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n {translate('system.oneTimePasswordVerificationContent.button.confirmation')}\r\n \r\n \r\n {resend && (\r\n \r\n \r\n {translate('system.oneTimePasswordVerificationContent.text.resend')}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { memo } from 'react'\r\nimport { Redirect } from 'react-router'\r\nimport { errorUrls } from '../../../containers/common/constant/appUrl'\r\n\r\ninterface TransitionConsistencyCheckProps {\r\n check: (() => boolean) | boolean\r\n}\r\n\r\nexport const TransitionCheck = memo(function TransitionConsistencyCheck(props: TransitionConsistencyCheckProps) {\r\n const checkResult = typeof props.check === 'function' ? props.check() : props.check\r\n return checkResult ? null : (\r\n \r\n )\r\n})\r\n","import React from 'react'\r\nimport { useAction } from '../../containers/accountChangeVerification/accountChangeVerificationService'\r\nimport { accountChangeVerificationCategory } from '../../containers/common/constant/classification'\r\nimport { OneTimePasswordVerificationContent } from '../components/common/account/oneTimePasswordVerificationContent'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\n\r\nexport const AccountChangeVerification = () => {\r\n const { changeEntry, formMethods, identifier, resend, onSubmit } = useAction()\r\n if (changeEntry == null) {\r\n return \r\n }\r\n return (\r\n
\r\n \r\n \r\n )\r\n}\r\n","import {\r\n executeGet,\r\n executeGetNoResultError,\r\n executePost,\r\n executePut,\r\n executeDelete,\r\n} from '../common/apiCaller'\r\nimport {\r\n GetChildDto,\r\n GetChildrenDto,\r\n GetChildrenInputDto,\r\n PostChildInputDto,\r\n PutChildInputDto,\r\n PutChildrenDetailInputDto\r\n} from '../dto/childrenDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/children'\r\n\r\nexport const executeGetChildren = (input?: GetChildrenInputDto) => {\r\n return executeGet(apiName, apiPath, input)\r\n}\r\n\r\nexport const executeGetChild = (id: string, facilityId?: string, additionals?: string[]) => {\r\n const params: any = { facilityId }\r\n if (additionals) params.additionals = additionals\r\n return executeGetNoResultError(apiName, `${apiPath}/${id}`, params)\r\n}\r\n\r\nexport const executePutChild = (id: string, input: PutChildInputDto) => {\r\n return executePut(apiName, `${apiPath}/${id}`, input)\r\n}\r\n\r\nexport const executePostChild = (input: PostChildInputDto) => {\r\n return executePost(apiName, apiPath, input)\r\n}\r\n\r\nexport const executeDeleteChild = (id: string) => {\r\n return executeDelete(apiName, `${apiPath}/${id}`)\r\n}\r\n\r\nexport const executePutChildrenDetail = (id: string, input: PutChildrenDetailInputDto) => {\r\n return executePut(apiName, `${apiPath}/detail/${id}`, input)\r\n}","// お子さま情報に関する共通処理を定義\r\n//\r\n\r\nimport { executeGetChild, executeGetChildren } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { fromApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { castNonNullable } from '../../utils/typeUtil'\r\nimport { yesNo } from './constant/classification'\r\nimport { AllergyForGetChildDto } from '../../dataAccess/webApi/dto/childrenDto'\r\nimport { GetChildrenHospitalAdmissionDto } from '../../dataAccess/webApi/dto/childrenHospitalAdmissionDto'\r\nimport { GetChildrenEatingDto } from '../../dataAccess/webApi/dto/childrenEatingDto'\r\nimport { PredispositionForGetChildDto } from '../../dataAccess/webApi/dto/childrenPredispositionDto'\r\nimport { GetChildrenDiseaseTestDto } from '../../dataAccess/webApi/dto/childrenDiseaseTestDto'\r\nimport { GetChildrenTreatmentDto } from '../../dataAccess/webApi/dto/childrenTreatmentDto'\r\n\r\n/**\r\n * お子さま個別テーブル指定\r\n * selectコントロールで使用\r\n */\r\nexport const ADDITIONALS = {\r\n /** 入院 */\r\n HOSPITAL_ADMISSION: \"hospitalAdmission\",\r\n /** 食事 */\r\n EATING: \"eating\",\r\n /** 症状 */\r\n PREDISPOSITION: \"predisposition\",\r\n /** 検査 */\r\n DISEASE_TEST: \"diseaseTest\",\r\n /** 治療 */\r\n TREATMENT: \"treatment\",\r\n} as const\r\n\r\n/**\r\n * お子さまの選択で使用する要素に必要な情報。\r\n * selectコントロールで使用\r\n */\r\nexport interface ChildrenChoice {\r\n value: string\r\n label: string\r\n}\r\n\r\n/**\r\n * お子さまの選択で使用する要素に必要な情報。\r\n * selectコントロールで使用\r\n */\r\nexport interface InterviewedChildrenChoice {\r\n value: string\r\n label: string\r\n status: string\r\n permitFlag: string\r\n facilityId: string | null\r\n facilityName: string | null\r\n}\r\n\r\n/**\r\n * お子さま情報\r\n */\r\nexport interface Child {\r\n childId: string\r\n name: string\r\n kana: string\r\n birthday: Date\r\n brothersSistersFlag: string\r\n multipleBirthsFlag: string\r\n gender: string\r\n bloodType?: string\r\n maternalHandbookNo: string\r\n allergyFlag: string\r\n /** アレルギー1~3 */\r\n allergies: {\r\n causes?: string\r\n symptoms?: string\r\n treatments?: string\r\n concerns?: string\r\n }[]\r\n interviewPermitCount: number\r\n /** 排他チェック用の更新日時 */\r\n updateDatetime: string\r\n \r\n facilityId?: string\r\n familyHospital?: string\r\n familyHospitalTel?: string\r\n usuallyMedicines?: string\r\n usuallyMedicinesMemo?: string\r\n normallyUsedFacilities?: string\r\n normallyUsedFacilitiesType?: string\r\n normallyUsedFacilitiesTel?: string\r\n normallyUsedFacilitiesAdmission?: string\r\n normallyUsedFacilitiesStartTime?: string\r\n normallyUsedFacilitiesEndTime?: string\r\n medicalHistoryFlag?: string\r\n febrileSeizureFlag?: string\r\n diseaseFlag?: string\r\n symptomFlag?: string\r\n vaccinationFlag?: string\r\n detailUpdateDatetime?: string\r\n \r\n allergy?: AllergyForGetChildDto[]\r\n hospitalAdmission?: GetChildrenHospitalAdmissionDto[]\r\n eating?: GetChildrenEatingDto\r\n predisposition?: PredispositionForGetChildDto[]\r\n diseaseTest?: GetChildrenDiseaseTestDto[]\r\n treatment?: GetChildrenTreatmentDto[]\r\n}\r\n\r\n/**\r\n * 選択対象のお子さまに関する情報を返す。\r\n *\r\n * @param facilityId 施設ID。面談済みのお子さまのみを取得したい場合に指定する\r\n * @returns お子さま要素情報の配列\r\n */\r\nexport const getChildrenChoices = async (facilityId?: string): Promise => {\r\n const response = await executeGetChildren(...(facilityId ? [{ facilityId }] : []))\r\n return response.result.map((v) => ({ value: v.childId, label: v.name }))\r\n}\r\n\r\n/**\r\n * 面談済みのお子さまのみに関する情報を返す。\r\n * 面談未実施状態のお子さまを含める\r\n *\r\n * @param facilityId 施設ID。\r\n * @param getInterviewCrossManagementFlag 面談許可時の利用許可範囲取得フラグ。\r\n * @returns お子さま要素情報の配列\r\n */\r\nexport const getInterviewedChildrenChoices = async (\r\n facilityId: string,\r\n getInterviewCrossManagementFlag?: string\r\n): Promise => {\r\n const response = await executeGetChildren({\r\n facilityId,\r\n includeNotImplementedFlag: yesNo.yes,\r\n getLatestInterviewedFlag: yesNo.yes,\r\n getInterviewCrossManagementFlag: getInterviewCrossManagementFlag ?? yesNo.no,\r\n })\r\n\r\n // 施設ID指定した場合、statusとpermitFlgはnullおよびundefinedはありえない\r\n return response.result.map((v) => ({\r\n value: v.childId,\r\n label: v.name,\r\n status: castNonNullable(v.status),\r\n permitFlag: castNonNullable(v.permitFlag),\r\n facilityId: castNonNullable(v.facilityId),\r\n facilityName: castNonNullable(v.facilityName),\r\n }))\r\n}\r\n\r\n/**\r\n * 指定したお子さまIDのお子さま情報を返す。\r\n *\r\n * @param childId お子さまID\r\n * @param facilityId 施設ID\r\n * @param additonals 追加取得する個別テーブルの指定\r\n * @returns お子さま情報\r\n */\r\nexport const getChild = async (childId: string, facilityId?: string, additonals?: string[]): Promise => {\r\n const response = await executeGetChild(childId, facilityId, additonals)\r\n const child = response.result\r\n const allergies = [\r\n {\r\n causes: child.allergyCauses1,\r\n symptoms: child.allergySymptoms1,\r\n treatments: child.allergyTreatments1,\r\n concerns: child.allergyConcerns1,\r\n },\r\n {\r\n causes: child.allergyCauses2,\r\n symptoms: child.allergySymptoms2,\r\n treatments: child.allergyTreatments2,\r\n concerns: child.allergyConcerns2,\r\n },\r\n {\r\n causes: child.allergyCauses3,\r\n symptoms: child.allergySymptoms3,\r\n treatments: child.allergyTreatments3,\r\n concerns: child.allergyConcerns3,\r\n },\r\n ].map((v) => nullPropsToUndefined(v))\r\n\r\n return nullPropsToUndefined({\r\n childId,\r\n name: child.name,\r\n kana: child.kana,\r\n birthday: fromApiYmd(child.birthday),\r\n brothersSistersFlag: child.brothersSistersFlag,\r\n multipleBirthsFlag: child.multipleBirthsFlag,\r\n gender: child.gender,\r\n bloodType: child.bloodType,\r\n maternalHandbookNo: child.maternalHandbookNo,\r\n allergyFlag: child.allergyFlag,\r\n allergies,\r\n updateDatetime: child.updateDatetime,\r\n interviewPermitCount: child.interviewPermitCount,\r\n \r\n facilityId: child.facilityId,\r\n familyHospital: child.familyHospital,\r\n familyHospitalTel: child.familyHospitalTel,\r\n usuallyMedicines: child.usuallyMedicines,\r\n usuallyMedicinesMemo: child.usuallyMedicinesMemo,\r\n normallyUsedFacilities: child.normallyUsedFacilities,\r\n normallyUsedFacilitiesType: child.normallyUsedFacilitiesType,\r\n normallyUsedFacilitiesTel: child.normallyUsedFacilitiesTel,\r\n normallyUsedFacilitiesAdmission: child.normallyUsedFacilitiesAdmission,\r\n normallyUsedFacilitiesStartTime: child.normallyUsedFacilitiesStartTime,\r\n normallyUsedFacilitiesEndTime: child.normallyUsedFacilitiesEndTime,\r\n medicalHistoryFlag: child.medicalHistoryFlag,\r\n febrileSeizureFlag: child.febrileSeizureFlag,\r\n diseaseFlag: child.diseaseFlag,\r\n symptomFlag: child.symptomFlag,\r\n vaccinationFlag: child.vaccinationFlag,\r\n detailUpdateDatetime: child.detailUpdateDatetime,\r\n \r\n allergy: child.allergy,\r\n hospitalAdmission: child.hospitalAdmission,\r\n eating: child.eatingResult,\r\n predisposition: child.predisposition,\r\n diseaseTest: child.diseaseTest,\r\n treatment: child.treatment\r\n })\r\n}\r\n","import { executeGet, executeGetNoResultError } from '../common/apiCaller'\r\nimport { GetFacilitiesDto, GetFacilitiesInputDto, GetFacilityDto, GetFacilityInputDto, GetFacilityIdDto } from '../dto/facilitiesDto'\r\n\r\nconst apiName = 'public'\r\nconst apiPath = '/facilities'\r\n\r\nexport const resultCodeGetFacilities = {\r\n /** 検索結果件数が上限を超え、結果が上限数でカットされている */\r\n overLimit: 1,\r\n} as const\r\n\r\nexport const executeGetFacilities = async (input: GetFacilitiesInputDto) => {\r\n const response = await executeGet(apiName, apiPath, input)\r\n const coordinateNullFacilityIds: string[] = []\r\n response.result = response.result.map((facility) => {\r\n const isFixed = fixCoordinateNull(facility)\r\n if (isFixed) {\r\n coordinateNullFacilityIds.push(facility.facilityId)\r\n }\r\n return facility\r\n })\r\n if (coordinateNullFacilityIds.length) {\r\n console.error('座標null施設Id=', coordinateNullFacilityIds)\r\n }\r\n return response\r\n}\r\n\r\nexport const executeGetFacility = async (id: string, input?: GetFacilityInputDto) => {\r\n const response = await executeGetNoResultError(apiName, `${apiPath}/${id}`, input)\r\n const isFixed = fixCoordinateNull(response.result)\r\n if (isFixed) {\r\n console.error('座標null施設Id=', id)\r\n }\r\n return response\r\n}\r\n\r\nexport const executeGetFacilitiesForAgesSixOver = async () => {\r\n return executeGet(apiName, `${apiPath}/for-ages/six-over`)\r\n}\r\n\r\n/**\r\n * 開発作業に支障が出る為、座標nullは0で補完する。\r\n * ただし、座標なしの施設は存在しない前提なのでこの動作を前提としたコードを記載しないこと\r\n * 例えば、if (facility.latitude === 0) ... といった事をしない\r\n * @param facility 施設\r\n * @returns 座標nullを0で補完した場合true\r\n */\r\nconst fixCoordinateNull = (facility: T) => {\r\n let isFixed = false\r\n if (facility.latitude == null || facility.longitude == null) {\r\n facility.latitude = facility.latitude ?? 0\r\n facility.longitude = facility.longitude ?? 0\r\n isFixed = true\r\n }\r\n return isFixed\r\n}\r\n","// 施設情報に関する共通処理を定義\r\nimport { executeGetFacility } from '../../dataAccess/webApi/dao/facilitiesDao'\r\nimport { ElapsedMillisecond, toApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\n\r\n/**\r\n * 指定した施設IDの施設情報を返す。\r\n * 対象日を省略した場合は、サーバーの現在日で適用期間のマッチが行われる。\r\n *\r\n * @param facilityId 施設ID\r\n * @param targetDate 適用期間のマッチに使用する日付\r\n * @returns 施設情報\r\n */\r\nexport const getFacility = async (facilityId: string, targetDate?: Date | ElapsedMillisecond) => {\r\n const apiResponse = await executeGetFacility(\r\n facilityId,\r\n ...(targetDate ? [{ targetDate: toApiYmd(targetDate) }] : [])\r\n )\r\n const result = nullPropsToUndefined(apiResponse.result)\r\n // 画像URLは穴あきで設定される可能性があるため\r\n result.imageUrls = result.imageUrls.filter((url) => url)\r\n return result\r\n}\r\n\r\n","// エリアなどのコード、区分値の一覧、名称を取得するための関数を定義\r\n// 基本的にタブの名称以外の区分値、名称の取得はここに関数を定義して使用する\r\n//\r\n\r\nimport { executeGetAreas } from '../../dataAccess/webApi/dao/areasDao'\r\nimport { executeGetFacilityCategories } from '../../dataAccess/webApi/dao/facilityCategoriesDao'\r\nimport { executeGetProjects } from '../../dataAccess/webApi/dao/projectsDao'\r\nimport { executeGetSearchFlags } from '../../dataAccess/webApi/dao/searchFlagsDao'\r\nimport { executeGetFacilitiesForAgesSixOver } from '../../dataAccess/webApi/dao/facilitiesDao'\r\nimport { getClassificationLabel, getClassificationValueLabels } from '../../i18n'\r\nimport { ElapsedMillisecond, toApiYmd } from '../../utils/dateUtil'\r\nimport { fromNumber } from '../../utils/stringUtil'\r\nimport {\r\n accountCreateStep,\r\n age,\r\n ageTwoDigits,\r\n available,\r\n bloodType,\r\n cancelReason,\r\n covered,\r\n doNotWaitlist,\r\n facilityReservationDeleteStep,\r\n facilityLotteryReservationCancelStep,\r\n facilityReservationStep,\r\n facilitySearchSortOrder,\r\n gender,\r\n reservationStatusSearchCondition,\r\n residenceCategory,\r\n interviewReservationStep,\r\n interviewReservationStep2,\r\n interviewReservationDeleteStep,\r\n purposeOfUse,\r\n usageHistoryStatusSearchCondition,\r\n useReasonCategory,\r\n webReservation,\r\n yesNo,\r\n availabilityOfApplication,\r\n siblingsLotteryResult,\r\n} from './constant/classification'\r\n\r\n// ----- API取得系 -----\r\n// WebAPIの呼び出しが必要なもの。つまり非同期処理となるもの\r\n\r\n/**\r\n * @returns エリア一覧\r\n */\r\nexport const getAreas = async () => {\r\n const apiResponse = await executeGetAreas()\r\n return apiResponse.result.map((area) => ({ value: area.areaId, label: area.areaName }))\r\n}\r\n\r\n/**\r\n * @returns 施設種別一覧\r\n */\r\nexport const getFacilityCategories = async () => {\r\n const apiResponse = await executeGetFacilityCategories()\r\n return apiResponse.result.map((category) => ({\r\n value: category.facilityCategoryId,\r\n label: category.facilityCategoryName,\r\n }))\r\n}\r\n\r\n/**\r\n * @param targetDate 対象日付\r\n * @returns 事業一覧\r\n */\r\nexport const getProjects = async (targetDate?: Date | ElapsedMillisecond, projectCategoryId?: string) => {\r\n const apiResponse = await executeGetProjects({ targetDate: toApiYmd(targetDate) })\r\n return apiResponse.result\r\n .filter((project) => project.projectCategoryId === projectCategoryId)\r\n .map((project) => ({\r\n value: project.projectId,\r\n label: project.projectName,\r\n }))\r\n}\r\n\r\n/**\r\n * @returns 検索フラグ一覧\r\n */\r\nexport const getSearchFlags = async () => {\r\n const apiResponse = await executeGetSearchFlags()\r\n return apiResponse.result.map((flag) => ({\r\n value: fromNumber(flag.searchFlagNo),\r\n label: flag.searchFlagName,\r\n }))\r\n}\r\n\r\n// ----- ソース組み込み系 -----\r\n// WebAPIの呼び出しが不要なもの。つまり同期処理が可能なもの\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst ageKey = 'system.classification.age'\r\n/**\r\n * @returns 年齢一覧\r\n */\r\nexport const getAges = async () => {\r\n const apiResponse = await executeGetFacilitiesForAgesSixOver()\r\n\r\n const filteredAges = apiResponse.result.length === 0\r\n ? Object.values(age).filter(value => value !== '6' && value !== '7') // 条件が真の場合、class6とclass7を除外\r\n : Object.values(age); // 条件が偽の場合、すべての年齢を取得\r\n \r\n return getClassificationValueLabels(ageKey, filteredAges);\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 年齢の表示文字列\r\n */\r\nexport const getAgeLabel = (value?: string | number) => {\r\n if (value != null) {\r\n const classificationValue = typeof value === 'number' ? fromNumber(value) : value\r\n return getClassificationLabel(ageKey, classificationValue)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst ageTwoDigitsKey = 'system.classification.ageTwoDigits'\r\n/**\r\n * @returns 年齢一覧(区分値2桁表記)\r\n */\r\nexport const getAgesTwoDigits = () => {\r\n return getClassificationValueLabels(ageTwoDigitsKey, Object.values(ageTwoDigits))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 年齢の表示文字列\r\n */\r\nexport const getAgeTwoDigitsLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(ageTwoDigitsKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst useReasonCategoryKey = 'system.classification.useReasonCategory'\r\n/**\r\n * @returns 利用目的一覧\r\n */\r\nexport const getUseReasonCategories = () => {\r\n return getClassificationValueLabels(useReasonCategoryKey, Object.values(useReasonCategory))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 利用目的の表示文字列\r\n */\r\nexport const getUseReasonCategoryLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(useReasonCategoryKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst purposeOfUseKey = 'system.classification.purposeOfUse'\r\n/**\r\n * @returns 利用目的一覧\r\n */\r\nexport const getPurposeOfUses = () => {\r\n return getClassificationValueLabels(purposeOfUseKey, Object.values(purposeOfUse))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 利用目的の表示文字列\r\n */\r\nexport const getPurposeOfUseLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(purposeOfUseKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst facilitySearchSortOrderKey = 'system.classification.facilitySearchSortOrder'\r\n/**\r\n * @returns 施設検索ソート順一覧\r\n */\r\nexport const getFacilitySearchSortOrders = () => {\r\n return getClassificationValueLabels(facilitySearchSortOrderKey, Object.values(facilitySearchSortOrder))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst yesNoKey = 'system.classification.yesNo'\r\n/**\r\n * @returns 有り無し一覧\r\n */\r\nexport const getYesNos = () => {\r\n return getClassificationValueLabels(yesNoKey, Object.values(yesNo))\r\n}\r\n/**\r\n * @param key 区分値\r\n * @returns 有り無しの表示文字列\r\n */\r\nexport const getYesNoLabel = (key?: boolean | string) => {\r\n let value\r\n if (typeof key === 'string') {\r\n value = key\r\n } else {\r\n value = key ? yesNo.yes : yesNo.no\r\n }\r\n return getClassificationLabel(yesNoKey, value)\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst doNotWaitlistKey = 'system.classification.doNotWaitlist'\r\n/**\r\n * @returns する しない一覧\r\n */\r\nexport const getDoNotWaitlist = () => {\r\n return getClassificationValueLabels(doNotWaitlistKey, Object.values(doNotWaitlist))\r\n}\r\n/**\r\n * @param key 区分値\r\n * @returns する しないの表示文字列\r\n */\r\nexport const getDoNotWaitlistLabel = (key?: boolean | string) => {\r\n let value\r\n if (typeof key === 'string') {\r\n value = key\r\n } else {\r\n value = key ? doNotWaitlist.do : doNotWaitlist.not\r\n }\r\n return getClassificationLabel(doNotWaitlistKey, value)\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst httpStatusCodeKey = 'system.classification.httpStatusCode'\r\n/**\r\n * @param value 区分値\r\n * @returns HTTPステータスの表示文字列\r\n */\r\nexport const getHttpStatusCodeLabel = (value?: number) => {\r\n if (value != null) {\r\n return getClassificationLabel(httpStatusCodeKey, fromNumber(value))\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst reservationStatusKey = 'system.classification.reservationStatus'\r\n/**\r\n * @param value 区分値\r\n * @returns 利用予約情報/ステータスの表示文字列\r\n */\r\nexport const getReservationStatusLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(reservationStatusKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst lotteryReservationStatusKey = 'system.classification.lotteryReservationStatus'\r\n/**\r\n * @param value 区分値\r\n * @returns 利用予約情報/ステータスの表示文字列\r\n */\r\nexport const getLotteryReservationStatusLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(lotteryReservationStatusKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst interviewStatusKey = 'system.classification.interviewStatus'\r\n/**\r\n * @param value 区分値\r\n * @returns 面談予約情報/ステータスの表示文字列\r\n */\r\nexport const getInterviewStatusLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(interviewStatusKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst permitFlagKey = 'system.classification.permitFlag'\r\n/**\r\n * @param value 区分値\r\n * @returns 面談予約情報/利用判定の表示文字列\r\n */\r\nexport const getPermitFlagLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(permitFlagKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst genderKey = 'system.classification.gender'\r\n/**\r\n * @returns 性別一覧\r\n */\r\nexport const getGenders = () => {\r\n return getClassificationValueLabels(genderKey, Object.values(gender))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 性別の表示文字列\r\n */\r\nexport const getGenderLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(genderKey, value)\r\n }\r\n}\r\n/** i18n辞書の該当区分ルートキー */\r\nconst residenceCategoryKey = 'system.classification.residenceCategory'\r\n/**\r\n * @returns 在住種別一覧\r\n */\r\nexport const getResidenceCategorys = () => {\r\n return getClassificationValueLabels(residenceCategoryKey, Object.values(residenceCategory))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 在住種別の表示文字列\r\n */\r\nexport const getResidenceCategoryLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(residenceCategoryKey, value)\r\n }\r\n}\r\n/** i18n辞書の該当区分ルートキー */\r\nconst coveredKey = 'system.classification.covered'\r\n/**\r\n * @returns 対象・対象外一覧\r\n */\r\nexport const getCovereds = () => {\r\n return getClassificationValueLabels(coveredKey, Object.values(covered))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 対象・対象外の表示文字列\r\n */\r\nexport const getCoveredLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(coveredKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst reductionsStatusKey = 'system.classification.reductionsStatus'\r\n/**\r\n * @param value 区分値\r\n * @returns 減免適用状態の表示文字列\r\n */\r\nexport const getReductionsStatusLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(reductionsStatusKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst bloodTypeKey = 'system.classification.bloodType'\r\n/**\r\n * @returns 血液型一覧\r\n */\r\nexport const getBloodTypes = () => {\r\n return getClassificationValueLabels(bloodTypeKey, Object.values(bloodType))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 血液型の表示文字列\r\n */\r\nexport const getBloodTypeLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(bloodTypeKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst cancelReasonKey = 'system.classification.cancelReason'\r\n/**\r\n * @returns キャンセル理由一覧\r\n */\r\nexport const getCancelReasons = () => {\r\n return getClassificationValueLabels(cancelReasonKey, Object.values(cancelReason))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns キャンセル理由の表示文字列\r\n */\r\nexport const getCancelReasonLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(cancelReasonKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst accountCreateStepKey = 'system.classification.accountCreateStep'\r\n/**\r\n * @returns アカウント作成ステップ一覧\r\n */\r\nexport const getAccountCreateSteps = () => {\r\n return getClassificationValueLabels(accountCreateStepKey, Object.values(accountCreateStep))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst interviewReservationStepKey = 'system.classification.interviewReservationStep'\r\n/**\r\n * @returns 面談予約ステップ一覧\r\n */\r\nexport const getInterviewReservationSteps = () => {\r\n return getClassificationValueLabels(interviewReservationStepKey, Object.values(interviewReservationStep))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst interviewReservationStep2Key = 'system.classification.interviewReservationStep2'\r\n/**\r\n * @returns 面談予約ステップ一覧\r\n */\r\nexport const getInterviewReservationSteps2 = () => {\r\n return getClassificationValueLabels(interviewReservationStep2Key, Object.values(interviewReservationStep2))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst interviewReservationDeleteStepKey = 'system.classification.interviewReservationDeleteStep'\r\n/**\r\n * @returns 面談予約キャンセルステップ一覧\r\n */\r\nexport const getInterviewReservationDeleteSteps = () => {\r\n return getClassificationValueLabels(interviewReservationDeleteStepKey, Object.values(interviewReservationDeleteStep))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst facilityReservationStepKey = 'system.classification.facilityReservationStep'\r\n/**\r\n * @returns 施設予約ステップ一覧\r\n */\r\nexport const getFacilityReservationSteps = () => {\r\n return getClassificationValueLabels(facilityReservationStepKey, Object.values(facilityReservationStep))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst facilityReservationDeleteStepKey = 'system.classification.facilityReservationDeleteStep'\r\n/**\r\n * @returns 利用予約キャンセルステップ一覧\r\n */\r\nexport const getFacilityReservationDeleteSteps = () => {\r\n return getClassificationValueLabels(facilityReservationDeleteStepKey, Object.values(facilityReservationDeleteStep))\r\n}\r\n\r\n\r\nconst facilityLotteryReservationCancelStepKey = 'system.classification.facilityLotteryReservationCancelStep'\r\n/**\r\n * @returns 抽選予約キャンセルステップ一覧\r\n */\r\nexport const getFacilityLotteryReservationCancelSteps = () => {\r\n return getClassificationValueLabels(facilityLotteryReservationCancelStepKey, Object.values(facilityLotteryReservationCancelStep))\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst usageRecordApiStatusKey = 'system.classification.usageRecordApiStatus'\r\n/**\r\n * @param value 区分値\r\n * @returns 利用実績API独自区分の表示文字列\r\n */\r\nexport const getUsageRecordApiStatusLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(usageRecordApiStatusKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst cancelLimitHolidayOptionKey = 'system.classification.cancelLimitHolidayOption'\r\n/**\r\n * @param value 区分値\r\n * @returns キャンセル受付期限休園日オプションの表示文字列\r\n */\r\nexport const getCancelLimitHolidayOptionLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(cancelLimitHolidayOptionKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst webReservationKey = 'system.classification.webReservation'\r\n/**\r\n * @returns Web予約可否一覧\r\n */\r\nexport const getWebReservations = () => {\r\n return getClassificationValueLabels(webReservationKey, Object.values(webReservation))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns Web予約可否の表示文字列\r\n */\r\nexport const getWebReservationLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(webReservationKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst availableKey = 'system.classification.available'\r\n/**\r\n * @returns 可・不可一覧\r\n */\r\nexport const getAvailables = () => {\r\n return getClassificationValueLabels(availableKey, Object.values(available))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 可・不可の表示文字列\r\n */\r\nexport const getAvailableLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(availableKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst reservationStatusSearchConditionKey = 'system.classification.reservationStatusSearchCondition'\r\n/**\r\n * @returns 利用予約のステータスの検索条件一覧\r\n */\r\nexport const getReservationStatusSearchConditions = () => {\r\n return getClassificationValueLabels(reservationStatusSearchConditionKey, Object.values(reservationStatusSearchCondition))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 利用予約のステータスの検索条件の表示文字列\r\n */\r\nexport const getReservationStatusSearchConditionLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(reservationStatusSearchConditionKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst usageHistoryStatusSearchConditionKey = 'system.classification.usageHistoryStatusSearchCondition'\r\n/**\r\n * @returns 利用履歴のステータスの検索条件一覧\r\n */\r\nexport const getUsageHistoryStatusSearchConditions = () => {\r\n return getClassificationValueLabels(usageHistoryStatusSearchConditionKey, Object.values(usageHistoryStatusSearchCondition))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 利用履歴のステータスの検索条件の表示文字列\r\n */\r\nexport const getUsageHistoryStatusSearchConditionLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(usageHistoryStatusSearchConditionKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst availabilityOfApplicationKey = 'system.classification.availabilityOfApplication'\r\n/**\r\n * @returns 利用履歴のステータスの検索条件一覧\r\n */\r\nexport const getAvailabilityOfApplication= () => {\r\n return getClassificationValueLabels(availabilityOfApplicationKey, Object.values(availabilityOfApplication))\r\n}\r\n/**\r\n * @param value 区分値\r\n * @returns 利用履歴のステータスの検索条件の表示文字列\r\n */\r\nexport const getAvailabilityOfApplicationLabel = (value?: string) => {\r\n if (value != null) {\r\n return getClassificationLabel(availabilityOfApplicationKey, value)\r\n }\r\n}\r\n\r\n/** i18n辞書の該当区分ルートキー */\r\nconst siblingsLotteryResultReferenceFlagKey = 'system.classification.referToSiblingsLotteryResult'\r\n/**\r\n * @returns する しない一覧\r\n */\r\nexport const getSiblingsLotteryResultReferenceFlag = () => {\r\n return getClassificationValueLabels(siblingsLotteryResultReferenceFlagKey, Object.values(siblingsLotteryResult))\r\n}\r\n/**\r\n * @param key 区分値\r\n * @returns する しないの表示文字列\r\n */\r\nexport const getSiblingsLotteryResultReferenceLabel = (key?: boolean | string) => {\r\n let value\r\n if (typeof key === 'string') {\r\n value = key\r\n } else {\r\n value = key ? siblingsLotteryResult.referTo : siblingsLotteryResult.doNotReferTo\r\n }\r\n return getClassificationLabel(siblingsLotteryResultReferenceFlagKey, value)\r\n}\r\n","import { executeGet } from '../common/apiCaller'\nimport { GetAreasDto } from '../dto/areasDto'\n\nconst apiName = 'public'\nconst apiPath = '/areas'\n\nexport const executeGetAreas = () => {\n return executeGet(apiName, apiPath)\n}\n","import { executeGet } from '../common/apiCaller'\nimport { GetFacilityCategoriesDto } from '../dto/facilityCategoriesDto'\n\nconst apiName = 'public'\nconst apiPath = '/facility-categories'\n\nexport const executeGetFacilityCategories = () => {\n return executeGet(apiName, apiPath)\n}\n","import { executeGet } from '../common/apiCaller'\nimport { GetSearchFlagsDto } from '../dto/searchFlagsDto'\n\nconst apiName = 'public'\nconst apiPath = '/search-flags'\n\nexport const executeGetSearchFlags = () => {\n return executeGet(apiName, apiPath)\n}\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { NullPropsToUndefinedType, castNonNullable } from '../../utils/typeUtil'\r\nimport { ChildrenChoice, getChildrenChoices, getInterviewedChildrenChoices } from '../common/child'\r\nimport { facilityReservationSelectionCreateUrl, interviewReservationFormUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { getInterviewStatusLabel } from '../common/codeMaster'\r\nimport { interviewStatus, permitFlag } from '../common/constant/classification'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\n\r\ninterface UrlParams {\r\n facilityId: string\r\n}\r\n\r\ninterface LocationState {\r\n /** 選択した子どもID */\r\n childId?: string\r\n}\r\n\r\ninterface Inputs {\r\n childId: string\r\n}\r\n\r\ninterface PageState {\r\n facility?: NullPropsToUndefinedType\r\n uninterviewedChilds: ChildrenChoice[]\r\n childs: ChildrenChoice[]\r\n interviewedChildsAndStatus: ChildrenChoice[]\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { facilityId } = useParams()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const [isOpenInterviewChildSelect, setIsOpenInterviewChildSelect] = useState(false)\r\n const [state, setState] = useState({ uninterviewedChilds: [], childs: [], interviewedChildsAndStatus: [] })\r\n\r\n const currentLocation = history.location\r\n const locationState = currentLocation.state\r\n\r\n const formMethods = useForm({\r\n ...(locationState?.childId && {\r\n defaultValues: {\r\n childId: locationState.childId,\r\n },\r\n }),\r\n })\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const facilityWithChilds = await getFacilityWithChilds(facilityId)\r\n setState(facilityWithChilds)\r\n if (locationState?.childId == null && facilityWithChilds.childs.length) {\r\n formMethods.setValue('childId', facilityWithChilds.childs[0].value)\r\n }\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback((data: Inputs) => {\r\n const { childId } = data\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...currentLocation, state: { childId } })\r\n history.push(facilityReservationSelectionCreateUrl.url(facilityId, childId))\r\n }, [])\r\n\r\n const goInterview = useCallback(() => {\r\n setIsOpenInterviewChildSelect(true)\r\n }, [])\r\n const onCloseInterviewChildSelect = useCallback(\r\n (isCancel: boolean, childId?: string[]) => {\r\n if (isCancel) {\r\n // 選択をキャンセルした場合\r\n setIsOpenInterviewChildSelect(false)\r\n } else {\r\n console.log(castNonNullable(childId))\r\n history.push(interviewReservationFormUrl.url(facilityId))\r\n }\r\n },\r\n [history, facilityId]\r\n )\r\n\r\n const onClickTel = useCallback(() => (document.location.href = `tel:${state.facility?.tel}`), [state.facility])\r\n\r\n return {\r\n ...state,\r\n currentLocation,\r\n formMethods,\r\n isOpenInterviewChildSelect,\r\n onSubmit,\r\n onClickTel,\r\n goInterview,\r\n onCloseInterviewChildSelect,\r\n }\r\n}\r\n\r\nasync function getFacilityWithChilds(facilityId: string) {\r\n const [facility, allChilds, interviewedChilds] = await Promise.all([\r\n getFacility(facilityId),\r\n getChildrenChoices(),\r\n getInterviewedChildrenChoices(facilityId),\r\n ])\r\n\r\n //A761にて、キャンセル済お子様にラジオボタンを表示して再登録を可能にする対応を行いました。\r\n //本来SQLで修正をするところですが、お子様選択一覧画面に表示されるキャンセル済お子様のラベルに\r\n //「(キャンセル済)」のステータスを表示する対応が今後発生する可能性があり、その場合SQLの修正は不要になってしまうため画面での対応としました。\r\n\r\n //interviewedChilds(面談済みお子様)から状態:キャンセル済を除外する\r\n const exceptForChildsWithCanceledInterview = interviewedChilds.filter((v) => v.status !== interviewStatus.canceled)\r\n const interviewedChildIdSet = new Set(exceptForChildsWithCanceledInterview.map(({ value }) => value))\r\n const uninterviewedChilds = allChilds.filter(({ value }) => !interviewedChildIdSet.has(value))\r\n const childs = interviewedChilds.filter((v) => v.permitFlag === permitFlag.permitted)\r\n const interviewedChildsAndStatus = exceptForChildsWithCanceledInterview.map((v) => {\r\n let label = v.label\r\n if (v.status) {\r\n label = v.label + '(' + getInterviewStatusLabel(v.status) + ')'\r\n }\r\n return { value: v.value, label: label }\r\n })\r\n\r\n return {\r\n facility,\r\n uninterviewedChilds,\r\n childs,\r\n interviewedChildsAndStatus,\r\n }\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { ButtonContainedBase } from './buttonContainedBase'\r\n\r\n/**\r\n * primaryカラーのボタンコントロールSサイズ。\r\n */\r\nexport const ButtonS = styled(ButtonContainedBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n padding: '3px 13px',\r\n borderRadius: 8,\r\n}))\r\n","import { FormControl, FormControlLabel, FormHelperText, Radio, RadioGroup, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { translate } from '../../../../i18n'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\n\r\ninterface RadioButtonProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /** 横に並べて表示する場合true */\r\n row?: boolean\r\n /** 選択肢の値と表示文言配列 */\r\n buttonValueLabels: { value: string; label: string }[]\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n /** 読み取り専用の場合true */\r\n disabled?: boolean\r\n \r\n validation?: (value: any) => true | string\r\n}\r\n\r\nconst Root = styled(RadioGroup)(() => ({\r\n '& .MuiRadio-root': {\r\n padding: '0 9px',\r\n },\r\n}))\r\n\r\n/** ラジオボタンフォームコントロール */\r\nexport const RadioButtonGroup = (props: RadioButtonProps) => {\r\n const { name, label, required, buttonValueLabels, control, disabled, validation, ...through } = props\r\n const {\r\n field: { ref, ...ctrlProps },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n required: {\r\n value: !!required,\r\n message: translate('system.error.requiredSelection', label),\r\n },\r\n validate: (validation \r\n ? {\r\n customRule: validation\r\n }: {})\r\n },\r\n defaultValue: '',\r\n control,\r\n })\r\n\r\n const error = getValueByNameStr(errors, name)\r\n return (\r\n \r\n \r\n {buttonValueLabels.map(({ value, label }, index) => (\r\n }\r\n {...(index === 0 && { inputRef: ref })}\r\n />\r\n ))}\r\n \r\n {error && {error.message}}\r\n \r\n )\r\n}\r\n","import { Checkbox, FormControl, FormControlLabel, FormHelperText, styled } from '@mui/material'\r\nimport React, { ReactElement } from 'react'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { translate } from '../../../../i18n'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\n\r\ninterface CheckBoxProps {\r\n children: string | ReactElement\r\n name: string\r\n label: string\r\n valueAtCheck: string\r\n required?: boolean\r\n valicationMessageKeys?: Record\r\n control?: Control\r\n}\r\n\r\nconst Root = styled(FormControl)(() => ({\r\n '& .MuiCheckbox-root': {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n '& .MuiFormControlLabel-label': {\r\n lineHeight: 'normal',\r\n },\r\n}))\r\n\r\n/** チェックボックス(単独) フォームコントロール */\r\nexport const CheckBox = (props: CheckBoxProps) => {\r\n const { name, label, required, control, valueAtCheck, children } = props\r\n const messageKeys = props.valicationMessageKeys ?? {}\r\n const {\r\n field: { ref, onChange, value, ...ctrlProps },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n required: {\r\n value: !!required,\r\n message: translate(messageKeys.required ?? 'system.error.requiredSelection', label),\r\n },\r\n },\r\n defaultValue: '',\r\n control,\r\n })\r\n\r\n const error = getValueByNameStr(errors, name)\r\n\r\n return (\r\n \r\n onChange(checked ? valueAtCheck : '')}\r\n inputRef={ref}\r\n label={children}\r\n control={}\r\n />\r\n {error && {error.message}}\r\n \r\n )\r\n}\r\n","import { Stack, styled, FormHelperText } from '@mui/material'\r\nimport { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { ChildrenChoice } from '../../../containers/common/child'\r\nimport { translate } from '../../../i18n'\r\nimport { ButtonOutlinedS } from '../common/buttons/buttonOutlinedS'\r\nimport { ButtonS } from '../common/buttons/buttonS'\r\nimport { Dialog } from '../common/dialog'\r\nimport { GContainer, GItem } from '../common/grids'\r\nimport { RadioButtonGroup } from '../common/inputs/radioButtonGroup'\r\nimport { Link } from '../common/link'\r\nimport { useHistory } from 'react-router'\r\nimport { memberAddChildUrl } from '../../../containers/common/constant/appUrl'\r\nimport { CheckBox } from '../common/inputs/checkBox'\r\nimport { yesNo } from '../../../containers/common/constant/classification'\r\n\r\ninterface ChildSelectDialogProps {\r\n isOpen: boolean\r\n onClose: (isCancel: boolean, childId?: string[]) => void\r\n childs: ChildrenChoice[]\r\n interviewedChildsAndStatus: ChildrenChoice[]\r\n isShowToNextButton?: boolean\r\n isInterviewBulkReception?: string\r\n}\r\n\r\ninterface Inputs {\r\n activeChildIds: string[]\r\n}\r\n\r\nconst MessageBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nconst InterviewedChildsAndStatusItem = styled(GItem)({\r\n marginBottom: '5px',\r\n marginLeft: '3.1rem',\r\n})\r\n\r\nconst ErrorMessageItem = styled(FormHelperText)({\r\n color: '#c53030',\r\n})\r\n\r\nexport const ChildSelectDialog = (props: ChildSelectDialogProps) => {\r\n const history = useHistory()\r\n const formMethods = useForm()\r\n const [errMsg, setErrMsg] = useState('')\r\n\r\n useEffect(() => {\r\n //formMethods.reset({ activeChildIds: props.childs[0]?.value })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.isOpen])\r\n\r\n const close = useCallback(\r\n (isCancel: boolean, childIds?: string[]) => {\r\n props.onClose(isCancel, childIds)\r\n },\r\n [props]\r\n )\r\n const cancel = useCallback(() => {\r\n close(true)\r\n }, [close])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n if (props.isInterviewBulkReception === yesNo.yes) {\r\n const selectChildIds = data.activeChildIds.filter((v: string) => { return v.length })\r\n if (!selectChildIds.length) {\r\n setErrMsg(translate('system.error.requiredSelection', 'お子さま'))\r\n } else if (selectChildIds.length > 5) {\r\n setErrMsg(translate('system.error.limitOverInterviews'))\r\n } else {\r\n close(false, data.activeChildIds)\r\n }\r\n } else {\r\n close(false, data.activeChildIds)\r\n }\r\n },\r\n [close]\r\n )\r\n const goAddChild = useCallback(() => {\r\n history.push(memberAddChildUrl.url(), { completionTo: history.location })\r\n }, [history])\r\n\r\n const interviewedChildsAndStatusConstents = props.interviewedChildsAndStatus.map((v) => (\r\n \r\n {v.label}\r\n \r\n ))\r\n\r\n return (\r\n \r\n {translate('system.button.back')}\r\n {props.isShowToNextButton && (\r\n {translate('accountConfirmation.button.toNext')}\r\n )}\r\n \r\n }\r\n >\r\n \r\n {translate('accountConfirmation.text.childSelectDialogMessage')}\r\n \r\n {interviewedChildsAndStatusConstents}\r\n \r\n {props.isInterviewBulkReception === yesNo.yes? \r\n (\r\n <>\r\n {\r\n props.childs.map((child:{ label: string, value: string }, index:number) => {\r\n return (\r\n  \r\n \r\n {child.label}\r\n \r\n \r\n )\r\n })\r\n }\r\n {\r\n errMsg && ({errMsg})\r\n }\r\n \r\n ):(\r\n \r\n \r\n \r\n )\r\n }\r\n \r\n \r\n \r\n \r\n \r\n + {translate('accountConfirmation.text.addChild')}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface SizeLabelBaseProps {\r\n children: ReactNode\r\n className?: string\r\n isFontWeightRegular?: boolean\r\n}\r\n\r\nconst Root = styled('span', { shouldForwardProp: (prop) => prop !== 'isFontWeightRegular' })<{\r\n isFontWeightRegular?: boolean\r\n}>(({ theme, isFontWeightRegular }) => ({\r\n ...(isFontWeightRegular && {\r\n fontWeight: theme.typography.fontWeightRegular,\r\n }),\r\n}))\r\n\r\nexport const SizeLabelBase = (props: SizeLabelBaseProps) => {\r\n return (\r\n \r\n {props.children}\r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { SizeLabelBase } from './sizeLabelBase'\r\n\r\n/**\r\n * 色の指定は敢えてしていない。もしエラー色にしたい場合は、などで囲う\r\n */\r\nconst Root = styled(SizeLabelBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeS,\r\n}))\r\n\r\n/** 注釈などの小さく表示する際に使うラベルコントロール */\r\nexport const AnnotationLabel = Root\r\n","import { styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface AttentionLabelProps {\r\n children: ReactNode\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n}\r\n\r\nconst Root = styled('span')(({ theme }) => ({\r\n color: theme.palette.error.main,\r\n}))\r\n\r\n/** 注目させたい文言に使用する赤字のラベルコントロール */\r\nexport const AttentionLabel = (props: AttentionLabelProps) => {\r\n return {props.children}\r\n}\r\n","import { useCallback } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { translate } from '../../../../i18n'\r\nimport { ButtonOutlinedResponsive } from './buttonOutlinedResponsive'\r\n\r\ninterface BackButtonProps {\r\n className?: string\r\n}\r\n\r\n/**\r\n * 戻るボタン。\r\n * 画面下部に配置する戻るボタンには、基本的にこのコントロールを使用する\r\n */\r\nexport const BackButton = (props: BackButtonProps) => {\r\n const history = useHistory()\r\n const goBack = useCallback(() => history.goBack(), [])\r\n\r\n return (\r\n \r\n {translate('system.button.back')}\r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\nimport { ButtonBase } from './buttonBase'\n\n/**\n * infoカラーのボタンコントロール基本部分。\n */\nexport const ButtonOutlinedInfoBase = styled(ButtonBase)(({ theme }) => ({\n borderStyle: 'solid',\n borderColor: theme.palette.primary.main,\n backgroundColor: theme.palette.info.main,\n '&:hover': {\n backgroundColor: theme.palette.info.dark,\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: theme.palette.info.main,\n },\n },\n}))\n","import { styled } from '@mui/system'\nimport { ButtonOutlinedInfoBase } from './buttonOutlinedInfoBase'\n\n/**\n * infoカラーのボタンコントロールLサイズ。\n */\nexport const ButtonOutlinedInfoL = styled(ButtonOutlinedInfoBase)(({ theme }) => ({\n fontSize: theme.typography.font.sizeL1,\n padding: '14px 14px',\n borderWidth: 4,\n}))\n","import { styled } from '@mui/material'\r\nimport { ButtonBase } from './buttonBase'\r\n\r\n/**\r\n * warningカラーのボタンコントロール基本部分。\r\n */\r\nexport const ButtonOutlinedWarningBase = styled(ButtonBase)(({ theme }) => ({\r\n borderStyle: 'solid',\r\n borderColor: theme.palette.primary.main,\r\n backgroundColor: theme.palette.warning.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.warning.dark,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.warning.main,\r\n },\r\n },\r\n}))\r\n","import { styled } from '@mui/system'\r\nimport { ButtonOutlinedWarningBase } from './buttonOutlinedWarningBase'\r\n\r\n/**\r\n * warningカラーのボタンコントロールLサイズ。\r\n */\r\nexport const ButtonOutlinedWarningL = styled(ButtonOutlinedWarningBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n padding: '14px 14px',\r\n borderWidth: 4,\r\n}))\r\n","import { Box, styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface InfoCardProps {\r\n children: ReactNode\r\n className?: string\r\n}\r\n\r\nconst Root = styled(Box)(({ theme }) => ({\r\n borderRadius: 4,\r\n backgroundColor: theme.palette.white.main,\r\n border: `6px solid ${theme.palette.info.main}`,\r\n width: '100%',\r\n padding: '20px',\r\n}))\r\n\r\nexport const InfoCard = (props: InfoCardProps) => {\r\n return {props.children}\r\n}\r\n","import { MenuItem, Select as MuiSelect, SelectChangeEvent, SelectProps, styled } from '@mui/material'\r\nimport React, { ElementType, Ref, forwardRef } from 'react'\r\n\r\ninterface SelectNoBindProps {\r\n /** width: 100% にする場合true */\r\n fullWidth?: boolean\r\n /** 選択肢の値と表示文言配列 */\r\n valueLabels: { value: string; label: string }[]\r\n\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n /**\r\n * 選択要素のコンポーネント。\r\n * 指定が無ければ {@link SelectItem} を使用する\r\n */\r\n itemComponent?: ElementType\r\n\r\n /** name属性 */\r\n name?: string\r\n /** 選択状態の選択肢の値 */\r\n value?: string\r\n /** エラー表示する場合true */\r\n error?: boolean\r\n /** 選択が変更された時に呼び出される関数 */\r\n onChange?: (event: SelectChangeEvent, child: React.ReactNode) => void\r\n /** フォーカスアウトした時に呼び出される関数 */\r\n onBlur?: React.FocusEventHandler\r\n /**\r\n * 選択なしを示す項目を自動的に表示するための制御プロパティ。\r\n * multiple指定時:選択肢が複数あれば表示\r\n * always指定時:選択肢の数によらず常に表示\r\n */\r\n includeNone?: 'multiple' | 'always'\r\n /** 選択なしを示す項目の表示文言 */\r\n noneLable?: string\r\n /** 非活性にする場合true */\r\n disabled?: boolean\r\n}\r\n\r\nconst RootBase: (props: SelectProps) => JSX.Element = MuiSelect\r\nconst Root = styled(RootBase)(({ theme }) => ({\r\n fontWeight: theme.typography.fontWeightMedium,\r\n '& .MuiSelect-select': {\r\n padding: '4px 8px',\r\n },\r\n}))\r\nexport const SelectItem = styled(MenuItem)(({ theme }) => ({\r\n fontWeight: theme.typography.fontWeightMedium,\r\n}))\r\n\r\n/** セレクトコントロール */\r\nexport const SelectNoBind = forwardRef(function SelectNoBind(props: SelectNoBindProps, ref: Ref) {\r\n const { valueLabels, onChange, includeNone, noneLable, value, itemComponent, ...through } = props\r\n const isShown = includeNone === 'always' || (includeNone === 'multiple' && valueLabels.length > 1)\r\n\r\n const CustomItem = itemComponent ?? SelectItem\r\n return (\r\n \r\n {isShown && {noneLable ?? <> }}\r\n {valueLabels.map((valueLabel) => (\r\n \r\n {valueLabel.label}\r\n \r\n ))}\r\n \r\n )\r\n})\r\n","import { FormControl, FormHelperText } from '@mui/material'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { translate } from '../../../../i18n'\r\nimport { SelectNoBind } from './selectNoBind'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\n\r\nexport type ValueLabels = { value: string; label: string };\r\ninterface SelectProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /** width: 100% にする場合true */\r\n fullWidth?: boolean\r\n /** 選択肢の値と表示文言配列 */\r\n valueLabels: ValueLabels[]\r\n /**\r\n * 選択なしを示す項目を自動的に表示するための制御プロパティ。\r\n * multiple指定時:選択肢が複数あれば表示\r\n * always指定時:選択肢の数によらず常に表示\r\n */\r\n includeNone?: 'multiple' | 'always'\r\n /** 選択なしを示す項目の表示文言 */\r\n noneLable?: string\r\n /** 非活性にする場合true */\r\n disabled?: boolean\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n}\r\n\r\n/** セレクトフォームコントロール */\r\nexport const Select = (props: SelectProps) => {\r\n const { name, label, required, control, ...through } = props\r\n const {\r\n field,\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n required: {\r\n value: !!required,\r\n message: translate('system.error.requiredSelection', label),\r\n },\r\n },\r\n defaultValue: '',\r\n control,\r\n })\r\n\r\n const error = getValueByNameStr(errors, props.name);\r\n\r\n return (\r\n \r\n \r\n {error && {error.message}}\r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { SizeLabelBase } from './sizeLabelBase'\r\n\r\n/**\r\n * 色の指定は敢えてしていない。もしエラー色にしたい場合は、などで囲う\r\n */\r\nconst Root = styled(SizeLabelBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n}))\r\nexport const TitleLabel = Root\r\n","import { Stack, styled } from '@mui/material'\r\nimport { useAction } from '../../containers/accountConfirmation/accountConfirmationService'\r\nimport { preinterviewAccept, yesNo } from '../../containers/common/constant/classification'\r\nimport { translate } from '../../i18n'\r\nimport { ChildSelectDialog } from '../components/accountConfirmation/childSelectDialog'\r\nimport { AnnotationLabel } from '../components/common/annotationLabel'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedInfoL } from '../components/common/buttons/buttonOutlinedInfoL'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { GContainer, GItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { Select } from '../components/common/inputs/select'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { TitleLabel } from '../components/common/titleLabel'\r\n\r\nconst ContentBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nconst preinterviewAcceptWebs: readonly string[] = [preinterviewAccept.telWeb, preinterviewAccept.web] as const\r\nconst preinterviewAcceptTels: readonly string[] = [preinterviewAccept.telWeb, preinterviewAccept.tel] as const\r\n\r\nexport const AccountConfirmation = () => {\r\n const {\r\n facility,\r\n uninterviewedChilds,\r\n childs,\r\n interviewedChildsAndStatus,\r\n formMethods,\r\n isOpenInterviewChildSelect,\r\n onSubmit,\r\n onClickTel,\r\n goInterview,\r\n onCloseInterviewChildSelect,\r\n } = useAction()\r\n\r\n if (facility == null) {\r\n return null\r\n }\r\n const isPreinterviewAcceptWeb = preinterviewAcceptWebs.includes(facility.preinterviewAcceptFlag)\r\n const isPreinterviewAcceptTel = preinterviewAcceptTels.includes(facility.preinterviewAcceptFlag)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {facility.facilityName}\r\n \r\n
\r\n\r\n {!!childs.length && (\r\n <>\r\n \r\n {translate('accountConfirmation.text.finishedInterviewContent')}\r\n
\r\n \r\n \r\n \r\n {facility.reservationAcceptFlag === yesNo.yes ? (\r\n \r\n {translate('accountConfirmation.button.facilityReservationSelection')}\r\n \r\n ) : (\r\n \r\n \r\n
{translate('accountConfirmation.button.telReservation')}
\r\n
\r\n {`(${facility.tel})`}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n {translate('accountConfirmation.text.notFinishedInterviewContent')}\r\n \r\n \r\n {isPreinterviewAcceptWeb && (\r\n \r\n \r\n
{translate('accountConfirmation.button.webInterview')}
\r\n
\r\n \r\n {translate('accountConfirmation.button.webInterviewAnnotation')}\r\n \r\n
\r\n
\r\n
\r\n )}\r\n {isPreinterviewAcceptTel && (\r\n \r\n \r\n
{translate('accountConfirmation.button.telInterview')}
\r\n
\r\n {`(${facility.tel})`}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { Dispatch, SetStateAction } from 'react'\r\nimport { unstable_batchedUpdates } from 'react-dom'\r\nimport {\r\n FieldPath,\r\n FieldPathValue,\r\n FieldValues,\r\n SetValueConfig,\r\n UnpackNestedValue,\r\n UseFormReturn,\r\n} from 'react-hook-form'\r\nimport { toInt } from './stringUtil'\r\n\r\ntype DipatchValue = T extends Dispatch> ? V : never\r\ntype Task = () => void\r\nexport class ReactBatchUpdater {\r\n tasks = [] as Task[]\r\n\r\n add(task: Task) {\r\n this.tasks.push(task)\r\n }\r\n\r\n addSetter>>(setter: T, value: DipatchValue) {\r\n this.add(() => setter(value))\r\n }\r\n\r\n execute(lastTask?: Task) {\r\n unstable_batchedUpdates(() => {\r\n this.tasks.forEach((task) => task())\r\n if (lastTask) {\r\n lastTask()\r\n }\r\n })\r\n }\r\n}\r\n\r\n/**\r\n * 対象フィールドへの値の設定とエラークリアを行う\r\n * @param methods useFormの値\r\n * @param name 対象フィールド名\r\n * @param value 設定する値\r\n * @param options オプション\r\n */\r\nexport const setFormValueClearError = >(\r\n methods: UseFormReturn,\r\n name: TFieldName,\r\n value: UnpackNestedValue>,\r\n options?: SetValueConfig\r\n) => {\r\n methods.setValue(name, value, options)\r\n methods.clearErrors(name)\r\n}\r\n\r\n/**\r\n * 対象フィールドへのエラー設定を行う\r\n * @param methods useFormの値\r\n * @param errors 設定するフィールドエラー情報の配列\r\n */\r\nexport const setFormErrors = >(\r\n methods: UseFormReturn,\r\n errors: { name: TFieldName; message: string }[]\r\n) => {\r\n errors.forEach(({ name, message }, index) => methods.setError(name, { message }, { shouldFocus: index === 0 }))\r\n}\r\n\r\n/**\r\n * 対象フィールドへのエラー設定を遅延実行する\r\n * ※タブ画面などでタブがアクティブになってからフォーカス設定させるため\r\n * @param methods useFormの値\r\n * @param errors 設定するフィールドエラー情報の配列\r\n */\r\nexport const delayedSetFormErrors = >(\r\n methods: UseFormReturn,\r\n errors: { name: TFieldName; message: string }[]\r\n) => {\r\n setTimeout(() => {\r\n setFormErrors(methods, errors)\r\n }, 0)\r\n}\r\n\r\n/**\r\n * 指定したファイル(url)をダウンロードさせる。\r\n * @param fileUrl ファイルのURL\r\n * @param fileName 指定したファイル名でダウンロードさせたい場合に指定する\r\n */\r\nexport const downloadFile = (fileUrl: string, fileName?: string) => {\r\n const a = document.createElement('a')\r\n a.href = fileUrl\r\n if (fileName) {\r\n a.download = fileName\r\n }\r\n a.click()\r\n a.remove()\r\n}\r\n\r\n/**\r\n * 入力項目nameから該当要素が属するタブのタブValueを抽出し、配列にして返す\r\n * @param names 入力項目nameの配列\r\n * @returns タブValue配列(昇順)\r\n */\r\nexport const getTabValuesByName = (names: string[]) => {\r\n return names\r\n .map((name) => {\r\n const tabPanel = document.querySelector(`[name=${name}]`)?.closest('[role=tabpanel]')\r\n let tabValue\r\n if (tabPanel instanceof HTMLDivElement) {\r\n tabValue = toInt(tabPanel.dataset.tabValue)\r\n }\r\n return tabValue ?? Number.MAX_VALUE\r\n })\r\n .sort((a, b) => a - b)\r\n}\r\n\r\n/**\r\n * ウィンドウを開く\r\n * @param url URL\r\n * @param target openのtargetへ指定する値。デフォルト_blank\r\n */\r\nexport const openWindow = (url: string, target: string = '_blank') => {\r\n window.open(url, target)\r\n}\r\n\r\n/**\r\n * ウィンドウを閉じる\r\n */\r\nexport const closeWindow = () => {\r\n window.close()\r\n}\r\n","import { Box, styled } from '@mui/material'\r\nimport React from 'react'\r\n\r\ninterface ErrorMessageCardProps {\r\n messages: (string | undefined | null)[]\r\n}\r\n\r\nconst Root = styled(Box)(({ theme }) => ({\r\n color: theme.palette.error.main,\r\n backgroundColor: theme.palette.errorPale.main,\r\n padding: theme.spacing(1),\r\n borderRadius: 8,\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n '& ul': {\r\n margin: 0,\r\n padding: 0,\r\n },\r\n '& li': {\r\n listStyle: 'none',\r\n display: 'flex',\r\n alignItems: 'baseline',\r\n whiteSpace: 'pre-wrap',\r\n '&::before': {\r\n content: '\"・\"',\r\n },\r\n },\r\n}))\r\n\r\n/**\r\n * エラーメッセージ表示カードコントロール。\r\n * エラーメッセージ表示が一体となっていない入力コントロールで発生したエラーメッセージや\r\n * 入力項目間の関連チェック、サーバー側でのチェックでエラーが発生した場合に\r\n * その内容を表示する為に使用する\r\n */\r\nexport const ErrorMessageCard = (props: ErrorMessageCardProps) => {\r\n const messages = props.messages.filter((message) => message)\r\n return messages.length ? (\r\n \r\n
    \r\n {messages.map((message) => (\r\n
  • {message}
  • \r\n ))}\r\n
\r\n
\r\n ) : null\r\n}\r\n","import { styled, Theme } from '@mui/material'\r\nimport React from 'react'\r\n\r\ninterface StepBarProps {\r\n activeStepValue?: string\r\n stepValueLabels: { value: string; label: string }[]\r\n}\r\n\r\n// 三角のボーダーは高さを固定で指定する必要があるため、関連するサイズは全てremで記載した。\r\nconst Root = styled('ul')(({ theme }) => ({\r\n display: 'flex',\r\n listStyle: 'none',\r\n overflow: 'hidden',\r\n padding: '0 0.8rem 0 0',\r\n fontSize: theme.typography.font.sizeS,\r\n [theme.breakpoints.up('sm')]: {\r\n fontSize: theme.typography.font.sizeM,\r\n },\r\n color: theme.palette.primary.contrastText,\r\n}))\r\nconst stepBorderStyles = {\r\n content: '\"\"',\r\n position: 'absolute',\r\n top: '-2.5rem',\r\n borderWidth: '5rem 0 5rem 2.2rem',\r\n borderStyle: 'solid',\r\n zIndex: 10,\r\n}\r\nconst getActiveColor = (theme: Theme, isActive: boolean) =>\r\n isActive ? theme.palette.primary.main : theme.palette.primary.light\r\n\r\nconst StepItem = styled('li', { shouldForwardProp: (prop) => prop !== 'isFirst' && prop !== 'isActive' })<{\r\n isFirst: boolean\r\n isActive: boolean\r\n}>(({ theme, isFirst, isActive }) => ({\r\n position: 'relative',\r\n flex: '1',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n padding: '0.5rem 1.6rem',\r\n paddingRight: '0.4rem',\r\n ...(isFirst && {\r\n paddingLeft: '0.6rem',\r\n }),\r\n height: '5rem',\r\n backgroundColor: getActiveColor(theme, isActive),\r\n '&::before': {\r\n right: '-1.1rem',\r\n borderColor: `transparent transparent transparent ${theme.palette.white.light}`,\r\n ...stepBorderStyles,\r\n },\r\n '&::after': {\r\n right: '-0.7rem',\r\n borderColor: `transparent transparent transparent ${getActiveColor(theme, isActive)}`,\r\n ...stepBorderStyles,\r\n },\r\n}))\r\nconst ValueLabel = styled('div')({\r\n zIndex: 11,\r\n})\r\nconst ValueLabelSpace = styled('div')({\r\n width: '5px',\r\n})\r\n\r\nexport const StepBar = (props: StepBarProps) => {\r\n return (\r\n \r\n {props.stepValueLabels.map(({ value, label }, index) => (\r\n \r\n {value}\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n )\r\n}\r\n","import { Stack, styled } from '@mui/material'\r\nimport { Redirect } from 'react-router'\r\nimport { useAction } from '../../containers/accountCreateCompletion/accountCreateCompletionService'\r\nimport { getAccountCreateSteps } from '../../containers/common/codeMaster'\r\nimport { identityVerificationUrl, rootUrl, faqUrl } from '../../containers/common/constant/appUrl'\r\nimport { accountCreateStep } from '../../containers/common/constant/classification'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { GContainer, GItem, GItemContainer, RowSpacerGItem } from '../components/common/grids'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { StepBar } from '../components/common/stepBar'\r\nimport { Link } from '../components/common/link'\r\n\r\nconst SubMessageGItem = styled(GItem)({\r\n whiteSpace: 'pre-wrap',\r\n})\r\nconst MainMessageLabel = styled('span')(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL2,\r\n}))\r\n\r\nexport const AccountCreateCompletion = () => {\r\n const { isVerifiedEmail, formMethods, resendEmailResultCode, onSubmit } = useAction()\r\n\r\n if (isVerifiedEmail) {\r\n return \r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('accountCreateCompletion.text.mainMessage')}\r\n \r\n \r\n\r\n {translate('accountCreateCompletion.text.subMessageMail')}\r\n \r\n \r\n {translate('accountCreateCompletion.text.subMessageQaLinkPrefix')}\r\n {translate('accountCreateCompletion.text.subMessageQaLink')}\r\n {translate('accountCreateCompletion.text.subMessageQaLinkSuffix')}\r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateCompletion.label.email')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateCompletion.label.emailConfirmation')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!resendEmailResultCode && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('accountCreateCompletion.button.resend')}\r\n \r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { useCallback, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { setFormErrors } from '../../utils/reactUtil'\r\nimport { translate } from '../../i18n'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { executePutAccountIdentityVerifyResendEmail } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { getSessionAccessToken } from '../../utils/authUtil'\r\nimport { selectIsVerifiedEmail } from '../common/store/slices/authority'\r\n\r\ninterface Inputs {\r\n email: string\r\n emailConfirmation: string\r\n}\r\ntype InputTypePropName = keyof Inputs\r\n\r\nexport const useAction = () => {\r\n const dispatch = useDispatch()\r\n const errorHandle = useErrorHandle()\r\n\r\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\r\n\r\n const formMethods = useForm()\r\n\r\n const [resendEmailResultCode, setResendEmailResultCode] = useState()\r\n\r\n /**\r\n * 項目間などの入力値妥当性検査\r\n * @param data 入力値\r\n * @returns エラーが存在する場合true\r\n */\r\n const validateItems = useCallback(\r\n (data: Inputs) => {\r\n const errors: { name: InputTypePropName; message: string }[] = []\r\n\r\n if (data.email !== data.emailConfirmation) {\r\n errors.push({\r\n name: 'emailConfirmation',\r\n message: translate('system.error.notSameEmail'),\r\n })\r\n }\r\n\r\n setFormErrors(formMethods, errors)\r\n\r\n return !!errors.length\r\n },\r\n [formMethods]\r\n )\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n setResendEmailResultCode(undefined)\r\n if (validateItems(data)) {\r\n return\r\n }\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const resp = await executePutAccountIdentityVerifyResendEmail({\r\n accessToken: await getSessionAccessToken(),\r\n email: data.email,\r\n })\r\n if (resp.resultCode) {\r\n // 送信失敗時\r\n setResendEmailResultCode(resp.resultCode)\r\n } else {\r\n // 送信成功時\r\n dispatch(notifyMessage(translate('accountCreateCompletion.success.resendEmail')))\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [dispatch, errorHandle, validateItems]\r\n )\r\n\r\n return { isVerifiedEmail, formMethods, resendEmailResultCode, onSubmit }\r\n}\r\n","import { executeGet, executePost } from '../common/apiCaller'\nimport { GetCategoryMstDto, PostCategoryMstDto, PostCategoryMstInputDto } from '../dto/categoryMstDto'\n\nconst apiName = 'public'\nconst apiPath = '/category'\n\nexport const SpecifyMasterType = {\n /** 既往症マスタ */\n MEDICAL_HISTORY: \"1\",\n /** 病気マスタ */\n DISEASE: \"2\",\n /** 症状マスタ */\n SYMPTOM: \"3\",\n /** 予防接種マスタ */\n VACCINATION: \"4\"\n \n} as const\n\nexport const executeGetCategory = (projectId: string , category: string) => {\n return executeGet(apiName, `${apiPath}/${projectId}/${category}`)\n}\n\nexport const executeGetCategorySpecifyMaster = (masterType: string, projectId: string, category: string) => {\n const specifyApiPath = '/category-specify-Master'\n return executeGet(apiName, `${specifyApiPath}/${masterType}/${projectId}/${category}`)\n}\n\nexport const executePostCategory = (input: PostCategoryMstInputDto) => {\n return executePost(apiName, apiPath, input)\n}","// 項目情報に関する共通処理を定義\r\n\r\nimport { executePostCategory, executeGetCategorySpecifyMaster } from '../../dataAccess/webApi/dao/categoryMstDao'\r\nimport { GetCategoryMstDto, GetCategorySpecifyMasterInputDto, PostCategoryMstDto, PostCategoryMstInputDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { Flag } from '../../containers/common/constant/classification'\r\n\r\nexport { SpecifyMasterType } from '../../dataAccess/webApi/dao/categoryMstDao'\r\n\r\nexport const FIELD_TYPE = {\r\n RADIO: '1',\r\n CHECK_BOX: '2',\r\n ONE_LINE: '3',\r\n MULTI_LINE: '4',\r\n NUMBER: '5',\r\n DECIMAL: '6',\r\n DATE: '7'\r\n} as const\r\n\r\n/**\r\n * 項目一覧を返す。\r\n *\r\n * @param input\r\n * @returns 項目一覧\r\n */\r\nexport const getCategories = async (input: PostCategoryMstInputDto): Promise => {\r\n const response = await executePostCategory(input)\r\n\r\n return response.result\r\n}\r\n\r\n/**\r\n * \r\n * 項目一覧(専用マスタ用)を返す。\r\n *\r\n * @param input\r\n * @returns 項目(専用マスタ用一覧\r\n */\r\nexport const getCategorySpecifyMasters = async (input: GetCategorySpecifyMasterInputDto): Promise => {\r\n const response = await executeGetCategorySpecifyMaster(input.masterType, input.projectId, input.category)\r\n\r\n return response.result\r\n}\r\n\r\n/**\r\n * \r\n * Flagを存在チェック表示用テキストに変換する\r\n *\r\n * @param input\r\n * @returns 存在チェック表示用テキスト\r\n */\r\nexport const getYesNoText = (categoryMst: GetCategoryMstDto, value: string | undefined): string => {\r\n if (value == null) return '登録なし'\r\n return value === Flag.ON ? categoryMst.checkTextYes ?? 'あり'\r\n : categoryMst.checkTextNo ?? 'なし'\r\n}","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePostUserAccount } from '../../dataAccess/webApi/dao/userAccountDao'\r\nimport { getAuthenticatedUser, signIn, verifyEmail, verifyTel } from '../../utils/authUtil'\r\nimport { toApiYmd } from '../../utils/dateUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { translate } from '../../i18n'\r\nimport { accountCreateCompletionUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { AccountCreateEntry, clearAccountCreate, selectAccountCreateEntry } from '../common/store/slices/accountCreate'\r\nimport { notifyMessage } from '../common/store/slices/application'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { detectLoginStatus, setIsOTPAuthenticated } from '../common/store/slices/authority'\r\nimport { executePutAccountAuthentication } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { getCategories } from '../common/category'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\n\r\nexport const useAction = () => {\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'maternalHandbookNo',\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const accountEntry = useSelector(selectAccountCreateEntry)\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const [userAccountResultCode, setUserAccountResultCode] = useState()\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n\r\n useEffect(() => {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS}) // 施設を特定できないため事業IDは'1'で固定\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const register = useCallback(() => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (accountEntry == null) {\r\n // 入力値なしで表示不可。型ガードの為の分岐\r\n return\r\n }\r\n const isSsoLink = accountEntry.email === accountEntry.ssoLinkedParams?.email\r\n const resp = await postUserAccount(accountEntry, isSsoLink)\r\n if (resp.resultCode) {\r\n // 登録失敗時\r\n setUserAccountResultCode(resp.resultCode)\r\n } else {\r\n // 登録成功時\r\n \r\n // ログイン\r\n await signIn(accountEntry.email, accountEntry.password)\r\n\r\n const user = await getAuthenticatedUser()\r\n const userId = user.attributes.sub\r\n await executePutAccountAuthentication({ userId, loginFlag: '1'})\r\n dispatch(setIsOTPAuthenticated(true)) \r\n \r\n if (isSsoLink && sysCtrl.ssoEmailCertificationFlag === yesNo.no) {\r\n if (sysCtrl.phoneCertificationFlag === yesNo.no) {\r\n dispatch(notifyMessage(translate('accountCreateConfirmation.success.accountRegist')))\r\n\r\n } else if (sysCtrl.smsSubscriptionFlag === '1' && sysCtrl.phoneCertificationFlag === '1') {\r\n // 電話番号認証開始\r\n await verifyTel()\r\n dispatch(notifyMessage(translate('system.success.sendOneTimePassword')))\r\n }\r\n } else {\r\n // メールアドレス認証開始\r\n await verifyEmail()\r\n }\r\n\r\n await dispatch(detectLoginStatus())\r\n\r\n dispatch(clearAccountCreate())\r\n history.push(accountCreateCompletionUrl.url())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [dispatch, errorHandle, accountEntry, history, sysCtrl])\r\n\r\n return {\r\n accountEntry,\r\n userAccountResultCode,\r\n register,\r\n categoryMap\r\n }\r\n}\r\n\r\nconst postUserAccount = (entry: AccountCreateEntry, isSsoLink: boolean) => {\r\n return executePostUserAccount({\r\n name: entry.name,\r\n kana: entry.kana,\r\n tel: entry.tel,\r\n email: entry.email,\r\n ...(isSsoLink && entry.ssoLinkedParams?.id && { ssoUserId: entry.ssoLinkedParams.id }),\r\n password: entry.password,\r\n postalCode: entry.postalCode,\r\n address1: entry.address1,\r\n address2: entry.address2,\r\n buildingNameRoomNumber: blankToNull(entry.buildingNameRoomNumber),\r\n residenceCategory: entry.residenceCategory,\r\n relationship: blankToNull(entry.relationship),\r\n children: entry.children.map((child) => {\r\n return {\r\n name: child.name,\r\n kana: child.kana,\r\n birthday: toApiYmd(child.birthday),\r\n gender: child.gender,\r\n //TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする\r\n //maternalHandbookNo: child.maternalHandbookNo,\r\n }\r\n }),\r\n })\r\n}\r\n","import { executePost } from '../common/apiCaller'\r\nimport { PostUserAccountInputDto } from '../dto/userAccountDto'\r\n\r\nconst apiName = 'public'\r\nconst apiPath = '/user-account'\r\n\r\nexport const executePostUserAccount = (input: PostUserAccountInputDto) => {\r\n return executePost(apiName, apiPath, input)\r\n}\r\n","import CloseIcon from '@mui/icons-material/Close'\r\nimport { CardContent, CardHeader, IconButton, Card as MuiCard, styled } from '@mui/material'\r\nimport { ReactNode } from 'react'\r\n\r\ninterface ElevatedCardProps {\r\n /** カードのコンテンツ(カードの内に表示する内容) */\r\n children: ReactNode\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n\r\n title: string\r\n /**\r\n * カードの閉じるボタン(X ボタン)がクリックされたときに呼び出される関数。\r\n * 指定しなければ 閉じるボタン は表示されない\r\n */\r\n onClose?: () => void\r\n \r\n textAlign?: 'left' | 'right' | 'center' | 'justify' | undefined;\r\n}\r\n\r\nconst Root = styled(MuiCard)(({ theme }) => ({\r\n '.MuiCardHeader-root': {\r\n paddingBottom: 8,\r\n },\r\n '.MuiCardHeader-title': {\r\n fontSize: theme.typography.font.sizeL1,\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n '.MuiCardContent-root, .MuiCardContent-root:last-child': {\r\n paddingTop: 8,\r\n paddingBottom: 16,\r\n },\r\n}))\r\nconst CloseButton = styled(IconButton)({\r\n fontSize: '1.6rem',\r\n padding: 4,\r\n})\r\n\r\nexport const ElevatedCard = (props: ElevatedCardProps) => {\r\n return (\r\n \r\n \r\n \r\n \r\n ),\r\n })}\r\n style={{ textAlign: props.textAlign }}\r\n />\r\n {props.children}\r\n \r\n )\r\n}\r\n","import { Stack } from '@mui/material'\r\nimport { useAction } from '../../containers/accountCreateConfirmation/accountCreateConfirmationService'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { GContainer, GItem } from '../components/common/grids'\r\nimport { StepBar } from '../components/common/stepBar'\r\n\r\nimport { ReactNode } from 'react'\r\nimport { getAccountCreateSteps, getGenderLabel } from '../../containers/common/codeMaster'\r\nimport { accountCreateStep } from '../../containers/common/constant/classification'\r\nimport { translate } from '../../i18n'\r\nimport { formatYmd } from '../../utils/dateUtil'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ElevatedCard } from '../components/common/elevatedCard'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { LabelGItemBase, ValueGItemBase } from '../components/common/grids'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\n\r\nconst LabelGItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueGItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nexport const AccountCreateConfirmation = () => {\r\n const { accountEntry, userAccountResultCode, register, categoryMap } = useAction()\r\n if (accountEntry == null) {\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n {translate('accountCreateConfirmation.label.parentName')}\r\n {accountEntry.name}\r\n {translate('accountCreateConfirmation.label.parentKana')}\r\n {accountEntry.kana}\r\n {translate('accountCreateConfirmation.label.tel')}\r\n {accountEntry.tel}\r\n {translate('accountCreateConfirmation.label.email')}\r\n {accountEntry.email}\r\n {translate('accountCreateConfirmation.label.password')}\r\n ********\r\n\r\n {translate('accountCreateConfirmation.label.postalCode')}\r\n {accountEntry.postalCode}\r\n {translate('accountCreateConfirmation.label.prefecturesAndMunicipalities')}\r\n {accountEntry.address1}\r\n {translate('accountCreateConfirmation.label.address')}\r\n {accountEntry.address2}\r\n {translate('accountCreateConfirmation.label.buildingNameRoomNumber')}\r\n {accountEntry.buildingNameRoomNumber}\r\n {translate('accountCreateConfirmation.label.residenceCategory')}\r\n {accountEntry.residenceCategoryName}\r\n {translate('accountCreateConfirmation.label.relationship')}\r\n {accountEntry.relationship}\r\n \r\n\r\n \r\n {accountEntry.children.map((child, index) => (\r\n \r\n \r\n \r\n {translate('accountCreateConfirmation.label.childName')}\r\n {child.name}\r\n {translate('accountCreateConfirmation.label.childKana')}\r\n {child.kana}\r\n {translate('accountCreateConfirmation.label.childBirthday')}\r\n {formatYmd(child.birthday)}\r\n {categoryMap?.childrenGender && {categoryMap.childrenGender.name}}\r\n {categoryMap?.childrenGender && {getGenderLabel(child.gender)}}\r\n {/*TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする*/}\r\n {/*{translate('accountCreateConfirmation.label.maternalHandbookNo')}\r\n {child.maternalHandbookNo}*/}\r\n \r\n \r\n \r\n ))}\r\n \r\n\r\n {!!userAccountResultCode && (\r\n \r\n )}\r\n \r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {translate('accountCreateConfirmation.button.register')}\r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { executeGetNoResultError } from '../common/apiCaller'\r\nimport { GetResidenceCategoryMstDto } from '../dto/residenceCategoryMstDto'\r\n\r\nconst apiName = 'public'\r\nconst apiPath = '/residence-category-mst'\r\n\r\nexport const executeGetResidenceCategoryMst = async () => {\r\n return executeGetNoResultError(apiName, apiPath)\r\n}\r\n","// 在住種別に関する共通処理を定義\r\n//\r\n\r\nimport { executeGetResidenceCategoryMst } from '../../dataAccess/webApi/dao/residenceCategoryMstDao'\r\nimport { residenceCategory } from './constant/classification'\r\n\r\n/**\r\n * 在住種別を取得して結果を返す、また、ラジオボタンでの選択に使用できるように変換した在住種別リストも返す。\r\n *\r\n * @returns 施設情報\r\n */\r\nexport const getResidenceCategoriesAndMstData = async () => {\r\n const apiResponse = await executeGetResidenceCategoryMst()\r\n const result = apiResponse.result\r\n \r\n const categories: {value: string, label: string}[] = [\r\n {value: residenceCategory.inside, label: result.insideName},\r\n ]\r\n if (result.outsideName != null) {\r\n categories.push({value: residenceCategory.outsid, label: result.outsideName})\r\n }\r\n if (result.otherName != null) {\r\n categories.push({value: residenceCategory.other, label: result.otherName})\r\n }\r\n return {categories, mstData: result}\r\n}\r\n\r\n","// .envファイルに定義された値を定数として定義\r\n// .envについて:https://qiita.com/geekduck/items/6f99a3da15dd39658fff\r\n\r\n/** GoogleMapのAPIKey */\r\nexport const googleMapApiKey = process.env.REACT_APP_GOOGLE_MAP_API_KEY\r\n/** メンテナンス中メッセージ情報パス */\r\nexport const maintenanceMessagePath = process.env.REACT_APP_MAINTENANCE_MESSAGE_PATH\r\n\r\n/** Amplify.configure oauth.domain */\r\nexport const amplifyConfOauthDomain = process.env.REACT_APP_OAUTH_DOMAIN\r\n/** Amplify.configure oauth.redirectSignIn */\r\nexport const amplifyConfOauthSignIn = process.env.REACT_APP_OAUTH_SIGN_IN\r\n/** Amplify.configure oauth.redirectSignOut */\r\nexport const amplifyConfOauthSignOut = process.env.REACT_APP_OAUTH_SIGN_OUT\r\n/** 認証 IDプロバイダー名 */\r\nexport const authIdProviderName = process.env.REACT_APP_AUTH_ID_PROVIDER_NAME\r\n","// 位置情報、住所に関連する共通処理\r\n//\r\n\r\nimport { getLanguage } from '../../i18n'\r\nimport { googleMapApiKey } from './constant/processEnv'\r\nimport { isValidPostalCode } from './validator'\r\n\r\n/**\r\n * geolocation.getCurrentPositionのtimeout値(ミリ秒)\r\n * ※端末が位置を返すために掛けることができる最大時間\r\n */\r\nconst geolocationTimeout = 2 * 1000\r\n/**\r\n * geolocation.getCurrentPosition処理の強制timeout値(ミリ秒)\r\n * iOS safariで位置情報サービスをオフで端末再起動後、safariキャッシュクリア状態にて初回アクセス時\r\n * getCurrentPositionがsuccessとerrorのどちらもコールしない問題が発生する\r\n * その結果、永久にローディング状態となる為、強制的にerrorに処理を流す\r\n */\r\nconst geolocationForceTimeout = 5 * 1000\r\n\r\n/**\r\n * 端末の現在位置を取得。\r\n * ブラウザのGeolocationAPIを使用して取得する。\r\n *\r\n * @returns 位置情報\r\n */\r\nexport const getCurrentPosition = () => {\r\n return new Promise((resolve, reject) => {\r\n // 強制的にerrorへ流す処理。getCurrentPositionがsuccessとerrorをコールすればタイマーはクリアする\r\n const timeoutId = setTimeout(() => reject(), geolocationForceTimeout)\r\n\r\n navigator.geolocation.getCurrentPosition(\r\n (position: GeolocationPosition) => {\r\n clearTimeout(timeoutId)\r\n resolve(position)\r\n },\r\n (positionError: GeolocationPositionError) => {\r\n clearTimeout(timeoutId)\r\n reject(positionError)\r\n },\r\n {\r\n timeout: geolocationTimeout,\r\n }\r\n )\r\n })\r\n}\r\n\r\n/**\r\n * GeocodeAPIのレスポンス\r\n * GeocodeAPI仕様\r\n * https://developers.google.com/maps/documentation/geocoding/requests-geocoding\r\n */\r\ninterface GoogleGeocodeResponse {\r\n status: string\r\n results: {\r\n address_components: AddressComponent[]\r\n types: string[]\r\n }[]\r\n}\r\ninterface AddressComponent {\r\n long_name: string\r\n short_name: string\r\n types: string[]\r\n}\r\n\r\n/**\r\n * GoogleGeocodeResponseにマッチするかを判定する型ガード関数\r\n * @param body レスポンスボディ\r\n * @returns GoogleGeocodeResponseならtrue\r\n */\r\nconst isGoogleGeocodeResponse = (body: any): body is GoogleGeocodeResponse => {\r\n if (body == null) {\r\n return false\r\n }\r\n const { status, results } = body\r\n if (typeof status === 'string' && Array.isArray(results)) {\r\n if (results.length === 0) {\r\n return true\r\n }\r\n const { address_components, types } = results[0]\r\n if (Array.isArray(address_components) && Array.isArray(types)) {\r\n return address_components.length === 0 || Array.isArray(address_components[0].types)\r\n }\r\n }\r\n return false\r\n}\r\n\r\n/**\r\n * 住所の各成分\r\n */\r\ninterface Address {\r\n country?: string\r\n administrativeAreaLevels: string[]\r\n locality?: string\r\n sublocalityLevels: string[]\r\n postalCode?: string\r\n}\r\n\r\nconst getSublocalityLevelsSetter = (index: number) => (address: Address, value: string) => {\r\n address.sublocalityLevels[index] = value\r\n}\r\nconst getAdministrativeAreaLevelsSetter = (index: number) => (address: Address, value: string) => {\r\n address.administrativeAreaLevels[index] = value\r\n}\r\n\r\nconst typeToAddressPropertyMap: Record void> = {\r\n country: (address: Address, value: string) => {\r\n address.country = value\r\n },\r\n administrative_area_level_1: getAdministrativeAreaLevelsSetter(0),\r\n administrative_area_level_2: getAdministrativeAreaLevelsSetter(1),\r\n administrative_area_level_3: getAdministrativeAreaLevelsSetter(2),\r\n administrative_area_level_4: getAdministrativeAreaLevelsSetter(3),\r\n administrative_area_level_5: getAdministrativeAreaLevelsSetter(4),\r\n locality: (address: Address, value: string) => {\r\n address.locality = value\r\n },\r\n sublocality_level_1: getSublocalityLevelsSetter(0),\r\n sublocality_level_2: getSublocalityLevelsSetter(1),\r\n sublocality_level_3: getSublocalityLevelsSetter(2),\r\n sublocality_level_4: getSublocalityLevelsSetter(3),\r\n sublocality_level_5: getSublocalityLevelsSetter(4),\r\n postal_code: (address: Address, value: string) => {\r\n address.postalCode = value\r\n },\r\n}\r\n\r\n/**\r\n * Google Geocoding APIで発生したエラーを保持する例外クラス\r\n */\r\nexport class GeocodeError extends Error {\r\n statusCode: string\r\n constructor(statusCode: string, message?: string) {\r\n super(message)\r\n this.name = new.target.name\r\n // 下記の行はTypeScriptの出力ターゲットがES2015より古い場合(ES3, ES5)のみ必要\r\n Object.setPrototypeOf(this, new.target.prototype)\r\n\r\n this.statusCode = statusCode\r\n }\r\n}\r\n\r\n/**\r\n * 郵便番号から住所(各成分を連結した文字列)を取得。\r\n *\r\n * @param postalCode 郵便番号(000-0000形式)\r\n * @returns 郵便番号から取得した住所(各成分を連結した文字列)。郵便番号が000-0000形式ではない or GoogleAPIKey未設定時は、undefined\r\n * @throws {GeocodeError} GoogleAPIレスポンスのStatus codeが\"OK\",\"ZERO_RESULTS\"以外\r\n * https://developers.google.com/maps/documentation/geocoding/overview#StatusCodes\r\n */\r\nexport const getAddressStringByPostalCode = async (postalCode: string) => {\r\n const address = await getAddressByPostalCode(postalCode)\r\n if (address) {\r\n const sep = getLanguage() === 'ja' ? '' : ' '\r\n return [...address.administrativeAreaLevels, address.locality, ...address.sublocalityLevels]\r\n .filter((v) => v)\r\n .join(sep)\r\n }\r\n}\r\n\r\n/**\r\n * 郵便番号から住所を取得。\r\n *\r\n * @param postalCode 郵便番号(000-0000形式)\r\n * @returns 郵便番号から取得した住所。郵便番号が000-0000形式ではない or GoogleAPIKey未設定時は、undefined\r\n * @throws {GeocodeError} GoogleAPIレスポンスのStatus codeが\"OK\",\"ZERO_RESULTS\"以外\r\n * https://developers.google.com/maps/documentation/geocoding/overview#StatusCodes\r\n */\r\nexport const getAddressByPostalCode = async (postalCode: string) => {\r\n const searchParamAddress = postalCode.trim()\r\n if (!googleMapApiKey || !isValidPostalCode(postalCode)) {\r\n return\r\n }\r\n const response = await fetch(\r\n 'https://maps.googleapis.com/maps/api/geocode/json?' +\r\n new URLSearchParams({\r\n key: googleMapApiKey,\r\n address: searchParamAddress,\r\n })\r\n )\r\n const body = await response.json()\r\n if (isGoogleGeocodeResponse(body)) {\r\n if (body.status === 'ZERO_RESULTS') {\r\n return\r\n } else if (body.status !== 'OK') {\r\n throw new GeocodeError(body.status, `postalCode=${searchParamAddress}`)\r\n }\r\n } else {\r\n throw TypeError(JSON.stringify(body))\r\n }\r\n\r\n return parseAddress(body.results[0].address_components)\r\n}\r\n\r\nconst parseAddress = (addressComponents: AddressComponent[]) => {\r\n let address: Address = { administrativeAreaLevels: [], sublocalityLevels: [] }\r\n address = addressComponents.reduce((previousValue: Address, currentValue) => {\r\n for (const [typeKey, propertySetter] of Object.entries(typeToAddressPropertyMap)) {\r\n if (currentValue.types.indexOf(typeKey) !== -1) {\r\n propertySetter(previousValue, currentValue.long_name)\r\n break\r\n }\r\n }\r\n return previousValue\r\n }, address)\r\n return address\r\n}\r\n","import { useState, useCallback, useEffect } from 'react'\nimport { executeGetPasswordRulePublic } from '../../dataAccess/webApi/dao/passwordRulePublicDao'\n\ninterface PasswordRule {\n minimumLength: number\n requireNumbers: boolean\n requireUppercase: boolean\n requireLowercase: boolean\n requireSymbols: boolean\n temporaryPasswordValidityDays: number\n}\n\nconst DEFAULT_PASSWORD_RULE = {\n minimumLength: 8,\n requireNumbers: true,\n requireUppercase: true,\n requireLowercase: true,\n requireSymbols: true,\n temporaryPasswordValidityDays: 8,\n}\n\nconst getPasswordRuleMessage = (passwordRule: PasswordRule) => {\n let message = 'パスワードは'\n\n if (passwordRule.requireUppercase) {\n message += '大文字英字'\n }\n if (passwordRule.requireLowercase) {\n message += '、小文字英字'\n }\n if (passwordRule.requireNumbers) {\n message += '、数字'\n }\n if (passwordRule.requireSymbols) {\n message += '、記号'\n }\n\n // 必須条件\n const passwordRequires = [\n passwordRule.requireUppercase,\n passwordRule.requireLowercase,\n passwordRule.requireNumbers,\n passwordRule.requireSymbols,\n ]\n\n if (passwordRequires.every(e => !e)) {\n // 必須条件がすべて false の場合\n message += `${passwordRule.minimumLength}文字以上を入力してください。`\n } else if (passwordRequires.filter(e => e).length === 1) {\n message += `を含む${passwordRule.minimumLength}文字以上を入力してください。`\n } else {\n message += `をそれぞれ含む${passwordRule.minimumLength}文字以上を入力してください。`\n }\n\n return message\n}\n\nexport const usePasswordValidationMessage = () => {\n const [passwordRule, setPasswordRule] = useState(DEFAULT_PASSWORD_RULE)\n \n const getPasswordRule = useCallback(async () => {\n const passwordRuleRes = await executeGetPasswordRulePublic({\"ruleId\": \"2\"})\n\n const _passwordRule = {\n minimumLength: passwordRuleRes.result.minimumLength,\n requireNumbers: passwordRuleRes.result.requireNumbers,\n requireUppercase: passwordRuleRes.result.requireUppercase,\n requireLowercase: passwordRuleRes.result.requireLowercase,\n requireSymbols: passwordRuleRes.result.requireSymbols,\n temporaryPasswordValidityDays: passwordRuleRes.result.temporaryPasswordValidityDays,\n };\n\n setPasswordRule(_passwordRule)\n }, [passwordRule])\n \n useEffect(() => {\n getPasswordRule()\n }, [])\n\n const validationMessage = getPasswordRuleMessage(passwordRule)\n return {\n validationMessage,\n passwordRule,\n }\n}\n","import { executeGet } from '../common/apiCaller'\nimport { GetUsePasswordRulePublicDto } from '../dto/passwordRuleDto'\n\nconst apiName = 'public'\nconst apiPath = '/password-policy'\n\ninterface PasswordInput {\n ruleId: string;\n}\n\nexport const executeGetPasswordRulePublic = (input: PasswordInput) => {\n return executeGet(apiName, apiPath, input)\n}\n","import { useCallback, useMemo, useEffect, useState } from 'react'\r\nimport { useFieldArray, useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { translate } from '../../i18n'\r\nimport { showLoading } from '../../containers/common/store/slices/application'\r\nimport { getResidenceCategoriesAndMstData } from '../common/residenceCategoryMst'\r\nimport { GetResidenceCategoryMstDto } from '../../dataAccess/webApi/dto/residenceCategoryMstDto'\r\nimport { dateToNumber, numberPropsToDate } from '../../utils/objectUtil'\r\nimport { setFormErrors, setFormValueClearError } from '../../utils/reactUtil'\r\nimport { castNonNullable } from '../../utils/typeUtil'\r\nimport { accountCreateConfirmationUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getAddressStringByPostalCode } from '../common/location'\r\nimport { selectAccountCreateEntry, setAccountCreate } from '../common/store/slices/accountCreate'\r\nimport { selectIsLoggedIn } from '../common/store/slices/authority'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { usePasswordValidationMessage } from '../../containers/common/passwordRule'\r\nimport { getCategories } from '../common/category'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\n\r\ninterface ChildInputs {\r\n name: string\r\n kana: string\r\n gender: string\r\n birthday: Date | null\r\n //TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする\r\n //maternalHandbookNo: string\r\n}\r\ninterface Inputs {\r\n name: string\r\n kana: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber: string\r\n residenceCategory: string\r\n relationship: string\r\n tel: string\r\n email: string\r\n emailConfirmation: string\r\n password: string\r\n passwordConfirmation: string\r\n isAgreeTermsOfService: string\r\n isAgreePersonalInformation: string\r\n\r\n children: ChildInputs[]\r\n}\r\ntype InputTypePropName = keyof Inputs\r\n\r\ninterface LocationState {\r\n /** 入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n /** sso連携時にidp側から連携された利用者情報 */ \r\n ssoLinkedParams? : {\r\n id: string\r\n name: string\r\n kana: string\r\n street: string\r\n houseNumber: string\r\n city: string\r\n state: string\r\n postalCode: string\r\n email: string\r\n phone: string\r\n }\r\n}\r\n\r\nexport const useAction = () => {\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'maternalHandbookNo',\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const errorHandle = useErrorHandle()\r\n const { validationMessage, passwordRule } = usePasswordValidationMessage()\r\n \r\n const isKeep = !!history.location.state?.isKeep\r\n const ssoLinkedParams = history.location.state?.ssoLinkedParams\r\n\r\n const accountEntry = useSelector(selectAccountCreateEntry)\r\n\r\n const isLoggedIn = useSelector(selectIsLoggedIn)\r\n\r\n const childBirthdayLimitDate = getNow() // 誕生日の入力上限値\r\n \r\n const [residenceCategoryMst, setResidenceCategoryMst] = useState()\r\n const [residenceCategories, setResidenceCategories] = useState<{ value: string; label: string }[]>([])\r\n const [isDisabledAddress1, setIsDisabledAddress1] = useState(true)\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n const defaultValues = useMemo(() => {\r\n if (isKeep && accountEntry) {\r\n const { children, ...others } = accountEntry\r\n return {\r\n ...others,\r\n children: children.map((child) => numberPropsToDate(child, ['birthday'])),\r\n }\r\n } else {\r\n return {\r\n ...(ssoLinkedParams && {\r\n name: ssoLinkedParams.name,\r\n kana: ssoLinkedParams.kana,\r\n address1: ssoLinkedParams.state + ssoLinkedParams.city,\r\n address2: ssoLinkedParams.street,\r\n buildingNameRoomNumber: ssoLinkedParams.houseNumber,\r\n email: ssoLinkedParams.email,\r\n ...(ssoLinkedParams.postalCode && { postalCode: convertPostalCode(ssoLinkedParams.postalCode) }),\r\n ...(ssoLinkedParams.phone && { tel: convertTel(ssoLinkedParams.phone) }),\r\n }),\r\n children: [{}],\r\n }\r\n }\r\n }, [isKeep, accountEntry, ssoLinkedParams])\r\n\r\n const formMethods = useForm({\r\n defaultValues,\r\n })\r\n const fieldArrayMethods = useFieldArray({\r\n name: 'children',\r\n control: formMethods.control,\r\n })\r\n\r\n const appendChild = useCallback(() => {\r\n fieldArrayMethods.append({})\r\n }, [fieldArrayMethods])\r\n\r\n const removeChild = useCallback(\r\n (index: number) => {\r\n fieldArrayMethods.remove(index)\r\n },\r\n [fieldArrayMethods]\r\n )\r\n\r\n const setResidenceCategory = useCallback((address1: string, residenceCategoryMst: GetResidenceCategoryMstDto | undefined) => {\r\n if (\r\n residenceCategoryMst && residenceCategoryMst?.triggerKeywordSetInitialValue\r\n && address1.includes(residenceCategoryMst.triggerKeywordSetInitialValue)\r\n ) {\r\n setFormValueClearError(formMethods, 'residenceCategory', residenceCategoryMst.initialValue)\r\n }\r\n }, [formMethods])\r\n \r\n const autoCompleteAddress = useCallback(async () => {\r\n const { postalCode } = formMethods.getValues()\r\n try {\r\n const address = await getAddressStringByPostalCode(postalCode)\r\n if (address) {\r\n formMethods.setValue('address1', address)\r\n setResidenceCategory(address, residenceCategoryMst)\r\n setIsDisabledAddress1(true)\r\n } else {\r\n setIsDisabledAddress1(false)\r\n }\r\n } catch {\r\n // 取得できなかった場合は何もしない\r\n }\r\n }, [formMethods, residenceCategoryMst])\r\n \r\n useEffect(() => {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS}) // 施設を特定できないため事業IDは'1'で固定\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n \r\n const residenceCategoriesAndMstData = await getResidenceCategoriesAndMstData()\r\n setResidenceCategoryMst(residenceCategoriesAndMstData.mstData)\r\n setResidenceCategories(residenceCategoriesAndMstData.categories)\r\n \r\n if (!isKeep && ssoLinkedParams) {\r\n const { address1 } = formMethods.getValues()\r\n if (address1) {\r\n setResidenceCategory(address1, residenceCategoriesAndMstData.mstData)\r\n }\r\n }\r\n \r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const subscription = formMethods.watch((values, { name, type }) => {\r\n if (name === 'address1' && type === 'change') {\r\n if (values.address1) {\r\n setResidenceCategory(values.address1, residenceCategoryMst)\r\n }\r\n }\r\n })\r\n return () => subscription.unsubscribe()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [residenceCategoryMst])\r\n\r\n /**\r\n * 項目間などの入力値妥当性検査\r\n * @param data 入力値\r\n * @returns エラーが存在する場合true\r\n */\r\n const validateItems = useCallback(\r\n (data: Inputs) => {\r\n const errors: { name: InputTypePropName; message: string }[] = []\r\n\r\n if (data.email !== data.emailConfirmation) {\r\n errors.push({\r\n name: 'emailConfirmation',\r\n message: translate('system.error.notSameEmail'),\r\n })\r\n }\r\n\r\n if (data.password !== data.passwordConfirmation) {\r\n errors.push({\r\n name: 'passwordConfirmation',\r\n message: translate('system.error.notSamePassword'),\r\n })\r\n }\r\n\r\n setFormErrors(formMethods, errors)\r\n\r\n return !!errors.length\r\n },\r\n [formMethods]\r\n )\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n if (validateItems(data)) {\r\n return\r\n }\r\n\r\n const { children, ...others } = data\r\n\r\n const matchValueLabels = residenceCategories.filter((element) => {\r\n return data.residenceCategory === element.value\r\n })\r\n const residenceCategoryName = matchValueLabels[0].label\r\n\r\n dispatch(\r\n setAccountCreate({\r\n ...others,\r\n residenceCategoryName,\r\n ...(ssoLinkedParams && {\r\n ssoLinkedParams : {\r\n id: ssoLinkedParams.id,\r\n email: ssoLinkedParams.email,\r\n }\r\n }),\r\n children: children.map((child) => {\r\n const { birthday, ...childOthers } = child\r\n return {\r\n ...childOthers,\r\n birthday: dateToNumber(castNonNullable(birthday)),\r\n }\r\n }),\r\n })\r\n )\r\n \r\n // 戻るで表示した際に入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { isKeep: true, ssoLinkedParams } })\r\n history.push(accountCreateConfirmationUrl.url())\r\n },\r\n [validateItems, dispatch, history, ssoLinkedParams, residenceCategories]\r\n )\r\n \r\n return {\r\n isLoggedIn,\r\n formMethods,\r\n fieldArrayMethods,\r\n appendChild,\r\n removeChild,\r\n autoCompleteAddress,\r\n onSubmit,\r\n childBirthdayLimitDate,\r\n residenceCategories,\r\n isDisabledAddress1,\r\n residenceCategoryMst,\r\n validationMessage,\r\n passwordRule,\r\n categoryMap\r\n }\r\n}\r\n\r\nconst convertPostalCode = (data: string) => {\r\n return data.substr(0, 3) + '-' + data.substr(3)\r\n}\r\n\r\nconst convertTel = (data: string) => {\r\n return data.substr(0, 3) + '-' + data.substr(3, 4) + '-' + data.substr(7)\r\n}","import MuiHelpIcon from '@mui/icons-material/Help'\nimport { IconProps } from './iconBase'\n\n/** ヘルプ表示を示すアイコン */\nexport const HelpIcon = (props: IconProps) => {\n return \n}\n","import { styled } from '@mui/material'\r\nimport { DesktopDatePicker, LocalizationProvider } from '@mui/x-date-pickers'\r\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'\r\nimport React, { forwardRef, Ref, useCallback, useEffect, useState } from 'react'\r\nimport { getLocale, getYyyymmddFormat, getYyyymmddMask, getYyyymmFormat, getYyyymmMask } from '../../../../i18n'\r\nimport { isValidDate } from '../../../../utils/dateUtil'\r\nimport { TextBoxBaseStyled } from './textBoxBaseStyled'\r\n\r\nexport const INPUT_TYPE = {\r\n YYYYMMDD: 'YYYYMMDD',\r\n YYYYMM: 'YYYYMM',\r\n} as const\r\n\r\ninterface DatePickerProps {\r\n value: Date | null\r\n onChange: (date: Date | null) => void\r\n fullWidth?: boolean\r\n maxDate?: Date\r\n minDate?: Date\r\n\r\n name?: string\r\n error?: boolean\r\n errorMessage?: string\r\n onBlur?: React.FocusEventHandler\r\n disabled?: boolean\r\n inputType?: typeof INPUT_TYPE[keyof typeof INPUT_TYPE]\r\n}\r\n\r\nconst InputField = styled(TextBoxBaseStyled)(() => ({\r\n '& .MuiInputAdornment-positionEnd': {\r\n marginRight: 10,\r\n marginLeft: 0,\r\n },\r\n '& .MuiOutlinedInput-input': {\r\n paddingRight: 0,\r\n },\r\n}))\r\n\r\n/** 日付コントロール */\r\nexport const DatePickerNoBind = forwardRef(function DatePickerNoBind(\r\n props: DatePickerProps,\r\n ref: Ref\r\n) {\r\n const { value, error, errorMessage, onBlur, onChange, disabled, maxDate, minDate, inputType, ...through } = props\r\n const [internalValue, setInternalValue] = useState(value)\r\n\r\n useEffect(() => setInternalValue(value), [value])\r\n\r\n const onChangeHandler = useCallback(\r\n (date: Date | null, keyboardInputValue?: string) => {\r\n setInternalValue(date)\r\n if (isValidDate(date)) {\r\n if (keyboardInputValue == null || keyboardInputValue.length === 10) {\r\n onChange(date)\r\n } else {\r\n onChange(new Date(NaN))\r\n }\r\n } else {\r\n onChange(date)\r\n }\r\n },\r\n [onChange]\r\n )\r\n const locale = getLocale()\r\n \r\n let inputFormat, mask\r\n let views: Array<'day' | 'month'| 'year'>\r\n if (inputType === INPUT_TYPE.YYYYMM) {\r\n inputFormat = getYyyymmFormat()\r\n mask = getYyyymmMask()\r\n views = ['year', 'month']\r\n } else {\r\n inputFormat = getYyyymmddFormat()\r\n mask = getYyyymmddMask()\r\n views = ['year', 'month', 'day']\r\n }\r\n \r\n return (\r\n \r\n {\r\n return \r\n }}\r\n disabled={disabled}\r\n views={views}\r\n />\r\n \r\n )\r\n})\r\n","import React from 'react'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { isAfter } from 'date-fns'\r\nimport { translate } from '../../../../i18n'\r\nimport { isValidDate, formatYmd } from '../../../../utils/dateUtil'\r\nimport { DatePickerNoBind, INPUT_TYPE } from './datePickerNoBind'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\nexport { INPUT_TYPE } from './datePickerNoBind'\r\n\r\ninterface DatePickerProps {\r\n name: string\r\n label: string\r\n required?: boolean\r\n fullWidth?: boolean\r\n control?: Control\r\n maxDate?: Date\r\n minDate?: Date\r\n disabled?: boolean\r\n onChange?: (date: Date | null) => void\r\n inputType?: typeof INPUT_TYPE[keyof typeof INPUT_TYPE]\r\n}\r\n\r\n/** 日付フォームコントロール */\r\nexport const DatePicker = (props: DatePickerProps) => {\r\n const { name, label, required, control, disabled, ...through } = props\r\n const {\r\n field: { ref, value, onChange, onBlur },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n required: { value: !!required, message: translate('system.error.requiredInput', label) },\r\n validate: {\r\n invalidDate: (value?: Date) =>\r\n value == null || isValidDate(value) || translate('system.error.correctInput', label),\r\n // maxDateが指定されているときのみ\r\n invalidDateLimitByMaxDate: (value?: Date) => {\r\n if (props.maxDate && isValidDate(value) && isAfter(value, props.maxDate)) {\r\n return translate('system.error.limitOverDate', label, formatYmd(props.maxDate))\r\n }\r\n return true\r\n },\r\n // maxDateが指定されているときのみ\r\n invalidDateLimitByMinDate: (value?: Date) => {\r\n if (props.minDate && isValidDate(value) && isAfter(value, props.minDate)) {\r\n return translate('system.error.limitUnderDate', label, formatYmd(props.minDate))\r\n }\r\n return true\r\n },\r\n },\r\n },\r\n defaultValue: null,\r\n control,\r\n })\r\n\r\n const error = getValueByNameStr(errors, name)\r\n return (\r\n \r\n )\r\n}\r\n","// 電話番号フォームコントロール\r\n//\r\n\r\nimport { FormControl, FormHelperText } from '@mui/material'\r\nimport React, { ChangeEvent, forwardRef, Ref, useCallback, useMemo } from 'react'\r\nimport { Control, useController, Validate } from 'react-hook-form'\r\nimport { requiredValidator, telValidator } from '../../../../containers/common/validator'\r\nimport { FlexboxMiddle, HyphenSeparator } from '../flexboxes'\r\nimport { TextBoxBaseStyled } from './textBoxBaseStyled'\r\n\r\ninterface TelTextBoxProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /** width: 100% にする場合true */\r\n fullWidth?: boolean\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n /** autocomplete属性 */\r\n autoComplete?: string\r\n}\r\n\r\ntype PartPosition = 0 | 1 | 2\r\n\r\nconst splitTel = (value: string) => value.split('-').concat(['', '', '']).slice(0, 3)\r\n\r\nconst spliceTel = (currentValue: string, newValue: string, position: PartPosition) => {\r\n if (/[^0-9]/.test(newValue)) {\r\n // 数値以外は無視する\r\n return\r\n }\r\n\r\n const splittedNumbers = splitTel(currentValue)\r\n splittedNumbers[position] = newValue\r\n return splittedNumbers.join('-').replace(/-+$/, '')\r\n}\r\n\r\nconst getValidators = (label: string, required?: boolean) => {\r\n const validators: Record> = {}\r\n if (required) {\r\n const validator = requiredValidator(label)\r\n validators.required = (value: string) => {\r\n if (!required) {\r\n return true\r\n }\r\n for (const part of splitTel(value)) {\r\n const result = validator(part)\r\n if (typeof result === 'string') {\r\n return result\r\n }\r\n }\r\n return true\r\n }\r\n }\r\n validators.tel = telValidator()\r\n return validators\r\n}\r\n\r\ninterface PartTextBoxProps {\r\n fullWidth?: boolean\r\n error: boolean\r\n value: string\r\n position: PartPosition\r\n onChange: (...event: any[]) => void\r\n onBlur: (...event: any[]) => void\r\n autoComplete?: string\r\n}\r\nconst PartTextBox = forwardRef(function PartTextBox(props: PartTextBoxProps, ref: Ref) {\r\n const { onChange, value, position, ...through } = props\r\n const maxLength = 4\r\n\r\n const onChangeFormat = useCallback(\r\n (event: ChangeEvent) => {\r\n const newValue = spliceTel(value, event.target.value, position)\r\n if (newValue != null) {\r\n onChange(newValue)\r\n }\r\n },\r\n [onChange, value, position]\r\n )\r\n\r\n return (\r\n \r\n )\r\n})\r\n\r\n/** 電話番号フォームコントロール */\r\nexport const TelTextBox = (props: TelTextBoxProps) => {\r\n const { name, label, required, control, fullWidth, autoComplete } = props\r\n\r\n const validate = useMemo(() => getValidators(label, required), [label, required])\r\n const {\r\n field: { ref, value, onChange, onBlur },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n validate,\r\n },\r\n defaultValue: '',\r\n control,\r\n })\r\n\r\n const error = errors[props.name]\r\n const partProps = {\r\n error: !!error,\r\n fullWidth,\r\n onBlur,\r\n onChange,\r\n value,\r\n autoComplete,\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {error && {error.message}}\r\n \r\n )\r\n}\r\n","import { IconButton, Stack, Tooltip, styled } from '@mui/material'\r\nimport { Redirect } from 'react-router-dom'\r\nimport { useSelector } from 'react-redux'\r\nimport { useAction } from '../../containers/accountCreateForm/accountCreateFormService'\r\nimport { getAccountCreateSteps, getGenders } from '../../containers/common/codeMaster'\r\nimport {\r\n identityEmailVerificationUrl,\r\n termsOfServiceUrl\r\n} from '../../containers/common/constant/appUrl'\r\nimport { accountCreateStep, yesNo } from '../../containers/common/constant/classification'\r\nimport { handingOfPersonalDataUrl } from '../../containers/common/constant/externalUrl'\r\nimport { cognitoPasswordMaxLength } from '../../containers/common/validator'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\r\nimport { ElevatedCard } from '../components/common/elevatedCard'\r\nimport { FlexboxRowTop, Separator } from '../components/common/flexboxes'\r\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\r\nimport { HelpIcon } from '../components/common/icons/helpIcon'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { CheckBox } from '../components/common/inputs/checkBox'\r\nimport { DatePicker } from '../components/common/inputs/datePicker'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { TelTextBox } from '../components/common/inputs/telTextBox'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { Link } from '../components/common/link'\r\nimport { StepBar } from '../components/common/stepBar'\r\nimport { selectSystemControl } from '../../containers/common/store/slices/systemControl'\r\n\r\nconst AccountInformation = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nconst HelpIconButton = styled(IconButton)({ fontSize: '1.8rem', padding: 0, marginLeft: '8px' })\r\n\r\n/** お子さま数上限 */\r\nconst childrenLengthMax = 5\r\n\r\nexport const AccountCreateForm = () => {\r\n const {\r\n isLoggedIn,\r\n formMethods,\r\n fieldArrayMethods,\r\n appendChild,\r\n removeChild,\r\n autoCompleteAddress,\r\n onSubmit,\r\n childBirthdayLimitDate,\r\n residenceCategories,\r\n isDisabledAddress1,\r\n residenceCategoryMst,\r\n validationMessage,\r\n passwordRule,\r\n categoryMap\r\n } = useAction()\r\n\r\n const accountCreateInformation = useSelector(selectSystemControl).accountCreateInformation\r\n\r\n if (isLoggedIn) {\r\n return \r\n }\r\n const fields = fieldArrayMethods.fields\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {accountCreateInformation && (\r\n \r\n \r\n {accountCreateInformation}\r\n \r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.parentName')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.parentKana')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.tel')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.email')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.emailConfirmation')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.password')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.passwordConfirmation')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.postalCode')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('accountCreateForm.button.autoComplete')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.prefecturesAndMunicipalities')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.address')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('accountCreateForm.label.buildingNameRoomNumber')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.residenceCategory')}\r\n \r\n \r\n \r\n \r\n
\r\n {residenceCategoryMst?.descriptionForResidenceCategory &&\r\n {residenceCategoryMst.descriptionForResidenceCategory}\r\n }\r\n
\r\n
\r\n \r\n {translate('accountCreateForm.label.relationship')}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {fields.map((field, index) => (\r\n \r\n 1 && {\r\n onClose: () => removeChild(index),\r\n })}\r\n >\r\n \r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.childName')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.childKana')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.childBirthday')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {categoryMap?.childrenGender && \r\n \r\n *\r\n {categoryMap.childrenGender.name}\r\n \r\n \r\n \r\n \r\n }\r\n {/*TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする*/}\r\n {/*\r\n \r\n \r\n *\r\n {translate('accountCreateForm.label.maternalHandbookNo')}\r\n {translate('accountCreateForm.label.maternalHandbookNoNote')}\r\n \r\n {translate('accountCreateForm.label.maternalHandbookNoExample')}\r\n \r\n \r\n \r\n \r\n */}\r\n\r\n \r\n \r\n \r\n ))}\r\n {fields.length < childrenLengthMax && (\r\n \r\n \r\n + {translate('accountCreateForm.text.addChild')}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {translate('accountCreateForm.checkbox.isAgreeTermsOfService')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('accountCreateForm.checkbox.isAgreePersonalInformation')}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n {translate('accountCreateForm.button.confirmation')}\r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { Stack, styled } from '@mui/material'\nimport React, { ReactNode } from 'react'\nimport { BottomActionContainer } from './bottomActionContainer'\nimport { FlexboxCenter } from './flexboxes'\n\ninterface BottomButtonProps {\n children: ReactNode\n}\n\nconst ButtonBox = styled(FlexboxCenter)(({}) => ({}))\n\n/**\n * メインコンテンツエリア下部に表示する「登録」「戻る」などのアクションコントロールを\n * 画面幅に応じて適切に配置するコントロール。\n * PC以外のレイアウトでは縦\n * PCレイアウトでは横かつ逆順 ※左側に「戻る」「中止」を配置したいため\n */\nexport const BottomButtonStackNoWidth = (props: BottomButtonProps) => {\n /** 配列のコピーを作成。要素以外は除去 */\n const buttons = (Array.isArray(props.children) ? [...props.children] : [props.children]).filter((v) =>\n React.isValidElement(v)\n )\n return (\n \n {buttons.map((button, index) => (\n {button}\n ))}\n \n )\n}\n\n/**\n * メインコンテンツエリア下部に表示するコントロール。\n * BottomButtonNoWidthStack含む\n */\nexport const BottomButtonGroupNoWidth = (props: BottomButtonProps) => {\n return (\n \n {props.children}\n \n )\n}\n","import { styled } from '@mui/system'\nimport { ButtonOutlinedWarningBase } from './buttonOutlinedWarningBase'\n\n/**\n * warningカラーのボタンコントロールMサイズ。\n */\nexport const ButtonOutlinedWarningM = styled(ButtonOutlinedWarningBase)(({ theme }) => ({\n fontSize: theme.typography.font.sizeL1,\n padding: '14px 25px',\n borderWidth: 4,\n}))\n","import { Grid, Stack, styled } from '@mui/material'\nimport React from 'react'\nimport { useAction } from '../../containers/accountEmailChange/accountEmailChangeService'\nimport { translate } from '../../i18n'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroupNoWidth } from '../components/common/bottomButtonGroupNoWidth'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonOutlinedWarningM } from '../components/common/buttons/buttonOutlinedWarningM'\nimport { Form } from '../components/common/inputs/form'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { CenterTitle } from '../components/common/centerTitle'\n\nconst ContentContainer = styled(Grid)({\n marginTop: '8vh',\n})\n\n// 説明文\nconst NoResultMessageCard = styled('div')({\n paddingTop: '3px',\n})\n\nexport const AccountEmailChange = () => {\n const { formMethods, onSubmit } = useAction()\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n {translate('accountEmailChange.text.newEmailSetting')}\n \n \n {translate('accountEmailChange.text.newEmailSend')}\n \n \n \n \n *\n {translate('accountEmailChange.label.newEmail')}\n \n \n \n \n \n \n \n *\n {translate('accountEmailChange.label.newEmailConfirmation')}\n \n \n \n \n \n \n \n \n \n \n \n {translate('accountEmailChange.button.change')}\n \n \n \n \n
\n
\n )\n}\n","import { useEffect } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePutAccount, resultCodePutAccount } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { translate } from '../../i18n'\r\nimport { getSessionAccessToken } from '../../utils/authUtil'\r\nimport { accountChangeVerificationUrl } from '../common/constant/appUrl'\r\nimport { accountChangeVerificationCategory, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { setAccountChange } from '../common/store/slices/accountChange'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\n\r\ninterface Inputs {\r\n newEmail: string\r\n newEmailConfirmation: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const formMethods = useForm()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000035, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n if (data.newEmail !== data.newEmailConfirmation) {\r\n formMethods.setError(\r\n 'newEmailConfirmation',\r\n { message: translate('system.error.notSameEmail') },\r\n { shouldFocus: true }\r\n )\r\n return\r\n }\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const response = await executePutAccount({\r\n accessToken: await getSessionAccessToken(),\r\n tel: null,\r\n email: data.newEmail,\r\n })\r\n if (response.resultCode) {\r\n // 登録失敗時\r\n let newEmailErrorKey\r\n switch (response.resultCode) {\r\n case resultCodePutAccount.notChangedEmail:\r\n newEmailErrorKey = 'accountEmailChange.error.notChanged'\r\n break\r\n case resultCodePutAccount.alreadyRegisteredEmail:\r\n newEmailErrorKey = 'accountEmailChange.error.alreadyRegistered'\r\n break\r\n }\r\n if (newEmailErrorKey) {\r\n // ローディング表示中はsetErrorでメッセージ表示が反映されないので遅延させる\r\n const errorKey = newEmailErrorKey\r\n setTimeout(() => {\r\n formMethods.setError('newEmail', { message: translate(errorKey) }, { shouldFocus: true })\r\n }, 0)\r\n }\r\n } else {\r\n dispatch(\r\n setAccountChange({\r\n category: accountChangeVerificationCategory.email,\r\n email: data.newEmail,\r\n })\r\n )\r\n dispatch(notifyMessage(translate('system.success.sendOneTimePassword')))\r\n history.push(accountChangeVerificationUrl.url())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }\r\n\r\n return {\r\n formMethods,\r\n onSubmit,\r\n }\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { useAction } from '../../containers/accountTelChange/accountTelChangeService'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TelTextBox } from '../components/common/inputs/telTextBox'\r\nimport { CenterTitle } from '../components/common/centerTitle'\r\n\r\nconst ContentContainer = styled(Grid)({\r\n marginTop: '8vh',\r\n})\r\n\r\n// 説明文\r\nconst NoResultMessageCard = styled('div')({\r\n paddingTop: '3px',\r\n})\r\n\r\nexport const AccountTelChange = () => {\r\n const { formMethods, onSubmit, sysCtrl } = useAction()\r\n console.log(sysCtrl)\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('accountTelChange.text.newTelSetting')}\r\n \r\n {sysCtrl.smsSubscriptionFlag === yesNo.yes && sysCtrl.phoneCertificationFlag === yesNo.yes &&\r\n \r\n {translate('accountTelChange.text.newTelSend')}\r\n \r\n }\r\n \r\n \r\n \r\n *\r\n {translate('accountTelChange.label.newTel')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('accountTelChange.label.newTelConfirmation')}\r\n \r\n \r\n \r\n \r\n \r\n {sysCtrl.smsSubscriptionFlag === yesNo.yes && sysCtrl.phoneCertificationFlag === yesNo.yes &&\r\n \r\n {translate('accountTelChange.text.annotation')}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('accountTelChange.button.change')}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { useEffect } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePutAccount, resultCodePutAccount } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { translate } from '../../i18n'\r\nimport { getSessionAccessToken } from '../../utils/authUtil'\r\nimport { accountUrl, accountChangeVerificationUrl } from '../common/constant/appUrl'\r\nimport { accountChangeVerificationCategory, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { setAccountChange } from '../common/store/slices/accountChange'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { detectLoginStatus } from '../common/store/slices/authority'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\n\r\ninterface Inputs {\r\n newTel: string\r\n newTelConfirmation: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const formMethods = useForm()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000035, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n if (data.newTel !== data.newTelConfirmation) {\r\n formMethods.setError(\r\n 'newTelConfirmation',\r\n { message: translate('system.error.notSameTel') },\r\n { shouldFocus: true }\r\n )\r\n return\r\n }\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const response = await executePutAccount({\r\n accessToken: await getSessionAccessToken(),\r\n tel: data.newTel,\r\n email: null,\r\n })\r\n if (response.resultCode) {\r\n // 登録失敗時\r\n let newTelErrorKey\r\n switch (response.resultCode) {\r\n case resultCodePutAccount.notChangedTel:\r\n newTelErrorKey = 'accountTelChange.error.notChanged'\r\n break\r\n case resultCodePutAccount.alreadyRegisteredTel:\r\n newTelErrorKey = 'accountTelChange.error.alreadyRegistered'\r\n break\r\n }\r\n if (newTelErrorKey) {\r\n // ローディング表示中はsetErrorでメッセージ表示が反映されないので遅延させる\r\n const errorKey = newTelErrorKey\r\n setTimeout(() => {\r\n formMethods.setError('newTel', { message: translate(errorKey) }, { shouldFocus: true })\r\n }, 0)\r\n }\r\n } else {\r\n if (sysCtrl.phoneCertificationFlag === yesNo.yes) {\r\n // SMS認証が必要な場合\r\n dispatch(\r\n setAccountChange({\r\n category: accountChangeVerificationCategory.tel,\r\n tel: data.newTel,\r\n })\r\n )\r\n dispatch(notifyMessage(translate('system.success.sendOneTimePassword')))\r\n history.push(accountChangeVerificationUrl.url())\r\n } else {\r\n // SMS認証が不要な場合\r\n await dispatch(detectLoginStatus())\r\n dispatch(notifyMessage(translate('accountChangeVerification.success.completionMessageTel')))\r\n history.push(accountUrl.url())\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }\r\n\r\n return {\r\n formMethods,\r\n onSubmit,\r\n sysCtrl,\r\n }\r\n}\r\n","// import { useCallback, useEffect, useState } from 'react'\r\nimport { useCallback, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeDeleteAccount } from '../../dataAccess/webApi/dao/accountDao'\r\n// import { executeGetGuideText } from '../../dataAccess/webApi/dao/controlDao'\r\nimport { translate } from '../../i18n'\r\nimport { signOut } from '../../utils/authUtil'\r\nimport { loginUrl } from '../common/constant/appUrl'\r\n// import { guidTextMstId, yesNo } from '../common/constant/classification'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, reset, showLoading } from '../common/store/slices/application'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { castNonNullable } from '../../utils/typeUtil'\r\n\r\ninterface Inputs {\r\n isConfirmation: string\r\n}\r\n\r\ninterface PageState {\r\n // unsubscribeGuideText: string\r\n deleteResultCode?: number\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const [state, setState] = useState()\r\n\r\n const formMethods = useForm()\r\n\r\n // useEffect(() => {\r\n // addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n // dispatch(\r\n // showLoading(\r\n // errorHandle(async () => {\r\n // const guideText = await executeGetGuideText(guidTextMstId.unsubscribe)\r\n // setState({\r\n // unsubscribeGuideText: guideText.result.guideTextContent,\r\n // })\r\n // })\r\n // )\r\n // )\r\n // // eslint-disable-next-line react-hooks/exhaustive-deps\r\n // }, [])\r\n\r\n const onSubmit = useCallback(async () => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n addOperationLog({ operationId: OperationId.OP_00000156, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n const response = await executeDeleteAccount()\r\n if (response.resultCode) {\r\n // 退会失敗時\r\n setState((old) => ({ ...castNonNullable(old), deleteResultCode: response.resultCode }))\r\n } else {\r\n // 退会成功時\r\n dispatch(notifyMessage(translate('accountUnsubscribe.success.completionMessage')))\r\n\r\n await signOut()\r\n dispatch(reset({ isKeepAuthority: false }))\r\n history.push(loginUrl.url())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [dispatch, errorHandle, history, addOperationLog])\r\n\r\n return {\r\n sysCtrl,\r\n formMethods,\r\n onSubmit,\r\n // unsubscribeGuideText: state?.unsubscribeGuideText,\r\n deleteResultCode: state?.deleteResultCode,\r\n }\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { ButtonContainedBase } from './buttonContainedBase'\r\n\r\n/**\r\n * errorカラーのボタンコントロールLサイズ。\r\n */\r\nexport const ButtonErrorL = styled(ButtonContainedBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n padding: '18px 18px',\r\n backgroundColor: theme.palette.error.main,\r\n borderColor: theme.palette.error.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.error.dark,\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.error.main,\r\n },\r\n },\r\n}))\r\n","import { Stack, styled } from '@mui/material'\r\nimport { useAction } from '../../containers/accountUnsubscribe/accountUnsubscribeService'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonErrorL } from '../components/common/buttons/ButtonErrorL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { CenterGItem, GContainer, GItem } from '../components/common/grids'\r\nimport { CheckBox } from '../components/common/inputs/checkBox'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\n\r\nconst ChecklistBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const AccountUnsubscribe = () => {\r\n // const { sysCtrl, formMethods, onSubmit, unsubscribeGuideText, deleteResultCode } = useAction()\r\n const { sysCtrl, formMethods, onSubmit, deleteResultCode } = useAction()\r\n\r\n if (sysCtrl.unsubscribeAcceptFlag !== yesNo.yes) {\r\n return \r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {translate('accountUnsubscribe.title.about')}\r\n \r\n {/* {unsubscribeGuideText} */}\r\n {sysCtrl.descriptionForUnsubscribe ?? ''}\r\n \r\n \r\n \r\n {translate('accountUnsubscribe.checkbox.isConfirmation')}\r\n \r\n \r\n \r\n {!!deleteResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {translate('accountUnsubscribe.button.forward')}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","// import { executePost, KANRI_API_NAME } from '../common/apiCaller'\r\nimport { executePost } from '../common/apiCaller'\r\nimport { GuideTextData } from '../dto/guideTextDto'\r\n\r\n// const apiName = KANRI_API_NAME\r\nconst apiName = 'public'\r\nconst apiPath = '/guide-text-mst'\r\n\r\n/**\r\n * 案内文IDの定義\r\n */\r\nexport const guideTextId = Object.freeze({\r\n // \"\" : 1,\r\n // \"\" : 2,\r\n \"contactCommonGuideText\" : 3,\r\n \"faqFootnoteGuideText\" : 4,\r\n \"projectTopCommonGuideText\" : 5,\r\n \"emailVerifiedGuideText\": 7,\r\n});\r\n\r\n/**\r\n * 案内文を取得\r\n */\r\n// export const executePostGuideText = (parameter?: Record) => {\r\n// return executePost(apiName, '/guide-text-mst', parameter)\r\n// }\r\nexport const executePostGuideText = (guideTextId?: number) => {\r\n // return executePost(apiName, apiPath, {guideTextId: guideTextId})\r\n return executePost(apiName, apiPath, {guideTextId: guideTextId})\r\n}\r\n\r\n","import { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { showLoading } from '../../containers/common/store/slices/application'\nimport { executePostContacts } from '../../dataAccess/webApi/dao/contactDao'\nimport { executePostGuideText, guideTextId } from '../../dataAccess/webApi/dao/guideTextDao'\nimport { ContactData } from '../../dataAccess/webApi/dto/contactDto'\nimport { GuideTextData } from '../../dataAccess/webApi/dto/guideTextDto'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\n// import { executeApi } from 'dataAccess/webApi/dao/commonDao'\n\n// interface Information {\n// informaionNo: string\n// publicationStartDatetime: Date\n// facilityName: string\n// title: string\n// }\n// interface LinkSettings {\n// link_id: number\n// link_name: string\n// link_url: string\n// }\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n // const sysCtrl = useSelector(selectSystemControl)\n // const isLoggedIn = useSelector(selectIsLoggedIn)\n // const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\n // const isVerifiedTel = useSelector(selectIsVerifiedTel)\n // const history = useHistory()\n const { addOperationLog } = useOperationLog()\n \n const [contactList, setContactList] = useState()\n // const [guideTextList, setGuideTextList] = useState()\n const [guideText, setGuideText] = useState()\n \n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n\n const initialize = async () => {\n // 問合せ先を取得\n { \n const contactList = await getContacts()\n setContactList(contactList)\n console.log(\"contactList\", contactList)\n }\n \n // 案内文を取得\n { \n // const guideTextList = await getContactCommonGuideText()\n // setGuideTextList(guideTextList)\n // console.log(\"guideTextList\", guideTextList)\n const guideText = await getContactCommonGuideText()\n setGuideText(guideText)\n console.log(\"guideText\", guideText)\n }\n \n }\n dispatch(showLoading(errorHandle(initialize)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // // My施設へ遷移\n // const goMyFacility = useCallback(() => {\n // addOperationLog({ operationId: OperationId.OP_00000019 })\n // history.push(myFacilityUrl.url())\n // }, [addOperationLog, history])\n\n // // 予約状況へ遷移\n // const goReservationStatusList = useCallback(() => {\n // addOperationLog({ operationId: OperationId.OP_00000020 })\n // history.push(reservationStatusListUrl.url())\n // }, [addOperationLog, history])\n\n // // 利用履歴へ遷移\n // const goUsageHistory = useCallback(() => {\n // addOperationLog({ operationId: OperationId.OP_00000021 })\n // history.push(usageHistoryUrl.url())\n // }, [addOperationLog, history])\n\n // // はじめてのおあずかり券へ遷移\n // const goCoupon = useCallback(() => {\n // addOperationLog({ operationId: OperationId.OP_00000022 })\n // history.push(couponUrl.url())\n // }, [addOperationLog, history])\n\n return {\n contactList,\n // guideTextList,\n guideText,\n }\n}\n\n/**\n * 問合せ先を一覧取得して返す\n * @return {Array} - linkSettingsのリスト\n */\nconst getContacts = async () => {\n // const response = await executePostLinkSettings()\n const response = await executePostContacts()\n return response.result.map((entry) => {\n const { ...other } = entry\n return {\n ...other,\n }\n })\n}\n\n/**\n * 案内文を取得して返す\n * @return {Array} - linkSettingsのリスト\n */\nconst getContactCommonGuideText = async () => {\n const response = await executePostGuideText( guideTextId.contactCommonGuideText )\n return response.result;\n}\n\n","// import { executePost, KANRI_API_NAME } from '../common/apiCaller'\r\nimport { executePost } from '../common/apiCaller'\r\nimport { ContactData } from '../dto/contactDto'\r\n// import { GuideTextDto, GuideTextData } from '../dto/guideTextDto'\r\n\r\n// const apiName = KANRI_API_NAME\r\nconst apiName = 'public'\r\nconst apiPath = '/contact'\r\n\r\n// /**\r\n// * 当日分を全件取得\r\n// */\r\n// export const executeGetContacts = () => {\r\n// return executeGet(apiName, apiPath)\r\n// }\r\n\r\n/**\r\n * 全件取得\r\n */\r\nexport const executePostContacts = () => {\r\n return executePost(apiName, apiPath)\r\n}\r\n\r\n// /**\r\n// * 案内文を取得\r\n// */\r\n// export const executePostGuideText = () => {\r\n// return executePost(apiName, '/guide-text-mst')\r\n// }\r\n\r\n \r\n","import { Stack, styled } from '@mui/material'\nimport React, { ReactNode } from 'react'\nimport { translate } from '../../i18n'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { GContainer, GItem, GItemContainer, LabelGItemBase, ValueGItemBase } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\n\n\n// import { changeIsLoading } from 'containers/common/isLoading'\n// import { executeApi } from '../../dataAccess/webApi/dao/commonDao'\n// import { ContactData, ContactDto } from '../../dataAccess/webApi/dto/contactDto'\n// import { GuideTextDto, GuideTextData } from '../../dataAccess/webApi/dto/guideTextDto'\n// import { useEffect, useRef, useState } from 'react'\n// import { useDispatch } from 'react-redux'\n// import { useHistory, useParams } from 'react-router'\nimport { useAction } from '../../containers/contact/contactService'\n\nconst ContentBox = styled('div')({\n whiteSpace: 'pre-wrap',\n})\n\nconst LabelGItem = (props: { children?: ReactNode }) => (\n \n {props.children}\n \n)\nconst ValueGItem = (props: { children: ReactNode }) => (\n \n {props.children}\n \n)\n\nexport const Contact = () => {\n const { contactList, guideText } = useAction()\n \n if(contactList == null){\n \n }\n if(guideText == null){\n \n }\n console.log(\"contactList\", contactList);\n console.log(\"guideText\", guideText);\n \n \n return (\n \n \n \n \n \n {/*\n
{translate('contact.text.mainMessage')}
\n\n {translate('contact.text.subMessage')}\n */}\n {guideText?.guideTextContent}\n \n {/*\n \n \n <{translate('contact.label.contact')}>\n {translate('contact.label.division')}\n \n {translate('contact.label.tel')}\n 045-671-3564\n \n \n {translate('contact.label.fax')}\n 045-664-5479\n \n \n {translate('contact.label.email')}\n kd-ichijiyoyaku@city.yokohama.jp\n \n \n \n */}\n \n {contactList && contactList.map((contact) => (\n \n \n \n <{translate('contact.label.contact')}>\n {contact.contactName}\n \n {contact.tel && (contact.tel !== \"\") &&\n \n {translate('contact.label.tel')}\n {contact.tel}\n \n }\n \n {contact.fax && (contact.fax !== \"\") &&\n \n {translate('contact.label.fax')}\n {contact.fax}\n \n }\n \n {contact.email && (contact.email !== \"\") &&\n \n {translate('contact.label.email')}\n {contact.email}\n \n }\n \n {((contact.subject && (contact.subject !== \"\")) || (contact.body && (contact.body !== \"\"))) &&\n
\n お問い合わせメールの例\n
\n {contact.subject && (contact.subject !== \"\") &&\n
件名:{contact.subject}
\n }\n {contact.body && (contact.body !== \"\") &&\n
本文:
{contact.body}
\n }\n
\n
\n }\n
\n
\n /*\n \n \n {link.linkName}\n \n \n */\n ))}\n \n \n
\n
\n \n
\n \n \n \n
\n )\n}\n","import { executeGet, executeGetNoResultError } from '../common/apiCaller'\r\nimport { GetUsageRecordDto, GetUsageRecordsDto, GetUsageRecordsInputDto } from '../dto/usageRecordsDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/usage-records'\r\n\r\nexport const executeGetUsageRecords = (input: GetUsageRecordsInputDto) => {\r\n return executeGet(apiName, apiPath, input)\r\n}\r\n\r\nexport const executeGetUsageRecord = (id: string) => {\r\n return executeGetNoResultError(apiName, `${apiPath}/${id}`)\r\n}\r\n","/**\r\n * 分数をH時間m分形式にフォーマット\r\n *\r\n * @param value 分数\r\n * @returns フォーマットされた文字列\r\n */\r\ntype FormatTimeAmountString = T extends number ? string : T\r\nexport const formatLocaleTimeAmountHm = (value: T): FormatTimeAmountString => {\r\n let result\r\n if (value == null) {\r\n result = value\r\n } else {\r\n const num: number = value\r\n const hour = Math.floor(num / 60)\r\n const minute = num % 60\r\n result = hour + '時間' + minute + '分'\r\n }\r\n return result as FormatTimeAmountString\r\n}\r\n\r\n/**\r\n * 時間を分に変換する。\r\n * 現時点では端数考慮無し。\r\n * 端数考慮する場合は端数処理方法を指定する引数を追加、bignumber.js を使って対処を想定\r\n *\r\n * @param value 時間(1, 2など)\r\n * @returns 分\r\n */\r\nexport const hourToMinute = (value: T): T => {\r\n let result\r\n if (value == null) {\r\n result = value\r\n } else {\r\n const num: number = value\r\n result = num * 60\r\n }\r\n return result as T\r\n}\r\n","import { DateRange, isIncludeDate } from '../../utils/dateUtil'\r\nimport { numberPropsToDate } from '../../utils/objectUtil'\r\nimport { yesNo } from './constant/classification'\r\nimport { SystemControl } from './store/slices/systemControl'\r\n\r\nexport const canUseCouponFunctionFromSysCtrl = (sysCtrl: SystemControl, baseDate: Date) => {\r\n const { useCouponFunctionFlag, usageCouponFromDate, usageCouponToDate } = sysCtrl\r\n\r\n if (useCouponFunctionFlag !== yesNo.yes) {\r\n // クーポン機能オフなら利用不可\r\n return false\r\n }\r\n if (usageCouponFromDate != null && usageCouponToDate != null) {\r\n const usageCouponRange: DateRange = numberPropsToDate({ from: usageCouponFromDate, to: usageCouponToDate }, [\r\n 'from',\r\n 'to',\r\n ])\r\n if (!isIncludeDate(baseDate, usageCouponRange)) {\r\n // クーポン利用期間外なら利用不可\r\n return false\r\n }\r\n }\r\n\r\n return true\r\n}\r\n","import { SelectChangeEvent } from '@mui/material'\r\nimport { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeGetCouponsIssues } from '../../dataAccess/webApi/dao/couponsDao'\r\nimport { executeGetReservations } from '../../dataAccess/webApi/dao/reservationsDao'\r\nimport { executeGetUsageRecords } from '../../dataAccess/webApi/dao/usageRecordsDao'\r\nimport { formatYmd, fromApiYmd, fromApiYmdHms, getNowTrimedTime } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined, undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { formatLocaleTimeAmountHm } from '../../utils/timeUtil'\r\nimport { ChildrenChoice, getChildrenChoices } from '../common/child'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { canUseCouponFunctionFromSysCtrl } from '../common/coupon'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\n\r\ninterface LocationState {\r\n /** アクティブなお子さまIDの値 */\r\n childId?: string\r\n /** アクティブなタブの値 */\r\n tabValue?: string\r\n}\r\n\r\ninterface Reservation {\r\n reservationNo: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n}\r\ninterface UsageHistory {\r\n reservationNo: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n usageMinute?: string\r\n}\r\ninterface CouponsIssues {\r\n couponsIssuedFlag: string\r\n totalLimitUsageMinute: number\r\n totalTotalBalanceMinute: number\r\n couponlimitList: CouponLimit[]\r\n}\r\ninterface CouponLimit {\r\n limitDate: string\r\n totalBalanceMinute: string\r\n}\r\ninterface PageState {\r\n activeChildId?: string\r\n activeTabValue: string\r\n /**\r\n * 利用予約。\r\n * 予約側表示時のみ設定。\r\n */\r\n reservations?: Reservation[]\r\n /**\r\n * 利用履歴。\r\n * 実績側表示時のみ設定。\r\n */\r\n usageHistorys?: UsageHistory[]\r\n childs: ChildrenChoice[]\r\n couponsIssues?: CouponsIssues\r\n}\r\n\r\n/** タブの選択値 */\r\nexport const tabValue = {\r\n reservation: '1',\r\n usageRecord: '2',\r\n} as const\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const locationState = history.location.state\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const [state, setState] = useState({\r\n activeChildId: locationState?.childId,\r\n activeTabValue: locationState?.tabValue ?? tabValue.reservation,\r\n childs: [],\r\n })\r\n const [showCouponFunctionFlag, setShowCouponFunctionFlag] = useState(false)\r\n\r\n const load = useCallback(\r\n (\r\n isInitialize: boolean,\r\n loadedChilds: { value: string; label: string }[],\r\n activeTabValue: string,\r\n activeChildId?: string\r\n ) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n let callGetChildren\r\n let callGetReservations\r\n let callGetUsageHistorys\r\n if (isInitialize) {\r\n callGetChildren = getChildrenChoices()\r\n }\r\n if (activeTabValue === tabValue.reservation) {\r\n // クーポン利用期間外なら利用対象予約なしとする\r\n callGetReservations = canUseCouponFunctionFromSysCtrl(sysCtrl, getNowTrimedTime())\r\n ? getReservations(activeChildId)\r\n : []\r\n } else {\r\n callGetUsageHistorys = getUsageHistorys(activeChildId)\r\n }\r\n const callGetCouponsIssues = getCouponsIssue()\r\n\r\n const [childs, reservations, usageHistorys, couponsIssues] = await Promise.all([\r\n callGetChildren ?? loadedChilds,\r\n callGetReservations,\r\n callGetUsageHistorys,\r\n callGetCouponsIssues,\r\n ])\r\n\r\n if (sysCtrl.useCouponFunctionFlag === yesNo.yes && couponsIssues.couponsIssuedFlag === yesNo.yes) {\r\n //クーポン画面表示が可能\r\n setShowCouponFunctionFlag(true)\r\n }\r\n\r\n setState({\r\n activeChildId,\r\n activeTabValue,\r\n reservations,\r\n usageHistorys,\r\n childs,\r\n couponsIssues,\r\n })\r\n }),\r\n isHiddenMain: isInitialize,\r\n })\r\n )\r\n },\r\n [dispatch, errorHandle, sysCtrl]\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n load(true, state.childs, state.activeTabValue, state.activeChildId)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n // 戻るで表示した際にアクティブなタブなどを復元する為に履歴に保管\r\n history.replace({ ...history.location, state: { childId: state.activeChildId, tabValue: state.activeTabValue } })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [state.activeChildId, state.activeTabValue])\r\n\r\n const changeChild = useCallback(\r\n (event: SelectChangeEvent) => {\r\n addOperationLog({ operationId: OperationId.OP_00000028 })\r\n\r\n load(false, state.childs, state.activeTabValue, event.target.value)\r\n },\r\n [state, load, addOperationLog]\r\n )\r\n\r\n const changeTab = useCallback(\r\n (value: string) => {\r\n if (value === tabValue.reservation) {\r\n addOperationLog({ operationId: OperationId.OP_00000062 })\r\n } else if (value === tabValue.usageRecord) {\r\n addOperationLog({ operationId: OperationId.OP_00000063 })\r\n }\r\n\r\n load(false, state.childs, value, state.activeChildId)\r\n },\r\n [state, load, addOperationLog]\r\n )\r\n\r\n return {\r\n ...state,\r\n changeChild,\r\n changeTab,\r\n showCouponFunctionFlag,\r\n }\r\n}\r\n\r\nconst getReservations = async (childId?: string) => {\r\n const response = await executeGetReservations(undefinedPropsToNull({ \r\n childId: childId,\r\n couponUsageTargetFlag: yesNo.yes,\r\n confirmedOnlyGetFlag: yesNo.yes,\r\n }))\r\n return response.result.map((reservation) => {\r\n const { usageDate, useFromDatetime, useToDatetime, ...other } = reservation\r\n return nullPropsToUndefined({\r\n ...other,\r\n usageDate: fromApiYmd(usageDate),\r\n useFromDatetime: fromApiYmdHms(useFromDatetime),\r\n useToDatetime: fromApiYmdHms(useToDatetime),\r\n })\r\n })\r\n}\r\nconst getUsageHistorys = async (childId?: string) => {\r\n const response = await executeGetUsageRecords(\r\n undefinedPropsToNull({ yyyymm: null, childId: childId, couponUsageTargetFlag: yesNo.yes })\r\n )\r\n return response.result.map((usageHistory) => {\r\n const { usageDate, useFromDatetime, useToDatetime, usageMinute, ...other } = usageHistory\r\n return nullPropsToUndefined({\r\n ...other,\r\n usageDate: fromApiYmd(usageDate),\r\n useFromDatetime: fromApiYmdHms(useFromDatetime),\r\n useToDatetime: fromApiYmdHms(useToDatetime),\r\n usageMinute: formatLocaleTimeAmountHm(usageMinute),\r\n })\r\n })\r\n}\r\nconst getCouponsIssue = async () => {\r\n const response = await executeGetCouponsIssues()\r\n let totalLimitUsageMinute = 0\r\n let totalTotalBalanceMinute = 0\r\n response.result.forEach((coupon) => {\r\n totalLimitUsageMinute += coupon.limitUsageMinute\r\n totalTotalBalanceMinute += coupon.totalBalanceMinute\r\n })\r\n const couponlimitList = response.result.map((coupon) => {\r\n return {\r\n limitDate: formatYmd(fromApiYmd(coupon.limitDate)),\r\n totalBalanceMinute: formatLocaleTimeAmountHm(coupon.totalBalanceMinute),\r\n }\r\n })\r\n const couponsIssuedFlag = response.result.length > 0 ? yesNo.yes : yesNo.no\r\n return {\r\n couponsIssuedFlag,\r\n totalLimitUsageMinute: totalLimitUsageMinute,\r\n totalTotalBalanceMinute,\r\n couponlimitList,\r\n }\r\n}\r\n","import React from 'react'\nimport AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'\nimport { IconProps } from './iconBase'\n\n/**\n * プラスマークアイコン\n */\nexport const PlusCircleOutlineIcon = (props: IconProps) => {\n return \n}\n","import React from 'react'\r\nimport { Box, styled } from '@mui/material'\r\n\r\ninterface PageTitleProps {\r\n title: string\r\n subTitle?: string\r\n}\r\n\r\nconst Root = styled(Box)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL2,\r\n letterSpacing: '0.2em',\r\n color: theme.palette.secondary.main,\r\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\r\n}))\r\nconst SubTitle = styled('span')(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n}))\r\n\r\nexport const PageTitle = (props: PageTitleProps) => {\r\n return (\r\n \r\n {props.title}\r\n {props.subTitle && (\r\n <>\r\n {'-'}\r\n {props.subTitle}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { CardActionArea, styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface CardProps {\r\n /** カードのコンテンツ(カードの内に表示する内容) */\r\n children: ReactNode\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n /** カードをクリックしたときに呼び出される関数 */\r\n onClick?: () => void\r\n}\r\n\r\nconst Root = styled('div')(({ theme }) => ({\r\n fontFamily: theme.typography.fontFamily,\r\n fontSize: theme.typography.font.sizeM,\r\n fontWeight: theme.typography.fontWeightBold,\r\n borderRadius: 4,\r\n backgroundColor: theme.palette.white.main,\r\n border: `1px solid ${theme.palette.secondary.main}`,\r\n width: '100%',\r\n padding: '15px',\r\n}))\r\n\r\n/** カード型枠を表示するコントロール */\r\nexport const Card = (props: CardProps) => {\r\n const content = {props.children}\r\n return props.onClick ? {content} : <>{content}\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { getReservationStatusLabel } from '../../../../containers/common/codeMaster'\r\nimport { facilityReservationDetailUrl } from '../../../../containers/common/constant/appUrl'\r\nimport { translate } from '../../../../i18n'\r\nimport { formatHmtoHmOver, formatYmdWeek } from '../../../../utils/dateUtil'\r\nimport { Card } from '../card'\r\nimport { LabelGItemBase, RightGItem, ValueGItemBase } from '../grids'\r\nimport { Link } from '../link'\r\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\r\n\r\ninterface ReservationCardProps {\r\n reservationNo: string\r\n childName: string\r\n facilityName: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n status: string\r\n isCpuponFlag?: boolean\r\n isTodayConditionInput?: string\r\n todayConditionInputName?: string | null\r\n todayConditionInputEndTime?: string | null\r\n}\r\n\r\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\r\nconst LabelItemRed = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nexport const ReservationCard = (props: ReservationCardProps) => {\r\n return (\r\n \r\n \r\n {translate('system.reservationCard.label.reservationDatetime')}\r\n \r\n \r\n
{formatYmdWeek(props.usageDate)}
\r\n
{formatHmtoHmOver({ from: props.useFromDatetime, to: props.useToDatetime }, props.usageDate)}
\r\n
\r\n
\r\n {translate('system.reservationCard.label.facilityName')}\r\n {props.facilityName}\r\n {translate('system.reservationCard.label.childName')}\r\n {props.childName}\r\n {translate('system.reservationCard.label.status')}\r\n {getReservationStatusLabel(props.status)}\r\n {props.isTodayConditionInput === \"1\" &&\r\n props.todayConditionInputName &&\r\n props.todayConditionInputEndTime && (\r\n \r\n {\r\n translate(\r\n 'system.reservationCard.label.todayConditionInput',\r\n props.todayConditionInputEndTime,\r\n props.todayConditionInputName\r\n )\r\n }\r\n \r\n )}\r\n \r\n {props.isCpuponFlag === true ? (\r\n \r\n {`${translate('system.reservationCard.text.timeInput')}>`}\r\n \r\n ) : (\r\n \r\n {`${translate('system.reservationCard.text.reservationDetail')}>`}\r\n \r\n )}\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { getUsageRecordApiStatusLabel } from '../../../../containers/common/codeMaster'\r\nimport { usageHistoryDetailUrl } from '../../../../containers/common/constant/appUrl'\r\nimport { translate } from '../../../../i18n'\r\nimport { formatHmtoHmOver, formatYmdWeek } from '../../../../utils/dateUtil'\r\nimport { Card } from '../card'\r\nimport { LabelGItemBase, RightGItem, ValueGItemBase } from '../grids'\r\nimport { Link } from '../link'\r\n\r\ninterface UsageHistoryCardProps {\r\n reservationNo: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n usageMinute?: string\r\n operationId?: string\r\n}\r\n\r\nconst LabelItem = (props: { children: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nexport const UsageHistoryCard = (props: UsageHistoryCardProps) => {\r\n let usageMinute\r\n if (props.usageMinute) {\r\n usageMinute = (\r\n <>\r\n {translate('system.usageHistoryCard.label.couponUsageMinute')}\r\n {props.usageMinute}\r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n {translate('system.usageHistoryCard.label.usageDatetime')}\r\n \r\n \r\n
{formatYmdWeek(props.usageDate)}
\r\n
{formatHmtoHmOver({ from: props.useFromDatetime, to: props.useToDatetime }, props.usageDate)}
\r\n
\r\n
\r\n {translate('system.usageHistoryCard.label.facilityName')}\r\n {props.facilityName}\r\n {translate('system.usageHistoryCard.label.childName')}\r\n {props.childName}\r\n {translate('system.usageHistoryCard.label.status')}\r\n {getUsageRecordApiStatusLabel(props.status)}\r\n {usageMinute}\r\n \r\n {props.operationId ? (\r\n {`${translate('system.button.detail')}>`}\r\n ) : (\r\n {`${translate('system.button.detail')}>`}\r\n )}\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport React, { Fragment } from 'react'\r\n\r\ninterface TabBarProps {\r\n value: string\r\n valueLabels: { value: string; label: string }[]\r\n onChange?: (value: string) => void\r\n}\r\n\r\nconst Root = styled('div')({\r\n display: 'flex',\r\n})\r\nconst Tab = styled('div', {\r\n shouldForwardProp: (prop) => prop !== 'isActive',\r\n})<{ isActive: boolean }>(({ theme, isActive }) => ({\r\n ...(isActive\r\n ? {\r\n border: `1px solid ${theme.palette.secondary.main}`,\r\n borderBottom: 'none ',\r\n }\r\n : {\r\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\r\n cursor: 'pointer',\r\n color: theme.palette.grayDark.main,\r\n }),\r\n padding: '5px 15px',\r\n borderRadius: '5px 5px 0 0',\r\n}))\r\nconst Separator = styled('div')({\r\n width: '10px',\r\n borderBottom: '1px solid',\r\n})\r\nconst Spacer = styled('div')({\r\n flexGrow: 1,\r\n borderBottom: '1px solid',\r\n})\r\n\r\nexport const TabBar = (props: TabBarProps) => {\r\n return (\r\n \r\n {props.valueLabels.map(({ value, label }, index) => {\r\n const isActive = props.value === value\r\n return (\r\n \r\n props.onChange?.(value) })}>\r\n {label}\r\n \r\n {props.valueLabels[index + 1] && }\r\n \r\n )\r\n })}\r\n \r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { translate } from '../../../i18n'\r\nimport { BottomGItem, GContainer, MiddleGItem } from './grids'\r\nimport { SizeLabelBase } from './sizeLabelBase'\r\n\r\nconst Label = styled(SizeLabelBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeLL1,\r\n}))\r\n\r\ninterface TimeAmountContentProps {\r\n value?: number\r\n subValue?: number\r\n}\r\nconst splitAmount = (value?: number) => {\r\n if (value == null) {\r\n return {\r\n hour: 0,\r\n minute: 0,\r\n }\r\n }\r\n const hour = Math.floor(value / 60)\r\n const minute = value % 60\r\n return {\r\n hour: hour,\r\n minute: minute,\r\n }\r\n}\r\nconst Content = styled('div')(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL2,\r\n paddingBottom: '5px',\r\n}))\r\nexport const TimeAmountContent = (props: TimeAmountContentProps) => {\r\n const { value, subValue } = props\r\n const { hour, minute } = splitAmount(value)\r\n const subHour = splitAmount(subValue).hour\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n /{subHour}\r\n {translate('system.label.hours')}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Box, Collapse, Grid, Stack, styled } from '@mui/material'\r\nimport { useCallback, useState } from 'react'\r\nimport { rootUrl } from '../../containers/common/constant/appUrl'\r\nimport { tabValue, useAction } from '../../containers/coupon/couponService'\r\nimport { getClassificationValueLabels, translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { CenterGItem, GContainer, GItem, MiddleGItem, RowSpacerGItem } from '../components/common/grids'\r\nimport { MinusCircleOutlineIcon } from '../components/common/icons/minusCircleOutlineIcon'\r\nimport { PlusCircleOutlineIcon } from '../components/common/icons/plusCircleOutlineIcon'\r\nimport { SelectNoBind } from '../components/common/inputs/selectNoBind'\r\nimport { Link } from '../components/common/link'\r\nimport { PageTitle } from '../components/common/pageTitle'\r\nimport { ReservationCard } from '../components/common/reservation/reservationCard'\r\nimport { UsageHistoryCard } from '../components/common/reservation/usageHistoryCard'\r\nimport { TabBar } from '../components/common/tabBar'\r\nimport { TimeAmountContent } from '../components/common/timeAmountContent'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\nimport { OperationId } from '../../containers/common/constant/operationLog'\r\n\r\nconst ExistResultMessageCard = styled('div')({\r\n marginBottom: '20px',\r\n textAlign: 'center',\r\n})\r\nconst NoResultMessageCard = styled('div')({\r\n padding: '20px 0',\r\n textAlign: 'center',\r\n whiteSpace: 'pre-wrap',\r\n})\r\nconst CouponCenterGItem = styled(CenterGItem)({\r\n margin: '30px 0 15px 0',\r\n})\r\nconst CouponlimitDateListCenterGItem = styled(CenterGItem)({\r\n margin: '15px 0 30px 0',\r\n display: 'flex',\r\n})\r\n\r\nconst MinusCircleOutlineBlackIcon = styled(MinusCircleOutlineIcon)(({ theme }) => ({\r\n color: theme.palette.secondary.main,\r\n fontSize: '1.5rem',\r\n margin: '2px 10px 0 0',\r\n}))\r\nconst PlusCircleOutlineBlackIcon = styled(PlusCircleOutlineIcon)(({ theme }) => ({\r\n color: theme.palette.secondary.main,\r\n fontSize: '1.5rem',\r\n margin: '2px 10px 0 0',\r\n}))\r\nconst CouponLimitDateListGItem = styled(GItem)({\r\n marginRight: '10px',\r\n})\r\nconst CouponLimitDateHeaderGItem = styled(GItem)({\r\n margin: '0 15px 5px 0',\r\n})\r\nexport const Coupon = () => {\r\n const {\r\n activeChildId,\r\n childs,\r\n changeChild,\r\n activeTabValue,\r\n changeTab,\r\n reservations,\r\n usageHistorys,\r\n couponsIssues,\r\n showCouponFunctionFlag,\r\n } = useAction()\r\n const [isShownCouponLimitDateList, setIsShownCouponLimitDateList] = useState(false)\r\n const toggleDetail = useCallback(\r\n () => setIsShownCouponLimitDateList(!isShownCouponLimitDateList),\r\n [isShownCouponLimitDateList]\r\n )\r\n let contents\r\n if (reservations) {\r\n contents = reservations.map((reservation) => (\r\n \r\n ))\r\n } else if (usageHistorys) {\r\n contents = usageHistorys.map((usageHistory) => (\r\n \r\n ))\r\n }\r\n if (contents == null || couponsIssues == null) {\r\n return null\r\n }\r\n if (!showCouponFunctionFlag) {\r\n return \r\n }\r\n\r\n const limitDateList = couponsIssues.couponlimitList.map((data, index) => {\r\n return (\r\n \r\n {data.limitDate}\r\n {data.totalBalanceMinute}\r\n \r\n )\r\n })\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n {isShownCouponLimitDateList ? : }\r\n \r\n \r\n \r\n \r\n {translate('coupon.text.byLimitDate')}\r\n {translate('coupon.text.remainingTime')}\r\n \r\n {limitDateList}\r\n \r\n \r\n \r\n \r\n {translate('coupon.label.selectionChild')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {contents.length ? (\r\n <>\r\n {activeTabValue === tabValue.reservation && (\r\n {translate('coupon.text.existReservations')}\r\n )}\r\n {contents}\r\n \r\n ) : (\r\n \r\n {translate(\r\n activeTabValue === tabValue.reservation ? 'coupon.text.noReservation' : 'coupon.text.noUsageHistory'\r\n )}\r\n \r\n )}\r\n \r\n
\r\n \r\n
\r\n \r\n {translate('system.button.backToHome')}\r\n \r\n
\r\n )\r\n}\r\n","import React from 'react'\nimport DoNotDisturbOnOutlinedIcon from '@mui/icons-material/DoNotDisturbOnOutlined'\nimport { IconProps } from './iconBase'\n\n/**\n * マイナスマークアイコン\n */\nexport const MinusCircleOutlineIcon = (props: IconProps) => {\n return \n}\n","// 利用目的マスタ情報に関する共通処理を定義\nimport { executeGetUseReason } from '../../dataAccess/webApi/dao/useReasonDao'\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\n\n/**\n * @returns 利用目的マスタ情報\n */\nexport const getUseReason = async () => {\n const apiResponse = await executeGetUseReason()\n const result = nullPropsToUndefined(apiResponse.result)\n return result\n}\n","import { executeGetNoResultError } from '../common/apiCaller'\nimport { GetUseReasonDto } from '../dto/useReasonDto'\n\nconst apiName = 'public'\nconst apiPath = '/use-reason'\n\nexport const executeGetUseReason = () => {\n return executeGetNoResultError(apiName, apiPath)\n}\n","export const DecodeMstCategory = {\n // ~予約関連~\n // 病名\n DIAGNOSIS: 'diagonosis',\n // 症状\n SYMPTOM: 'symptom',\n // 流行り病\n EPIDEMIC: 'epidemic',\n // 児童の容体が変化した場合\n EMERGENCY: 'emergency_action',\n // 栄養方法\n EATING_METHOD: 'eating_method',\n // 栄養方法>授乳中詳細\n BREST_FEEDING_DETAIL: 'brest_feeding_detail',\n // 栄養方法>離乳中詳細\n WEANING_DETAIL_OPTION: 'weaning_detail_options',\n // 食事状況\n EATING_ABILITY: 'eating_ability',\n // 行動\n ACTION: 'actions',\n // 排泄\n TOILET_ABILITY: 'toilet_ability',\n // 排泄\n REDUCTION: 'reduction_type',\n // 利用事由\n FORM_USE_REASON: 'form_use_reason',\n // 抽選予約キャンセル理由\n LOTTERY_CANCEL_REASON: 'lottery_cancel_reason',\n\n // 時間外料金の曜日設定\n SCHEDULED_DAY_TYPE: 'scheduled_day_type',\n // 時間外料金の時間\n TIME_UNIT_TYPE: 'time_unit_type',\n // 年齢別料金の時間\n AGE_REGION_BASED_FEE_TYPE: 'age_region_based_fee_type',\n // 年齢別料金の設定日\n AGE_REGION_BASED_FEE_DAY_TYPE: 'age_region_based_fee_day_type',\n /** 通常利用施設 施設種別 */\n NORMALLY_USED_FACILITIES_TYPE: 'normally_used_facilities_type',\n} as const\nexport type DecodeMstCategory = (typeof DecodeMstCategory)[keyof typeof DecodeMstCategory]\n","import { executePost } from '../common/apiCaller'\nimport { PostDecodeMstByCategoriesInputDto, PostDecodeMstDto, PostDecodeMstInputDto } from '../dto/decodeMstDto'\n\nconst apiName = 'public'\nconst apiPath = '/decode-mst'\n\nexport const executePostDecodeMst = (input: PostDecodeMstInputDto) => {\n return executePost(apiName, apiPath, input)\n}\n\nexport const executePostDecodeMstByCategories = (input: PostDecodeMstByCategoriesInputDto) => {\n return executePost(apiName, `${apiPath}/categories`, input)\n}\n","import { executePostDecodeMstByCategories } from '../../dataAccess/webApi/dao/decodeMstDao'\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto'\nimport { DecodeMstCategory } from './constant/decodeMst'\n\nexport type GetDecodeMstByCategoriesReturn = Partial<{ [key in DecodeMstCategory]: PostDecodeMstDto[] }>\ntype GetDecodeMstByCategories = (categories: DecodeMstCategory[]) => Promise\n\n/**\n * 1リクエストで複数の異なるcategoryを持つdecodeMstを取得\n *\n * @param categories DecodeMstCategory[]\n * @returns GetDecodeMstByCategoriesReturn\n */\nexport const getDecodeMstByCategories: GetDecodeMstByCategories = async (categories) => {\n const returnDecodeMst: GetDecodeMstByCategoriesReturn = {}\n const res = await executePostDecodeMstByCategories({ categories })\n\n categories.forEach((category) => {\n returnDecodeMst[category] = res.result.filter((decodeMst) => decodeMst.category === category)\n })\n\n return returnDecodeMst\n}\n\n/**\n * 取得したdecodeMstからnameを取得\n *\n * @param {GetDecodeMstByCategoriesReturn} decodeMst\n * @param {number|string} code\n * @returns {string}\n */\nexport const getDecodeMstName = (\n decodeMst: GetDecodeMstByCategoriesReturn,\n category: DecodeMstCategory,\n code: number | string\n): string => {\n const decode = decodeMst[category]\n if (!decode) return ''\n\n const findDecode = decode.find((decode) => decode.code === (typeof code === 'string' ? code : String(code)))\n\n if (!findDecode) return ''\n return findDecode.name\n}\n\n\nexport type GetDecodeMstValuesInput = {\n [key: string]: DecodeMstCategory\n}\n/**\n * 1リクエストで複数の異なるcategoryを持つdecodeMstを取得する\n * @param categoryObejct カテゴリのデコードマスタデータを格納したいkeyをkey, 取得したいデコードマスタデータのカテゴリ名をvalue\n * @returns categoryObejctのkeyに対して対応する取得したデコードマスタデータの配列を持つ\n */\nexport const getDecodeMstValues = async <\n T extends GetDecodeMstValuesInput\n>(\n categoryObject: T\n): Promise<{ [K in keyof T]: PostDecodeMstDto[] }> => {\n const result = (\n await executePostDecodeMstByCategories({ categories: Object.values(categoryObject) })\n ).result;\n\n const keys = Object.keys(categoryObject);\n\n return result.reduce((acc, data) => {\n const key = keys.find((key) => categoryObject[key] === data.category);\n if (acc[key as keyof T]) {\n acc[key as keyof T].push(data);\n } else {\n acc[key as keyof T] = [data];\n }\n return acc;\n }, {} as { [K in keyof T]: PostDecodeMstDto[] });\n};\n\nexport type GetDecodemstValuesReturn = {\n [K in keyof T]: PostDecodeMstDto[];\n};\n","import { executeGetResidenceCategoryMst } from '../../dataAccess/webApi/dao/residenceCategoryMstDao'\nimport { LOCATION_STATUS } from './constant/commonConstant'\n\nexport type GetLocationStatusReturn = { id: LOCATION_STATUS; name: string }[]\ntype GetLocationStatus = () => Promise\n\n/**\n * 適応地域を返す\n *\n * @returns GetLocationStatusReturn\n */\nexport const getLocationStatus: GetLocationStatus = async () => {\n const res = await executeGetResidenceCategoryMst()\n const residenceCategory = res.result\n const locationStatus: GetLocationStatusReturn = [\n { id: LOCATION_STATUS.COMMON, name: '通常' },\n { id: LOCATION_STATUS.INSIDE, name: residenceCategory.insideName },\n ]\n if (residenceCategory.outsideName)\n locationStatus.push({ id: LOCATION_STATUS.OUTSIDE, name: residenceCategory.outsideName })\n if (residenceCategory.otherName) locationStatus.push({ id: LOCATION_STATUS.OTHER, name: residenceCategory.otherName })\n\n return locationStatus\n}\n","import { Analytics } from 'aws-amplify'\r\nimport { MouseEvent, useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router'\r\nimport { showLoading } from '../../containers/common/store/slices/application'\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { ElapsedMillisecond, toApiYmd } from '../../utils/dateUtil'\r\nimport { NullPropsToUndefinedType } from '../../utils/typeUtil'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { getUseReason } from '../common/useReason'\r\nimport { DecodeMstCategory } from '../common/constant/decodeMst'\r\nimport { getDecodeMstByCategories, GetDecodeMstByCategoriesReturn } from '../common/decodeMst'\r\nimport { executePostUsageFeeSetting } from '../../dataAccess/webApi/dao/usageFeeSettingDao'\r\nimport { PostUsageFeeSettingDto } from '../../dataAccess/webApi/dto/usageFeeSettingDto'\r\nimport { getLocationStatus, GetLocationStatusReturn } from '../common/locationStatus'\r\n\r\ninterface UrlParams {\r\n facilityId: string\r\n}\r\n\r\ninterface LocationState {\r\n /** 空き状況基準日 */\r\n availabilityBaseDate?: ElapsedMillisecond\r\n documentFileUri?: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const { facilityId } = useParams()\r\n const currentHistory = useHistory()\r\n const locationState = currentHistory.location.state\r\n\r\n const [facility, setFacility] = useState>()\r\n const [useReason, setUseReason] = useState>()\r\n const [decodeMst, setDecodeMst] = useState({})\r\n const [usageFeeSetting, setUsageFeeSetting] = useState(null)\r\n const [locationStatus, setLocationStatus] = useState([])\r\n const dispatch = useDispatch()\r\n\r\n const onClickLink = (\r\n event: MouseEvent,\r\n documentInfo: {\r\n documentFileUrl: string | null\r\n documentFileName: string | null\r\n }\r\n ) => {\r\n event.preventDefault()\r\n\r\n if (!documentInfo.documentFileUrl && documentInfo.documentFileName) {\r\n window.open(documentInfo.documentFileName,)\r\n return\r\n }\r\n\r\n if (!documentInfo.documentFileName && documentInfo.documentFileUrl) {\r\n const lastSegment = documentInfo.documentFileUrl.substring(\r\n documentInfo.documentFileUrl.lastIndexOf('/') + 1\r\n )\r\n fetch(documentInfo.documentFileUrl)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob)\r\n const a = document.createElement('a')\r\n a.style.display = 'none'\r\n a.href = url\r\n a.download = lastSegment\r\n document.body.appendChild(a)\r\n a.click()\r\n window.URL.revokeObjectURL(url)\r\n document.body.removeChild(a)\r\n })\r\n .catch((error) => console.error('ダウンロードエラー:', error))\r\n return\r\n }\r\n\r\n if (documentInfo.documentFileUrl && documentInfo.documentFileName) {\r\n fetch(documentInfo.documentFileUrl)\r\n .then((response) => response.blob())\r\n .then((blob) => {\r\n const url = window.URL.createObjectURL(blob)\r\n const a = document.createElement('a')\r\n a.style.display = 'none'\r\n a.href = url\r\n a.download = documentInfo.documentFileName ?? ''\r\n document.body.appendChild(a)\r\n a.click()\r\n window.URL.revokeObjectURL(url)\r\n document.body.removeChild(a)\r\n })\r\n .catch((error) => console.error('ダウンロードエラー:', error))\r\n return\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [facilityDto, useReasonDto, resDecodeMst, resUsageFeeSetting, resLocationStatus] = await Promise.all([\r\n getFacility(facilityId),\r\n getUseReason(),\r\n getDecodeMstByCategories([\r\n DecodeMstCategory.AGE_REGION_BASED_FEE_TYPE,\r\n DecodeMstCategory.SCHEDULED_DAY_TYPE,\r\n DecodeMstCategory.AGE_REGION_BASED_FEE_DAY_TYPE,\r\n DecodeMstCategory.TIME_UNIT_TYPE,\r\n ]),\r\n executePostUsageFeeSetting({\r\n facilityId,\r\n targetDate: toApiYmd(new Date())\r\n }),\r\n getLocationStatus()\r\n ])\r\n\r\n setUsageFeeSetting(resUsageFeeSetting.result)\r\n setDecodeMst(resDecodeMst)\r\n setLocationStatus(resLocationStatus)\r\n\r\n setFacility(facilityDto)\r\n setUseReason(useReasonDto)\r\n })\r\n )\r\n )\r\n // AmazonPinpointへ追加情報送信。\r\n sendAnalyticsRecord(facilityId)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return {\r\n facilityId,\r\n facility,\r\n useReason,\r\n availabilityBaseDate: locationState?.availabilityBaseDate,\r\n decodeMst,\r\n usageFeeSetting,\r\n locationStatus,\r\n onClickLink,\r\n }\r\n}\r\n\r\n/**\r\n * AmazonPinpointへ追加情報送信\r\n * 呼び出し完了を待つ必要は無くエラーのハンドリング不要、awaitしないこと\r\n * @param facilityId 表示している施設ID\r\n */\r\nconst sendAnalyticsRecord = (facilityId: string) => {\r\n Analytics.record({\r\n name: 'facilityDetail',\r\n attributes: { facilityId },\r\n })\r\n}\r\n","import FaceIcon from '@mui/icons-material/Face'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 受入年齢項目用アイコン */\r\nexport const AcceptAgeIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import ComputerIcon from '@mui/icons-material/Computer'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** Web予約受付可否用アイコン */\r\nexport const AcceptWebReservationIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import HelpIcon from '@mui/icons-material/Help'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 問い合わせ項目のアイコン */\r\nexport const InquiryIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import MuiLinkIcon from '@mui/icons-material/Link'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** HPへのリンクを示すアイコン */\r\nexport const LinkIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import React from 'react'\r\nimport LocationOnIcon from '@mui/icons-material/LocationOn'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 場所を示すアイコン */\r\nexport const LocationIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import SignpostIcon from '@mui/icons-material/Signpost'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 郵便番号項目のアイコン */\r\nexport const PostalCodeIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import BusinessIcon from '@mui/icons-material/Business'\nimport { IconProps } from './iconBase'\n\n/**\n * 事業アイコン\n */\nexport const ProjectIcon = (props: IconProps) => {\n return \n}\n","import React from 'react'\r\nimport CallIcon from '@mui/icons-material/Call'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 電話番号項目のアイコン */\r\nexport const TelIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import React from 'react'\r\nimport AccessTimeIcon from '@mui/icons-material/AccessTime'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 受入時間項目のアイコン */\r\nexport const TimeIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import MuiTrainIcon from '@mui/icons-material/Train'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 最寄り駅項目のアイコン */\r\nexport const TrainIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import EditIcon from '@mui/icons-material/Edit'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 利用用途項目のアイコン */\r\nexport const UsageIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import DirectionsWalkIcon from '@mui/icons-material/DirectionsWalk'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 最寄り駅などからの時間項目のアイコン */\r\nexport const WalkIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import React from 'react'\r\nimport { styled } from '@mui/material'\r\n\r\ninterface ImageProps {\r\n className?: string\r\n imageUrl?: string\r\n}\r\n\r\nconst Root = styled('img')({\r\n width: '100%',\r\n})\r\n\r\nexport const Image = (props: ImageProps) => {\r\n const imgUrlFileName = props.imageUrl ? props.imageUrl.split('/').reverse()[0] : ''\r\n return props.imageUrl ? (\r\n \r\n ) : null\r\n}\r\n","import { styled, Theme, useMediaQuery } from '@mui/material'\r\nimport React, { useCallback, useMemo, useState } from 'react'\r\nimport { Carousel } from 'react-responsive-carousel'\r\nimport 'react-responsive-carousel/lib/styles/carousel.min.css'\r\nimport { Dialog } from './dialog'\r\nimport { Image } from './image'\r\n\r\ninterface ImageCarouselProps {\r\n imageUrls: string[]\r\n}\r\n\r\ninterface DialogState {\r\n isOpen: boolean\r\n initialIndex?: number\r\n}\r\n\r\nconst CarouselBase = styled(Carousel)({\r\n ul: {\r\n paddingInlineStart: 0,\r\n },\r\n '.thumb,.slide': {\r\n userSelect: 'none',\r\n },\r\n})\r\n\r\nconst MainCarousel = styled(CarouselBase, { shouldForwardProp: (prop) => prop !== 'isClicableItem' })<{\r\n isClicableItem?: boolean\r\n}>(({ isClicableItem }) => ({\r\n ...(isClicableItem && {\r\n '.slide': {\r\n cursor: 'pointer',\r\n },\r\n }),\r\n}))\r\nconst DialogCarousel = styled(CarouselBase)({\r\n height: 'calc(100% - 10px)',\r\n ' .carousel-slider, .slider-wrapper, .slider, .slide': {\r\n height: '100%',\r\n },\r\n})\r\n\r\nconst ContainImage = styled(Image)(({ theme }) => ({\r\n objectFit: 'contain',\r\n backgroundColor: theme.palette.secondary.main,\r\n}))\r\nconst MainImage = styled(ContainImage)({\r\n height: 8 * 40,\r\n})\r\nconst ThumbImage = styled(ContainImage)({\r\n height: 8 * 8,\r\n})\r\nconst DialogImage = styled(ContainImage)({\r\n height: '100%',\r\n})\r\n\r\nexport const ImageCarousel = (props: ImageCarouselProps) => {\r\n const isUpMd = useMediaQuery((theme) => theme.breakpoints.up('md'))\r\n const [dialogState, setDialogState] = useState({\r\n isOpen: false,\r\n })\r\n const images = useMemo(\r\n () => props.imageUrls.map((url, index) => ),\r\n [props.imageUrls]\r\n )\r\n const thumbImages = useMemo(\r\n () => props.imageUrls.map((url, index) => ),\r\n [props.imageUrls]\r\n )\r\n const dialogImages = useMemo(\r\n () => props.imageUrls.map((url, index) => ),\r\n [props.imageUrls]\r\n )\r\n const onClickItem = useCallback((index: number) => setDialogState({ isOpen: true, initialIndex: index }), [])\r\n return (\r\n <>\r\n thumbImages}\r\n {...(isUpMd && {\r\n isClicableItem: true,\r\n onClickItem,\r\n })}\r\n >\r\n {images}\r\n \r\n setDialogState({ isOpen: false })}\r\n >\r\n \r\n {dialogImages}\r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { ReactNode } from 'react'\r\nimport { styled, Box } from '@mui/material'\r\n\r\ninterface TagProps {\r\n children: ReactNode\r\n}\r\n\r\nconst Root = styled(Box)(({ theme }) => ({\r\n display: 'inline-block',\r\n fontSize: theme.typography.font.sizeM,\r\n color: theme.palette.primary.contrastText,\r\n borderRadius: 24,\r\n backgroundColor: theme.palette.primary.main,\r\n padding: '7px 15px',\r\n lineHeight: 'normal',\r\n}))\r\n\r\nexport const Tag = (props: TagProps) => {\r\n return {props.children}\r\n}\r\n","export const GRID_SIZE = {\n /** 通常用 */\n NORMAL: [7, 'auto'],\n /** 文字数が長い場合用(基本は時間外料金に適用) */\n LONG: ['auto', 'auto'],\n /** 共通の料金用 */\n COMMON: [8, 'auto'],\n /** 利用料金設定にて平日のみ設定されている場合の通常用 */\n NORMAL_ONLY_DAY: [4, 'auto'],\n /** 利用料金設定にて平日のみ設定されている場合の共通の料金用 */\n COMMON_ONLY_DAY: [5, 'auto'],\n} as const\nexport type GRID_SIZE = (typeof GRID_SIZE)[keyof typeof GRID_SIZE]\n","import { useCallback } from 'react'\nimport { LOCATION_STATUS } from '../common/constant/commonConstant'\nimport { FeeTimeSetting, OtherFeeSetting } from '../../dataAccess/webApi/dto/usageFeeSettingDto'\nimport { Fee } from './type'\nimport { formatNumberYenString } from '../../utils/stringUtil'\nimport { GRID_SIZE } from './enum'\nimport { GetDecodeMstByCategoriesReturn, getDecodeMstName } from '../common/decodeMst'\nimport { DecodeMstCategory } from '../common/constant/decodeMst'\n\ntype GetCommonLunchSnackFee = (\n arg: {\n locationStatus: number\n lunchFee: number\n lunchFeeDisplayFlag: number\n snackFee: number\n snackFeeDisplayFlag: number\n }[]\n) => {\n lunchFee: number\n snackFee: number\n isSameLunchFeeAll: boolean\n isSameSnackFeeAll: boolean\n existsFeesFilteredCommonLocation: boolean\n}\n\ntype GetOtherFeeSettings = (arg: { otherFeeSettings: OtherFeeSetting[]; location?: LOCATION_STATUS, hasOnlyDay?: boolean }) => Fee[]\ntype GetOtherFeeSettingsForCommonLocation = GetOtherFeeSettings\n\ntype GetFeeTimeSettings = (arg: {\n feeTimeSettings: FeeTimeSetting[]\n decodeMst: GetDecodeMstByCategoriesReturn\n ageCategoryId: number\n location: LOCATION_STATUS\n}) => Fee[]\n\ntype UseGenerateUsageFeesCommonReturn = {\n getCommonLunchSnackFee: GetCommonLunchSnackFee\n getOtherFeeSettingsForCommonLocation: GetOtherFeeSettingsForCommonLocation\n getFeeTimeSettings: GetFeeTimeSettings\n getOtherFeeSettings: GetOtherFeeSettings\n}\ntype UseGenerateUsageFeesCommonArg = {}\ntype UseGenerateUsageFeesCommon = (arg: UseGenerateUsageFeesCommonArg) => UseGenerateUsageFeesCommonReturn\n\nexport const useGenerateUsageFeesCommon: UseGenerateUsageFeesCommon = ({}) => {\n // NOTE: 適用地域が「共通」のみの利用料金設定\n const getCommonLunchSnackFee = useCallback((fees) => {\n const feesFilteredCommonLocation = fees.filter((fee) => fee.locationStatus === LOCATION_STATUS.COMMON)\n const existsFeesFilteredCommonLocation = feesFilteredCommonLocation.length > 0\n const allLunchFees = feesFilteredCommonLocation\n .filter((timeBasedFee) => !!timeBasedFee.lunchFeeDisplayFlag)\n .map((timeBasedFee) => timeBasedFee.lunchFee)\n const lunchFee = allLunchFees[0]\n const allSnackFees = feesFilteredCommonLocation\n .filter((timeBasedFee) => !!timeBasedFee.snackFeeDisplayFlag)\n .map((timeBasedFee) => timeBasedFee.snackFee)\n const snackFee = allSnackFees[0]\n\n // NOTE: 適用地域「共通」の全給食代が同じか\n const isSameLunchFeeAll = allLunchFees.every((lunchFee) => lunchFee === allLunchFees[0])\n\n // NOTE: 適用地域「共通」の全おやつ代が同じか\n const isSameSnackFeeAll = allSnackFees.every((snackFee) => snackFee === allSnackFees[0])\n\n return {\n lunchFee,\n snackFee,\n isSameLunchFeeAll,\n isSameSnackFeeAll,\n existsFeesFilteredCommonLocation,\n }\n }, [])\n\n // NOTE: 適用地域が「共通」に設定されているその他料金を返す\n const getOtherFeeSettingsForCommonLocation = useCallback(\n ({ otherFeeSettings, hasOnlyDay = false }) => {\n const fees: Fee[] = []\n\n otherFeeSettings\n .filter((otherFeeSetting) => otherFeeSetting.locationStatus === LOCATION_STATUS.COMMON)\n .forEach((otherFeeSetting) =>\n fees.push({\n text: [otherFeeSetting.otherFeeDisplayName, formatNumberYenString(otherFeeSetting.defaultFee)],\n gridSize: hasOnlyDay ? GRID_SIZE.COMMON_ONLY_DAY : GRID_SIZE.COMMON,\n })\n )\n\n return fees\n },\n []\n )\n\n // NOTE: 適用地域関係なく時間外料金を返す\n const getFeeTimeSettings = useCallback(\n ({ feeTimeSettings, decodeMst, ageCategoryId, location }) => {\n const fees: Fee[] = []\n\n feeTimeSettings\n .filter(\n (feeTimeSetting) =>\n feeTimeSetting.ageCategoryId === ageCategoryId && feeTimeSetting.locationStatus === location\n )\n .forEach((feeTimeSetting) =>\n fees.push({\n text: [\n `時間外料金(${getDecodeMstName(\n decodeMst,\n DecodeMstCategory.SCHEDULED_DAY_TYPE,\n feeTimeSetting.scheduledDayType\n )})`,\n `${formatNumberYenString(feeTimeSetting.overtimeFee)} / ${getDecodeMstName(\n decodeMst,\n DecodeMstCategory.TIME_UNIT_TYPE,\n feeTimeSetting.timeUnitType\n )}`,\n ],\n gridSize: GRID_SIZE.LONG,\n })\n )\n\n return fees\n },\n []\n )\n\n // NOTE: 適用地域「共通」以外のその他料金\n const getOtherFeeSettings = useCallback(({ otherFeeSettings, location }) => {\n const fees: Fee[] = []\n\n otherFeeSettings\n .filter(\n (otherFeeSetting) =>\n otherFeeSetting.locationStatus !== LOCATION_STATUS.COMMON && otherFeeSetting.locationStatus === location\n )\n .forEach((otherFeeSetting) =>\n fees.push({\n text: [otherFeeSetting.otherFeeDisplayName, formatNumberYenString(otherFeeSetting.defaultFee)],\n gridSize: GRID_SIZE.NORMAL,\n })\n )\n\n return fees\n }, [])\n\n return {\n getCommonLunchSnackFee,\n getOtherFeeSettingsForCommonLocation,\n getFeeTimeSettings,\n getOtherFeeSettings,\n }\n}\n","import { useCallback, useMemo } from 'react'\nimport { useSelector } from 'react-redux'\nimport { CALCULATION_PATTERN, USAGE_FEE_DISPLAY_STATUS } from '../common/constant/commonConstant'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\nimport { UseUsageFeeSetting, UsageFee, GenerateUsageFees } from './type'\nimport { useGenerateUsageFeesByAgeRegionBasedFees } from './useGenerateUsageFeesByAgeRegionBasedFees'\nimport { useGenerateUsageFeesByTimeBasedFees } from './useGenerateUsageFeesByTImeBasedFees'\n\nexport const useUsageFeeSetting: UseUsageFeeSetting = ({ decodeMst, usageFeeSetting, locationStatus, feeNote }) => {\n const sysCtrl = useSelector(selectSystemControl)\n\n const { generateUsageFeesByAgeRegionBasedFees } = useGenerateUsageFeesByAgeRegionBasedFees({})\n const { generateUsageFeesByTimeBasedFees } = useGenerateUsageFeesByTimeBasedFees({})\n\n const generateUsageFees = useCallback(\n ({\n ageCategories,\n ageRegionBasedFees,\n timeBasedFees,\n feeTimeSettings,\n otherFeeSettings,\n locationStatus,\n decodeMst,\n }) => {\n return {\n [CALCULATION_PATTERN.NOTE]: [],\n [CALCULATION_PATTERN.PATTERN1]: generateUsageFeesByAgeRegionBasedFees({\n ageCategories,\n ageRegionBasedFees,\n feeTimeSettings,\n otherFeeSettings,\n locationStatus,\n decodeMst,\n }),\n [CALCULATION_PATTERN.PATTERN2]: generateUsageFeesByTimeBasedFees({\n ageCategories,\n timeBasedFees,\n feeTimeSettings,\n otherFeeSettings,\n locationStatus,\n decodeMst,\n }),\n }\n },\n [generateUsageFeesByAgeRegionBasedFees, generateUsageFeesByTimeBasedFees]\n )\n\n /**\n * NOTE: JSXに渡す利用料金設定を返す\n */\n const usageFees = useMemo(() => {\n if (Object.keys(decodeMst).length === 0 || !usageFeeSetting || locationStatus.length === 0) return []\n\n const calculationPattern = usageFeeSetting.calculationPattern\n const ageCategories = usageFeeSetting.ageCategories\n const ageRegionBasedFees = usageFeeSetting.ageRegionBasedFees\n const timeBasedFees = usageFeeSetting.timeBasedFees\n const feeTimeSettings = usageFeeSetting.feeTimeSettings\n const otherFeeSettings = usageFeeSetting.otherFeeSettings\n\n return generateUsageFees({\n ageCategories,\n ageRegionBasedFees,\n timeBasedFees,\n feeTimeSettings,\n otherFeeSettings,\n locationStatus,\n decodeMst,\n })[calculationPattern]\n }, [decodeMst, usageFeeSetting, locationStatus, generateUsageFees])\n\n // NOTE: 利用料金案内を表示表示するか\n const shouldShowNote = useMemo(() => {\n const usageFeeDisplayStatus = sysCtrl.usageFeeDisplayStatus\n return (\n (usageFeeDisplayStatus === USAGE_FEE_DISPLAY_STATUS.NOTE ||\n usageFeeDisplayStatus === USAGE_FEE_DISPLAY_STATUS.ALL) &&\n !!feeNote\n )\n }, [sysCtrl, feeNote])\n\n // NOTE: 利用料金設定を表示するか\n const shouldShowSetting = useMemo(() => {\n const usageFeeDisplayStatus = sysCtrl.usageFeeDisplayStatus\n return (\n (usageFeeDisplayStatus === USAGE_FEE_DISPLAY_STATUS.SETTING ||\n usageFeeDisplayStatus === USAGE_FEE_DISPLAY_STATUS.ALL) &&\n usageFees.length > 0\n )\n }, [sysCtrl, usageFees])\n\n return {\n shouldShowSetting,\n shouldShowNote,\n usageFees,\n }\n}\n","import { useCallback } from 'react'\nimport { AgeRegionBasedFee } from '../../dataAccess/webApi/dto/usageFeeSettingDto'\nimport { formatNumberYenString } from '../../utils/stringUtil'\nimport { AGE_REGION_BASED_FEE_DAY_TYPE, LOCATION_STATUS } from '../common/constant/commonConstant'\nimport { DecodeMstCategory } from '../common/constant/decodeMst'\nimport { GetDecodeMstByCategoriesReturn, getDecodeMstName } from '../common/decodeMst'\nimport { GRID_SIZE } from './enum'\nimport { Fee, GenerateUsageFeesByAgeRegionBasedFees, UsageFee } from './type'\nimport { useGenerateUsageFeesCommon } from './useGenerateUsageFeesCommon'\n\ntype UseGenerateUsageFeesByAgeRegionBasedFeesReturn = {\n generateUsageFeesByAgeRegionBasedFees: GenerateUsageFeesByAgeRegionBasedFees\n}\ntype UseGenerateUsageFeesByAgeRegionBasedFeesArg = {}\ntype UseGenerateUsageFeesByAgeRegionBasedFees = (\n arg: UseGenerateUsageFeesByAgeRegionBasedFeesArg\n) => UseGenerateUsageFeesByAgeRegionBasedFeesReturn\n\nexport const useGenerateUsageFeesByAgeRegionBasedFees: UseGenerateUsageFeesByAgeRegionBasedFees = ({}) => {\n const { getCommonLunchSnackFee, getOtherFeeSettingsForCommonLocation, getFeeTimeSettings, getOtherFeeSettings } =\n useGenerateUsageFeesCommon({})\n\n /**\n * NOTE: 利用料金設定のタイトルを返す\n */\n const getFeeTitle = useCallback((decodeMst: GetDecodeMstByCategoriesReturn, ageRegionBasedFee: AgeRegionBasedFee) => {\n const ageRegionBasedFeeType = getDecodeMstName(\n decodeMst,\n DecodeMstCategory.AGE_REGION_BASED_FEE_TYPE,\n ageRegionBasedFee.ageRegionBasedFeeType\n )\n\n const ageRegionBasedFeeDayType =\n ageRegionBasedFee.ageRegionBasedFeeDayType === AGE_REGION_BASED_FEE_DAY_TYPE.DAY\n ? ''\n : `(${getDecodeMstName(\n decodeMst,\n DecodeMstCategory.AGE_REGION_BASED_FEE_DAY_TYPE,\n ageRegionBasedFee.ageRegionBasedFeeDayType\n )})`\n\n return ageRegionBasedFeeType + ageRegionBasedFeeDayType\n }, [])\n\n /**\n * NOTE: 年齢別料金を元に利用料金設定を生成\n */\n const generateUsageFeesByAgeRegionBasedFees = useCallback(\n ({ ageCategories, ageRegionBasedFees, feeTimeSettings, otherFeeSettings, locationStatus, decodeMst }) => {\n const usageFees: UsageFee[] = []\n const commonFees: Fee[] = []\n const hasAgeRegionBasedFees = ageRegionBasedFees.length > 0\n const hasFeeTimeSettings = feeTimeSettings.length > 0\n const hasOtherFeeSettings = otherFeeSettings.length > 0\n\n /**\n * NOTE: 一時的にステップ3~5の各項目が「表示しない」となっている場合(利用料金案内が先頭にくる場合)のみを前提で実装\n * @link [HOIKU-2077](https://bluedsk.atlassian.net/browse/HOIKU-2077)\n */\n if (!hasAgeRegionBasedFees && !hasFeeTimeSettings && !hasOtherFeeSettings) return usageFees\n\n // NOTE: 利用料金設定にて平日のみの設定されているか\n const hasOnlyDay = ageRegionBasedFees.every(\n (ageRegionBasedFee) => ageRegionBasedFee.ageRegionBasedFeeDayType === AGE_REGION_BASED_FEE_DAY_TYPE.DAY\n )\n\n // NOTE: 適用地域が「共通」のみの利用料金設定\n const { existsFeesFilteredCommonLocation, lunchFee, snackFee, isSameLunchFeeAll, isSameSnackFeeAll } =\n getCommonLunchSnackFee(\n ageRegionBasedFees.map((ageRegionBasedFee) => ({\n locationStatus: ageRegionBasedFee.locationStatus,\n lunchFee: ageRegionBasedFee.lunchFee,\n lunchFeeDisplayFlag: ageRegionBasedFee.lunchFeeDisplayFlag,\n snackFee: ageRegionBasedFee.snackFee,\n snackFeeDisplayFlag: ageRegionBasedFee.snackFeeDisplayFlag,\n }))\n )\n\n // NOTE: 適用地域に「共通」が設定されている利用料金設定ある場合\n if (existsFeesFilteredCommonLocation) {\n // NOTE: 共通の給食代\n if (lunchFee >= 0 && isSameLunchFeeAll)\n commonFees.push({\n text: ['給食代', formatNumberYenString(lunchFee)],\n gridSize: hasOnlyDay ? GRID_SIZE.COMMON_ONLY_DAY : GRID_SIZE.COMMON,\n })\n\n // NOTE: 共通のおやつ代\n if (snackFee >= 0 && isSameSnackFeeAll)\n commonFees.push({\n text: ['おやつ代', formatNumberYenString(snackFee)],\n gridSize: hasOnlyDay ? GRID_SIZE.COMMON_ONLY_DAY : GRID_SIZE.COMMON,\n })\n }\n\n // NOTE: 適用地域が「共通」のその他料金\n commonFees.push(...getOtherFeeSettingsForCommonLocation({ otherFeeSettings, hasOnlyDay }))\n\n // NOTE: 各年齢の料金表示\n ageCategories.forEach((ageCategory) => {\n const ageCategoryId = ageCategory.id\n\n for (const location of locationStatus) {\n const fees: Fee[] = []\n const title = ageCategory.name + (location.id !== LOCATION_STATUS.COMMON ? `(${location.name})` : '')\n\n const filteredAgeRegionBasedFees = ageRegionBasedFees.filter(\n (ageRegionBasedFee) =>\n ageRegionBasedFee.locationStatus === location.id && ageRegionBasedFee.ageCategoryId === ageCategoryId\n )\n // NOTE: 設定されていない適用地域は処理を行わない\n if (filteredAgeRegionBasedFees.length === 0) continue\n\n // NOTE: 利用料金設定\n filteredAgeRegionBasedFees.forEach((ageRegionBasedFee) =>\n fees.push({\n text: [getFeeTitle(decodeMst, ageRegionBasedFee), formatNumberYenString(ageRegionBasedFee.usageFee)],\n gridSize: hasOnlyDay ? GRID_SIZE.NORMAL_ONLY_DAY : GRID_SIZE.NORMAL,\n })\n )\n\n /**\n * NOTE: 給食代\n * 適用地域が「共通」の場合、全給食代不一致で表示\n */\n if (\n (location.id === LOCATION_STATUS.COMMON && !isSameLunchFeeAll) ||\n (location.id !== LOCATION_STATUS.COMMON && !!filteredAgeRegionBasedFees[0].lunchFeeDisplayFlag)\n )\n fees.push({\n text: ['給食代', formatNumberYenString(filteredAgeRegionBasedFees[0].lunchFee)],\n gridSize: GRID_SIZE.NORMAL,\n })\n\n /**\n * NOTE: おやつ代\n * 適用地域が「共通」の場合、全おやつ代不一致時で表示\n */\n if (\n (location.id === LOCATION_STATUS.COMMON && !isSameSnackFeeAll) ||\n (location.id !== LOCATION_STATUS.COMMON && !!filteredAgeRegionBasedFees[0].snackFeeDisplayFlag)\n )\n fees.push({\n text: ['おやつ代', formatNumberYenString(filteredAgeRegionBasedFees[0].snackFee)],\n gridSize: GRID_SIZE.NORMAL,\n })\n\n // NOTE: 時間外料金\n fees.push(\n ...getFeeTimeSettings({\n feeTimeSettings,\n decodeMst,\n ageCategoryId,\n location: location.id,\n })\n )\n\n // NOTE: その他料金\n fees.push(...getOtherFeeSettings({ otherFeeSettings, location: location.id }))\n\n if (fees.length) {\n usageFees.push({\n title,\n fees,\n })\n }\n }\n })\n\n usageFees.push({\n fees: commonFees,\n })\n\n return usageFees\n },\n [getCommonLunchSnackFee, getFeeTimeSettings, getFeeTitle, getOtherFeeSettings, getOtherFeeSettingsForCommonLocation]\n )\n\n return {\n generateUsageFeesByAgeRegionBasedFees,\n }\n}\n","import { useCallback } from 'react'\nimport { Fee, GenerateUsageFeesByTimeBasedFees, UsageFee } from './type'\nimport { LOCATION_STATUS } from '../common/constant/commonConstant'\nimport { formatNumberYenString } from '../../utils/stringUtil'\nimport { GRID_SIZE } from './enum'\nimport { TimeBasedFee } from '../../dataAccess/webApi/dto/usageFeeSettingDto'\nimport { useGenerateUsageFeesCommon } from './useGenerateUsageFeesCommon'\n\ntype UseGenerateUsageFeesByTimeBasedFeesReturn = {\n generateUsageFeesByTimeBasedFees: GenerateUsageFeesByTimeBasedFees\n}\ntype UseGenerateUsageFeesByTimeBasedFeesArg = {}\ntype UseGenerateUsageFeesByTimeBasedFees = (\n arg: UseGenerateUsageFeesByTimeBasedFeesArg\n) => UseGenerateUsageFeesByTimeBasedFeesReturn\n\nexport const useGenerateUsageFeesByTimeBasedFees: UseGenerateUsageFeesByTimeBasedFees = ({}) => {\n const { getCommonLunchSnackFee, getOtherFeeSettingsForCommonLocation, getFeeTimeSettings, getOtherFeeSettings } =\n useGenerateUsageFeesCommon({})\n\n // NOTE: 時間範囲のメッセージ群を返す\n const formatRanges = useCallback((timeBasedFees: TimeBasedFee[]) => {\n const result: Record = {}\n\n timeBasedFees.forEach((timeBasedFee, index) => {\n const { id, applicableFeeStartTime, applicableFeeEndTime } = timeBasedFee\n\n if (index === 0) {\n result[id] = `${applicableFeeEndTime}時間以内`\n } else if (index === timeBasedFees.length - 1) {\n result[id] = `${applicableFeeStartTime}時間を超える`\n } else {\n result[id] = `${applicableFeeStartTime}~${applicableFeeEndTime}時間`\n }\n })\n\n return result\n }, [])\n\n /**\n * NOTE: 時間別料金を元に利用料金設定を生成\n */\n const generateUsageFeesByTimeBasedFees = useCallback(\n ({ ageCategories, timeBasedFees, feeTimeSettings, otherFeeSettings, locationStatus, decodeMst }) => {\n const usageFees: UsageFee[] = []\n const commonFees: Fee[] = []\n const hasTimeBasedFees = timeBasedFees.length > 0\n const hasFeeTimeSettings = feeTimeSettings.length > 0\n const hasOtherFeeSettings = otherFeeSettings.length > 0\n\n /**\n * NOTE: 一時的にステップ3~5の各項目が「表示しない」となっている場合(利用料金案内が先頭にくる場合)のみを前提で実装\n * @link [HOIKU-2077](https://bluedsk.atlassian.net/browse/HOIKU-2077)\n */\n if (!hasTimeBasedFees && !hasFeeTimeSettings && !hasOtherFeeSettings) return usageFees\n\n // NOTE: 適用地域が「共通」のみの利用料金設定\n const { existsFeesFilteredCommonLocation, lunchFee, snackFee, isSameLunchFeeAll, isSameSnackFeeAll } =\n getCommonLunchSnackFee(\n timeBasedFees.map((timeBasedFee) => ({\n locationStatus: timeBasedFee.locationStatus,\n lunchFee: timeBasedFee.lunchFee,\n lunchFeeDisplayFlag: timeBasedFee.lunchFeeDisplayFlag,\n snackFee: timeBasedFee.snackFee,\n snackFeeDisplayFlag: timeBasedFee.snackFeeDisplayFlag,\n }))\n )\n\n // NOTE: 適用地域に「共通」が設定されている料金設定がある場合\n if (existsFeesFilteredCommonLocation) {\n // NOTE: 共通の給食代\n if (lunchFee >= 0 && isSameLunchFeeAll)\n commonFees.push({\n text: ['給食代', formatNumberYenString(lunchFee)],\n gridSize: GRID_SIZE.COMMON,\n })\n\n // NOTE: 共通のおやつ代\n if (snackFee >= 0 && isSameSnackFeeAll)\n commonFees.push({\n text: ['おやつ代', formatNumberYenString(snackFee)],\n gridSize: GRID_SIZE.COMMON,\n })\n }\n\n commonFees.push(...getOtherFeeSettingsForCommonLocation({ otherFeeSettings }))\n\n // NOTE: 各年齢の料金表示\n ageCategories.forEach((ageCategory) => {\n const ageCategoryId = ageCategory.id\n\n for (const location of locationStatus) {\n const fees: Fee[] = []\n const title = ageCategory.name + (location.id !== LOCATION_STATUS.COMMON ? `(${location.name})` : '')\n\n const filteredTimeBasedFees = timeBasedFees\n .filter(\n (timeBasedFee) =>\n timeBasedFee.locationStatus === location.id && timeBasedFee.ageCategoryId === ageCategoryId\n )\n .sort((a, b) => a.applicableFeeStartTime - b.applicableFeeStartTime)\n // NOTE: 設定されていない適用地域は処理を行わない\n if (filteredTimeBasedFees.length === 0) continue\n\n // NOTE: 利用料金設定\n // const thresholds = generateThresholds(filteredTimeBasedFees)\n\n const ranges = formatRanges(filteredTimeBasedFees)\n filteredTimeBasedFees.forEach((timeBasedFee) =>\n fees.push({\n text: [ranges[timeBasedFee.id], formatNumberYenString(timeBasedFee.applicableFee)],\n gridSize: GRID_SIZE.NORMAL,\n })\n )\n\n /**\n * NOTE: 給食代\n * 適用地域が「共通」の場合、全給食代不一致で表示\n */\n if (\n (location.id === LOCATION_STATUS.COMMON && !isSameLunchFeeAll) ||\n (location.id !== LOCATION_STATUS.COMMON && !!filteredTimeBasedFees[0].lunchFeeDisplayFlag)\n )\n fees.push({\n text: ['給食代', formatNumberYenString(filteredTimeBasedFees[0].lunchFee)],\n gridSize: GRID_SIZE.NORMAL,\n })\n\n /**\n * NOTE: おやつ代\n * 適用地域が「共通」の場合、全おやつ代不一致で表示\n */\n if (\n (location.id === LOCATION_STATUS.COMMON && !isSameSnackFeeAll) ||\n (location.id !== LOCATION_STATUS.COMMON && !!filteredTimeBasedFees[0].snackFeeDisplayFlag)\n )\n fees.push({\n text: ['おやつ代', formatNumberYenString(filteredTimeBasedFees[0].snackFee)],\n gridSize: GRID_SIZE.NORMAL,\n })\n\n // NOTE: 時間外料金\n fees.push(\n ...getFeeTimeSettings({\n feeTimeSettings,\n decodeMst,\n ageCategoryId,\n location: location.id,\n })\n )\n\n // NOTE: その他料金\n fees.push(...getOtherFeeSettings({ otherFeeSettings, location: location.id }))\n\n if (fees.length) {\n usageFees.push({\n title,\n fees,\n })\n }\n }\n })\n\n usageFees.push({\n fees: commonFees,\n })\n\n return usageFees\n },\n [\n formatRanges,\n getCommonLunchSnackFee,\n getFeeTimeSettings,\n getOtherFeeSettings,\n getOtherFeeSettingsForCommonLocation,\n ]\n )\n\n return { generateUsageFeesByTimeBasedFees }\n}\n","import CurrencyYenIcon from '@mui/icons-material/CurrencyYen'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 料金項目のアイコン */\r\nexport const MoneyIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import styled from '@emotion/styled'\nimport { FC, useMemo } from 'react'\nimport { FlexGItem, GItem } from '../common/grids'\nimport { UsageFee } from '../../../containers/facilityDetail/type'\n\ntype FeeItemProps = {\n usageFee: UsageFee\n}\n\nconst FeeGItem = styled(FlexGItem)({\n width: '100%',\n '& div:last-child': {\n marginLeft: '5px',\n },\n})\n\nexport const FeeItem: FC = ({ usageFee }) => {\n // NOTE: タイトル表示・インデント表示制御\n const shouldShowTitle = useMemo(() => !!usageFee.title, [usageFee])\n\n return (\n <>\n {shouldShowTitle && {usageFee.title}}\n\n {usageFee.fees.map((fee, feeIndex) => (\n \n {shouldShowTitle && }\n\n {fee.text[0]}\n {fee.text[1]}\n \n ))}\n \n )\n}\n","import { FC } from 'react'\nimport { GItemContainer } from '../common/grids'\nimport { UsageFee } from '../../../containers/facilityDetail/type'\nimport { FeeItem } from './feeItem'\n\ntype UsageFeeSettingProps = {\n usageFees: UsageFee[]\n}\n\nexport const UsageFeeSetting: FC = ({ usageFees }) => {\n return (\n \n {usageFees.map((usageFee, usageFeeKey) => (\n \n ))}\n \n )\n}\n","import styled from '@emotion/styled'\nimport { FC } from 'react'\nimport { GetDecodeMstByCategoriesReturn } from '../../../containers/common/decodeMst'\nimport { GetLocationStatusReturn } from '../../../containers/common/locationStatus'\nimport { useUsageFeeSetting } from '../../../containers/facilityDetail/useUsageFeeSetting'\nimport { GetFacilityDto } from '../../../dataAccess/webApi/dto/facilitiesDto'\nimport { PostUsageFeeSettingDto } from '../../../dataAccess/webApi/dto/usageFeeSettingDto'\nimport { NullPropsToUndefinedType } from '../../../utils/typeUtil'\nimport { InlineFlexbox } from '../common/flexboxes'\nimport { GContainer, GItem, TopGItem } from '../common/grids'\nimport { MoneyIcon } from '../common/icons/moneyIcon'\nimport { UsageFeeSetting } from './usageFeeSetting'\n\nconst ItemIcon = styled(InlineFlexbox)(({ theme }) => ({\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.primary.main,\n borderRadius: 24,\n fontSize: '1.4rem',\n marginTop: '0.15rem',\n marginRight: '4px',\n}))\n\nconst FeeText = styled('p')({\n whiteSpace: 'pre-wrap',\n margin: 0,\n})\n\ntype FeeNotionProps = {\n facility: NullPropsToUndefinedType\n decodeMst: GetDecodeMstByCategoriesReturn\n usageFeeSetting: PostUsageFeeSettingDto | null\n locationStatus: GetLocationStatusReturn\n}\n\nexport const FeeNotion: FC = ({ facility, decodeMst, usageFeeSetting, locationStatus }) => {\n const { shouldShowNote, shouldShowSetting, usageFees } = useUsageFeeSetting({\n decodeMst,\n usageFeeSetting,\n locationStatus,\n feeNote: facility.feeNote,\n })\n\n if (!shouldShowSetting && !shouldShowNote) return <>\n\n return (\n <>\n \n \n \n \n \n {shouldShowSetting && (\n \n \n \n )}\n {shouldShowNote && (\n \n {facility.feeNote}\n \n )}\n \n \n \n )\n}\n","import TextSnippetIcon from '@mui/icons-material/TextSnippet'\nimport React from 'react'\nimport { IconProps } from './iconBase'\n\n/** ダウンロード操作を示すアイコン */\nexport const DocumentIcon = (props: IconProps) => {\n return \n}\n","import { Stack, styled } from '@mui/material'\r\nimport { getAvailableLabel } from '../../containers/common/codeMaster'\r\nimport {\r\n interviewReservationFormUrl,\r\n interviewReservationSelectionCreateUrl,\r\n facilityDetailAvailabilityUrl,\r\n} from '../../containers/common/constant/appUrl'\r\nimport { yesNo, interviewAcceptMethod, useReasonDisplayTypes } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/facilityDetail/facilityDetailService'\r\nimport { translate } from '../../i18n'\r\nimport { formatAcceptAge, formatAcceptAgeRange, formatAddress } from '../../utils/itemFormatUtil'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { InlineFlexbox } from '../components/common/flexboxes'\r\nimport { GContainer, GItem, TopGItem } from '../components/common/grids'\r\nimport { AcceptAgeIcon } from '../components/common/icons/acceptAgeIcon'\r\nimport { AcceptWebReservationIcon } from '../components/common/icons/acceptWebReservationIcon'\r\nimport { InquiryIcon } from '../components/common/icons/inquiryIcon'\r\nimport { LinkIcon } from '../components/common/icons/linkIcon'\r\nimport { LocationIcon } from '../components/common/icons/locationIcon'\r\nimport { PostalCodeIcon } from '../components/common/icons/postalCodeIcon'\r\nimport { ProjectIcon } from '../components/common/icons/projectIcon'\r\nimport { TelIcon } from '../components/common/icons/telIcon'\r\nimport { TimeIcon } from '../components/common/icons/timeIcon'\r\nimport { TrainIcon } from '../components/common/icons/trainIcon'\r\nimport { UsageIcon } from '../components/common/icons/usageIcon'\r\nimport { WalkIcon } from '../components/common/icons/walkIcon'\r\nimport { ImageCarousel } from '../components/common/imageCarousel'\r\nimport { Link } from '../components/common/link'\r\nimport { Tag } from '../components/common/tag'\r\nimport { TitleLabel } from '../components/common/titleLabel'\r\nimport { FeeNotion } from '../components/facilityDetail/feeNotion'\r\nimport { LocationState } from '../../containers/facilityDetailAvailability/facilityDetailAvailabilityService';\r\nimport { DocumentIcon } from '../components/common/icons/documentIcon'\r\n\r\ninterface UsageListProps {\r\n usages: string[]\r\n}\r\nconst Root = styled('div')(({}) => ({\r\n '& ul': {\r\n margin: 0,\r\n padding: 0,\r\n },\r\n '& li': {\r\n display: 'flex',\r\n },\r\n}))\r\nconst DetailGItem = styled(GItem)(({ theme }) => ({\r\n color: theme.palette.primary.main,\r\n}))\r\nconst AlignStartGItem = styled(GItem)({\r\n alignItems: 'start',\r\n})\r\nconst ItemIcon = styled(InlineFlexbox)(({ theme }) => ({\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.main,\r\n borderRadius: 24,\r\n fontSize: '1.4rem',\r\n marginTop: '0.15rem',\r\n marginRight: '4px',\r\n}))\r\nconst WrapTopGItem = styled(TopGItem)({\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-all',\r\n})\r\n\r\nconst MessageBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n marginLeft: '1rem',\r\n})\r\nconst SearchFlagGItem = styled(GItem)({\r\n '& > *': {\r\n margin: '1px',\r\n },\r\n})\r\n\r\nconst UsageList = (props: UsageListProps) => {\r\n return props.usages.length ? (\r\n \r\n
    \r\n
  • {translate('facilityDetail.label.usage')}:
  • \r\n {props.usages.map((usage) => (\r\n
  • {usage}
  • \r\n ))}\r\n
\r\n
\r\n ) : null\r\n}\r\nexport const FacilityDetail = () => {\r\n const {\r\n facilityId,\r\n facility,\r\n useReason,\r\n availabilityBaseDate,\r\n decodeMst,\r\n usageFeeSetting,\r\n locationStatus,\r\n onClickLink\r\n } = useAction()\r\n\r\n if (facility == null) {\r\n return null\r\n }\r\n const isInterviewSlots = facility.interviewDailyAcceptFlag === yesNo.yes\r\n && facility.interviewAcceptMethod === interviewAcceptMethod.interviewSlots\r\n const isPreinterviewAccept = facility.preinterviewAcceptFlag === yesNo.yes\r\n const isNotLoginCalendarDisplayFlag = facility.notLoginCalendarDisplayFlag === yesNo.yes\r\n const isInterviewRequired = facility.interviewMethodFlag === yesNo.no\r\n const address = formatAddress(facility.address1, facility.address2, facility.buildingNameRoomNo)\r\n const acceptAgeFrom = formatAcceptAge(\r\n facility.acceptStartAge,\r\n facility.acceptStartMonth,\r\n facility.acceptStartDay,\r\n facility.acceptStartAgeGradeFlag\r\n )\r\n const acceptAgeTo = formatAcceptAge(\r\n facility.acceptEndAge,\r\n facility.acceptEndMonth,\r\n facility.acceptEndDay,\r\n facility.acceptEndAgeGradeFlag\r\n )\r\n\r\n const usage = [\r\n facility.irregularDisplayType !== useReasonDisplayTypes.usedInBoth ? [] : useReason ? [useReason.displayNameForCitizenIrregular] : [],\r\n facility.emergencyDisplayType !== useReasonDisplayTypes.usedInBoth ? [] : useReason ? [useReason.displayNameForCitizenEmg] : [],\r\n facility.refreshDisplayType !== useReasonDisplayTypes.usedInBoth ? [] : useReason ? [useReason.displayNameForCitizenRefresh] : [],\r\n ].flat()\r\n\r\n const AvailabilityPageLocationState: LocationState = {\r\n activeDate: availabilityBaseDate?? null,\r\n acceptAgeFrom: {\r\n age: facility.acceptStartAge?? null,\r\n month: facility.acceptStartMonth?? null,\r\n day: facility.acceptStartDay?? null,\r\n classFlag: facility.acceptStartAgeGradeFlag !== yesNo.yes\r\n },\r\n acceptAgeTo: {\r\n age: facility.acceptEndAge?? null,\r\n month: facility.acceptEndMonth?? null,\r\n day: facility.acceptEndDay?? null,\r\n classFlag: facility.acceptEndAgeGradeFlag !== yesNo.yes\r\n }\r\n };\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {facility.facilityName}\r\n \r\n {facility.homePageUrl && (\r\n \r\n \r\n \r\n \r\n \r\n {facility.homePageUrl}\r\n \r\n \r\n )}\r\n {facility.projectName && (\r\n \r\n \r\n \r\n \r\n {facility.projectName}\r\n \r\n )}\r\n {facility.postalCode && (\r\n \r\n \r\n \r\n \r\n {facility.postalCode}\r\n \r\n )}\r\n {address && (\r\n \r\n \r\n \r\n \r\n {address}\r\n \r\n )}\r\n {facility.nearestStation && (\r\n \r\n \r\n \r\n \r\n {facility.nearestStation}\r\n \r\n )}\r\n {facility.timeFromStation && (\r\n \r\n \r\n \r\n \r\n {facility.timeFromStation}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {translate('facilityDetail.label.tel')}:{facility.tel}\r\n
\r\n {facility.fax && (\r\n
\r\n {translate('facilityDetail.label.fax')}:{facility.fax}\r\n
\r\n )}\r\n
\r\n
\r\n {facility.inquiryTime && (\r\n \r\n \r\n \r\n \r\n {translate('facilityDetail.label.inquiryTime')}:{facility.inquiryTime}\r\n \r\n )}\r\n {(facility.openTimeWeekday || facility.openTimeSaturday || facility.openTimeHoliday) && (\r\n \r\n \r\n \r\n \r\n
\r\n {translate('facilityDetail.label.acceptanceTime')}\r\n \r\n {facility.openTimeWeekday && (\r\n
\r\n {translate('facilityDetail.label.weekday')}:{facility.openTimeWeekday}\r\n
\r\n )}\r\n {facility.openTimeSaturday && (\r\n
\r\n {translate('facilityDetail.label.saturday')}:{facility.openTimeSaturday}\r\n
\r\n )}\r\n {facility.openTimeHoliday && (\r\n
\r\n {translate('facilityDetail.label.holiday')}:{facility.openTimeHoliday}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n )}\r\n {acceptAgeFrom && acceptAgeTo && (\r\n \r\n \r\n \r\n \r\n \r\n
{formatAcceptAgeRange(acceptAgeFrom, acceptAgeTo)}
\r\n {facility.ageNote &&
{`(${facility.ageNote})`}
}\r\n
\r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n {translate('system.facilityCard.acceptWebReservation')}:\r\n {getAvailableLabel(facility.reservationAcceptFlag)}\r\n \r\n\r\n \r\n\r\n {!!usage.length && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {facility.message && (\r\n \r\n
~{translate('facilityDetail.label.message')}~
\r\n {facility.message}\r\n
\r\n )}\r\n \r\n {facility.searchFlagNames.map((searchFlagName, index) => (\r\n {searchFlagName}\r\n ))}\r\n \r\n {facility.documents\r\n .filter(\r\n (documentInfo) =>\r\n !(\r\n (documentInfo.documentFileUrl === null ||\r\n documentInfo.documentFileUrl === '') &&\r\n (documentInfo.documentFileName === null ||\r\n documentInfo.documentFileName === '')\r\n )\r\n )\r\n .map((documentInfo, index) => (\r\n \r\n \r\n \r\n \r\n onClickLink(event, documentInfo)}\r\n >\r\n {documentInfo.documentFileName ||\r\n documentInfo.documentFileUrl?.substring(\r\n documentInfo.documentFileUrl.lastIndexOf('/') + 1\r\n )}\r\n \r\n \r\n ))}\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n {isNotLoginCalendarDisplayFlag && (\r\n \r\n {translate('facilityDetail.button.checkAvailability')}\r\n \r\n )}\r\n {isPreinterviewAccept && !isInterviewSlots && isInterviewRequired && (\r\n \r\n {translate('facilityDetail.button.usageApplication')}\r\n \r\n )}\r\n {isPreinterviewAccept && !isInterviewSlots && !isInterviewRequired && (\r\n \r\n {translate('facilityDetail.button.advanceApplication')}\r\n \r\n )}\r\n {isPreinterviewAccept && isInterviewSlots && isInterviewRequired && (\r\n \r\n {translate('facilityDetail.button.usageApplication')}\r\n \r\n )}\r\n {isPreinterviewAccept && isInterviewSlots && !isInterviewRequired && (\r\n \r\n {translate('facilityDetail.button.advanceApplication')}\r\n \r\n )}\r\n \r\n \r\n
\r\n )\r\n}\r\n","import { executePost } from '../common/apiCaller'\nimport { PostUsageFeeSettingDto, PostUsageFeeSettingInputDto } from '../dto/usageFeeSettingDto'\n\nconst apiName = 'public'\nconst apiPath = '/usage-fee-setting'\n\n/**\n * 施設詳細画面での利用料金設定取得\n */\nexport const executePostUsageFeeSetting = (input: PostUsageFeeSettingInputDto) => {\n return executePost(apiName, apiPath, input)\n}\n","import { yesNo } from '../common/constant/classification';\n\n/**\n * 予約カレンダーの説明文を作成する。\n * 抽選予約を受け付けている場合にのみ抽選関連の文言表示を行う。\n * @param immediatelyReservationFlag \n * @param cancelWaitAcceptFlag \n * @param postponeCancelWaitAcceptFlag \n * @param isLottery 抽選予約受付可否\n * @returns \n */\nexport function getUsageGuidStr(\n immediatelyReservationFlag: string,\n cancelWaitAcceptFlag: string,\n postponeCancelWaitAcceptFlag: string,\n isLottery: boolean,\n isLoggedIn?: boolean\n): string {\n let usageGuideStr: string;\n if (isLottery) {\n if (immediatelyReservationFlag === yesNo.yes) {\n if (cancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.7'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.8'\n }\n } else {\n if (cancelWaitAcceptFlag === yesNo.yes) {\n if (postponeCancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.9'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.11'\n }\n } else {\n if (postponeCancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.10'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.12'\n }\n }\n }\n } else {\n if (immediatelyReservationFlag === yesNo.yes) {\n if (cancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.1'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.2'\n }\n } else {\n if (cancelWaitAcceptFlag === yesNo.yes) {\n if (postponeCancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.3'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.5'\n }\n } else {\n if (postponeCancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.4'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.6'\n }\n }\n }\n }\n\n if (isLoggedIn !== null && isLoggedIn) {\n if (isLottery) {\n if (cancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.NotLoggedIn.3'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.NotLoggedIn.4'\n }\n } else {\n if (cancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.NotLoggedIn.1'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.NotLoggedIn.2'\n }\n }\n }\n return usageGuideStr;\n}\n","import { executeGet } from '../common/apiCaller'\nimport { GetFacilityReservationsDaysDto, GetFacilityReservationsDaysInputDto } from '../dto/facilityReservationsDaysDto'\n\nconst apiName = 'citizen'\nconst apiPath = '/facilities'\n\nexport const executeGetFacilityReservationsDays = (id: string, input?: GetFacilityReservationsDaysInputDto) => {\n return executeGet(apiName, `${apiPath}/${id}/reservations/days`, input)\n}\n","import { executeGet } from '../common/apiCaller'\nimport {\n GetFacilityReservationsWeekCitizenDto,\n GetFacilityReservationsWeekCitizenInputDto,\n} from '../dto/facilityReservationsWeekCitizenDto'\n\nconst apiName = 'citizen'\nconst apiPath = '/facilities'\n\nexport const executeGetFacilityReservationsWeekCitizen = (\n id: string,\n input?: GetFacilityReservationsWeekCitizenInputDto\n) => {\n return executeGet(apiName, `${apiPath}/${id}/reservations/week`, input)\n}\n","type PromiseFactoryReturnType = T extends () => Promise ? R : T extends () => infer R ? R : T\r\ntype AllConcurrencyReturnType = { -readonly [P in keyof T]: PromiseFactoryReturnType> }\r\n\r\n/**\r\n * 同時実行最大数を指定して並列実行する。\r\n * Promise.allと同様に、何れかが失敗すればそこで処理終了\r\n *\r\n * @param promiseFactories 並列実行させるプロミスを返す関数\r\n * @param maxWorkerCount 同時実行最大数\r\n * @returns 実行結果\r\n */\r\nexport const promiseAllConcurrency = async unknown)[] | []>(\r\n promiseFactories: T,\r\n maxWorkerCount: number\r\n): Promise> => {\r\n const tasks = Array.from(promiseFactories)\r\n\r\n /** 処理位置 */\r\n let workIdx = 0\r\n const results: unknown[] = []\r\n const workers: Promise[] = []\r\n Array.from(Array(maxWorkerCount)).forEach(() => {\r\n const p = new Promise(async (resolve, reject) => {\r\n while (workIdx < tasks.length) {\r\n const idx = workIdx\r\n const task = tasks[idx]\r\n // awaitの前にインクリメントする\r\n workIdx++\r\n try {\r\n const result = await task()\r\n results[idx] = result\r\n } catch (e) {\r\n // 失敗したらワーカー終了\r\n reject(e)\r\n return\r\n }\r\n }\r\n resolve(true)\r\n })\r\n workers.push(p)\r\n })\r\n\r\n await Promise.all(workers)\r\n\r\n // タイプ「unknown[]」からタイプ「AllConcurrencyReturnType」への変換は、\r\n // どちらのタイプも他方と十分にオーバーラップしないため、\r\n // 間違いである可能性があります。\r\n // これが意図的なものである場合は、最初に式を「unknown」に変換してください。\r\n // とのコンパイルエラー指摘を受け一旦unknown\r\n const retValue: unknown = results\r\n return retValue as AllConcurrencyReturnType\r\n}\r\n","// src/containers/common/decodeMst.tsに移行後削除する\nimport { executePostDecodeMst } from \"../../dataAccess/webApi/dao/decodeMstDao\";\nimport { PostDecodeMstDto } from \"../../dataAccess/webApi/dto/decodeMstDto\";\n\n// StringObjectの型定義\ntype StringObject = {\n [key: string]: string;\n};\n\nexport const getDecodeMstValue = async (decodeMstInputList: T): Promise<{ [K in keyof T]: PostDecodeMstDto[] }> => {\n const promises = Object.entries(decodeMstInputList).map(([key, category]) => \n executePostDecodeMst({ category })\n .then(response => [key, response.result] as const)\n .catch(error => {\n console.error(`デコードマスタ取得エラー: ${error}`);\n throw error;\n })\n );\n\n const results = await Promise.all(promises);\n\n return results.reduce((acc, [key, result]) => {\n acc[key as keyof T] = result;\n return acc;\n }, {} as { [K in keyof T]: PostDecodeMstDto[] });\n return results.reduce((acc, [key, result]) => {\n acc[key as keyof T] = result;\n return acc;\n }, {} as { [K in keyof T]: PostDecodeMstDto[] });\n};","// 利用予約情報に関する共通処理を定義\r\nimport { executeGetReservation } from '../../dataAccess/webApi/dao/reservationsDao';\r\nimport { fromApiYmd, fromApiYmdHms, formatYmd, formatHm, ElapsedMillisecond } from '../../utils/dateUtil';\r\nimport { combineDecimalParts } from '../../utils/objectUtil';\r\nimport { DecimalType } from '../../utils/typeUtil';\r\nimport { splitDecimal } from '../../utils/stringUtil';\r\nimport { dateToNumber } from '../../utils/objectUtil';\r\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto';\r\nimport { Flag, yesNo } from './constant/classification';\r\nimport { DecodeMstCategory } from './constant/decodeMst';\r\nimport { DOCS_SUBMIT_STATUS } from './constant/commonConstant';\r\nimport { getDecodeMstValue } from './getDecodeMstValue';\r\nimport { GetReservationDto, ReservationDetailSettingDto } from '../../dataAccess/webApi/dto/reservationsDto';\r\nimport { translate } from '../../i18n';\r\nimport { facilityInputFields } from '../../dataAccess/webApi/dto/facilitiesDto';\r\n\r\n// 施設情報\r\nexport type FacilityInfoType = {\r\n facilityId: string\r\n \r\n facilityName: string\r\n /** 利用予約即時予約フラグ 0:不可、1:可 */\r\n immediatelyReservationFlag: string\r\n /** 昼食受付可否フラグ 0:受け付けない、1:受け付ける */\r\n lunchAcceptFlag: string\r\n /** 給食代徴収管理 */\r\n lunchInitialSelect: string | null\r\n /** おやつ受付可否フラグ 0:受け付けない、1:受け付ける */\r\n snackAcceptFlag: string\r\n /** おやつ代徴収管理 */\r\n snackInitialSelect: string | null\r\n /** 見送り時のキャンセル待ち受付可否フラグ 0:受け付けない、1:受け付ける */\r\n postponeCancelWaitAcceptFlag: string\r\n /** 利用目的:「非定型」利用フラグ 0:利用しない、1:利用する */\r\n useReasonUsageFlagIrregular: string\r\n /** 「非定型」の詳細事由利用フラグ 0:利用しない、1:利用する */\r\n useReasonDetailUsageFlagIrregular: string\r\n /** 利用目的:「緊急」利用フラグ 0:利用しない、1:利用する */\r\n useReasonUsageFlagEmg: string\r\n /** 「緊急」の利用詳細目的利用フラグ 0:利用しない、1:利用する */\r\n useReasonDetailUsageFlagEmg: string\r\n /** 利用目的:「リフレッシュ」利用フラグ 0:利用しない、1:利用する */\r\n useReasonUsageFlagRefresh: string\r\n /** 「リフレッシュ」の利用詳細目的利用フラグ 0:利用しない、1:利用する */\r\n useReasonDetailUsageFlagRefresh: string\r\n // 医師連絡票\r\n medicalDoc: string\r\n // 施設別予約時項目表示フラグ\r\n facilityInputFieldsDisplayFlag: string\r\n // 施設別予約時項目選択肢\r\n facilityInputFields?: facilityInputFields[]\r\n // TODO: この部分用の型を定義する\r\n detailSetting: ReservationDetailSettingDto[]\r\n}\r\n\r\n// 利用者情報\r\nexport type ParentInfoType = {\r\n name: string\r\n kana: string\r\n tel: string\r\n email: string\r\n residenceCategory?: string\r\n}\r\n\r\n// お子様情報\r\nexport type ChildInfoType = {\r\n name: string\r\n kana: string\r\n birthday: string\r\n gender: string\r\n}\r\n\r\nexport type SelectType = {\r\n select: string | null\r\n stringify?: string\r\n}\r\n\r\nexport type SelectAndOtherType = SelectType & {\r\n other: string | null\r\n}\r\n\r\nexport type DecimalWithStringify = DecimalType & {\r\n stringify?: string\r\n}\r\n\r\nexport type DocType = {\r\n fileName: string | null\r\n delFlg: string | null\r\n tempUploadKey: string | null\r\n}\r\n\r\nexport type MedicalDocType = {\r\n docs: DocType[]\r\n hasSubmitted: string\r\n status?: string\r\n}\r\n\r\nexport type SymptomType = {\r\n symptoms: string[]\r\n other: string | null\r\n stringify?: string\r\n}\r\n\r\nexport type DiagonosisType = {\r\n first: SelectAndOtherType\r\n second: SelectAndOtherType\r\n stringify?: string\r\n stringify2?: string\r\n}\r\n\r\nexport type MedicineType = {\r\n rx: string | null\r\n otc: string | null\r\n}\r\n\r\nexport type FebrileSeizuresType = string\r\n\r\nexport type EmergencyAction = {\r\n action: SelectType\r\n note: string | null\r\n}\r\n\r\nexport type EatingMethod = {\r\n method: SelectType\r\n detail: SelectType\r\n milkAmount: DecimalWithStringify\r\n milkFrequency?: number | null\r\n}\r\n\r\nexport type AllergyType = {\r\n flag: string,\r\n foodFlag: string | null\r\n} \r\n\r\nexport type ActionsType = {\r\n action: SelectType\r\n sleepMethod: string | null\r\n}\r\n\r\nexport type ReductionType = {\r\n reduction: SelectType,\r\n consentCheck?: string\r\n}\r\n\r\nexport type AttachedDocType = {\r\n docs: DocType[]\r\n status?: string\r\n}\r\n\r\nexport type hospitalInfoType = {\r\n date: string | null | Date\r\n time: string | null | Date\r\n hospitalName: string | null\r\n}\r\n\r\nexport type facilityInputDetail = {\r\n id: string | null\r\n answer: string\r\n updateDatetime: string | null\r\n facilityReservationInputFieldId?: string\r\n order: number | null\r\n}\r\n\r\n// お子様情報+事項入力画面:お子様別入力データ\r\nexport type ChildReservationInfoType = {\r\n childId: string\r\n childInfo?: ChildInfoType\r\n medicalDoc?: MedicalDocType\r\n symptom?: SymptomType\r\n diagonosis?: DiagonosisType\r\n epidemic?: SelectAndOtherType\r\n medicine?: MedicineType\r\n temperature?: DecimalWithStringify \r\n febrileSeizures?: string | null\r\n emergencyAction?: EmergencyAction\r\n height?: DecimalWithStringify\r\n weight?: DecimalWithStringify\r\n eatingMethod?: EatingMethod\r\n allergy?: AllergyType\r\n eatingAbility?: SelectType\r\n actions?: ActionsType\r\n toiletAbility?: SelectType\r\n considerations?: string | null\r\n reductionType?: ReductionType\r\n attachedDoc?: AttachedDocType\r\n hospitalInfo?: hospitalInfoType\r\n facilityInputFields?: { [key: string]: facilityInputDetail }\r\n}\r\n\r\n// 利用日\r\nexport type UsageDatetimeType = {\r\n usageDate: ElapsedMillisecond\r\n useFromDatetime: ElapsedMillisecond\r\n useToDatetime: ElapsedMillisecond\r\n usageBaseDate: string\r\n status: string\r\n}\r\n\r\n// 登降園時間\r\nexport type GoingTimeType = {\r\n goingToFacilityDate: string\r\n goingToFacilityTime: string\r\n goingHomeDate: string\r\n goingHomeTime: string\r\n}\r\n\r\n// 必須事項入力画面:入力データ\r\nexport type CommonInput = {\r\n lunchFlag: string\r\n snackFlag: string\r\n postponeCancelWaitFlag: string\r\n goingTimes: GoingTimeType[]\r\n formUseReason?: SelectAndOtherType\r\n preferenceProvisionCertificateFlag?: string\r\n consentCheck?: string\r\n citizenNote: string\r\n}\r\n\r\nexport type ShowMessage = {\r\n Date: string;\r\n message: string;\r\n}\r\n\r\n/**\r\n * 指定した受付Noの利用予約情報を返す。\r\n *\r\n * @param reservationNo 受付No\r\n * @returns 利用予約情報\r\n */\r\nexport const getReservation = async (reservationNo: string, decodeMstValue?: ReservationSettingDecodeMst) => {\r\n const response = await executeGetReservation(reservationNo)\r\n const {\r\n usageDate,\r\n useFromDatetime,\r\n useToDatetime,\r\n canUpdate,\r\n canCancel,\r\n reservationDatetime,\r\n reservationChangeDatetime,\r\n name,\r\n kana,\r\n tel,\r\n email,\r\n childId,\r\n childName,\r\n childKana,\r\n childBirth,\r\n childGender,\r\n hasMedicalDocSubmitted,\r\n symptoms,\r\n symptomOther,\r\n diagonosis,\r\n diagonosisOther,\r\n diagonosis2,\r\n diagonosisOther2,\r\n epidemic,\r\n epidemicOther,\r\n rxMedicineFlag,\r\n otcMedicineFlag,\r\n bodyTemperature,\r\n febrileSeizuresFlag,\r\n emergencyAction,\r\n emergencyActionNote,\r\n height,\r\n weight,\r\n eatingMethod,\r\n eatingMethodDetail,\r\n milkAmount,\r\n milkFrequency,\r\n allergyFlag,\r\n foodAllergyFlag,\r\n eatingAbility,\r\n actions,\r\n sleepMethod,\r\n toiletAbility,\r\n considerations,\r\n reductionType,\r\n goingToFacilityDatetime, \r\n goingHomeDatetime,\r\n citizenNote,\r\n useReason,\r\n useReasonOther,\r\n hospitalVisitDatetime,\r\n hospitalName,\r\n facilityInputAnswers,\r\n ...other\r\n } = response.result\r\n\r\n // 病児病後児病児病後児関連書類\r\n const medicalDocs = [];\r\n for ( let i = 1; i <= 5; i++ ) {\r\n const medicalDocKey = `medicalDoc${i}` as keyof GetReservationDto;\r\n const fileNameKey = `medicalDoc${i}FileName` as keyof GetReservationDto;\r\n \r\n const medicalDoc = response.result[medicalDocKey] as string;\r\n const fileName = response.result[fileNameKey] as string;\r\n \r\n if ( !medicalDoc ) break;\r\n medicalDocs.push( {\r\n fileName: fileName,\r\n delFlg: Flag.OFF,\r\n tempUploadKey: medicalDoc\r\n }) \r\n }\r\n\r\n // 添付書類\r\n const attachedDocs = [];\r\n for ( let i = 1; i <= 3; i++ ) {\r\n const attachedDocKey = `attachedDoc${i}` as unknown as keyof GetReservationDto;\r\n const fileNameKey = `attachedDoc${i}Name` as unknown as keyof GetReservationDto;\r\n const attachedDoc = response.result[attachedDocKey] as string;\r\n const fileName = response.result[fileNameKey] as string;\r\n \r\n if ( !attachedDoc ) break;\r\n attachedDocs.push( {\r\n fileName: fileName,\r\n delFlg: Flag.OFF,\r\n tempUploadKey: attachedDoc\r\n }) \r\n }\r\n\r\n const inputFields: { [key: string]: facilityInputDetail } = {};\r\n if (facilityInputAnswers !== null) {\r\n facilityInputAnswers.forEach(curr => {\r\n if (curr.facilityReservationInputFieldId) {\r\n inputFields[String(curr.facilityReservationInputFieldId)] = {\r\n facilityReservationInputFieldId: String(curr.facilityReservationInputFieldId),\r\n id: curr.id,\r\n answer: curr.answer,\r\n updateDatetime: curr.updateDatetime,\r\n order: null\r\n };\r\n }\r\n });\r\n }\r\n \r\n let childInfoList: Required[] = [{\r\n childId: childId,\r\n childInfo: {\r\n name: childName,\r\n kana: childKana,\r\n birthday: dateToNumber(childBirth),\r\n gender: childGender\r\n },\r\n medicalDoc: {\r\n docs: medicalDocs,\r\n hasSubmitted: hasMedicalDocSubmitted\r\n },\r\n symptom: {\r\n symptoms: (symptoms) ? symptoms.split(',') : [],\r\n other: symptomOther?? ''\r\n },\r\n diagonosis: {\r\n first: {\r\n select: diagonosis,\r\n other: diagonosisOther?? ''\r\n },\r\n second: {\r\n select: diagonosis2,\r\n other: diagonosisOther2?? ''\r\n }\r\n },\r\n epidemic: {\r\n select: epidemic,\r\n other: epidemicOther?? ''\r\n },\r\n medicine: {\r\n rx: rxMedicineFlag,\r\n otc: otcMedicineFlag\r\n },\r\n temperature: splitDecimal(bodyTemperature),\r\n febrileSeizures: febrileSeizuresFlag,\r\n emergencyAction: {\r\n action: {\r\n select: emergencyAction\r\n },\r\n note: emergencyActionNote?? ''\r\n },\r\n height: splitDecimal(height),\r\n weight: splitDecimal(weight),\r\n eatingMethod: {\r\n method: {\r\n select: eatingMethod\r\n },\r\n detail: {\r\n select: eatingMethodDetail\r\n },\r\n milkAmount: splitDecimal(milkAmount),\r\n milkFrequency: milkFrequency\r\n },\r\n allergy: {\r\n flag: allergyFlag,\r\n foodFlag: foodAllergyFlag\r\n },\r\n eatingAbility: {\r\n select: eatingAbility\r\n },\r\n actions: {\r\n action: {\r\n select: actions\r\n },\r\n sleepMethod: sleepMethod?? ''\r\n },\r\n toiletAbility: {\r\n select: toiletAbility\r\n },\r\n considerations: considerations,\r\n reductionType: {\r\n reduction: {\r\n select: reductionType\r\n }\r\n },\r\n attachedDoc: {\r\n docs: attachedDocs,\r\n },\r\n hospitalInfo: {\r\n date: hospitalVisitDatetime !== null ? formatYmd(new Date(hospitalVisitDatetime)) : null,\r\n time: hospitalVisitDatetime !== null ? formatHm(new Date(hospitalVisitDatetime)) : null,\r\n hospitalName: hospitalName\r\n },\r\n facilityInputFields: inputFields\r\n }]\r\n\r\n let formUseReason: SelectAndOtherType = {\r\n select: useReason,\r\n other: useReasonOther\r\n }\r\n \r\n if ( decodeMstValue ) {\r\n childInfoList = setStringifyNamesChildInfoList(childInfoList, decodeMstValue);\r\n formUseReason = {\r\n ... formUseReason,\r\n stringify: stringifySelectBox(decodeMstValue.formUseReason, formUseReason.select, formUseReason.other, [\"その他\"])\r\n }\r\n }\r\n \r\n // 登降園時間を使用しない設定(事業マスタ)場合は'-'でデータが渡ってくる\r\n const goingDatetimeConverted = ( goingToFacilityDatetime === '-' )? null: fromApiYmdHms(goingToFacilityDatetime);\r\n const goingHomeDatetimeConverted = ( goingHomeDatetime === '-' )? null: fromApiYmdHms(goingHomeDatetime);\r\n \r\n const useFromDatetimeConverted = fromApiYmdHms(useFromDatetime);\r\n const useToDatetimeConverted = fromApiYmdHms(useToDatetime);\r\n\r\n return {\r\n ...other,\r\n reservationNo,\r\n usageDate: dateToNumber(fromApiYmd(usageDate)),\r\n useFromDatetime: dateToNumber(useFromDatetimeConverted),\r\n useToDatetime: dateToNumber(useToDatetimeConverted),\r\n parentInfo: {\r\n name: name,\r\n kana: kana,\r\n tel: tel,\r\n email: email\r\n },\r\n childInfoList,\r\n goingTime: {\r\n goingToFacilityDate: formatYmd(goingDatetimeConverted? goingDatetimeConverted: useFromDatetimeConverted),\r\n goingToFacilityTime: formatHm(goingDatetimeConverted? goingDatetimeConverted: useFromDatetimeConverted),\r\n goingHomeDate: formatYmd(goingHomeDatetimeConverted? goingHomeDatetimeConverted: useToDatetimeConverted),\r\n goingHomeTime: formatHm(goingHomeDatetimeConverted? goingHomeDatetimeConverted: useToDatetimeConverted)\r\n },\r\n formUseReason,\r\n canUpdate: canUpdate === yesNo.yes,\r\n canCancel: canCancel === yesNo.yes,\r\n reservationDatetime: fromApiYmdHms(reservationDatetime),\r\n reservationChangeDatetime: fromApiYmdHms(reservationChangeDatetime),\r\n citizenNote: citizenNote?? ''\r\n }\r\n}\r\n\r\n/** 利用予約情報の型 */\r\nexport type Reservation = ReturnType extends Promise ? T : never\r\n\r\n/**\r\n * チェックボックス項目の内容を文字列化する\r\n * @param decodeMst デコードマスタデータ\r\n * @param param 判定値\r\n * @param otherParam その他入力情報\r\n * @returns\r\n */\r\nexport const stringifyCheckBox = (decodeMst: PostDecodeMstDto[], param?: string[] | null, otherParam?: string | null) => {\r\n if (!param && !otherParam) {\r\n return ''\r\n }\r\n const tmpArray = param\r\n if (!tmpArray) return ''\r\n const response = [];\r\n for (const tmpData of tmpArray) {\r\n const findData: String | undefined = decodeMst?.find((c) => c.code === tmpData)?.name\r\n if (findData) {\r\n response.push(findData)\r\n continue\r\n }\r\n }\r\n\r\n if (otherParam) response.push(otherParam) \r\n return response.join(', ')\r\n}\r\n\r\n/**\r\n * セレクトボックス項目の内容を文字列化する\r\n * @param decodeMst デコードマスタデータ\r\n * @param param 判定値\r\n * @param otherParam その他入力情報\r\n * @param otherParamTrigger その他入力情報を使用するトリガーとなる判定値\r\n * @returns\r\n */\r\nexport const stringifySelectBox = (decodeMst: PostDecodeMstDto[], param?: string | null, otherParam?: string | null, otherParamTrigger?: string[]) => {\r\n if ( !param ) {\r\n return ''\r\n }\r\n const targetDecodeMstData = decodeMst?.find((c) => c.code === param)\r\n const name = targetDecodeMstData?.name || '';\r\n\r\n if ((otherParamTrigger?.some((trigger) => name.includes(trigger))) && otherParam) {\r\n return otherParam?? '';\r\n }\r\n \r\n return name.trimStart();\r\n}\r\n\r\nconst getDocSubmitStatus = (docs: DocType[]| null | undefined) => {\r\n const filterdDocs = docs?.filter(( doc ) => doc.fileName && doc.tempUploadKey && doc.delFlg === Flag.OFF);\r\n if ( docs && filterdDocs && filterdDocs.length > 0 ) return DOCS_SUBMIT_STATUS.UPLOADED;\r\n return DOCS_SUBMIT_STATUS.UN_SUBMITTED;\r\n}\r\n\r\nconst getMedicalDocSubmitStatus = (hasMedicalDocSubmitted: string | null | undefined, medicalDocList: DocType[]| null | undefined) => {\r\n if ( hasMedicalDocSubmitted === Flag.ON ) return DOCS_SUBMIT_STATUS.HANDED;\r\n return getDocSubmitStatus(medicalDocList);\r\n};\r\n\r\nconst docSubmitStatusTranslationMap = {\r\n [DOCS_SUBMIT_STATUS.UN_SUBMITTED]: 'facilityReservation.docsStatus.unsubmitted',\r\n [DOCS_SUBMIT_STATUS.UPLOADED]: 'facilityReservation.docsStatus.uploaded',\r\n [DOCS_SUBMIT_STATUS.HANDED]: 'facilityReservation.docsStatus.handed',\r\n};\r\n\r\nconst getDocSubmitStatusName = (status: typeof DOCS_SUBMIT_STATUS [keyof typeof DOCS_SUBMIT_STATUS]) => {\r\n return translate(docSubmitStatusTranslationMap[status]);\r\n}\r\n\r\n/**\r\n * デコードマスタ\r\n */\r\nexport type ReservationSettingDecodeMstKey = {\r\n diagonosis: T\r\n symptom: T\r\n epidemic: T\r\n emergency: T\r\n eatingMethod: T\r\n brestFeedingDetail: T\r\n weaningDetailOptions: T\r\n eatingAbility: T\r\n actions: T\r\n toiletAbility: T\r\n reduction: T\r\n formUseReason: T\r\n}\r\n\r\nexport const DECODE_MST_INPUT_LIST: ReservationSettingDecodeMstKey = {\r\n diagonosis: DecodeMstCategory.DIAGNOSIS,\r\n symptom: DecodeMstCategory.SYMPTOM,\r\n epidemic: DecodeMstCategory.EPIDEMIC,\r\n emergency: DecodeMstCategory.EMERGENCY,\r\n eatingMethod: DecodeMstCategory.EATING_METHOD,\r\n brestFeedingDetail: DecodeMstCategory.BREST_FEEDING_DETAIL,\r\n weaningDetailOptions: DecodeMstCategory.WEANING_DETAIL_OPTION,\r\n eatingAbility: DecodeMstCategory.EATING_ABILITY,\r\n actions: DecodeMstCategory.ACTION,\r\n toiletAbility: DecodeMstCategory.TOILET_ABILITY,\r\n reduction: DecodeMstCategory.REDUCTION,\r\n formUseReason: DecodeMstCategory.FORM_USE_REASON\r\n}\r\n\r\nexport type ReservationSettingDecodeMst = ReservationSettingDecodeMstKey\r\n\r\nexport const getReservationDecodeMstValue = async () => {\r\n return await getDecodeMstValue(DECODE_MST_INPUT_LIST)\r\n}\r\n\r\nexport const setStringifyNamesChildInfoList = (childInfoList: T[], decodeMstValue: ReservationSettingDecodeMst):T[] => {\r\n return childInfoList.map((childInfo) => {\r\n const returnChildInfo = { ...childInfo };\r\n \r\n if ( childInfo.medicalDoc ) {\r\n returnChildInfo.medicalDoc = {\r\n ...childInfo.medicalDoc,\r\n status: getDocSubmitStatusName(getMedicalDocSubmitStatus(childInfo.medicalDoc.hasSubmitted, childInfo.medicalDoc.docs))\r\n };\r\n }\r\n\r\n if ( childInfo.hospitalInfo ) {\r\n returnChildInfo.hospitalInfo = {\r\n date: childInfo.hospitalInfo.date,\r\n time: childInfo.hospitalInfo.time,\r\n hospitalName: childInfo.hospitalInfo.hospitalName,\r\n }\r\n }\r\n \r\n if ( childInfo.symptom ) {\r\n returnChildInfo.symptom = {\r\n ...childInfo.symptom,\r\n stringify: stringifyCheckBox(decodeMstValue.symptom, childInfo.symptom.symptoms, childInfo.symptom.other),\r\n };\r\n }\r\n \r\n if ( childInfo.diagonosis ) {\r\n returnChildInfo.diagonosis = {\r\n first: {\r\n ...childInfo.diagonosis.first,\r\n stringify: stringifySelectBox(decodeMstValue.diagonosis, childInfo.diagonosis.first.select, childInfo.diagonosis.first.other, ['その他'])\r\n },\r\n second: {\r\n ...childInfo.diagonosis.second,\r\n stringify: stringifySelectBox(decodeMstValue.diagonosis, childInfo.diagonosis.second.select, childInfo.diagonosis.second.other, ['その他'])\r\n }\r\n };\r\n }\r\n \r\n if ( childInfo.epidemic ) {\r\n returnChildInfo.epidemic = {\r\n ... childInfo.epidemic,\r\n stringify: stringifySelectBox(decodeMstValue.epidemic, childInfo.epidemic.select, childInfo.epidemic.other, ['その他'])\r\n }\r\n }\r\n \r\n if ( childInfo.temperature ) {\r\n returnChildInfo.temperature = {\r\n ... childInfo.temperature,\r\n stringify: combineDecimalParts(childInfo.temperature)?.toString()\r\n }\r\n }\r\n \r\n if ( childInfo.emergencyAction ) {\r\n returnChildInfo.emergencyAction = {\r\n ... childInfo.emergencyAction,\r\n action: {\r\n select: childInfo.emergencyAction.action.select,\r\n stringify: stringifySelectBox(decodeMstValue.emergency, childInfo.emergencyAction.action.select)\r\n }\r\n \r\n }\r\n }\r\n \r\n if ( childInfo.height ) {\r\n returnChildInfo.height = {\r\n ... childInfo.height,\r\n stringify: combineDecimalParts(childInfo.height)?.toString()\r\n }\r\n }\r\n \r\n if ( childInfo.weight ) {\r\n returnChildInfo.weight = {\r\n ... childInfo.weight,\r\n stringify: combineDecimalParts(childInfo.weight)?.toString()\r\n }\r\n }\r\n \r\n if ( childInfo.eatingMethod ) {\r\n returnChildInfo.eatingMethod = {\r\n ... childInfo.eatingMethod,\r\n method: {\r\n select: childInfo.eatingMethod.method.select,\r\n stringify: stringifySelectBox(decodeMstValue.eatingMethod, childInfo.eatingMethod.method.select)\r\n }\r\n \r\n }\r\n }\r\n \r\n if ( childInfo.eatingAbility ) {\r\n returnChildInfo.eatingAbility = {\r\n ... childInfo.eatingAbility,\r\n stringify: stringifySelectBox(decodeMstValue.eatingAbility, childInfo.eatingAbility.select)\r\n }\r\n }\r\n \r\n if ( childInfo.actions ) {\r\n returnChildInfo.actions = {\r\n ... childInfo.actions,\r\n action: {\r\n select: childInfo.actions.action.select,\r\n stringify: stringifySelectBox(decodeMstValue.actions, childInfo.actions.action.select)\r\n }\r\n }\r\n }\r\n \r\n if ( childInfo.toiletAbility ) {\r\n returnChildInfo.toiletAbility = {\r\n ... childInfo.toiletAbility,\r\n stringify: stringifySelectBox(decodeMstValue.toiletAbility, childInfo.toiletAbility.select)\r\n }\r\n }\r\n \r\n if ( childInfo.considerations ) {\r\n returnChildInfo.considerations = childInfo.considerations\r\n }\r\n \r\n if ( childInfo.reductionType ) {\r\n returnChildInfo.reductionType = {\r\n ... childInfo.reductionType,\r\n reduction: {\r\n ... childInfo.reductionType.reduction,\r\n stringify: stringifySelectBox(decodeMstValue.reduction, childInfo.reductionType.reduction.select)\r\n },\r\n }\r\n }\r\n\r\n if ( childInfo.attachedDoc ) {\r\n returnChildInfo.attachedDoc = {\r\n ...childInfo.attachedDoc,\r\n status: getDocSubmitStatusName(getDocSubmitStatus(childInfo.attachedDoc.docs))\r\n };\r\n }\r\n\r\n if ( childInfo.facilityInputFields ) {\r\n returnChildInfo.facilityInputFields = {\r\n ...childInfo.facilityInputFields,\r\n };\r\n }\r\n \r\n return returnChildInfo;\r\n })\r\n}\r\n\r\n","import { SelectChangeEvent } from '@mui/material'\r\nimport { differenceInMinutes } from 'date-fns'\r\nimport { useCallback, useEffect, useMemo, useState, useRef } from 'react'\r\nimport { useFieldArray, useForm, useWatch } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router'\r\nimport { \r\n reservationStatus, \r\n reservableUnitPatterMinutes, \r\n yesNo, \r\n purposeOfUse as purposeOfUseValue, \r\n useReasonCode as useReasonCodeValue, \r\n Flag, availabilityStatus, \r\n lotteryAcceptTypeOption, \r\n useReasonDisplayTypes\r\n} from '../../containers/common/constant/classification'\r\nimport {\r\n FacilityReserveEntry,\r\n selectFacilityReserveEntry,\r\n setFacilityReserve,\r\n setReserveModifyUpdateDatetime,\r\n IsCertificateUseReasonViewFlags,\r\n clearFacilityReserve,\r\n} from '../../containers/common/store/slices/facilityReserve'\r\nimport { executeGetChildren } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { executeGetFacilityReservationsDays } from '../../dataAccess/webApi/dao/facilityReservationsDaysDao'\r\nimport { executeGetFacilityReservationsWeekCitizen } from '../../dataAccess/webApi/dao/facilityReservationsWeekCitizenDao'\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { GetFacilityReservationsDaysDto } from '../../dataAccess/webApi/dto/facilityReservationsDaysDto'\r\nimport { GetFacilityReservationsWeekCitizenDto } from '../../dataAccess/webApi/dto/facilityReservationsWeekCitizenDto'\r\nimport { GetReservationsDto } from '../../dataAccess/webApi/dto/reservationsDto'\r\nimport { translate } from '../../i18n'\r\nimport { DateRange, ElapsedMillisecond, getNowTrimedTime, isValidDate, toApiYmd, formatHyphenYmd, formatYmdHm } from '../../utils/dateUtil'\r\nimport { promiseAllConcurrency } from '../../utils/promiseUtil'\r\nimport { fromNumber } from '../../utils/stringUtil'\r\nimport { castNonNullable, NullPropsToUndefinedType } from '../../utils/typeUtil'\r\nimport { facilityLotteryReservationFormUrl, facilityReservationFormUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { getReservation, Reservation, ChildReservationInfoType, DiagonosisType} from '../common/reservation'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { executeGetIsolationFlag, executeGetReservations } from '../../dataAccess/webApi/dao/reservationsDao'\r\nimport { getUseReason } from '../common/useReason'\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { clearLotteryReserve, LotteryReserveEntry, selectLotteryReserveEntry, setLotteryReserve } from '../common/store/slices/lotteryReserve'\r\nimport { ChildLotteryReservationInfoType, LotteryReservation } from '../common/lotteryReservation'\r\nimport { getUsageGuidStr } from '../common/reservationSelection';\r\nimport { UseReasonOptions } from '../../views/components/facilityReservationForm/useReasonRadioGroup'\r\nimport { getDecodeMstValue } from '../common/getDecodeMstValue'\r\nimport { DecodeMstCategory } from '../common/constant/decodeMst'\r\n\r\ninterface InsertUrlParams {\r\n facilityId: string\r\n childId: string\r\n}\r\ninterface UpdateUrlParams {\r\n reservationNo: string\r\n}\r\ntype UrlParams = InsertUrlParams | UpdateUrlParams\r\n\r\ntype DesiredDatetime = {\r\n value: {\r\n baseDateOfTime: Date // 時間の基準となる日付\r\n range: DateRange // 日時範囲\r\n status: string // 空き状況ステータス\r\n }\r\n}\r\ntype DetailDescription = {\r\n value: string | null\r\n}\r\nexport interface Inputs {\r\n // 利用希望日時\r\n usageDesiredDatetimes: DesiredDatetime[]\r\n purposeOfUse: string | null\r\n useReasonDetailIrregular: string | null\r\n useReasonDetailEmg: string | null\r\n useReasonDetailRefresh: string | null\r\n useReasonDetailDescriptionsIrregular: DetailDescription[]\r\n useReasonDetailDescriptionsEmg: DetailDescription[]\r\n useReasonDetailDescriptionsRefresh: DetailDescription[]\r\n selectedChildIds: string[]\r\n diagonosis: DiagonosisType | undefined\r\n}\r\n\r\nexport type Child = { value: string; label: string }\r\nexport interface LocationState {\r\n isKeep?: boolean // 入力済み情報から復元を試みる場合true\r\n activeDate: ElapsedMillisecond\r\n children: Child[]\r\n}\r\n\r\nexport const getIsolationFlag = async (facilityId: string, usageDate: string): Promise => {\r\n const inputData = { \r\n facilityId,\r\n usageDate\r\n }\r\n return (await executeGetIsolationFlag(inputData)).result\r\n}\r\n\r\nexport const getDiagonosisDecodeMstValue = async () => {\r\n const diagonosisDecodeMst = await getDecodeMstValue({\r\n diagonosis: DecodeMstCategory.DIAGNOSIS,\r\n })\r\n const diagonosisMst = diagonosisDecodeMst.diagonosis.map((diagonosis) => ({value: diagonosis.code, label: diagonosis.name}))\r\n return diagonosisMst\r\n}\r\n\r\ntype CommonFlag = typeof yesNo[keyof typeof yesNo]\r\nexport interface PageState {\r\n prevReservation?: Reservation // 変更前利用予約情報\r\n activeDate: Date\r\n selectedChildIds: string[] // 選択されたお子様IDリスト\r\n children: Child[] // 選択対象お子さまリスト\r\n facilityId: string\r\n facility: NullPropsToUndefinedType // 施設情報\r\n purposeOfUse?: string | null\r\n useReasonDetailCategory: string | null\r\n useReasonDetailDescription: string | null\r\n commonFlag: CommonFlag\r\n useReasonOptions: UseReasonOptions\r\n isCertificateUseReasonViewFlags: IsCertificateUseReasonViewFlags\r\n usageGuideStr: string\r\n useReason: NullPropsToUndefinedType // 利用目的マスタ情報\r\n availabilities: GetFacilityReservationsWeekCitizenDto[]\r\n initialValidationAvailabilities: GetFacilityReservationsDaysDto[] // 入力済み情報から復元する際に空き状況を再度確認する用\r\n diagonosisDecodeMst: { value: string; label: string }[]\r\n isolationFlag: Boolean | null\r\n diagonosis: {\r\n first: string | null,\r\n second: string | null\r\n },\r\n acceptLottery: boolean,\r\n note: string | null,\r\n lotteryNote: string | null\r\n}\r\n\r\ninterface ShowMessage {\r\n Date: Date;\r\n message: string;\r\n}\r\n\r\n// 施設情報同時取得最大値\r\nconst MAX_WORKER_COUNT = 4\r\n\r\n// facilityIdがパラメータにある場合=新規予約、ない場合=予約変更\r\nconst isInsertParams = (urlParams: UrlParams): urlParams is InsertUrlParams => {\r\n return 'facilityId' in urlParams\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const urlParams = useParams()\r\n const { addOperationLog, attachAccessData } = useOperationLog()\r\n const locationState = history.location.state\r\n\r\n const facilityReserveEntry = useSelector(selectFacilityReserveEntry)\r\n const lotteryReserveEntry = useSelector(selectLotteryReserveEntry)\r\n const reserveEntry: FacilityReserveEntry | LotteryReserveEntry | undefined = facilityReserveEntry ?? lotteryReserveEntry\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const initialized = useRef(false);\r\n\r\n // ページ情報\r\n const [state, setState] = useState()\r\n \r\n // 変更前の日時\r\n const previousRange = useMemo(() => {\r\n if (state?.prevReservation) {\r\n return {\r\n range: {\r\n from: new Date(state.prevReservation.useFromDatetime),\r\n to: new Date(state.prevReservation.useToDatetime),\r\n },\r\n baseDateOfTime: new Date(state.prevReservation.usageDate),\r\n isWaiting: state.prevReservation.status === reservationStatus.wait,\r\n }\r\n }\r\n }, [state?.prevReservation])\r\n\r\n // 「予約期間外」の文言表示\r\n const notifyDateFetchErrorMessage = useCallback(() => dispatch(notifyMessage(translate('facilityReservationSelection.error.noReservationReceptionSetting'))),[])\r\n\r\n // フォーム関連\r\n const formMethods = useForm()\r\n const purposeOfUse = useWatch({ name: 'purposeOfUse', control: formMethods.control})\r\n const useReasonDetailIrregular = useWatch({ name: 'useReasonDetailIrregular', control: formMethods.control })\r\n const useReasonDetailEmg = useWatch({ name: 'useReasonDetailEmg', control: formMethods.control })\r\n const useReasonDetailRefresh = useWatch({ name: 'useReasonDetailRefresh', control: formMethods.control })\r\n const { append: appendUseReasonDetailDescriptionsIrregular } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsIrregular',\r\n control: formMethods.control,\r\n })\r\n const { append: appendUseReasonDetailDescriptionsEmg } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsEmg',\r\n control: formMethods.control,\r\n })\r\n const { append: appendUseReasonDetailDescriptionsRefresh } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsRefresh',\r\n control: formMethods.control,\r\n })\r\n\r\n const getNotes = useCallback((\r\n facility: NullPropsToUndefinedType, \r\n acceptLottery: boolean, \r\n purposeOfUse: string | null | undefined,\r\n commonFlag: typeof yesNo [keyof typeof yesNo]\r\n ) => {\r\n const returnObject: {\r\n note: string | null,\r\n lotteryNote: string | null\r\n } = {\r\n note: null,\r\n lotteryNote: null\r\n }\r\n\r\n // 利用目的別設定で利用目的が未選択の場合\r\n if ( commonFlag === yesNo.no && purposeOfUse === undefined ) return returnObject;\r\n\r\n if ( !purposeOfUse ) {\r\n // 共通設定(利用目的利用・未利用何れも含む)\r\n returnObject.note = facility.detailSetting[0].note;\r\n if ( acceptLottery && facility.lotteryNotes ) {\r\n returnObject.lotteryNote = facility.lotteryNotes[0].note;\r\n }\r\n } else {\r\n // 利用目的が選択されている場合、または利用・抽選の何れかのみが利用目的別の設定の場合\r\n returnObject.note = facility.detailSetting.find((setting) => setting.useReasonCode === purposeOfUse)?.note ?? facility.detailSetting[0].note;\r\n if ( acceptLottery && facility.lotteryNotes ) {\r\n if ( facility.lotteryAcceptType === lotteryAcceptTypeOption.common ) {\r\n returnObject.lotteryNote = facility.lotteryNotes[0].note;\r\n } else {\r\n returnObject.lotteryNote = facility.lotteryNotes.find((setting) => setting.useReasonCode === purposeOfUse)?.note?? null;\r\n }\r\n }\r\n }\r\n\r\n return returnObject;\r\n }, [])\r\n\r\n // 初期化\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const backedFromNextPage = locationState && locationState.isKeep && reserveEntry\r\n\r\n let activeDate: Date = sysCtrl.systemDatetime? new Date(sysCtrl.systemDatetime) : getNowTrimedTime()\r\n let selectedChildIds: string[] = []\r\n let facilityId: string | null = null\r\n let purposeOfUse: string | null | undefined = undefined\r\n let useReasonDetailCategory: string | null = null\r\n let useReasonDetailDescription: string | null = null\r\n let useReasonDetailIrregular: string | null = null\r\n let useReasonDetailEmg: string | null = null\r\n let useReasonDetailRefresh: string | null = null;\r\n let isCertificateUseReasonViewFlags: IsCertificateUseReasonViewFlags = {irregularFlag: true, emgFlag: true, refreshFlag: true}\r\n let children: Child[] = []\r\n let usageDesiredDatetimes: DesiredDatetime[] = []\r\n let reservationNo: string | null = null\r\n let prevReservation: Reservation | undefined;\r\n let diagonosis: {\r\n first: string | null,\r\n second: string | null\r\n } = { first: null, second: null }\r\n let inputDiagonosis: DiagonosisType | undefined = {\r\n first: {\r\n select: null,\r\n other: null\r\n },\r\n second: {\r\n select: null,\r\n other: null\r\n }\r\n }\r\n\r\n // 新規登録 OR 利用予約変更\r\n if (isInsertParams(urlParams)) {\r\n if (locationState && backedFromNextPage) {\r\n // ページ戻りの場合\r\n activeDate = new Date(locationState.activeDate)\r\n selectedChildIds = reserveEntry.childInfoList.map((childInfo) => childInfo.childId)\r\n facilityId = reserveEntry.facility.facilityId\r\n purposeOfUse = reserveEntry.useReasonCategory\r\n useReasonDetailCategory = reserveEntry.useReasonDetailCategory;\r\n useReasonDetailDescription = reserveEntry.useReasonDetailDescription\r\n isCertificateUseReasonViewFlags = reserveEntry.isCertificateUseReasonViewFlags\r\n children = locationState.children\r\n usageDesiredDatetimes = reserveEntry.usageDatetimes.map((v) => ({\r\n value: {\r\n baseDateOfTime: new Date(v.usageDate),\r\n range: { from: new Date(v.useFromDatetime), to: new Date(v.useToDatetime)},\r\n status: v.status,\r\n },\r\n }))\r\n diagonosis = {\r\n first: reserveEntry.childInfoList[0].diagonosis?.first.select ?? null,\r\n second: reserveEntry.childInfoList[0].diagonosis?.second.select ?? null\r\n }\r\n inputDiagonosis = reserveEntry.childInfoList[0].diagonosis\r\n } else {\r\n selectedChildIds = [urlParams.childId]\r\n facilityId = urlParams.facilityId\r\n children = locationState?.children ?? []\r\n }\r\n selectedChildIds.forEach((childId) => {\r\n attachAccessData({\r\n accessData: [\r\n { \r\n userIdRegFlag: yesNo.yes, \r\n childId: childId\r\n }\r\n ]\r\n })\r\n }) \r\n } else {\r\n reservationNo = urlParams.reservationNo\r\n prevReservation = await getReservation(reservationNo)\r\n let usageDate: number;\r\n if (locationState && backedFromNextPage) {\r\n // ページ戻りの場合\r\n activeDate = new Date(locationState.activeDate)\r\n selectedChildIds = reserveEntry.childInfoList.map((childInfo) => childInfo.childId)\r\n facilityId = reserveEntry.facility.facilityId\r\n purposeOfUse = reserveEntry.useReasonCategory\r\n useReasonDetailCategory = reserveEntry.useReasonDetailCategory;\r\n useReasonDetailDescription = reserveEntry.useReasonDetailDescription\r\n isCertificateUseReasonViewFlags = reserveEntry.isCertificateUseReasonViewFlags\r\n children = locationState.children\r\n usageDesiredDatetimes = [{\r\n value: {\r\n baseDateOfTime: new Date(reserveEntry.usageDatetimes[0].usageDate),\r\n range: { from: new Date(reserveEntry.usageDatetimes[0].useFromDatetime), to: new Date(reserveEntry.usageDatetimes[0].useToDatetime)},\r\n status: reserveEntry.usageDatetimes[0].status,\r\n }\r\n }]\r\n usageDate = reserveEntry.usageDatetimes[0].usageDate\r\n diagonosis = {\r\n first: reserveEntry.childInfoList[0].diagonosis?.first.select ?? null,\r\n second: reserveEntry.childInfoList[0].diagonosis?.second.select ?? null\r\n }\r\n inputDiagonosis = reserveEntry.childInfoList[0].diagonosis\r\n } else {\r\n activeDate = new Date(prevReservation.usageDate)\r\n selectedChildIds = prevReservation.childInfoList.map((childInfo) => childInfo.childId)\r\n facilityId = prevReservation.facilityId\r\n purposeOfUse = prevReservation.useReasonCategory\r\n useReasonDetailCategory = prevReservation.useReasonDetailCategory;\r\n useReasonDetailDescription = prevReservation.useReasonDetailDescription\r\n usageDesiredDatetimes = [{\r\n value: {\r\n baseDateOfTime: activeDate,\r\n range: { from: new Date(prevReservation.useFromDatetime), to: new Date(prevReservation.useToDatetime)},\r\n status: prevReservation.status,\r\n },\r\n }]\r\n usageDate = prevReservation.usageDate\r\n diagonosis = {\r\n first: prevReservation.childInfoList[0].diagonosis?.first.select ?? null,\r\n second: prevReservation.childInfoList[0].diagonosis?.second.select ?? null\r\n }\r\n inputDiagonosis = prevReservation.childInfoList[0].diagonosis\r\n }\r\n attachAccessData({\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n childId: selectedChildIds[0],\r\n usageDate: toApiYmd(usageDate),\r\n reservationNo: reservationNo,\r\n }\r\n ],\r\n })\r\n }\r\n\r\n if (!facilityId) {\r\n notifyDateFetchErrorMessage()\r\n return\r\n }\r\n\r\n const [facility, childrenResponse, useReason, diagonosisDecodeMst] = await Promise.all([\r\n getFacility(facilityId, activeDate),\r\n children.length > 0 ? null : executeGetChildren({ \r\n facilityId,\r\n getLatestInterviewedFlag: Flag.OFF\r\n }),\r\n getUseReason(),\r\n getDiagonosisDecodeMstValue()\r\n ]);\r\n\r\n if (facility.detailSetting.length === 0 || facility.detailSetting[0].useReasonCode === null) {\r\n notifyDateFetchErrorMessage()\r\n return\r\n }\r\n \r\n if (childrenResponse) {\r\n children = childrenResponse.result.map((child) => ({ value: child.childId, label: child.name }));\r\n if (!backedFromNextPage) {\r\n if (facility.certificateFlag === yesNo.yes) {\r\n if(facility.certificateControlAtypical === yesNo.yes && childrenResponse.result.every((child) => child.useFlagAtypical === yesNo.yes)) {\r\n isCertificateUseReasonViewFlags.irregularFlag = false;\r\n }\r\n if(facility.certificateControlEmergency === yesNo.yes && childrenResponse.result.every((child) => child.useFlagEmergency === yesNo.yes)) {\r\n isCertificateUseReasonViewFlags.emgFlag = false;\r\n }\r\n if(facility.certificateControlRefresh === yesNo.yes && childrenResponse.result.every((child) => child.useFlagRefresh === yesNo.yes)) {\r\n isCertificateUseReasonViewFlags.refreshFlag = false;\r\n }\r\n } \r\n }\r\n }\r\n\r\n const useReasonDetailDescriptionsIrregular: DetailDescription[] = Array(useReason.detailsIrregular.length).fill(null).map(() => ({ value: null }));\r\n const useReasonDetailDescriptionsEmg: DetailDescription[] = Array(useReason.detailsEmg.length).fill(null).map(() => ({ value: null }));\r\n const useReasonDetailDescriptionsRefresh: DetailDescription[] = Array(useReason.detailsRefresh.length).fill(null).map(() => ({ value: null }));\r\n\r\n // 抽選予約を受け付けているか\r\n const acceptLottery = (\r\n sysCtrl.lotteryDisplayFlag === yesNo.yes \r\n && sysCtrl.lotteryFlag === yesNo.yes \r\n && facility.lotteryFlag === yesNo.yes \r\n )\r\n\r\n // 各利用目的の利用可否\r\n const useReasonOptions: UseReasonOptions = {\r\n irregular: \r\n facility.irregularDisplayType === useReasonDisplayTypes.usedInBoth\r\n && facility.useReasonUsageFlagIrregular === yesNo.yes\r\n && isCertificateUseReasonViewFlags.irregularFlag,\r\n emergency: \r\n facility.emergencyDisplayType === useReasonDisplayTypes.usedInBoth\r\n && facility.useReasonUsageFlagEmg === yesNo.yes\r\n && isCertificateUseReasonViewFlags.emgFlag,\r\n refresh:\r\n facility.refreshDisplayType === useReasonDisplayTypes.usedInBoth\r\n && facility.useReasonUsageFlagRefresh === yesNo.yes\r\n && isCertificateUseReasonViewFlags.refreshFlag,\r\n };\r\n\r\n // 共通OR利用目的別設定かの判断\r\n let commonFlag: CommonFlag = yesNo.no;\r\n if (\r\n facility.detailSetting.length === 1 \r\n && facility.detailSetting[0].useReasonCode === useReasonCodeValue.common \r\n && ( !acceptLottery || facility.lotteryAcceptType === lotteryAcceptTypeOption.common)\r\n ) { \r\n commonFlag = yesNo.yes;\r\n if (Object.values(useReasonOptions).every((value)=> !value)) {\r\n // 全ての利用目的が使用されない場合\r\n purposeOfUse = null;\r\n }\r\n }\r\n \r\n // カレンダー説明文\r\n const usageGuideStr = getUsageGuidStr(\r\n facility.immediatelyReservationFlag,\r\n facility.cancelWaitAcceptFlag,\r\n facility.postponeCancelWaitAcceptFlag,\r\n acceptLottery\r\n );\r\n\r\n switch (purposeOfUse) {\r\n case purposeOfUseValue.irregular:\r\n useReasonDetailIrregular = useReasonDetailCategory\r\n if (useReasonDetailIrregular) {\r\n const index = Number(useReasonDetailIrregular) - 1\r\n useReasonDetailDescriptionsIrregular[index].value = useReasonDetailDescription\r\n }\r\n \r\n break;\r\n case purposeOfUseValue.emergency:\r\n useReasonDetailEmg = useReasonDetailCategory\r\n if (useReasonDetailEmg) {\r\n const index = Number(useReasonDetailEmg) - 1\r\n useReasonDetailDescriptionsEmg[index].value = useReasonDetailDescription\r\n }\r\n break;\r\n case purposeOfUseValue.refresh:\r\n useReasonDetailRefresh = useReasonDetailCategory\r\n if (useReasonDetailRefresh) {\r\n const index = Number(useReasonDetailRefresh) - 1\r\n useReasonDetailDescriptionsRefresh[index].value = useReasonDetailDescription\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n appendUseReasonDetailDescriptionsIrregular(useReasonDetailDescriptionsIrregular);\r\n appendUseReasonDetailDescriptionsEmg(useReasonDetailDescriptionsEmg);\r\n appendUseReasonDetailDescriptionsRefresh(useReasonDetailDescriptionsRefresh);\r\n\r\n const canGetAvaiabilitiesForWeek = \r\n ((!facility.isolationFlag && commonFlag === yesNo.yes && purposeOfUse !== undefined)\r\n || \r\n (facility.isolationFlag && (diagonosis.first || diagonosis.second) && (commonFlag === yesNo.yes || purposeOfUse !== undefined)))?? false\r\n\r\n const [availabilities, initialValidationAvailabilities] = await Promise.all([\r\n canGetAvaiabilitiesForWeek ? getAvaiabilitiesForWeek(\r\n facilityId,\r\n selectedChildIds,\r\n activeDate,\r\n purposeOfUse,\r\n reservationNo,\r\n diagonosis\r\n ) : [],\r\n purposeOfUse !== undefined ? getAvailabilitiesByDays(\r\n facilityId,\r\n selectedChildIds,\r\n getInitialSelectedUsageApiYmds(locationState?.isKeep, reserveEntry),\r\n reservationNo,\r\n diagonosis,\r\n purposeOfUse,\r\n ): []\r\n ]);\r\n\r\n const { note, lotteryNote } = getNotes(facility, acceptLottery, purposeOfUse, commonFlag);\r\n\r\n formMethods.reset({\r\n usageDesiredDatetimes,\r\n purposeOfUse,\r\n useReasonDetailIrregular,\r\n useReasonDetailEmg,\r\n useReasonDetailRefresh,\r\n useReasonDetailDescriptionsIrregular,\r\n useReasonDetailDescriptionsEmg,\r\n useReasonDetailDescriptionsRefresh,\r\n selectedChildIds,\r\n diagonosis: inputDiagonosis\r\n })\r\n setState({\r\n prevReservation,\r\n activeDate,\r\n selectedChildIds,\r\n children,\r\n facilityId,\r\n facility,\r\n purposeOfUse,\r\n useReasonDetailCategory,\r\n useReasonDetailDescription,\r\n commonFlag,\r\n useReasonOptions,\r\n isCertificateUseReasonViewFlags,\r\n usageGuideStr,\r\n useReason,\r\n availabilities,\r\n initialValidationAvailabilities,\r\n diagonosisDecodeMst,\r\n isolationFlag: facility.isolationFlag,\r\n diagonosis,\r\n acceptLottery,\r\n note,\r\n lotteryNote\r\n })\r\n })\r\n )\r\n )\r\n }, [])\r\n \r\n // コンテンツが表示された後に一番上にスクロールする\r\n useEffect(() => {\r\n if (!state || state.availabilities.length === 0 || initialized.current) return\r\n setTimeout(() => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }, 0);\r\n initialized.current = true;\r\n }, [state])\r\n \r\n // 条件が変わったときに空き状況確認する\r\n useEffect(() => {\r\n if (!state) return\r\n if (\r\n state.selectedChildIds.length === 0\r\n || state.commonFlag === null\r\n ) {\r\n return\r\n }\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (state.commonFlag === yesNo.no && state.purposeOfUse === undefined) return\r\n if (state.isolationFlag && Object.values(state.diagonosis).every(v => v === null)) return\r\n\r\n const availabilities = await getAvaiabilitiesForWeek(\r\n state.facilityId,\r\n state.selectedChildIds,\r\n state.activeDate,\r\n state.purposeOfUse,\r\n getAvailabilitiesReservationNo(state.prevReservation),\r\n state.diagonosis,\r\n )\r\n\r\n if (availabilities) {\r\n setState((prev) => (\r\n { \r\n ...prev as PageState, \r\n availabilities, \r\n })\r\n );\r\n }else {\r\n // 異常処理\r\n notifyDateFetchErrorMessage()\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n );\r\n }, [\r\n state?.selectedChildIds,\r\n state?.activeDate,\r\n state?.purposeOfUse,\r\n state?.diagonosis\r\n ]\r\n );\r\n\r\n // お子さま変更\r\n const changeSelectedChildIds = useCallback((childId: string, checked: boolean) => {\r\n if (!state || !childId) return\r\n addOperationLog({ operationId: OperationId.OP_00000028 })\r\n\r\n let updatedselectedChildIds = [...state.selectedChildIds]\r\n if( checked ) {\r\n if ( !updatedselectedChildIds.includes( childId ) ) {\r\n updatedselectedChildIds.push(childId);\r\n }\r\n }else {\r\n updatedselectedChildIds = updatedselectedChildIds.filter( ( id ) => id !== childId )\r\n }\r\n \r\n setState((prev) => ({\r\n ...prev as PageState,\r\n selectedChildIds: updatedselectedChildIds\r\n }))\r\n }, [state])\r\n\r\n // お子さま変更\r\n const changeDropDownSelectedChildId = useCallback((event: SelectChangeEvent) => {\r\n if (!state) return\r\n const childId = event.target.value;\r\n if ( !childId ) return;\r\n \r\n setState((prev) => ({\r\n ...prev as PageState,\r\n selectedChildIds: [childId]\r\n }))\r\n }, [state])\r\n\r\n // 日付変更\r\n const changeDate = useCallback((date: Date | null): void => {\r\n if (!state) return\r\n addOperationLog({ operationId: OperationId.OP_00000029 })\r\n \r\n if (!isValidDate(date)) {\r\n notifyDateFetchErrorMessage();\r\n return;\r\n }\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n activeDate: date\r\n }));\r\n\r\n }, [state])\r\n \r\n // 利用目的変更\r\n const changeUseReason = useCallback((event: React.ChangeEvent): void => {\r\n if (!state) return\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n purposeOfUse: event.target.value,\r\n })\r\n\r\n if (state.commonFlag === yesNo.yes) return\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n purposeOfUse: event.target.value,\r\n ...getNotes(state.facility, state.acceptLottery, event.target.value, state.commonFlag)\r\n }));\r\n\r\n }, [state])\r\n\r\n // 病気変更\r\n const changeDropDownSelectedDiagonosis = useCallback(\r\n (field: 'first' | 'second') => (event: SelectChangeEvent) => {\r\n if (!state) return;\r\n\r\n const diagonosisValue = event.target.value;\r\n if (!diagonosisValue) return;\r\n \r\n setState((prev) => ({\r\n ...prev as PageState,\r\n diagonosis: {\r\n ...(prev?.diagonosis ?? { first: null, second: null }),\r\n [field]: diagonosisValue,\r\n },\r\n }))\r\n },\r\n [state]\r\n )\r\n\r\n const handleChangeFirst = (event: SelectChangeEvent) => {\r\n changeDropDownSelectedDiagonosis('first')(event);\r\n };\r\n \r\n const handleChangeSecond = (event: SelectChangeEvent) => {\r\n changeDropDownSelectedDiagonosis('second')(event);\r\n };\r\n \r\n /**\r\n * 妥当性検査\r\n * @param data 入力値\r\n * @param facilityId 施設ID\r\n * @returns エラーが存在する場合true\r\n */\r\n const validate = useCallback(async (data: Inputs, facilityId: string) => {\r\n const response: {isError: boolean; showMessages: ShowMessage[]} = {\r\n isError: false,\r\n showMessages: []\r\n }\r\n if (!state) return response;\r\n \r\n const facilityMap = await getFacilityMapByUsageDateElapsed(\r\n facilityId,\r\n new Set(data.usageDesiredDatetimes.map((v) => v.value.baseDateOfTime.getTime()))\r\n )\r\n \r\n const areAnyCheckboxesSelected = formMethods.getValues(`selectedChildIds`).every(item => item === '')\r\n if (areAnyCheckboxesSelected) {\r\n formMethods.setError(`selectedChildIds.0`, {\r\n message: translate(\r\n 'facilityReservationSelection.error.noSelectionChild'\r\n ),\r\n })\r\n response.isError = true\r\n }\r\n\r\n // 対象日を取得する\r\n const entriesArray = Array.from(data.usageDesiredDatetimes.entries())\r\n\r\n for (const [idx, { value: { baseDateOfTime, range } }] of entriesArray) {\r\n const facility = facilityMap.get(baseDateOfTime.getTime())\r\n const minReservationMinute = facility?.minReservationMinute\r\n const reservableUnitPatternMinute = facility && reservableUnitPatterMinutes[facility?.reservableUnitPattern]\r\n if (minReservationMinute != null) {\r\n // 最低予約時間が設定されていれる場合\r\n const minute = differenceInMinutes(range.to, range.from)\r\n if (minute < minReservationMinute) {\r\n formMethods.setError(`usageDesiredDatetimes.${idx}.value`, {\r\n message: translate(\r\n 'facilityReservationSelection.error.minReservationMinute',\r\n fromNumber(minReservationMinute)\r\n ),\r\n })\r\n response.isError = true\r\n }\r\n }\r\n if (reservableUnitPatternMinute != null) {\r\n // 予約可能単位が設定されていれる場合\r\n const minute = differenceInMinutes(range.to, range.from)\r\n if (minute % reservableUnitPatternMinute !== 0) {\r\n formMethods.setError(`usageDesiredDatetimes.${idx}.value`, {\r\n message: translate(\r\n 'facilityReservationSelection.error.reservableUnitPattern',\r\n fromNumber(reservableUnitPatternMinute)\r\n ),\r\n })\r\n response.isError = true\r\n }\r\n }\r\n // 重複チェック\r\n const prevReservations: GetReservationsDto[] = (await executeGetReservations({ childId: state.selectedChildIds[0] ?? null, usageData: formatHyphenYmd(baseDateOfTime) })).result\r\n const duplicateConfirmControlFlag = sysCtrl?.duplicateConfirmControlFlag\r\n const duplicateUnsettledControlFlag = sysCtrl?.duplicateUnsettledControlFlag\r\n const duplicateWaitControlFlag = sysCtrl?.duplicateWaitControlFlag\r\n const crossBusinessFlg = sysCtrl?.crossBusinessDuplicationCheckFlag\r\n \r\n if (prevReservations.length > 0) {\r\n for (const reservation of prevReservations) {\r\n if (reservation.reservationNo === state?.prevReservation?.reservationNo) {\r\n continue;\r\n }\r\n \r\n if (crossBusinessFlg === yesNo.no && facility?.projectName !== reservation?.projectId) {\r\n continue;\r\n }\r\n \r\n if ( reservation.status === reservationStatus.canceled \r\n || reservation.status === reservationStatus.canceledWait\r\n || reservation.status === reservationStatus.rejected\r\n || reservation.status === reservationStatus.unused ) {\r\n continue;\r\n }\r\n \r\n if ( new Date(reservation.useFromDatetime) >= range.to || new Date(reservation.useToDatetime) <= range.from ) {\r\n continue;\r\n }\r\n \r\n const duplicateCtrlStatus = [];\r\n if ( duplicateUnsettledControlFlag === yesNo.yes ) {\r\n duplicateCtrlStatus.push(translate('facilityReservationSelection.error.duplicateReservationStatus.notFixed'))\r\n }\r\n if ( duplicateWaitControlFlag === yesNo.yes ) {\r\n duplicateCtrlStatus.push(translate('facilityReservationSelection.error.duplicateReservationStatus.wait'))\r\n }\r\n if ( duplicateConfirmControlFlag === yesNo.yes ) {\r\n duplicateCtrlStatus.push(translate('facilityReservationSelection.error.duplicateReservationStatus.fixed'))\r\n }\r\n const strDuplicateCtrlStatus = duplicateCtrlStatus.join('・')\r\n\r\n let isError = false\r\n let message = ''\r\n \r\n switch( reservation.status ) {\r\n case reservationStatus.notFixed:\r\n if ( duplicateUnsettledControlFlag === yesNo.yes ) {\r\n isError = true\r\n message += strDuplicateCtrlStatus\r\n }\r\n break\r\n case reservationStatus.fixed:\r\n if ( duplicateConfirmControlFlag === yesNo.yes ) {\r\n isError = true\r\n message += strDuplicateCtrlStatus\r\n }\r\n break\r\n case reservationStatus.wait:\r\n if ( duplicateWaitControlFlag === yesNo.yes ) {\r\n isError = true\r\n message += strDuplicateCtrlStatus\r\n }\r\n break\r\n case reservationStatus.used:\r\n isError = true\r\n message += translate('facilityReservationSelection.error.duplicateReservationStatus.used')\r\n break\r\n default:\r\n break\r\n }\r\n \r\n if ( isError ) {\r\n formMethods.setError(`usageDesiredDatetimes.${idx}.value`, {\r\n message: message + translate('facilityReservationSelection.error.duplicateReservationBase') + formatYmdHm(new Date(reservation.useFromDatetime)) + ' ~ ' + formatYmdHm(new Date(reservation.useToDatetime))\r\n })\r\n response.isError = true\r\n break\r\n }\r\n }\r\n }\r\n }\r\n\r\n return response\r\n }, [state])\r\n\r\n const onSubmit = useCallback((data: Inputs) => {\r\n if (!state) return\r\n addOperationLog({ operationId: OperationId.OP_00000030 })\r\n\r\n const facilityId = castNonNullable(state.facilityId)\r\n \r\n const formatDateToYYYYMMDD = (dateTime: Date) => {\r\n // 年、月、日を取得\r\n const year = dateTime.getFullYear();\r\n const month = String(dateTime.getMonth() + 1).padStart(2, '0');\r\n const day = String(dateTime.getDate()).padStart(2, '0');\r\n \r\n // yyyy-mm-dd形式に変換\r\n const formattedDate = `${year}-${month}-${day}`\r\n return formattedDate;\r\n }\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 妥当性検査\r\n const isValidateError = await validate(data, facilityId)\r\n if (isValidateError.isError) {\r\n return\r\n }\r\n \r\n let useReasonDetailCategory: string | null = null\r\n let useReasonDetailDescription: string | null = null\r\n \r\n switch (data.purposeOfUse) {\r\n case purposeOfUseValue.irregular:\r\n useReasonDetailCategory = data.useReasonDetailIrregular\r\n if (useReasonDetailCategory){\r\n const indexOfDescription = Number(useReasonDetailCategory) - 1\r\n useReasonDetailDescription = data.useReasonDetailDescriptionsIrregular[indexOfDescription].value\r\n }\r\n break\r\n case purposeOfUseValue.emergency:\r\n useReasonDetailCategory = data.useReasonDetailEmg\r\n if (useReasonDetailCategory){\r\n const indexOfDescription = Number(useReasonDetailCategory) - 1\r\n useReasonDetailDescription = data.useReasonDetailDescriptionsEmg[indexOfDescription].value\r\n }\r\n break\r\n case purposeOfUseValue.refresh:\r\n useReasonDetailCategory = data.useReasonDetailRefresh\r\n if (useReasonDetailCategory){\r\n const indexOfDescription = Number(useReasonDetailCategory) - 1\r\n useReasonDetailDescription = data.useReasonDetailDescriptionsRefresh[indexOfDescription].value\r\n }\r\n break\r\n }\r\n\r\n if (!state.facility || !state.facilityId) {\r\n return\r\n }\r\n\r\n if (data.usageDesiredDatetimes[0].value.status === availabilityStatus.lotteryReservationAvailable) {\r\n // 抽選予約の場合 \r\n dispatch(\r\n setLotteryReserve({\r\n usageDatetimes: data.usageDesiredDatetimes\r\n .map((v) => ({\r\n usageDate: v.value.baseDateOfTime.getTime(),\r\n useFromDatetime: v.value.range.from.getTime(),\r\n useToDatetime: v.value.range.to.getTime(),\r\n usageBaseDate: formatDateToYYYYMMDD(v.value.baseDateOfTime),\r\n status: v.value.status,\r\n }))\r\n .sort((a, b) => a.useFromDatetime - b.useFromDatetime),\r\n facility: {\r\n facilityId: state.facilityId,\r\n ...state.facility\r\n },\r\n childInfoList: createChildInfoListForLottery(state.selectedChildIds, undefined),\r\n isCertificateUseReasonViewFlags: state.isCertificateUseReasonViewFlags,\r\n useReasonCategory: data.purposeOfUse,\r\n useReasonDetailCategory,\r\n useReasonDetailDescription,\r\n })\r\n )\r\n dispatch(clearFacilityReserve())\r\n\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({\r\n ...history.location,\r\n state: {\r\n isKeep: true,\r\n activeDate: state.activeDate.getTime(),\r\n children: state.children\r\n },\r\n })\r\n\r\n history.push(facilityLotteryReservationFormUrl.url())\r\n } else {\r\n // 抽選予約以外の場合\r\n dispatch(\r\n setFacilityReserve({\r\n facility: {\r\n facilityId: state.facilityId,\r\n ...state.facility\r\n },\r\n reservationNo: state.prevReservation?.reservationNo,\r\n // 確認しやすくするために利用開始日でソートしておく\r\n showMessages: isValidateError.showMessages\r\n .sort((a, b) => a.Date.getTime() - b.Date.getTime())\r\n .map(({ Date, ...rest}) => ({\r\n ...rest,\r\n Date: Date.toDateString()\r\n })),\r\n useReasonCategory: data.purposeOfUse,\r\n useReasonDetailCategory,\r\n useReasonDetailDescription,\r\n \r\n usageDatetimes: data.usageDesiredDatetimes\r\n .map((v) => ({\r\n usageDate: v.value.baseDateOfTime.getTime(),\r\n useFromDatetime: v.value.range.from.getTime(),\r\n useToDatetime: v.value.range.to.getTime(),\r\n usageBaseDate: formatDateToYYYYMMDD(v.value.baseDateOfTime),\r\n status: v.value.status,\r\n }))\r\n .sort((a, b) => a.useFromDatetime - b.useFromDatetime),\r\n \r\n childInfoList: createChildInfoList(state.selectedChildIds, state.diagonosis, data.diagonosis, state.prevReservation),\r\n ...(state.prevReservation && (\r\n {\r\n commonInput: {\r\n lunchFlag: state.prevReservation.lunchFlag,\r\n snackFlag: state.prevReservation.snackFlag,\r\n postponeCancelWaitFlag: state.prevReservation.postponeCancelWaitFlag,\r\n goingTimes: [\r\n ... ( \r\n isUsageDatetimeUpdated(\r\n state.prevReservation.useFromDatetime,\r\n state.prevReservation.useToDatetime,\r\n data.usageDesiredDatetimes[0].value.range.from.getTime(),\r\n data.usageDesiredDatetimes[0].value.range.to.getTime()\r\n )\r\n ? []\r\n : [\r\n state.prevReservation.goingTime\r\n ]\r\n )\r\n ],\r\n preferenceProvisionCertificateFlag: state.prevReservation.preferenceProvisionCertificateFlag,\r\n formUseReason: state.prevReservation.formUseReason,\r\n citizenNote: state.prevReservation.citizenNote,\r\n },\r\n }\r\n )),\r\n isCertificateUseReasonViewFlags: state.isCertificateUseReasonViewFlags,\r\n isolationFlag: state.isolationFlag\r\n })\r\n )\r\n dispatch(clearLotteryReserve())\r\n\r\n if (state.prevReservation) {\r\n dispatch(setReserveModifyUpdateDatetime(state.prevReservation.updateDatetime))\r\n }\r\n\r\n /** 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管 */\r\n history.replace({\r\n ...history.location,\r\n state: {\r\n isKeep: true,\r\n activeDate: state.activeDate.getTime(),\r\n children: state.children,\r\n },\r\n })\r\n\r\n history.push(facilityReservationFormUrl.url())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, \r\n [\r\n reserveEntry,\r\n state,\r\n validate,\r\n addOperationLog\r\n ])\r\n\r\n return {\r\n state,\r\n previousRange,\r\n formMethods,\r\n onSubmit,\r\n changeSelectedChildIds,\r\n changeDropDownSelectedChildId,\r\n changeDate,\r\n useReason: state?.useReason,\r\n purposeOfUse,\r\n useReasonDetailIrregular,\r\n useReasonDetailEmg,\r\n useReasonDetailRefresh,\r\n changeUseReason,\r\n handleChangeFirst,\r\n handleChangeSecond,\r\n multiChildReservationAvailabilityFlag: sysCtrl?.multiChildReservationAvailabilityFlag,\r\n isShowFirstOTher: state?.diagonosisDecodeMst.find((c) => c.value === state?.diagonosis.first)?.label.includes(\"その他\") ?? false,\r\n isShowSecondOTher: state?.diagonosisDecodeMst.find((c) => c.value === state?.diagonosis.second)?.label.includes(\"その他\") ?? false\r\n }\r\n}\r\n\r\nconst createChildInfoList = (selectedChildrenIds: string[], diagonosis: {first: string | null, second: string | null}, inputDiagonosis: Inputs['diagonosis'], reservationData?: Reservation): ChildReservationInfoType[] => {\r\n if ( reservationData ) return [{\r\n ...reservationData.childInfoList[0],\r\n ... (\r\n (diagonosis.first || diagonosis.second) && {\r\n diagonosis: {\r\n first: {\r\n select: diagonosis.first,\r\n other: inputDiagonosis?.first.other ?? null\r\n },\r\n second: {\r\n select: diagonosis.second,\r\n other: inputDiagonosis?.second.other ?? null\r\n }\r\n } \r\n }\r\n )\r\n }];\r\n \r\n const childInfoList: ChildReservationInfoType[] = []\r\n for (const selectedChildId of selectedChildrenIds) {\r\n childInfoList.push({\r\n childId: selectedChildId,\r\n diagonosis: {\r\n first: {\r\n select: diagonosis.first,\r\n other: inputDiagonosis?.first.other ?? null\r\n },\r\n second: {\r\n select: diagonosis.second,\r\n other: inputDiagonosis?.second.other ?? null\r\n }\r\n }\r\n })\r\n }\r\n return childInfoList\r\n}\r\n\r\nconst createChildInfoListForLottery = (selectedChildrenIds: string[], reservationData?: LotteryReservation): ChildLotteryReservationInfoType[] => {\r\n if ( reservationData ) return reservationData.childInfoList;\r\n \r\n const childInfoList: ChildLotteryReservationInfoType[] = []\r\n for (const selectedChildId of selectedChildrenIds) {\r\n childInfoList.push({\r\n childId: selectedChildId\r\n })\r\n }\r\n return childInfoList\r\n}\r\n\r\nconst getFacilityMapByUsageDateElapsed = async (facilityId: string, usageDateElapsedSet: Set) => {\r\n const facilities = await promiseAllConcurrency(\r\n Array.from(usageDateElapsedSet).map((usageDateElapsed) => async () => {\r\n const facility = await getFacility(facilityId, new Date(usageDateElapsed))\r\n return [usageDateElapsed, facility] as const\r\n }),\r\n MAX_WORKER_COUNT\r\n )\r\n return new Map(facilities)\r\n}\r\n\r\n/**\r\n * 空き状況取得用の受付No取得\r\n * キャンセル待ち予約の変更時は受付Noを指定して空き状況を取得する為\r\n * @param reservation\r\n * @returns\r\n */\r\nconst getAvailabilitiesReservationNo = (reservation: Reservation | undefined) =>\r\n reservation?.status === reservationStatus.wait ? reservation.reservationNo : null\r\n\r\n/**\r\n * 初期選択の年月日を取得する\r\n *\r\n * @param isKeep 戻るで初期表示してreduxから状態を復元する際はtrue\r\n * @param reserveEntry 保存された状態\r\n * @returns 初期選択の利用日時から取得した年月日(yyyy-MM-dd)配列。※重複除去\r\n */\r\nconst getInitialSelectedUsageApiYmds = (isKeep?: boolean, reserveEntry?: FacilityReserveEntry | LotteryReserveEntry) => {\r\n return isKeep && reserveEntry\r\n ? Array.from(new Set(reserveEntry.usageDatetimes.map((v) => toApiYmd(new Date(v.usageDate)))))\r\n : []\r\n}\r\n\r\n/**\r\n * 指定日分の空き状況を取得する\r\n *\r\n * @param facilityId 施設ID\r\n * @param childrenIds\r\n * @param targetApiYmds 取得対象年月日(yyyy-MM-ddの配列)\r\n * @param reservationNo キャンセル待ち予約変更時は対象予約No。それ以外はnull\r\n * @param useReasonCode 予約受付設定コード 0:共通 1:非定型 2:緊急 3:リフレッシュ\r\n * @returns 空き状況\r\n */\r\nconst getAvailabilitiesByDays = async (\r\n facilityId: string,\r\n childrenIds: string[],\r\n targetApiYmds: string[],\r\n reservationNo: string | null,\r\n diagonosis: {\r\n first?: string | null,\r\n second?: string | null\r\n },\r\n useReasonCode: string | null,\r\n) => {\r\n const selectedChildrenIds = childrenIds.filter(item => item !== '')\r\n const concatedSelectedChildrenIds = selectedChildrenIds.join(',')\r\n let result: GetFacilityReservationsDaysDto[] = []\r\n if (targetApiYmds.length) {\r\n const resp = await executeGetFacilityReservationsDays(facilityId, {\r\n childId: concatedSelectedChildrenIds,\r\n targetDates: targetApiYmds,\r\n reservationNo,\r\n useReasonCode: useReasonCode?? purposeOfUseValue.common,\r\n diagonosis\r\n })\r\n result = resp.result\r\n }\r\n return result\r\n}\r\n\r\nconst getAvaiabilitiesForWeek = async (\r\n facilityId: string,\r\n selectedChildIds: string[],\r\n targetDate: Date,\r\n useReasonCode: string | null | undefined,\r\n lotteryReservationNo: string | null,\r\n diagonosis: {\r\n first: string | null,\r\n second: string | null\r\n }\r\n) => {\r\n const concatedSelectedChildrenIds = selectedChildIds.join(',')\r\n const response = await executeGetFacilityReservationsWeekCitizen(facilityId, {\r\n childId: concatedSelectedChildrenIds,\r\n targetDate: toApiYmd(targetDate),\r\n useReasonCode: useReasonCode ?? purposeOfUseValue.common,\r\n reservationNo: lotteryReservationNo,\r\n diagonosis\r\n });\r\n return response.result;\r\n}\r\n\r\n/**\r\n * 予約変更を行っている予約の利用日時に更新がされているか確認する\r\n * @param prevUseFromDatetime \r\n * @param prevUseToDatetime \r\n * @param currUseFromDatetime \r\n * @param currUseToDatetime \r\n * @returns \r\n */\r\nconst isUsageDatetimeUpdated = (\r\n prevUseFromDatetime: number,\r\n prevUseToDatetime: number,\r\n currUseFromDatetime: number,\r\n currUseToDatetime: number\r\n) => {\r\n return (\r\n prevUseFromDatetime !== currUseFromDatetime\r\n || prevUseToDatetime !== currUseToDatetime\r\n );\r\n}\r\n","// 未ログインまたは面談済お子さまがいない場合の空き状況カレンダーページ\r\nimport { useCallback, useEffect, useState } from 'react';\r\nimport { useForm, useWatch, useFieldArray } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { \r\n yesNo, \r\n useReasonCode as useReasonCodeValue, \r\n purposeOfUse as purposeOfUseValue,\r\n lotteryAcceptTypeOption,\r\n useReasonDisplayTypes\r\n} from '../common/constant/classification';\r\nimport { getUsageGuidStr } from '../common/reservationSelection';\r\nimport { getUseReason } from '../common/useReason'\r\nimport { Child, LocationState as LoggedInLocationState, getDiagonosisDecodeMstValue } from '../facilityReservationSelection/facilityReservationSelectionService';\r\nimport { executeGetChildren } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { executeGetFacilityReservationsWeekPublic } from '../../dataAccess/webApi/dao/facilityReservationsWeekPublicDao';\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto';\r\nimport { GetFacilityReservationsWeekPublicDto } from '../../dataAccess/webApi/dto/facilityReservationsWeekPublicDto';\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto';\r\nimport { \r\n ElapsedMillisecond, \r\n isValidDate, \r\n toApiYmd, \r\n getBirthday, \r\n getFromToBirthdayFromClassAge\r\n} from '../../utils/dateUtil';\r\nimport { NullPropsToUndefinedType } from '../../utils/typeUtil'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application';\r\nimport { selectSystemControl } from '../common/store/slices/systemControl';\r\nimport { selectIsLoggedIn } from '../common/store/slices/authority';\r\nimport { facilityReservationSelectionCreateUrl } from '../common/constant/appUrl';\r\nimport { UseReasonOptions } from '../../views/components/facilityReservationForm/useReasonRadioGroup';\r\nimport { translate } from '../../i18n';\r\nimport { SelectChangeEvent } from '@mui/material';\r\n\r\ninterface UrlParams {\r\n facilityId: string\r\n activeChildId?: string\r\n};\r\n\r\ntype DetailDescription = {\r\n value: string | null\r\n};\r\ninterface Inputs {\r\n purposeOfUse?: string | null\r\n useReasonDetailIrregular: string\r\n useReasonDetailEmg: string\r\n useReasonDetailRefresh: string\r\n useReasonDetailDescriptionsIrregular: DetailDescription[]\r\n useReasonDetailDescriptionsEmg: DetailDescription[]\r\n useReasonDetailDescriptionsRefresh: DetailDescription[]\r\n};\r\n\r\ntype AcceptAge = {\r\n age: number | null\r\n month: number | null\r\n day: number | null\r\n classFlag: boolean\r\n}\r\n\r\nexport interface LocationState {\r\n activeDate: ElapsedMillisecond | null // 空き状況確認基準日\r\n // 選択可能生年月日判定に使用する施設受け入れ可能年齢情報\r\n acceptAgeFrom: AcceptAge\r\n acceptAgeTo: AcceptAge\r\n};\r\n\r\ntype CommonFlag = typeof yesNo[keyof typeof yesNo]\r\nexport interface PageState {\r\n childBirthday: Date // お子様生年月日の文字列(YYYYMMDD)\r\n activeDate: Date // 空き状況確認基準日\r\n facilityId: string\r\n facility: NullPropsToUndefinedType // 施設情報\r\n purposeOfUse?: string | null\r\n commonFlag: CommonFlag\r\n useReasonOptions: UseReasonOptions\r\n usageGuideStr: string\r\n useReason: NullPropsToUndefinedType // 利用目的マスタ情報\r\n availabilities: GetFacilityReservationsWeekPublicDto[]\r\n // 選択可能生年月日判定に使用する施設受け入れ可能年齢情報\r\n acceptAgeFrom: AcceptAge\r\n acceptAgeTo: AcceptAge\r\n // 選択可能下限・上限生年月日(7日分表示するので一番未来の日付において選択可能な生年月日を選択可能とする)\r\n minBirthday: Date\r\n maxBirthday: Date\r\n diagonosis: {\r\n first: string | null,\r\n second: string | null\r\n }\r\n diagonosisDecodeMst: { value: string; label: string }[]\r\n isolationFlag: Boolean | null,\r\n acceptLottery: boolean,\r\n note: string | null,\r\n lotteryNote: string | null\r\n};\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle();\r\n const dispatch = useDispatch();\r\n const sysCtrl = useSelector(selectSystemControl);\r\n const history = useHistory();\r\n const nextHistory = useHistory()\r\n const urlParams = useParams();\r\n\r\n const isLoggedIn: boolean = useSelector(selectIsLoggedIn);\r\n\r\n const locationState: LocationState | undefined = history.location.state;\r\n const currentLocation = history.location;\r\n\r\n const notifyDateFetchErrorMessage = useCallback(() => \r\n dispatch(notifyMessage(translate('facilityDetailAvailability.error.noReservationReceptionSetting'))\r\n ), [dispatch]);\r\n\r\n const [state, setState] = useState();\r\n \r\n // 未ログイン用選択生年月日上限&下限\r\n // 7日分表示するので一番未来の日付において選択可能な生年月日を選択可能とする\r\n \r\n // フォーム関連\r\n const formMethods = useForm();\r\n const purposeOfUse = useWatch({ name: 'purposeOfUse', control: formMethods.control })\r\n const useReasonDetailIrregular = useWatch({ name: 'useReasonDetailIrregular', control: formMethods.control })\r\n const useReasonDetailEmg = useWatch({ name: 'useReasonDetailEmg', control: formMethods.control })\r\n const useReasonDetailRefresh = useWatch({ name: 'useReasonDetailRefresh', control: formMethods.control })\r\n const { append: appendUseReasonDetailDescriptionsIrregular } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsIrregular',\r\n control: formMethods.control,\r\n })\r\n const { append: appendUseReasonDetailDescriptionsEmg } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsEmg',\r\n control: formMethods.control,\r\n })\r\n const { append: appendUseReasonDetailDescriptionsRefresh } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsRefresh',\r\n control: formMethods.control,\r\n })\r\n\r\n const getNotes = useCallback((\r\n facility: NullPropsToUndefinedType, \r\n acceptLottery: boolean, \r\n purposeOfUse: string | null | undefined,\r\n commonFlag: typeof yesNo [keyof typeof yesNo]\r\n ) => {\r\n const returnObject: {\r\n note: string | null,\r\n lotteryNote: string | null\r\n } = {\r\n note: null,\r\n lotteryNote: null\r\n }\r\n\r\n if ( commonFlag === yesNo.no && purposeOfUse === undefined ) return returnObject;\r\n\r\n if ( !purposeOfUse ) {\r\n // 共通設定\r\n returnObject.note = facility.detailSetting[0].note;\r\n if ( acceptLottery && facility.lotteryNotes ) {\r\n returnObject.lotteryNote = facility.lotteryNotes[0].note;\r\n }\r\n } else {\r\n // 利用目的が選択されている場合、または利用・抽選の何れかのみが利用目的別の設定の場合\r\n returnObject.note = facility.detailSetting.find((setting) => setting.useReasonCode === purposeOfUse)?.note ?? facility.detailSetting[0].note;\r\n if ( acceptLottery && facility.lotteryNotes ) {\r\n if ( facility.lotteryAcceptType === lotteryAcceptTypeOption.common ) {\r\n returnObject.lotteryNote = facility.lotteryNotes[0].note;\r\n } else {\r\n returnObject.lotteryNote = facility.lotteryNotes.find((setting) => setting.useReasonCode === purposeOfUse)?.note?? null;\r\n }\r\n }\r\n }\r\n\r\n return returnObject;\r\n }, [])\r\n \r\n // 初期化\r\n useEffect(() => {\r\n if (!locationState) {\r\n notifyDateFetchErrorMessage();\r\n return;\r\n }\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const datecriteria = locationState?.activeDate ? new Date(locationState.activeDate) : sysCtrl.systemDatetime? new Date(sysCtrl.systemDatetime) : new Date();\r\n \r\n const [useReason, facility, children, diagonosisDecodeMst] = await Promise.all([\r\n getUseReasonMaster(),\r\n getFacility(urlParams.facilityId, datecriteria),\r\n isLoggedIn ? await getChildrenData(urlParams.facilityId) : null,\r\n getDiagonosisDecodeMstValue()\r\n ]);\r\n if (children && children.length > 0 && facility.reservationAcceptFlag === yesNo.yes) {\r\n // 施設にて許可がされていれば予約画面へ遷移\r\n const historyState: LoggedInLocationState = {\r\n isKeep: false,\r\n activeDate: datecriteria.getTime(),\r\n children\r\n };\r\n const selectedChildId = urlParams.activeChildId?? children[0].value;\r\n nextHistory.replace({\r\n pathname: facilityReservationSelectionCreateUrl.url(\r\n urlParams.facilityId,\r\n selectedChildId\r\n ),\r\n state: historyState,\r\n });\r\n }\r\n \r\n // 予約受付設定を設定しているか\r\n if (facility.detailSetting.length === 0 || facility.detailSetting[0].useReasonCode === null) {\r\n notifyDateFetchErrorMessage();\r\n return;\r\n }\r\n\r\n const childBirthday = getAcceptBirthdayTo(locationState.acceptAgeFrom, datecriteria);\r\n let purposeOfUse: string | null | undefined = undefined;\r\n const useReasonDetailDescriptionsIrregular: DetailDescription[] = Array(useReason.detailsIrregular.length).fill(null).map(() => ({ value: null }));\r\n const useReasonDetailDescriptionsEmg: DetailDescription[] = Array(useReason.detailsEmg.length).fill(null).map(() => ({ value: null }));\r\n const useReasonDetailDescriptionsRefresh: DetailDescription[] = Array(useReason.detailsRefresh.length).fill(null).map(() => ({ value: null }));\r\n\r\n // 抽選予約を受け付けているか\r\n const acceptLottery = (\r\n sysCtrl.lotteryDisplayFlag === yesNo.yes \r\n && sysCtrl.lotteryFlag === yesNo.yes \r\n && facility.lotteryFlag === yesNo.yes \r\n )\r\n\r\n // 各利用目的の利用可否\r\n const useReasonOptions: UseReasonOptions = {\r\n irregular: (\r\n facility.irregularDisplayType === useReasonDisplayTypes.usedInBoth && facility.useReasonUsageFlagIrregular === yesNo.yes\r\n ),\r\n emergency: (\r\n facility.emergencyDisplayType === useReasonDisplayTypes.usedInBoth && facility.useReasonUsageFlagEmg === yesNo.yes\r\n ),\r\n refresh: (\r\n facility.refreshDisplayType === useReasonDisplayTypes.usedInBoth && facility.useReasonUsageFlagRefresh === yesNo.yes\r\n )\r\n };\r\n\r\n // 共通OR利用目的別設定かの判断\r\n let commonFlag: CommonFlag = yesNo.no;\r\n if (\r\n facility.detailSetting.length === 1 \r\n && facility.detailSetting[0].useReasonCode === useReasonCodeValue.common \r\n && ( !acceptLottery || facility.lotteryAcceptType === lotteryAcceptTypeOption.common)\r\n ) { \r\n commonFlag = yesNo.yes;\r\n purposeOfUse = null;\r\n }\r\n\r\n // カレンダー説明文\r\n const usageGuideStr = getUsageGuidStr(\r\n facility.immediatelyReservationFlag,\r\n facility.cancelWaitAcceptFlag,\r\n facility.postponeCancelWaitAcceptFlag,\r\n acceptLottery,\r\n true\r\n );\r\n\r\n appendUseReasonDetailDescriptionsIrregular(useReasonDetailDescriptionsIrregular);\r\n appendUseReasonDetailDescriptionsEmg(useReasonDetailDescriptionsEmg);\r\n appendUseReasonDetailDescriptionsRefresh(useReasonDetailDescriptionsRefresh);\r\n const diagonosis = { first: null, second: null }\r\n\r\n const availabilities = purposeOfUse === undefined ? [] : await getAvaiabilitiesForWeek(\r\n urlParams.facilityId,\r\n childBirthday,\r\n datecriteria,\r\n purposeOfUse,\r\n diagonosis\r\n )\r\n\r\n const { note, lotteryNote } = getNotes(facility, acceptLottery, purposeOfUse, commonFlag);\r\n\r\n formMethods.reset({\r\n purposeOfUse,\r\n // 必要ない?\r\n useReasonDetailIrregular,\r\n useReasonDetailEmg,\r\n useReasonDetailRefresh,\r\n useReasonDetailDescriptionsIrregular,\r\n useReasonDetailDescriptionsEmg,\r\n useReasonDetailDescriptionsRefresh,\r\n })\r\n setState({\r\n childBirthday,\r\n activeDate: datecriteria,\r\n facilityId: urlParams.facilityId,\r\n facility,\r\n purposeOfUse,\r\n commonFlag,\r\n useReasonOptions,\r\n usageGuideStr,\r\n useReason,\r\n availabilities,\r\n acceptAgeFrom: locationState.acceptAgeFrom,\r\n acceptAgeTo: locationState.acceptAgeTo,\r\n minBirthday: getAcceptBirthdayFrom(locationState.acceptAgeTo, datecriteria),\r\n maxBirthday: getAcceptBirthdayTo(locationState.acceptAgeFrom, datecriteria),\r\n diagonosisDecodeMst,\r\n isolationFlag: facility.isolationRoomUsageFlag === yesNo.yes,\r\n diagonosis,\r\n acceptLottery,\r\n note,\r\n lotteryNote\r\n })\r\n })\r\n ) \r\n )\r\n\r\n }, []);\r\n\r\n // 条件が変わったときに空き状況確認する\r\n useEffect(() => {\r\n if (!state) return\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (state.purposeOfUse === undefined) return\r\n if (state.isolationFlag && !Object.values(state.diagonosis).some(v => v != null) || state.isolationFlag === null) return\r\n \r\n const availabilities = await getAvaiabilitiesForWeek(\r\n state.facilityId,\r\n state.childBirthday,\r\n state.activeDate,\r\n state.purposeOfUse,\r\n state.diagonosis\r\n )\r\n\r\n if (availabilities) {\r\n setState((prev) => ({\r\n ... prev as PageState,\r\n availabilities\r\n }))\r\n } else {\r\n // 異常処理\r\n notifyDateFetchErrorMessage()\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n );\r\n }, [\r\n state?.childBirthday,\r\n state?.activeDate,\r\n state?.purposeOfUse,\r\n state?.diagonosis\r\n ]\r\n );\r\n\r\n // 日付変更\r\n const changeDate = useCallback((date: Date | null): void => {\r\n if (!state || !date) return;\r\n\r\n if (!isValidDate(date)) {\r\n notifyDateFetchErrorMessage();\r\n return;\r\n }\r\n\r\n const minBirthday = getAcceptBirthdayFrom(state.acceptAgeTo, date);\r\n const maxBirthday = getAcceptBirthdayTo(state.acceptAgeFrom, date);\r\n\r\n const isInvalid = isChildBirthdayInvalid(state.childBirthday, minBirthday, maxBirthday);\r\n\r\n if (isInvalid) {\r\n notifyDateFetchErrorMessage();\r\n }\r\n \r\n // 変更後の日付から再度隔離フラグを取得、変更\r\n const resetIsolationFlag = async () => {\r\n const facility = await getFacility(urlParams.facilityId, state.activeDate)\r\n \r\n setState((prev) => ({\r\n ...prev as PageState,\r\n isolationFlag: facility.isolationRoomUsageFlag === yesNo.yes,\r\n activeDate: date,\r\n minBirthday,\r\n maxBirthday,\r\n facility\r\n }));\r\n }\r\n resetIsolationFlag()\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n activeDate: date,\r\n minBirthday,\r\n maxBirthday\r\n }))\r\n }, [state]);\r\n\r\n // お子様生年月日変更\r\n const changeChildBirthday = useCallback((date: Date | null): void => {\r\n if (!state || !date) return;\r\n\r\n const isInvalid = isChildBirthdayInvalid(date, state.minBirthday, state.maxBirthday);\r\n if (isInvalid) {\r\n notifyDateFetchErrorMessage();\r\n }\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n childBirthday: date,\r\n }))\r\n }, [state])\r\n \r\n // 利用目的変更\r\n const changeUseReason = useCallback((event: React.ChangeEvent): void => {\r\n if (!state) return\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n purposeOfUse: event.target.value,\r\n })\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n purposeOfUse: event.target.value,\r\n ...getNotes(state.facility, state.acceptLottery, event.target.value, state.commonFlag)\r\n }))\r\n }, [state])\r\n\r\n // 病気変更\r\n const changeDropDownSelectedDiagonosis = useCallback(\r\n (field: 'first' | 'second') => (event: SelectChangeEvent) => {\r\n if (!state) return;\r\n\r\n const diagonosisValue = event.target.value;\r\n if (!diagonosisValue) return;\r\n \r\n setState((prev) => ({\r\n ...prev as PageState,\r\n diagonosis: {\r\n ...(prev?.diagonosis ?? { first: null, second: null }),\r\n [field]: diagonosisValue,\r\n },\r\n }))\r\n },\r\n [state]\r\n )\r\n \r\n const handleChangeFirst = (event: SelectChangeEvent) => {\r\n changeDropDownSelectedDiagonosis('first')(event);\r\n };\r\n \r\n const handleChangeSecond = (event: SelectChangeEvent) => {\r\n changeDropDownSelectedDiagonosis('second')(event);\r\n }; \r\n\r\n const callTel = useCallback((tel: string) => (document.location.href = `tel:${tel}`), []);\r\n\r\n return {\r\n state,\r\n formMethods,\r\n currentLocation,\r\n isLoggedIn,\r\n changeChildBirthday,\r\n changeDate,\r\n callTel,\r\n sysCtrl,\r\n purposeOfUse,\r\n useReasonDetailIrregular,\r\n useReasonDetailEmg,\r\n useReasonDetailRefresh,\r\n changeUseReason,\r\n handleChangeFirst,\r\n handleChangeSecond\r\n };\r\n}\r\n\r\n/**\r\n\r\n * IDとして渡せるようにDateを文字列に変更\r\n\r\n * @param birthday \r\n\r\n * @returns YYYYMMDD形式の文字列に変更\r\n\r\n */\r\nconst convertChildBirthdayToIdLike = (birthday: Date): string => {\r\n return `${birthday.getFullYear()}${(birthday.getMonth() + 1).toString().padStart(2, \"0\")}${birthday.getDate().toString().padStart(2, \"0\")}`\r\n}\r\n\r\nexport function convertToDate(dateString: string): Date {\r\n // YYYYMMDD形式の文字列から年、月、日を抽出\r\n const year = parseInt(dateString.substring(0, 4), 10);\r\n const month = parseInt(dateString.substring(4, 6), 10) - 1; // JavaScriptのDateは月が0から始まるため -1\r\n const day = parseInt(dateString.substring(6, 8), 10);\r\n\r\n // 抽出した年、月、日を使用してDateオブジェクトを作成\r\n return new Date(year, month, day);\r\n}\r\n\r\nasync function getUseReasonMaster() {\r\n return await getUseReason()\r\n}\r\n\r\n/**\r\n\r\n * 施設の受け入れ上限年齢から利用できるお子様の下限生年月日を算出\r\n\r\n * @param acceptAgeFrom\r\n\r\n * @return Date 基準日 \r\n\r\n */\r\nconst getAcceptBirthdayFrom = (acceptAgeTo: AcceptAge, datetime: Date) => {\r\n if( acceptAgeTo.classFlag && acceptAgeTo.age ) {\r\n return getFromToBirthdayFromClassAge(datetime, acceptAgeTo.age).from\r\n }else {\r\n return getBirthday(datetime, acceptAgeTo.age, acceptAgeTo.month, acceptAgeTo.day, false);\r\n }\r\n}\r\n\r\n/**\r\n\r\n * 施設の受け入れ下限年齢から利用できるお子様の上限生年月日を算出\r\n\r\n * 最大値は当日になる\r\n\r\n * @param acceptAgeTo\r\n\r\n * @return Date 基準日\r\n\r\n */\r\nconst getAcceptBirthdayTo = (acceptAgeFrom: AcceptAge, datetime: Date) => {\r\n let resultDate: Date;\r\n if (acceptAgeFrom.classFlag && acceptAgeFrom.age) {\r\n resultDate = getFromToBirthdayFromClassAge(datetime, acceptAgeFrom.age).to;\r\n } else {\r\n resultDate = getBirthday(datetime, acceptAgeFrom.age, acceptAgeFrom.month, acceptAgeFrom.day, true);\r\n }\r\n \r\n // 生後57日の生年月日\r\n const maxReservableBirthday = getBirthday(datetime, null, null, 57, true);\r\n\r\n // 生後57日の生年月日と比較して、日付を返す\r\n if (resultDate >= maxReservableBirthday) {\r\n return maxReservableBirthday;\r\n } else {\r\n return resultDate;\r\n }\r\n}\r\n\r\n/**\r\n\r\n * 施設に紐づいたお子さまデータを取得する\r\n\r\n * @param facilityId 施設ID\r\n\r\n * @return Child型に成形したお子さまデータ\r\n\r\n */\r\nconst getChildrenData = async(facilityId: string): Promise => {\r\n const childrenResponse = await executeGetChildren({ \r\n facilityId,\r\n getLatestInterviewedFlag: yesNo.yes\r\n })\r\n\r\n return childrenResponse.result.map((child) => ({ value: child.childId, label: child.name }));\r\n}\r\n\r\n/**\r\n\r\n * 一週間分の空き状況を取得する\r\n\r\n * @param facilityId \r\n\r\n * @param selectedChildIds \r\n\r\n * @param targetDate \r\n\r\n * @param useReasonCode\r\n\r\n * @returns \r\n\r\n */\r\nconst getAvaiabilitiesForWeek = async (\r\n facilityId: string,\r\n childBirthday: Date,\r\n targetDate: Date,\r\n useReasonCode: string | null,\r\n diagonosis: {first: string | null, second: string | null}\r\n) => {\r\n const response = await executeGetFacilityReservationsWeekPublic(facilityId, {\r\n childBirthday: convertChildBirthdayToIdLike(childBirthday),\r\n targetDate: toApiYmd(targetDate),\r\n useReasonCode: useReasonCode ?? purposeOfUseValue.common,\r\n diagonosis\r\n });\r\n return response.result;\r\n}\r\n\r\ninterface InvalidChildBirthday {\r\n beforeMin: boolean,\r\n overMax: boolean\r\n}\r\n/**\r\n\r\n * お子さまの生年月日が下限・上限に収まっていないかどうかを確かめる。\r\n\r\n * 範囲内の場合はfalse、範囲外の場合は\r\n\r\n * @param childBirthday \r\n\r\n * @param min \r\n\r\n * @param max \r\n\r\n * @returns \r\n\r\n */\r\nconst isChildBirthdayInvalid = (childBirthday: Date, min: Date, max: Date): false | InvalidChildBirthday => {\r\n const returnObject: InvalidChildBirthday = {\r\n beforeMin: childBirthday < min,\r\n overMax: childBirthday > max\r\n }\r\n return Object.values(returnObject).some((value) => value) ? returnObject : false;\r\n}\r\n","import { executeGet } from '../common/apiCaller'\nimport {\n GetFacilityReservationsWeekPublicDto,\n GetFacilityReservationsWeekPublicInputDto,\n} from '../dto/facilityReservationsWeekPublicDto'\n\nconst apiName = 'public'\nconst apiPath = '/facilities'\n\nexport const executeGetFacilityReservationsWeekPublic = (\n id: string,\n input: GetFacilityReservationsWeekPublicInputDto\n) => {\n return executeGet(apiName, `${apiPath}/${id}/reservations/week`, input)\n}\n","import { useCallback, useEffect, useRef, useState } from 'react'\r\nimport { tuple } from '../../utils/typeUtil'\r\n\r\n/**\r\n * unmountされたときに、trueを立てるRefHook\r\n * 参考:\r\n * https://qiita.com/macotok/items/87a260988376bcfa2ffd\r\n */\r\nexport const useUnmountRef = () => {\r\n const unmountRef = useRef(false)\r\n\r\n useEffect(\r\n () => () => {\r\n unmountRef.current = true\r\n },\r\n []\r\n )\r\n\r\n return unmountRef\r\n}\r\n\r\ntype UseSafeStateT = {\r\n (unmountRef: ReturnType, defaultValue: T): [T, (v: T) => void]\r\n (unmountRef: ReturnType): [T | undefined, (v: T | undefined) => void]\r\n}\r\n/**\r\n * ReactでUnmountしたときにstateをメモリリークしない便利関数\r\n *\r\n * 参考:\r\n * https://qiita.com/macotok/items/87a260988376bcfa2ffd\r\n *\r\n * @param unmountRef useUnmountRefの値\r\n * @param defaultValue stateのデフォルト値\r\n * @returns [state, setState]\r\n */\r\nexport const useSafeState: UseSafeStateT = (unmountRef: ReturnType, defaultValue?: T) => {\r\n const [state, setStateOrig] = useState(defaultValue)\r\n const setState = useCallback(\r\n (v: T) => {\r\n if (!unmountRef.current) {\r\n setStateOrig(v)\r\n }\r\n },\r\n [setStateOrig, unmountRef]\r\n )\r\n return tuple(state, setState)\r\n}\r\n","import MuiEditIcon from '@mui/icons-material/Edit'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 編集アイコン */\r\nexport const EditIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import RemoveCircleIcon from '@mui/icons-material/RemoveCircle'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 除去アイコン */\r\nexport const RemoveIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import { InputAdornment } from '@mui/material'\r\nimport { differenceInCalendarDays, isAfter, isBefore } from 'date-fns'\r\nimport { forwardRef, Ref, useCallback, useEffect, useImperativeHandle, useMemo } from 'react'\r\nimport { Control, useController, UseFormTrigger } from 'react-hook-form'\r\nimport { availabilityStatus } from '../../../../../containers/common/constant/classification'\r\nimport { useSafeState, useUnmountRef } from '../../../../../containers/common/stateHooks'\r\nimport { translate } from '../../../../../i18n'\r\nimport { DateRange, formatYmdHmToHmOverWeek, isIncludeDate } from '../../../../../utils/dateUtil'\r\nimport { IconLinkButton } from '../../buttons/iconLinkButton'\r\nimport { EditIcon } from '../../icons/editIcon'\r\nimport { RemoveIcon } from '../../icons/removeIcon'\r\nimport { TextBoxBaseStyled } from '../textBoxBaseStyled'\r\nimport { ArrayInputValue, AvailabilityMap, InputValue, PreviousRange } from './common'\r\n\r\ninterface SelectedRangeTextBoxProps {\r\n arrayName: string\r\n index: number\r\n fieldName: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n trigger?: UseFormTrigger\r\n\r\n /** 空き状況マップ */\r\n availabilityMap: AvailabilityMap\r\n /** 全ての入力値 */\r\n allInputs: ArrayInputValue[]\r\n /** 変更前の範囲 */\r\n previousRange?: PreviousRange\r\n /** 予約の種類 */\r\n isLottery?: boolean\r\n /** 変更不可 */\r\n isReadonly?: boolean\r\n /**\r\n * 初期表示時バリデーションを行う場合に必要な空き状況マップ。\r\n */\r\n initialValidationAvailabilityMap: AvailabilityMap\r\n\r\n isActived: boolean\r\n onClickEdit: (index: number) => void\r\n onClickRemove: (index: number) => void\r\n putInitialInputs: (index: number, input: InputValue | null) => void\r\n}\r\n\r\n/**\r\n * 選択エラーとするステータスがあればエラーとするバリデータを返す\r\n *\r\n * @param availabilities (カレンダー表示分+選択している枠)の空き状況\r\n * @param errorStatuses 選択枠に含まれているとエラーとするステータス配列\r\n * 複数指定時は、その両方が含まれている場合をエラーとする\r\n * @param message エラー時に表示するメッセージ\r\n * @returns バリデーション関数\r\n */\r\nconst statusValidator = (availabilities: InputValue[], errorStatuses: string[], message: string) => {\r\n return (value: InputValue) =>\r\n !errorStatuses.every((errorStatus) =>\r\n availabilities.some(\r\n (availability) =>\r\n isIncludeDate(availability.range.from, value.range, { isExcludingTo: true }) &&\r\n availability.status === errorStatus\r\n )\r\n ) || message\r\n}\r\n/**\r\n * 選択されたステータスが指定のステータスでなければエラーとするバリデータを返す\r\n * \r\n * @param availabilities 空き状況\r\n * @param mustBeStatus 指定のステータス\r\n * @param message エラー時に表示するメッセージ\r\n * @returns バリデーション関数\r\n */\r\nconst statusMustBeValidator = (availabilities: InputValue[], mustBeStatus: string, message: string) => {\r\n return (value: InputValue) =>\r\n availabilities.every(\r\n (availability) => {\r\n return isIncludeDate(availability.range.from, value.range, { isExcludingTo: true }) &&\r\n availability.status === mustBeStatus \r\n }\r\n ) || message\r\n}\r\n/**\r\n * 選択範囲が重複すればエラーとするバリデータを返す\r\n *\r\n * @param otherInputs 重複範囲比較対象の他入力値\r\n * @returns バリデーション関数\r\n */\r\nconst duplicationValidator = (otherInputs: ArrayInputValue[]) => {\r\n return (value: InputValue) =>\r\n !otherInputs\r\n .map((v) => v.value?.range)\r\n .filter((v): v is DateRange => !!v)\r\n .some(({ from, to }) => isBefore(value.range.from, to) && isAfter(value.range.to, from)) ||\r\n translate('system.error.selectedDatetimeAvailabilityDuplication')\r\n}\r\n/**\r\n * 指定したステータスと他のステータスを同時に選択していた場合にエラーとするバリデータを返す\r\n *\r\n * @param selectionAvailabilities 選択中の空き状況\r\n * @param otherInputs 選択済みの日時・空き状況\r\n * @param exclusiveStatus その他のステータスとは共存しないことを約束するステータス\r\n * @param message エラー時に表示するメッセージ\r\n * @returns バリデーション関数\r\n */\r\nconst exclusiveStatusValidator = (selectionAvailabilities: InputValue[], otherInputs: ArrayInputValue[], exclusiveStatus: string, message: string) => {\r\n // 選択中の日程・空き状況の一覧を取得\r\n const selectedDatetimes = [...otherInputs]\r\n selectionAvailabilities.forEach((selectionAvailability) => selectedDatetimes.push({ value: selectionAvailability }))\r\n\r\n return (_value: InputValue) => \r\n !(\r\n selectedDatetimes.some((selectedDatetime) => {\r\n if (!selectedDatetime.value) {\r\n return false\r\n }\r\n const { status } = selectedDatetime.value\r\n return status === exclusiveStatus\r\n })\r\n && selectedDatetimes.some((selectedDatetime) => {\r\n if (!selectedDatetime.value) {\r\n return false\r\n }\r\n const { status } = selectedDatetime.value\r\n return status !== exclusiveStatus\r\n })\r\n )\r\n || message\r\n}\r\nconst isSameReservationKind = (availabilities: InputValue[], isLottery: boolean) => {\r\n if (isLottery) {\r\n return statusMustBeValidator(\r\n availabilities, \r\n availabilityStatus.lotteryReservationAvailable, \r\n translate('system.error.onlyLotteryReservationForUpdate')\r\n )\r\n }\r\n return statusValidator(\r\n availabilities,\r\n [availabilityStatus.lotteryReservationAvailable], \r\n translate('system.error.onlyReservationForUpdate')\r\n )\r\n}\r\n\r\n/**\r\n * 選択状態のバリデーションを行う関数を返す。\r\n * 枠選択のエラーパターン:https://docs.google.com/spreadsheets/d/1vkgz4AauitYXeMntStGL0zRHmXmzKAQPPBlNhr5yQiY/edit#gid=1749515790&range=A49(遷移先が不正)\r\n *\r\n * 選択範囲の空き状況を受け渡しているのは、選択範囲と別の週を表示していてもエラーで引っ掛ける為の措置\r\n *\r\n * @param selectionAvailabilities 選択範囲の空き状況\r\n * @param availabilityMapValues 空き状況マップの値配列\r\n * @param otherInputs 重複範囲比較対象の他入力値\r\n * @param previousRange 変更前の選択範囲\r\n * @returns バリデーション関数の配列\r\n */\r\nconst getValidators = (\r\n selectionAvailabilities: InputValue[],\r\n availabilityMapValues: InputValue[],\r\n isMultiple: boolean,\r\n otherInputs: ArrayInputValue[],\r\n isLottery: boolean, \r\n previousRange?: DateRange\r\n) => {\r\n const availabilities = availabilityMapValues.concat(selectionAvailabilities)\r\n const availabilitiesExcludePrevious = previousRange\r\n ? availabilities.filter(({ range }) => !isIncludeDate(range.from, previousRange, { isExcludingTo: true }))\r\n : availabilities\r\n const selectedAvailabilitiesExcludePrevious = previousRange\r\n ? selectionAvailabilities.filter(({ range }) => !isIncludeDate(range.from, previousRange, { isExcludingTo: true }))\r\n : selectionAvailabilities\r\n \r\n return [\r\n statusValidator(\r\n availabilities,\r\n [availabilityStatus.outside],\r\n translate('system.error.selectedDatetimeAvailabilityDisabled')\r\n ),\r\n statusValidator(\r\n availabilities,\r\n [availabilityStatus.noSpace],\r\n translate('system.error.selectedDatetimeAvailabilityDisabled')\r\n ),\r\n statusValidator(\r\n availabilitiesExcludePrevious,\r\n [availabilityStatus.doneFixed],\r\n translate('system.error.selectedDatetimeAvailabilityDisabled')\r\n ),\r\n statusValidator(\r\n availabilitiesExcludePrevious,\r\n [availabilityStatus.doneNotFixed],\r\n translate('system.error.selectedDatetimeAvailabilityDisabled')\r\n ),\r\n statusValidator(\r\n availabilities,\r\n [availabilityStatus.doneWait],\r\n translate('system.error.selectedDatetimeAvailabilityDisabled')\r\n ),\r\n duplicationValidator(otherInputs),\r\n statusValidator(\r\n availabilitiesExcludePrevious,\r\n [availabilityStatus.lotteryReserved],\r\n translate('system.error.selectedDatetimeAvailabilityDisabled')\r\n ),\r\n ... (\r\n previousRange\r\n ? ([isSameReservationKind(selectedAvailabilitiesExcludePrevious, isLottery)])\r\n : [ exclusiveStatusValidator(\r\n selectionAvailabilities,\r\n otherInputs,\r\n availabilityStatus.lotteryReservationAvailable,\r\n translate('system.error.lotteryReservationIsExclusive'),\r\n ),\r\n ]\r\n ),\r\n ...(isMultiple\r\n ? [\r\n statusValidator(\r\n availabilities,\r\n [availabilityStatus.wait],\r\n translate('system.error.selectedDatetimeAvailabilityMultipleNotAllowed')\r\n ),\r\n ]\r\n : []),\r\n ]\r\n}\r\n\r\nconst findAvailability = (availabilities: InputValue[], range: DateRange, status: string) =>\r\n availabilities.find(\r\n (availability) =>\r\n isIncludeDate(availability.range.from, range, { isExcludingTo: true }) && availability.status === status\r\n )\r\n\r\n/**\r\n * 空き状況と選択範囲から「キャンセル待ち可」のステータスを検索する\r\n * 存在しなければ undefined\r\n *\r\n * @param availabilities 空き状況ステータス一覧\r\n * @param range 選択範囲\r\n * @returns 「キャンセル待ち可」 または undefined\r\n */\r\nconst findWaitAvailabilityStatus = (availabilities: InputValue[], range: DateRange) =>\r\n findAvailability(availabilities, range, availabilityStatus.wait)?.status\r\n\r\n/**\r\n * 枠選択時の時間設定処理\r\n */\r\nconst selectDateRange = (\r\n currentInput: InputValue | null,\r\n newInput: InputValue,\r\n availabilityMapValues: InputValue[],\r\n isSingleSlotSelection: boolean\r\n): InputValue | null => {\r\n if (currentInput && currentInput.range.to === newInput.range.to) {\r\n // 同じ範囲を選択した場合は選択解除\r\n return null\r\n } else if (currentInput && !isSingleSlotSelection && differenceInCalendarDays(currentInput.baseDateOfTime, newInput.baseDateOfTime) === 0) {\r\n // 同じ日の場合のみtoを変更(複数枠選択可能の場合)\r\n const range = { ...currentInput.range }\r\n if (newInput.range.from < range.from) {\r\n range.from = newInput.range.from\r\n } else {\r\n range.to = newInput.range.to\r\n }\r\n\r\n // 空き状況と選択範囲から「キャンセル待ち可」のステータスを検索する\r\n const status = findWaitAvailabilityStatus(availabilityMapValues, range) ?? newInput.status\r\n\r\n return {\r\n ...currentInput,\r\n range,\r\n status,\r\n }\r\n } else {\r\n // 初回選択または単一選択\r\n return newInput\r\n }\r\n}\r\n\r\nexport interface SelectedRangeTextHandler {\r\n setValue: (availability: InputValue, isSingleSlotSelection: boolean) => void\r\n}\r\n\r\nexport const SelectedRangeTextBox = forwardRef(function SelectedRangeTextBox(\r\n props: SelectedRangeTextBoxProps,\r\n ref: Ref\r\n) {\r\n const name = `${props.arrayName}.${props.index}.${props.fieldName}`\r\n const availabilityMapValues = useMemo(() => Object.values(props.availabilityMap), [props.availabilityMap])\r\n const isLottery = (props.isLottery === undefined) ? false : props.isLottery\r\n\r\n const unmountRef = useUnmountRef()\r\n const [selectionAvailabilities, setSelectionAvailabilities] = useSafeState(unmountRef, [])\r\n\r\n useEffect(()=> {\r\n }, [props.allInputs])\r\n\r\n const validators = useMemo(\r\n () =>\r\n getValidators(\r\n selectionAvailabilities,\r\n availabilityMapValues,\r\n props.allInputs.length > 1,\r\n props.allInputs.slice(0, props.index),\r\n isLottery,\r\n props.previousRange?.range,\r\n ),\r\n [selectionAvailabilities, availabilityMapValues, props.allInputs, props.previousRange, props.index]\r\n )\r\n\r\n const {\r\n field,\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n required: { value: !!props.required, message: translate('system.error.requiredSelection', props.label) },\r\n validate: (value: InputValue) => {\r\n for (const validator of validators) {\r\n const result = validator(value)\r\n if (typeof result === 'string') {\r\n return result\r\n }\r\n }\r\n return true\r\n },\r\n },\r\n control: props.control,\r\n })\r\n\r\n const currentInput = field.value as InputValue | null\r\n\r\n /**\r\n * 枠情報設定処理(親コンポーネントから呼び出される)\r\n */\r\n useImperativeHandle(\r\n ref,\r\n () => ({\r\n setValue: (availability, isSingleSlotSelection) => {\r\n const newInput = selectDateRange(currentInput, availability, availabilityMapValues, isSingleSlotSelection)\r\n setSelectionAvailabilities(\r\n newInput\r\n ? availabilityMapValues.filter((v) => isIncludeDate(v.range.from, newInput.range, { isExcludingTo: true }))\r\n : []\r\n )\r\n field.onChange(newInput)\r\n },\r\n }),\r\n [currentInput, availabilityMapValues, field.onChange]\r\n )\r\n\r\n useEffect(() => {\r\n // useWatchは初期表示後の変更はウォッチできるが初期表示時の値は取得できない為\r\n // ここで初期値を収集する\r\n props.putInitialInputs(props.index, currentInput)\r\n }, [])\r\n useEffect(() => {\r\n // 初期表示時に選択されている場合\r\n // 基準日の為に選択範囲の空き状況を保存\r\n if (currentInput) {\r\n // 初期表示時バリデーション用の空き状況を優先して探索\r\n const availabilities = availabilityMapValues.filter((v) => isIncludeDate(v.range.from, currentInput.range, { isExcludingTo: true }))\r\n if (availabilities.length && !unmountRef.current) {\r\n setSelectionAvailabilities(availabilities)\r\n const status = findWaitAvailabilityStatus(availabilities, currentInput.range) ?? availabilities[0].status\r\n if (status !== currentInput.status) {\r\n // 状況が変化したらinputの状況も変えておく。\r\n // サブミット後の処理で古い情報で判定することを防ぐため\r\n field.onChange({ ...currentInput, status })\r\n }\r\n }\r\n }\r\n }, [props.initialValidationAvailabilityMap, availabilityMapValues])\r\n\r\n useEffect(() => {\r\n // useMemoの更新をトリガーとしてバリデーションを実行\r\n if(props.trigger) props.trigger(name)\r\n }, [validators, name, props.trigger]); // validators が更新されたら trigger を実行\r\n\r\n const onClickEditHandler = useCallback(() => {\r\n props.onClickEdit(props.index)\r\n }, [props.index, props.onClickEdit])\r\n const onClickRemoveHandler = useCallback(() => {\r\n props.onClickRemove(props.index)\r\n }, [props.index, props.onClickRemove])\r\n\r\n const error = errors[props.arrayName]?.[props.index]?.[props.fieldName]\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }),\r\n }}\r\n focused={props.isActived}\r\n value={currentInput ? formatYmdHmToHmOverWeek(currentInput.range, currentInput.baseDateOfTime) : ''}\r\n error={!!error}\r\n helperText={error?.message}\r\n />\r\n )\r\n})\r\n","// 空き状況カレンダーフォームコントロール\r\n\r\nimport { Stack, styled, Theme } from '@mui/material'\r\nimport { addDays, addMinutes, addWeeks, differenceInMinutes, isSameDay } from 'date-fns'\r\nimport { memo, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react'\r\nimport { Control, useFieldArray, UseFormTrigger, useWatch } from 'react-hook-form'\r\nimport { availabilityStatus, receptionTimePattern } from '../../../../../containers/common/constant/classification'\r\nimport { translate } from '../../../../../i18n'\r\nimport {\r\n DateRange,\r\n formatDate,\r\n formatHmOver,\r\n formatLocaleYm,\r\n formatYmdHmToHmOverWeek,\r\n fromApiYmd,\r\n fromApiYmdHms,\r\n isIncludeDate,\r\n trimTime,\r\n} from '../../../../../utils/dateUtil'\r\nimport { castNonNullable, castNullable, tuple } from '../../../../../utils/typeUtil'\r\nimport { ButtonS } from '../../buttons/buttonS'\r\nimport { CenterMiddleGItem, GContainer, GItem, LeftGItem, RightGItem } from '../../grids'\r\nimport { Link } from '../../link'\r\nimport { TitleLabel } from '../../titleLabel'\r\nimport { ArrayInputValue, AvailabilityMap, InputValue, PreviousRange } from './common'\r\nimport { SelectedRangeTextBox, SelectedRangeTextHandler } from './selectedRangeTextBox'\r\n\r\n/**\r\n * 空き状況1日分の型\r\n * ※API返却型に合わせている\r\n */\r\ninterface Availability {\r\n /** 日付(Api日付形式:yyyy-MM-dd) */\r\n day: string\r\n /**\r\n * 各予約枠のステータス情報。\r\n * 受付時間単位が1日で非営業日の場合は、開始・終了時間がnullになる\r\n */\r\n statuses: (\r\n | {\r\n /** 開始時間(Api日時形式:yyyy-MM-dd HH:mm) */\r\n startTime: string\r\n /** 終了時間(Api日時形式:yyyy-MM-dd HH:mm) */\r\n endTime: string\r\n /** 空き状況ステータス */\r\n status: string\r\n }\r\n | {\r\n /** 開始時間 */\r\n startTime: null\r\n /** 終了時間 */\r\n endTime: null\r\n /** 空き状況ステータス */\r\n status: string\r\n }\r\n )[]\r\n}\r\n\r\n/** 変更制限 */\r\nexport const calendarChangeRestriction = {\r\n /** 日付も時間も変更不可 */\r\n none: 'none',\r\n /** 同一日で時間のみ変更可能 */\r\n time: 'time',\r\n /** 日付も時間も変更不可 */\r\n datetime: 'datetime',\r\n} as const\r\nexport type CalendarChangeRestrictionType = typeof calendarChangeRestriction[keyof typeof calendarChangeRestriction]\r\n\r\n/**\r\n * 空き状況カレンダーコントロールのプロパティ\r\n */\r\ninterface AvailabilityCalendarProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n trigger?: UseFormTrigger\r\n\r\n /** 基準日 */\r\n baseDate: Date\r\n /** 受付時間単位パターン */\r\n receptionTimePattern: string\r\n /** 空き状況 */\r\n availabilities: Availability[]\r\n /** 変更前の範囲 */\r\n previousRange?: PreviousRange\r\n /** 変更予約の種類が抽選か否か */\r\n isLottery?: boolean\r\n /**\r\n * 変更制限。\r\n * 変更前から変更可能な対象を指定\r\n * 変更前の範囲が設定されていない場合は無視される\r\n *\r\n * 指定しなかった場合は、datetime 指定時と同じ動作\r\n */\r\n changeRestriction?: CalendarChangeRestrictionType\r\n\r\n /**\r\n * 初期表示時バリデーションを行う場合に必要な空き状況。\r\n * エラーで利用日時選択まで戻った時、複数選択では全ての選択が\r\n * 表示する1週間に収まらない。\r\n * よって、選択日の空き状況別途取得してこちらに設定した上でバリデーションを実行する\r\n */\r\n initialValidationAvailabilities?: Availability[]\r\n\r\n /** 単一枠選択とする場合true */\r\n isSingleSlotSelection?: boolean\r\n\r\n /** 複数選択可能にする場合true */\r\n isMultiple?: boolean\r\n\r\n /** 基準日変更時イベントハンドラー */\r\n onChangeBaseDate: (baseDate: Date) => void\r\n\r\n /** 表示のみ(カレンダーの枠選択や選択内容の入力域を出さない)にする場合true */\r\n isDisplayOnly?: boolean\r\n\r\n /** 面談予約受付コマ名称 */\r\n receptionTimeName?: string\r\n}\r\n\r\n/**\r\n * 予約枠の表示、処理の制御に必要な情報\r\n */\r\ninterface SlotStatus {\r\n /** 予約枠キー日時。空き状況が存在しない日付では時間軸の値を使用する */\r\n keyDate: Date\r\n /**\r\n * 空き状況。\r\n * 予約枠の空き状況情報が存在しない場合は、値が設定されない\r\n */\r\n availability?: InputValue\r\n /** 全ての選択範囲 */\r\n allRange: DateRange[]\r\n /** 現在の選択範囲 */\r\n activeRange?: DateRange\r\n /** 変更前の選択範囲 */\r\n previousRange?: PreviousRange\r\n /** 枠を非活性(選択不可)にする場合true */\r\n isDisabled: boolean\r\n /** 枠をクリック可能にする場合true */\r\n isClickable: boolean\r\n}\r\n\r\n/**\r\n * 当カレンダーコントロール処理用に変換した空き状況1日分の型\r\n */\r\ninterface CalAvailability {\r\n baseDateOfTime: Date\r\n statuses: {\r\n range?: {\r\n from: Date\r\n to: Date\r\n }\r\n status: string\r\n }[]\r\n}\r\n\r\n/** getDay()の日曜日 */\r\nconst daysSunday = 0\r\n/** getDay()の土曜日 */\r\nconst daysSaturday = 6\r\n\r\n/** 枠状況のラベル */\r\nconst statusLabels: Record = {\r\n [availabilityStatus.vacant]: '○',\r\n [availabilityStatus.wait]: '△',\r\n [availabilityStatus.noSpace]: '×',\r\n [availabilityStatus.outside]: '-',\r\n [availabilityStatus.doneFixed]: '☆',\r\n [availabilityStatus.doneNotFixed]: '★',\r\n [availabilityStatus.doneWait]: '★',\r\n [availabilityStatus.lotteryReservationAvailable]: '抽',\r\n [availabilityStatus.lotteryReserved]: '抽待',\r\n} as const\r\n\r\n/**\r\n * @param theme テーマ\r\n * @param days Date.prototype.getDay()の値\r\n * @returns 日付軸のカラー\r\n */\r\nconst getDateColor = (theme: Theme, days: number) => {\r\n // デフォルト:白\r\n let palette = theme.palette.white\r\n\r\n // 各曜日ごとの色\r\n if (days === daysSunday) {\r\n // 日曜日:赤\r\n palette = theme.palette.error\r\n } else if (days === daysSaturday) {\r\n // 土曜日:青\r\n palette = theme.palette.primary\r\n }\r\n\r\n if (palette) {\r\n return {\r\n color: palette.contrastText,\r\n backgroundColor: palette.main,\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 選択枠の色設定\r\n * @param theme テーマ\r\n * @param status 空き状況ステータス\r\n * @returns 予約枠のカラー\r\n */\r\nconst getSlotCellColor = (theme: Theme, status: SlotStatus) => {\r\n const { activeRange, previousRange } = status\r\n let color = theme.palette.text.primary\r\n let backgroundColor\r\n if (activeRange && isIncludeDate(status.keyDate, activeRange, { isExcludingTo: true })) {\r\n // 選択可能枠を選択中の文字色と背景色\r\n color = theme.palette.primary.main\r\n backgroundColor = theme.palette.info.main\r\n } else if (status.allRange.some((range) => isIncludeDate(status.keyDate, range, { isExcludingTo: true }))) {\r\n // \r\n color = theme.palette.greenPale.contrastText\r\n backgroundColor = theme.palette.greenPale.main\r\n } else if (\r\n previousRange &&\r\n previousRange.isWaiting &&\r\n isIncludeDate(status.keyDate, previousRange.range, { isExcludingTo: true })\r\n ) {\r\n // \r\n backgroundColor = theme.palette.errorPale.main\r\n } else if (status.isDisabled) {\r\n // 選択不可枠の背景色\r\n backgroundColor = theme.palette.grayLight.main\r\n }\r\n\r\n return {\r\n color,\r\n backgroundColor,\r\n }\r\n}\r\n\r\n// 枠選択全体div\r\nconst AvailabilityTableBox = styled('div')(({}) => ({\r\n display: 'flex',\r\n flexDirection: 'column',\r\n textAlign: 'center',\r\n}))\r\n// 日付&曜日の最初の空白div\r\nconst EdgeCellBox = styled('div')(({ theme }) => ({\r\n flex: '1',\r\n borderLeft: '1px solid transparent',\r\n borderRight: `1px solid ${theme.palette.secondary.main}`,\r\n backgroundColor: theme.palette.white.main,\r\n}))\r\n// 日付&曜日全体div\r\nconst DateRowBox = styled('div')(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flex: '1',\r\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\r\n position: 'sticky',\r\n top: theme.mixins.toolbar.minHeight,\r\n}))\r\n// 日付&曜日個別div\r\nconst DateCellBox = styled('div', { shouldForwardProp: (prop) => prop !== 'day' })<{\r\n day: number\r\n}>(({ theme, day }) => ({\r\n flex: '1',\r\n borderTop: `1px solid ${theme.palette.secondary.main}`,\r\n borderRight: `1px solid ${theme.palette.secondary.main}`,\r\n fontSize: theme.typography.font.sizeM,\r\n padding: '5px 0',\r\n // 曜日ごとに背景色を設定\r\n ...getDateColor(theme, day),\r\n}))\r\n\r\n// 時間&枠選択全体div\r\nconst SlotRowBox = styled('div')(({ theme }) => ({\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flex: '1',\r\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\r\n}))\r\n// 時間div\r\nconst SlotTimeCellBox = styled('div', { shouldForwardProp: (prop) => prop !== 'isSingle' })<{ isSingle: boolean }>(\r\n ({ theme, isSingle }) => ({\r\n flex: '1',\r\n borderLeft: `1px solid ${theme.palette.secondary.main}`,\r\n borderRight: `1px solid ${theme.palette.secondary.main}`,\r\n fontSize: theme.typography.font.sizeS,\r\n padding: `${isSingle ? 8 : 1}px 0`,\r\n '& div': {\r\n textAlign: 'center',\r\n },\r\n })\r\n)\r\n// 枠選択div\r\nconst SlotCellBox = styled('div', { shouldForwardProp: (prop) => prop !== 'slotStatus' })<{\r\n slotStatus: SlotStatus\r\n}>(({ theme, slotStatus }) => ({\r\n flex: '1',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n userSelect: 'none',\r\n borderRight: `1px solid ${theme.palette.secondary.main}`,\r\n ...(slotStatus.isClickable && {\r\n '&:hover': {\r\n cursor: 'pointer',\r\n },\r\n }),\r\n // 枠の状態毎に文字色や背景色を設定\r\n ...getSlotCellColor(theme, slotStatus),\r\n}))\r\n\r\n/**\r\n * 前・次週リンクのプロパティ\r\n */\r\ninterface ChangeBaseDateButtonProps {\r\n children: ReactNode\r\n baseDate: Date\r\n onChangeBaseDate: (baseDate: Date) => void\r\n}\r\n/**\r\n * 前・次週リンク\r\n */\r\nconst ChangeBaseDateButton = (props: ChangeBaseDateButtonProps) => {\r\n return props.onChangeBaseDate(props.baseDate)}>{props.children}\r\n}\r\n\r\nconst rangeMap = (from: Date, to: Date, stepCallback: (value: Date) => Date) => {\r\n let current = from\r\n const values = []\r\n while (current <= to) {\r\n values.push(current)\r\n current = stepCallback(current)\r\n }\r\n return values\r\n}\r\n\r\n/** 時間軸ラベル文言(x時間単位) */\r\nconst formatTimeLabelsByTimeRange = (baseDate: Date, range: DateRange) => [\r\n formatHmOver(range.from, baseDate),\r\n formatHmOver(range.to, baseDate),\r\n]\r\n/** 時間軸ラベル文言(AMPM単位) */\r\nconst formatTimeLabelsByAmPm = (baseDate: Date, range: DateRange, index: number) => [index % 2 === 0 ? 'AM' : 'PM']\r\n\r\n/** 空き状況マップのキー値を返す */\r\nconst getAvailabilityMapKey = (date: Date, timeIndex: number) => date.getTime() + timeIndex\r\n\r\n/** 変更不可にするか否かを返す */\r\nconst isReadonly = (previousRange?: PreviousRange, changeRestriction?: CalendarChangeRestrictionType) =>\r\n previousRange && changeRestriction === calendarChangeRestriction.none\r\n\r\n/**\r\n * 変更選択可能か否かを返す。\r\n * 変更前の選択範囲、変更制限の指定が無ければ常にtrue\r\n *\r\n * @param baseDateOfTime 時間の基準となる日付\r\n * @param keyDate 予約枠キー日時\r\n * @param previousRange 変更前の選択範囲\r\n * @param changeRestriction 変更制限\r\n * @returns 変更選択可能ならtrue\r\n */\r\nconst isChangeSelectable = (\r\n baseDateOfTime: Date,\r\n keyDate: Date,\r\n previousRange?: PreviousRange,\r\n changeRestriction?: CalendarChangeRestrictionType\r\n) => {\r\n if (previousRange == null || changeRestriction == null) {\r\n return true\r\n }\r\n switch (changeRestriction) {\r\n case calendarChangeRestriction.none:\r\n return isIncludeDate(keyDate, previousRange.range, { isExcludingTo: true })\r\n case calendarChangeRestriction.time:\r\n return isSameDay(baseDateOfTime, previousRange.baseDateOfTime)\r\n case calendarChangeRestriction.datetime:\r\n return true\r\n }\r\n}\r\n\r\n/**\r\n * 対象時間帯の各日(1週間分)について\r\n * 予約枠の表示、処理の制御に必要な情報を返す。\r\n *\r\n * @param availabilityMap 空き状況のマップ\r\n * @param timeIndex 時間帯インデックス\r\n * @param minutesFromBaseDate 利用日0時から時間軸の対象時間帯fromまでの時間(分)\r\n * @param weekDates 対象日(1週間分)\r\n * @param allRange 全ての選択範囲\r\n * @param activeRange 現在の選択範囲\r\n * @param previousRange 変更前の選択範囲\r\n * @param changeRestriction 変更制限\r\n * @param isDisplayOnly 表示のみ\r\n * @returns 予約枠の表示、処理の制御に必要な情報の配列\r\n */\r\nconst getSlotStatuses = (\r\n availabilityMap: AvailabilityMap,\r\n timeIndex: number,\r\n minutesFromBaseDate: number,\r\n weekDates: Date[],\r\n allRange: DateRange[],\r\n activeRange?: DateRange,\r\n previousRange?: PreviousRange,\r\n changeRestriction?: CalendarChangeRestrictionType,\r\n isDisplayOnly?: boolean\r\n): SlotStatus[] => {\r\n return weekDates.map((date) => {\r\n const mapKey = getAvailabilityMapKey(date, timeIndex)\r\n const availability = castNullable(availabilityMap[mapKey])\r\n\r\n /**\r\n * 予約枠キー日時。空き状況が存在しない日付では時間軸の値を使用する\r\n */\r\n const keyDate = availability?.range.from ?? addMinutes(date, minutesFromBaseDate)\r\n\r\n const status = availability?.status\r\n const disableStatuses: string[] = [availabilityStatus.noSpace, availabilityStatus.outside]\r\n const isDisabled =\r\n status == null ||\r\n disableStatuses.includes(status) ||\r\n !isChangeSelectable(date, keyDate, previousRange, changeRestriction)\r\n return {\r\n keyDate,\r\n availability,\r\n isDisabled,\r\n isClickable: !isDisplayOnly && !isDisabled && !isReadonly(previousRange, changeRestriction),\r\n allRange,\r\n activeRange,\r\n previousRange,\r\n }\r\n })\r\n}\r\n\r\nconst toCalAvailabilities = (availabilities: Availability[]): CalAvailability[] =>\r\n availabilities.map(({ day, statuses }) => ({\r\n baseDateOfTime: fromApiYmd(day),\r\n statuses: statuses.map((statusEntry) => ({\r\n ...(statusEntry.startTime && {\r\n range: {\r\n from: fromApiYmdHms(statusEntry.startTime),\r\n to: fromApiYmdHms(statusEntry.endTime),\r\n },\r\n }),\r\n status: statusEntry.status,\r\n })),\r\n }))\r\n\r\nconst toAvailabilityMap = (availabilities: CalAvailability[]) =>\r\n Object.fromEntries(\r\n availabilities\r\n .map(({ baseDateOfTime, statuses }) =>\r\n statuses.map(({ range, status }, index) =>\r\n tuple(getAvailabilityMapKey(baseDateOfTime, index), { baseDateOfTime, range, status })\r\n )\r\n )\r\n .flat()\r\n // 受付時間単位が1日で非営業日の場合は、開始・終了時間がnullになるので該当データを除外する\r\n .filter((v): v is [number, InputValue] => !!v[1].range)\r\n )\r\n\r\n/**\r\n * 空き状況カレンダーフォームコントロール\r\n */\r\nexport const AvailabilityCalendar = memo(function AvailabilityCalendar(props: AvailabilityCalendarProps) {\r\n /** 基準日 */\r\n const baseDate = trimTime(props.baseDate)\r\n const weekDates = rangeMap(baseDate, addDays(addWeeks(baseDate, 1), -1), (date) => addDays(date, 1))\r\n\r\n /** 前週クリックで変更する基準日 */\r\n const previousBaseDate = addWeeks(baseDate, -1)\r\n /**\r\n * 翌週クリックで変更する基準日。\r\n * 単純に現在基準日+1週間とはしない。\r\n *\r\n * 理由:\r\n * 空き状況APIは、年度変わりなどで週の途中で受付時間単位や開始時間・終了時間などの設定が変更になっている場合、\r\n * 変更される日までの空き状況を返す。※受付時間単位60分とAMPMを混在させて表示することが困難な為\r\n */\r\n const nextBaseDate = addDays(fromApiYmd(props.availabilities.slice(-1)[0].day), 1)\r\n\r\n /** 時間軸ラベル文言(1日単位) */\r\n const formatTimeLabelsByAllDay = () => props.receptionTimeName ? [props.receptionTimeName] : [translate('system.availabilityCalendar.allDay')]\r\n\r\n /** 時間軸のラベル文言取得関数 */\r\n let formatTimeLabels: (baseDate: Date, range: DateRange, index: number) => string[]\r\n switch (props.receptionTimePattern) {\r\n case receptionTimePattern.amPm:\r\n formatTimeLabels = formatTimeLabelsByAmPm\r\n break\r\n case receptionTimePattern.allDay:\r\n formatTimeLabels = formatTimeLabelsByAllDay\r\n break\r\n default:\r\n formatTimeLabels = formatTimeLabelsByTimeRange\r\n break\r\n }\r\n\r\n const { timeRanges, availabilityMap } = useMemo(() => {\r\n const availabilities = toCalAvailabilities(props.availabilities)\r\n const firstAvailability = availabilities[0]\r\n return {\r\n /** テーブルの時間軸に関する情報 */\r\n timeRanges: firstAvailability.statuses.map(({ range }, index) => {\r\n // 受付時間単位が1日で非営業日の場合は、開始・終了時間がnullになるので範囲にダミー値を設定\r\n const targetRange = range ?? { from: firstAvailability.baseDateOfTime, to: firstAvailability.baseDateOfTime }\r\n return {\r\n labels: formatTimeLabels(firstAvailability.baseDateOfTime, targetRange, index),\r\n timeIndex: index,\r\n minutesFromBaseDate: differenceInMinutes(targetRange.from, firstAvailability.baseDateOfTime),\r\n }\r\n }),\r\n /** 各予約枠情報のマップ */\r\n availabilityMap: toAvailabilityMap(availabilities),\r\n }\r\n }, [props.availabilities, formatTimeLabels])\r\n /** 初期表示時バリデーションを行う場合に必要な空き状況Map */\r\n const initialValidationAvailabilityMap = useMemo(() => {\r\n const availabilities = props.initialValidationAvailabilities\r\n ? toCalAvailabilities(props.initialValidationAvailabilities)\r\n : []\r\n return toAvailabilityMap(availabilities)\r\n }, [props.initialValidationAvailabilities])\r\n\r\n const { fields, append, remove } = useFieldArray({\r\n name: props.name,\r\n control: props.control,\r\n })\r\n\r\n // useWatchは初期表示後の変更はウォッチできるが初期表示時の値は取得できない為\r\n // 各選択範囲コントロールから初期値を集める\r\n const [initialInputs, setInitialInputs] = useState([])\r\n const putInitialInputs = useCallback(\r\n (index: number, input: InputValue | null) => {\r\n const newInputs = [...initialInputs]\r\n newInputs[index] = { value: input }\r\n setInitialInputs(newInputs)\r\n },\r\n [initialInputs]\r\n )\r\n const watchedArrayInputs: ArrayInputValue[] = useWatch({ name: props.name, control: props.control })\r\n const currentArrayInputs = watchedArrayInputs ?? initialInputs\r\n\r\n /** すべての選択日時範囲 */\r\n const allRanges = useMemo(\r\n () => currentArrayInputs?.map((v) => v.value?.range).filter((v): v is DateRange => !!v) ?? [],\r\n [currentArrayInputs]\r\n )\r\n\r\n const [activeIndex, setActiveIndex] = useState(fields.length > 0 ? fields.length - 1 : 0)\r\n const activeRef = useRef()\r\n let activeInput: InputValue | null = null\r\n if (currentArrayInputs.length > activeIndex) {\r\n activeInput = currentArrayInputs[activeIndex].value\r\n }\r\n\r\n /** 選択日時追加 */\r\n const appendInput = useCallback((fieldsLength: number) => {\r\n append({ value: null })\r\n setActiveIndex(fieldsLength)\r\n }, [])\r\n /** 選択日時削除 */\r\n const removeInput = useCallback(\r\n (index: number) => {\r\n remove(index)\r\n if (index <= activeIndex) {\r\n setActiveIndex(Math.max(activeIndex - 1, 0))\r\n }\r\n },\r\n [activeIndex]\r\n )\r\n /** 選択日時変更 */\r\n const editInput = useCallback(\r\n (index: number) => {\r\n setActiveIndex(index)\r\n const input = currentArrayInputs[index]\r\n if (\r\n input?.value &&\r\n !isIncludeDate(input.value.baseDateOfTime, { from: baseDate, to: nextBaseDate }, { isExcludingTo: true })\r\n ) {\r\n props.onChangeBaseDate(input.value.baseDateOfTime)\r\n }\r\n },\r\n [currentArrayInputs, baseDate, nextBaseDate, props.onChangeBaseDate]\r\n )\r\n\r\n /** 選択日時増減 */\r\n useEffect(() => {\r\n if (fields.length === 0) {\r\n // 最低一つの入力欄は残す\r\n appendInput(0)\r\n }\r\n }, [fields])\r\n\r\n /** 枠選択時の時間設定処理 */\r\n const getSlotCellClickHandler = useCallback(\r\n (availability: InputValue) => {\r\n return () => {\r\n // SelectedRangeTextBoxのuseImperativeHandleのsetValueを呼び出す\r\n activeRef.current?.setValue(availability, props.isSingleSlotSelection ?? false)\r\n }\r\n },\r\n [availabilityMap]\r\n )\r\n\r\n /** 前週リンクボタン */\r\n const previousButton = (\r\n \r\n {`<${translate('system.availabilityCalendar.previousWeek')}`}\r\n \r\n )\r\n\r\n /** 次週リンクボタン */\r\n const nextButton = (\r\n \r\n {`${translate('system.availabilityCalendar.nextWeek')}>`}\r\n \r\n )\r\n\r\n return (\r\n \r\n {previousButton}\r\n \r\n {formatLocaleYm(baseDate)}\r\n \r\n {nextButton}\r\n\r\n \r\n \r\n {/* 日付行 */}\r\n \r\n \r\n {weekDates.map((date) => (\r\n \r\n
{formatDate(date, 'd')}
\r\n
({formatDate(date, 'E')})
\r\n
\r\n ))}\r\n
\r\n {/* 時間行 */}\r\n {timeRanges.map(({ labels, timeIndex, minutesFromBaseDate }) => (\r\n \r\n \r\n {labels.map((label, index) => (\r\n
{label}
\r\n ))}\r\n
\r\n {getSlotStatuses(\r\n availabilityMap,\r\n timeIndex,\r\n minutesFromBaseDate,\r\n weekDates,\r\n allRanges,\r\n activeInput?.range,\r\n props.previousRange,\r\n props.changeRestriction,\r\n props.isDisplayOnly\r\n ).map((slotStatus) => (\r\n \r\n {statusLabels[slotStatus.availability?.status ?? availabilityStatus.outside]}\r\n \r\n ))}\r\n
\r\n ))}\r\n
\r\n
\r\n\r\n {previousButton}\r\n \r\n {nextButton}\r\n\r\n {!props.isDisplayOnly && (\r\n <>\r\n \r\n \r\n {props.previousRange && (\r\n \r\n
\r\n {translate(\r\n props.previousRange.isWaiting\r\n ? 'system.availabilityCalendar.waitDatetime'\r\n : 'system.availabilityCalendar.previousDatetime'\r\n )}\r\n
\r\n
{formatYmdHmToHmOverWeek(props.previousRange.range, props.previousRange.baseDateOfTime)}
\r\n
\r\n )}\r\n\r\n \r\n
{translate('system.availabilityCalendar.selectionDatetime')}
\r\n \r\n {fields.map((field, index) => (\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n\r\n {props.isMultiple && (\r\n \r\n appendInput(fields.length)}>{translate('system.button.add')}\r\n \r\n )}\r\n \r\n )}\r\n
\r\n )\r\n})\r\n","import { translate } from '../../../../../i18n'\nimport { GContainer, RowSpacerGItem } from '../../grids'\nimport { DatePickerNoBind } from '../../inputs/datePickerNoBind'\n\n// 日付選択\nconst DateSelection = (props: {activeDate: Date, onChange: (date:Date | null) => void}) => (\n \n
\n {translate('facilityLotteryReservationUpdateSelection.label.selectTheDesiredDateOfUse')}\n
\n \n \n
\n)\nexport default DateSelection;","import { facilityDetailUrl } from '../../../../../containers/common/constant/appUrl'\nimport { OperationId } from '../../../../../containers/common/constant/operationLog'\nimport { Link } from '../../link'\nimport { TitleLabel } from '../../titleLabel'\n\n// 施設名\nconst FacilityLinkedName = (props: {facilityId: string, facilityName: string}) => (\n \n {props.facilityName}\n \n);\nexport default FacilityLinkedName;","import { styled } from '@mui/material'\nimport { InfoCard } from '../../infoCard'\n\nconst FacilityNoteCard = styled(InfoCard)({\n whiteSpace: 'pre-wrap',\n})\nexport default FacilityNoteCard","import { FormControl, FormControlLabel, FormHelperText, Radio, RadioGroup, styled } from '@mui/material'\nimport React from 'react'\nimport { Control, useController } from 'react-hook-form'\nimport { translate } from '../../../i18n'\nimport { getValueByNameStr } from '../../../utils/objectUtil'\nimport { TextBox } from '../common/inputs/textBox'\nimport { yesNo } from '../../../containers/common/constant/classification'\nimport { GItem, GItemContainer } from '../common/grids'\n\ninterface UseReasonDetailRadioGroupProps {\n /** 利用目的名*/\n useReasonName: 'Irregular' | 'Emg' | 'Refresh'\n /** 選択されている詳細事由 */\n useReasonDetail: string\n /** 詳細事由を利用するか否かのフラグ */\n useReasonDetailFlags: {\n useReasonDetailCategory: string\n detailItemFlag: string\n }[]\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\n label: string\n /** 入力必須とする場合true */\n required?: boolean\n /** 横に並べて表示する場合true */\n row?: boolean\n /** 選択肢の値と表示文言配列 */\n buttonValueLabels: { value: string; label: string, textInputType: string }[]\n /**\n * ReactHookFormのコントロールオブジェクト\n * 通常は省略する。\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\n */\n control?: Control\n /** 読み取り専用の場合true */\n disabled?: boolean\n \n onChange?: (event: React.ChangeEvent) => void\n}\n\nconst Root = styled(RadioGroup)(() => ({\n '& .MuiRadio-root': {\n padding: '0 9px',\n },\n}))\n\nconst textInputTypeValue = {\n noInputField: '0',\n inputFieldNotRequired: '1',\n inputFieldRequired: '2',\n} as const\n\nconst maxLengthOfDescription = 50\n\n/** ラジオボタンフォームコントロール */\nexport const UseReasonDetailRadioGroup = (props: UseReasonDetailRadioGroupProps) => {\n const { label, useReasonName, useReasonDetail, useReasonDetailFlags, required, buttonValueLabels, control, disabled, onChange, ...through } = props\n\n const name = `useReasonDetail${useReasonName}`\n\n // 利用する詳細事由のみに絞り込む\n const showValueLabels = buttonValueLabels.filter((_, index) => {\n const useDetailFlag = useReasonDetailFlags.find(({\n useReasonDetailCategory,\n }) => {\n return useReasonDetailCategory === (index + 1).toString()\n })?.detailItemFlag\n\n return useDetailFlag === yesNo.yes\n });\n\n const showAnyDetailUseReason = showValueLabels.length > 0\n\n const {\n field: { ref, ...ctrlProps },\n formState: { errors },\n } = useController({\n name,\n rules: {\n required: {\n value: !!showAnyDetailUseReason,\n message: translate('system.error.requiredSelection', label),\n },\n },\n defaultValue: '',\n control,\n });\n\n if (!showAnyDetailUseReason) {\n return null;\n }\n\n const error = getValueByNameStr(errors, name)\n return (\n \n {\n ctrlProps.onChange(e)\n if (onChange) onChange(e)\n }}\n >\n {showValueLabels.map(({ value, label, textInputType }, index) => {\n return (\n \n \n \n \n \n }\n {...(index === 0 && { inputRef: ref })}\n />\n \n {textInputType === textInputTypeValue.inputFieldNotRequired && (\n \n \n \n )}\n {textInputType === textInputTypeValue.inputFieldRequired && (\n \n \n \n )}\n \n \n )\n })}\n \n {error && {error.message}}\n \n )\n}\n","import React from 'react'\nimport { useController } from 'react-hook-form'\nimport { FormControl, RadioGroup, FormControlLabel, FormHelperText, Radio, styled } from '@mui/material';\nimport { purposeOfUse as purposeOfUseValue, yesNo } from '../../../containers/common/constant/classification'\nimport { UseReasonDetailRadioGroup } from './useReasonDetailRadioGroup'\nimport { translate } from '../../../i18n'\nimport { getValueByNameStr } from '../../../utils/objectUtil'\nimport { GetUseReasonDto } from '../../../dataAccess/webApi/dto/useReasonDto'\nimport { ReservationDetailSettingDto } from '../../../dataAccess/webApi/dto/reservationsDto'\n\nexport interface UseReasonOptions {\n irregular: boolean,\n emergency: boolean,\n refresh: boolean\n}\ninterface UseReasonRadioGroupProps {\n useReason?: GetUseReasonDto\n useReasonOptions: UseReasonOptions\n facility?: {\n irregularDisplayType: string\n emergencyDisplayType: string\n refreshDisplayType: string\n \n useReasonUsageFlagIrregular: string\n useReasonDetailUsageFlagIrregular: string\n detailsIrregular: {\n useReasonDetailCategory: string\n detailItemFlag: string\n }[]\n useReasonDetailUsageFlagEmg: string\n useReasonUsageFlagEmg: string\n detailsEmg: {\n useReasonDetailCategory: string\n detailItemFlag: string\n }[]\n useReasonDetailUsageFlagRefresh: string\n useReasonUsageFlagRefresh: string\n detailsRefresh: {\n useReasonDetailCategory: string\n detailItemFlag: string\n }[]\n \n detailSetting: ReservationDetailSettingDto[]\n },\n purposeOfUse: string\n useReasonDetailIrregular: string\n useReasonDetailEmg: string\n useReasonDetailRefresh: string\n onChange?: (event: React.ChangeEvent) => void\n isDetailHidden?: boolean\n}\n\nconst Root = styled(RadioGroup)(() => ({\n '& .MuiRadio-root': {\n padding: '0 9px',\n },\n}))\n\nexport const UseReasonRadioGroup = (props: UseReasonRadioGroupProps) => {\n const {\n useReason,\n useReasonOptions,\n facility,\n purposeOfUse,\n useReasonDetailIrregular,\n useReasonDetailEmg,\n useReasonDetailRefresh,\n onChange,\n isDetailHidden: isDetailHiddenProps\n } = props\n \n const {\n field: { ref, ...ctrlProps },\n formState: { errors },\n } = useController({\n name: 'purposeOfUse',\n rules: {\n required: {\n value: true,\n message: translate('system.error.requiredSelection', translate('facilityReservationForm.useReason.purpose')),\n },\n },\n defaultValue: ''\n })\n \n const error = getValueByNameStr(errors, 'purposeOfUse')\n \n if (!useReason) {\n return null\n }\n\n const isDetailHidden = isDetailHiddenProps ?? false;\n\n return (\n \n \n \n {\n useReasonOptions.irregular && (\n }\n label={useReason.displayNameForCitizenIrregular}\n inputRef={ref}\n />\n )\n }\n \n {\n useReasonOptions.irregular\n && useReason.detailUsageFlagIrregular === yesNo.yes // 利用目的マスタで設定される非定型の詳細事由を利用するか否かを指定するフラグ\n && purposeOfUse === purposeOfUseValue.irregular\n && !isDetailHidden\n && (\n ({ value: (index + 1).toString(), label: detail.name, textInputType: detail.textInputType }))}\n required\n useReasonDetail={useReasonDetailIrregular}\n useReasonDetailFlags={facility?.detailsIrregular ?? []}\n />\n )\n }\n \n {\n useReasonOptions.emergency && (\n }\n label={useReason.displayNameForCitizenEmg}\n />\n )\n }\n \n {\n useReasonOptions.emergency\n && useReason.detailUsageFlagEmg === yesNo.yes // 利用目的マスタで設定される緊急の詳細事由を利用するか否かを指定するフラグ\n && purposeOfUse === purposeOfUseValue.emergency\n && !isDetailHidden\n && (\n ({ value: (index + 1).toString(), label: detail.name, textInputType: detail.textInputType }))}\n required\n useReasonDetail={useReasonDetailEmg}\n useReasonDetailFlags={facility?.detailsEmg ?? []}\n />\n )\n }\n \n {\n useReasonOptions.refresh && (\n }\n label={useReason.displayNameForCitizenRefresh}\n />\n )\n }\n\n {\n useReasonOptions.refresh\n && useReason.detailUsageFlagRefresh === yesNo.yes // 利用目的マスタで設定されるリフレッシュの詳細事由を利用するか否かを指定するフラグ\n && purposeOfUse === purposeOfUseValue.refresh\n && !isDetailHidden\n && (\n ({ value: (index + 1).toString(), label: detail.name, textInputType: detail.textInputType }))}\n required\n useReasonDetail={useReasonDetailRefresh}\n useReasonDetailFlags={facility?.detailsRefresh ?? []}\n />\n )\n }\n \n {error && {error.message}}\n \n )\n}\n","import { GetUseReasonDto } from '../../../../../dataAccess/webApi/dto/useReasonDto';\nimport { GetFacilityDto } from '../../../../../dataAccess/webApi/dto/facilitiesDto';\nimport { NullPropsToUndefinedType } from '../../../../../utils/typeUtil';\nimport { translate } from '../../../../../i18n'\nimport { AttentionLabel } from '../../attentionLabel'\nimport { UseReasonRadioGroup, UseReasonOptions } from '../../../facilityReservationForm/useReasonRadioGroup'\nimport { Stack } from '@mui/material';\n\n// 利用目的\nconst UseReasonSelection = (props: {\n useReason: GetUseReasonDto,\n useReasonOptions: UseReasonOptions\n facility: NullPropsToUndefinedType,\n purposeOfUse: string\n useReasonDetailIrregular: string\n useReasonDetailEmg: string\n useReasonDetailRefresh: string\n isDetailHidden?: boolean\n onChange: (event: React.ChangeEvent) => void\n}) => (\n \n
\n {translate('facilityLotteryReservationUpdateSelection.label.useReason')}\n *\n
\n \n
\n);\nexport default UseReasonSelection;","import React from 'react'\nimport { styled, SelectChangeEvent, Grid } from '@mui/material'\nimport { PageState } from '../../../containers/facilityDetailAvailability/facilityDetailAvailabilityService';\nimport { GContainer } from '../common/grids';\nimport { SelectNoBind } from '../common/inputs/selectNoBind';\nimport { AttentionLabel } from '../common/attentionLabel';\nimport { translate } from '../../../i18n';\n\nconst ChildSelectionGContainer = styled(GContainer)({\n marginBottom: '8px',\n})\n\ninterface diagonosisSelectionProps {\n diagonosisDecodeMst: { value: string; label: string }[]\n changeDropDownSelectedDiagonosis: (event: SelectChangeEvent) => void\n state: PageState\n name: string\n}\nconst DiagonosisSelection: React.FC = (\n { diagonosisDecodeMst, changeDropDownSelectedDiagonosis, name, state }\n) => {\n const value = state.diagonosis[name as keyof typeof state.diagonosis];\n\n return (\n \n
\n {translate(`facilityDetailAvailability.label.diagonosis.${name}`)}\n {\n name === 'first' && (\n *\n )\n }\n
\n \n \n \n \n \n
\n )\n}\n\nexport default DiagonosisSelection","import { Box, Stack } from '@mui/material'\nimport { interviewReservationFormUrl, interviewReservationSelectionCreateUrl } from '../../containers/common/constant/appUrl'\nimport { loginUrl } from '../../containers/common/constant/appUrl'\nimport { yesNo, interviewAcceptMethod } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/facilityDetailAvailability/facilityDetailAvailabilityService'\nimport { translate, translateNode } from '../../i18n'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { AvailabilityCalendar } from '../components/common/inputs/availabilityCalendar'\nimport { DatePickerNoBind } from '../components/common/inputs/datePickerNoBind'\nimport { Form } from '../components/common/inputs/form'\nimport { Link } from '../components/common/link'\nimport DateSelection from '../components/common/reservationFlow/selection/dateSelection'\nimport FacilityLinkedName from '../components/common/reservationFlow/selection/facilityLinkedName'\nimport FacilityNoteCard from '../components/common/reservationFlow/selection/facilityNote'\nimport UseReasonSelection from '../components/common/reservationFlow/selection/useReasonSelection'\nimport DiagonosisSelection from '../components/facilityDetail/diagonosisSelection'\n\n\n\nexport const FacilityDetailAvailability = () => {\n const {\n state,\n formMethods,\n currentLocation,\n isLoggedIn,\n changeChildBirthday,\n changeDate,\n callTel,\n purposeOfUse,\n useReasonDetailIrregular,\n useReasonDetailEmg,\n useReasonDetailRefresh,\n changeUseReason,\n handleChangeFirst,\n handleChangeSecond\n } = useAction()\n\n if (!state) {\n return null\n }\n\n const isInterviewSlots = state.facility.interviewDailyAcceptFlag === yesNo.yes\n && state.facility.interviewAcceptMethod === interviewAcceptMethod.interviewSlots\n const isPreinterviewAccept = state.facility.preinterviewAcceptFlag === yesNo.yes\n const isInterviewRequired = state.facility.interviewMethodFlag === yesNo.no\n\n return (\n \n
\n \n \n \n \n \n \n \n \n \n \n {/** 生年月日選択 */}\n \n
\n {translate('facilityDetailAvailability.label.ageClass')}\n
\n \n
\n {\n state.commonFlag === yesNo.no\n && Object.values(state.useReasonOptions).some((usage) => usage)\n && (\n \n )\n }\n {\n state.isolationFlag && (\n <>\n \n \n \n )\n }\n \n
\n
\n {\n state.availabilities.length > 0 && (\n <>\n \n \n {translate(state.usageGuideStr)}\n \n \n \n \n {\n state.note && (\n {state.note}\n )\n }\n \n \n {\n state.lotteryNote && (\n {state.lotteryNote}\n )\n }\n \n \n )\n }\n
\n
\n {\n state.availabilities.length > 0 && (\n
{translate('facilityReservationSelection.label.annotation')}
\n )\n }\n {!isLoggedIn && (\n
\n {translateNode(\n 'facilityDetailAvailability.text.loginAnnotation',\n \n {translate('facilityDetailAvailability.text.loginHere')}\n \n )}\n
\n )}\n
\n \n
\n \n \n \n {\n isLoggedIn \n && state.facility.reservationAcceptFlag === yesNo.no \n && state.facility.notLoginCalendarDisplayFlag === yesNo.yes && (\n callTel(state.facility.tel)}>\n {translate('facilityDetailAvailability.button.telReservation')}\n \n )}\n {isPreinterviewAccept && !isInterviewSlots && isInterviewRequired && (\n \n {translate('facilityDetailAvailability.button.usageApplication')}\n \n )}\n {isPreinterviewAccept && !isInterviewSlots && !isInterviewRequired && (\n \n {translate('facilityDetailAvailability.button.advanceApplication')}\n \n )}\n {isPreinterviewAccept && isInterviewSlots && isInterviewRequired && (\n \n {translate('facilityDetailAvailability.button.usageApplication')}\n \n )}\n {isPreinterviewAccept && isInterviewSlots && !isInterviewRequired && (\n \n {translate('facilityDetailAvailability.button.advanceApplication')}\n \n )}\n \n \n
\n
\n )\n}\n","import { useMemo, useEffect } from 'react'\nimport { getFacilityReservationSteps } from '../common/codeMaster'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\n\n/** 表示モード(施設予約完了画面) */\nexport const dispMode = {\n /** 施設予約(即時予約)*/\n insertRealtime: 'ir',\n /** 施設予約(承認予約)*/\n insertApproval: 'ia',\n /** キャンセル待ち予約(即時予約)*/\n insertRealtimeCanselWait: 'irc',\n /** キャンセル待ち予約(承認予約)*/\n insertApprovalCanselWait: 'iac',\n /** 施設予約変更(即時予約)*/\n updateRealtime: 'ur',\n /** 施設予約変更(承認予約)*/\n updateApproval: 'ua',\n /** キャンセル待ち予約変更(即時予約)*/\n updateRealtimeCanselWait: 'urc',\n /** キャンセル待ち予約変更(承認予約)*/\n updateApprovalCanselWait: 'uac',\n} as const\n\nexport const useAction = () => {\n const { addOperationLog } = useOperationLog()\n\n // 初期表示\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const steps = useMemo(getFacilityReservationSteps, [])\n\n return {\n steps,\n }\n}\n","import { styled } from '@mui/material'\nimport React from 'react'\n\ninterface CompletionMessageLabelProps {\n children?: string\n}\n\nconst Root = styled('span')(({ theme }) => ({\n color: theme.palette.primary.main,\n fontSize: theme.typography.font.sizeL2,\n}))\n\n/** 予約などの処理完了画面で表示する見出しのメッセージに使用するコントロール */\nexport const CompletionMessageLabel = (props: CompletionMessageLabelProps) => {\n return {props.children}\n}\n","import { Box, Stack, styled } from '@mui/material'\r\nimport { useParams } from 'react-router'\r\nimport {\r\n facilityReservationSelectionCreateUrl,\r\n reservationStatusListUrl,\r\n rootUrl,\r\n} from '../../containers/common/constant/appUrl'\r\nimport { facilityReservationStep } from '../../containers/common/constant/classification'\r\nimport {\r\n dispMode,\r\n useAction,\r\n} from '../../containers/facilityReservationCompletion/facilityReservationCompletionService'\r\nimport { translate } from '../../i18n'\r\nimport { AnnotationLabel } from '../components/common/annotationLabel'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { CompletionMessageLabel } from '../components/common/completionMessageLabel'\r\nimport { CenterGItem, GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\r\nimport { StepBar } from '../components/common/stepBar'\r\n\r\nconst StatementGItem = styled(GItem)({\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '38px',\r\n})\r\nconst AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n})\r\nconst ApprovalCanselWaitCompletionMessage = styled('div')(({ theme }) => ({\r\n color: theme.palette.error.main,\r\n fontSize: theme.typography.font.sizeL2,\r\n whiteSpace: 'pre-wrap',\r\n}))\r\n\r\ninterface UrlParams {\r\n facilityId: string\r\n childId: string\r\n displayMode: string\r\n}\r\n\r\nexport const FacilityReservationCompletion = () => {\r\n const { facilityId, childId, displayMode } = useParams()\r\n const { steps } = useAction()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {displayMode === dispMode.insertApprovalCanselWait ||\r\n displayMode === dispMode.updateApprovalCanselWait ? (\r\n \r\n {translate('facilityReservationCompletion.label.approvalCancelWaitCompletion')}\r\n \r\n ) : (\r\n \r\n {translate('facilityReservationCompletion.label.completion')}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {(displayMode === dispMode.insertRealtime || displayMode === dispMode.updateRealtime) && (\r\n \r\n \r\n \r\n {translate('facilityReservationCompletion.text.realtimeMainAttentionMessage')}\r\n \r\n {translate('facilityReservationCompletion.text.realtimeMainMessage')}\r\n \r\n \r\n )}\r\n {(displayMode === dispMode.insertApprovalCanselWait ||\r\n displayMode === dispMode.updateApprovalCanselWait) && (\r\n \r\n {translate('facilityReservationCompletion.text.approvalCancelWaitSubMessage')}\r\n \r\n )}\r\n {(displayMode === dispMode.insertApproval || displayMode === dispMode.updateApproval) && (\r\n \r\n \r\n {translate('facilityReservationCompletion.text.approvalMainAttentionMessage')}\r\n \r\n \r\n )}\r\n {(displayMode === dispMode.insertRealtimeCanselWait ||\r\n displayMode === dispMode.updateRealtimeCanselWait) && (\r\n \r\n \r\n \r\n {translate('facilityReservationCompletion.text.realtimeCancelWaitMainAttentionMessage')}\r\n \r\n {translate('facilityReservationCompletion.text.realtimeCancelWaitMainMessage')}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {(displayMode === dispMode.insertRealtimeCanselWait ||\r\n displayMode === dispMode.updateRealtimeCanselWait) && (\r\n \r\n {translate('facilityReservationCompletion.text.realtimeCancelWaitSubAttentionMessage')}\r\n \r\n )}\r\n \r\n \r\n {translate('facilityReservationCompletion.text.subMessage')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {(displayMode === dispMode.insertApproval ||\r\n displayMode === dispMode.insertRealtimeCanselWait ||\r\n displayMode === dispMode.insertApprovalCanselWait ||\r\n displayMode === dispMode.insertRealtime) && (\r\n \r\n {translate('facilityReservationCompletion.button.nextReservation')}\r\n \r\n )}\r\n \r\n {translate('facilityReservationCompletion.button.reserveStatusCheck')}\r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n )\r\n}\r\n","import { medicalDocUsage, reservationFieldUsage } from \"./constant/classification\"\nimport { ElapsedMillisecond, toApiYmd } from '../../utils/dateUtil';\nimport { executeGetProjectDetail } from '../../dataAccess/webApi/dao/projectsDao';\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto';\nimport { getFacility } from './facility';\nimport { ReservationDetailSettingDto } from \"../../dataAccess/webApi/dto/reservationsDto\";\n\n/**\n * 複数日程に対して参照する事業マスタ情報を取得する\n * 24/11 HOIKU-99にて予約希望日ないで最も古い日付における事業マスタを参照することに決定\n */\nexport const getProjectMstDataToRefer = async (facilityId: string, usageDates: Date[] | ElapsedMillisecond[], projectId?: string): Promise => {\n // 日付を古い順にソート\n usageDates.sort((a, b) => new Date(a).getTime() - new Date(b).getTime());\n\n if (!projectId) {\n const facilityData = await getFacility(facilityId, usageDates[0]);\n projectId = facilityData.projectId;\n }\n \n const getProjectDetailReturn = await executeGetProjectDetail(projectId, toApiYmd(usageDates[0]));\n return getProjectDetailReturn.result;\n}\n\n// 予約時利用項目\nexport type FieldsType = {\n diagonosis: T,\n symptom: T,\n epidemic: T,\n medicine: T,\n bodyTemp: T,\n foodAllergy: T,\n febrileSeizures: T,\n medicalDoc: T,\n emergency: T,\n height: T,\n weight: T,\n eatingMethod: T,\n eatingAbility: T,\n action: T,\n toiletAbility: T,\n considerations: T,\n reduction: T,\n attachedDoc: T,\n}\n\nexport type FieldRule = {\n show: boolean\n required: boolean\n order: number | null\n mustHospitalInfo?: boolean\n}\n\n// 予約時利用項目表示有無情報カラム\nconst fieldShowRuleMap: FieldsType = {\n diagonosis: \"diagonosisInput\",\n symptom: \"symptomsInput\",\n epidemic: \"epidemicInput\",\n medicine: \"medicineInput\",\n bodyTemp: \"bodyTemperatureInput\",\n febrileSeizures: \"febrileSeizuresInput\",\n medicalDoc: \"medicalDocUsage\",\n emergency: \"emergencyActionInput\",\n height: \"heightInput\",\n weight: \"weightInput\",\n eatingMethod: \"eatingMethodInput\",\n foodAllergy: \"allergyInput\",\n eatingAbility: \"eatingAbilityInput\",\n action: \"actionInput\",\n toiletAbility: \"toiletAbilityInput\",\n considerations: \"considerationsInput\",\n reduction: \"reductionInput\",\n attachedDoc: \"attachedDocInput\",\n}\n\n// 予約時利用項目並び順情報カラム\nconst fieldOrderRuleMap: FieldsType = {\n diagonosis: \"diagonosisOrder\",\n symptom: \"symptomsOrder\",\n epidemic: \"epidemicOrder\",\n medicine: \"medicineOrder\",\n bodyTemp: \"bodyTemperatureOrder\",\n febrileSeizures: \"febrileSeizuresOrder\",\n medicalDoc: \"medicalDocOrder\",\n emergency: \"emergencyActionOrder\",\n height: \"heightOrder\",\n weight: \"weightOrder\",\n eatingMethod: \"eatingMethodOrder\",\n foodAllergy: \"allergyOrder\",\n eatingAbility: \"eatingAbilityOrder\",\n action: \"actionOrder\",\n toiletAbility: \"toiletAbilityOrder\",\n considerations: \"considerationsOrder\",\n reduction: \"reductionOrder\",\n attachedDoc: \"attachedDocOrder\",\n}\n\nexport const getByChildFormFieldRule = (projectMst: GetProjectDetailDto, isolationFlag?: Boolean, useReseravtionSetting?: ReservationDetailSettingDto[] | null): FieldsType => {\n // 並び順未設定の場合はこの順番で表示される\n const rule: FieldsType = {\n diagonosis: { show: false, required: false, order: null },\n symptom: { show: false, required: false, order: null },\n epidemic: { show: false, required: false, order: null },\n medicine: { show: false, required: false, order: null },\n bodyTemp: { show: false, required: false, order: null },\n foodAllergy: { show: false, required: false, order: null },\n febrileSeizures: { show: false, required: false, order: null },\n medicalDoc: { show: false, required: false, order: null, mustHospitalInfo: false },\n emergency: { show: false, required: false, order: null },\n height: { show: false, required: false, order: null },\n weight: { show: false, required: false, order: null },\n eatingMethod: { show: false, required: false, order: null },\n eatingAbility: { show: false, required: false, order: null },\n action: { show: false, required: false, order: null },\n toiletAbility: { show: false, required: false, order: null },\n considerations: { show: false, required: false, order: null },\n reduction: { show: false, required: false, order: null },\n attachedDoc: { show: false, required: false, order: null },\n };\n\n Object.keys(fieldShowRuleMap).forEach((key) => {\n const fieldKey = key as keyof FieldsType;\n const ruleKeyName = fieldShowRuleMap[fieldKey] as keyof GetProjectDetailDto;\n\n if (ruleKeyName === fieldShowRuleMap.medicalDoc) {\n const fieldFlag = (projectMst[ruleKeyName] === medicalDocUsage.byFacility && useReseravtionSetting !== null && useReseravtionSetting !== undefined) ? useReseravtionSetting[0].medicalDoc : projectMst[ruleKeyName]\n if (fieldFlag !== medicalDocUsage.noUse) {\n rule.medicalDoc.show = true\n if (fieldFlag === medicalDocUsage.mustHospitalInfo) {\n rule.medicalDoc.mustHospitalInfo = true\n } else if (fieldFlag === reservationFieldUsage.necessary) {\n rule.medicalDoc.required = true\n }\n }\n } else if (projectMst[ruleKeyName] !== reservationFieldUsage.noUse) {\n rule[fieldKey].show = true\n if (projectMst[ruleKeyName] === reservationFieldUsage.necessary) {\n rule[fieldKey].required = true\n }\n }\n if (isolationFlag) {\n rule.diagonosis.show = false\n }\n });\n\n Object.keys(fieldOrderRuleMap).forEach((key) => {\n const fieldKey = key as keyof FieldsType;\n const ruleKeyName = fieldOrderRuleMap[fieldKey] as keyof GetProjectDetailDto;\n\n rule[fieldKey].order = projectMst[ruleKeyName] as (number | null)\n });\n\n return rule;\n}\n","// 登園・降園予定時間表示制御\nexport const GOING_DATETIME_DISPLAY_METHODS = {\n NOT_USED: '1',\n USED_ALL_FACILITY: '2',\n /**\n * TODO: 施設毎の制御が必要になった際に復活させる\n * [decode_mstにデータ追加 & nameの変更が必要](https://docs.google.com/spreadsheets/d/1fa9Ugn0nRODwvUYxQxL16XmNYQtaTUDVBzXWlIKSA-k/edit?gid=1735270161#gid=1735270161&range=AH125)\n * `/FexibleChildcareManagement/amplify/backend/function/projectMst/src/schema/regProjectMst.json`の90行目辺りにあるpatternの修正が必要\n */\n // SET_BY_FACILITY: '3',\n} as const\nexport type GOING_DATETIME_DISPLAY_METHODS = (typeof GOING_DATETIME_DISPLAY_METHODS)[keyof typeof GOING_DATETIME_DISPLAY_METHODS]\n\n// 項目利用\nexport const INPUT_FIELD_USAGE = {\n NO_USE: '0',\n OPTIONAL: '1',\n NECESSARY: '2',\n} as const\n\n// 医師連絡票アップロード\nexport const MEDICAL_DOC_USAGE = {\n NO_USE: '0',\n OPTIONAL: '1',\n NECESSARY: '2',\n TILL_UPLOAD: '3',\n MUST_HOSPITAL_INFO: '4',\n BY_FACILITY: '5'\n} as const\n\n// 添付ファイルアップロード\nexport const ATTACHED_DOC_USAGE = {\n NO_USE: '0',\n OPTIONAL: '1',\n NECESSARY: '2',\n} as const\n\n// 添付ファイルの表示条件\n// 0:利用しない 1:施設のみ利用 2:施設と市民の両方で利用\nexport const TEMP_FILE_CONDITION = {\n NOT_USED: \"0\",\n ONLY_USED_FACILITY: \"1\",\n USED_BOTH: \"2\",\n} as const","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { availabilityStatus, yesNo, Flag } from '../../containers/common/constant/classification'\nimport {\n clearFacilityReserve,\n FacilityReserveEntry,\n selectFacilityReserveEntry,\n selectReserveModifyUpdateDatetime,\n} from '../../containers/common/store/slices/facilityReserve'\nimport { executePostReservation, executePutReservation } from '../../dataAccess/webApi/dao/reservationsDao'\nimport { toApiYmd, toApiYmdHms } from '../../utils/dateUtil'\nimport { undefinedPropsToNull, combineDecimalParts } from '../../utils/objectUtil'\nimport { blankToNull } from '../../utils/stringUtil'\nimport { castNonNullable } from '../../utils/typeUtil'\nimport { facilityReservationCompletionUrl } from '../common/constant/appUrl'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading } from '../common/store/slices/application'\nimport { dispMode } from '../facilityReservationCompletion/facilityReservationCompletionService'\nimport { getLatestAddOperationDatetime, useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { ChildReservationInfoType, GoingTimeType } from '../common/reservation'\nimport { getProjectMstDataToRefer } from '../common/projectMst'\nimport { ReservationConfirmation } from '../../views/components/common/reservationDetail/reservationDetailGItems'\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto';\nimport { MEDICAL_DOC_USAGE } from '../common/constant/projectMst'\n\ntype ReservationReference = ReservationConfirmation & {\n useReason: GetUseReasonDto,\n}\n\nexport const useAction = () => {\n const errorHandler = useErrorHandle()\n const dispatch = useDispatch()\n const history = useHistory()\n const { addOperationLog } = useOperationLog()\n\n const reserveEntry = useSelector(selectFacilityReserveEntry)\n const updateDatetime = useSelector(selectReserveModifyUpdateDatetime)\n \n\n const [projectMst, setProjectMst] = useState< GetProjectDetailDto >();\n\n const reservationReference: ReservationReference | undefined = useMemo(() => {\n if (projectMst && reserveEntry?.facility && reserveEntry?.parentInfo && reserveEntry?.commonInput && reserveEntry?.useReason) {\n const { facility, parentInfo, useReasonCategory, useReasonDetailCategory, useReasonDetailDescription, commonInput, useReason, childInfoList } = reserveEntry\n projectMst.medicalDocUsage = projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY ? facility.medicalDoc : projectMst.medicalDocUsage\n \n return {\n ...commonInput,\n ...facility,\n facilityName: facility.facilityName,\n useReasonCategory: useReasonCategory,\n useReasonDetailCategory: useReasonDetailCategory,\n useReasonDetailDescription: useReasonDetailDescription,\n childInfoList,\n parentInfo,\n projectMst,\n useReason: {...useReason},\n }\n }\n }, [projectMst])\n\n const [reservationResultCode, setReservationResultCode] = useState()\n\n // 初期表示\n useEffect(() => {\n const fetchData = async () => {\n addOperationLog({ operationId: OperationId.OP_00000001 });\n \n if (!reserveEntry || !reserveEntry.facility || !reserveEntry.usageDatetimes) {\n return;\n }\n \n const { facility, usageDatetimes } = reserveEntry;\n const facilityId = facility.facilityId;\n const toDates = usageDatetimes.map((usageDatetime) => usageDatetime.usageDate);\n \n try {\n const projectMstData = await getProjectMstDataToRefer(facilityId, toDates);\n setProjectMst(projectMstData);\n } catch (error) {\n console.error('Error fetching project master data:', error);\n }\n };\n \n fetchData(); // 非同期関数を呼び出し\n \n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reserveEntry]); \n\n\n // 上記の内容で申し込み\n const decide = useCallback(() => {\n addOperationLog({ operationId: OperationId.OP_00000026 })\n const operationLogDatetime = castNonNullable(getLatestAddOperationDatetime());\n \n if (reserveEntry == null) {\n // 前画面情報無しの場合はエラーなので何もしない\n return\n }\n \n dispatch(\n showLoading({\n process: errorHandler(async () => {\n if (reserveEntry.reservationNo == null) {\n // 予約新規登録時\n // childInfoList の長さが 0 のときには何もせずに処理を終える\n // ※アプリケーションの仕様上この画面に到達するときには childInfoList の長さは 1 以上のはず\n if (reserveEntry.childInfoList.length > 0) {\n let clearFacilityReserveFlg: boolean = false\n \n const response = await postReservation(reserveEntry, operationLogDatetime)\n if (response.resultCode) {\n // 登録失敗時\n setReservationResultCode(response.resultCode)\n } else {\n // 登録成功時\n const displayMode = getDisplayMode(reserveEntry)\n history.push(\n facilityReservationCompletionUrl.url(reserveEntry.facility.facilityId, reserveEntry.childInfoList[0].childId, displayMode)\n )\n clearFacilityReserveFlg = true\n }\n\n if (clearFacilityReserveFlg) dispatch(clearFacilityReserve())\n }\n } else {\n // 予約更新時\n if (updateDatetime) {\n const response = await putReservation(reserveEntry, updateDatetime, operationLogDatetime)\n if (response.resultCode) {\n // 登録失敗時\n setReservationResultCode(response.resultCode)\n } else {\n // 登録成功時\n const displayMode = getDisplayMode(reserveEntry)\n history.push(\n facilityReservationCompletionUrl.url(reserveEntry.facility.facilityId, reserveEntry.childInfoList[0].childId, displayMode)\n )\n dispatch(clearFacilityReserve())\n }\n }\n }\n }, reserveEntry),\n isHiddenMain: false,\n })\n )\n }, [reserveEntry, updateDatetime, addOperationLog, dispatch, errorHandler, history])\n\n return {\n reserveEntry,\n reservationReference,\n reservationResultCode,\n decide,\n }\n}\n\nconst getRegistDataCommon = (facilityReserveEntry: FacilityReserveEntry) => {\n const commonInput = castNonNullable(facilityReserveEntry.commonInput)\n const goingDatetimes = convertGoingDatetimes(commonInput.goingTimes)\n \n return {\n /* 施設ID */\n facilityId: facilityReserveEntry.facility.facilityId,\n /* キャンセル待ち予約フラグ \n * 複数日時の同時申込ではキャンセル待ちを選択できないため usageDatetimes の最初の要素だけを見れば十分\n */\n cancelWaitFlag: facilityReserveEntry.usageDatetimes[0].status === availabilityStatus.wait ? yesNo.yes : yesNo.no,\n /* 利用理由 */\n useReasonCategory: blankToNull(facilityReserveEntry.useReasonCategory),\n /* 利用詳細事由 */\n useReasonDetailCategory: blankToNull(facilityReserveEntry.useReasonDetailCategory),\n /* 利用詳細事由テキスト入力 */\n useReasonDetailDescription: blankToNull(facilityReserveEntry.useReasonDetailDescription),\n /* 昼食有無 */\n lunchFlag: commonInput.lunchFlag?? yesNo.no,\n /* おやつ有無 */\n snackFlag: commonInput.snackFlag?? yesNo.no,\n /* 見送り時のキャンセル待ち可否 */\n postponeCancelWaitFlag: commonInput.postponeCancelWaitFlag?? yesNo.no,\n /** 登園・降園予定時間 */\n goingDatetimes,\n /** 領収書兼提供証明書発行希望 */\n preferenceProvisionCertificateFlag: commonInput.preferenceProvisionCertificateFlag?? null,\n /** 利用事由 */\n useReason: commonInput.formUseReason?.select?? null,\n useReasonOther: commonInput.formUseReason?.other?? null,\n /* 備考 */\n citizenNote: blankToNull(commonInput.citizenNote),\n \n uploadDate: Date.now().toString(),\n }\n}\n\nconst getRegistDataCommonForPut = (facilityReserveEntry: FacilityReserveEntry) => {\n const commonData = getRegistDataCommon(facilityReserveEntry)\n const childInfo = convertChildInfoList(facilityReserveEntry.childInfoList[0])\n \n return {\n ...commonData, \n ... childInfo\n }\n}\n\nconst getRegistDataCommonForPost = (facilityReserveEntry: FacilityReserveEntry) => {\n const commonData = getRegistDataCommon(facilityReserveEntry)\n const childInfoList = facilityReserveEntry.childInfoList.map((childInfo) => convertChildInfoList(childInfo))\n \n return {\n ... commonData, \n childInfoList,\n /* 在住種別 */\n residenceCategory: castNonNullable(facilityReserveEntry.parentInfo?.residenceCategory),\n }\n}\n\nconst postReservation = async (facilityReserveEntry: FacilityReserveEntry, operationLogDatetime: string) => {\n return executePostReservation(\n {\n ...getRegistDataCommonForPost(facilityReserveEntry),\n usageDatetimes: facilityReserveEntry.usageDatetimes.map((v) => ({\n /* 利用日 */\n usageDate: toApiYmd(v.usageDate),\n /* 利用開始日時 */\n useFromDatetime: toApiYmdHms(v.useFromDatetime),\n /* 利用終了日時 */\n useToDatetime: toApiYmdHms(v.useToDatetime),\n /** fileアップロード用日*/\n usageDateForUpload: v.useFromDatetime\n })),\n operationLogDatetime,\n }\n )\n}\n\nconst putReservation = async (\n facilityReserveEntry: FacilityReserveEntry,\n updateDatetime: string,\n operationLogDatetime: string,\n) => {\n return executePutReservation(\n castNonNullable(facilityReserveEntry.reservationNo),\n undefinedPropsToNull({\n ...getRegistDataCommonForPut(facilityReserveEntry),\n /* 利用日 */\n usageDate: toApiYmd(facilityReserveEntry.usageDatetimes[0].usageDate),\n /* 利用開始日時 */\n useFromDatetime: toApiYmdHms(facilityReserveEntry.usageDatetimes[0].useFromDatetime),\n /* 利用終了日時 */\n useToDatetime: toApiYmdHms(facilityReserveEntry.usageDatetimes[0].useToDatetime),\n /* 更新日時 */\n updateDatetime: updateDatetime,\n /** fileアップロード用日*/\n usageDateForUpload: facilityReserveEntry.usageDatetimes[0].useFromDatetime,\n operationLogDatetime,\n })\n )\n}\n\nconst getDisplayMode = (reserveEntry: FacilityReserveEntry) => {\n let mode\n\n const facility = castNonNullable(reserveEntry.facility)\n\n // 新規登録\n if (reserveEntry.reservationNo == null) {\n // キャンセル待ち予約\n if (reserveEntry.usageDatetimes[0].status === availabilityStatus.wait) {\n if (facility.immediatelyReservationFlag === yesNo.yes) {\n // 即時予約\n mode = dispMode.insertRealtimeCanselWait\n // 承認予約\n } else {\n mode = dispMode.insertApprovalCanselWait\n }\n } else {\n // 即時予約\n if (facility.immediatelyReservationFlag === yesNo.yes) {\n mode = dispMode.insertRealtime\n // 承認予約\n } else {\n mode = dispMode.insertApproval\n }\n }\n // 変更\n } else {\n // キャンセル待ち予約\n if (reserveEntry.usageDatetimes[0].status === availabilityStatus.wait) {\n if (facility.immediatelyReservationFlag === yesNo.yes) {\n mode = dispMode.updateRealtimeCanselWait\n } else {\n mode = dispMode.updateApprovalCanselWait\n }\n } else {\n // 即時予約\n if (facility.immediatelyReservationFlag === yesNo.yes) {\n mode = dispMode.updateRealtime\n // 承認予約\n } else {\n mode = dispMode.updateApproval\n }\n }\n }\n\n return mode\n}\n\nconst convertChildInfoList = (childReservationInfo: ChildReservationInfoType) => {\n const bodyTemperature = childReservationInfo.temperature? combineDecimalParts(childReservationInfo.temperature): null\n const height = childReservationInfo.height? combineDecimalParts(childReservationInfo.height): null\n const weight = childReservationInfo.weight? combineDecimalParts(childReservationInfo.weight): null\n \n return {\n /* お子様ID */\n childId: childReservationInfo.childId,\n /* お子様生年月日 = putの場合は削除*/\n childBirth: childReservationInfo.childInfo?.birthday ?? '', // このページでは childInfo が undefined であることはありえない\n /** 医師連絡票 */\n ... (\n childReservationInfo.medicalDoc\n ? {\n hasMedicalDocSubmitted: childReservationInfo.medicalDoc.hasSubmitted?? Flag.OFF, \n medicalDocs: childReservationInfo.medicalDoc.docs?? [],\n }\n : {\n hasMedicalDocSubmitted: null,\n medicalDocs: []\n }\n ),\n /** 病院情報 */\n ... (\n childReservationInfo.hospitalInfo\n ? {\n hospitalVisitDatetime: childReservationInfo.hospitalInfo.date ? `${childReservationInfo.hospitalInfo.date} ${childReservationInfo.hospitalInfo.time}` : null, \n hospitalName : childReservationInfo.hospitalInfo.hospitalName ?? null, \n }\n : {\n hospitalVisitDatetime: null, \n hospitalName : null, \n }\n ),\n /** 症状 */\n ... (\n childReservationInfo.symptom\n ? {\n symptoms: (childReservationInfo.symptom.symptoms.length > 0 ? Object.values(childReservationInfo.symptom.symptoms)\n .filter(s => s !== \"\")\n .join(\",\") \n : null),\n symptomOther: (childReservationInfo.symptom.other !== '' ? childReservationInfo.symptom.other : null)\n } \n : {\n symptoms: null,\n symptomOther: null\n }\n ),\n /** 病名 */\n ... (\n childReservationInfo.diagonosis\n ? {\n diagonosis: (childReservationInfo.diagonosis.first.select !== '' ? childReservationInfo.diagonosis.first.select : null),\n diagonosisOther: (childReservationInfo.diagonosis.first.other !== '' ? childReservationInfo.diagonosis.first.other : null),\n diagonosis2: (childReservationInfo.diagonosis.second.select !== '' ? childReservationInfo.diagonosis.second.select : null),\n diagonosisOther2: (childReservationInfo.diagonosis.second.other !== '' ? childReservationInfo.diagonosis.second.other : null),\n }\n : {\n diagonosis: null,\n diagonosisOther: null,\n diagonosis2: null,\n diagonosisOther2: null\n }\n ),\n /** 流行り病 */\n ... (\n childReservationInfo.epidemic\n ? {\n epidemic: childReservationInfo.epidemic.select,\n epidemicOther: childReservationInfo.epidemic.other\n }\n : {\n epidemic: null,\n epidemicOther: null\n }\n ),\n /** 服用薬 */\n ... (\n childReservationInfo.medicine\n ? {\n rxMedicineFlag: childReservationInfo.medicine.rx,\n otcMedicineFlag: childReservationInfo.medicine.otc\n }\n : {\n rxMedicineFlag: null,\n otcMedicineFlag: null\n }\n ),\n /** 体温 */\n bodyTemperature: (bodyTemperature? bodyTemperature.toString(): null),\n /** 熱性けいれん */\n febrileSeizuresFlag: childReservationInfo.febrileSeizures?? null,\n /** 容態変化時の対応 */\n ... (\n childReservationInfo.emergencyAction\n ? {\n emergencyAction: childReservationInfo.emergencyAction.action.select,\n emergencyActionNote: childReservationInfo.emergencyAction.note\n }\n : {\n emergencyAction: null,\n emergencyActionNote: null\n }\n ),\n /** 身長 */\n height: height,\n /** 体重 */\n weight: weight,\n /** 栄養方法 */\n ... (\n childReservationInfo.eatingMethod\n ? {\n eatingMethod: childReservationInfo.eatingMethod.method.select,\n eatingMethodDetail: childReservationInfo.eatingMethod.detail.select,\n milkAmount: combineDecimalParts(childReservationInfo.eatingMethod.milkAmount),\n milkFrequency: childReservationInfo.eatingMethod.milkFrequency \n ? Number(childReservationInfo.eatingMethod.milkFrequency)\n : null\n }\n : {\n eatingMethod: null,\n eatingMethodDetail: null,\n milkAmount: null,\n milkFrequency: null\n }\n ),\n /** 食物アレルギー */\n foodAllergyFlag: childReservationInfo.allergy?.foodFlag?? null,\n /** 食事状況 */\n eatingAbility: childReservationInfo.eatingAbility?.select?? null,\n /** 行動 */\n ... (\n childReservationInfo.actions\n ? {\n actions: childReservationInfo.actions.action.select,\n sleepMethod: childReservationInfo.actions.sleepMethod,\n }\n : {\n actions: null,\n sleepMethod: null\n }\n ),\n /** 排泄 */\n toiletAbility: childReservationInfo.toiletAbility?.select?? null,\n /** 配慮が必要な事項 */\n considerations: childReservationInfo.considerations?? null,\n /** 減免 */\n reductionType: childReservationInfo.reductionType?.reduction.select?? null,\n /** 添付ファイル */\n attachedDocs: childReservationInfo.attachedDoc?.docs ?? [],\n /** 施設別予約時項目 */\n facilityInputFields: childReservationInfo.facilityInputFields?? null\n }\n}\n\nconst convertGoingDatetimes = (goingTimes: GoingTimeType[]) => {\n return goingTimes.map((goingTime) => ({\n goingToFacilityDatetime:\n goingTime.goingToFacilityDate && goingTime.goingToFacilityTime\n ? toApiYmdHms(new Date(`${goingTime.goingToFacilityDate} ${goingTime.goingToFacilityTime}`))\n : null,\n goingHomeDatetime:\n goingTime.goingHomeDate && goingTime.goingHomeTime\n ? toApiYmdHms(new Date(`${goingTime.goingHomeDate} ${goingTime.goingHomeTime}`))\n : null,\n }))\n}\n","// 予約機能で共通する利用予約に関する表示部品を定義\r\n// 情報照会、変更内容確認で共有\r\n\r\nimport React, { ReactNode } from 'react'\r\nimport { convertFalsyValueToUnfilled } from '../../../../utils/stringUtil'\r\nimport { LabelGItemBase, ValueGItemBase } from '../grids'\r\n\r\n// 項目ラベルのGrid item\r\nexport const LabelGItem = (props: { children?: ReactNode }) => {props.children}\r\n// 項目値のGrid item\r\nexport const ValueGItem = (props: { children: ReactNode, hideColon?: boolean }) => {props.children}\r\n\r\n// 値が負の場合(undefined, null...)は「未入力」、そうでない場合は値+接尾辞\r\ntype convertFalsyValueToUnfilledValueGItemProps = {\r\n value?: string | null\r\n suffix?: string\r\n}\r\nexport const ConvertFalsyValueToUnfilledValueGItem: React.FC = (props) => {\r\n const { value, suffix } = props\r\n return (\r\n {convertFalsyValueToUnfilled(value, suffix)}\r\n )\r\n}\r\n","// 予約機能で共通する抽選予約に関する表示部品を定義\r\n// 情報照会、変更内容確認で共有\r\n\r\nimport React, { ReactNode } from 'react'\r\nimport { convertFalsyValueToUnfilled } from '../../../../utils/stringUtil'\r\nimport { LabelGItemBase, ValueGItemBase } from '../grids'\r\n\r\n// 項目ラベルのGrid item\r\nexport const LabelGItem = (props: { children?: ReactNode }) => {props.children}\r\n// 項目値のGrid item\r\nexport const ValueGItem = (props: { children: ReactNode, hideColon?: boolean }) => {props.children}\r\n\r\n// 値が負の場合(undefined, null...)は「未入力」、そうでない場合は値+接尾辞\r\ntype convertFalsyValueToUnfilledValueGItemProps = {\r\n value?: string | null\r\n suffix?: string\r\n}\r\nexport const ConvertFalsyValueToUnfilledValueGItem: React.FC = (props) => {\r\n const { value, suffix } = props\r\n return (\r\n {convertFalsyValueToUnfilled(value, suffix)}\r\n )\r\n}","import React from \"react\"\nimport { yesNo } from '../../../../containers/common/constant/classification'\nimport { getYesNoLabel } from '../../../../containers/common/codeMaster'\nimport { ChildReservationInfoType } from '../../../../containers/common/reservation'\nimport { FieldsType, FieldRule, getByChildFormFieldRule } from '../../../../containers/common/projectMst'\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\nimport { LabelGItem, ConvertFalsyValueToUnfilledValueGItem } from './reservationDetailParts'\nimport { translate } from '../../../../i18n'\nimport { formatYmdWeek } from \"../../../../utils/dateUtil\"\nimport { ValueGItem } from \"../lotteryReservationDetail/lotteryReservationDetailParts\"\nimport { Stack } from \"@mui/material\"\n\ntype ReservationDetailFieldType = {\n component: React.FC<{ childInfo: ChildReservationInfoType }>\n}\ntype SortedReservationDetailFieldType = ReservationDetailFieldType & {\n rule: FieldRule\n}\n\nexport type ByChildDetailContentProps = {\n childInfo: ChildReservationInfoType\n projectMst: GetProjectDetailDto\n}\n\nconst ByChildDetailContent: React.FC = (props: ByChildDetailContentProps) => {\n // eslint-disable-next-line react/prop-types\n const { childInfo, projectMst } = props;\n\n const reservationDetail: FieldsType = {\n diagonosis: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 病名1 */}\n {translate('system.reservationDetailGItems.label.diagonosis')}\n \n {/* 病名2 */}\n {translate('system.reservationDetailGItems.label.diagonosis2')}\n \n \n )\n },\n symptom: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 症状 */}\n {translate('system.reservationDetailGItems.label.symptoms')}\n \n \n )\n },\n epidemic: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 流行り病 */}\n {translate('system.reservationDetailGItems.label.epidemic')}\n \n \n )\n },\n medicine: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 処方薬 */}\n {translate('system.reservationDetailGItems.label.medicine.rx')}\n \n {/* 市販薬 */}\n {translate('system.reservationDetailGItems.label.medicine.otc')}\n \n \n )\n },\n bodyTemp: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 体温 */}\n {translate('system.reservationDetailGItems.label.bodyTemperature')}\n \n \n )\n },\n febrileSeizures: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 熱性けいれん */}\n {translate('system.reservationDetailGItems.label.febrileSeizures')}\n \n \n )\n },\n medicalDoc: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 医師連絡票提出状況 */}\n {translate('system.reservationDetailGItems.label.medicalDoc')}\n \n {childInfo.hospitalInfo?.date && (\n <>\n {/* 病院名 */}\n {translate(\"system.reservationDetailGItems.label.hospital.name\")}\n \n {/* 来院日時 */}\n {translate(\"system.reservationDetailGItems.label.hospital.datetime\")}\n \n \n
{formatYmdWeek(new Date(childInfo.hospitalInfo?.date))}
\n
{childInfo.hospitalInfo?.time}
\n
\n
\n \n )}\n \n )\n },\n emergency: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 容態変化時の対応 */}\n {translate('system.reservationDetailGItems.label.emergency')}\n \n \n )\n },\n height: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 身長 */}\n {translate('system.reservationDetailGItems.label.height')}\n \n \n )\n },\n weight: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 体重 */}\n {translate('system.reservationDetailGItems.label.weight')}\n \n \n )\n },\n eatingMethod: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 栄養方法 */}\n {translate('system.reservationDetailGItems.label.eatingMethod')}\n \n \n )\n },\n foodAllergy: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 食物アレルギー */}\n {translate('system.reservationDetailGItems.label.foodAllergy')}\n \n \n )\n },\n eatingAbility: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 食事状況 */}\n {translate('system.reservationDetailGItems.label.eatingAbility')}\n \n \n )\n },\n action: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 行動 */}\n {translate('system.reservationDetailGItems.label.action')}\n \n \n )\n },\n toiletAbility: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 排便 */}\n {translate('system.reservationDetailGItems.label.toiletAbility')}\n \n \n )\n },\n considerations: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 配慮が必要な事項 */}\n {translate('system.reservationDetailGItems.label.considerations')}\n \n \n )\n },\n reduction: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 減免の種類 */}\n {translate('system.reservationDetailGItems.label.reduction')}\n \n \n )\n },\n attachedDoc: {\n component: ({ childInfo }: { childInfo: ChildReservationInfoType }) => (\n <>\n {/* 添付ファイル */}\n {translate('system.reservationDetailGItems.label.attachedDoc')}\n \n \n )\n },\n }\n const fieldRule = getByChildFormFieldRule(projectMst)\n const sortedDetail: SortedReservationDetailFieldType[] = Object.keys(fieldRule)\n .filter((fieldKey) => fieldRule[fieldKey as keyof FieldsType].show)\n .map((fieldKey) => {\n const field = fieldKey as keyof FieldsType;\n return {\n component: reservationDetail[field].component,\n rule: fieldRule[field]\n }\n })\n .sort((a, b) => (a.rule.order ?? Number.MAX_SAFE_INTEGER) - (b.rule.order ?? Number.MAX_SAFE_INTEGER));\n\n if (childInfo.facilityInputFields) {\n Object.entries(childInfo.facilityInputFields)\n .sort(([_keyA, valueA], [_keyB, valueB]) => {\n return (valueA.order || 0) - (valueB.order || 0);\n })\n .forEach(([_key, value], index) => {\n const isAnswered = value.answer !== '' && value\n ? translate('system.reservationDetailGItems.label.answered')\n : translate('system.reservationDetailGItems.label.unanswered');\n sortedDetail.push({\n component: () => (\n <>\n {/* 施設別予約字項目回答 */}\n {`${translate('system.reservationDetailGItems.label.facilityInputField')}${index + 1}`}\n \n \n ),\n rule: {\n order: 100,\n show: true,\n required: true\n },\n });\n })\n }\n\n return (\n <>\n {sortedDetail.map(({ component: Component }, index) => (\n \n ))}\n \n );\n}\n\nconst isYesNo = (value?: unknown): value is yesNo => {\n return value === yesNo.yes || value === yesNo.no;\n}\n\nexport default ByChildDetailContent;\n","import React from \"react\"\nimport {\n getGenderLabel,\n getYesNoLabel,\n} from '../../../../containers/common/codeMaster'\nimport { ChildReservationInfoType } from '../../../../containers/common/reservation'\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\nimport { formatYmd } from '../../../../utils/dateUtil'\nimport { LabelGItem, ValueGItem } from './reservationDetailParts'\nimport ByChildDetailContent from \"./byChildDetailContent\"\nimport { translate } from '../../../../i18n'\n\nexport type ChildContentProps = {\n childInfo: ChildReservationInfoType,\n projectMst?: GetProjectDetailDto\n}\n\nconst ChildContent: React.FC = (props: ChildContentProps) => {\n const { childInfo, projectMst } = props;\n \n return (\n <>\n {/* お子さま */}\n {translate('system.reservationDetailGItems.label.childName')}\n {childInfo.childInfo?.name}\n {/* お子さまフリガナ */}\n {translate('system.reservationDetailGItems.label.childNameKana')}\n {childInfo.childInfo?.kana}\n {/* お子さま誕生日 */}\n {translate('system.reservationDetailGItems.label.birthday')}\n {childInfo.childInfo?.birthday? formatYmd(new Date(childInfo.childInfo?.birthday)): ''}\n {/* お子さま性別 */}\n {translate('system.reservationDetailGItems.label.gender')}\n {getGenderLabel(childInfo.childInfo?.gender)}\n {/* お子さまアレルギー */}\n {translate('system.reservationDetailGItems.label.allergy')}\n {childInfo.allergy?.flag?getYesNoLabel(childInfo.allergy?.flag): ''} \n {\n projectMst && (\n \n )\n }\n \n )\n}\n\nexport default ChildContent;","import React from 'react'\nimport {\n getDoNotWaitlistLabel,\n getYesNoLabel,\n} from '../../../../containers/common/codeMaster'\nimport { yesNo } from '../../../../containers/common/constant/classification'\nimport { LabelGItem, ValueGItem, ConvertFalsyValueToUnfilledValueGItem } from './reservationDetailParts'\nimport { translate } from '../../../../i18n'\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\nimport { INPUT_FIELD_USAGE } from '../../../../containers/common/constant/projectMst'\n\ntype CommonDetailContentProps = {\n lunchAcceptFlag: string\n lunchFlag: string\n snackAcceptFlag: string\n snackFlag: string\n immediatelyReservationFlag: string\n postponeCancelWaitAcceptFlag: string\n postponeCancelWaitFlag: string\n projectMst: GetProjectDetailDto\n preferenceProvisionCertificateFlag: string\n formUseReasonUsage: string\n formUseReason?: string\n}\n\nconst CommonDetailContent:React.FC = (props: CommonDetailContentProps) => {\n return (\n <>\n {/* 給食 */}\n {props.lunchAcceptFlag === yesNo.yes && (\n <>\n {translate('system.reservationDetailGItems.label.lunch')}\n {getYesNoLabel(props.lunchFlag)}\n \n )}\n {/* おやつ */}\n {props.snackAcceptFlag === yesNo.yes && (\n <>\n {translate('system.reservationDetailGItems.label.snack')}\n {getYesNoLabel(props.snackFlag)}\n \n )}\n {/* キャンセル待ち可否 */}\n {props.immediatelyReservationFlag === yesNo.no && props.postponeCancelWaitAcceptFlag === yesNo.yes && (\n <>\n {translate('system.reservationDetailGItems.label.postponeCancelWait')}\n {getDoNotWaitlistLabel(props.postponeCancelWaitFlag)}\n \n )}\n {/** 領収書兼提供証明書の発行希望 */}\n {props.projectMst.provisionCertificateInput !== INPUT_FIELD_USAGE.NO_USE && (\n <>\n {translate('system.reservationDetailGItems.label.preferenceProvisionCertificate')}\n {getYesNoLabel(props.preferenceProvisionCertificateFlag)}\n \n )}\n {/* 利用事由 */}\n {props.formUseReasonUsage !== INPUT_FIELD_USAGE.NO_USE && (\n <>\n {translate('system.reservationDetailGItems.label.formUseReason')}\n \n \n )}\n \n )\n}\n\nexport default CommonDetailContent","import React from 'react'\nimport { ParentInfoType } from '../../../../containers/common/reservation'\nimport { LabelGItem, ValueGItem } from './reservationDetailParts'\nimport { translate } from '../../../../i18n'\n\nconst ParentContent: React.FC = (props: ParentInfoType) => {\n return (\n <>\n {/* 保護者 */}\n {translate('system.reservationDetailGItems.label.userName')}\n {props.name}\n {/* フリガナ */}\n {translate('system.reservationDetailGItems.label.userNameKana')}\n {props.kana}\n {/* 携帯電話番号 */}\n {translate('system.reservationDetailGItems.label.tel')}\n {props.tel}\n {/* メールアドレス */}\n {translate('system.reservationDetailGItems.label.email')}\n {props.email}\n \n )\n}\n\nexport default ParentContent","import React from 'react'\nimport { Stack } from '@mui/material'\nimport { getReservationStatusLabel } from '../../../../containers/common/codeMaster'\nimport { GOING_DATETIME_DISPLAY_METHODS } from '../../../../containers/common/constant/projectMst'\nimport { purposeOfUse as purposeOfUseValue } from '../../../../containers/common/constant/classification'\nimport { formatHmtoHmOver, formatYmdWeek, formatHmOver } from '../../../../utils/dateUtil'\nimport { LabelGItem, ValueGItem } from './reservationDetailParts'\nimport { ReservationDetailGItemsProps } from \"./reservationDetailGItems\"\nimport ParentContent from \"./parentContent\"\nimport { RowSpacerGItem } from '../grids'\nimport { translate } from '../../../../i18n'\n\nconst BasicDetailContent = (props: ReservationDetailGItemsProps) => {\n const isShownStatusItem = props.displayType === 'delete' || props.displayType === 'reference';\n\n return (\n <>\n {/* 施設名 */}\n {translate('system.reservationDetailGItems.label.facilityName')}\n {props.reservation.facilityName}\n \n {isShownStatusItem && (\n <>\n {/** 利用予定日時 */}\n {translate('system.reservationDetailGItems.label.reservationDatetime')}\n \n \n
{formatYmdWeek(props.reservation.usageDate)}
\n
\n {formatHmtoHmOver(\n { from: props.reservation.useFromDatetime, to: props.reservation.useToDatetime },\n props.reservation.usageDate\n )}\n
\n
\n
\n {\n props.reservation.projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY && (\n <>\n {/** 登園予定時間 */}\n {translate('system.reservationDetailGItems.label.goingDatetime')}\n \n {\n formatHmOver(\n new Date(`${props.reservation.goingTime.goingToFacilityDate} ${props.reservation.goingTime.goingToFacilityTime}`),\n props.reservation.usageDate\n )\n }\n \n {/** 降園予定時間 */}\n {translate('system.reservationDetailGItems.label.goingHomeDatetime')}\n \n {\n formatHmOver(\n new Date(`${props.reservation.goingTime.goingHomeDate} ${props.reservation.goingTime.goingHomeTime}`),\n props.reservation.usageDate\n )\n }\n \n \n \n )\n }\n {/** 予約状態 */}\n {translate('system.reservationDetailGItems.label.status')}\n {getReservationStatusLabel(props.reservation.status)}\n \n )}\n \n \n {/* 利用目的 */}\n {props.reservation.useReasonCategory && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonCategory')}\n \n {\n props.reservation.useReasonCategory === purposeOfUseValue.irregular && props.useReason?.displayNameForCitizenIrregular ||\n props.reservation.useReasonCategory === purposeOfUseValue.emergency && props.useReason?.displayNameForCitizenEmg ||\n props.reservation.useReasonCategory === purposeOfUseValue.refresh && props.useReason?.displayNameForCitizenRefresh\n }\n \n \n )}\n\n {/* 利用目的詳細:以下の三つのコンポーネントのうちいずれかが表示される(もしくは一つも表示されない) */}\n {props.reservation.useReasonDetailCategory && (\n props.reservation.useReasonCategory === purposeOfUseValue.irregular && props.useReason?.detailsIrregular && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\n \n {props.useReason?.detailsIrregular[Number(props.reservation.useReasonDetailCategory) - 1].name}\n \n \n ) || \n props.reservation.useReasonCategory === purposeOfUseValue.emergency && props.useReason?.detailsEmg && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\n \n {props.useReason?.detailsEmg[Number(props.reservation.useReasonDetailCategory) - 1].name}\n \n \n ) || \n props.reservation.useReasonCategory === purposeOfUseValue.refresh && props.useReason?.detailsRefresh && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\n \n {props.useReason?.detailsRefresh[Number(props.reservation.useReasonDetailCategory) - 1].name}\n \n \n )\n )}\n {/* 詳細事由の入力欄の内容を表示 */}\n {props.reservation.useReasonDetailDescription && (\n <>\n \n \n {props.reservation.useReasonDetailDescription}\n \n \n )}\n {\n props.reservation.useReasonDetailCategory && \n }\n \n \n \n )\n}\n\nexport default BasicDetailContent","// 予約機能で共通する利用予約に関する表示部分を定義\r\n// 情報照会、変更内容確認で共有\r\n\r\nimport React from 'react'\r\nimport { Stack } from '@mui/material'\r\nimport { ElapsedMillisecond, formatYmdWeek, toApiHms } from '../../../../utils/dateUtil'\r\nimport { RowSpacerGItem } from '../grids'\r\nimport { LabelGItem, ValueGItem } from './reservationDetailParts'\r\nimport { GetUseReasonDto } from '../../../../dataAccess/webApi/dto/useReasonDto'\r\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\r\nimport { ChildReservationInfoType, ParentInfoType, GoingTimeType, SelectAndOtherType } from '../../../../containers/common/reservation'\r\nimport ChildContent from \"./childContent\"\r\nimport CommonDetailContent from \"./commonDetailContent\"\r\nimport BasicDetailContent from \"./basicDetailContent\"\r\nimport { translate } from '../../../../i18n'\r\nimport { Flag } from '../../../../containers/common/constant/classification'\r\n\r\ninterface Reservation {\r\n facilityName: string\r\n \r\n useReasonCategory: string | null\r\n useReasonDetailCategory?: string | null\r\n useReasonDetailDescription?: string | null\r\n childInfoList: ChildReservationInfoType[]\r\n parentInfo: ParentInfoType\r\n // 事業マスタ\r\n projectMst: GetProjectDetailDto\r\n}\r\n\r\nexport interface ReservationConfirmation extends Reservation {\r\n lunchFlag: string\r\n snackFlag: string\r\n postponeCancelWaitFlag: string\r\n preferenceProvisionCertificateFlag?: string\r\n formUseReason?: SelectAndOtherType \r\n citizenNote: string\r\n\r\n lunchAcceptFlag: string\r\n snackAcceptFlag: string\r\n postponeCancelWaitAcceptFlag: string\r\n immediatelyReservationFlag: string\r\n}\r\n\r\nexport interface ReservationDelete extends Required {\r\n goingTime: GoingTimeType\r\n usageDate: Date | ElapsedMillisecond\r\n useFromDatetime: Date | ElapsedMillisecond\r\n useToDatetime: Date | ElapsedMillisecond\r\n status: string\r\n}\r\n\r\nexport interface ReservationReference extends ReservationDelete {\r\n reservationDatetime: Date\r\n reservationChangeDatetime?: Date\r\n}\r\n\r\n/** 入力時に必要なプロパティ */\r\ninterface Input {\r\n reservation: Reservation\r\n useReason: GetUseReasonDto\r\n displayType?: never\r\n}\r\n \r\n/** 入力内容確認時に必要なプロパティ */\r\ninterface Confirmation {\r\n reservation: ReservationConfirmation\r\n useReason: GetUseReasonDto\r\n displayType: 'confirmation'\r\n}\r\n\r\n/** 利用予約情報削除時の詳細照会に必要なプロパティ */\r\ninterface Delete {\r\n reservation: ReservationDelete\r\n useReason: GetUseReasonDto\r\n displayType: 'delete'\r\n}\r\n\r\n/** 詳細照会時に必要なプロパティ */\r\ninterface Reference {\r\n reservation: ReservationReference\r\n useReason: GetUseReasonDto\r\n displayType: 'reference'\r\n}\r\n\r\nexport type ReservationDetailGItemsProps = Input | Confirmation | Delete | Reference;\r\n\r\n/** 予約機能の利用予約情報コンテンツ部分 */\r\nconst ReservationDetailGItems = (props: ReservationDetailGItemsProps) => {\r\n const isShownReservationItem =\r\n props.displayType === 'confirmation' || props.displayType === 'delete' || props.displayType === 'reference'\r\n const isShownReservationDatetimeItem = props.displayType === 'reference'\r\n \r\n const childInfoList = props.reservation.childInfoList;\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n {\r\n childInfoList.map((child, index) => (\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n \r\n { isShownReservationItem && (\r\n <>\r\n \r\n {/* 備考 */}\r\n {translate('system.reservationDetailGItems.label.note')}\r\n {props.reservation.citizenNote} \r\n \r\n )}\r\n \r\n { isShownReservationDatetimeItem && (\r\n <>\r\n \r\n {translate('system.reservationDetailGItems.label.reservationReceptionDatetime')}\r\n \r\n \r\n
{formatYmdWeek(props.reservation.reservationDatetime)}
\r\n
{toApiHms(props.reservation.reservationDatetime)}
\r\n
\r\n
\r\n { props.reservation.reservationChangeDatetime != null && (\r\n <>\r\n {translate('system.reservationDetailGItems.label.reservationChangeDatetime')}\r\n \r\n \r\n
{formatYmdWeek(props.reservation.reservationChangeDatetime)}
\r\n
{toApiHms(props.reservation.reservationChangeDatetime)}
\r\n
\r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default ReservationDetailGItems\r\n","import { Stack } from '@mui/material'\nimport { useAction } from '../../containers/facilityReservationConfirmation/facilityReservationConfirmationService'\nimport { translate } from '../../i18n'\nimport { formatHmtoHmOver, formatYmdWeek, formatHmOver } from '../../utils/dateUtil'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { Card } from '../components/common/card'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\nimport ReservationDetailGItems from '../components/common/reservationDetail/reservationDetailGItems'\nimport { StepBar } from '../components/common/stepBar'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { TransitionCheck } from '../components/common/transitionCheck'\nimport { GOING_DATETIME_DISPLAY_METHODS } from '../../containers/common/constant/projectMst'\n\nexport const FacilityReservationConfirmation = () => {\n const { reserveEntry, reservationReference, reservationResultCode, decide } = useAction()\n if (!reserveEntry ) {\n return \n }\n if ( !reservationReference ) {\n return null\n }\n\n return (\n \n \n \n \n \n\n \n
\n \n \n 利用希望日時\n \n {reserveEntry.usageDatetimes.map((usageDatetime, index) => (\n \n \n {/** 利用希望日時 */}\n \n \n \n {formatYmdWeek(usageDatetime.usageDate)}\n \n \n \n \n \n {formatHmtoHmOver(\n {\n from: usageDatetime.useFromDatetime,\n to: usageDatetime.useToDatetime,\n },\n usageDatetime.usageDate\n )}\n \n \n \n \n {\n reservationReference.projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY && (\n <>\n {/** 登園予定時間 */}\n \n \n \n {translate('facilityReservationConfirmation.label.goingDatetime')}:\n \n \n \n \n {formatHmOver(\n new Date(`${reserveEntry.commonInput?.goingTimes[index].goingToFacilityDate} ${reserveEntry.commonInput?.goingTimes[index].goingToFacilityTime}`),\n usageDatetime.usageDate\n )}\n \n \n \n {/** 登園予定時間 */} \n \n \n \n {translate('facilityReservationConfirmation.label.goingHomeDatetime')}:\n \n \n \n \n {formatHmOver(\n new Date(`${reserveEntry.commonInput?.goingTimes[index].goingHomeDate} ${reserveEntry.commonInput?.goingTimes[index].goingHomeTime}`),\n usageDatetime.usageDate\n )}\n \n \n \n \n )\n }\n\n \n \n ))}\n \n
\n \n \n \n \n \n\n {!!reservationResultCode && (\n \n )}\n
\n
\n \n
\n\n \n \n 上記の内容で申し込み\n \n \n \n
\n )\n}\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { fromApiHms, toApiYmd } from '../../utils/dateUtil'\r\nimport { dateToNumber, nullPropsToUndefined, datePropsToNumber } from '../../utils/objectUtil'\r\nimport { facilityReservationDeleteConfirmationUrl, reservationStatusListUrl } from '../common/constant/appUrl'\r\nimport { reservationStatus, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { getUseReason } from '../common/useReason'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { getReservation } from '../common/reservation'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n selectFacilityReserveDeleteEntry,\r\n setFacilityReserveDeleteEntry,\r\n setFacilityReserveDeleteUpdateDatetime,\r\n} from '../common/store/slices/facilityReserveDelete'\r\nimport { ReservationDelete } from '../../views/components/common/reservationDetail/reservationDetailGItems'\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { setStringifyNamesChildInfoList, getReservationDecodeMstValue, ReservationSettingDecodeMst } from '../common/reservation'\r\nimport { getProjectMstDataToRefer } from '../common/projectMst'\r\nimport { MEDICAL_DOC_USAGE } from '../common/constant/projectMst'\r\n\r\ninterface UrlParams {\r\n reservationNo: string\r\n}\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n}\r\n\r\ninterface Inputs {\r\n cancelReson: string\r\n}\r\n\r\ntype ReservationDetail = ReservationDelete & {\r\n useReason: GetUseReasonDto\r\n reservationNo: string,\r\n facilityId: string,\r\n cancelLimit?: number,\r\n cancelLimitTime?: number,\r\n cancelNote?: string,\r\n cancelLimitHolidayOption?: string,\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { reservationNo } = useParams()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const locationState = history.location.state\r\n\r\n const deleteEntry = useSelector(selectFacilityReserveDeleteEntry)\r\n\r\n const formMethods = useForm({\r\n ...(locationState?.isKeep && {\r\n defaultValues: {\r\n cancelReson: deleteEntry?.cancelReason,\r\n },\r\n }),\r\n })\r\n const [reservationDetail, setReservationDetail] = useState()\r\n\r\n useEffect(() => {\r\n let isMounted = true;\r\n if ( !reservationDetail ) {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const decodeMstValue = await getReservationDecodeMstValue();\r\n const { updateDatetime, ...detail } = await getReservationDetailWithRequirementSetting(reservationNo, decodeMstValue)\r\n \r\n const deletingReservationData = {\r\n ...detail,\r\n childInfo: setStringifyNamesChildInfoList(detail.childInfoList, decodeMstValue)[0]\r\n }\r\n \r\n if (isMounted) {\r\n dispatch(setFacilityReserveDeleteUpdateDatetime(updateDatetime))\r\n if (detail.status === reservationStatus.wait) {\r\n // キャンセル待ちの場合、キャンセル理由の入力は不要なので確認画面まで即遷移\r\n dispatch(\r\n setFacilityReserveDeleteEntry(deletingReservationData)\r\n )\r\n \r\n history.replace(facilityReservationDeleteConfirmationUrl.url())\r\n } else {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n \r\n accessData: [\r\n ...detail.childInfoList.map((child) => ({\r\n userIdRegFlag: yesNo.yes,\r\n childId: child.childId,\r\n usageDate: toApiYmd(detail.usageDate),\r\n reservationNo\r\n }))\r\n ],\r\n })\r\n deletingReservationData.projectMst.medicalDocUsage = deletingReservationData.projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY && detail.detailSetting[0].medicalDoc !== null ? detail.detailSetting[0].medicalDoc : deletingReservationData.projectMst.medicalDocUsage\r\n setReservationDetail({\r\n ... deletingReservationData,\r\n childInfoList: [deletingReservationData.childInfo]\r\n })\r\n }\r\n }\r\n })\r\n )\r\n )\r\n }\r\n return () => {\r\n isMounted = false; \r\n };\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [deleteEntry])\r\n\r\n const goList = useCallback(() => history.push(reservationStatusListUrl.url()), [])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000036 })\r\n if (reservationDetail) {\r\n dispatch(\r\n setFacilityReserveDeleteEntry({\r\n ...datePropsToNumber(reservationDetail),\r\n preferenceProvisionCertificateFlag: reservationDetail.preferenceProvisionCertificateFlag,\r\n formUseReason: reservationDetail.formUseReason,\r\n useReasonCategory: reservationDetail.useReasonCategory?? null,\r\n cancelReason: data.cancelReson,\r\n childInfo: reservationDetail.childInfoList[0]\r\n })\r\n )\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { isKeep: true } })\r\n history.push(facilityReservationDeleteConfirmationUrl.url())\r\n }\r\n },\r\n [reservationDetail, addOperationLog]\r\n )\r\n\r\n return {\r\n formMethods,\r\n reservationDetail,\r\n onSubmit,\r\n goList,\r\n deleteEntry\r\n }\r\n}\r\n\r\nconst getReservationDetailWithRequirementSetting = async (reservationNo: string, decodeMstValue: ReservationSettingDecodeMst) => {\r\n const [\r\n { \r\n reservationDatetime, \r\n reservationChangeDatetime, \r\n ... reservation\r\n }, useReason] = await Promise.all([\r\n getReservation(reservationNo, decodeMstValue),\r\n getUseReason(),\r\n ])\r\n \r\n const facility = await getFacility(reservation.facilityId, reservation.usageDate)\r\n const projectMst = await getProjectMstDataToRefer(reservation.facilityId, [reservation.usageDate], facility.projectId)\r\n const detailSetting = (facility.detailSetting.length === 1 && facility.detailSetting[0].useReasonCode === '0') ? facility.detailSetting[0] : facility.detailSetting.find((v) => v.useReasonCode === reservation.useReasonCategory)\r\n \r\n return {\r\n ...reservation,\r\n immediatelyReservationFlag: facility.immediatelyReservationFlag,\r\n lunchAcceptFlag: facility.lunchAcceptFlag,\r\n snackAcceptFlag: facility.snackAcceptFlag,\r\n postponeCancelWaitAcceptFlag: facility.postponeCancelWaitAcceptFlag,\r\n useReason,\r\n ... nullPropsToUndefined({\r\n cancelLimit: detailSetting?.cancelLimit,\r\n cancelLimitTime: fromApiHms(detailSetting?.cancelLimitTime)?.getTime(),\r\n cancelNote: detailSetting?.cancelNote,\r\n cancelLimitHolidayOption: detailSetting?.cancelLimitHolidayOption, \r\n }),\r\n reservationDatetime: dateToNumber(reservationDatetime),\r\n reservationChangeDatetime: dateToNumber(reservationChangeDatetime),\r\n projectMst,\r\n detailSetting: facility.detailSetting\r\n }\r\n}\r\n","import { styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface AlertCardProps {\r\n children: ReactNode\r\n className?: string\r\n}\r\n\r\nconst Root = styled('div')(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n borderRadius: 4,\r\n color: theme.palette.error.main,\r\n backgroundColor: theme.palette.errorPale.main,\r\n width: '100%',\r\n padding: '20px',\r\n}))\r\n\r\n/** 注意喚起用カードコントロール */\r\nexport const AlertCard = (props: AlertCardProps) => {\r\n return {props.children}\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material'\r\nimport {\r\n getCancelLimitHolidayOptionLabel,\r\n getCancelReasons,\r\n getFacilityReservationDeleteSteps,\r\n} from '../../containers/common/codeMaster'\r\nimport { facilityReservationDeleteStep } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/facilityReservationDelete/facilityReservationDeleteService'\r\nimport { translate } from '../../i18n'\r\nimport { formatCancelLimit } from '../../utils/itemFormatUtil'\r\nimport { AlertCard } from '../components/common/alertCard'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BreakpointSwitch } from '../components/common/breakpointSwitch'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedL } from '../components/common/buttons/buttonOutlinedL'\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\r\nimport { GContainer, GItem, MiddleGItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { Select } from '../components/common/inputs/select'\r\nimport ReservationDetailGItems from '../components/common/reservationDetail/reservationDetailGItems'\r\nimport { StepBar } from '../components/common/stepBar'\r\n\r\nconst AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const FacilityReservationDelete = () => {\r\n const { formMethods, reservationDetail, onSubmit, goList } = useAction()\r\n\r\n if ( reservationDetail===undefined ) {\r\n return null\r\n }\r\n const { cancelLimit, cancelLimitTime, cancelNote, cancelLimitHolidayOption } = reservationDetail\r\n const alertCardConents = []\r\n if (cancelLimit != null && cancelLimitTime != null) {\r\n alertCardConents.push(\r\n
\r\n {translate('facilityReservationDelete.label.cancelLimit')}:{formatCancelLimit(cancelLimit, cancelLimitTime)}\r\n
\r\n )\r\n if (cancelLimitHolidayOption) {\r\n alertCardConents.push(\r\n
※{getCancelLimitHolidayOptionLabel(cancelLimitHolidayOption)}
\r\n )\r\n }\r\n }\r\n if (cancelNote) {\r\n if (alertCardConents.length) {\r\n alertCardConents.push(
 
)\r\n }\r\n alertCardConents.push({cancelNote})\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!alertCardConents.length && {alertCardConents.map((v) => v)}}\r\n
\r\n \r\n \r\n *\r\n {translate('facilityReservationDelete.label.cancelReason')} \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {translate('facilityReservationDelete.button.cancelContentConfirmation')}\r\n \r\n {translate('system.button.stop')}}\r\n md={\r\n \r\n {translate('system.button.stop')}\r\n \r\n }\r\n />\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeDeleteReservation } from '../../dataAccess/webApi/dao/reservationsDao'\r\nimport { translate } from '../../i18n'\r\nimport { toApiYmd } from '../../utils/dateUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { reservationStatusListUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport {\r\n clearFacilityReserveDelete,\r\n selectFacilityReserveDeleteEntry,\r\n selectFacilityReserveDeleteUpdateDatetime,\r\n} from '../common/store/slices/facilityReserveDelete'\r\nimport { ReservationDelete } from '../../views/components/common/reservationDetail/reservationDetailGItems'\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { setStringifyNamesChildInfoList, getReservationDecodeMstValue } from '../common/reservation'\r\n\r\ntype ReservationDetail = ReservationDelete & {\r\n useReason: GetUseReasonDto\r\n reservationNo: string,\r\n facilityId: string,\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const deleteEntry = useSelector(selectFacilityReserveDeleteEntry)\r\n const updateDatetime = useSelector(selectFacilityReserveDeleteUpdateDatetime)\r\n\r\n const [deleteResultCode, setDeleteResultCode] = useState()\r\n const [reservationDetail, setReservationDetail] = useState()\r\n\r\n useEffect(() => {\r\n if ( deleteEntry ) {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{\r\n userIdRegFlag: yesNo.yes,\r\n childId: deleteEntry.childInfo.childId,\r\n usageDate: toApiYmd(deleteEntry.usageDate),\r\n reservationNo: deleteEntry.reservationNo\r\n }],\r\n });\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const decodeMstValue = await getReservationDecodeMstValue();\r\n \r\n setReservationDetail({\r\n ...deleteEntry,\r\n childInfoList: setStringifyNamesChildInfoList([deleteEntry.childInfo], decodeMstValue)\r\n })\r\n })\r\n )\r\n ) \r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [deleteEntry])\r\n\r\n const decide = useCallback(() => {\r\n if (deleteEntry == null || updateDatetime == null) {\r\n // 確定押下時には発生しない。型ガードの為の分岐\r\n return\r\n }\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [{\r\n userIdRegFlag: yesNo.yes,\r\n childId: deleteEntry.childInfo.childId,\r\n usageDate: toApiYmd(deleteEntry.usageDate),\r\n reservationNo: deleteEntry.reservationNo,\r\n }]\r\n })\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const response = await deleteReservation(deleteEntry.reservationNo, updateDatetime, deleteEntry.cancelReason)\r\n if (response.resultCode) {\r\n // キャンセル失敗時\r\n setDeleteResultCode(response.resultCode)\r\n } else {\r\n // キャンセル成功時\r\n dispatch(notifyMessage(translate('facilityReservationDeleteConfirmation.success.completionMessage')))\r\n history.push(reservationStatusListUrl.url())\r\n dispatch(clearFacilityReserveDelete())\r\n }\r\n }, deleteEntry),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog, deleteEntry, updateDatetime, dispatch, errorHandle, history])\r\n\r\n return {\r\n deleteEntry,\r\n reservationDetail,\r\n deleteResultCode,\r\n decide,\r\n }\r\n}\r\n\r\nconst deleteReservation = (reservationNo: string, updateDatetime: string, cancelReason?: string) => {\r\n return executeDeleteReservation(reservationNo, {\r\n cancelReasonCategory: blankToNull(cancelReason),\r\n updateDatetime,\r\n })\r\n}\r\n","import { Box, Stack } from '@mui/material'\r\nimport { getCancelReasonLabel, getFacilityReservationDeleteSteps } from '../../containers/common/codeMaster'\r\nimport { facilityReservationDeleteStep, reservationStatus } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/facilityReservationDeleteConfirmation/facilityReservationDeleteConfirmationService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport ReservationDetailGItems from '../components/common/reservationDetail/reservationDetailGItems'\r\nimport { LabelGItem, ValueGItem } from '../components/common/reservationDetail/reservationDetailParts'\r\nimport { StepBar } from '../components/common/stepBar'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\n\r\nexport const FacilityReservationDeleteConfirmation = () => {\r\n const { deleteEntry, reservationDetail, deleteResultCode, decide } = useAction()\r\n \r\n if (!deleteEntry ) {\r\n return \r\n }\r\n if ( !reservationDetail ) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {deleteEntry.status !== reservationStatus.wait && (\r\n \r\n )}\r\n\r\n \r\n \r\n {deleteEntry.status !== reservationStatus.wait && (\r\n <>\r\n {translate('facilityReservationDeleteConfirmation.label.cancelReason')}\r\n {getCancelReasonLabel(deleteEntry.cancelReason)}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n {!!deleteResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('facilityReservationDeleteConfirmation.button.decision')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { differenceInMinutes, isSameDay } from 'date-fns'\r\nimport { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { executeGetCouponsIssues, executePostCouponsUsage } from '../../dataAccess/webApi/dao/couponsDao'\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { translate } from '../../i18n'\r\nimport { fromApiHms, getNowTrimedTime, toApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { castNonNullable } from '../../utils/typeUtil'\r\nimport { facilityReservationDeleteUrl, facilityReservationSelectionUpdateUrl, facilityReservationTodayConditionInputUrl } from '../common/constant/appUrl'\r\nimport { reservationStatus, yesNo } from '../common/constant/classification'\r\nimport { couponMinuteStepUnit } from '../common/constant/couponSetting'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { canUseCouponFunctionFromSysCtrl } from '../common/coupon'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { getReservation } from '../common/reservation'\r\nimport { getUseReason } from '../common/useReason'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { ReservationReference } from '../../views/components/common/reservationDetail/reservationDetailGItems'\r\nimport { \r\n setStringifyNamesChildInfoList, \r\n getReservationDecodeMstValue, \r\n ReservationSettingDecodeMst \r\n} from '../common/reservation'\r\nimport { getProjectMstDataToRefer } from '../common/projectMst'\r\nimport { MEDICAL_DOC_USAGE } from '../common/constant/projectMst'\r\n\r\ninterface UrlParams {\r\n reservationNo: string\r\n}\r\n\r\ntype ReservationDetail = ReservationReference & {\r\n cancelLimit?: number,\r\n cancelLimitTime?: number,\r\n cancelNote?: string,\r\n cancelLimitHolidayOption?: string,\r\n lunchAcceptFlag: string,\r\n snackAcceptFlag: string,\r\n postponeCancelWaitAcceptFlag: string,\r\n immediatelyReservationFlag: string,\r\n couponUsageMinute?: number,\r\n couponUsageInputLimitMinute?: number,\r\n isTodayConditionInput: string,\r\n todayConditionInputName?: string | null,\r\n todayConditionInputEndTime?: string | null,\r\n canUpdate: boolean,\r\n canCancel: boolean,\r\n useReason: GetUseReasonDto,\r\n reservationNo: string,\r\n facilityId: string,\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { reservationNo } = useParams()\r\n const { addOperationLog, attachAccessData } = useOperationLog()\r\n\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const [reservationDetail, setReservationDetail] = useState()\r\n\r\n const [couponTotalBalanceMinute, setCouponTotalBalanceMinute] = useState()\r\n const [isOpenCouponUsageDialog, setIsOpenCouponUsageDialog] = useState(false)\r\n\r\n const reservationUsageMinute = useMemo(() => {\r\n if (reservationDetail) {\r\n const minute = differenceInMinutes(reservationDetail.useToDatetime, reservationDetail.useFromDatetime)\r\n if (minute % couponMinuteStepUnit) {\r\n // 入力単位以外の時は繰り上げ\r\n const unitCount = Math.floor(minute / couponMinuteStepUnit)\r\n return (unitCount + 1) * couponMinuteStepUnit\r\n } else {\r\n return minute\r\n }\r\n }\r\n }, [reservationDetail])\r\n\r\n const nowYmd = getNowTrimedTime()\r\n const isCanUseCouponSysCtrl = canUseCouponFunctionFromSysCtrl(sysCtrl, nowYmd)\r\n\r\n /** クーポン利用が可能か */\r\n const isCanUseCoupon =\r\n // クーポン機能有効\r\n isCanUseCouponSysCtrl &&\r\n reservationDetail != null &&\r\n // クーポン利用可能な事業(事業マスタのクーポン利用入力上限時間(分)が0より大きい)\r\n reservationDetail.couponUsageInputLimitMinute != null &&\r\n reservationDetail.couponUsageInputLimitMinute > 0 &&\r\n // クーポン未利用\r\n reservationDetail.couponUsageMinute == null &&\r\n // 確定済み\r\n reservationDetail.status === reservationStatus.fixed &&\r\n // クーポン残高有\r\n !!couponTotalBalanceMinute &&\r\n // 利用日当日\r\n isSameDay(reservationDetail.usageDate, nowYmd)\r\n\r\n /** クーポン利用済 */\r\n const isUsedCoupon = reservationDetail?.couponUsageMinute != null\r\n\r\n const initialize = useCallback(\r\n async (isInitDisplay?: boolean) => {\r\n // デコードマスタ取得\r\n const decodeMstValue = await getReservationDecodeMstValue()\r\n \r\n const result = await getReservationDetailWithRequirementSetting(reservationNo, decodeMstValue)\r\n \r\n const deletingReservationData = {\r\n ...result,\r\n childInfoList: setStringifyNamesChildInfoList(result.childInfoList, decodeMstValue),\r\n }\r\n \r\n if (isInitDisplay) {\r\n attachAccessData({\r\n accessData: [\r\n ... deletingReservationData.childInfoList.map((child) => ({\r\n userIdRegFlag: yesNo.yes, \r\n childId: child.childId,\r\n usageDate: toApiYmd(result.usageDate), \r\n reservationNo\r\n }))\r\n ],\r\n })\r\n }\r\n\r\n if (isCanUseCouponSysCtrl) {\r\n const couponTotalBalanceMinute = await getCouponTotalBalanceMinute(new Date(result.usageDate))\r\n setCouponTotalBalanceMinute(couponTotalBalanceMinute)\r\n }\r\n \r\n deletingReservationData.projectMst.medicalDocUsage =\r\n deletingReservationData.projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY \r\n ? deletingReservationData.medicalDoc\r\n : deletingReservationData.projectMst.medicalDocUsage;\r\n setReservationDetail(deletingReservationData)\r\n },\r\n [reservationNo, isCanUseCouponSysCtrl, attachAccessData]\r\n )\r\n\r\n const openCouponUsageDialog = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000033 })\r\n\r\n setIsOpenCouponUsageDialog(true)\r\n }, [addOperationLog])\r\n\r\n const onCloseCouponUsageDialog = useCallback(\r\n async (isDecision?: boolean) => {\r\n setIsOpenCouponUsageDialog(false)\r\n if (isDecision) {\r\n // 確定で閉じたとき再読み込み\r\n await initialize()\r\n }\r\n },\r\n [initialize]\r\n )\r\n\r\n const decisionCouponUsage = useCallback(\r\n async (usageMinute: number) => {\r\n const rsvDetail = castNonNullable(reservationDetail)\r\n addOperationLog({\r\n operationId: OperationId.OP_00000034,\r\n accessData: [\r\n ...rsvDetail.childInfoList.map((childInfo) => ({\r\n userIdRegFlag: yesNo.yes,\r\n childId: childInfo.childId,\r\n usageDate: toApiYmd(rsvDetail.usageDate),\r\n reservationNo: rsvDetail.reservationNo,\r\n }))\r\n ],\r\n })\r\n\r\n const res = await postCouponUsage(reservationNo, usageMinute)\r\n if (res.resultCode) {\r\n return { errorMessage: translate(`facilityReservationDetail.error.couponUsageResultCode${res.resultCode}`) }\r\n }\r\n },\r\n [reservationNo, addOperationLog, reservationDetail]\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(showLoading(errorHandle(() => initialize(true))))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const goCancel = useCallback(\r\n (status: string) => {\r\n if (status === reservationStatus.wait) {\r\n addOperationLog({ operationId: OperationId.OP_00000032 })\r\n } else {\r\n addOperationLog({ operationId: OperationId.OP_00000031 })\r\n }\r\n\r\n history.push(facilityReservationDeleteUrl.url(reservationNo))\r\n },\r\n [history, reservationNo, addOperationLog]\r\n )\r\n\r\n const goChange = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000035 })\r\n\r\n history.push(facilityReservationSelectionUpdateUrl.url(reservationNo))\r\n }, [history, reservationNo, addOperationLog])\r\n\r\n const goTodayConditionInput = useCallback(() => {\r\n //オペレーションIDは要検討\r\n // addOperationLog({ operationId: OperationId.OP_00000035 })\r\n\r\n history.push(facilityReservationTodayConditionInputUrl.url(reservationNo))\r\n }, [history, reservationNo, addOperationLog])\r\n\r\n return {\r\n reservationDetail,\r\n reservationUsageMinute,\r\n isCanUseCoupon,\r\n isUsedCoupon,\r\n goCancel,\r\n goChange,\r\n goTodayConditionInput,\r\n couponTotalBalanceMinute,\r\n isOpenCouponUsageDialog,\r\n openCouponUsageDialog,\r\n onCloseCouponUsageDialog,\r\n decisionCouponUsage,\r\n }\r\n}\r\n\r\nconst getReservationDetailWithRequirementSetting = async (reservationNo: string, decodeMstValue: ReservationSettingDecodeMst) => {\r\n const [\r\n { \r\n reservationDatetime, \r\n reservationChangeDatetime, \r\n couponUsageMinute,\r\n ...reservation\r\n }, useReason] = await Promise.all([\r\n getReservation(reservationNo, decodeMstValue),\r\n getUseReason(),\r\n ])\r\n \r\n const facility = await getFacility(reservation.facilityId, reservation.usageDate)\r\n const projectMst = await getProjectMstDataToRefer(reservation.facilityId, [reservation.usageDate], facility.projectId)\r\n const detailSetting = (facility.detailSetting.length === 1 && facility.detailSetting[0].useReasonCode === '0') ? facility.detailSetting[0] : facility.detailSetting.find((v) => v.useReasonCode === reservation.useReasonCategory)\r\n \r\n return {\r\n ...reservation,\r\n ...nullPropsToUndefined({\r\n couponUsageMinute,\r\n immediatelyReservationFlag: facility.immediatelyReservationFlag,\r\n lunchAcceptFlag: facility.lunchAcceptFlag,\r\n snackAcceptFlag: facility.snackAcceptFlag,\r\n postponeCancelWaitAcceptFlag: facility.postponeCancelWaitAcceptFlag,\r\n useReason, \r\n cancelLimit: detailSetting?.cancelLimit,\r\n cancelLimitTime: fromApiHms(detailSetting?.cancelLimitTime)?.getTime(),\r\n cancelNote: detailSetting?.cancelNote,\r\n cancelLimitHolidayOption: detailSetting?.cancelLimitHolidayOption,\r\n reservationDatetime: reservationDatetime,\r\n reservationChangeDatetime: reservationChangeDatetime,\r\n // クーポン利用入力上限時間\r\n couponUsageInputLimitMinute:facility.couponUsageInputLimitTime && facility.couponUsageInputLimitTime * 60,\r\n projectMst,\r\n medicalDoc: facility.medicalDoc\r\n })\r\n }\r\n}\r\n\r\nconst getCouponTotalBalanceMinute = async (usageDate: Date) => {\r\n const couponsRes = await executeGetCouponsIssues({ targetDate: toApiYmd(usageDate) })\r\n const coupons = couponsRes.result\r\n if (coupons.length) {\r\n // 有効なクーポンが存在する場合\r\n return coupons.reduce((sumVal, coupon) => sumVal + coupon.totalBalanceMinute, 0)\r\n }\r\n}\r\n\r\nconst postCouponUsage = (reservationNo: string, usageMinute: number) => {\r\n return executePostCouponsUsage(reservationNo, { usageMinute })\r\n}\r\n","import { FormHelperText, SelectChangeEvent, styled } from '@mui/material'\r\nimport { Ref, forwardRef, useCallback } from 'react'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { translate } from '../../../../i18n'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\nimport { fromNumber, toInt } from '../../../../utils/stringUtil'\r\nimport { castNonNullable } from '../../../../utils/typeUtil'\r\nimport { GContainer, MiddleGItem } from '../grids'\r\nimport { SizeLabelBase } from '../sizeLabelBase'\r\nimport { SelectItem, SelectNoBind } from './selectNoBind'\r\n\r\nconst BaseSelect = styled(SelectNoBind)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeLL1,\r\n minWidth: '7.4rem',\r\n}))\r\nconst CustomItem = styled(SelectItem)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeLL1,\r\n}))\r\n\r\ntype PartType = 'hour' | 'minute'\r\n\r\nconst splitAmount = (value: number | null) => {\r\n if (value == null) {\r\n return {\r\n hour: null,\r\n minute: null,\r\n }\r\n }\r\n const hour = Math.floor(value / 60)\r\n const minute = value % 60\r\n return {\r\n hour: hour,\r\n minute: minute,\r\n }\r\n}\r\nconst spliceAmount = (currentValue: number | null, newValue: number | null, partType: PartType) => {\r\n let { hour, minute } = splitAmount(currentValue)\r\n if (partType === 'hour') {\r\n hour = newValue\r\n } else {\r\n minute = newValue\r\n }\r\n return hour == null && minute == null ? null : (hour ?? 0) * 60 + (minute ?? 0)\r\n}\r\n\r\ninterface TimeSelectProps {\r\n partType: PartType\r\n /** 最大時間 */\r\n maxHour: number\r\n /** 入力可能な単位(分) */\r\n minuteStepUnit: number\r\n error: boolean\r\n value: number | null\r\n onChange: (...event: any[]) => void\r\n onBlur: (...event: any[]) => void\r\n}\r\n\r\nconst getHourValueLabels = (maxHour: number) => {\r\n return [...Array(maxHour + 1)].map((_, i) => {\r\n const value = fromNumber(i)\r\n return { value, label: value }\r\n })\r\n}\r\nconst getMinuteValueLabels = (minuteStepUnit: number) => {\r\n const unitCount = Math.floor(60 / minuteStepUnit)\r\n const valueLabels = []\r\n for (let i = 0; i < unitCount; i++) {\r\n const minute = i * minuteStepUnit\r\n const value = fromNumber(minute)\r\n valueLabels.push({ value, label: value })\r\n }\r\n return valueLabels\r\n}\r\n\r\nconst TimeSelect = forwardRef(function TimeTextBox(props: TimeSelectProps, ref: Ref) {\r\n const { onChange, value, partType, minuteStepUnit, maxHour, ...through } = props\r\n\r\n const valueLables = partType === 'hour' ? getHourValueLabels(maxHour) : getMinuteValueLabels(minuteStepUnit)\r\n\r\n const onChangeHandler = useCallback(\r\n (event: SelectChangeEvent) => {\r\n const inputValue = event.target.value\r\n const numValue = inputValue ? toInt(inputValue) : null\r\n const newValue = spliceAmount(value, numValue, partType)\r\n onChange(newValue)\r\n },\r\n [onChange, value, partType]\r\n )\r\n\r\n const partValue = splitAmount(value)[partType]\r\n return (\r\n \r\n )\r\n})\r\n\r\nconst Label = styled(SizeLabelBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeLL1,\r\n marginLeft: 8,\r\n}))\r\n\r\ninterface TimeAmountSelectProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 最大値(分) */\r\n maxMinute: number\r\n /** 入力可能な単位(分) */\r\n minuteStepUnit: number\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n}\r\n\r\nexport const TimeAmountSelect = (props: TimeAmountSelectProps) => {\r\n const { name, label, maxMinute, minuteStepUnit, required, control } = props\r\n\r\n const maxHour = castNonNullable(splitAmount(maxMinute).hour)\r\n\r\n const {\r\n field: { ref, value, onChange, onBlur },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n required: { value: !!required, message: translate('system.error.requiredInput', label) },\r\n validate: {\r\n invalidAmount: (value?: number) =>\r\n value == null ||\r\n value % minuteStepUnit === 0 ||\r\n translate('system.error.timeAmountStepUnit', fromNumber(minuteStepUnit)),\r\n minMinute: (value?: number) => {\r\n if (value == null || value >= minuteStepUnit) {\r\n return true\r\n }\r\n return translate('system.error.timeAmountMin', fromNumber(minuteStepUnit))\r\n },\r\n maxMinute: (value?: number) => {\r\n if (value == null || value <= maxMinute) {\r\n return true\r\n }\r\n const { hour, minute } = splitAmount(maxMinute)\r\n const hourStr = fromNumber(hour ?? 0)\r\n const minuteStr = fromNumber(minute ?? 0)\r\n return translate('system.error.timeAmountOver', hourStr, minuteStr)\r\n },\r\n },\r\n },\r\n defaultValue: null,\r\n control,\r\n })\r\n\r\n const error = getValueByNameStr(errors, props.name)\r\n const partProps = {\r\n error: !!error,\r\n onBlur,\r\n onChange,\r\n value,\r\n maxHour,\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {error && {error.message}}\r\n
\r\n )\r\n}\r\n","import { Stack, styled } from '@mui/material'\r\nimport { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { couponMinuteStepUnit } from '../../../containers/common/constant/couponSetting'\r\nimport { useErrorHandle } from '../../../containers/common/error/errorHandler'\r\nimport { showLoading } from '../../../containers/common/store/slices/application'\r\nimport { translate } from '../../../i18n'\r\nimport { castNonNullable } from '../../../utils/typeUtil'\r\nimport { ButtonOutlinedWarningL } from '../common/buttons/buttonOutlinedWarningL'\r\nimport { Dialog, DialogContent } from '../common/dialog'\r\nimport { ErrorMessageCard } from '../common/errorMessageCard'\r\nimport { FlexboxCenter } from '../common/flexboxes'\r\nimport { TimeAmountSelect } from '../common/inputs/timeAmountSelect'\r\nimport { TitleLabel } from '../common/titleLabel'\r\n\r\nconst ButtonBox = styled('div')({\r\n width: '19rem',\r\n})\r\nconst StyledDialogContent = styled(DialogContent)({\r\n paddingLeft: 8,\r\n paddingRight: 8,\r\n})\r\n\r\ninterface CouponUsageDialogProps {\r\n isOpen: boolean\r\n onClose: (isDecision?: boolean) => void\r\n maxAmount: number\r\n decision: (use: number) => Promise<{ errorMessage: string } | void>\r\n}\r\n\r\ninterface Inputs {\r\n usageTimeAmount: number | null\r\n}\r\n\r\nexport const CouponUsageDialog = (props: CouponUsageDialogProps) => {\r\n const { isOpen, onClose, decision, maxAmount } = props\r\n\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n\r\n const [errorMessages, setErrorMessages] = useState()\r\n\r\n const formMethods = useForm()\r\n\r\n useEffect(() => {\r\n if (isOpen) {\r\n setErrorMessages(undefined)\r\n formMethods.reset({ usageTimeAmount: null })\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [isOpen])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const result = await decision(castNonNullable(data.usageTimeAmount))\r\n if (result) {\r\n setErrorMessages([result.errorMessage])\r\n } else {\r\n await onClose(true)\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [dispatch, errorHandle, decision, onClose]\r\n )\r\n\r\n return (\r\n \r\n \r\n {translate('facilityReservationDetail.button.decision')}\r\n \r\n \r\n }\r\n maxWidth=\"xs\"\r\n fullWidth\r\n contentComponent={StyledDialogContent}\r\n >\r\n \r\n \r\n {translate('facilityReservationDetail.label.usageTimeAmountInput')}\r\n \r\n \r\n \r\n \r\n {!!errorMessages?.length && }\r\n \r\n \r\n )\r\n}\r\n","/** クーポン利用時間 入力可能単位(分) */\r\nexport const couponMinuteStepUnit = 30\r\n\r\n/** クーポン利用時間 最大入力可能利用時間(分) デフォルト初期値 */\r\nexport const couponMaxUsageMinuteDefault = 24 * 60\r\n","import { Stack, styled } from '@mui/material'\r\nimport { getCancelLimitHolidayOptionLabel } from '../../containers/common/codeMaster'\r\nimport { reservationStatus } from '../../containers/common/constant/classification'\r\nimport { couponMaxUsageMinuteDefault } from '../../containers/common/constant/couponSetting'\r\nimport { useAction } from '../../containers/facilityReservationDetail/facilityReservationDetailService'\r\nimport { translate } from '../../i18n'\r\nimport { formatCancelLimit } from '../../utils/itemFormatUtil'\r\nimport { formatLocaleTimeAmountHm } from '../../utils/timeUtil'\r\nimport { AlertCard } from '../components/common/alertCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { FlexboxCenter } from '../components/common/flexboxes'\r\nimport { GContainer, GItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport ReservationDetailGItems from '../components/common/reservationDetail/reservationDetailGItems'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { TitleLabel } from '../components/common/titleLabel'\r\nimport { CouponUsageDialog } from '../components/facilityReservationDetail/couponUsageDialog'\r\nimport { ButtonErrorL } from '../components/common/buttons/ButtonErrorL'\r\n\r\nconst AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\nconst CouponBox = styled('div')(({ theme }) => ({\r\n whiteSpace: 'pre-wrap',\r\n color: theme.palette.error.main,\r\n}))\r\nconst UsageTimeBox = styled(FlexboxCenter)({\r\n marginTop: 8 * 2,\r\n})\r\n\r\nexport const FacilityReservationDetail = () => {\r\n const {\r\n reservationDetail,\r\n reservationUsageMinute,\r\n isCanUseCoupon,\r\n isUsedCoupon,\r\n goCancel,\r\n goChange,\r\n goTodayConditionInput,\r\n couponTotalBalanceMinute,\r\n isOpenCouponUsageDialog,\r\n openCouponUsageDialog,\r\n onCloseCouponUsageDialog,\r\n decisionCouponUsage,\r\n } = useAction()\r\n\r\n if (reservationDetail == null) {\r\n return null\r\n }\r\n const { cancelLimit, cancelLimitTime, cancelNote, cancelLimitHolidayOption } = reservationDetail\r\n const alertCardConents = []\r\n if (cancelLimit != null && cancelLimitTime != null) {\r\n alertCardConents.push(\r\n
\r\n {translate('facilityReservationDetail.card.cancelLimit')}:{formatCancelLimit(cancelLimit, cancelLimitTime)}\r\n
\r\n )\r\n if (cancelLimitHolidayOption) {\r\n alertCardConents.push(\r\n
※{getCancelLimitHolidayOptionLabel(cancelLimitHolidayOption)}
\r\n )\r\n }\r\n }\r\n if (cancelNote) {\r\n if (alertCardConents.length) {\r\n alertCardConents.push(
 
)\r\n }\r\n alertCardConents.push({cancelNote})\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {(isCanUseCoupon || isUsedCoupon) && (\r\n \r\n )}\r\n\r\n {reservationDetail.status !== reservationStatus.rejected &&\r\n reservationDetail.status !== reservationStatus.canceledWait &&\r\n !!alertCardConents.length && {alertCardConents.map((v) => v)}}\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {(isCanUseCoupon || isUsedCoupon) && (\r\n \r\n {isCanUseCoupon && (\r\n \r\n {'※'}\r\n {translate('facilityReservationDetail.text.couponPresent')}\r\n \r\n )}\r\n {reservationDetail.couponUsageMinute != null && (\r\n <>\r\n \r\n {translate('facilityReservationDetail.text.couponUsed')}\r\n \r\n \r\n {translate('facilityReservationDetail.text.couponWait')}\r\n \r\n \r\n \r\n {translate(\r\n 'facilityReservationDetail.text.couponUsageTime',\r\n formatLocaleTimeAmountHm(reservationDetail.couponUsageMinute)\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {reservationDetail.isTodayConditionInput === \"1\" &&\r\n reservationDetail.todayConditionInputName &&\r\n reservationDetail.todayConditionInputEndTime && (\r\n \r\n {\r\n translate(\r\n 'system.button.todayConditionInput',\r\n reservationDetail.todayConditionInputEndTime,\r\n reservationDetail.todayConditionInputName\r\n )\r\n }\r\n \r\n )}\r\n\r\n {isCanUseCoupon && (\r\n \r\n {translate('facilityReservationDetail.button.use')}\r\n \r\n )}\r\n\r\n {\r\n reservationDetail.canCancel\r\n ? reservationDetail.status === reservationStatus.wait\r\n ? goCancel(reservationDetail.status)}>\r\n {translate('facilityReservationDetail.button.waitCancel')}\r\n \r\n : goCancel(reservationDetail.status)}>\r\n {translate('facilityReservationDetail.button.reservationCancel')}\r\n \r\n : null\r\n }\r\n \r\n {reservationDetail.canUpdate && (\r\n \r\n {translate('system.button.change')}\r\n \r\n )}\r\n \r\n \r\n {!!couponTotalBalanceMinute && !!reservationUsageMinute && (\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { executeGetNoResultError, executePut } from '../common/apiCaller'\r\nimport { GetUserDto, PutUserInputDto } from '../dto/userDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/user'\r\n\r\nexport const executeGetUser = () => {\r\n return executeGetNoResultError(apiName, apiPath)\r\n}\r\n\r\nexport const executePutUser = (input: PutUserInputDto) => {\r\n return executePut(apiName, apiPath, input)\r\n}\r\n","// ユーザー(保護者)情報に関する共通処理を定義\r\nimport { executeGetUser } from '../../dataAccess/webApi/dao/userDao'\r\nimport { fromApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\n/** ユーザー(保護者)情報 */\r\nexport interface User {\r\n // 基本\r\n name: string\r\n kana: string\r\n tel: string\r\n email: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber?: string\r\n residenceCategory: string\r\n residenceCategoryName: string\r\n relationship?: string\r\n interviewPermitCount: number\r\n\r\n // 減免\r\n reductionInfos: {\r\n reductionId: string\r\n coveredFlag: string\r\n reductionHistoryFlag: string\r\n reductionName: string\r\n reductionStaretDate?: Date\r\n reductionEndDate?: Date\r\n }[]\r\n\r\n /** 緊急連絡先1~3 */\r\n emergencyContacts: {\r\n name?: string\r\n kana?: string\r\n relationship?: string\r\n company?: string\r\n tel?: string\r\n email?: string\r\n }[]\r\n /** 排他チェック用の更新日時 */\r\n updateDatetime: string\r\n}\r\n\r\n/**\r\n * @returns ユーザー(保護者)情報\r\n */\r\nexport const getUser = async (): Promise => {\r\n const response = await executeGetUser()\r\n const user = response.result\r\n\r\n const reductionInfos = user.reductionInfos.map((v) =>\r\n nullPropsToUndefined({\r\n reductionId: v.reductionId,\r\n coveredFlag: v.coveredFlag,\r\n reductionHistoryFlag: v.reductionHistoryFlag,\r\n reductionName: v.reductionName,\r\n reductionStartDate: fromApiYmd(v.reductionStartDate),\r\n reductionEndDate: fromApiYmd(v.reductionEndDate),\r\n })\r\n )\r\n const emergencyContacts = [\r\n {\r\n name: user.emergencyContactName1,\r\n kana: user.emergencyContactKana1,\r\n relationship: user.emergencyContactRelationship1,\r\n company: user.emergencyContactCompany1,\r\n tel: user.emergencyContactTel1,\r\n email: user.emergencyContactEmail1,\r\n },\r\n {\r\n name: user.emergencyContactName2,\r\n kana: user.emergencyContactKana2,\r\n relationship: user.emergencyContactRelationship2,\r\n company: user.emergencyContactCompany2,\r\n tel: user.emergencyContactTel2,\r\n email: user.emergencyContactEmail2,\r\n },\r\n {\r\n name: user.emergencyContactName3,\r\n kana: user.emergencyContactKana3,\r\n relationship: user.emergencyContactRelationship3,\r\n company: user.emergencyContactCompany3,\r\n tel: user.emergencyContactTel3,\r\n email: user.emergencyContactEmail3,\r\n },\r\n ].map((v) => nullPropsToUndefined(v))\r\n\r\n return nullPropsToUndefined({\r\n // 基本\r\n name: user.name,\r\n kana: user.kana,\r\n tel: user.tel,\r\n email: user.email,\r\n postalCode: user.postalCode,\r\n address1: user.address1,\r\n address2: user.address2,\r\n buildingNameRoomNumber: user.buildingNameRoomNumber,\r\n residenceCategory: user.residenceCategory,\r\n residenceCategoryName: user.residenceCategoryName,\r\n relationship: user.relationship,\r\n interviewPermitCount: user.interviewPermitCount,\r\n // 減免\r\n reductionInfos: reductionInfos,\r\n // 緊急連絡先1~3\r\n emergencyContacts,\r\n updateDatetime: user.updateDatetime,\r\n })\r\n}\r\n","// メール設定情報に関する共通処理を定義\nimport { executeGetSendingFlagMailSetting } from '../../dataAccess/webApi/dao/sendingFlagMailSettingDao'\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\nimport { GetSendingFlagMailSettingDto } from '../../dataAccess/webApi/dto/facilityMailSettingDto'\n\n/**\n * @returns 送信フラグ情報\n */\nexport const getSendingFlagMailSetting = async (input: GetSendingFlagMailSettingDto) => {\n const apiResponse = await executeGetSendingFlagMailSetting(input)\n const result = nullPropsToUndefined(apiResponse.result)\n return result\n}\n","import { executeGet } from '../common/apiCaller'\nimport { GetSendingFlagMailSettingDto } from '../dto/facilityMailSettingDto'\n\nconst apiName = 'public'\nconst apiPath = '/facility-mail-setting'\n\nexport const executeGetSendingFlagMailSetting = (input?: GetSendingFlagMailSettingDto) => {\n return executeGet(apiName, apiPath, input)\n}\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useFieldArray, useForm, FieldPath } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { useErrorHandle } from '../../containers/common/error/errorHandler'\nimport { FacilityReserveEntry, selectFacilityReserveEntry, setFacilityReserve } from '../../containers/common/store/slices/facilityReserve'\nimport { CommonInput, GoingTimeType, SelectAndOtherType } from '../common/reservation'\nimport { executeGetChild } from '../../dataAccess/webApi/dao/childrenDao'\nimport { GetChildDto } from '../../dataAccess/webApi/dto/childrenDto'\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\nimport { toApiYmd, toApiHms, differenceInHoursMinutes, formatYmd } from '../../utils/dateUtil'\nimport { dateToNumber, undefinedPropsToOptional } from '../../utils/objectUtil'\nimport { ReactBatchUpdater } from '../../utils/reactUtil'\nimport { NullPropsToUndefinedType } from '../../utils/typeUtil'\nimport { facilityReservationConfirmationUrl } from '../common/constant/appUrl'\nimport { availabilityStatus, yesNo, Flag, mailType } from '../common/constant/classification'\nimport { getFacility } from '../common/facility'\nimport { getUseReason } from '../common/useReason'\nimport { showLoading } from '../common/store/slices/application'\nimport { getUser } from '../common/user'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { isAfter } from 'date-fns'\nimport { getSendingFlagMailSetting } from '../common/getFacilityMailSetting'\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto'\nimport { ATTACHED_DOC_USAGE, GOING_DATETIME_DISPLAY_METHODS, INPUT_FIELD_USAGE, MEDICAL_DOC_USAGE } from '../common/constant/projectMst'\nimport { ReservationSettingDecodeMstKey } from '../common/reservation'\nimport { \n setStringifyNamesChildInfoList, \n getReservationDecodeMstValue, \n ChildReservationInfoType, \n ShowMessage,\n stringifySelectBox\n} from '../common/reservation'\nimport { getProjectMstDataToRefer } from '../common/projectMst'\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\nimport { translate } from '../../i18n'\n\ntype ReservationSettingDecodeMst = ReservationSettingDecodeMstKey\n\nexport interface Inputs {\n lunchFlag: string\n snackFlag: string\n postponeCancelWaitFlag: string\n goingToFacilityTime: Date\n goingTimes: GoingTimeType[]\n preferenceProvisionCertificateFlag?: string\n consentCheck?: string\n formUseReason?: SelectAndOtherType\n note: string\n children: ChildReservationInfoType[]\n showMessages: ShowMessage[]\n}\n\nexport type facilityReservationInputKey = FieldPath\n\ninterface PageState {\n /** 施設情報 */\n facility?: NullPropsToUndefinedType\n /** 利用目的マスタ情報 */\n useReason?: NullPropsToUndefinedType\n /** 送信フラグデータ */\n cancelSendingFlag?: boolean\n}\n\ninterface ChildData extends GetChildDto {\n childId: string\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const reserveEntry = useSelector(selectFacilityReserveEntry)\n const { addOperationLog } = useOperationLog()\n\n const [state, setState] = useState()\n\n const formMethods = useForm()\n\n const history = useHistory()\n\n const [showMessages, setShowMessages] = useState()\n const [decodemst, setDecodeMst] = useState()\n const [projectMst, setProjectmst] = useState()\n \n const { fields: goingTimeFileds } = useFieldArray({\n control: formMethods.control,\n name: 'goingTimes',\n })\n \n const { fields: childrenWatch } = useFieldArray({\n control: formMethods.control,\n name: 'children',\n })\n \n const reservationReference = useMemo(() => {\n if (projectMst && reserveEntry?.facility && reserveEntry?.parentInfo && reserveEntry?.useReason && reserveEntry?.childInfoList) {\n const { facility, parentInfo, useReasonCategory, useReasonDetailCategory, useReasonDetailDescription, useReason, childInfoList } = reserveEntry\n return {\n facilityName: facility.facilityName,\n useReasonCategory: useReasonCategory,\n useReasonDetailCategory: useReasonDetailCategory,\n useReasonDetailDescription: useReasonDetailDescription,\n childInfoList,\n parentInfo,\n projectMst,\n useReason: {...useReason},\n }\n }\n }, [reserveEntry, projectMst])\n\n const onSubmit = useCallback(\n (data: Inputs) => {\n addOperationLog({ operationId: OperationId.OP_00000025 })\n let isError = false\n\n // TODO: readonlyを回避するため\n const goingTimes = data.goingTimes.map((goingTime) => ({\n ...goingTime,\n }))\n\n goingTimes.forEach((goingTime, index) => {\n const goingToFaclityDatetime = new Date(`${goingTime.goingToFacilityDate} ${goingTime.goingToFacilityTime}`)\n const goingHomeDatetime = new Date(`${goingTime.goingHomeDate} ${goingTime.goingHomeTime}`)\n if (isAfter(goingToFaclityDatetime, goingHomeDatetime)) {\n formMethods.setError(`goingTimes.${index}.goingToFacilityTime`, {\n message: translate(\"facilityReservationForm.form.error.goingTimes\"),\n })\n isError = true\n }\n if (projectMst && projectMst.goingDatetimeLimit !== null) {\n const difference = differenceInHoursMinutes(goingHomeDatetime, goingToFaclityDatetime);\n const diffHours = differenceInHoursMinutes(goingHomeDatetime, goingToFaclityDatetime).hour + (difference.minute === 0 ? 0 : 1)\n if (diffHours > projectMst.goingDatetimeLimit) {\n formMethods.setError(`goingTimes.${index}.goingHomeTime`, {\n message: translate('facilityReservationForm.form.error.goingDatetimesLimit', projectMst.goingDatetimeLimit.toString())\n })\n formMethods.setError(`goingTimes.${index}.goingToFacilityTime`, {})\n isError = true \n }\n }\n })\n \n const children:ChildReservationInfoType[] = JSON.parse(JSON.stringify(data.children));\n \n children.map((childInfo) => {\n if ( !childInfo.symptom ) return\n childInfo.symptom.symptoms.sort((a: string, b: string) => Number(a) - Number(b))\n })\n\n if (isError) return\n\n dispatch(\n reserveEntry &&\n setFacilityReserve({\n ...reserveEntry,\n childInfoList: (decodemst) ? setStringifyNamesChildInfoList(children, decodemst) : children,\n commonInput: {\n lunchFlag: data.lunchFlag,\n snackFlag: data.snackFlag,\n postponeCancelWaitFlag: data.postponeCancelWaitFlag,\n formUseReason: {\n select: null,\n other: null,\n ...data.formUseReason,\n stringify: (decodemst) \n ? stringifySelectBox(\n decodemst.formUseReason, \n data.formUseReason?.select, \n data.formUseReason?.other,\n [\"その他\"]\n ): undefined\n },\n goingTimes,\n citizenNote: data.note,\n consentCheck: data.consentCheck\n }\n })\n )\n history.push(facilityReservationConfirmationUrl.url()) //値の送り先を設定\n },\n [reserveEntry, addOperationLog, formMethods, projectMst]\n )\n\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n dispatch(\n showLoading(\n errorHandle(async () => {\n if ( !reserveEntry ) {\n // 前画面入力情報が無い場合はエラーにするので何もしない\n return\n }\n\n const isStautsWait = reserveEntry.usageDatetimes[0].status === availabilityStatus.wait;\n\n const childrenDataPromises = reserveEntry.childInfoList.map((childInfo) => childInfo.childId).map(async (childId) => {\n return executeGetChild(childId)\n })\n const [facility, user, useReason, decodeMst, projectMstData, sendingFlagInfo, ...childResponse] = await Promise.all([\n getFacility(reserveEntry.facility.facilityId, new Date(reserveEntry.usageDatetimes[0].usageDate)),\n getUser(),\n getUseReason(),\n getReservationDecodeMstValue(),\n getProjectMstDataToRefer(\n reserveEntry.facility.facilityId, \n reserveEntry.usageDatetimes.map(( usageDatetime ) => usageDatetime.usageDate)\n ),\n isStautsWait \n ? getSendingFlagMailSetting({mailId: mailType.immediatelyCancelVacant, facilityId: reserveEntry.facility.facilityId})\n : null,\n ...childrenDataPromises,\n ])\n const children = childResponse.map((response, index) => {\n const childId = reserveEntry.childInfoList[index].childId\n return { ... response.result, childId }\n })\n\n // メール設定(送信フラグ)情報を取得し、送信フラグ:\"0\"(無)の場合、FALSEとする\n let cancelSendingFlag = true\n if (isStautsWait && sendingFlagInfo && sendingFlagInfo.sendingFlag === yesNo.no) {\n cancelSendingFlag = false\n }\n \n if (reserveEntry.showMessages.length) {\n setShowMessages(reserveEntry.showMessages)\n }\n\n if (projectMstData.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY) {\n projectMstData.medicalDocUsage = facility.medicalDoc\n }\n\n // お子様共通予約情報のセット\n const commonInput = setCommonInputs(facility, projectMstData, reserveEntry);\n \n // お子様情報のセット\n const childInfoList = setChildInfo(children, reserveEntry, projectMstData);\n \n const batchUpdater = new ReactBatchUpdater()\n batchUpdater.add(() =>\n formMethods.reset({\n ...formMethods.getValues(),\n ...undefinedPropsToOptional({\n purposeOfUse: reserveEntry?.useReasonCategory,\n ...commonInput,\n showMessages: showMessages,\n children: childInfoList,\n formUseReason: {\n ... commonInput.formUseReason,\n ... (\n commonInput.formUseReason?.other === null && {\n other: ''\n }\n )\n },\n consentCheck: reserveEntry.consentCheck,\n note: commonInput.citizenNote\n }),\n })\n )\n batchUpdater.add(() =>\n dispatch(\n setFacilityReserve({\n ...reserveEntry,\n // 施設情報\n facility: {\n ... facility,\n facilityId: reserveEntry.facility.facilityId\n },\n // 保護者情報\n parentInfo: {\n name: user.name,\n kana: user.kana,\n tel: user.tel,\n email: user.email,\n residenceCategory: user.residenceCategory,\n },\n // お子さま情報\n childInfoList: childInfoList,\n commonInput,\n useReason,\n })\n )\n )\n batchUpdater.addSetter(setState, { facility: facility, useReason, cancelSendingFlag })\n batchUpdater.addSetter(setProjectmst, projectMstData)\n batchUpdater.addSetter(setDecodeMst, decodeMst)\n batchUpdater.execute()\n })\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [setShowMessages])\n\n return {\n reserveEntry,\n reservationReference,\n facility: state?.facility,\n useReason: state?.useReason,\n isShownPostponeCancelWaitItem: isShownPostponeCancelWaitItem(state?.facility),\n formMethods,\n onSubmit,\n showMessages,\n goingTimeFileds,\n decodemst,\n projectMst,\n childrenWatch,\n cancelSendingFlag: state?.cancelSendingFlag,\n isolationFlag: reserveEntry?.isolationFlag ?? false\n }\n}\n\nconst isShownPostponeCancelWaitItem = (facility: NullPropsToUndefinedType | undefined) => {\n if (facility) {\n return facility.immediatelyReservationFlag === yesNo.no && facility.postponeCancelWaitAcceptFlag === yesNo.yes\n } else {\n return false\n }\n}\n\nconst setChildInfo = (childrenData: ChildData[], reserveEntry: FacilityReserveEntry, projectMst: GetProjectDetailDto): ChildReservationInfoType[] => {\n return childrenData.map((child) => {\n const prevChildInfo = reserveEntry.childInfoList.find((childInfo) => childInfo.childId === child.childId);\n const returnChildInfo: ChildReservationInfoType = {\n childId: child.childId,\n childInfo: {\n name: child.name,\n kana: child.kana,\n birthday: dateToNumber(child.birthday),\n gender: child.gender,\n }\n }\n \n // 医師連絡票\n if ( projectMst.medicalDocUsage !== MEDICAL_DOC_USAGE.NO_USE) {\n returnChildInfo.medicalDoc = {\n docs: prevChildInfo?.medicalDoc?.docs?? [],\n hasSubmitted: prevChildInfo?.medicalDoc?.hasSubmitted?? Flag.OFF,\n }\n if (projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO) {\n const date = prevChildInfo?.hospitalInfo?.date ? formatYmd(new Date(prevChildInfo?.hospitalInfo?.date as string)) : null\n returnChildInfo.hospitalInfo = {\n date: prevChildInfo?.hospitalInfo?.date ? new Date(prevChildInfo?.hospitalInfo?.date) : null,\n time: prevChildInfo?.hospitalInfo?.time \n ? toApiHms(new Date(`${date} ${prevChildInfo?.hospitalInfo?.time}`)) \n : null,\n hospitalName: prevChildInfo?.hospitalInfo?.hospitalName ?? null,\n }\n }\n }\n\n // 症状\n if ( projectMst.symptomsInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.symptom = {\n symptoms: [],\n other: '',\n ... prevChildInfo?.symptom\n }\n }\n // 病名\n if ( projectMst.diagonosisInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.diagonosis = {\n first: {\n select: null,\n other: ''\n },\n second: {\n select: null,\n other: ''\n },\n ... prevChildInfo?.diagonosis\n }\n }\n // 流行り病\n if ( projectMst.epidemicInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.epidemic = {\n select: '',\n other: '',\n ... prevChildInfo?.epidemic\n }\n }\n // 服用薬\n if ( projectMst.medicineInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.medicine = {\n rx: prevChildInfo?.medicine?.rx?? Flag.OFF,\n otc: prevChildInfo?.medicine?.otc?? Flag.OFF,\n }\n }\n // 体温\n if ( projectMst.bodyTemperatureInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.temperature = {\n integer: undefined,\n fractional: undefined,\n ... prevChildInfo?.temperature\n }\n }\n // 熱けいれん\n if ( projectMst.febrileSeizuresInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.febrileSeizures = prevChildInfo?.febrileSeizures?? Flag.OFF\n }\n // 容態変化の対応\n if ( projectMst.emergencyActionInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.emergencyAction = {\n action: {\n select: null\n },\n note: '',\n ... prevChildInfo?.emergencyAction\n }\n }\n // 身長\n if ( projectMst.heightInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.height = {\n integer: undefined,\n fractional: undefined,\n ... prevChildInfo?.height\n }\n }\n // 体重\n if ( projectMst.weightInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.weight = {\n integer: undefined,\n fractional: undefined,\n ... prevChildInfo?.weight\n }\n }\n // 栄養方法\n if ( projectMst.eatingMethodInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.eatingMethod = {\n method: {\n select: null\n },\n detail: {\n select: null\n },\n milkAmount: {\n integer: undefined,\n fractional: undefined,\n },\n milkFrequency: undefined,\n ... prevChildInfo?.eatingMethod\n }\n }\n // アレルギー\n if ( projectMst.allergyInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.allergy = {\n flag: prevChildInfo?.allergy?.flag?? Flag.OFF,\n foodFlag: prevChildInfo?.allergy?.foodFlag?? Flag.OFF\n }\n }\n // 食事状況\n if ( projectMst.eatingAbilityInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.eatingAbility = {\n select: prevChildInfo?.eatingAbility?.select?? null\n }\n }\n // 行動\n if ( projectMst.actionInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.actions = {\n action: {\n select: null\n },\n sleepMethod: '',\n ... prevChildInfo?.actions\n }\n }\n // 排便\n if ( projectMst.toiletAbilityInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.toiletAbility = {\n select: prevChildInfo?.toiletAbility?.select?? null\n }\n }\n // 配慮が必要な事項\n if ( projectMst.considerationsInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.considerations = prevChildInfo?.considerations?? ''\n }\n // 減免\n if ( projectMst.reductionInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.reductionType = {\n reduction: {\n select: prevChildInfo?.reductionType?.reduction.select?? null\n },\n consentCheck: prevChildInfo?.reductionType?.consentCheck?? undefined\n }\n }\n\n // 添付ファイル\n if ( projectMst.attachedDocInput !== ATTACHED_DOC_USAGE.NO_USE ) {\n returnChildInfo.attachedDoc = {\n docs: prevChildInfo?.attachedDoc?.docs?? []\n }\n }\n\n // 施設別予約時入力項目\n if (reserveEntry.facility.facilityInputFieldsDisplayFlag === Flag.ON) {\n reserveEntry.facility.facilityInputFields?.forEach(element => {\n const key = element.id;\n returnChildInfo.facilityInputFields = {\n ...returnChildInfo.facilityInputFields ?? {}\n }\n\n if (prevChildInfo?.facilityInputFields && prevChildInfo?.facilityInputFields[key]) {\n returnChildInfo.facilityInputFields[key] = {\n ...prevChildInfo?.facilityInputFields[key],\n order: element.order,\n };\n } else {\n returnChildInfo.facilityInputFields[key] = {\n id: null,\n answer: \"\",\n updateDatetime: null,\n facilityReservationInputFieldId: key,\n order: element.order,\n };\n }\n });\n }\n\n return returnChildInfo;\n })\n}\n\nconst setCommonInputs = (facility: NullPropsToUndefinedType, projectMst: GetProjectDetailDto, reserveEntry: FacilityReserveEntry): CommonInput => {\n const prevCommonInput = reserveEntry.commonInput;\n const detailSetting = facility.detailSetting.length === 1 ? facility.detailSetting[0] : facility.detailSetting.find((item) => item.useReasonCode === reserveEntry.useReasonCategory);\n const returnCommonInput: CommonInput = {\n lunchFlag: yesNo.no as string,\n snackFlag: yesNo.no as string,\n postponeCancelWaitFlag: yesNo.no as string,\n goingTimes: [] as GoingTimeType[],\n preferenceProvisionCertificateFlag: undefined as (string | undefined),\n formUseReason: undefined as (SelectAndOtherType | undefined),\n consentCheck: undefined as (string | undefined),\n citizenNote: detailSetting?.citizenNoteEntryTemplate?? ''\n }\n \n if (prevCommonInput) {\n if (facility.lunchAcceptFlag === yesNo.yes) {\n returnCommonInput.lunchFlag = prevCommonInput.lunchFlag\n }\n if (facility.snackAcceptFlag === yesNo.yes) {\n returnCommonInput.snackFlag = prevCommonInput.snackFlag\n }\n if (isShownPostponeCancelWaitItem(facility)) {\n returnCommonInput.postponeCancelWaitFlag = prevCommonInput.postponeCancelWaitFlag\n }\n \n returnCommonInput.citizenNote = prevCommonInput.citizenNote;\n } else {\n returnCommonInput.lunchFlag = facility.lunchInitialSelect ?? yesNo.yes\n returnCommonInput.snackFlag = facility.snackInitialSelect ?? yesNo.yes\n }\n // 選択項目は「不要」の場合はundefinedで登録を行う\n if ( projectMst.useReasonInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnCommonInput.formUseReason = {\n select: null,\n other: null,\n ... prevCommonInput?.formUseReason\n }\n }\n if (projectMst.provisionCertificateInput !== INPUT_FIELD_USAGE.NO_USE) {\n returnCommonInput.preferenceProvisionCertificateFlag = prevCommonInput?.preferenceProvisionCertificateFlag?? yesNo.no\n }\n\n // 登降園予定時間\n for (let index = 0; index < reserveEntry.usageDatetimes.length; index++) {\n const usageDatetime = reserveEntry.usageDatetimes[index];\n\n if ( projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY ) {\n const prevGoingTime = prevCommonInput?.goingTimes[index];\n const goingToFaclityDatetime = new Date(prevGoingTime ? `${prevGoingTime.goingToFacilityDate} ${prevGoingTime.goingToFacilityTime}` : usageDatetime.useFromDatetime)\n const goingHomeDatetime = new Date(prevGoingTime ? `${prevGoingTime.goingHomeDate} ${prevGoingTime.goingHomeTime}` : usageDatetime.useToDatetime)\n const goingToFacilityDate = toApiYmd(new Date(goingToFaclityDatetime))\n const goingToFacilityTime = toApiHms(new Date(goingToFaclityDatetime))\n const goingHomeDate = toApiYmd(new Date(goingHomeDatetime))\n const goingHomeTime = toApiHms(new Date(goingHomeDatetime))\n returnCommonInput.goingTimes.push({\n goingToFacilityDate,\n goingToFacilityTime,\n goingHomeDate,\n goingHomeTime,\n })\n } else {\n returnCommonInput.goingTimes.push({\n goingToFacilityDate: '',\n goingToFacilityTime: '',\n goingHomeDate: '',\n goingHomeTime: '',\n })\n }\n }\n return returnCommonInput;\n}\n","import React from \"react\"\nimport { LabelGItemBase } from \"../../../../components/common/grids\"\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\ntype FieldTitleProps = {\n title: string\n required?: boolean\n isSubField?: boolean\n}\n\nconst FieldTitle: React.FC = (props) => {\n const { title, required, isSubField } = props\n \n return (\n <>\n {\n isSubField\n ? {translate(title)}\n :
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n }\n \n )\n}\n\nexport default FieldTitle","import React from 'react';\nimport { facilityReservationInputKey } from '../../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { getYesNos } from '../../../../../containers/common/codeMaster';\nimport { RadioButtonGroup } from '../../../../components/common/inputs/radioButtonGroup';\nimport { GItem } from '../../../../components/common/grids'\nimport FieldTitle from \"./fieldTitle\"\nimport { translate } from '../../../../../i18n'\n\ninterface YesNoFieldProps {\n name: facilityReservationInputKey\n required: boolean\n title: string\n label: string\n validation?: (value: any) => true | string\n isSubField?: boolean\n}\n\nconst YesNoField = (props: YesNoFieldProps) => {\n const { name, required, title, label, validation, isSubField } = props;\n\n return (\n \n \n \n \n );\n}\n\nexport default YesNoField;\n","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nconst LunchField = () => {\n return (\n \n );\n}\n\nexport default LunchField;","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nconst SnackField = () => {\n return (\n \n );\n}\n\nexport default SnackField","import React from 'react';\nimport { getDoNotWaitlist } from '../../../../containers/common/codeMaster'\nimport { RadioButtonGroup } from '../../../components/common/inputs/radioButtonGroup';\nimport { GItem } from '../../../components/common/grids'\nimport { TitleLabel } from \"../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../components/common/attentionLabel\"\nimport { translate } from '../../../../i18n'\n\nconst CancelWaitField = () => {\n return (\n <>\n \n
\n \n *\n {translate(\"facilityReservationForm.form.label.cancelWait\")}\n \n
\n \n
\n \n {translate('facilityReservationForm.text.attentionMessage')}\n \n \n \n );\n}\n\n\n\nexport default CancelWaitField\n","import { useCallback, FC } from 'react'\nimport { Control, useController } from 'react-hook-form'\nimport { TextFieldProps, styled, FormHelperText } from '@mui/material'\nimport { LocalizationProvider, DesktopTimePicker } from '@mui/x-date-pickers'\nimport { AdapterDateFns } from '@mui/x-date-pickers/AdapterDateFns'\nimport { getLocale } from '../../../../i18n'\nimport {\n fromApiHms,\n INVALID_DATE_STRING,\n toApiHms,\n isValidDate\n} from '../../../../utils/dateUtil'\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\nimport { TextBoxBaseStyled } from './textBoxBaseStyled'\n\nconst ErrorText = styled(FormHelperText)({\n color: '#c53030',\n})\n\ntype TimePickerProps = Pick & {\n name: string\n /**\n * ReactHookFormのコントロールオブジェクト\n * 通常は省略する。\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\n */\n control?: Control\n\n /** 秒入力を有効にする場合true */\n enabledSecondsInput?: boolean\n\n hideError?: boolean\n}\n\nconst InputField = styled(TextBoxBaseStyled)({\n '& .MuiInputAdornment-positionEnd': {\n marginRight: 10,\n marginLeft: 0,\n },\n '& .MuiOutlinedInput-input': {\n paddingRight: 0,\n },\n '& legend': {\n width: 0,\n },\n})\n\nexport const TimePicker: FC = ({\n name,\n required,\n disabled,\n fullWidth,\n enabledSecondsInput,\n control,\n hideError\n}) => {\n const {\n field: { ref, value, onChange, onBlur },\n formState: { errors },\n } = useController({\n name,\n rules: {\n required: {\n value: !!required,\n message: '入力してください',\n },\n validate: {\n invalidDate: (value?: string) => {\n return value !== INVALID_DATE_STRING || '有効な時刻形式で入力してください'\n },\n },\n },\n defaultValue: null,\n control,\n })\n\n const onChangeHandler = useCallback(\n (date: Date | null, keyboardInputValue?: string) => {\n if (date == null) {\n onChange(null)\n } else if (keyboardInputValue && keyboardInputValue.length < 5) {\n // 14:1 は無効にする。\n // useWatchで値の変更を監視する処理で\n // 14:15 のように入力中でも値が確定してしまうのを防ぐ為\n onChange(INVALID_DATE_STRING)\n } else if (isValidDate(date)) {\n onChange(toApiHms(date))\n } else {\n onChange(INVALID_DATE_STRING)\n }\n },\n [onChange]\n )\n let timeValue\n if (value === INVALID_DATE_STRING) {\n timeValue = value\n } else {\n timeValue = fromApiHms(value) ?? null\n }\n const locale = getLocale()\n const error = getValueByNameStr(errors, name)\n\n return (\n \n {\n if (clockType === 'minutes' && timeValue % 3) return true\n return false\n }}\n renderInput={(params) => (\n <>\n {\n if (event.key === 'Enter') {\n // Enterでsubmitされないようにする措置\n event.preventDefault()\n }\n }}\n />\n {!hideError && error && {error.message}}\n \n )}\n />\n \n )\n}\n","import { FormHelperText, styled } from '@mui/material'\nimport { Control, useFormState } from 'react-hook-form'\nimport { getValueByNameStr } from '../../../utils/objectUtil'\n\ninterface ErrorTextProps {\n name: string\n /**\n * ReactHookFormのコントロールオブジェクト\n * 通常は省略する。\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\n */\n control?: Control\n}\n\nexport const ErrorTextBase = styled(FormHelperText)({\n color: '#c53030',\n fontWeight: 'bold',\n})\n\nexport const ErrorText = (props: ErrorTextProps) => {\n const { name, control } = props\n const { errors } = useFormState({ name, control, exact: true })\n const error = getValueByNameStr(errors, name)\n return <> {!!error && {error.message}}\n}\n","import { styled } from '@mui/material'\nimport { UsageDatetimeType, GoingTimeType } from \"../../../../containers/common/reservation\"\nimport { formatHmtoHmOver, formatYmdWeek } from '../../../../utils/dateUtil'\nimport { LabelGItemBase, GItem, GContainer } from \"../../../components/common/grids\"\nimport { TitleLabel } from \"../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../components/common/attentionLabel\"\nimport { TimePicker } from '../../../components/common/inputs/timePicker'\nimport { translate } from '../../../../i18n'\nimport { ErrorText } from '../../../../containers/common/error/errorText'\n\nconst TimePickerWrap = styled(GContainer)({\n textIndent: '1em',\n})\n\nexport interface GoingTimesFieldProps {\n usageDatetimes: UsageDatetimeType[]\n goingTimes: GoingTimeType[]\n}\n\nconst GoingTimesField = (props: GoingTimesFieldProps) => {\n const { goingTimes, usageDatetimes } = props\n\n return (\n \n \n *\n {translate(\"facilityReservationForm.form.label.goingTimes.field\")}\n \n {goingTimes.map((goingTimeFiled, index) => {\n if (\n !goingTimeFiled.goingToFacilityDate &&\n !goingTimeFiled.goingToFacilityTime &&\n !goingTimeFiled.goingHomeDate &&\n !goingTimeFiled.goingHomeTime\n )\n return null\n return (\n \n \n \n {formatYmdWeek(usageDatetimes[index].usageDate)}\n {' '}\n {formatHmtoHmOver(\n {\n from: usageDatetimes[index].useFromDatetime,\n to: usageDatetimes[index].useToDatetime,\n },\n usageDatetimes[index].usageDate\n )}\n \n \n \n \n \n {translate(\"facilityReservationForm.form.label.goingTimes.toFacility\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {translate(\"facilityReservationForm.form.label.goingTimes.home\")}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n })}\n \n )\n\n}\n\nexport default GoingTimesField;\n","import YesNoField from './common/yesNoField'\n\nconst PreferenceProvisionCertificateField = () => {\n return (\n \n );\n}\n\nexport default PreferenceProvisionCertificateField;","import React from \"react\"\nimport { GItem } from \"../../../../components/common/grids\"\nimport { TextBox } from '../../../../components/common/inputs/textBox'\nimport FieldTitle from \"./fieldTitle\"\nimport { translate } from '../../../../../i18n'\n\ntype TextFieldProps = {\n name: string\n label: string\n maxLength: number\n row?: number\n minRows?: number\n required?: boolean\n title?: string\n isSubField?: boolean\n marginBottom?: number\n}\n\nconst TextField: React.FC = (props) => {\n const { name, label, required, maxLength, row, minRows, title, isSubField, marginBottom } = props;\n return (\n \n {\n title && (\n \n )\n }\n \n \n )\n}\n\nexport default TextField;\n","import React, { ReactNode, useState, useEffect } from 'react'\nimport { Control, useWatch } from 'react-hook-form'\nimport { Inputs, facilityReservationInputKey } from \"../../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../../dataAccess/webApi/dto/decodeMstDto'\nimport { GItem } from \"../../../../components/common/grids\"\nimport { Select } from '../../../../components/common/inputs/select'\nimport FieldTitle from \"./fieldTitle\"\nimport TextField from \"./textField\"\nimport { translate } from '../../../../../i18n'\n\ninterface SelectBoxFieldProps {\n title: string\n name: string\n selectLabel: string\n selectNameApendix?: string\n otherLabel?: string\n otherNameApendix?: string\n otherTitle?: string\n required: boolean\n control: Control\n options?: PostDecodeMstDto[]\n addUnselected?: boolean\n showOtherSelection?: string[]\n isSubField?: boolean\n children?: ReactNode\n}\n\nconst SelectBoxField: React.FC = (props) => {\n const {\n title,\n name,\n selectLabel,\n selectNameApendix,\n otherLabel,\n otherNameApendix,\n otherTitle,\n required,\n control,\n options,\n addUnselected,\n showOtherSelection,\n isSubField,\n children\n } = props\n \n const selectName = selectNameApendix? `${name}.${otherNameApendix}`: `${name}.select`;\n const otherName = otherNameApendix? `${name}.${otherNameApendix}`: `${name}.other`;\n \n const inputWatch = useWatch({ name: selectName as facilityReservationInputKey, control: control })\n const [ currentInput, setCurrentInput ] = useState();\n \n useEffect(() => {\n if ( inputWatch === currentInput ) return;\n if ( typeof inputWatch !== 'string' ) return;\n setCurrentInput(inputWatch)\n }, [ inputWatch ])\n \n const optionsConvertedToLabelValue = options?.map(( option ) => ({ label: option.name, value: option.code }));\n if (addUnselected) {\n optionsConvertedToLabelValue?.unshift({\n label: translate('facilityReservationForm.form.common.unselected'),\n value: '',\n })\n }\n \n const shouldShowAdditional = () => {\n if ( !otherLabel || !optionsConvertedToLabelValue || !showOtherSelection ) return false\n const label = optionsConvertedToLabelValue.find(( option ) => option.value === currentInput)?.label\n if ( !label ) return false\n for ( const select of showOtherSelection ) {\n if (label.includes(select)) return true\n continue\n }\n }\n\n return (\n \n \n \n \n \n \n { \n ( otherLabel && currentInput && shouldShowAdditional() ) && (\n \n )\n }\n {children && (\n <>{children}\n )}\n \n );\n};\n\nexport default SelectBoxField;","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface UseReasonFieldProps {\n options?: PostDecodeMstDto[]\n required: boolean\n control: Control\n}\nconst UseReasonField: React.FC = (props) => {\n const { options, required, control } = props;\n \n const showOtherSelection = ['その他'];\n \n return (\n \n )\n \n}\nexport default UseReasonField;\n","import React from \"react\"\nimport { GItem } from \"../../../../components/common/grids\"\n\ntype PreserveLineTextProps = {\n content: string\n}\n\nconst PreserveLineText: React.FC = (props: PreserveLineTextProps) => {\n const { content } = props\n return (\n \n {content}\n \n )\n}\n\nexport default PreserveLineText","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { CheckBox } from '../../../common/inputs/checkBox'\nimport { translate } from '../../../../../i18n'\nimport { GItem } from \"../../../common/grids\"\nimport { Grid } from '@mui/material';\nimport { yesNo } from '../../../../../containers/common/constant/classification'\nimport { TitleLabel } from \"../../../common/titleLabel\"\nimport { AttentionLabel } from \"../../../common/attentionLabel\"\nimport PreserveLineText from \"./preserveLineText\"\n\ninterface ConsentCheckFieldProps {\n title?: string\n checkNote: string\n name: string\n label?: string\n control: Control\n}\n\nconst ConsentCheckField = (props: ConsentCheckFieldProps) => {\n const { title, checkNote, name, label, control } = props;\n\n return (\n \n
\n {\n title && (\n \n *\n {translate(title)}\n \n )\n }\n \n
\n \n \n \n {translate('facilityReservationForm.form.common.isComfirm')}\n \n \n \n
\n )\n}\n\nexport default ConsentCheckField;\n","import React from \"react\";\nimport { Control } from 'react-hook-form';\nimport { Inputs } from '../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { UsageDatetimeType, GoingTimeType } from \"../../../containers/common/reservation\"\nimport { GOING_DATETIME_DISPLAY_METHODS, INPUT_FIELD_USAGE } from '../../../containers/common/constant/projectMst'\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto';\nimport { GetProjectDetailDto } from '../../../dataAccess/webApi/dto/projectsDto';\nimport LunchField from \"./fields/lunchField\"\nimport SnackField from \"./fields/snackField\"\nimport CancelWaitField from \"./fields/cancelWaitField\"\nimport GoingTimesField from \"./fields/goingTimesField\"\nimport PreferenceProvisionCertificateField from \"./fields/preferenceProvisionCertificateField\";\nimport UseReasonField from \"./fields/useReasonField\"\nimport ConsentCheckField from \"./fields/common/consentCheckField\";\n\nexport interface CommonFormUnitPorps {\n lunchAccept: boolean\n snackAccept: boolean\n cancelWaitAccept: boolean\n usageDatetimes: UsageDatetimeType[]\n goingTimes: GoingTimeType[]\n useReasonOptions: PostDecodeMstDto[]\n projectMst: GetProjectDetailDto\n control: Control\n}\n\nconst CommonFormUnit: React.FC = (props) => {\n const {\n lunchAccept,\n snackAccept,\n cancelWaitAccept,\n usageDatetimes,\n goingTimes,\n useReasonOptions,\n projectMst,\n control\n } = props\n \n return (\n <>\n {\n lunchAccept && (\n \n )\n }\n {\n snackAccept && (\n \n )\n }\n {\n ( projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY ) && (\n \n )\n }\n {\n cancelWaitAccept && (\n \n )\n }\n {\n ( projectMst.provisionCertificateInput !== INPUT_FIELD_USAGE.NO_USE ) && (\n \n )\n }\n {\n ( projectMst.useReasonInput !== INPUT_FIELD_USAGE.NO_USE ) && (\n \n )\n }\n {\n ( projectMst.consentCheckInput !== INPUT_FIELD_USAGE.NO_USE ) && (\n \n )\n }\n \n )\n}\n\nexport default CommonFormUnit;","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface DiagonosisFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\nconst DiagonosisField: React.FC = (props) => {\n const { childNum, required, options, control } = props;\n \n const firstName = `children.${childNum}.diagonosis.first`\n const secondName = `children.${childNum}.diagonosis.second`\n const showOtherSelection = ['その他'];\n \n return (\n <>\n \n \n \n )\n \n}\nexport default DiagonosisField;\n","import { Checkbox, FormControl, FormControlLabel, styled, FormHelperText } from '@mui/material';\nimport React, { useEffect } from 'react';\nimport { Control, useController } from 'react-hook-form';\nimport { translate } from '../../../../i18n';\nimport { GContainer, GItem } from '../grids';\nimport { getValueByNameStr } from '../../../../utils/objectUtil';\n\ninterface CheckBoxSelectionsProps {\n name: string;\n label: string;\n valueLabels: { value: string; label: string }[];\n required?: boolean;\n control?: Control;\n xs?: number;\n sm?: number;\n md?: number;\n customOnChange?: (checkedValues: string[]) => void;\n defaultValue?: string[]\n}\n\nconst Root = styled(FormControl)(() => ({\n '& .MuiCheckbox-root': {\n paddingTop: 0,\n paddingBottom: 0,\n },\n '& .MuiFormControlLabel-label': {\n lineHeight: 'normal',\n },\n}));\n\nexport const CheckBoxSelections = (props: CheckBoxSelectionsProps) => {\n const { name, label, valueLabels, required, control, xs, sm, md, customOnChange, defaultValue } = props;\n \n const {\n field: { ref, value, onChange, ...ctrlProps },\n formState: { errors }\n } = useController({\n name,\n rules: {\n required: {\n value: !!required,\n message: translate('system.error.requiredSelection', label),\n },\n },\n defaultValue: defaultValue?? [],\n control,\n });\n\n const error = getValueByNameStr(errors, props.name);\n\n const handleCheckChange = (event: React.ChangeEvent) => {\n const selectedValue = event.target.value;\n const isChecked = event.target.checked;\n\n let newValues = [];\n\n // チェックされた場合、配列に値を追加し、空文字列を除外\n if (isChecked) {\n newValues = [...value.filter((v: string) => v !== ''), selectedValue];\n onChange(newValues);\n } else {\n // チェックが外された場合、配列からその値を削除\n newValues = value.filter((v: string) => v !== selectedValue && v !== '');\n onChange(newValues);\n }\n if (customOnChange) customOnChange(newValues);\n };\n \n useEffect(() => {\n const filterEmptyString = () => {\n onChange(value.filter((v: string) => v !== ''));\n }\n \n filterEmptyString();\n }, [])\n\n return (\n \n {valueLabels?.map((valueLabel) => (\n \n \n \n }\n />\n \n \n ))}\n {error && {error.message}}\n \n );\n};\n","import { ReactNode, useState, useEffect } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs, facilityReservationInputKey } from '../../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { PostDecodeMstDto } from '../../../../../dataAccess/webApi/dto/decodeMstDto';\nimport { CheckBoxSelections } from '../../../../components/common/inputs/checkBoxSelections'\nimport { GItem } from \"../../../../components/common/grids\"\nimport FieldTitle from \"./fieldTitle\"\nimport TextField from \"./textField\"\nimport { translate } from '../../../../../i18n'\n\ninterface CheckBoxFieldProps {\n name: string\n label: string\n title: string\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n otherName?: string\n otherLabel?: string\n otherTitle?: string\n isOtherRequired?: (value: any) => boolean\n children?: ReactNode\n}\n\nconst CheckBoxField = (props: CheckBoxFieldProps) => {\n const { \n name, \n label,\n title, \n required, \n options, \n control,\n otherName,\n otherLabel,\n otherTitle,\n isOtherRequired,\n children\n } = props;\n const [ checkBoxRequired, setCheckBoxRequired ] = useState(true);\n const [ otherRequired, setOtherRequired ] = useState(false);\n \n const checkBoxWatch = useWatch({\n control,\n name: name as facilityReservationInputKey\n })\n const otherWatch = useWatch({\n control,\n name: otherName as facilityReservationInputKey\n })\n \n const valueLabels = options?.map(( option ) => (\n {\n value: option.code,\n label: option.name\n }\n ))\n \n useEffect(() => {\n if ( !isOtherRequired ) return;\n if ( isOtherRequired(otherWatch) ) {\n setOtherRequired(true)\n } else {\n setOtherRequired(false)\n }\n }, [ checkBoxWatch ])\n \n useEffect(() => {\n if ( otherWatch && typeof otherWatch === 'string' && otherWatch.length > 0 ) {\n setCheckBoxRequired(false);\n } else {\n setCheckBoxRequired(true);\n }\n }, [ otherWatch ])\n \n return (\n \n \n \n { \n ( otherName && otherLabel ) && (\n \n )\n }\n {children && (\n <>{children}\n )}\n \n )\n}\n\nexport default CheckBoxField;\n","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport CheckBoxField from \"./common/checkBoxField\"\n\nexport interface SymptomFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst SymptomField = (props: SymptomFieldProps) => {\n const { childNum, required, options, control } = props;\n \n const selectName = `children.${childNum}.symptom.symptoms`\n const otherName = `children.${childNum}.symptom.other`\n \n return (\n \n )\n}\n\nexport default SymptomField;\n","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto'\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface EpidemicFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EpidemicField: React.FC = ({ childNum, required, options, control }) => {\n const name = `children.${childNum}.epidemic`\n const showOtherSelection = ['その他'];\n return (\n \n );\n};\n\nexport default EpidemicField;","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nexport interface MedicineFieldProps {\n childNum: number\n required: boolean\n}\n\nconst MedicineField = (props: MedicineFieldProps) => {\n const { childNum, required } = props;\n\n return (\n <>\n \n \n \n \n );\n}\n\nexport default MedicineField;\n","import { Control, useController } from 'react-hook-form';\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil';\r\nimport { TextBoxBaseStyled } from './textBoxBaseStyled';\r\nimport { translate } from '../../../../i18n';\r\n\r\ninterface NumberBoxProps {\r\n name: string;\r\n label: string;\r\n required?: boolean;\r\n disabled?: boolean;\r\n max?: number;\r\n min?: number;\r\n placeholder?: string;\r\n control?: Control;\r\n showLabel?: boolean;\r\n showError?: boolean;\r\n maxLength?: number;\r\n}\r\n\r\nexport const NumberBox = (props: NumberBoxProps) => {\r\n const { name, label, required, disabled, max, min, placeholder, control, showLabel, showError, ...through} = props;\r\n\r\n const {\r\n field: { ref, ...ctrlProps },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n defaultValue: undefined,\r\n control,\r\n rules: {\r\n required: {\r\n value: !!required,\r\n message: translate('system.error.requiredInput', label),\r\n },\r\n ...(max !== undefined && {\r\n max: {\r\n value: max,\r\n message: translate('system.error.numberOver', max.toString()),\r\n },\r\n }),\r\n ...(min !== undefined && {\r\n min: {\r\n value: min,\r\n message: translate('system.error.numberBelow', min.toString()),\r\n },\r\n }),\r\n // カスタムバリデーション: 半角数字のみ許可\r\n pattern: {\r\n value: /^[0-9]*$/,\r\n message: translate('system.error.onlyHalfWidthNumbers'),\r\n },\r\n },\r\n });\r\n\r\n const error = getValueByNameStr(errors, name);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { useEffect, useState } from \"react\"\nimport { Control, useFormState, useWatch } from \"react-hook-form\"\nimport { FormHelperText } from \"@mui/material\";\nimport { Inputs, facilityReservationInputKey } from '../../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { getValueByNameStr } from \"../../../../../utils/objectUtil\";\nimport { GContainer, GItem } from \"../../../../components/common/grids\"\nimport { NumberBox } from '../../../../components/common/inputs/numberBox'\nimport FieldTitle from \"./fieldTitle\"\nimport { translate } from '../../../../../i18n'\n\nconst PADDING = '0 8px'\n\ninterface DecimalTypeFieldProps {\n name: string\n title: string\n intLabel: string\n fracLabel: string\n unit: string\n required: boolean\n control: Control\n intMax?: number\n intMin?: number\n intPlaceholder?: number\n fracMac?: number\n fracMin?: number\n fracPlaceholder?: number\n isSubField?: boolean\n mt?: number\n}\n\nconst DecimalTypeField = (props: DecimalTypeFieldProps) => {\n const { \n name, \n title,\n intLabel,\n fracLabel,\n unit,\n required, \n control,\n intMax,\n intMin,\n intPlaceholder,\n fracMac,\n fracMin,\n fracPlaceholder,\n isSubField,\n } = props\n const [ isIntegerRequired, setIsIntegerRequired ] = useState(required)\n \n const inteName = `${name}.integer`\n const fracName = `${name}.fractional`\n\n const { errors } = useFormState({ control });\n const watchFractional = useWatch({\n name: fracName as facilityReservationInputKey,\n control\n })\n \n const integerError = getValueByNameStr(errors, inteName as facilityReservationInputKey)\n const fractionalError = getValueByNameStr(errors, fracName as facilityReservationInputKey)\n \n useEffect(() => {\n if ( required ) return;\n if ( watchFractional ) {\n setIsIntegerRequired(true)\n return\n }\n if (!required) {\n setIsIntegerRequired(false)\n }\n }, [watchFractional])\n\n return (\n \n \n \n = 100)? 1.5: 1}>\n \n \n \n .\n \n = 100)? 1.5: 1}>\n \n \n \n {unit}\n \n \n {integerError && {integerError.message}}\n {fractionalError && 少数部分は{fractionalError.message}}\n \n )\n\n}\n\nexport default DecimalTypeField;\n","import { Control } from \"react-hook-form\"\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\n\nexport interface BodyTempatureFieldProps {\n childNum: number\n required: boolean\n control: Control\n}\n\nconst BodyTempatureField = (props: BodyTempatureFieldProps) => {\n const { childNum, required, control } = props\n\n return (\n \n )\n\n}\n\nexport default BodyTempatureField;\n","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nexport interface FebrileSeizuresFieldProps {\n childNum: number\n required: boolean\n}\n\nconst FebrileSeizuresField = (props: FebrileSeizuresFieldProps) => {\n const { childNum, required } = props;\n\n return (\n \n );\n}\n\nexport default FebrileSeizuresField;\n","import { executePost } from '../common/apiCaller'\nimport { PostReservationAttachmentDto, PostReservationAttachmentInputDto } from '../dto/reservationAttachmentDto'\n\nconst apiNamePublic = 'citizen'\nconst apiPath = '/reservations/attachment'\n\nexport const executePostReservationAttachment = (input: PostReservationAttachmentInputDto) => {\n return executePost(apiNamePublic, apiPath, input)\n}\n","import { ChangeEvent, useCallback, useRef } from 'react'\nimport { useController, useFormContext, useFormState } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Box, Tooltip, styled, FormHelperText } from '@mui/material'\nimport { selectSystemControl } from '../../../../containers/common/store/slices/systemControl'\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { showLoading } from '../../../../containers/common/store/slices/application'\nimport { executePostReservationAttachment } from '../../../../dataAccess/webApi/dao/reservationAttachmentDao'\nimport { PostReservationAttachmentInputDto } from '../../../../dataAccess/webApi/dto/reservationAttachmentDto'\nimport { getAuthenticatedUser } from '../../../../utils/authUtil'\nimport { formatDate, getNow } from '../../../../utils/dateUtil'\nimport { GItem } from '../../../components/common/grids'\nimport { ButtonS } from '../../../components/common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../../../components/common/buttons/buttonOutlinedS'\nimport { translate } from '../../../../i18n'\n\nconst EXTENSION = [\n '.jpeg',\n '.jpg',\n '.pdf',\n '.png',\n] as const;\n\nconst VALID_FILE = {\n MAX_NAME_LENGTH: 100,\n MAX_MEGA_BYTE_SIZE: 10,\n EXTENSION: EXTENSION,\n} as const\n\n/**\n * 一時アップロードkey取得\n * @param fileName ファイル名\n * @param loginUserId ログインユーザID\n * @retunr 一時アップロードkey\n */\nconst getTempUploadKey = (\n fileName: string,\n loginUserId: string,\n userId: string\n) => {\n const currentDatetime = formatDate(getNow(), 'yyyyMMddHHmmssSSS')\n return `work/${loginUserId}/${userId}/medicalDoc/${currentDatetime}/${fileName}`\n}\n\nconst UrlTextField = styled(Box)({\n border: '1px solid',\n fontSize: '1rem',\n height: '28px',\n alignItems: 'center',\n display: 'flex',\n paddingLeft: '0.25rem',\n paddingRight: '0.25rem',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontWeight: 'bold'\n});\n\nconst FileSelectArea = styled('label')({\n height: '30px',\n width: '100px',\n fontWeight: '700',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n '& input': {\n display: 'none',\n },\n})\n\nconst extentionStr = VALID_FILE.EXTENSION.join(',')\n\n\ninterface MedicalDocUploadFieldProps {\n name: string\n // 登録済みファイル情報\n registeredFileKey: string | null\n}\n\nexport const MedicalDocUploadField = (props: MedicalDocUploadFieldProps) => {\n const { name, registeredFileKey } = props\n const methods = useFormContext()\n const dispatch = useDispatch()\n const backetName = useSelector(selectSystemControl).s3BucketNameCitizenUserReservationFile\n const fileInputRef = useRef(null);\n\n const {\n field: { onChange, value },\n } = useController({\n name: props.name,\n defaultValue: { fileName: null, delFlg: Flag.OFF, tempUploadKey: null },\n control: methods.control\n })\n const { errors } = useFormState({ control: methods.control });\n const errorMessage = errors[props.name]?.message;\n\n /**\n * ファイルアップロード\n * @param fileInfo アップロードするファイル情報\n */\n const uploadFile = useCallback(\n async (fileInfo: File) => {\n dispatch(\n showLoading({\n process: async () => {\n try {\n const loginUser = await getAuthenticatedUser()\n const loginUserId = loginUser.attributes.sub\n \n const key = getTempUploadKey(fileInfo.name, loginUserId, loginUserId)\n \n // 署名付きURLの取得\n const inputs = {\n fileName: fileInfo.name,\n key: key\n } as PostReservationAttachmentInputDto\n const getUrl = await executePostReservationAttachment(inputs)\n const url = getUrl.result.url\n if (!url) return\n \n // work配下に一時URLでアップロード\n const response = await fetch(url, {\n method: 'PUT',\n body: fileInfo,\n });\n \n if (!response.ok) {\n throw new Error('Upload failed')\n }\n \n onChange({ fileName: fileInfo.name, delFlg: Flag.OFF, tempUploadKey: key })\n } catch (err) {\n methods.setError(\n name, \n { \n message: translate(\"facilityReservationForm.form.error.medicalDoc.failUpload.fail\") \n }, \n { \n shouldFocus: true \n }\n )\n } \n },\n isHiddenMain: false,\n })\n );\n },\n [backetName, methods, name, onChange]\n )\n\n /**\n * ファイル選択処理\n * @param ChangeEvent\n */\n const handleSelectFile = useCallback(\n async (event: ChangeEvent) => {\n methods.clearErrors(name)\n\n try {\n // ファイル情報\n const fileInfo = event.target?.files?.[0]\n // 同じファイルを選択してもchangeイベントをトリガーさせる為valueを空にする\n event.target.value = ''\n if (fileInfo != null) {\n // ファイル名の文字長チェック\n if (fileInfo.name.length > VALID_FILE.MAX_NAME_LENGTH) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.medicalDoc.failUpload.reason.name\",\n VALID_FILE.MAX_NAME_LENGTH.toString()\n )\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイルサイズチェック\n if (fileInfo.size > VALID_FILE.MAX_MEGA_BYTE_SIZE * 1000000) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.medicalDoc.failUpload.reason.byte\",\n VALID_FILE.MAX_MEGA_BYTE_SIZE.toString()\n )?? ''\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイル拡張子チェック\n const isExtentionMatch =\n VALID_FILE.EXTENSION.filter((ext) => {\n const pattern = `^.*\\\\${ext}$`\n return fileInfo.name.toLowerCase().match(pattern)\n }).length > 0\n if (!isExtentionMatch) {\n methods.setError(\n name, \n { \n message: translate('facilityReservationForm.form.error.medicalDoc.failUpload.reason.extention') \n }, \n { \n shouldFocus: true \n }\n )\n return\n }\n await uploadFile(fileInfo)\n }\n } finally {\n }\n },\n [dispatch, methods, name, uploadFile]\n )\n\n /**\n * クリアボタンクリック処理\n */\n const handleClickClear = useCallback(() => {\n methods.clearErrors(name)\n // DBに登録済みのファイルがある場合は削除フラグをONに設定\n const delFlg = registeredFileKey ? Flag.ON : Flag.OFF\n onChange({ fileName: null, delFlg: delFlg, tempUploadKey: null })\n }, [methods, name, onChange, registeredFileKey])\n \n const handleButtonClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n \n \n \n {translate('facilityReservationForm.form.label.medicalDoc.selectBtn')}\n \n \n \n {value.fileName??''}\n \n \n \n \n {translate('facilityReservationForm.form.common.clear')}\n \n \n {\n errorMessage && (\n \n {errorMessage}\n \n )\n }\n \n )\n}\n\nexport default MedicalDocUploadField;","import React, { useCallback } from 'react';\nimport { Control, useFieldArray, useWatch } from \"react-hook-form\"\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { MEDICAL_DOC_USAGE } from '../../../../containers/common/constant/projectMst'\nimport { Inputs, facilityReservationInputKey } from '../../../../containers/facilityReservationForm/facilityReservationFormService'\nimport { GItem } from \"../../../components/common/grids\"\nimport { ButtonS } from '../../../components/common/buttons/buttonS'\nimport { MedicalDocUploadField } from './medicalDocUploadField'\nimport YesNoField from './common/yesNoField'\nimport PreserveLineText from \"./common/preserveLineText\"\nimport { translate } from '../../../../i18n'\nimport { TextBox } from '../../common/inputs/textBox';\nimport { TimePicker } from '../../common/inputs/timePicker';\nimport { DatePicker } from '../../common/inputs/datePicker';\nimport FieldTitle from './common/fieldTitle';\n\nexport interface MedicalDocFieldProps {\n childNum: number\n note: string\n medicalDocUsage: string\n control: Control\n}\n\nconst MedicalDocField = (props: MedicalDocFieldProps) => {\n const { childNum, note, medicalDocUsage, control } = props;\n\n const submittionName = `children.${childNum}.medicalDoc.hasSubmitted` as facilityReservationInputKey\n const uploadName = `children.${childNum}.medicalDoc.docs` as `children.${number}.medicalDoc.docs`\n const hospitalName = `children.${childNum}.hospitalInfo.hospitalName` as facilityReservationInputKey\n const date = `children.${childNum}.hospitalInfo.date` as facilityReservationInputKey\n const time = `children.${childNum}.hospitalInfo.time` as facilityReservationInputKey\n const { fields, append } = useFieldArray({\n name: uploadName,\n control,\n })\n const watchUploadFields = useWatch({\n name: uploadName,\n control\n })\n const watchYesNoField = useWatch({\n name: submittionName,\n control\n })\n\n const isOptional = medicalDocUsage === MEDICAL_DOC_USAGE.OPTIONAL || medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO && watchYesNoField === Flag.OFF\n const validateMedicalDoc = useCallback((value: string) => {\n if (isOptional) return true\n\n if (value === Flag.OFF) {\n return translate(\"facilityReservationForm.form.error.medicalDoc.get\")\n }\n\n if (medicalDocUsage === MEDICAL_DOC_USAGE.TILL_UPLOAD || medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO && watchYesNoField === Flag.ON) {\n const hasValidDocs = watchUploadFields.some((field) => field.tempUploadKey);\n if (!hasValidDocs) {\n return translate(\"facilityReservationForm.form.error.medicalDoc.upload\")\n }\n }\n\n return true\n }, [watchUploadFields, watchYesNoField])\n\n return (\n \n \n { medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO && watchYesNoField === Flag.OFF && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {/** 施設備考 */}\n \n
\n {fields.map((item, docIndex) => (\n \n ))}\n {fields?.length < 5 && (\n \n append({\n fileName: null,\n delFlg: '0',\n tempUploadKey: null,\n })}\n >\n {translate('facilityReservationForm.form.common.add')}\n \n \n )}\n
\n
\n );\n}\n\nexport default MedicalDocField;\n","import React, { useState, useEffect } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { reservationEmergencyAction } from \"../../../../containers/common/constant/classification\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto'\nimport { GItem } from \"../../../components/common/grids\"\nimport { TextBox } from '../../../components/common/inputs/textBox'\nimport { translate } from '../../../../i18n'\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface EmergencyActionFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EmergencyActionField: React.FC = ({ childNum, required, options, control }) => {\n const [ isOtherRequired, setIsOtherRequired ] = useState(false);\n const name = `children.${childNum}.emergencyAction`\n const actionName = `${name}.action`\n \n const actionWatch = useWatch({\n control,\n name: `${actionName}.select` as unknown as keyof Inputs\n })\n \n useEffect(() => {\n if ( !actionWatch ) return;\n \n if ( actionWatch === reservationEmergencyAction.other ) {\n setIsOtherRequired(true)\n return\n }\n setIsOtherRequired(false)\n }, [actionWatch])\n \n return (\n \n \n \n \n \n );\n};\n\nexport default EmergencyActionField;\n","import { Control } from \"react-hook-form\"\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\n\nexport interface HeightFieldProps {\n childNum: number\n required: boolean\n control: Control\n}\n\nconst HeightField = (props: HeightFieldProps) => {\n const { childNum, required, control } = props\n\n return (\n \n )\n\n}\n\nexport default HeightField;\n","import { Control } from \"react-hook-form\"\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\n\nexport interface WeightFieldProps {\n childNum: number\n required: boolean\n control: Control\n}\n\nconst WeightField = (props: WeightFieldProps) => {\n const { childNum, required, control } = props\n\n return (\n \n )\n\n}\n\nexport default WeightField;\n","import { Control, useFormState } from \"react-hook-form\"\nimport { FormHelperText } from \"@mui/material\";\nimport { Inputs, facilityReservationInputKey } from '../../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { getValueByNameStr } from \"../../../../../utils/objectUtil\";\nimport { GContainer, GItem } from \"../../../../components/common/grids\"\nimport { NumberBox } from '../../../../components/common/inputs/numberBox'\nimport FieldTitle from \"./fieldTitle\"\nimport { translate } from '../../../../../i18n'\n\nconst PADDING = '0 8px'\n\ninterface IntegerTypeFieldProps {\n name: string\n title: string\n label: string\n unit: string\n required: boolean\n control: Control\n max?: number\n min?: number\n placeholder?: number\n isSubField?: boolean\n}\n\nconst IntegerTypeField = (props: IntegerTypeFieldProps) => {\n const { \n name, \n title,\n label,\n unit,\n required, \n control,\n max,\n min,\n placeholder,\n isSubField,\n } = props\n\n const { errors } = useFormState({ control });\n const error = getValueByNameStr(errors, name as facilityReservationInputKey)\n\n return (\n \n \n \n \n \n \n \n {unit}\n \n \n {error && {error.message}}\n \n )\n\n}\n\nexport default IntegerTypeField;\n","import React from 'react';\nimport { useState, useEffect } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { reservationEatingMethod } from \"../../../../containers/common/constant/classification\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto'\nimport SelectBoxField from \"./common/selectBoxField\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\nimport IntegerTypeField from \"./common/integerTypeField\"\n\nexport interface EatingMethodFieldProps {\n childNum: number\n required: boolean\n methodOptions?: PostDecodeMstDto[]\n brestFeddingDetailOptions?: PostDecodeMstDto[]\n weaningDetailOptions?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EatingMethodField: React.FC = (props) => {\n const { \n childNum, \n required, \n methodOptions, \n brestFeddingDetailOptions,\n weaningDetailOptions,\n control\n } = props\n const [ detailOption, setDetailOption ] = useState()\n \n const name = `children.${childNum}.eatingMethod`\n const methodName = `${name}.method`\n const detailName = `${name}.detail`\n const milkAmountName = `${name}.milkAmount`\n const milkFrequencyName = `${name}.milkFrequency`\n \n const methodWatch = useWatch({\n control,\n name: `${methodName}.select` as unknown as keyof Inputs\n })\n \n useEffect(() => {\n if ( !methodWatch ) return\n\n // 「授乳中」または「離乳中」であれば詳細項目表示\n if ( methodWatch === reservationEatingMethod.brestFeeding) {\n setDetailOption(brestFeddingDetailOptions)\n return\n }\n if ( methodWatch === reservationEatingMethod.weaning) {\n setDetailOption(weaningDetailOptions)\n return\n }\n setDetailOption(undefined)\n }, [ methodWatch ])\n \n return (\n <>\n {/** 栄養方法 */}\n \n {\n detailOption && (\n <>\n {/** 詳細 */}\n \n \n {\n methodWatch === reservationEatingMethod.brestFeeding && (\n <>\n {/** ミルク量 */}\n \n {/** ミルク回数 */}\n \n \n )\n }\n \n \n \n )\n }\n \n \n \n )\n \n}\nexport default EatingMethodField;\n","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nexport interface FoodAllergyFieldProps {\n childNum: number\n required: boolean\n}\n\nconst FoodAllergyField = (props: FoodAllergyFieldProps) => {\n const { childNum, required } = props;\n\n return (\n \n );\n}\n\nexport default FoodAllergyField;","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface EatingAbilityFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EatingAbilityField = (props: EatingAbilityFieldProps) => {\n const { childNum, required, options, control } = props;\n \n return (\n \n )\n}\n\nexport default EatingAbilityField;\n\n","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface ActionsFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst ActionsField = (props: ActionsFieldProps) => {\n const { childNum, required, options, control } = props;\n \n const showOtherSelection = [\"睡眠\"]\n \n return (\n \n )\n}\n\nexport default ActionsField;\n\n","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface ToiletAbilityFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst ToiletAbilityField = (props: ToiletAbilityFieldProps) => {\n const { childNum, required, options, control } = props;\n \n const name = `children.${childNum}.toiletAbility`\n \n return (\n \n )\n}\n\nexport default ToiletAbilityField;\n\n","import React from \"react\"\nimport TextField from \"./common/textField\"\n\nexport interface ConsiderationsFieldProps {\n childNum: number\n required: boolean\n}\n\nconst ConsiderationsField: React.FC = (props) => {\n const { childNum, required } = props\n return (\n \n )\n}\n\nexport default ConsiderationsField;\n","import { useCallback } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs, facilityReservationInputKey } from '../../../../containers/facilityReservationForm/facilityReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\";\nimport { GItem } from \"../../../components/common/grids\";\nimport ConsentCheckField from \"./common/consentCheckField\";\nimport { translate } from '../../../../i18n'\n\nexport interface ReductionTypeFieldProps {\n childNum: number\n required: boolean\n useConsent: boolean\n options?: PostDecodeMstDto[]\n note: string | null\n consentNote?: string | null\n control: Control\n}\n\nconst ReductionTypeField = (props: ReductionTypeFieldProps) => {\n const { childNum, required, useConsent, options, note, consentNote, control } = props;\n\n const nameBase = `children.${childNum}.reductionType`;\n const selectBoxName = `${nameBase}.reduction`;\n\n const inputWatch = useWatch({ name: `${selectBoxName}.select` as facilityReservationInputKey, control: control })\n \n \n const showConsent = useCallback(() => {\n return inputWatch && inputWatch !== '';\n },[inputWatch]);\n\n return (\n \n \n {note}\n \n {\n (useConsent && showConsent()) &&(\n \n )\n }\n \n )\n}\n\nexport default ReductionTypeField;\n\n","import { ChangeEvent, useCallback, useRef } from 'react'\nimport { useController, useFormContext, useFormState } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Box, Tooltip, styled, FormHelperText } from '@mui/material'\nimport { selectSystemControl } from '../../../../containers/common/store/slices/systemControl'\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { showLoading } from '../../../../containers/common/store/slices/application'\nimport { executePostReservationAttachment } from '../../../../dataAccess/webApi/dao/reservationAttachmentDao'\nimport { PostReservationAttachmentInputDto } from '../../../../dataAccess/webApi/dto/reservationAttachmentDto'\nimport { getAuthenticatedUser } from '../../../../utils/authUtil'\nimport { formatDate, getNow } from '../../../../utils/dateUtil'\nimport { GItem } from '../../common/grids'\nimport { ButtonS } from '../../common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../../common/buttons/buttonOutlinedS'\nimport { translate } from '../../../../i18n'\n\nconst EXTENSION = [\n '.jpeg',\n '.jpg',\n '.pdf',\n '.png',\n] as const;\n\nconst VALID_FILE = {\n MAX_NAME_LENGTH: 100,\n MAX_MEGA_BYTE_SIZE: 10,\n EXTENSION: EXTENSION,\n} as const\n\n/**\n * 一時アップロードkey取得\n * @param fileName ファイル名\n * @param loginUserId ログインユーザID\n * @retunr 一時アップロードkey\n */\nconst getTempUploadKey = (\n fileName: string,\n loginUserId: string,\n userId: string\n) => {\n const currentDatetime = formatDate(getNow(), 'yyyyMMddHHmmssSSS')\n return `work/${loginUserId}/${userId}/attachedDoc/${currentDatetime}/${fileName}`\n}\n\nconst UrlTextField = styled(Box)({\n border: '1px solid',\n fontSize: '1rem',\n height: '28px',\n alignItems: 'center',\n display: 'flex',\n paddingLeft: '0.25rem',\n paddingRight: '0.25rem',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontWeight: 'bold'\n});\n\nconst FileSelectArea = styled('label')({\n height: '30px',\n width: '100px',\n fontWeight: '700',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n '& input': {\n display: 'none',\n },\n})\n\nconst extentionStr = VALID_FILE.EXTENSION.join(',')\n\n\ninterface AttachedDocUploadFieldProps {\n name: string\n // 登録済みファイル情報\n registeredFileKey: string | null\n}\n\nexport const AttachedDocUploadField = (props: AttachedDocUploadFieldProps) => {\n const { name, registeredFileKey } = props\n const methods = useFormContext()\n const dispatch = useDispatch()\n const backetName = useSelector(selectSystemControl).s3BucketNameCitizenUserReservationFile\n const fileInputRef = useRef(null);\n\n const {\n field: { onChange, value },\n } = useController({\n name: props.name,\n defaultValue: { fileName: null, delFlg: Flag.OFF, tempUploadKey: null },\n control: methods.control\n })\n const { errors } = useFormState({ control: methods.control });\n const errorMessage = errors[props.name]?.message;\n\n /**\n * ファイルアップロード\n * @param fileInfo アップロードするファイル情報\n */\n const uploadFile = useCallback(\n async (fileInfo: File) => {\n dispatch(\n showLoading({\n process: async () => {\n try {\n const loginUser = await getAuthenticatedUser()\n const loginUserId = loginUser.attributes.sub\n \n const key = getTempUploadKey(fileInfo.name, loginUserId, loginUserId)\n \n // 署名付きURLの取得\n const inputs = {\n fileName: fileInfo.name,\n key: key\n } as PostReservationAttachmentInputDto\n const getUrl = await executePostReservationAttachment(inputs)\n const url = getUrl.result.url\n if (!url) return\n \n // work配下に一時URLでアップロード\n const response = await fetch(url, {\n method: 'PUT',\n body: fileInfo,\n });\n \n if (!response.ok) {\n throw new Error('Upload failed')\n }\n \n onChange({ fileName: fileInfo.name, delFlg: Flag.OFF, tempUploadKey: key })\n } catch (err) {\n methods.setError(\n name, \n { \n message: translate(\"facilityReservationForm.form.error.attachedDoc.failUpload.fail\") \n }, \n { \n shouldFocus: true \n }\n )\n } \n },\n isHiddenMain: false,\n })\n );\n },\n [backetName, methods, name, onChange]\n )\n\n /**\n * ファイル選択処理\n * @param ChangeEvent\n */\n const handleSelectFile = useCallback(\n async (event: ChangeEvent) => {\n methods.clearErrors(name)\n\n try {\n // ファイル情報\n const fileInfo = event.target?.files?.[0]\n // 同じファイルを選択してもchangeイベントをトリガーさせる為valueを空にする\n event.target.value = ''\n if (fileInfo != null) {\n // ファイル名の文字長チェック\n if (fileInfo.name.length > VALID_FILE.MAX_NAME_LENGTH) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.attachedDoc.failUpload.reason.name\",\n VALID_FILE.MAX_NAME_LENGTH.toString()\n )\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイルサイズチェック\n if (fileInfo.size > VALID_FILE.MAX_MEGA_BYTE_SIZE * 1000000) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.attachedDoc.failUpload.reason.byte\",\n VALID_FILE.MAX_MEGA_BYTE_SIZE.toString()\n )?? ''\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイル拡張子チェック\n const isExtentionMatch =\n VALID_FILE.EXTENSION.filter((ext) => {\n const pattern = `^.*\\\\${ext}$`\n return fileInfo.name.toLowerCase().match(pattern)\n }).length > 0\n if (!isExtentionMatch) {\n methods.setError(\n name, \n { \n message: translate('facilityReservationForm.form.error.attachedDoc.failUpload.reason.extention') \n }, \n { \n shouldFocus: true \n }\n )\n return\n }\n await uploadFile(fileInfo)\n }\n } finally {\n }\n },\n [dispatch, methods, name, uploadFile]\n )\n\n /**\n * クリアボタンクリック処理\n */\n const handleClickClear = useCallback(() => {\n methods.clearErrors(name)\n // DBに登録済みのファイルがある場合は削除フラグをONに設定\n const delFlg = registeredFileKey ? Flag.ON : Flag.OFF\n onChange({ fileName: null, delFlg: delFlg, tempUploadKey: null })\n }, [methods, name, onChange, registeredFileKey])\n \n const handleButtonClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n \n \n \n {translate('facilityReservationForm.form.label.attachedDoc.selectBtn')}\n \n \n \n {value.fileName??''}\n \n \n \n \n {translate('facilityReservationForm.form.common.clear')}\n \n \n {\n errorMessage && (\n \n {errorMessage}\n \n )\n }\n \n )\n}\n\nexport default AttachedDocUploadField;","import { Control, useFieldArray } from \"react-hook-form\"\nimport { INPUT_FIELD_USAGE } from '../../../../containers/common/constant/projectMst'\nimport { Inputs } from '../../../../containers/facilityReservationForm/facilityReservationFormService'\nimport { GItem } from \"../../common/grids\"\nimport { ButtonS } from '../../common/buttons/buttonS'\nimport { AttachedDocUploadField } from './attachedDocUploadField'\nimport { translate } from '../../../../i18n'\nimport { AttentionLabel } from '../../common/attentionLabel';\nimport { TitleLabel } from '../../common/titleLabel';\n\nexport interface AttachedDocFieldProps {\n childNum: number\n attachedDocInput: string\n control: Control\n}\n\nconst AttachedDocField = (props: AttachedDocFieldProps) => {\n const { childNum, attachedDocInput, control } = props;\n \n const uploadName = `children.${childNum}.attachedDoc.docs` as `children.${number}.attachedDoc.docs`\n const { fields, append } = useFieldArray({\n name: uploadName,\n control,\n })\n \n const isOptional = attachedDocInput === INPUT_FIELD_USAGE.OPTIONAL\n\n return (\n \n \n {\n !isOptional && (\n *\n )\n }\n {translate(\"facilityReservationForm.form.label.attachedDoc.field\")}\n \n {/** 施設備考 */}\n
\n {fields.map((item, docIndex) => (\n \n ))}\n {fields?.length < 3 && (\n \n append({\n fileName: null,\n delFlg: '0',\n tempUploadKey: null,\n })}\n >\n {translate('facilityReservationForm.form.common.add')}\n \n \n )}\n
\n
\n );\n}\n\nexport default AttachedDocField;","import React from 'react';\nimport { GItem } from '../../common/grids';\nimport FieldTitle from './common/fieldTitle';\nimport { Select } from '../../common/inputs/select';\nimport { Flag, facilityInputFieldType } from '../../../../containers/common/constant/classification';\nimport TextField from './common/textField';\n\nexport interface FacilityInputFieldProps {\n childNum: number\n id: string\n label: string,\n options: string[]\n inputType: string\n mustFlag: string\n}\nconst FacilityinputField: React.FC = (props) => {\n const { childNum, label, options, inputType, mustFlag, id } = props;\n\n const option = options.filter(option => option !== null).map((option, index) => ({\n label: option, value: String(index + 1)\n }))\n\n const inputName = `children.${childNum}.facilityInputFields.${id}.answer`\n\n return (\n \n \n {\n inputType === facilityInputFieldType.select && (\n \n \n \n )\n }\n {\n inputType === facilityInputFieldType.text && (\n \n \n \n )\n }\n \n );\n\n}\nexport default FacilityinputField;\n","import React from 'react';\nimport { Control } from 'react-hook-form'\nimport { ChildReservationInfoType } from '../../../containers/common/reservation'\nimport { FieldsType, FieldRule, getByChildFormFieldRule } from '../../../containers/common/projectMst'\nimport { Inputs } from \"../../../containers/facilityReservationForm/facilityReservationFormService\"\nimport { GetProjectDetailDto } from \"../../../dataAccess/webApi/dto/projectsDto\"\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto';\nimport { GContainer, GItem } from \"../../components/common/grids\"\nimport { InfoCard } from \"../../components/common/infoCard\"\nimport { TitleLabel } from \"../../components/common/titleLabel\"\nimport ChildContent from \"../../components/common/reservationDetail/childContent\"\nimport DiagonosisField, { DiagonosisFieldProps }from \"./fields/diagonosisField\"\nimport SymptomField, { SymptomFieldProps } from\"./fields/symptomField\"\nimport EpidemicField, { EpidemicFieldProps } from \"./fields/epidemicField\"\nimport MedicineField, { MedicineFieldProps } from \"./fields/medicineField\"\nimport BodyTemperatureField, { BodyTempatureFieldProps } from \"./fields/bodyTempatureField\"\nimport FebrileSeizuresField, { FebrileSeizuresFieldProps } from \"./fields/febrileSeizuresField\"\nimport MedicalDocField, { MedicalDocFieldProps } from \"./fields/medicalDocField\"\nimport EmergencyActionField, { EmergencyActionFieldProps } from \"./fields/emergencyActionField\"\nimport HeightField, { HeightFieldProps } from \"./fields/heightField\"\nimport WeightField, { WeightFieldProps } from \"./fields/weightField\"\nimport EatingMethodField, { EatingMethodFieldProps } from \"./fields/eatingMethodField\"\nimport FoodAllergyField, { FoodAllergyFieldProps } from \"./fields/foodAllergyField\"\nimport EatingAbilityField, { EatingAbilityFieldProps } from \"./fields/eatingAbilityField\"\nimport ActionsField, { ActionsFieldProps } from \"./fields/actionsField\"\nimport ToiletAbilityField, { ToiletAbilityFieldProps } from \"./fields/toiletAbilityField\"\nimport ConsiderationsField, { ConsiderationsFieldProps } from \"./fields/considerationsField\"\nimport ReductionTypeField, { ReductionTypeFieldProps } from \"./fields/reductionTypeField\"\nimport AttachedDocField, { AttachedDocFieldProps } from \"./fields/attachedDocField\"\nimport { Flag, reservationFieldUsage } from '../../../containers/common/constant/classification';\nimport { facilityInputFields } from '../../../dataAccess/webApi/dto/facilitiesDto';\nimport FacilityinputField, { FacilityInputFieldProps } from './fields/facilityInputsField';\nimport { ReservationDetailSettingDto } from '../../../dataAccess/webApi/dto/reservationsDto';\n\ntype Field = {\n component:React.FC\n getProps: (rule: FieldRule, childNum: number) => T\n}\n\ntype SortedField = Field & {\n rule: FieldRule\n}\n\ntype ByChildFormUnitProps = {\n control: Control\n projectMst: GetProjectDetailDto\n childInfoList: ChildReservationInfoType[]\n diagnosisOptions: PostDecodeMstDto[]\n symptomOptions: PostDecodeMstDto[]\n epidemicOptions: PostDecodeMstDto[]\n emergencyOptions: PostDecodeMstDto[]\n eatingMethodOptions: PostDecodeMstDto[]\n brestFeedingDetailOptions: PostDecodeMstDto[]\n weaningDetailOptions: PostDecodeMstDto[]\n eatingAbilityOptions: PostDecodeMstDto[]\n actionsOptions: PostDecodeMstDto[]\n toiletAbilityOptions: PostDecodeMstDto[]\n reductionOptions: PostDecodeMstDto[]\n isolationFlag: Boolean\n useReservationSetting: ReservationDetailSettingDto[]\n facilityInputFieldsDisplayFlag: string\n facilityInputFields?: facilityInputFields[]\n}\n\ninterface FieldComponents {\n diagonosis: Field;\n symptom: Field;\n epidemic: Field;\n medicine: Field;\n bodyTemp: Field;\n febrileSeizures: Field;\n medicalDoc: Field;\n emergency: Field;\n height: Field;\n weight: Field;\n eatingMethod: Field;\n foodAllergy: Field;\n eatingAbility: Field;\n action: Field;\n toiletAbility: Field;\n considerations: Field;\n reduction: Field;\n attachedDoc: Field;\n facilityInputs?: Field\n}\n\nconst ByChildFormUnit: React.FC = (props) => {\n const { \n control, \n projectMst, \n childInfoList,\n diagnosisOptions,\n symptomOptions,\n epidemicOptions,\n emergencyOptions,\n eatingMethodOptions,\n brestFeedingDetailOptions,\n weaningDetailOptions,\n eatingAbilityOptions,\n actionsOptions,\n toiletAbilityOptions,\n reductionOptions,\n isolationFlag,\n useReservationSetting,\n facilityInputFieldsDisplayFlag,\n facilityInputFields\n } = props\n \n const fieldComponents: FieldComponents = {\n diagonosis: {\n component: DiagonosisField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: diagnosisOptions,\n control\n })\n },\n symptom: {\n component: SymptomField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: symptomOptions,\n control\n })\n },\n epidemic: {\n component: EpidemicField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: epidemicOptions,\n control\n })\n },\n medicine: {\n component: MedicineField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required\n })\n },\n bodyTemp: {\n component: BodyTemperatureField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n control\n })\n },\n febrileSeizures: {\n component: FebrileSeizuresField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required\n })\n },\n medicalDoc: {\n component: MedicalDocField,\n getProps: (rule, childNum) => ({\n childNum,\n note: projectMst.medicalDocNote,\n medicalDocUsage: projectMst.medicalDocUsage,\n control\n })\n },\n emergency: {\n component: EmergencyActionField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: emergencyOptions,\n control\n })\n },\n height: {\n component: HeightField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n control\n })\n },\n weight: {\n component: WeightField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n control\n })\n },\n eatingMethod: {\n component: EatingMethodField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n methodOptions: eatingMethodOptions,\n brestFeddingDetailOptions: brestFeedingDetailOptions,\n weaningDetailOptions: weaningDetailOptions,\n control\n })\n },\n foodAllergy: {\n component: FoodAllergyField,\n getProps: (rule, childNum) => ({\n childNum: childNum,\n required: rule.required\n })\n },\n eatingAbility: {\n component: EatingAbilityField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: eatingAbilityOptions,\n control\n })\n },\n action: {\n component: ActionsField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: actionsOptions,\n control\n })\n },\n toiletAbility: {\n component: ToiletAbilityField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: toiletAbilityOptions,\n control\n })\n },\n considerations: {\n component: ConsiderationsField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n })\n },\n reduction: {\n component: ReductionTypeField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n useConsent: projectMst.reductionConsentInput !== reservationFieldUsage.noUse,\n options: reductionOptions,\n note: projectMst.reductionNote,\n consentNote: projectMst.reductionConsentNote,\n control\n })\n },\n attachedDoc: {\n component: AttachedDocField,\n getProps: (rule, childNum) => ({\n childNum,\n attachedDocInput: projectMst.attachedDocInput,\n control\n })\n },\n }\n const fieldRule = getByChildFormFieldRule(projectMst, isolationFlag, useReservationSetting)\n const isMultipleChild = childInfoList.length !== 1\n \n const sortedFields: SortedField[] = Object.keys(fieldRule)\n .filter((fieldKey) => fieldRule[fieldKey as keyof FieldsType].show) \n .map((fieldKey) => {\n const field = fieldKey as keyof FieldsType;\n return {\n component: fieldComponents[field].component,\n getProps: fieldComponents[field].getProps,\n rule: fieldRule[field],\n };\n })\n .sort((a, b) => (a.rule.order ?? Number.MAX_SAFE_INTEGER) - (b.rule.order ?? Number.MAX_SAFE_INTEGER));\n\n if (facilityInputFieldsDisplayFlag === Flag.ON && facilityInputFields ) {\n const facilityFields: SortedField[] = facilityInputFields.map((input) => ({\n component: FacilityinputField,\n getProps: (rule: FieldRule, childNum: number) => ({\n childNum,\n ...input\n }),\n rule: {\n show: true,\n required: true,\n order: Number(input.order)\n }\n }))\n .sort((a, b) => a.rule.order - b.rule.order);\n\n sortedFields.push(...facilityFields)\n }\n \n return (\n <>\n {childInfoList.map((childInfo, childNum) => {\n \n return (\n \n {\n ( isMultipleChild && sortedFields.length > 0 ) && (\n <>\n \n お子さま{childNum + 1}\n \n \n \n \n \n \n \n )\n }\n {\n sortedFields.map(({component: Component, getProps, rule}, index) => (\n \n ))\n }\n \n \n )\n })}\n \n \n )\n}\n\n\n\nexport default ByChildFormUnit;\n","import TextField from \"./common/textField\"\n\nconst NoteField = () => {\n return (\n \n )\n}\n\nexport default NoteField;\n","import { Stack, styled } from '@mui/material'\nimport {\n getCancelLimitHolidayOptionLabel\n} from '../../containers/common/codeMaster'\nimport { availabilityStatus, yesNo } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/facilityReservationForm/facilityReservationFormService'\nimport { translate } from '../../i18n'\nimport { formatHmtoHmOver, formatYmdWeek, fromApiHms } from '../../utils/dateUtil'\nimport { formatCancelLimit } from '../../utils/itemFormatUtil'\nimport { AlertCard } from '../components/common/alertCard'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { Card } from '../components/common/card'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\nimport { Form } from '../components/common/inputs/form'\nimport ReservationDetailGItems, { ReservationDetailGItemsProps } from '../components/common/reservationDetail/reservationDetailGItems'\nimport BasicDetailContent from '../components/common/reservationDetail/basicDetailContent'\n\nimport { StepBar } from '../components/common/stepBar'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { TransitionCheck } from '../components/common/transitionCheck'\nimport CommonFormUnit from \"../components/facilityReservationForm/commonFormUnit\"\nimport ByChildFormUnit from \"../components/facilityReservationForm/byChildFormUnit\"\nimport NoteField from \"../components/facilityReservationForm/fields/noteField\"\n\n\nexport const FacilityReservationForm = () => {\n const {\n reserveEntry,\n reservationReference,\n facility,\n isShownPostponeCancelWaitItem,\n formMethods,\n onSubmit,\n goingTimeFileds,\n showMessages,\n decodemst,\n projectMst,\n cancelSendingFlag,\n isolationFlag\n } = useAction()\n\n if (reserveEntry == null) {\n return \n }\n if (facility == null || reservationReference == null || !projectMst || !decodemst ) {\n // 初期表示処理完了前\n return null\n }\n const detailSetting = (facility.detailSetting.length === 1 && facility.detailSetting[0].useReasonCode === '0') ? facility.detailSetting[0] : facility.detailSetting.find((v) => v.useReasonCode === reservationReference.useReasonCategory)\n const alertCardConents = []\n const messageContent = []\n const AnnotationBox = styled('div')({\n whiteSpace: 'pre-wrap',\n })\n\n if (detailSetting) {\n const { cancelLimit, cancelNote, cancelLimitHolidayOption, cancelLimitTime } = detailSetting\n const fromCancelLimitTime = fromApiHms(cancelLimitTime)\n\n if (cancelLimit != null && fromCancelLimitTime != null) {\n alertCardConents.push(\n
\n {translate('facilityReservationDetail.card.cancelLimit')}:{formatCancelLimit(cancelLimit, fromCancelLimitTime)}\n
\n )\n if (cancelLimitHolidayOption) {\n alertCardConents.push(\n
※{getCancelLimitHolidayOptionLabel(cancelLimitHolidayOption)}
\n )\n }\n }\n if (cancelNote) {\n if (alertCardConents.length) {\n alertCardConents.push(
 
)\n }\n alertCardConents.push({cancelNote})\n }\n }\n\n if (showMessages !== undefined && showMessages.length) {\n for (const messages of showMessages) {\n messageContent.push(\n
\n {messages.message}\n
\n )\n }\n }\n \n const isSingleChild = reserveEntry.childInfoList.length === 1\n // 予約詳細のだし分け\n const DetailComponent: React.FC = isSingleChild? ReservationDetailGItems : BasicDetailContent\n \n const CommonFormUnitComponent = (key: number) => (\n \n );\n \n const ByChildFormUnitComponent = (key: number) => (\n \n );\n \n const formContents = isSingleChild? [ByChildFormUnitComponent, CommonFormUnitComponent]: [CommonFormUnitComponent, ByChildFormUnitComponent]\n\n return (\n <>\n
\n \n \n \n \n \n\n \n {reserveEntry.usageDatetimes[0].status === availabilityStatus.wait && (\n \n
キャンセル待ち日時が選択されています
\n {facility.immediatelyReservationFlag === yesNo.yes ? (\n cancelSendingFlag && (\n <>\n
 
\n
\n 申し込みをした日においてキャンセルが発生した場合、その日でキャンセル待ちを申し込んでいる利用者全員に通知メールが届くようになっています。\n
\n
\n \n ※メールが届いてもその直後に他の利用者による予約で枠が埋まった場合、利用申し込みはできません。\n \n
\n \n )\n ) : (\n <>\n
 
\n
キャンセル待ちの期限(当日・前日・希望日)を備考欄に記入してください。
\n
申し込みをした日にキャンセルが発生した場合、改めて施設より連絡があります。
\n
尚、キャンセル待ちを取り消す場合は、キャンセル待ち取消を行ってください。
\n \n )}\n
\n )}\n\n {reserveEntry.usageDatetimes[0].status !== availabilityStatus.wait && !!alertCardConents.length && (\n \n
キャンセルについて
\n
 
\n {alertCardConents.map((v) => v)}\n
\n )}\n\n {showMessages?.length && !!messageContent.length && (\n \n
未確定の予約と重なる日時に確定済予約を登録します。以下日程の未確定予約の確認をお願いします。
\n
 
\n {messageContent.map((v) => v)}\n
\n )}\n\n
\n \n \n 利用希望日時\n \n {reserveEntry.usageDatetimes.map((usageDatetime, index) => (\n \n \n \n \n \n {formatYmdWeek(usageDatetime.usageDate)}\n \n \n \n \n \n {formatHmtoHmOver(\n {\n from: usageDatetime.useFromDatetime,\n to: usageDatetime.useToDatetime,\n },\n usageDatetime.usageDate\n )}\n \n \n \n \n \n \n ))}\n \n
\n \n \n \n \n \n {/** フォームコンテンツ */}\n {\n formContents.map((component, index) => (component(index)))\n }\n {/** 備考 */}\n \n
\n
\n \n
\n\n {/* 画面下部ボタングループ */}\n \n \n 申込内容の確認\n \n \n \n
\n
\n \n )\n}\n","// CheckBoxesGroup.tsx\nimport { Checkbox, FormControl, FormControlLabel, styled } from '@mui/material'\nimport React, { ReactElement } from 'react'\nimport { Control, useController } from 'react-hook-form'\nimport { translate } from '../../../../i18n'\n\ninterface CheckBoxProps {\n children: string | ReactElement\n name: string\n label: string\n valueAtCheck: string\n required?: boolean\n valicationMessageKeys?: Record\n control?: Control\n onChange?: (value: string, checked: boolean) => void\n checkedChildren: string[]\n}\n\nconst Root = styled(FormControl)(() => ({\n '& .MuiCheckbox-root': {\n paddingTop: 0,\n paddingBottom: 0,\n },\n '& .MuiFormControlLabel-label': {\n lineHeight: 'normal',\n },\n}));\n\nexport const CheckBoxesGroup: React.FC = (props) => {\n const { name, label, required, control, valueAtCheck, children, onChange, checkedChildren } = props\n const messageKeys = props.valicationMessageKeys ?? {}\n \n const {\n field: { ref, onChange: fieldOnChange, ...ctrlProps },\n } = useController({\n name,\n rules: {\n required: {\n value: !!required,\n message: translate(messageKeys.required ?? 'system.error.requiredSelection', label),\n },\n },\n defaultValue: '',\n control,\n })\n\n const handleChange = (event: React.ChangeEvent, checked: boolean) => {\n fieldOnChange(checked ? valueAtCheck : '')\n if (onChange) onChange(valueAtCheck, checked)\n }\n \n return (\n \n }\n />\n \n )\n}\n","import { translate } from '../../../../../i18n'\nimport { GContainer, MiddleGItem } from '../../grids'\n\n// お子さま名\nconst ChildName = (props: {childName: string}) => (\n \n \n {translate('facilityLotteryReservationUpdateSelection.label.childName')}\n \n {props.childName} \n \n)\nexport default ChildName","import React, { useEffect } from 'react'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { styled, SelectChangeEvent, FormControl, FormGroup, FormHelperText, Stack } from '@mui/material'\r\nimport { Inputs } from '../../../../../containers/facilityReservationSelection/facilityReservationSelectionService'\r\nimport { getValueByNameStr } from '../../../../../utils/objectUtil'\r\nimport { translate } from '../../../../../i18n'\r\nimport { MiddleGItem, GContainer } from '../../grids'\r\nimport { SelectNoBind } from '../../inputs/selectNoBind'\r\nimport { CheckBoxesGroup } from '../../inputs/checkBoxesGroup'\r\nimport ChildName from './childName'\r\n\r\nconst ThreeRowsGContainer = styled(MiddleGItem)({\r\n display: 'inline-block',\r\n boxSizing: 'border-box',\r\n})\r\n\r\nconst ChildSelectionGContainer = styled(GContainer)({\r\n marginBottom: '8px',\r\n})\r\n\r\ninterface ChildSelectionProps {\r\n childs: { value: string; label: string }[]\r\n changeSelectedChildIds?: (childId: string, checked: boolean) => void\r\n changeDropDownSelectedChildId?: (event: SelectChangeEvent) => void\r\n control: Control\r\n multiChildReservationAvailabilityFlag: string\r\n checkedChildren: string[]\r\n isSelectable?: boolean\r\n}\r\n\r\nconst Root = styled(FormControl)(() => ({\r\n '& .MuiCheckbox-root': {\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n '& .MuiFormControlLabel-label': {\r\n lineHeight: 'normal',\r\n },\r\n}))\r\n\r\n// TODO: 一人の場合のコンポーネント&フォルダ移動\r\nconst ChildSelection: React.FC = (\r\n { control, childs, changeSelectedChildIds, changeDropDownSelectedChildId, multiChildReservationAvailabilityFlag, checkedChildren, isSelectable }\r\n ) => {\r\n \r\n const {\r\n field: { onChange, ...ctrlProps },\r\n formState: { errors },\r\n } = useController({\r\n name: 'selectedChildIds',\r\n rules: {\r\n required: {\r\n value: true,\r\n message: '1つ以上選択してください',\r\n },\r\n },\r\n defaultValue: ''\r\n })\r\n const error = getValueByNameStr(errors, 'selectedChildIds')\r\n \r\n useEffect(() => {\r\n if (childs.length === 1) {\r\n onChange([childs[0].value]); // 自動的に選択する\r\n }\r\n }, [childs]);\r\n\r\n return (\r\n \r\n {\r\n (isSelectable !== undefined && !isSelectable) || childs.length <= 1\r\n ? \r\n : (\r\n multiChildReservationAvailabilityFlag === '1' \r\n ? \r\n
\r\n {translate('facilityReservationSelection.label.selectionChild')}\r\n
\r\n \r\n \r\n \r\n \r\n {childs.map((child, index) => (\r\n \r\n {child.label}\r\n \r\n ))}\r\n \r\n \r\n \r\n {error && {'対象のお子さまを1人以上選択してください'}}\r\n \r\n \r\n
\r\n : \r\n
\r\n {translate('facilityReservationSelection.label.selectionChild')}\r\n
\r\n \r\n
\r\n )\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default ChildSelection\r\n","import React from 'react'\nimport { styled, SelectChangeEvent, Grid } from '@mui/material'\nimport { translate } from '../../../../../i18n'\nimport { GContainer } from '../../grids'\nimport { SelectNoBind } from '../../inputs/selectNoBind'\nimport { AttentionLabel } from '../../attentionLabel'\nimport { PageState } from '../../../../../containers/facilityReservationSelection/facilityReservationSelectionService'\nimport { TextBox } from '../../inputs/textBox'\n\nconst ChildSelectionGContainer = styled(GContainer)({\n marginBottom: '8px',\n})\n\ninterface diagonosisSelectionProps {\n diagonosisDecodeMst: { value: string; label: string }[]\n changeDropDownSelectedDiagonosis: (event: SelectChangeEvent) => void\n state: PageState\n name: string\n showOtherFlag: boolean\n isrequired: boolean\n isSelectable?: boolean\n}\nconst DiagonosisSelection: React.FC = (\n { diagonosisDecodeMst, changeDropDownSelectedDiagonosis, name, state, showOtherFlag, isrequired }\n) => {\n const value = state.diagonosis[name as keyof typeof state.diagonosis];\n\n return (\n \n
\n {translate(`facilityReservationSelection.label.diagonosis.${name}`)}\n {\n isrequired && (\n *\n )\n }\n
\n \n \n \n \n {\n showOtherFlag === true && (\n \n \n \n )\n }\n \n
\n )\n}\n\nexport default DiagonosisSelection","import { translate } from '../../../../../i18n'\nimport { BottomButtonGroup } from '../../bottomButtonGroup'\nimport { BackButton } from '../../buttons/backButton'\nimport { ButtonOutlinedWarningL } from '../../buttons/buttonOutlinedWarningL'\n\n// ページ移動ボタン\nconst BottomButtons = () => (\n \n \n {translate('facilityReservationSelection.button.applyOnTheSelectedSchedule')}\n \n \n \n)\nexport default BottomButtons;\n\n","import { StepBar } from '../stepBar'\n\n// TODO: 保存場所について検討\nexport const RESERVATION_STEPS = {\n SELECTION : '①',\n FORM: '②',\n CONFIRMATION: '③',\n COMPLETE: '④'\n} as const;\n\ntype ReservationStepBarProps = {\n activeStepValue: typeof RESERVATION_STEPS[keyof typeof RESERVATION_STEPS] \n}\n\n// 予約ステップバー\nconst ReservationStepBar = (props: ReservationStepBarProps) => (\n \n);\nexport default ReservationStepBar;","import { Box, Stack } from '@mui/material'\nimport { reservationChangeRestriction, yesNo } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/facilityReservationSelection/facilityReservationSelectionService'\nimport { translate } from '../../i18n'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { GContainer, GItem } from '../components/common/grids'\nimport {\n AvailabilityCalendar,\n calendarChangeRestriction,\n CalendarChangeRestrictionType,\n} from '../components/common/inputs/availabilityCalendar'\nimport { Form } from '../components/common/inputs/form'\nimport ChildSelection from '../components/common/reservationFlow/selection/childSelection'\nimport DiagonosisSelection from '../components/common/reservationFlow/selection/diagonosisSelection'\nimport BottomButtons from '../components/common/reservationFlow/selection/bottomButtons'\nimport DateSelection from '../components/common/reservationFlow/selection/dateSelection'\nimport FacilityLinkedName from '../components/common/reservationFlow/selection/facilityLinkedName'\nimport FacilityNoteCard from '../components/common/reservationFlow/selection/facilityNote'\nimport ReservationStepBar, { RESERVATION_STEPS } from '../components/common/reservationFlow/reservationStepBar'\nimport UseReasonSelection from '../components/common/reservationFlow/selection/useReasonSelection'\nimport { AttentionLabel } from '../components/common/attentionLabel'\n\n/** 施設の予約変更制限値とカレンダーコントロールの変更制限値のマッピング */\nconst reservationChangeRestrictionToCalendarChangeableMap: Readonly> = {\n [reservationChangeRestriction.allowChangeDatetime]: calendarChangeRestriction.datetime,\n [reservationChangeRestriction.allowChangeTimeOnly]: calendarChangeRestriction.time,\n [reservationChangeRestriction.notAllowChangeDatetime]: calendarChangeRestriction.none,\n} as const\n\nexport const FacilityReservationSelection = () => {\n const {\n state,\n previousRange,\n formMethods,\n onSubmit,\n changeSelectedChildIds,\n changeDropDownSelectedChildId,\n changeDate,\n purposeOfUse,\n useReasonDetailIrregular,\n useReasonDetailEmg,\n useReasonDetailRefresh,\n changeUseReason,\n handleChangeFirst,\n handleChangeSecond,\n multiChildReservationAvailabilityFlag,\n isShowFirstOTher,\n isShowSecondOTher\n } = useAction()\n\n if (!state) {\n return null\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n state.commonFlag === yesNo.no\n && Object.values(state.useReasonOptions).some((usage) => usage)\n && (\n \n )\n }\n {\n state.isolationFlag && (\n <>\n \n \n \n )\n }\n \n \n \n {\n state.availabilities.length > 0 && (\n \n \n \n {translate(state.usageGuideStr)}\n \n \n \n \n {\n state.note && (\n {state.note}\n )\n }\n \n \n {\n state.lotteryNote && (\n {state.lotteryNote}\n )\n }\n \n {\n state.commonFlag === yesNo.yes \n && Object.values(state.useReasonOptions).some((usage) => usage)\n && (\n \n \n \n )\n }\n \n )\n }\n \n \n {\n state.availabilities.length > 0 && (\n {translate('facilityReservationSelection.label.annotation')}\n )\n }\n \n \n \n \n \n
\n )\n}\n","import { addMonths, isAfter, isBefore } from 'date-fns'\r\nimport { useCallback, useLayoutEffect } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router'\r\nimport { useLocation, useParams } from 'react-router-dom'\r\nimport { translate } from '../../i18n'\r\nimport { getNowTrimedTime } from '../../utils/dateUtil'\r\nimport {\r\n datePropsToNumber,\r\n nullPropsToUndefined,\r\n numberPropsToDate,\r\n undefinedPropsToNull,\r\n} from '../../utils/objectUtil'\r\nimport { setFormErrors } from '../../utils/reactUtil'\r\nimport { blankToNull, splitRemoveBlank } from '../../utils/stringUtil'\r\nimport {\r\n getAges,\r\n getAreas,\r\n getFacilityCategories,\r\n getProjects,\r\n getSearchFlags,\r\n getWebReservations,\r\n} from '../common/codeMaster'\r\nimport { facilitySearchResultUrl } from '../common/constant/appUrl'\r\nimport {\r\n purposeOfUse as purposeOfUseValue,\r\n yesNo,\r\n} from '../common/constant/classification'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n clearFacilitySearchResult,\r\n selectFacilitySearchCodeMaster,\r\n selectFacilitySearchCondition,\r\n setFacilitySearchCodeMaster,\r\n setFacilitySearchCondition,\r\n} from '../common/store/slices/facilitySearch'\r\nimport { getUseReason } from '../common/useReason'\r\nimport {\r\n selectFacilitySearchSettingMsts,\r\n setFacilitySearchSettingMsts,\r\n} from '../common/store/slices/facilitySearchSetting'\r\nimport { getFacilitySearchSettingMsts } from '../home/homeService'\r\nimport { GetFacilitiesInputDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { executeGetFacilities } from '../../dataAccess/webApi/dao/facilitiesDao'\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n projectIds: string[]\r\n}\r\n\r\ninterface UrlParams {\r\n projectCategoryId: string\r\n}\r\n\r\nexport interface Inputs {\r\n /** 地域(カンマ区切り) */\r\n areas: string\r\n /** 年齢(カンマ区切り) */\r\n ages: string\r\n /** フリーワード */\r\n freeWord: string\r\n /** Web受付可否 */\r\n reservationAcceptFlag: string\r\n /** 事業ID(カンマ区切り) */\r\n projectIds: string\r\n /** 施設種別(カンマ区切り) */\r\n facilityCategories: string\r\n /** その他詳細条件(カンマ区切り) */\r\n otherDetailConditions: string\r\n /** 利用日 */\r\n usageDate: Date | null\r\n /** 利用目的(カンマ区切り) */\r\n purposeOfUses: string\r\n}\r\ntype InputTypePropName = keyof Inputs\r\n\r\n/**\r\n * 施設検索制御マスタを一覧取得して返す\r\n * @return {Array} - facilitySearchSettingMstsのリスト\r\n */\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const location = useLocation()\r\n const { projectCategoryId } = useParams()\r\n const searchCondition = useSelector(selectFacilitySearchCondition)\r\n const codeMaster = useSelector(selectFacilitySearchCodeMaster)\r\n const facilitySearchSettingMsts = useSelector(selectFacilitySearchSettingMsts)\r\n\r\n const locationState = history.location.state\r\n\r\n const dispatch = useDispatch()\r\n const formMethods = useForm({\r\n ...(locationState?.isKeep && {\r\n defaultValues: numberPropsToDate(\r\n {\r\n areas: searchCondition?.areas?.join(','),\r\n ages: searchCondition?.ages?.join(','),\r\n freeWord: searchCondition?.freeWord,\r\n reservationAcceptFlag:\r\n searchCondition?.reservationAcceptFlag?.join(','),\r\n projectIds: searchCondition?.projectIds?.join(','),\r\n facilityCategories: searchCondition?.facilityCategories?.join(','),\r\n otherDetailConditions:\r\n searchCondition?.otherDetailConditions?.join(','),\r\n usageDate: searchCondition?.usageDate,\r\n purposeOfUses: searchCondition?.purposeOfUses?.join(','),\r\n },\r\n ['usageDate']\r\n ),\r\n }),\r\n })\r\n\r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n if (codeMaster.areas == null || !locationState?.isKeep) {\r\n const initialize = async () => {\r\n const facilitySearchSettingMstsRes =\r\n await getFacilitySearchSettingMsts()\r\n\r\n const allFacilities = await getFacilities(\r\n locationState?.projectIds || []\r\n )\r\n // 選択した事業の年齢の最大値を取得\r\n const acceptEndAge = Math.max(...allFacilities.map(facility => facility.acceptEndAge ?? 0))\r\n\r\n const targetFacilitySearchSetting = facilitySearchSettingMstsRes?.find(\r\n (facilitySearchSettingMst) =>\r\n projectCategoryId === facilitySearchSettingMst.projectCategoryId\r\n )\r\n\r\n const {\r\n ageSearchFlag,\r\n facilityCategorySearchFlag,\r\n areaSearchFlag,\r\n reservationSearchFlag,\r\n otherSearchFlag,\r\n useReasonSearchFlag,\r\n } = targetFacilitySearchSetting || {}\r\n /** 初期表示情報の取得処理 */\r\n const resultDto = await getFacilityConditionInfo(\r\n projectCategoryId,\r\n acceptEndAge,\r\n ageSearchFlag || yesNo.no,\r\n facilityCategorySearchFlag || yesNo.no,\r\n areaSearchFlag || yesNo.no,\r\n reservationSearchFlag || yesNo.no,\r\n otherSearchFlag || yesNo.no,\r\n useReasonSearchFlag || yesNo.no\r\n )\r\n dispatch(setFacilitySearchCodeMaster(resultDto))\r\n dispatch(setFacilitySearchSettingMsts(facilitySearchSettingMstsRes))\r\n }\r\n dispatch(showLoading(errorHandle(initialize)))\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n /**\r\n * 項目間などの入力値妥当性検査\r\n * @param data 入力値\r\n * @returns エラーが存在する場合true\r\n */\r\n const validateItems = useCallback(\r\n (data: Inputs) => {\r\n const errors: { name: InputTypePropName; message: string }[] = []\r\n\r\n if (data.usageDate) {\r\n const { usageDate } = data\r\n const minDate = getNowTrimedTime()\r\n const maxDate = addMonths(minDate, 1)\r\n if (isBefore(usageDate, minDate) || isAfter(usageDate, maxDate)) {\r\n errors.push({\r\n name: 'usageDate',\r\n message: translate('facilitySearchCondition.error.usageDateRange'),\r\n })\r\n }\r\n }\r\n\r\n setFormErrors(formMethods, errors)\r\n\r\n return !!errors.length\r\n },\r\n [formMethods]\r\n )\r\n\r\n const onSubmit = useCallback(\r\n async (data: Inputs) => {\r\n if (validateItems(data)) {\r\n return\r\n }\r\n \r\n dispatch(\r\n setFacilitySearchCondition(\r\n nullPropsToUndefined(\r\n datePropsToNumber({\r\n areas: splitRemoveBlank(',', data.areas),\r\n ages: splitRemoveBlank(',', data.ages),\r\n projectIds: splitRemoveBlank(',', data.projectIds).length\r\n ? splitRemoveBlank(',', data.projectIds)\r\n : locationState?.projectIds,\r\n isProjectSelected: getisProjectSelected(data.projectIds),\r\n facilityCategories: splitRemoveBlank(',', data.facilityCategories),\r\n freeWord: blankToNull(data.freeWord),\r\n reservationAcceptFlag: splitRemoveBlank(\r\n ',',\r\n data.reservationAcceptFlag\r\n ),\r\n otherDetailConditions: splitRemoveBlank(\r\n ',',\r\n data.otherDetailConditions\r\n ),\r\n usageDate: data.usageDate,\r\n purposeOfUses: splitRemoveBlank(',', data.purposeOfUses),\r\n })\r\n )\r\n )\r\n )\r\n \r\n dispatch(clearFacilitySearchResult())\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({\r\n ...history.location,\r\n state: {\r\n isKeep: true,\r\n projectIds: location.state.projectIds,\r\n },\r\n })\r\n history.push(facilitySearchResultUrl.url())\r\n },\r\n [dispatch, history, validateItems]\r\n )\r\n\r\n const getisProjectSelected = (projectIds: string) => {\r\n if (targetFacilitySearchSetting?.projectSearchFlag === '0') {\r\n return false\r\n } else if (targetFacilitySearchSetting?.projectSearchFlag === '1' && projectIds === '') {\r\n return false\r\n }\r\n return true\r\n }\r\n \r\n const targetFacilitySearchSetting = facilitySearchSettingMsts?.find(\r\n (facilitySearchSettingMst) =>\r\n projectCategoryId === facilitySearchSettingMst.projectCategoryId\r\n )\r\n\r\n return {\r\n codeMaster,\r\n onSubmit,\r\n formMethods,\r\n targetFacilitySearchSetting,\r\n }\r\n}\r\n\r\nasync function getFacilityConditionInfo(\r\n projectCategoryId: string,\r\n acceptEndAge: number,\r\n ageSearchFlag: string,\r\n facilityCategorySearchFlag: string,\r\n areaSearchFlag: string,\r\n reservationSearchFlag: string,\r\n otherSearchFlag: string,\r\n useReasonSearchFlag: string\r\n) {\r\n const [\r\n areas,\r\n projects,\r\n facilityCategories,\r\n searchFlags,\r\n allAges,\r\n reservationAcceptFlag,\r\n useReason,\r\n ] = await Promise.all([\r\n /** 非同期実行 */\r\n /** APIの実行(地域一覧取得)*/\r\n areaSearchFlag === yesNo.yes ? getAreas() : [],\r\n\r\n /** APIの実行(事業取得)*/\r\n /** 中間表示を利用する際にデフォルト値に必要となるため空の配列は不要 */\r\n getProjects(undefined, projectCategoryId),\r\n\r\n /** APIの実行(施設種別マスタ取得)*/\r\n facilityCategorySearchFlag === yesNo.yes ? getFacilityCategories() : [],\r\n\r\n /** APIの実行(検索フラグマスタ取得)*/\r\n otherSearchFlag === yesNo.yes ? getSearchFlags() : [],\r\n\r\n /** 定数値の取得(年齢)*/\r\n ageSearchFlag === yesNo.yes ? getAges() : [],\r\n\r\n /** 定数値の取得(Web予約可否)*/\r\n reservationSearchFlag === yesNo.yes ? getWebReservations() : [],\r\n\r\n /** 利用目的の取得 */\r\n getUseReason(),\r\n ])\r\n\r\n const ages = allAges.filter((age) => {\r\n if (acceptEndAge < 6) {\r\n return age.value !== '6' && age.value !== '7'\r\n } else if (acceptEndAge < 9) {\r\n return age.value !== '7'\r\n }\r\n return true\r\n })\r\n\r\n const purposeOfUses =\r\n useReasonSearchFlag === yesNo.yes\r\n ? [\r\n {\r\n value: purposeOfUseValue.irregular,\r\n label: useReason.displayNameForCitizenIrregular,\r\n },\r\n {\r\n value: purposeOfUseValue.emergency,\r\n label: useReason.displayNameForCitizenEmg,\r\n },\r\n {\r\n value: purposeOfUseValue.refresh,\r\n label: useReason.displayNameForCitizenRefresh,\r\n },\r\n ]\r\n : []\r\n\r\n return {\r\n areas,\r\n projects,\r\n facilityCategories,\r\n otherDetailConditions: searchFlags,\r\n ages,\r\n reservationAcceptFlag,\r\n purposeOfUses,\r\n }\r\n}\r\n\r\nasync function getFacilities(projectIds: string[]) {\r\n const input: GetFacilitiesInputDto = undefinedPropsToNull({\r\n latitude: null,\r\n longitude: null,\r\n areaIds: [],\r\n ages: [],\r\n freeWord: null,\r\n reservationAcceptFlag: null,\r\n projectIds,\r\n facilityCategories: [],\r\n searchFlagNos: [],\r\n usageDate: null,\r\n purposeOfUses: [],\r\n sortOrder: '1',\r\n })\r\n const apiResponse = await executeGetFacilities(input)\r\n return apiResponse.result.map((facility) => {\r\n const { imageUrls, ...other } = facility\r\n return {\r\n ...nullPropsToUndefined(other),\r\n // 画像URLは穴あきで設定される可能性があるため\r\n imageUrl: imageUrls.find((url) => url),\r\n }\r\n })\r\n}\r\n","import React from 'react'\nimport SearchIcon from '@mui/icons-material/Search'\nimport { IconProps } from './iconBase'\n\n/** 検索のアイコン */\nexport const SearchGlassIcon = (props: IconProps) => {\n return \n}\n","import React from 'react'\r\nimport { Grid, GridSize } from '@mui/material'\r\nimport { Control, useController } from 'react-hook-form'\r\nimport { ButtonOutlinedS } from '../buttons/buttonOutlinedS'\r\nimport { ButtonS } from '../buttons/buttonS'\r\nimport { translate } from '../../../../i18n'\r\n\r\ntype BreakpointColumns = 1 | 2 | 3 | 4 | 6 | 12\r\n\r\ninterface ToggleButtonGroupProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 選択肢の値と表示文言配列 */\r\n buttonValueLabels: { value: string; label: string }[]\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n /** ブレイクポイントxsでの表示列数 */\r\n xsColumns?: BreakpointColumns\r\n /** ブレイクポイントsmでの表示列数 */\r\n smColumns?: BreakpointColumns\r\n /** ブレイクポイントmdでの表示列数 */\r\n mdColumns?: BreakpointColumns\r\n /** ブレイクポイントlgでの表示列数 */\r\n lgColumns?: BreakpointColumns\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n}\r\n\r\nconst getGridNumber = (columns?: BreakpointColumns): boolean | GridSize =>\r\n columns == null ? false : ((12 / columns) as GridSize)\r\n\r\nconst toggle = (currentValue: string, newValue: string) => {\r\n const values = new Set(currentValue?.split(',').filter((x) => x) || [])\r\n if (values.has(newValue)) {\r\n values.delete(newValue)\r\n } else {\r\n values.add(newValue)\r\n }\r\n return Array.from(values.values()).join(',')\r\n}\r\n\r\n/** トグルボタングループフォームコントロール */\r\nexport const ToggleButtonGroup = (props: ToggleButtonGroupProps) => {\r\n const { field } = useController({\r\n name: props.name,\r\n defaultValue: '',\r\n rules: {\r\n required: {\r\n value: !!props.required,\r\n message: translate('system.error.requiredSelectionMinimumOneMore', props.label),\r\n },\r\n },\r\n control: props.control,\r\n })\r\n return (\r\n
\r\n \r\n {props.buttonValueLabels.map(({ value, label }) => (\r\n \r\n {field.value?.split(',').some((x: string) => x === value) ? (\r\n field.onChange(toggle(field.value, value))}>\r\n {label}\r\n \r\n ) : (\r\n field.onChange(toggle(field.value, value))}>\r\n {label}\r\n \r\n )}\r\n \r\n ))}\r\n \r\n
\r\n )\r\n}\r\n","import { Box, Stack, styled } from '@mui/material'\r\nimport { useAction } from '../../containers/facilitySearchCondition/facilitySearchConditionService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { GContainer, GItem, MiddleGItem } from '../components/common/grids'\r\nimport { SearchGlassIcon } from '../components/common/icons/searchGlassIcon'\r\nimport { DatePicker } from '../components/common/inputs/datePicker'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { ToggleButtonGroup } from '../components/common/inputs/toggleButtonGroup'\r\nimport { SubTitle } from '../components/common/subTitle'\r\n\r\nconst UsageDateGItem = styled(GItem)(({ theme }) => ({\r\n [theme.breakpoints.down('sm')]: {\r\n width: '13rem',\r\n },\r\n}))\r\n\r\nexport const FacilitySearchCondition = () => {\r\n const { codeMaster, onSubmit, formMethods, targetFacilitySearchSetting } = useAction()\r\n \r\n return (\r\n
\r\n \r\n \r\n \r\n {\r\n targetFacilitySearchSetting?.ageSearchFlag === '1' && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n targetFacilitySearchSetting?.areaSearchFlag === '1' && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n targetFacilitySearchSetting?.reservationSearchFlag === '1' && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('facilitySearchCondition.label.usageDate')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n targetFacilitySearchSetting?.projectSearchFlag === '1' && (\r\n <>\r\n {!!codeMaster.projects?.length && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n {\r\n targetFacilitySearchSetting?.facilityCategorySearchFlag === '1' && (\r\n <>\r\n {!!codeMaster.facilityCategories?.length && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }\r\n\r\n {\r\n targetFacilitySearchSetting?.otherSearchFlag === '1' && (\r\n <>\r\n \r\n \r\n \r\n \r\n {return (map?.label?.match(/^[ ]*$/) == null)} )\r\n ?? []\r\n }\r\n xsColumns={2}\r\n mdColumns={3}\r\n />\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n {\r\n targetFacilitySearchSetting?.useReasonSearchFlag === '1' && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n \r\n \r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('facilitySearchCondition.button.search')}\r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n","import { SelectChangeEvent } from '@mui/material'\r\nimport { SyntheticEvent, useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router'\r\nimport { executeGetFacilities, resultCodeGetFacilities } from '../../dataAccess/webApi/dao/facilitiesDao'\r\nimport { GetFacilitiesInputDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { formatYmd, toApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined, undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { blankToNull, toInts } from '../../utils/stringUtil'\r\nimport { getFacilitySearchSortOrders } from '../common/codeMaster'\r\nimport { facilityDetailUrl } from '../common/constant/appUrl'\r\nimport { facilitySearchSortOrder } from '../common/constant/classification'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getCurrentPosition } from '../common/location'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n CodeEntry,\r\n CodeMaster,\r\n SearchCondition,\r\n selectFacilitySearchCodeMaster,\r\n selectFacilitySearchCondition,\r\n selectIsDisabledCurrentLocation,\r\n selectResultAllFacilities,\r\n selectResultIsDirty,\r\n selectResultIsLimitOver,\r\n selectResultMapCenter,\r\n setActiveFacility,\r\n setFacilitySearchCondition,\r\n setFacilitySearchResult,\r\n setFacilitySearchSortOrder,\r\n setMapCenter,\r\n} from '../common/store/slices/facilitySearch'\r\n\r\ninterface LocationState {\r\n /** アクティブなタブの値 */\r\n tabValue?: string\r\n conditionExpanded?: boolean\r\n}\r\n\r\n/** タブの選択値 */\r\nexport const tabValue = {\r\n mapHide: '1',\r\n mapShow: '2',\r\n} as const\r\n\r\nexport const useAction = () => {\r\n const history = useHistory()\r\n const nextHistory = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n const [conditionExpanded, setConditionExpanded] = useState(history.location.state?.conditionExpanded ?? false)\r\n const [activeTabValue, setActiveTabValue] = useState(history.location.state?.tabValue ?? tabValue.mapHide)\r\n\r\n const searchCondition = useSelector(selectFacilitySearchCondition)\r\n const isResultDirty = useSelector(selectResultIsDirty)\r\n const isLimitOver = useSelector(selectResultIsLimitOver)\r\n const allFacilities = useSelector(selectResultAllFacilities)\r\n const mapCenter = useSelector(selectResultMapCenter)\r\n const codeMaster = useSelector(selectFacilitySearchCodeMaster)\r\n const isDisabledCurrentLocation = useSelector(selectIsDisabledCurrentLocation)\r\n\r\n const conditionTags = useMemo(\r\n () => (codeMaster && searchCondition ? getConditionTags(codeMaster, searchCondition) : []),\r\n [codeMaster, searchCondition]\r\n )\r\n const sortOrders = useMemo(\r\n () =>\r\n getFacilitySearchSortOrders().filter(\r\n ({ value }) => !isDisabledCurrentLocation || value !== facilitySearchSortOrder.currentLocation\r\n ),\r\n [isDisabledCurrentLocation]\r\n )\r\n const sortOrder = sortOrders.find(({ value }) => value === searchCondition?.sortOrder)?.value ?? sortOrders[0].value\r\n\r\n const goBack = useCallback(() => {\r\n if (!searchCondition?.isProjectSelected) {\r\n dispatch(setFacilitySearchCondition({ ...searchCondition, projectIds: []}))\r\n }\r\n history.goBack()\r\n }, [history, dispatch])\r\n\r\n const changeOrder = useCallback(\r\n (event: SelectChangeEvent) => {\r\n dispatch(\r\n setFacilitySearchSortOrder({\r\n sortOrder: event.target.value,\r\n })\r\n )\r\n },\r\n [dispatch]\r\n )\r\n\r\n const onClickCurrentLocation = useCallback(async () => {\r\n try {\r\n const position = await getCurrentPosition()\r\n dispatch(\r\n setMapCenter({\r\n latitude: position.coords.latitude,\r\n longitude: position.coords.longitude,\r\n })\r\n )\r\n } catch {\r\n // 何もしない\r\n }\r\n }, [dispatch])\r\n const onClickFacilityPin = useCallback(\r\n (facilityId: string) => {\r\n // スマホでは地図と結果が縦に並び、即スクロールさせると施設名が誤タップされる場合がある\r\n // これを防ぐために僅かにスクロール開始をずらす\r\n setTimeout(() => dispatch(setActiveFacility(facilityId)), 100)\r\n },\r\n [dispatch]\r\n )\r\n\r\n useSearch(sortOrder, searchCondition, isResultDirty)\r\n\r\n useEffect(() => {\r\n // 戻るで表示した際にアクティブなタブを復元する為に履歴に保管\r\n history.replace({ ...history.location, state: { tabValue: activeTabValue, conditionExpanded } })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [activeTabValue, conditionExpanded])\r\n\r\n const onChangeConditionExpanded = useCallback((event: SyntheticEvent, expanded: boolean) => {\r\n setConditionExpanded(expanded)\r\n }, [])\r\n const onChangeTab = useCallback((value: string) => {\r\n setActiveTabValue(value)\r\n }, [])\r\n\r\n const onClickFacilityName = useCallback(\r\n (facilityId?: string) => {\r\n if (facilityId) {\r\n // この画面では施設カードに施設IDを設定しているのでnullはあり得ない\r\n dispatch(setActiveFacility(facilityId))\r\n nextHistory.push({\r\n pathname: facilityDetailUrl.url(facilityId),\r\n state: { availabilityBaseDate: searchCondition?.usageDate },\r\n })\r\n }\r\n },\r\n [dispatch, nextHistory, searchCondition]\r\n )\r\n\r\n // 遷移整合性チェック 年齢指定が必須である為条件なしはエラーとする\r\n const checkTransition = useCallback(() => !!searchCondition, [searchCondition])\r\n\r\n // 並び替え再建策時にMapがアンマウントされないように、検索結果ありかつ件数0時のみメッセージ表示\r\n const isNoSearchResult = allFacilities && allFacilities.length === 0\r\n\r\n return {\r\n conditionTags,\r\n isLimitOver,\r\n allFacilities,\r\n sortOrders,\r\n sortOrder,\r\n isDisabledCurrentLocation,\r\n mapCenter,\r\n isNoSearchResult,\r\n conditionExpanded,\r\n activeTabValue,\r\n goBack,\r\n onClickCurrentLocation,\r\n onClickFacilityPin,\r\n changeOrder,\r\n onChangeConditionExpanded,\r\n onChangeTab,\r\n onClickFacilityName,\r\n checkTransition,\r\n }\r\n}\r\n\r\nconst useSearch = (sortOrder: string, searchCondition?: SearchCondition, isResultDirty?: boolean) => {\r\n const dispatch = useDispatch()\r\n const errorHandle = useErrorHandle()\r\n\r\n useEffect(() => {\r\n if (sortOrder === facilitySearchSortOrder.currentLocation && searchCondition?.currentLocation == null) {\r\n dispatch(\r\n showLoading(async () => {\r\n try {\r\n const position = await getCurrentPosition()\r\n dispatch(\r\n setFacilitySearchSortOrder({\r\n sortOrder: facilitySearchSortOrder.currentLocation,\r\n currentLocation: {\r\n latitude: position.coords.latitude,\r\n longitude: position.coords.longitude,\r\n },\r\n })\r\n )\r\n } catch {\r\n dispatch(\r\n setFacilitySearchSortOrder({\r\n sortOrder: facilitySearchSortOrder.facilityName,\r\n isDisabledCurrentLocation: true,\r\n })\r\n )\r\n }\r\n })\r\n )\r\n } else if (searchCondition && (isResultDirty == null || isResultDirty)) {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const { isLimitOver, allFacilities } = await getFacilities(sortOrder, searchCondition)\r\n dispatch(setFacilitySearchResult({ searchResult: { isLimitOver, allFacilities } }))\r\n }),\r\n isHiddenMain: isResultDirty == null,\r\n })\r\n )\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [searchCondition, sortOrder, isResultDirty])\r\n}\r\n\r\nasync function getFacilities(sortOrder: string, searchCondition: SearchCondition) {\r\n const input: GetFacilitiesInputDto = undefinedPropsToNull({\r\n latitude: searchCondition.currentLocation?.latitude,\r\n longitude: searchCondition.currentLocation?.longitude,\r\n areaIds: searchCondition.areas ?? [],\r\n ages: searchCondition.ages ?? [],\r\n freeWord: blankToNull(searchCondition.freeWord),\r\n reservationAcceptFlag: searchCondition.reservationAcceptFlag?.[0],\r\n projectIds: searchCondition.projectIds ?? [],\r\n facilityCategories: searchCondition.facilityCategories ?? [],\r\n searchFlagNos: toInts(searchCondition.otherDetailConditions) ?? [],\r\n usageDate: toApiYmd(searchCondition.usageDate),\r\n purposeOfUses: searchCondition.purposeOfUses ?? [],\r\n sortOrder,\r\n })\r\n const apiResponse = await executeGetFacilities(input)\r\n return {\r\n isLimitOver: apiResponse.resultCode === resultCodeGetFacilities.overLimit,\r\n allFacilities: apiResponse.result.map((facility) => {\r\n const { imageUrls, ...other } = facility\r\n return {\r\n ...nullPropsToUndefined(other),\r\n // 画像URLは穴あきで設定される可能性があるため\r\n imageUrl: imageUrls.find((url) => url),\r\n }\r\n }),\r\n }\r\n}\r\n\r\nfunction getConditionTags(codeMaster: CodeMaster, condition: SearchCondition) {\r\n const areaTags = toTags(codeMaster.areas, condition.areas)\r\n const ageTags = toTags(codeMaster.ages, condition.ages)\r\n const acceptWebReservationTag = toTags(codeMaster.reservationAcceptFlag, condition.reservationAcceptFlag)\r\n const projectTags = condition.isProjectSelected ? toTags(codeMaster.projects, condition.projectIds) : []\r\n const categoryTags = toTags(codeMaster.facilityCategories, condition.facilityCategories)\r\n const otherTags = toTags(codeMaster.otherDetailConditions, condition.otherDetailConditions)\r\n const purposeOfUseTags = toTags(codeMaster.purposeOfUses, condition.purposeOfUses)\r\n\r\n return [\r\n ...ageTags,\r\n ...areaTags,\r\n ...acceptWebReservationTag,\r\n formatYmd(condition.usageDate),\r\n ...projectTags,\r\n ...categoryTags,\r\n ...otherTags,\r\n ...purposeOfUseTags,\r\n condition.freeWord,\r\n ].filter((tag) => tag)\r\n}\r\n\r\nfunction toCodeMap(codeMaster?: CodeEntry[]) {\r\n return new Map(codeMaster?.map(({ value, label }) => [value, label]) ?? [])\r\n}\r\n\r\nfunction toTags(codeMaster?: CodeEntry[], values?: string[]) {\r\n const codeMap = toCodeMap(codeMaster)\r\n return values?.map((value) => codeMap.get(value) ?? value) ?? []\r\n}\r\n","import ExpandMoreIcon from '@mui/icons-material/ExpandMore'\r\nimport { Accordion, AccordionDetails, AccordionSummary, styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface AccordionCardProps {\r\n /** アコーディオンのコンテンツ部(展開して表示される中身) */\r\n children: ReactNode\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n /** アコーディオンタイトル部(開閉の際にクリックする部分) */\r\n title?: string\r\n /** 展開時はtrue */\r\n expanded?: boolean\r\n /** 開閉の状態が変更される時呼び出される関数 */\r\n onChange?: (event: React.SyntheticEvent, expanded: boolean) => void\r\n}\r\n\r\nconst Root = styled(Accordion)(({ theme }) => ({\r\n border: `1px solid ${theme.palette.secondary.main}`,\r\n}))\r\nconst Summary = styled(AccordionSummary)({\r\n minHeight: 0,\r\n whiteSpace: 'pre-wrap',\r\n '&.Mui-expanded': {\r\n minHeight: 0,\r\n '& .MuiAccordionSummary-content': {\r\n margin: '8px 0',\r\n },\r\n },\r\n '& .MuiAccordionSummary-content': {\r\n margin: '8px 0',\r\n },\r\n})\r\nconst Detail = styled(AccordionDetails)({\r\n whiteSpace: 'pre-wrap',\r\n paddingTop: 0,\r\n})\r\n\r\n/** アコーディオン型のカードコントロール */\r\nexport const AccordionCard = (props: AccordionCardProps) => {\r\n return (\r\n \r\n }>{props.title}\r\n {props.children}\r\n \r\n )\r\n}\r\n","import ArrowUpwardIcon from '@mui/icons-material/ArrowUpward'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 矢印(上向き)のアイコン */\r\nexport const ArrowUpIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import { Fab, styled, Zoom } from '@mui/material'\r\nimport React, { useCallback, useEffect, useState } from 'react'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectIsIntersectingFooter } from '../../../../containers/common/store/slices/application'\r\nimport { ArrowUpIcon } from '../icons/arrowUpIcon'\r\n\r\nconst Root = styled(Fab, { shouldForwardProp: (prop) => prop !== 'isIntersectingFooter' })<{\r\n isIntersectingFooter: boolean\r\n}>(({ theme, isIntersectingFooter }) => ({\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.main,\r\n borderColor: theme.palette.primary.main,\r\n '&:hover': {\r\n backgroundColor: theme.palette.primary.dark,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.primary.main,\r\n },\r\n },\r\n position: isIntersectingFooter ? 'absolute' : 'fixed',\r\n bottom: 16,\r\n right: 16,\r\n zIndex: 100,\r\n opacity: 0.7,\r\n}))\r\n\r\nexport const ScrollTopFab = () => {\r\n const [isShown, setIsShown] = useState(false)\r\n\r\n const isIntersectingFooter = useSelector(selectIsIntersectingFooter)\r\n\r\n useEffect(() => {\r\n const onScroll = () => {\r\n setIsShown(document.documentElement.scrollTop > 0)\r\n }\r\n onScroll()\r\n window.addEventListener('scroll', onScroll)\r\n return () => window.removeEventListener('scroll', onScroll)\r\n }, [])\r\n\r\n const onClick = useCallback(() => {\r\n window.scrollTo({\r\n top: 0,\r\n })\r\n }, [])\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport GpsFixedIcon from '@mui/icons-material/GpsFixed'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** 現在地をアクティブにするアイコン */\r\nexport const CurrentLocationIcon = (props: IconProps) => {\r\n return \r\n}\r\n","// 地図の数字入りアイコンに関する定義\r\n//\r\n\r\nimport React from 'react'\r\nimport { createSvgIcon, Theme, useTheme } from '@mui/material'\r\nimport { IconProps } from './iconBase'\r\n\r\ninterface NumberPinIconProps extends IconProps {\r\n serialNumber: number\r\n}\r\n\r\n/** ピンSVGのViewBox */\r\nexport const numberPinSvgViewBox = '0 0 35.776 52.288'\r\n\r\nconst getFontScale = (serialNumber: number) => (serialNumber >= 1000 ? 0.5 : serialNumber >= 100 ? 0.7 : 1)\r\n\r\n/**\r\n * GoogleMapのマーカーとしてデータUrl指定するためにSVGコンテンツ部分を返す\r\n *\r\n * @param theme テーマ\r\n * @param textFontSize 数字のフォントサイズ\r\n * @param serialNumber ピン内に表示する数字。省略時は数字の表示なし\r\n * @returns SVGコンテンツ部分\r\n */\r\nexport const createNumberPinSvg = (theme: Theme, textFontSize: string, serialNumber?: number) => {\r\n return (\r\n <>\r\n \r\n {serialNumber != null && (\r\n \r\n {serialNumber}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\n/** 数字ピンアイコン */\r\nexport const NumberPinIcon = (props: NumberPinIconProps) => {\r\n const theme = useTheme()\r\n const NumberPin = createSvgIcon(createNumberPinSvg(theme, '2rem', props.serialNumber), 'NumberPin')\r\n return \r\n}\r\n","// GoogleMap上に各施設を数字入りのピンでマークするコントロール\r\n//\r\n\r\nimport { IconButton, styled, Theme, ThemeProvider, useTheme } from '@mui/material'\r\nimport { GoogleMap, InfoWindow, LoadScript, Marker, useGoogleMap } from '@react-google-maps/api'\r\nimport React, { memo, useCallback, useEffect, useState } from 'react'\r\nimport ReactDOM from 'react-dom'\r\nimport ReactDOMServer from 'react-dom/server'\r\nimport { googleMapApiKey } from '../../../containers/common/constant/processEnv'\r\nimport { getLanguage, translate } from '../../../i18n'\r\nimport { ErrorMessageCard } from './errorMessageCard'\r\nimport { CurrentLocationIcon } from './icons/currentLocationIcon'\r\nimport { createNumberPinSvg, numberPinSvgViewBox } from './icons/numberPin'\r\n\r\ninterface Facility {\r\n facilityId: string\r\n facilityName: string\r\n latitude: number\r\n longitude: number\r\n}\r\n\r\ninterface MapSize {\r\n pinIconSize: google.maps.Size\r\n infoOffset: google.maps.Size\r\n}\r\ninterface FacilityMapProps {\r\n /** 地図中央の緯度経度 */\r\n center?: { latitude: number; longitude: number }\r\n /**\r\n * 地図のズームレベル。\r\n * 公式ではないが以下サイトでどの程度の拡大か確認できる\r\n * https://qiita.com/SnowMonkey/items/795779913be692c12a0b\r\n */\r\n zoom?: number\r\n /** マップに表示したい施設情報の配列 */\r\n facilities?: Facility[]\r\n /** 現在地表示の機能を無効化する場合true */\r\n isDisabledCurrentLocation?: boolean\r\n /**\r\n * 現在地表示のボタンを非表示にする場合true\r\n * 施設詳細での施設1件表示を考慮して作成したもの\r\n */\r\n isHideCurrentLocation?: boolean\r\n /**\r\n * 現在地表示のボタンを非表示にする場合true\r\n * 施設詳細での施設1件表示を考慮して作成したもの\r\n */\r\n isHidePinNumber?: boolean\r\n /**\r\n * 現在位置表示のボタンをクリックしたときに呼び出される関数\r\n */\r\n onClickCurrentLocation?: () => void\r\n /**\r\n * 施設の位置を示す数字ピンをクリックしたときに呼び出される関数\r\n */\r\n onClickFacilityPin?: (facilityId: string) => void\r\n}\r\n\r\nconst pinIconSize = {\r\n height: 35,\r\n width: 35,\r\n}\r\nconst infoOffset = -45\r\n\r\nconst mapContainerStyle = {\r\n width: '100%',\r\n height: '100%',\r\n}\r\n\r\n/** デフォルトのマップ表示位置・ズーム */\r\nconst defaultMapPan = {\r\n center: { latitude: 0, longitude: 0 },\r\n zoom: 13,\r\n}\r\n\r\nconst CurrentLocationButton = styled(IconButton)(({ theme }) => ({\r\n backgroundColor: theme.palette.white.main,\r\n width: '40px',\r\n height: '40px',\r\n marginRight: '10px',\r\n borderRadius: 4,\r\n boxShadow: theme.shadows[2],\r\n '&:hover': {\r\n backgroundColor: theme.palette.white.dark,\r\n // Reset on touch devices, it doesn't add specificity\r\n '@media (hover: none)': {\r\n backgroundColor: theme.palette.white.main,\r\n },\r\n },\r\n '&.Mui-disabled': {\r\n backgroundColor: theme.palette.white.main,\r\n },\r\n}))\r\n\r\nfunction jsxToHtml(jsx: React.ReactElement): string {\r\n return ReactDOMServer.renderToStaticMarkup(jsx)\r\n}\r\nfunction getPinIconUrl(theme: Theme, serialNumber?: number) {\r\n const icon = (\r\n \r\n {createNumberPinSvg(theme, '1rem', serialNumber)}\r\n \r\n )\r\n return 'data:image/svg+xml,' + encodeURIComponent(jsxToHtml(icon))\r\n}\r\n\r\ninterface MapPanningProps {\r\n center?: { latitude: number; longitude: number }\r\n zoom?: number\r\n}\r\nconst MapPanning = (props: MapPanningProps) => {\r\n const map = useGoogleMap()\r\n React.useEffect(() => {\r\n if (map) {\r\n const center = props.center ?? defaultMapPan.center\r\n const zoom = props.zoom ?? defaultMapPan.zoom\r\n map.panTo({ lat: center.latitude, lng: center.longitude })\r\n map.setZoom(zoom)\r\n }\r\n }, [map, props.center, props.zoom])\r\n\r\n return null\r\n}\r\ninterface MapMarkerProps {\r\n onClickMarker: (facility: Facility) => void\r\n facilities?: Facility[]\r\n isHidePinNumber?: boolean\r\n mapSize?: MapSize\r\n}\r\nconst MapMarker = memo(function MapMarker({ onClickMarker, facilities, isHidePinNumber, mapSize }: MapMarkerProps) {\r\n const theme = useTheme()\r\n return (\r\n <>\r\n {facilities?.map((facility, index) => {\r\n return (\r\n onClickMarker(facility)}\r\n />\r\n )\r\n })}\r\n \r\n )\r\n})\r\n\r\n/** GoogleMap上に各施設を数字入りのピンでマークするコントロール */\r\nexport const FacilityMap = memo(function FacilityMap(props: FacilityMapProps) {\r\n const theme = useTheme()\r\n\r\n const [mapSize, setMapSize] = useState()\r\n const [controlContainer, setControlContainer] = useState()\r\n const [infoFacility, setInfoFacility] = useState()\r\n\r\n const language = getLanguage()\r\n\r\n const renderControlContainer = useCallback(\r\n (container: HTMLDivElement) => {\r\n ReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n container\r\n )\r\n },\r\n [props.isDisabledCurrentLocation, props.onClickCurrentLocation]\r\n )\r\n\r\n const onLoadScript = useCallback(() => {\r\n setMapSize({\r\n pinIconSize: new google.maps.Size(pinIconSize.width, pinIconSize.height),\r\n infoOffset: new google.maps.Size(0, infoOffset),\r\n })\r\n }, [mapSize])\r\n\r\n const onLoadMap = useCallback((map: google.maps.Map) => {\r\n if (!props.isHideCurrentLocation) {\r\n const container = document.createElement('div')\r\n renderControlContainer(container)\r\n map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(container)\r\n setControlContainer(container)\r\n }\r\n }, [])\r\n\r\n const onClickMarker = useCallback(\r\n (facility: Facility) => {\r\n props.onClickFacilityPin?.(facility.facilityId)\r\n setInfoFacility(facility)\r\n },\r\n [props.onClickFacilityPin]\r\n )\r\n\r\n useEffect(() => {\r\n if (controlContainer) {\r\n renderControlContainer(controlContainer)\r\n }\r\n }, [props.isDisabledCurrentLocation, controlContainer])\r\n\r\n return googleMapApiKey ? (\r\n \r\n {mapSize && (\r\n \r\n \r\n \r\n {infoFacility && (\r\n setInfoFacility(undefined)}\r\n >\r\n \r\n
{infoFacility.facilityName}
\r\n
\r\n \r\n )}\r\n
\r\n )}\r\n
\r\n ) : (\r\n \r\n )\r\n})\r\n","import { styled } from '@mui/material'\r\nimport React, { ReactNode, useEffect, useState } from 'react'\r\n\r\ninterface LazyMountProps {\r\n children: ReactNode\r\n isShown: boolean\r\n}\r\n\r\nconst Root = styled('span', {\r\n shouldForwardProp: (prop) => prop !== 'isShown',\r\n})<{ isShown: boolean }>(({ isShown }) => ({\r\n ...(!isShown && { display: 'none' }),\r\n}))\r\n\r\nexport const LazyMount = (props: LazyMountProps) => {\r\n const [isMounted, setIsMounted] = useState(false)\r\n\r\n useEffect(() => {\r\n if (!isMounted && props.isShown) {\r\n setIsMounted(true)\r\n }\r\n }, [props.isShown])\r\n\r\n return isMounted ? {props.children} : null\r\n}\r\n","import React, { ReactNode } from 'react'\r\nimport { Box, styled } from '@mui/material'\r\n\r\ninterface SearchConditionTagProps {\r\n children: ReactNode\r\n}\r\n\r\nconst Root = styled(Box)(({ theme }) => ({\r\n display: 'inline-block',\r\n fontSize: theme.typography.font.sizeM,\r\n color: theme.palette.primary.main,\r\n borderRadius: 24,\r\n backgroundColor: theme.palette.warning.main,\r\n border: `3px solid ${theme.palette.primary.main}`,\r\n padding: '4px 12px',\r\n lineHeight: 'normal',\r\n maxWidth: '13rem', // 10文字程度の幅を設定\r\n overflow: 'hidden',\r\n textOverflow: 'ellipsis',\r\n whiteSpace: 'nowrap',\r\n}))\r\n\r\nexport const SearchConditionTag = (props: SearchConditionTagProps) => {\r\n return {props.children}\r\n}\r\n","// 施設情報(概要)をカード型で表示するコントロール\r\n//\r\n\r\nimport { Stack, styled } from '@mui/material'\r\nimport { ReactNode, useCallback } from 'react'\r\nimport { getAvailableLabel } from '../../../containers/common/codeMaster'\r\nimport { translate } from '../../../i18n'\r\nimport { formatAcceptAge, formatAcceptAgeRange, formatAddress } from '../../../utils/itemFormatUtil'\r\nimport { BreakpointSwitch } from './breakpointSwitch'\r\nimport { InlineFlexbox } from './flexboxes'\r\nimport { CenterGItem, FlexGItem, GContainer, GItem, GItemContainer, RowSpacerGItem, TopGItem } from './grids'\r\nimport { AcceptAgeIcon } from './icons/acceptAgeIcon'\r\nimport { AcceptWebReservationIcon } from './icons/acceptWebReservationIcon'\r\nimport { LocationIcon } from './icons/locationIcon'\r\nimport { ProjectIcon } from './icons/projectIcon'\r\nimport { TimeIcon } from './icons/timeIcon'\r\nimport { TrainIcon } from './icons/trainIcon'\r\nimport { Image } from './image'\r\nimport { Link } from './link'\r\n\r\ninterface CardProps {\r\n /**\r\n * カード下部に配置するコンテンツ\r\n * ボタン類を配置する想定\r\n */\r\n children?: ReactNode\r\n /**\r\n * 施設名の左側に配置するアイコン。\r\n * 施設検索での数字ピンアイコンの配置を想定\r\n */\r\n titleIcon?: ReactNode\r\n\r\n facilityName: string\r\n projectName?: string\r\n address1?: string\r\n address2?: string\r\n buildingNameRoomNo?: string\r\n nearestStation?: string\r\n openTimeWeekday?: string\r\n openTimeSaturday?: string\r\n openTimeHoliday?: string\r\n imageUrl?: string\r\n acceptStartAge?: number\r\n acceptStartMonth?: number\r\n acceptStartDay?: number\r\n acceptStartAgeGradeFlag?: string\r\n acceptEndAge?: number\r\n acceptEndMonth?: number\r\n acceptEndDay?: number\r\n acceptEndAgeGradeFlag?: string\r\n reservationAcceptFlag: string\r\n\r\n /** 施設画像(imageUrl)を表示しない場合true */\r\n isDisabledImage?: boolean\r\n /** 施設名をクリック可能にした際、引数として渡される施設ID */\r\n facilityId?: string\r\n /**\r\n * 施設名をクリックした時に呼び出される関数。\r\n * 未設定なら施設名はクリック可能にならない\r\n */\r\n onClickFacilityName?: (facilityId?: string) => void\r\n}\r\n\r\nconst Root = styled('div')(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n color: theme.palette.primary.main,\r\n borderRadius: 8,\r\n backgroundColor: theme.palette.white.main,\r\n border: `3px solid ${theme.palette.primary.main}`,\r\n width: '100%',\r\n padding: '10px',\r\n}))\r\nconst TitleIconGItem = styled(GItem)({\r\n fontSize: '3.5rem',\r\n})\r\nconst TitleGItem = styled(GItem)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL1,\r\n}))\r\nconst ItemIconBox = styled(InlineFlexbox)(({ theme }) => ({\r\n color: theme.palette.primary.contrastText,\r\n backgroundColor: theme.palette.primary.main,\r\n borderRadius: 24,\r\n fontSize: '1.4rem',\r\n marginTop: '0.15rem',\r\n marginRight: '4px',\r\n}))\r\nconst ItemLabel = styled('span')(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-all',\r\n}))\r\nconst FacilityImage = styled(Image)(({ theme }) => ({\r\n maxHeight: 120,\r\n objectFit: 'contain',\r\n backgroundColor: theme.palette.secondary.main,\r\n}))\r\n\r\n/**\r\n * 施設情報(概要)をカード型で表示するコントロール。\r\n * 施設検索結果、My施設で共有するためにcommonに配置している\r\n */\r\nexport const FacilityCard = (props: CardProps) => {\r\n const { onClickFacilityName, facilityId } = props\r\n\r\n const handleClickFacilityName = useCallback(\r\n () => onClickFacilityName?.(facilityId),\r\n [onClickFacilityName, facilityId]\r\n )\r\n\r\n const address = formatAddress(props.address1, props.address2, props.buildingNameRoomNo)\r\n const acceptAgeFrom = formatAcceptAge(\r\n props.acceptStartAge,\r\n props.acceptStartMonth,\r\n props.acceptStartDay,\r\n props.acceptStartAgeGradeFlag\r\n )\r\n const acceptAgeTo = formatAcceptAge(\r\n props.acceptEndAge,\r\n props.acceptEndMonth,\r\n props.acceptEndDay,\r\n props.acceptEndAgeGradeFlag\r\n )\r\n\r\n return (\r\n \r\n \r\n \r\n {props.titleIcon}\r\n\r\n \r\n \r\n {props.onClickFacilityName ? (\r\n {props.facilityName}\r\n ) : (\r\n props.facilityName\r\n )}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {address}\r\n \r\n {props.nearestStation && (\r\n \r\n \r\n \r\n \r\n {props.nearestStation}\r\n \r\n )}\r\n {(props.openTimeWeekday || props.openTimeSaturday || props.openTimeHoliday) && (\r\n \r\n \r\n \r\n \r\n \r\n {props.openTimeWeekday && (\r\n
\r\n \r\n {translate('system.facilityCard.weekday')}:{props.openTimeWeekday}\r\n \r\n
\r\n )}\r\n {props.openTimeSaturday && (\r\n
\r\n \r\n {translate('system.facilityCard.saturday')}:{props.openTimeSaturday}\r\n \r\n
\r\n )}\r\n {props.openTimeHoliday && (\r\n
\r\n \r\n {translate('system.facilityCard.holiday')}:{props.openTimeHoliday}\r\n \r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n \r\n \r\n {acceptAgeFrom && acceptAgeTo && (\r\n \r\n \r\n \r\n \r\n
{formatAcceptAgeRange(acceptAgeFrom, acceptAgeTo)}
\r\n
\r\n )}\r\n {props.projectName && (\r\n \r\n \r\n \r\n \r\n {props.projectName}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {translate('system.facilityCard.acceptWebReservation')}:\r\n {getAvailableLabel(props.reservationAcceptFlag)}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n {!props.isDisabledImage && (\r\n \r\n \r\n \r\n }\r\n />\r\n )}\r\n {props.children && {props.children}}\r\n
\r\n
\r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport React, { CSSProperties, forwardRef, memo, ReactNode, Ref, useEffect, useRef, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { Virtuoso, VirtuosoHandle } from 'react-virtuoso'\r\nimport {\r\n clearActiveFacility,\r\n Facility,\r\n selectResultActiveFacilityId,\r\n} from '../../../containers/common/store/slices/facilitySearch'\r\nimport { FacilityCard } from '../common/facilityCard'\r\nimport { GContainer, GItem } from '../common/grids'\r\nimport { NumberPinIcon } from '../common/icons/numberPin'\r\n\r\ninterface ResultBoxProps {\r\n isShownPin: boolean\r\n facilities: Facility[]\r\n onClickFacilityName: (facilityId?: string) => void\r\n mapMinHeight: number\r\n}\r\n\r\nconst VirtuosoGContainer = styled(GContainer)({\r\n // Virtuosoコントロール配下でマイナスマージンを行うとその分下に隙間が出来る。\r\n // 対応として、Containerのマイナスマージンで1行目のパディングを相殺するのではなく\r\n // 1行目のパディングを0にする\r\n marginTop: 0,\r\n '& > .MuiGrid-item:first-of-type': {\r\n paddingTop: 0,\r\n },\r\n})\r\n\r\nconst scrollToIndex = (virtuoso: VirtuosoHandle, index: number) =>\r\n virtuoso.scrollToIndex({\r\n index: index,\r\n align: 'center',\r\n })\r\n\r\nconst VirtuosoComponents = {\r\n List: forwardRef(function List(\r\n { style, children }: { style?: CSSProperties; children?: ReactNode },\r\n listRef: Ref\r\n ) {\r\n return (\r\n
\r\n \r\n {children}\r\n \r\n
\r\n )\r\n }),\r\n\r\n Item: ({ children, ...props }: { children?: ReactNode }) => {\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n },\r\n}\r\ninterface ContentProps {\r\n isShownPin: boolean\r\n facilities: Facility[]\r\n onClickFacilityName: (facilityId?: string) => void\r\n mapMinHeight: number\r\n initialIndex?: number\r\n}\r\nconst Content = forwardRef(function Content(\r\n { facilities, isShownPin, onClickFacilityName, mapMinHeight, initialIndex }: ContentProps,\r\n ref: Ref\r\n) {\r\n return (\r\n {\r\n return (\r\n })}\r\n {...facility}\r\n onClickFacilityName={onClickFacilityName}\r\n />\r\n )\r\n }}\r\n />\r\n )\r\n})\r\nconst MemoContent = memo(Content)\r\n\r\nexport const ResultBox = memo(function ResultBox(props: ResultBoxProps) {\r\n const dispatch = useDispatch()\r\n const virtuosoRef = useRef(null)\r\n const activeFacilityId = useSelector(selectResultActiveFacilityId)\r\n // activeFacilityId変更でContentが再レンダリングされないように表示時のインデックスを保持\r\n const [initialIndex] = useState(props.facilities.findIndex((facility) => facility.facilityId === activeFacilityId))\r\n\r\n useEffect(() => {\r\n if (activeFacilityId) {\r\n const virtuoso = virtuosoRef.current\r\n const activeIndex = props.facilities.findIndex((facility) => facility.facilityId === activeFacilityId)\r\n if (virtuoso) {\r\n scrollToIndex(virtuoso, activeIndex)\r\n // 表示対象の要素がレンダリングされて高さが確定すると位置が少しずれるので再度スクロールさせる\r\n setTimeout(() => scrollToIndex(virtuoso, activeIndex), 0)\r\n dispatch(clearActiveFacility())\r\n }\r\n }\r\n }, [activeFacilityId])\r\n return \r\n})\r\n","import { Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { tabValue, useAction } from '../../containers/facilitySearchResult/facilitySearchResultService'\r\nimport { getClassificationValueLabels, translate } from '../../i18n'\r\nimport { fromNumber } from '../../utils/stringUtil'\r\nimport { AccordionCard } from '../components/common/accordionCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { ButtonS } from '../components/common/buttons/buttonS'\r\nimport { ScrollTopFab } from '../components/common/buttons/scrollTopFab'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { FacilityMap } from '../components/common/facilityMap'\r\nimport { BottomGItem, CenterMiddleGItem, GContainer, GItem, RightGItem } from '../components/common/grids'\r\nimport { SelectNoBind } from '../components/common/inputs/selectNoBind'\r\nimport { LazyMount } from '../components/common/lazyMount'\r\nimport { SearchConditionTag } from '../components/common/searchConditionTag'\r\nimport { TabBar } from '../components/common/tabBar'\r\nimport { TitleLabel } from '../components/common/titleLabel'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\nimport { ResultBox } from '../components/facilitySearchResult/resultBox'\r\n\r\nconst ConditionTagGItem = styled(GItem)({\r\n '& > *': {\r\n margin: '1px',\r\n },\r\n})\r\nconst mapMinHeight = 200\r\nconst MapGItem = styled(GItem, { shouldForwardProp: (prop) => prop !== 'isShown' })<{\r\n isShown?: boolean\r\n}>(({ theme, isShown }) => ({\r\n ...(isShown && {\r\n minHeight: mapMinHeight,\r\n maxHeight: 400,\r\n }),\r\n [theme.breakpoints.up('md')]: {\r\n position: 'sticky',\r\n // アプリヘッダー分\r\n top: theme.mixins.toolbar.minHeight,\r\n },\r\n}))\r\n\r\nconst OrderGItem = styled(RightGItem)({\r\n alignItems: 'center',\r\n})\r\n\r\nexport const FacilitySearchResult = () => {\r\n const {\r\n conditionTags,\r\n isLimitOver,\r\n allFacilities,\r\n sortOrders,\r\n sortOrder,\r\n isDisabledCurrentLocation,\r\n mapCenter,\r\n isNoSearchResult,\r\n conditionExpanded,\r\n activeTabValue,\r\n goBack,\r\n onChangeConditionExpanded,\r\n onClickCurrentLocation,\r\n onClickFacilityPin,\r\n changeOrder,\r\n onChangeTab,\r\n onClickFacilityName,\r\n checkTransition,\r\n } = useAction()\r\n if (allFacilities == null) {\r\n return \r\n }\r\n const isMapShown = activeTabValue === tabValue.mapShow\r\n return (\r\n <>\r\n \r\n \r\n \r\n
\r\n \r\n {isLimitOver && allFacilities && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {conditionTags.map((tag, index) => (\r\n {tag}\r\n ))}\r\n \r\n \r\n \r\n {translate('facilitySearchResult.button.selectSearchConditionAgain')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isNoSearchResult ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('facilitySearchResult.title.numberOfResult', fromNumber(allFacilities.length))}\r\n \r\n \r\n \r\n {translate('system.label.sort')}:\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n {translate('system.button.back')}\r\n \r\n \r\n
\r\n \r\n )\r\n}\r\n","import { executeDelete, executeGet, executeGetNoResultError, executePost, executePut } from '../common/apiCaller'\r\nimport {\r\n GetLotteryReservationsInputDto,\r\n GetLotteryReservationsDto,\r\n GetLotteryReservationHistroiesInputDto,\r\n GetLotteryReservationDto,\r\n PostLotteryReservationInputDto,\r\n PutLotteryReservationInputDto,\r\n DeleteLotteryReservationInputDto\r\n} from '../dto/lotteryReservationsDto'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/lottery-reservations'\r\n\r\nexport const executeGetLotteryReservations = async (input?: GetLotteryReservationsInputDto) => {\r\n return executeGet(apiName, apiPath, input)\r\n}\r\n\r\nexport const executeGetLotteryReservationHistroies = async (input?: GetLotteryReservationHistroiesInputDto) => {\r\n return executeGet(apiName, `${apiPath}/history/list`, input)\r\n}\r\n\r\nexport const executeGetLotteryReservation = (id: string) => {\r\n return executeGetNoResultError(apiName, `${apiPath}/${id}`)\r\n}\r\n\r\nexport const executeDeleteLotteryReservation = (id: string, input: DeleteLotteryReservationInputDto) => {\r\n return executeDelete(apiName, `${apiPath}/${id}`, input)\r\n}\r\n\r\nexport const executePostLotteryReservation = (input: PostLotteryReservationInputDto) => {\r\n return executePost(apiName, apiPath, input)\r\n}\r\n\r\nexport const executePutLotteryReservation = (id: string, input: PutLotteryReservationInputDto) => {\r\n return executePut(apiName, `${apiPath}/${id}`, input)\r\n}\r\n","// 利用予約情報に関する共通処理を定義\r\nimport { executeGetLotteryReservation } from '../../dataAccess/webApi/dao/lotteryReservationsDao';\r\nimport { fromApiYmd, fromApiYmdHms, formatYmd, formatHm, ElapsedMillisecond } from '../../utils/dateUtil';\r\nimport { combineDecimalParts } from '../../utils/objectUtil';\r\nimport { DecimalType } from '../../utils/typeUtil';\r\nimport { splitDecimal } from '../../utils/stringUtil';\r\nimport { yesNo } from './constant/classification';\r\nimport { dateToNumber } from '../../utils/objectUtil';\r\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto';\r\nimport { Flag } from './constant/classification';\r\nimport { DOCS_SUBMIT_STATUS } from './constant/commonConstant';\r\nimport { DecodeMstCategory } from './constant/decodeMst';\r\nimport { getDecodeMstValues, GetDecodemstValuesReturn } from './decodeMst'\r\nimport { GetLotteryReservationDto } from '../../dataAccess/webApi/dto/lotteryReservationsDto';\r\nimport { translate } from '../../i18n';\r\nimport { ReservationDetailSettingDto } from '../../dataAccess/webApi/dto/reservationsDto';\r\nimport { facilityInputFields } from '../../dataAccess/webApi/dto/facilitiesDto';\r\n\r\n// 施設情報\r\nexport type FacilityInfoType = {\r\n facilityId: string\r\n \r\n facilityName: string\r\n /** 利用予約即時予約フラグ 0:不可、1:可 */\r\n immediatelyReservationFlag: string\r\n /** 昼食受付可否フラグ 0:受け付けない、1:受け付ける */\r\n lunchAcceptFlag: string\r\n /** 給食代徴収管理 */\r\n lunchInitialSelect: string | null\r\n /** おやつ受付可否フラグ 0:受け付けない、1:受け付ける */\r\n snackAcceptFlag: string\r\n /** おやつ代徴収管理 */\r\n snackInitialSelect: string | null\r\n /** 見送り時のキャンセル待ち受付可否フラグ 0:受け付けない、1:受け付ける */\r\n postponeCancelWaitAcceptFlag: string\r\n /** 利用目的:「非定型」利用フラグ 0:利用しない、1:利用する */\r\n useReasonUsageFlagIrregular: string\r\n /** 「非定型」の詳細事由利用フラグ 0:利用しない、1:利用する */\r\n useReasonDetailUsageFlagIrregular: string\r\n /** 利用目的:「緊急」利用フラグ 0:利用しない、1:利用する */\r\n useReasonUsageFlagEmg: string\r\n /** 「緊急」の利用詳細目的利用フラグ 0:利用しない、1:利用する */\r\n useReasonDetailUsageFlagEmg: string\r\n /** 利用目的:「リフレッシュ」利用フラグ 0:利用しない、1:利用する */\r\n useReasonUsageFlagRefresh: string\r\n /** 「リフレッシュ」の利用詳細目的利用フラグ 0:利用しない、1:利用する */\r\n useReasonDetailUsageFlagRefresh: string\r\n // 医師連絡票\r\n medicalDoc: string\r\n // 施設別予約時項目表示フラグ\r\n facilityInputFieldsDisplayFlag: string\r\n // 施設別予約時項目選択肢\r\n facilityInputFields?: facilityInputFields[]\r\n // TODO: この部分用の型を定義する\r\n detailSetting: ReservationDetailSettingDto[]\r\n}\r\n\r\n// 利用者情報\r\nexport type ParentInfoType = {\r\n name: string\r\n kana: string\r\n tel: string\r\n email: string\r\n residenceCategory?: string\r\n}\r\n\r\n// お子様情報\r\nexport type ChildInfoType = {\r\n name: string\r\n kana: string\r\n birthday: string\r\n gender: string\r\n brothersSistersFlag: string\r\n}\r\n\r\n// 必須事項入力画面:お子様別入力データ\r\nexport type SelectType = {\r\n select: string | null\r\n stringify?: string\r\n}\r\n\r\nexport type SelectAndOtherType = SelectType & {\r\n other: string | null\r\n}\r\n\r\nexport type DecimalWithStringify = DecimalType & {\r\n stringify?: string\r\n}\r\n\r\nexport type DocType = {\r\n fileName: string | null\r\n delFlg: string\r\n tempUploadKey: string | null\r\n}\r\n\r\nexport type MedicalDocType = {\r\n docs: DocType[]\r\n hasSubmitted: string\r\n status?: string\r\n}\r\n\r\nexport type SymptomType = {\r\n symptoms: string[]\r\n other: string | null\r\n stringify?: string\r\n}\r\n\r\nexport type DiagonosisType = {\r\n first: SelectAndOtherType\r\n second: SelectAndOtherType\r\n stringify?: string\r\n stringify2?: string\r\n}\r\n\r\nexport type MedicineType = {\r\n rx: string | null\r\n otc: string | null\r\n}\r\n\r\nexport type FebrileSeizuresType = string\r\n\r\nexport type EmergencyAction = {\r\n action: SelectType\r\n note: string | null\r\n}\r\n\r\nexport type EatingMethod = {\r\n method: SelectType\r\n detail: SelectType\r\n milkAmount: DecimalWithStringify\r\n milkFrequency?: number | null\r\n}\r\n\r\nexport type AllergyType = {\r\n flag: string,\r\n foodFlag: string | null\r\n} \r\n\r\nexport type ActionsType = {\r\n action: SelectType\r\n sleepMethod: string | null\r\n}\r\n\r\nexport type ReductionType = {\r\n reduction: SelectType,\r\n consentCheck?: string\r\n}\r\n\r\nexport type AttachedDocType = {\r\n docs: DocType[]\r\n status?: string\r\n}\r\n\r\nexport type hospitalInfoType = {\r\n date: string | null | Date\r\n time: string | null | Date\r\n hospitalName: string | null\r\n}\r\n\r\nexport type facilityInputDetail = {\r\n id: string | null\r\n answer: string\r\n updateDatetime: string | null\r\n facilityReservationInputFieldId?: string\r\n order: number | null\r\n}\r\n\r\n// お子様情報+事項入力画面:お子様別入力データ\r\nexport type ChildLotteryReservationInfoType = {\r\n childId: string\r\n childInfo?: ChildInfoType\r\n medicalDoc?: MedicalDocType\r\n symptom?: SymptomType\r\n diagonosis?: DiagonosisType\r\n epidemic?: SelectAndOtherType\r\n medicine?: MedicineType\r\n temperature?: DecimalWithStringify \r\n febrileSeizures?: string | null\r\n emergencyAction?: EmergencyAction\r\n height?: DecimalWithStringify\r\n weight?: DecimalWithStringify\r\n eatingMethod?: EatingMethod\r\n allergy?: AllergyType\r\n eatingAbility?: SelectType\r\n actions?: ActionsType\r\n toiletAbility?: SelectType\r\n considerations?: string | null\r\n reductionType?: ReductionType\r\n attachedDoc?: AttachedDocType\r\n siblingsLotteryResultReferenceFlag?: string\r\n hospitalInfo?: hospitalInfoType\r\n facilityInputFields?: { [key: string]: facilityInputDetail }\r\n}\r\n\r\n// 利用日\r\nexport type UsageDatetimeType = {\r\n usageDate: ElapsedMillisecond\r\n useFromDatetime: ElapsedMillisecond\r\n useToDatetime: ElapsedMillisecond\r\n usageBaseDate: string\r\n status: string\r\n}\r\n\r\n// 登降園時間\r\nexport type GoingTimeType = {\r\n goingToFacilityDate: string\r\n goingToFacilityTime: string\r\n goingHomeDate: string\r\n goingHomeTime: string\r\n}\r\n\r\n// 必須事項入力画面:入力データ\r\nexport type CommonInput = {\r\n lunchFlag: string\r\n snackFlag: string\r\n postponeCancelWaitFlag: string\r\n goingTimes: GoingTimeType[]\r\n formUseReason?: SelectAndOtherType\r\n preferenceProvisionCertificateFlag?: string\r\n citizenNote: string | null\r\n consentCheck?: string\r\n}\r\n\r\nexport type IsCertificateUseReasonViewFlags = {\r\n irregularFlag: boolean\r\n emgFlag: boolean\r\n refreshFlag: boolean\r\n}\r\n\r\nexport type ShowMessage = {\r\n Date: string;\r\n message: string;\r\n}\r\n\r\n/**\r\n * 指定した受付Noの利用予約情報を返す。\r\n *\r\n * @param reservationNo 受付No\r\n * @returns 利用予約情報\r\n */\r\nexport const getLotteryReservation = async (reservationNo: string, decodeMstValue?: LotteryReservationSettingDecodeMst) => {\r\n const response = await executeGetLotteryReservation(reservationNo)\r\n const {\r\n usageDate,\r\n useFromDatetime,\r\n useToDatetime,\r\n canChange,\r\n canCancel,\r\n reservationDatetime,\r\n reservationChangeDatetime,\r\n name,\r\n kana,\r\n tel,\r\n email,\r\n childId,\r\n childName,\r\n childKana,\r\n childBirth,\r\n childGender,\r\n brothersSistersFlag,\r\n hasMedicalDocSubmitted,\r\n symptoms,\r\n symptomOther,\r\n diagonosis,\r\n diagonosisOther,\r\n diagonosis2,\r\n diagonosisOther2,\r\n epidemic,\r\n epidemicOther,\r\n rxMedicineFlag,\r\n otcMedicineFlag,\r\n bodyTemperature,\r\n febrileSeizuresFlag,\r\n emergencyAction,\r\n emergencyActionNote,\r\n height,\r\n weight,\r\n eatingMethod,\r\n eatingMethodDetail,\r\n milkAmount,\r\n milkFrequency,\r\n allergyFlag,\r\n foodAllergyFlag,\r\n eatingAbility,\r\n actions,\r\n sleepMethod,\r\n toiletAbility,\r\n considerations,\r\n reductionType,\r\n goingToFacilityDatetime, \r\n goingHomeDatetime,\r\n siblingsLotteryResultReferenceFlag,\r\n useReason,\r\n useReasonOther,\r\n hospitalVisitDatetime,\r\n hospitalName,\r\n facilityInputAnswers,\r\n ...other\r\n } = response.result\r\n\r\n // 病児病後児病児病後児関連書類\r\n const docs = [];\r\n for ( let i = 1; i <= 5; i++ ) {\r\n const medicalDocKey = `medicalDoc${i}` as keyof GetLotteryReservationDto;\r\n const fileNameKey = `medicalDoc${i}FileName` as keyof GetLotteryReservationDto;\r\n \r\n const medicalDoc = response.result[medicalDocKey] as string;\r\n const fileName = response.result[fileNameKey] as string;\r\n \r\n if ( !medicalDoc ) break;\r\n docs.push( {\r\n fileName: fileName,\r\n delFlg: Flag.OFF,\r\n tempUploadKey: medicalDoc\r\n }) \r\n }\r\n\r\n // 添付書類\r\n const attachedDocs = [];\r\n for ( let i = 1; i <= 3; i++ ) {\r\n const attachedDocKey = `attachedDoc${i}` as keyof GetLotteryReservationDto;\r\n const fileNameKey = `attachedDoc${i}Name` as keyof GetLotteryReservationDto;\r\n \r\n const attachedDoc = response.result[attachedDocKey] as string;\r\n const fileName = response.result[fileNameKey] as string; \r\n \r\n if ( !attachedDoc ) break;\r\n attachedDocs.push( {\r\n fileName: fileName,\r\n delFlg: Flag.OFF,\r\n tempUploadKey: attachedDoc\r\n }) \r\n }\r\n\r\n const inputFields: { [key: string]: facilityInputDetail } = {};\r\n if (facilityInputAnswers !== null) {\r\n facilityInputAnswers.forEach(curr => {\r\n if (curr.facilityReservationInputFieldId) {\r\n inputFields[String(curr.facilityReservationInputFieldId)] = {\r\n facilityReservationInputFieldId: String(curr.facilityReservationInputFieldId),\r\n id: curr.id,\r\n answer: curr.answer,\r\n updateDatetime: curr.updateDatetime,\r\n order: null\r\n };\r\n }\r\n });\r\n }\r\n \r\n let childInfoList: Required[] = [{\r\n childId: childId,\r\n childInfo: {\r\n name: childName,\r\n kana: childKana,\r\n birthday: dateToNumber(childBirth),\r\n gender: childGender,\r\n brothersSistersFlag,\r\n },\r\n medicalDoc: {\r\n docs: docs,\r\n hasSubmitted: hasMedicalDocSubmitted\r\n },\r\n symptom: {\r\n symptoms: (symptoms) ? symptoms.split(',') : [],\r\n other: symptomOther?? ''\r\n },\r\n diagonosis: {\r\n first: {\r\n select: diagonosis,\r\n other: diagonosisOther?? ''\r\n },\r\n second: {\r\n select: diagonosis2,\r\n other: diagonosisOther2?? ''\r\n }\r\n },\r\n epidemic: {\r\n select: epidemic,\r\n other: epidemicOther?? ''\r\n },\r\n medicine: {\r\n rx: rxMedicineFlag,\r\n otc: otcMedicineFlag,\r\n },\r\n temperature: splitDecimal(bodyTemperature),\r\n febrileSeizures: febrileSeizuresFlag,\r\n emergencyAction: {\r\n action: {\r\n select: emergencyAction\r\n },\r\n note: emergencyActionNote?? ''\r\n },\r\n height: splitDecimal(height),\r\n weight: splitDecimal(weight),\r\n eatingMethod: {\r\n method: {\r\n select: eatingMethod\r\n },\r\n detail: {\r\n select: eatingMethodDetail\r\n },\r\n milkAmount: splitDecimal(milkAmount),\r\n milkFrequency: milkFrequency\r\n },\r\n allergy: {\r\n flag: allergyFlag?? Flag.OFF,\r\n foodFlag: foodAllergyFlag\r\n },\r\n eatingAbility: {\r\n select: eatingAbility\r\n },\r\n actions: {\r\n action: {\r\n select: actions\r\n },\r\n sleepMethod: sleepMethod?? ''\r\n },\r\n toiletAbility: {\r\n select: toiletAbility\r\n },\r\n considerations: considerations,\r\n reductionType: {\r\n reduction: {\r\n select: reductionType\r\n }\r\n },\r\n attachedDoc: {\r\n docs: attachedDocs,\r\n },\r\n siblingsLotteryResultReferenceFlag: siblingsLotteryResultReferenceFlag ?? Flag.OFF,\r\n hospitalInfo: {\r\n date: hospitalVisitDatetime !== null ? formatYmd(new Date(hospitalVisitDatetime)) : null,\r\n time: hospitalVisitDatetime !== null ? formatHm(new Date(hospitalVisitDatetime)) : null,\r\n hospitalName: hospitalName\r\n },\r\n facilityInputFields: inputFields\r\n }]\r\n\r\n let formUseReason: SelectAndOtherType = {\r\n select: useReason,\r\n other: useReasonOther\r\n }\r\n\r\n if ( decodeMstValue ) {\r\n childInfoList = setStringifyNamesChildInfoList(childInfoList, decodeMstValue);\r\n formUseReason = {\r\n ... formUseReason,\r\n stringify: stringifySelectBox(decodeMstValue.formUseReason, formUseReason.select, formUseReason.other, [\"その他\"])\r\n }\r\n }\r\n \r\n // 登降園時間を使用しない設定(事業マスタ)場合は'-'でデータが渡ってくる\r\n const goingDatetimeConverted = ( goingToFacilityDatetime === '-' )? null: fromApiYmdHms(goingToFacilityDatetime);\r\n const goingHomeDatetimeConverted = ( goingHomeDatetime === '-' )? null: fromApiYmdHms(goingHomeDatetime);\r\n \r\n const useFromDatetimeConverted = fromApiYmdHms(useFromDatetime);\r\n const useToDatetimeConverted = fromApiYmdHms(useToDatetime);\r\n\r\n return {\r\n ...other,\r\n reservationNo,\r\n usageDate: dateToNumber(fromApiYmd(usageDate)),\r\n useFromDatetime: dateToNumber(useFromDatetimeConverted),\r\n useToDatetime: dateToNumber(useToDatetimeConverted),\r\n goingTime: {\r\n goingToFacilityDate: formatYmd(goingDatetimeConverted? goingDatetimeConverted: useFromDatetimeConverted),\r\n goingToFacilityTime: formatHm(goingDatetimeConverted? goingDatetimeConverted: useFromDatetimeConverted),\r\n goingHomeDate: formatYmd(goingHomeDatetimeConverted? goingHomeDatetimeConverted: useToDatetimeConverted),\r\n goingHomeTime: formatHm(goingHomeDatetimeConverted? goingHomeDatetimeConverted: useToDatetimeConverted)\r\n },\r\n formUseReason,\r\n parentInfo: {\r\n name: name,\r\n kana: kana,\r\n tel: tel,\r\n email: email\r\n },\r\n childInfoList,\r\n canUpdate: canChange === yesNo.yes,\r\n canCancel: canCancel === yesNo.yes,\r\n reservationDatetime: fromApiYmdHms(reservationDatetime),\r\n reservationChangeDatetime: fromApiYmdHms(reservationChangeDatetime),\r\n }\r\n}\r\n\r\n/** 利用予約情報の型 */\r\nexport type LotteryReservation = ReturnType extends Promise ? T : never\r\n\r\n/**\r\n * チェックボックス項目の内容を文字列化する\r\n * @param decodeMst デコードマスタデータ\r\n * @param param 判定値\r\n * @param otherParam その他入力情報\r\n * @returns\r\n */\r\nexport const stringifyCheckBox = (decodeMst: PostDecodeMstDto[], param?: string[] | null, otherParam?: string | null) => {\r\n if (!param && !otherParam) {\r\n return ''\r\n }\r\n const tmpArray = param\r\n if (!tmpArray) return ''\r\n const response = [];\r\n for (const tmpData of tmpArray) {\r\n const findData: String | undefined = decodeMst?.find((c) => c.code === tmpData)?.name\r\n if (findData) {\r\n response.push(findData)\r\n continue\r\n }\r\n }\r\n\r\n if (otherParam) response.push(otherParam) \r\n return response.join(', ')\r\n}\r\n\r\n/**\r\n * セレクトボックス項目の内容を文字列化する\r\n * @param decodeMst デコードマスタデータ\r\n * @param param 判定値\r\n * @param otherParam その他入力情報\r\n * @param otherParamTrigger その他入力情報を使用するトリガーとなる判定値\r\n * @returns\r\n */\r\nexport const stringifySelectBox = (decodeMst: PostDecodeMstDto[], param?: string | null, otherParam?: string | null, otherParamTrigger?: string[]) => {\r\n if ( !param ) {\r\n return ''\r\n }\r\n \r\n const targetDecodeMstData = decodeMst?.find((c) => c.code === param)\r\n const name = targetDecodeMstData?.name || '';\r\n\r\n if ((otherParamTrigger?.some((trigger) => name.includes(trigger))) && otherParam) {\r\n return otherParam?? '';\r\n }\r\n \r\n return name.trimStart();\r\n}\r\n\r\nconst getDocSubmitStatus = (docs: DocType[]| null | undefined) => {\r\n const filterdDocs = docs?.filter(( doc ) => doc.fileName && doc.tempUploadKey && doc.delFlg === Flag.OFF);\r\n if ( docs && filterdDocs && filterdDocs.length > 0 ) return DOCS_SUBMIT_STATUS.UPLOADED;\r\n return DOCS_SUBMIT_STATUS.UN_SUBMITTED;\r\n}\r\n\r\nconst getMedicalDocSubmitStatus = (hasMedicalDocSubmitted: string | null | undefined, medicalDocList: DocType[]| null | undefined) => {\r\n if ( hasMedicalDocSubmitted === Flag.ON ) return DOCS_SUBMIT_STATUS.HANDED;\r\n return getDocSubmitStatus(medicalDocList);\r\n};\r\n\r\nconst docSubmitStatusTranslationMap = {\r\n [DOCS_SUBMIT_STATUS.UN_SUBMITTED]: 'facilityReservation.docsStatus.unsubmitted',\r\n [DOCS_SUBMIT_STATUS.UPLOADED]: 'facilityReservation.docsStatus.uploaded',\r\n [DOCS_SUBMIT_STATUS.HANDED]: 'facilityReservation.docsStatus.handed',\r\n};\r\n\r\nconst getDocSubmitStatusName = (status: typeof DOCS_SUBMIT_STATUS [keyof typeof DOCS_SUBMIT_STATUS]) => {\r\n return translate(docSubmitStatusTranslationMap[status]);\r\n}\r\n\r\n/**\r\n * 抽選予約関連デコードマスタ取得\r\n */\r\nexport const LOTTERY_RESERVATION_DECODE_MST = {\r\n diagonosis: DecodeMstCategory.DIAGNOSIS,\r\n symptoms: DecodeMstCategory.SYMPTOM,\r\n epidemic: DecodeMstCategory.EPIDEMIC,\r\n emergency: DecodeMstCategory.EMERGENCY,\r\n eatingMethod: DecodeMstCategory.EATING_METHOD,\r\n brestFeedingDetail: DecodeMstCategory.BREST_FEEDING_DETAIL,\r\n weaningDetailOptions: DecodeMstCategory.WEANING_DETAIL_OPTION,\r\n eatingAbility: DecodeMstCategory.EATING_ABILITY,\r\n actions: DecodeMstCategory.ACTION,\r\n toiletAbility: DecodeMstCategory.TOILET_ABILITY,\r\n reduction: DecodeMstCategory.REDUCTION,\r\n formUseReason: DecodeMstCategory.FORM_USE_REASON\r\n}\r\n\r\nexport const getLotteryReservationDecodeMstValue = async () => {\r\n return await getDecodeMstValues(LOTTERY_RESERVATION_DECODE_MST)\r\n}\r\nexport type LotteryReservationSettingDecodeMst =GetDecodemstValuesReturn\r\n\r\nexport const setStringifyNamesChildInfoList = (childInfoList: T[], decodeMstValue: LotteryReservationSettingDecodeMst):T[] => {\r\n return childInfoList.map((childInfo) => {\r\n const returnChildInfo = { ...childInfo };\r\n \r\n if ( childInfo.medicalDoc ) {\r\n returnChildInfo.medicalDoc = {\r\n ...childInfo.medicalDoc,\r\n status: getDocSubmitStatusName(getMedicalDocSubmitStatus(childInfo.medicalDoc.hasSubmitted, childInfo.medicalDoc.docs))\r\n };\r\n }\r\n \r\n if ( childInfo.hospitalInfo ) {\r\n returnChildInfo.hospitalInfo = {\r\n date: childInfo.hospitalInfo.date,\r\n time: childInfo.hospitalInfo.time,\r\n hospitalName: childInfo.hospitalInfo.hospitalName,\r\n }\r\n }\r\n \r\n if ( childInfo.symptom ) {\r\n returnChildInfo.symptom = {\r\n ...childInfo.symptom,\r\n stringify: stringifyCheckBox(decodeMstValue.symptoms, childInfo.symptom.symptoms, childInfo.symptom.other),\r\n };\r\n }\r\n \r\n if ( childInfo.diagonosis ) {\r\n returnChildInfo.diagonosis = {\r\n first: {\r\n ...childInfo.diagonosis.first,\r\n stringify: stringifySelectBox(decodeMstValue.diagonosis, childInfo.diagonosis.first.select, childInfo.diagonosis.first.other, ['その他'])\r\n },\r\n second: {\r\n ...childInfo.diagonosis.second,\r\n stringify: stringifySelectBox(decodeMstValue.diagonosis, childInfo.diagonosis.second.select, childInfo.diagonosis.second.other, ['その他'])\r\n }\r\n };\r\n }\r\n \r\n if ( childInfo.epidemic ) {\r\n returnChildInfo.epidemic = {\r\n ... childInfo.epidemic,\r\n stringify: stringifySelectBox(decodeMstValue.epidemic, childInfo.epidemic.select, childInfo.epidemic.other, ['その他'])\r\n }\r\n }\r\n \r\n if ( childInfo.temperature ) {\r\n returnChildInfo.temperature = {\r\n ... childInfo.temperature,\r\n stringify: combineDecimalParts(childInfo.temperature)?.toString()\r\n }\r\n }\r\n \r\n if ( childInfo.emergencyAction ) {\r\n returnChildInfo.emergencyAction = {\r\n ... childInfo.emergencyAction,\r\n action: {\r\n select: childInfo.emergencyAction.action.select,\r\n stringify: stringifySelectBox(decodeMstValue.emergency, childInfo.emergencyAction.action.select)\r\n }\r\n \r\n }\r\n }\r\n \r\n if ( childInfo.height ) {\r\n returnChildInfo.height = {\r\n ... childInfo.height,\r\n stringify: combineDecimalParts(childInfo.height)?.toString()\r\n }\r\n }\r\n \r\n if ( childInfo.weight ) {\r\n returnChildInfo.weight = {\r\n ... childInfo.weight,\r\n stringify: combineDecimalParts(childInfo.weight)?.toString()\r\n }\r\n }\r\n \r\n if ( childInfo.eatingMethod ) {\r\n returnChildInfo.eatingMethod = {\r\n ... childInfo.eatingMethod,\r\n method: {\r\n select: childInfo.eatingMethod.method.select,\r\n stringify: stringifySelectBox(decodeMstValue.eatingMethod, childInfo.eatingMethod.method.select)\r\n }\r\n \r\n }\r\n }\r\n \r\n if ( childInfo.eatingAbility ) {\r\n returnChildInfo.eatingAbility = {\r\n ... childInfo.eatingAbility,\r\n stringify: stringifySelectBox(decodeMstValue.eatingAbility, childInfo.eatingAbility.select)\r\n }\r\n }\r\n \r\n if ( childInfo.actions ) {\r\n returnChildInfo.actions = {\r\n ... childInfo.actions,\r\n action: {\r\n select: childInfo.actions.action.select,\r\n stringify: stringifySelectBox(decodeMstValue.actions, childInfo.actions.action.select)\r\n }\r\n }\r\n }\r\n \r\n if ( childInfo.toiletAbility ) {\r\n returnChildInfo.toiletAbility = {\r\n ... childInfo.toiletAbility,\r\n stringify: stringifySelectBox(decodeMstValue.toiletAbility, childInfo.toiletAbility.select)\r\n }\r\n }\r\n \r\n if ( childInfo.reductionType ) {\r\n returnChildInfo.reductionType = {\r\n ... childInfo.reductionType,\r\n reduction: {\r\n ... childInfo.reductionType.reduction,\r\n stringify: stringifySelectBox(decodeMstValue.reduction, childInfo.reductionType.reduction.select)\r\n },\r\n }\r\n }\r\n\r\n if ( childInfo.attachedDoc ) {\r\n returnChildInfo.attachedDoc = {\r\n ...childInfo.attachedDoc,\r\n status: getDocSubmitStatusName(getDocSubmitStatus(childInfo.attachedDoc.docs))\r\n };\r\n }\r\n \r\n return returnChildInfo;\r\n })\r\n}\r\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useFieldArray, useForm, FieldPath } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { LotteryReserveEntry, selectLotteryReserveEntry, setLotteryReserve } from '../common/store/slices/lotteryReserve'\nimport { FacilityInfoType, GoingTimeType } from '../common/lotteryReservation'\nimport { executeGetChild } from '../../dataAccess/webApi/dao/childrenDao'\nimport { GetChildDto } from '../../dataAccess/webApi/dto/childrenDto'\nimport { toApiYmd, toApiHms, differenceInHoursMinutes, formatYmd } from '../../utils/dateUtil'\nimport { dateToNumber, undefinedPropsToOptional } from '../../utils/objectUtil'\nimport { ReactBatchUpdater } from '../../utils/reactUtil'\nimport { facilityLotteryReservationConfirmationUrl } from '../common/constant/appUrl'\nimport { availabilityStatus, yesNo, Flag, mailType, lotteryMethod } from '../common/constant/classification'\nimport { getUseReason } from '../common/useReason'\nimport { showLoading } from '../common/store/slices/application'\nimport { getUser } from '../common/user'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { isAfter } from 'date-fns'\nimport { getSendingFlagMailSetting } from '../common/getFacilityMailSetting'\nimport { GOING_DATETIME_DISPLAY_METHODS, INPUT_FIELD_USAGE, MEDICAL_DOC_USAGE, ATTACHED_DOC_USAGE } from '../common/constant/projectMst'\nimport { LotteryReservationSettingDecodeMst } from '../common/lotteryReservation'\nimport { \n setStringifyNamesChildInfoList, \n getLotteryReservationDecodeMstValue, \n ChildLotteryReservationInfoType, \n ShowMessage, \n SelectAndOtherType,\n stringifySelectBox\n} from '../common/lotteryReservation'\nimport { getProjectMstDataToRefer } from '../common/projectMst'\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\nimport { translate } from '../../i18n'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\n\nexport interface Inputs {\n lunchFlag: string\n snackFlag: string\n postponeCancelWaitFlag: string\n goingToFacilityTime: Date\n goingTimes: GoingTimeType[]\n note: string\n showMessages: ShowMessage[]\n children: ChildLotteryReservationInfoType[]\n consentCheck: string\n preferenceProvisionCertificateFlag: string\n formUseReason?: SelectAndOtherType\n}\n\nexport type facilityLotteryReservationInputKey = FieldPath\n\ninterface PageState {\n // 送信フラグデータ\n cancelSendingFlag: boolean\n // 表示メッセージ\n showMessages: ShowMessage[]\n // デコードマスタ\n decodeMst: LotteryReservationSettingDecodeMst\n}\n\ninterface ChildData extends GetChildDto {\n childId: string\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const reserveEntry = useSelector(selectLotteryReserveEntry)\n const entryInput = reserveEntry?.commonInput\n const { addOperationLog } = useOperationLog()\n const sysCtrl = useSelector(selectSystemControl)\n\n const [state, setState] = useState()\n\n const formMethods = useForm()\n\n const history = useHistory()\n \n const { fields: goingTimeFileds } = useFieldArray({\n control: formMethods.control,\n name: 'goingTimes',\n })\n \n const { fields: childrenWatch } = useFieldArray({\n control: formMethods.control,\n name: 'children',\n })\n \n const lotteryReservationReference = useMemo(() => {\n if (reserveEntry?.projectMst && reserveEntry?.facility && reserveEntry?.parentInfo && reserveEntry?.useReason && reserveEntry?.childInfoList) {\n const { projectMst, facility, parentInfo, useReasonCategory, useReasonDetailCategory, useReasonDetailDescription, useReason, childInfoList } = reserveEntry\n return {\n facilityName: facility.facilityName,\n useReasonCategory: useReasonCategory,\n useReasonDetailCategory: useReasonDetailCategory,\n useReasonDetailDescription: useReasonDetailDescription,\n childInfoList,\n parentInfo,\n projectMst,\n useReason: {...useReason},\n }\n }\n }, [reserveEntry])\n\n const onSubmit = useCallback(\n (data: Inputs) => {\n if (!state) return;\n\n addOperationLog({ operationId: OperationId.OP_00000025 })\n let isError = false\n\n // TODO: readonlyを回避するため\n const goingTimes = data.goingTimes.map((goingTime) => ({\n ...goingTime,\n }))\n \n goingTimes.forEach((goingTime, index) => {\n const goingToFaclityDatetime = new Date(`${goingTime.goingToFacilityDate} ${goingTime.goingToFacilityTime}`)\n const goingHomeDatetime = new Date(`${goingTime.goingHomeDate} ${goingTime.goingHomeTime}`)\n if (isAfter(goingToFaclityDatetime, goingHomeDatetime)) {\n formMethods.setError(`goingTimes.${index}.goingToFacilityTime`, {\n message: translate(\"facilityReservationForm.form.error.goingTimes\"),\n })\n isError = true\n }\n if (reserveEntry?.projectMst && reserveEntry.projectMst.goingDatetimeLimit !== null) {\n const difference = differenceInHoursMinutes(goingHomeDatetime, goingToFaclityDatetime);\n const diffHours = differenceInHoursMinutes(goingHomeDatetime, goingToFaclityDatetime).hour + (difference.minute === 0 ? 0 : 1)\n if (diffHours > reserveEntry.projectMst.goingDatetimeLimit) {\n formMethods.setError(`goingTimes.${index}.goingHomeTime`, {\n message: translate('facilityReservationForm.form.error.goingDatetimesLimit', reserveEntry.projectMst.goingDatetimeLimit.toString())\n })\n formMethods.setError(`goingTimes.${index}.goingToFacilityTime`, {})\n isError = true \n }\n }\n })\n\n const children:ChildLotteryReservationInfoType[] = JSON.parse(JSON.stringify(data.children));\n\n if (isError) return\n\n dispatch(\n reserveEntry &&\n setLotteryReserve({\n ...reserveEntry,\n childInfoList: (state?.decodeMst) ? setStringifyNamesChildInfoList(children, state.decodeMst) : children,\n commonInput: {\n ...reserveEntry.commonInput,\n lunchFlag: data.lunchFlag,\n snackFlag: data.snackFlag,\n postponeCancelWaitFlag: data.postponeCancelWaitFlag,\n citizenNote: data.note,\n goingTimes,\n consentCheck: data.consentCheck,\n preferenceProvisionCertificateFlag: data.preferenceProvisionCertificateFlag,\n formUseReason: {\n select: null,\n other: null,\n ...data.formUseReason,\n stringify: (state.decodeMst) \n ? stringifySelectBox(\n state.decodeMst.formUseReason, \n data.formUseReason?.select, \n data.formUseReason?.other,\n [\"その他\"]\n ): undefined\n },\n },\n })\n )\n history.push(facilityLotteryReservationConfirmationUrl.url()) //値の送り先を設定\n },\n [reserveEntry, addOperationLog, formMethods, state]\n )\n\n // 初期化\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n dispatch(\n showLoading(\n errorHandle(async () => {\n if ( !reserveEntry ) {\n // 前画面入力情報が無い場合はエラーにするので何もしない\n return\n }\n\n const usageDates = reserveEntry.usageDatetimes.map(( usageDatetime ) => usageDatetime.usageDate )\n\n // 保護者・お子様情報の取得\n const [user, children, useReason, projectMst, decodeMst] = await Promise.all([\n getUser(),\n getChildren(... reserveEntry.childInfoList.map((childInfo) => childInfo.childId)),\n reserveEntry.useReason ? null : getUseReason(),\n getProjectMstDataToRefer(reserveEntry.facility.facilityId, usageDates),\n getLotteryReservationDecodeMstValue()\n ])\n \n // 給食注文\n let lunchFlag: string = yesNo.no\n if (reserveEntry.facility.lunchAcceptFlag === yesNo.yes) {\n lunchFlag = entryInput?.lunchFlag ?? reserveEntry.facility.lunchInitialSelect ?? yesNo.yes\n }\n // おやつ注文\n let snackFlag: string = yesNo.no\n if (reserveEntry.facility.snackAcceptFlag === yesNo.yes) {\n snackFlag = entryInput?.snackFlag ?? reserveEntry.facility.snackInitialSelect ?? yesNo.yes\n }\n\n // 登降園予定時間\n const goingTimes: GoingTimeType[] = []\n for (let index = 0; index < reserveEntry.usageDatetimes.length; index++) {\n const usageDatetime = reserveEntry.usageDatetimes[index];\n\n if ( projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY ) {\n const prevGoingTime = reserveEntry.commonInput?.goingTimes[index];\n const goingToFaclityDatetime = new Date(prevGoingTime ? `${prevGoingTime.goingToFacilityDate} ${prevGoingTime.goingToFacilityTime}` : usageDatetime.useFromDatetime)\n const goingHomeDatetime = new Date(prevGoingTime ? `${prevGoingTime.goingHomeDate} ${prevGoingTime.goingHomeTime}` : usageDatetime.useToDatetime)\n const goingToFacilityDate = toApiYmd(new Date(goingToFaclityDatetime))\n const goingToFacilityTime = toApiHms(new Date(goingToFaclityDatetime))\n const goingHomeDate = toApiYmd(new Date(goingHomeDatetime))\n const goingHomeTime = toApiHms(new Date(goingHomeDatetime))\n goingTimes.push({\n goingToFacilityDate,\n goingToFacilityTime,\n goingHomeDate,\n goingHomeTime,\n })\n } else {\n goingTimes.push({\n goingToFacilityDate: '',\n goingToFacilityTime: '',\n goingHomeDate: '',\n goingHomeTime: '',\n })\n }\n }\n\n // メール設定(送信フラグ)情報を取得し、送信フラグ:\"0\"(無)の場合、FALSEとする\n let cancelSendingFlag = true\n if (reserveEntry?.usageDatetimes[0].status === availabilityStatus.wait) {\n const sendingFlagInfo = await getSendingFlagMailSetting({mailId: mailType.immediatelyCancelVacant, facilityId: reserveEntry.facility.facilityId})\n if (sendingFlagInfo && sendingFlagInfo.sendingFlag === '0') {\n cancelSendingFlag = false\n }\n }\n\n // 予約が取れなかった場合項目\n let postponeCancelWaitFlag: string = yesNo.no\n if (isShownPostponeCancelWaitItem(reserveEntry.facility)) {\n if (entryInput) {\n postponeCancelWaitFlag = entryInput.postponeCancelWaitFlag\n } else if (\n reserveEntry.reservationNo == null &&\n reserveEntry.usageDatetimes[0].status === availabilityStatus.wait\n ) {\n // 入力項目が表示されていて 新規キャンセル待ち予約なら\n // 「キャンセル待ちする」を初期選択\n postponeCancelWaitFlag = yesNo.yes\n }\n }\n\n // 備考\n const detailSetting = reserveEntry.facility.detailSetting.length === 1 \n ? reserveEntry.facility.detailSetting[0] \n : reserveEntry.facility.detailSetting.find((item) => item.useReasonCode === reserveEntry.useReasonCategory);\n let note = detailSetting?.citizenNoteEntryTemplate?? '';\n if (entryInput) {\n note = entryInput.citizenNote?? '';\n }\n\n let formUseReason: SelectAndOtherType | undefined = undefined\n // 選択項目は「不要」の場合はundefinedで登録を行う\n if ( projectMst.useReasonInput !== INPUT_FIELD_USAGE.NO_USE ) {\n formUseReason = {\n select: null,\n other: null,\n ... entryInput?.formUseReason\n }\n }\n \n if (projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY) {\n projectMst.medicalDocUsage = reserveEntry.facility.medicalDoc ?? projectMst.medicalDocUsage\n }\n\n // 領収書兼提供証明書の発行希望\n const preferenceProvisionCertificateFlag = entryInput?.preferenceProvisionCertificateFlag ?? yesNo.no\n \n // お子様情報のセット\n const childInfoList = setChildInfo(children, reserveEntry, projectMst);\n \n const batchUpdater = new ReactBatchUpdater()\n batchUpdater.add(() =>\n formMethods.reset({\n ...formMethods.getValues(),\n ...undefinedPropsToOptional({\n purposeOfUse: reserveEntry?.useReasonCategory,\n lunchFlag,\n snackFlag,\n goingTimes,\n postponeCancelWaitFlag,\n formUseReason: {\n ... formUseReason,\n ... (\n formUseReason?.other === null && {\n other: ''\n }\n )\n },\n note,\n showMessages: [],\n children: childInfoList,\n consentCheck: entryInput?.consentCheck,\n preferenceProvisionCertificateFlag,\n }),\n })\n )\n batchUpdater.add(() =>\n dispatch(\n setLotteryReserve({\n ...reserveEntry,\n // 保護者情報\n parentInfo: {\n name: user.name,\n kana: user.kana,\n tel: user.tel,\n email: user.email,\n residenceCategory: user.residenceCategory,\n },\n // お子さま情報\n childInfoList,\n ... (\n useReason && {\n useReason\n }\n ),\n projectMst\n })\n )\n )\n batchUpdater.addSetter(setState, { \n cancelSendingFlag,\n showMessages: [],\n decodeMst\n })\n batchUpdater.execute()\n })\n )\n )\n }, [])\n\n return {\n reserveEntry,\n lotteryReservationReference,\n isShownPostponeCancelWaitItem: isShownPostponeCancelWaitItem(reserveEntry?.facility),\n formMethods,\n onSubmit,\n goingTimeFileds,\n childrenWatch,\n showSiblingsLotteryResultReferenceFlag: sysCtrl.lotteryMethod === lotteryMethod.byParent,\n ... state\n }\n}\n\n//------------------------------------------------------------------------------------------\nconst isShownPostponeCancelWaitItem = (facility: FacilityInfoType | undefined) => {\n if (facility) {\n return facility.immediatelyReservationFlag === yesNo.no && facility.postponeCancelWaitAcceptFlag === yesNo.yes\n } else {\n return false\n }\n}\n\nasync function getChildren(...childIds: string[]) {\n const childResponse = await Promise.all(\n childIds.map(async (childId) => {\n const childData = await executeGetChild(childId);\n return { childId, ...childData };\n })\n )\n\n return childResponse.map(response => {\n const childWithUndefinedProps = response.result\n return { ...childWithUndefinedProps, childId: response.childId }\n })\n}\n\nconst setChildInfo = (childrenData: ChildData[], reserveEntry: LotteryReserveEntry, projectMst: GetProjectDetailDto): ChildLotteryReservationInfoType[] => {\n return childrenData.map((child) => {\n const prevChildInfo = reserveEntry.childInfoList.find((childInfo) => childInfo.childId === child.childId); \n const returnChildInfo: ChildLotteryReservationInfoType = {\n childId: child.childId,\n childInfo: {\n name: child.name,\n kana: child.kana,\n birthday: dateToNumber(child.birthday),\n gender: child.gender,\n brothersSistersFlag: child.brothersSistersFlag,\n }\n }\n \n // 医師連絡票\n if ( projectMst.medicalDocUsage !== MEDICAL_DOC_USAGE.NO_USE ) {\n returnChildInfo.medicalDoc = {\n docs: prevChildInfo?.medicalDoc?.docs?? [],\n hasSubmitted: prevChildInfo?.medicalDoc?.hasSubmitted?? Flag.OFF,\n }\n if (projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO) {\n const date = prevChildInfo?.hospitalInfo?.date ? formatYmd(new Date(prevChildInfo?.hospitalInfo?.date as string)) : null\n returnChildInfo.hospitalInfo = {\n date: prevChildInfo?.hospitalInfo?.date ? new Date(prevChildInfo?.hospitalInfo?.date).toISOString() : null,\n time: prevChildInfo?.hospitalInfo?.time \n ? toApiHms(new Date(`${date} ${prevChildInfo?.hospitalInfo?.time}`)) \n : null,\n hospitalName: prevChildInfo?.hospitalInfo?.hospitalName ?? null,\n }\n }\n }\n\n // 症状\n if ( projectMst.symptomsInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.symptom = {\n symptoms: [],\n other: '',\n ... prevChildInfo?.symptom\n }\n }\n // 病名\n if ( projectMst.diagonosisInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.diagonosis = {\n first: {\n select: null,\n other: ''\n },\n second: {\n select: null,\n other: ''\n },\n ... prevChildInfo?.diagonosis\n }\n }\n // 流行り病\n if ( projectMst.epidemicInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.epidemic = {\n select: '',\n other: '',\n ... prevChildInfo?.epidemic\n }\n }\n // 服用薬\n if ( projectMst.medicineInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.medicine = {\n rx: prevChildInfo?.medicine?.rx?? Flag.OFF,\n otc: prevChildInfo?.medicine?.otc?? Flag.OFF,\n }\n }\n // 体温\n if ( projectMst.bodyTemperatureInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.temperature = {\n integer: undefined,\n fractional: undefined,\n ... prevChildInfo?.temperature\n }\n }\n // 熱けいれん\n if ( projectMst.febrileSeizuresInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.febrileSeizures = prevChildInfo?.febrileSeizures?? Flag.OFF\n }\n // 容態変化の対応\n if ( projectMst.emergencyActionInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.emergencyAction = {\n action: {\n select: null\n },\n note: '',\n ... prevChildInfo?.emergencyAction\n }\n }\n // 身長\n if ( projectMst.heightInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.height = {\n integer: undefined,\n fractional: undefined,\n ... prevChildInfo?.height\n }\n }\n // 体重\n if ( projectMst.weightInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.weight = {\n integer: undefined,\n fractional: undefined,\n ... prevChildInfo?.weight\n }\n }\n // 栄養方法\n if ( projectMst.eatingMethodInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.eatingMethod = {\n method: {\n select: null\n },\n detail: {\n select: null\n },\n milkAmount: {\n integer: undefined,\n fractional: undefined,\n },\n milkFrequency: undefined,\n ... prevChildInfo?.eatingMethod\n }\n }\n // アレルギー\n if ( projectMst.allergyInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.allergy = {\n flag: prevChildInfo?.allergy?.flag?? Flag.OFF,\n foodFlag: prevChildInfo?.allergy?.foodFlag?? Flag.OFF\n }\n }\n // 食事状況\n if ( projectMst.eatingAbilityInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.eatingAbility = {\n select: prevChildInfo?.eatingAbility?.select?? null\n }\n }\n // 行動\n if ( projectMst.actionInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.actions = {\n action: {\n select: null\n },\n sleepMethod: '',\n ... prevChildInfo?.actions\n }\n }\n // 排便\n if ( projectMst.toiletAbilityInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.toiletAbility = {\n select: prevChildInfo?.toiletAbility?.select?? null\n }\n }\n // 配慮が必要な事項\n if ( projectMst.considerationsInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.considerations = prevChildInfo?.considerations?? ''\n }\n // 減免\n if ( projectMst.reductionInput !== INPUT_FIELD_USAGE.NO_USE ) {\n returnChildInfo.reductionType = {\n reduction: {\n select: prevChildInfo?.reductionType?.reduction.select?? null\n },\n consentCheck: prevChildInfo?.reductionType?.consentCheck?? undefined\n }\n }\n\n // 添付ファイル\n if ( projectMst.attachedDocInput !== ATTACHED_DOC_USAGE.NO_USE ) {\n returnChildInfo.attachedDoc = {\n docs: prevChildInfo?.attachedDoc?.docs?? []\n }\n }\n\n // 施設別予約時項目\n if (reserveEntry.facility.facilityInputFieldsDisplayFlag === Flag.ON) {\n reserveEntry.facility.facilityInputFields?.forEach(element => {\n const key = element.id;\n returnChildInfo.facilityInputFields = {\n ...returnChildInfo.facilityInputFields ?? {}\n }\n\n if (prevChildInfo?.facilityInputFields && prevChildInfo?.facilityInputFields[key]) {\n returnChildInfo.facilityInputFields[key] = {\n ...prevChildInfo?.facilityInputFields[key],\n order: element.order,\n };\n } else {\n returnChildInfo.facilityInputFields[key] = {\n id: null,\n answer: \"\",\n updateDatetime: null,\n facilityReservationInputFieldId: key,\n order: element.order,\n };\n }\n });\n }\n\n returnChildInfo.siblingsLotteryResultReferenceFlag = prevChildInfo?.siblingsLotteryResultReferenceFlag ?? Flag.OFF\n \n return returnChildInfo;\n })\n}\n","import React from 'react';\nimport { facilityLotteryReservationInputKey } from '../../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { getYesNos } from '../../../../../containers/common/codeMaster';\nimport { RadioButtonGroup } from '../../../../components/common/inputs/radioButtonGroup';\nimport { GItem } from '../../../../components/common/grids'\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\ninterface YesNoFieldProps {\n name: facilityLotteryReservationInputKey\n required: boolean\n title: string\n label: string\n validation?: (value: any) => true | string\n}\n\nconst YesNoField = (props: YesNoFieldProps) => {\n const { name, required, title, label, validation } = props;\n\n return (\n \n
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n \n
\n );\n}\n\nexport default YesNoField;\n","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nconst LunchField = () => {\n return (\n \n );\n}\n\nexport default LunchField;","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nconst SnackField = () => {\n return (\n \n );\n}\n\nexport default SnackField","import YesNoField from './common/yesNoField'\n\nconst PreferenceProvisionCertificateField = () => {\n return (\n \n );\n}\n\nexport default PreferenceProvisionCertificateField;","import React, { ReactNode, useState, useEffect } from 'react'\nimport { Control, useWatch } from 'react-hook-form'\nimport { Inputs, facilityLotteryReservationInputKey } from \"../../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../../dataAccess/webApi/dto/decodeMstDto'\nimport { GItem, LabelGItemBase } from \"../../../../components/common/grids\"\nimport { Select } from '../../../../components/common/inputs/select'\nimport { TextBox } from '../../../../components/common/inputs/textBox'\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\ninterface SelectBoxFieldProps {\n title: string\n name: string\n selectLabel: string\n selectNameApendix?: string\n otherLabel?: string\n otherNameApendix?: string\n otherTitle?: string\n required: boolean\n control: Control\n options?: PostDecodeMstDto[]\n addUnselected?: boolean\n showOtherSelection?: string[]\n isSubField?: boolean\n children?: ReactNode\n}\n\nconst SelectBoxField: React.FC = (props) => {\n const {\n title,\n name,\n selectLabel,\n selectNameApendix,\n otherLabel,\n otherNameApendix,\n otherTitle,\n required,\n control,\n options,\n addUnselected,\n showOtherSelection,\n isSubField,\n children\n } = props\n \n const selectName = selectNameApendix? `${name}.${otherNameApendix}`: `${name}.select`;\n const otherName = otherNameApendix? `${name}.${otherNameApendix}`: `${name}.other`;\n \n const inputWatch = useWatch({ name: selectName as facilityLotteryReservationInputKey, control: control })\n const [ currentInput, setCurrentInput ] = useState();\n \n useEffect(() => {\n if ( inputWatch === currentInput ) return;\n if ( typeof inputWatch !== 'string' ) return;\n setCurrentInput(inputWatch)\n }, [ inputWatch ])\n \n const optionsConvertedToLabelValue = options?.map(( option ) => ({ label: option.name, value: option.code }));\n if (addUnselected) {\n optionsConvertedToLabelValue?.unshift({\n label: translate('facilityReservationForm.form.common.unselected'),\n value: '',\n })\n }\n \n const shouldShowAdditional = () => {\n if ( !otherLabel || !optionsConvertedToLabelValue || !showOtherSelection ) return false\n const label = optionsConvertedToLabelValue.find(( option ) => option.value === currentInput)?.label\n if ( !label ) return false\n for ( const select of showOtherSelection ) {\n if (label.includes(select)) return true\n continue\n }\n }\n\n return (\n \n {\n isSubField\n ? {translate(title)}\n :
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n }\n \n \n \n \n \n { \n ( otherLabel && currentInput && shouldShowAdditional() ) && (\n \n {translate(otherTitle?? '')}\n \n \n )\n }\n {children && (\n <>{children}\n )}\n
\n );\n};\n\nexport default SelectBoxField;","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface UseReasonFieldProps {\n options?: PostDecodeMstDto[]\n required: boolean\n control: Control\n}\nconst UseReasonField: React.FC = (props) => {\n const { options, required, control } = props;\n \n const showOtherSelection = ['その他'];\n \n return (\n \n )\n \n}\nexport default UseReasonField;\n","import React from 'react';\nimport { getDoNotWaitlist } from '../../../../containers/common/codeMaster';\nimport { RadioButtonGroup } from '../../../components/common/inputs/radioButtonGroup';\nimport { GItem } from '../../../components/common/grids';\nimport { TitleLabel } from \"../../../components/common/titleLabel\";\nimport { AttentionLabel } from \"../../../components/common/attentionLabel\";\nimport { translate } from '../../../../i18n';\n\nconst CancelWaitField = () => {\n return (\n <>\n \n
\n \n *\n {translate(\"facilityReservationForm.form.label.cancelWait\")}\n \n
\n \n
\n \n {translate('facilityReservationForm.text.attentionMessage')}\n \n \n \n );\n}\n\n\n\nexport default CancelWaitField\n","import { styled } from '@mui/material'\nimport { UsageDatetimeType, GoingTimeType } from \"../../../../containers/common/reservation\"\nimport { formatHmtoHmOver, formatYmdWeek } from '../../../../utils/dateUtil'\nimport { LabelGItemBase, GItem, GContainer } from \"../../../components/common/grids\"\nimport { TitleLabel } from \"../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../components/common/attentionLabel\"\nimport { TimePicker } from '../../../components/common/inputs/timePicker'\nimport { translate } from '../../../../i18n'\nimport { ErrorText } from '../../../../containers/common/error/errorText'\n\nconst TimePickerWrap = styled(GContainer)({\n textIndent: '1em',\n})\n\nexport interface GoingTimesFieldProps {\n usageDatetimes: UsageDatetimeType[]\n goingTimes: GoingTimeType[]\n}\n\nconst GoingTimesField = (props: GoingTimesFieldProps) => {\n const { goingTimes, usageDatetimes } = props\n\n return (\n \n \n *\n {translate(\"facilityReservationForm.form.label.goingTimes.field\")}\n \n {goingTimes.map((goingTimeFiled, index) => {\n if (\n !goingTimeFiled.goingToFacilityDate &&\n !goingTimeFiled.goingToFacilityTime &&\n !goingTimeFiled.goingHomeDate &&\n !goingTimeFiled.goingHomeTime\n )\n return null\n return (\n \n \n \n {formatYmdWeek(usageDatetimes[index].usageDate)}\n {' '}\n {formatHmtoHmOver(\n {\n from: usageDatetimes[index].useFromDatetime,\n to: usageDatetimes[index].useToDatetime,\n },\n usageDatetimes[index].usageDate\n )}\n \n \n \n \n \n {translate(\"facilityReservationForm.form.label.goingTimes.toFacility\")}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {translate(\"facilityReservationForm.form.label.goingTimes.home\")}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n })}\n \n )\n\n}\n\nexport default GoingTimesField;\n","import React from \"react\"\nimport { GItem } from \"../../../../components/common/grids\"\n\ntype PreserveLineTextProps = {\n content: string\n}\n\nconst PreserveLineText: React.FC = (props: PreserveLineTextProps) => {\n const { content } = props\n return (\n \n {content}\n \n )\n}\n\nexport default PreserveLineText","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { CheckBox } from '../../../common/inputs/checkBox'\nimport { translate } from '../../../../../i18n'\nimport { GItem } from \"../../../common/grids\"\nimport { Grid } from '@mui/material';\nimport { yesNo } from '../../../../../containers/common/constant/classification'\nimport { TitleLabel } from \"../../../common/titleLabel\"\nimport { AttentionLabel } from \"../../../common/attentionLabel\"\nimport PreserveLineText from \"./preserveLineText\"\n\ninterface ConsentCheckFieldProps {\n title?: string\n checkNote: string\n name: string\n label?: string\n control: Control\n}\n\nconst ConsentCheckField = (props: ConsentCheckFieldProps) => {\n const { title, checkNote, name, label, control } = props;\n\n return (\n \n
\n {\n title && (\n \n *\n {translate(title)}\n \n )\n }\n \n
\n \n \n \n {translate('facilityReservationForm.form.common.isComfirm')}\n \n \n \n
\n )\n}\n\nexport default ConsentCheckField;\n\n","import React from \"react\";\nimport { Control } from 'react-hook-form';\nimport { Inputs } from '../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { UsageDatetimeType, GoingTimeType } from \"../../../containers/common/reservation\"\nimport { GOING_DATETIME_DISPLAY_METHODS, INPUT_FIELD_USAGE } from '../../../containers/common/constant/projectMst'\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto';\nimport { GetProjectDetailDto } from '../../../dataAccess/webApi/dto/projectsDto';\nimport LunchField from \"../facilityLotteryReservationForm/fields/lunchField\";\nimport SnackField from \"../facilityLotteryReservationForm/fields/snackField\";\nimport PreferenceProvisionCertificateField from \"../facilityLotteryReservationForm/fields/preferenceProvisionCertificateField\";\nimport UseReasonField from \"./fields/useReasonField\"\nimport CancelWaitField from \"../facilityLotteryReservationForm/fields/cancelWaitField\";\nimport GoingTimesField from \"../facilityLotteryReservationForm/fields/goingTimesField\";\nimport ConsentCheckField from \"../facilityLotteryReservationForm/fields/common/consentCheckField\";\n\nexport interface CommonFormUnitPorps {\n lunchAccept: boolean\n snackAccept: boolean\n cancelWaitAccept: boolean\n usageDatetimes: UsageDatetimeType[]\n goingTimes: GoingTimeType[]\n useReasonOptions: PostDecodeMstDto[]\n projectMst: GetProjectDetailDto\n control: Control\n}\n\nconst CommonFormUnitForLottery: React.FC = (props) => {\n const {\n lunchAccept,\n snackAccept,\n cancelWaitAccept,\n usageDatetimes,\n goingTimes,\n useReasonOptions,\n projectMst,\n control\n } = props\n\n return (\n <>\n {\n lunchAccept && (\n \n )\n }\n {\n snackAccept && (\n \n )\n }\n {\n ( projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY ) && (\n \n )\n }\n {\n cancelWaitAccept && (\n \n )\n }\n {\n ( projectMst.provisionCertificateInput !== INPUT_FIELD_USAGE.NO_USE ) && (\n \n )\n }\n {\n ( projectMst.useReasonInput !== INPUT_FIELD_USAGE.NO_USE ) && (\n \n )\n }\n {\n ( projectMst.consentCheckInput !== INPUT_FIELD_USAGE.NO_USE ) && (\n \n )\n }\n \n )\n}\n\nexport default CommonFormUnitForLottery;","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from './common/selectBoxField';\n\nexport interface DiagonosisFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\nconst DiagonosisField: React.FC = (props) => {\n const { childNum, required, options, control } = props;\n \n const firstName = `children.${childNum}.diagonosis.first`\n const secondName = `children.${childNum}.diagonosis.second`\n const showOtherSelection = ['その他'];\n \n return (\n <>\n \n \n \n )\n \n}\nexport default DiagonosisField;\n","import { ReactNode, useState, useEffect } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs, facilityLotteryReservationInputKey } from '../../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../../dataAccess/webApi/dto/decodeMstDto';\nimport { CheckBoxSelections } from '../../../../components/common/inputs/checkBoxSelections'\nimport { GItem, LabelGItemBase } from \"../../../../components/common/grids\"\nimport { TextBox } from '../../../../components/common/inputs/textBox';\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\ninterface CheckBoxFieldProps {\n name: string\n label: string\n title: string\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n otherName?: string\n otherLabel?: string\n otherTitle?: string\n isOtherRequired?: (value: any) => boolean\n children?: ReactNode\n}\n\nconst CheckBoxField = (props: CheckBoxFieldProps) => {\n const { \n name, \n label,\n title, \n required, \n options, \n control,\n otherName,\n otherLabel,\n otherTitle,\n isOtherRequired,\n children\n } = props;\n const [ checkBoxRequired, setCheckBoxRequired ] = useState(true);\n const [ otherRequired, setOtherRequired ] = useState(false);\n \n const checkBoxWatch = useWatch({\n control,\n name: name as facilityLotteryReservationInputKey\n })\n const otherWatch = useWatch({\n control,\n name: otherName as facilityLotteryReservationInputKey\n })\n \n const valueLabels = options?.map(( option ) => (\n {\n value: option.code,\n label: option.name\n }\n ))\n \n useEffect(() => {\n if ( !isOtherRequired ) return;\n if ( isOtherRequired(otherWatch) ) {\n setOtherRequired(true)\n } else {\n setOtherRequired(false)\n }\n }, [ checkBoxWatch ])\n \n useEffect(() => {\n if ( otherWatch && typeof otherWatch === 'string' && otherWatch.length > 0 ) {\n setCheckBoxRequired(false);\n } else {\n setCheckBoxRequired(true);\n }\n }, [ otherWatch ])\n \n return (\n \n
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n \n {\n ( otherName && otherLabel ) && (\n // その他\n \n {translate(otherTitle?? '')}\n \n \n )\n }\n {children && (\n <>{children}\n )}\n
\n )\n}\n\nexport default CheckBoxField;\n","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport CheckBoxField from \"./common/checkBoxField\"\n\nexport interface SymptomFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst SymptomField = (props: SymptomFieldProps) => {\n const { childNum, required, options, control } = props;\n \n const selectName = `children.${childNum}.symptom.symptoms`\n const otherName = `children.${childNum}.symptom.other`\n \n return (\n \n )\n}\n\nexport default SymptomField;\n","import React from 'react';\nimport { Control } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto'\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface EpidemicFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EpidemicField: React.FC = ({ childNum, required, options, control }) => {\n const name = `children.${childNum}.epidemic`\n const showOtherSelection = ['その他'];\n return (\n \n );\n};\n\nexport default EpidemicField;","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nexport interface MedicineFieldProps {\n childNum: number\n required: boolean\n}\n\nconst MedicineField = (props: MedicineFieldProps) => {\n const { childNum, required } = props;\n\n return (\n <>\n \n \n \n \n );\n}\n\nexport default MedicineField;\n","import { useEffect, useState } from \"react\"\nimport { Control, useFormState, useWatch } from \"react-hook-form\"\nimport { FormHelperText } from \"@mui/material\";\nimport { Inputs, facilityLotteryReservationInputKey } from '../../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { getValueByNameStr } from \"../../../../../utils/objectUtil\";\nimport { GContainer, GItem, LabelGItemBase } from \"../../../../components/common/grids\"\nimport { NumberBox } from '../../../../components/common/inputs/numberBox'\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\nconst PADDING = '0 8px'\n\ninterface DecimalTypeFieldProps {\n name: string\n title: string\n intLabel: string\n fracLabel: string\n unit: string\n required: boolean\n control: Control\n intMax?: number\n intMin?: number\n intPlaceholder?: number\n fracMac?: number\n fracMin?: number\n fracPlaceholder?: number\n isSubField?: boolean\n mt?: number\n}\n\nconst DecimalTypeField = (props: DecimalTypeFieldProps) => {\n const { \n name, \n title,\n intLabel,\n fracLabel,\n unit,\n required, \n control,\n intMax,\n intMin,\n intPlaceholder,\n fracMac,\n fracMin,\n fracPlaceholder,\n isSubField,\n } = props\n const [ isIntegerRequired, setIsIntegerRequired ] = useState(false)\n \n const inteName = `${name}.integer`\n const fracName = `${name}.fractional`\n\n const { errors } = useFormState({ control });\n const watchFractional = useWatch({\n name: fracName as facilityLotteryReservationInputKey,\n control\n })\n \n const integerError = getValueByNameStr(errors, inteName as facilityLotteryReservationInputKey)\n const fractionalError = getValueByNameStr(errors, fracName as facilityLotteryReservationInputKey)\n \n useEffect(() => {\n if ( watchFractional ) {\n setIsIntegerRequired(true)\n return\n }\n setIsIntegerRequired(false)\n }, [watchFractional])\n\n return (\n \n {\n isSubField\n ? {translate(title)}\n :
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n }\n \n = 100)? 1.5: 1}>\n \n \n \n .\n \n = 100)? 1.5: 1}>\n \n \n \n {unit}\n \n \n {integerError && {integerError.message}}\n {fractionalError && 少数部分は{fractionalError.message}}\n
\n )\n\n}\n\nexport default DecimalTypeField;\n","import { Control } from \"react-hook-form\"\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\n\nexport interface BodyTempatureFieldProps {\n childNum: number\n required: boolean\n control: Control\n}\n\nconst BodyTempatureField = (props: BodyTempatureFieldProps) => {\n const { childNum, required, control } = props\n\n return (\n \n )\n\n}\n\nexport default BodyTempatureField;\n","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nexport interface FebrileSeizuresFieldProps {\n childNum: number\n required: boolean\n}\n\nconst FebrileSeizuresField = (props: FebrileSeizuresFieldProps) => {\n const { childNum, required } = props;\n\n return (\n \n );\n}\n\nexport default FebrileSeizuresField;\n","import { executePost } from '../common/apiCaller'\nimport { PostLotteryReservationAttachmentDto, PostLotteryReservationAttachmentInputDto } from '../dto/lotteryReservationAttachmentDto'\n\nconst apiNamePublic = 'citizen'\nconst apiPath = '/lottery-reservations/attachment'\n\nexport const executePostLotteryReservationAttachment = (input: PostLotteryReservationAttachmentInputDto) => {\n return executePost(apiNamePublic, apiPath, input)\n}\n","import { ChangeEvent, useCallback, useRef } from 'react'\nimport { useController, useFormContext, useFormState } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Box, Tooltip, styled, FormHelperText } from '@mui/material'\nimport { selectSystemControl } from '../../../../containers/common/store/slices/systemControl'\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { showLoading } from '../../../../containers/common/store/slices/application'\nimport { getAuthenticatedUser } from '../../../../utils/authUtil'\nimport { formatDate, getNow } from '../../../../utils/dateUtil'\nimport { GItem } from '../../../components/common/grids'\nimport { ButtonS } from '../../../components/common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../../../components/common/buttons/buttonOutlinedS'\nimport { translate } from '../../../../i18n'\nimport { executePostLotteryReservationAttachment } from '../../../../dataAccess/webApi/dao/lotteryReservationAttachmentDao'\nimport { PostLotteryReservationAttachmentInputDto } from '../../../../dataAccess/webApi/dto/lotteryReservationAttachmentDto'\n\nconst EXTENSION = [\n '.jpeg',\n '.jpg',\n '.pdf',\n '.png',\n] as const;\n\nconst VALID_FILE = {\n MAX_NAME_LENGTH: 100,\n MAX_MEGA_BYTE_SIZE: 10,\n EXTENSION: EXTENSION,\n} as const\n\n/**\n * 一時アップロードkey取得\n * @param fileName ファイル名\n * @param loginUserId ログインユーザID\n * @retunr 一時アップロードkey\n */\nconst getTempUploadKey = (\n fileName: string,\n loginUserId: string,\n userId: string\n) => {\n const currentDatetime = formatDate(getNow(), 'yyyyMMddHHmmssSSS')\n return `work/${loginUserId}/${userId}/medicalDoc/${currentDatetime}/${fileName}`\n}\n\nconst UrlTextField = styled(Box)({\n border: '1px solid',\n fontSize: '1rem',\n height: '28px',\n alignItems: 'center',\n display: 'flex',\n paddingLeft: '0.25rem',\n paddingRight: '0.25rem',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontWeight: 'bold'\n});\n\nconst FileSelectArea = styled('label')({\n height: '30px',\n width: '100px',\n fontWeight: '700',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n '& input': {\n display: 'none',\n },\n})\n\nconst extentionStr = VALID_FILE.EXTENSION.join(',')\n\n\ninterface MedicalDocUploadFieldProps {\n name: string\n // 登録済みファイル情報\n registeredFileKey: string | null\n}\n\nexport const MedicalDocUploadField = (props: MedicalDocUploadFieldProps) => {\n const { name, registeredFileKey } = props\n const methods = useFormContext()\n const dispatch = useDispatch()\n const backetName = useSelector(selectSystemControl).s3BucketNameCitizenUserLotteryReservation\n const fileInputRef = useRef(null);\n\n const {\n field: { onChange, value },\n } = useController({\n name: props.name,\n defaultValue: { fileName: null, delFlg: Flag.OFF, tempUploadKey: null },\n control: methods.control\n })\n const { errors } = useFormState({ control: methods.control });\n const errorMessage = errors[props.name]?.message;\n\n /**\n * ファイルアップロード\n * @param fileInfo アップロードするファイル情報\n */\n const uploadFile = useCallback(\n async (fileInfo: File) => {\n dispatch(\n showLoading({\n process: async () => {\n try {\n const loginUser = await getAuthenticatedUser()\n const loginUserId = loginUser.attributes.sub\n \n const key = getTempUploadKey(fileInfo.name, loginUserId, loginUserId)\n \n // 署名付きURLの取得\n const inputs = {\n fileName: fileInfo.name,\n key: key\n } as PostLotteryReservationAttachmentInputDto\n const getUrl = await executePostLotteryReservationAttachment(inputs)\n const url = getUrl.result.url\n if (!url) return\n \n // work配下に一時URLでアップロード\n const response = await fetch(url, {\n method: 'PUT',\n body: fileInfo,\n });\n \n if (!response.ok) {\n throw new Error('Upload failed')\n }\n \n onChange({ fileName: fileInfo.name, delFlg: Flag.OFF, tempUploadKey: key })\n } catch (err) {\n methods.setError(\n name, \n { \n message: translate(\"facilityReservationForm.form.error.medicalDoc.failUpload.fail\") \n }, \n { \n shouldFocus: true \n }\n )\n } \n },\n isHiddenMain: false,\n })\n );\n },\n [backetName, methods, name, onChange]\n )\n\n /**\n * ファイル選択処理\n * @param ChangeEvent\n */\n const handleSelectFile = useCallback(\n async (event: ChangeEvent) => {\n methods.clearErrors(name)\n\n try {\n // ファイル情報\n const fileInfo = event.target?.files?.[0]\n // 同じファイルを選択してもchangeイベントをトリガーさせる為valueを空にする\n event.target.value = ''\n if (fileInfo != null) {\n // ファイル名の文字長チェック\n if (fileInfo.name.length > VALID_FILE.MAX_NAME_LENGTH) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.medicalDoc.failUpload.reason.name\",\n VALID_FILE.MAX_NAME_LENGTH.toString()\n )\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイルサイズチェック\n if (fileInfo.size > VALID_FILE.MAX_MEGA_BYTE_SIZE * 1000000) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.medicalDoc.failUpload.reason.byte\",\n VALID_FILE.MAX_MEGA_BYTE_SIZE.toString()\n )?? ''\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイル拡張子チェック\n const isExtentionMatch =\n VALID_FILE.EXTENSION.filter((ext) => {\n const pattern = `^.*\\\\${ext}$`\n return fileInfo.name.toLowerCase().match(pattern)\n }).length > 0\n if (!isExtentionMatch) {\n methods.setError(\n name, \n { \n message: translate('facilityReservationForm.form.error.medicalDoc.failUpload.reason.extention') \n }, \n { \n shouldFocus: true \n }\n )\n return\n }\n await uploadFile(fileInfo)\n }\n } finally {\n }\n },\n [dispatch, methods, name, uploadFile]\n )\n\n /**\n * クリアボタンクリック処理\n */\n const handleClickClear = useCallback(() => {\n methods.clearErrors(name)\n // DBに登録済みのファイルがある場合は削除フラグをONに設定\n const delFlg = registeredFileKey ? Flag.ON : Flag.OFF\n onChange({ fileName: null, delFlg: delFlg, tempUploadKey: null })\n }, [methods, name, onChange, registeredFileKey])\n \n const handleButtonClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n \n \n \n {translate('facilityReservationForm.form.label.medicalDoc.selectBtn')}\n \n \n \n {value.fileName??''}\n \n \n \n \n {translate('facilityReservationForm.form.common.clear')}\n \n \n {\n errorMessage && (\n \n {errorMessage}\n \n )\n }\n \n )\n}\n\nexport default MedicalDocUploadField;\n","import React from \"react\"\nimport { LabelGItemBase } from \"../../../../components/common/grids\"\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\ntype FieldTitleProps = {\n title: string\n required?: boolean\n isSubField?: boolean\n}\n\nconst FieldTitle: React.FC = (props) => {\n const { title, required, isSubField } = props\n \n return (\n <>\n {\n isSubField\n ? {translate(title)}\n :
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n }\n \n )\n}\n\nexport default FieldTitle","import React, { useCallback } from 'react';\nimport { Control, useFieldArray, useWatch } from \"react-hook-form\"\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { MEDICAL_DOC_USAGE } from '../../../../containers/common/constant/projectMst'\nimport { Inputs, facilityLotteryReservationInputKey } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService'\nimport { GItem } from \"../../../components/common/grids\"\nimport { ButtonS } from '../../../components/common/buttons/buttonS'\nimport { MedicalDocUploadField } from './medicalDocUploadField'\nimport YesNoField from './common/yesNoField'\nimport PreserveLineText from \"./common/preserveLineText\"\nimport { translate } from '../../../../i18n'\nimport { TimePicker } from '../../common/inputs/timePicker';\nimport { DatePicker } from '../../common/inputs/datePicker';\nimport { TextBox } from '../../common/inputs/textBox';\nimport FieldTitle from './common/fieldTitle';\n\nexport interface MedicalDocFieldProps {\n childNum: number\n note: string\n medicalDocUsage: string\n control: Control\n}\n\nconst MedicalDocField = (props: MedicalDocFieldProps) => {\n const { childNum, note, medicalDocUsage, control } = props;\n\n const submittionName = `children.${childNum}.medicalDoc.hasSubmitted` as facilityLotteryReservationInputKey\n const uploadName = `children.${childNum}.medicalDoc.docs` as `children.${number}.medicalDoc.docs`\n const hospitalName = `children.${childNum}.hospitalInfo.hospitalName` as facilityLotteryReservationInputKey\n const date = `children.${childNum}.hospitalInfo.date` as facilityLotteryReservationInputKey\n const time = `children.${childNum}.hospitalInfo.time` as facilityLotteryReservationInputKey\n\n const { fields, append } = useFieldArray({\n name: uploadName,\n control,\n })\n const watchUploadFields = useWatch({\n name: uploadName,\n control\n })\n const watchYesNoField = useWatch({\n name: submittionName,\n control\n })\n\n const isOptional = medicalDocUsage === MEDICAL_DOC_USAGE.OPTIONAL || medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO && watchYesNoField === Flag.OFF\n const validateMedicalDoc = useCallback((value: string) => {\n if (isOptional) return true\n\n if (value === Flag.OFF) {\n return translate(\"facilityReservationForm.form.error.medicalDoc.get\")\n }\n\n const hasValidDocs = watchUploadFields.some((field) => field.tempUploadKey);\n if (medicalDocUsage === MEDICAL_DOC_USAGE.TILL_UPLOAD || medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO && watchYesNoField === Flag.ON) {\n if (!hasValidDocs) {\n return translate(\"facilityReservationForm.form.error.medicalDoc.upload\")\n }\n }\n\n return true\n }, [watchUploadFields, watchYesNoField])\n\n return (\n \n \n { medicalDocUsage === MEDICAL_DOC_USAGE.MUST_HOSPITAL_INFO && watchYesNoField === Flag.OFF && (\n <>\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n {/** 施設備考 */}\n \n
\n {fields.map((item, docIndex) => (\n \n ))}\n {fields?.length < 5 && (\n \n append({\n fileName: null,\n delFlg: '0',\n tempUploadKey: null,\n })}\n >\n {translate('facilityReservationForm.form.common.add')}\n \n \n )}\n
\n
\n );\n}\n\nexport default MedicalDocField;\n","import React, { useState, useEffect } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport { reservationEmergencyAction } from \"../../../../containers/common/constant/classification\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto'\nimport { GItem } from \"../../../components/common/grids\"\nimport { TextBox } from '../../../components/common/inputs/textBox'\nimport { translate } from '../../../../i18n'\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface EmergencyActionFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EmergencyActionField: React.FC = ({ childNum, required, options, control }) => {\n const [ isOtherRequired, setIsOtherRequired ] = useState(false);\n const name = `children.${childNum}.emergencyAction`\n const actionName = `${name}.action`\n \n const actionWatch = useWatch({\n control,\n name: `${actionName}.select` as unknown as keyof Inputs\n })\n \n useEffect(() => {\n if ( !actionWatch ) return;\n \n if ( actionWatch === reservationEmergencyAction.other ) {\n setIsOtherRequired(true)\n return\n }\n setIsOtherRequired(false)\n }, [actionWatch])\n \n return (\n \n \n \n \n \n );\n};\n\nexport default EmergencyActionField;\n","import { Control } from \"react-hook-form\"\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\n\nexport interface HeightFieldProps {\n childNum: number\n required: boolean\n control: Control\n}\n\nconst HeightField = (props: HeightFieldProps) => {\n const { childNum, required, control } = props\n\n return (\n \n )\n\n}\n\nexport default HeightField;\n","import { Control } from \"react-hook-form\"\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\n\nexport interface WeightFieldProps {\n childNum: number\n required: boolean\n control: Control\n}\n\nconst WeightField = (props: WeightFieldProps) => {\n const { childNum, required, control } = props\n\n return (\n \n )\n\n}\n\nexport default WeightField;\n","import { Control, useFormState } from \"react-hook-form\"\nimport { FormHelperText } from \"@mui/material\";\nimport { Inputs, facilityLotteryReservationInputKey } from '../../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { getValueByNameStr } from \"../../../../../utils/objectUtil\";\nimport { GContainer, GItem, LabelGItemBase } from \"../../../../components/common/grids\"\nimport { NumberBox } from '../../../../components/common/inputs/numberBox'\nimport { TitleLabel } from \"../../../../components/common/titleLabel\"\nimport { AttentionLabel } from \"../../../../components/common/attentionLabel\"\nimport { translate } from '../../../../../i18n'\n\nconst PADDING = '0 8px'\n\ninterface IntegerTypeFieldProps {\n name: string\n title: string\n label: string\n unit: string\n required: boolean\n control: Control\n max?: number\n min?: number\n placeholder?: number\n isSubField?: boolean\n}\n\nconst IntegerTypeField = (props: IntegerTypeFieldProps) => {\n const { \n name, \n title,\n label,\n unit,\n required, \n control,\n max,\n min,\n placeholder,\n isSubField,\n } = props\n\n const { errors } = useFormState({ control });\n const error = getValueByNameStr(errors, name as facilityLotteryReservationInputKey)\n\n return (\n \n {\n isSubField\n ? {translate(title)}\n :
\n \n {\n required && (\n *\n )\n }\n {translate(title)}\n \n
\n }\n \n \n \n \n \n {unit}\n \n \n {error && {error.message}}\n
\n )\n\n}\n\nexport default IntegerTypeField;\n","import React from 'react';\nimport { useState, useEffect } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs } from \"../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport { reservationEatingMethod } from \"../../../../containers/common/constant/classification\"\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto'\nimport SelectBoxField from \"./common/selectBoxField\"\nimport DecimalTypeField from \"./common/decimalTypeField\"\nimport IntegerTypeField from \"./common/integerTypeField\"\n\nexport interface EatingMethodFieldProps {\n childNum: number\n required: boolean\n methodOptions?: PostDecodeMstDto[]\n brestFeddingDetailOptions?: PostDecodeMstDto[]\n weaningDetailOptions?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EatingMethodField: React.FC = (props) => {\n const { \n childNum, \n required, \n methodOptions, \n brestFeddingDetailOptions,\n weaningDetailOptions,\n control\n } = props\n const [ detailOption, setDetailOption ] = useState()\n \n const name = `children.${childNum}.eatingMethod`\n const methodName = `${name}.method`\n const detailName = `${name}.detail`\n const milkAmountName = `${name}.milkAmount`\n const milkFrequencyName = `${name}.milkFrequency`\n \n const methodWatch = useWatch({\n control,\n name: `${methodName}.select` as unknown as keyof Inputs\n })\n \n useEffect(() => {\n if ( !methodWatch ) return\n\n // 「授乳中」または「離乳中」であれば詳細項目表示\n if ( methodWatch === reservationEatingMethod.brestFeeding) {\n setDetailOption(brestFeddingDetailOptions)\n return\n }\n if ( methodWatch === reservationEatingMethod.weaning) {\n setDetailOption(weaningDetailOptions)\n return\n }\n setDetailOption(undefined)\n }, [ methodWatch ])\n \n return (\n <>\n {/** 栄養方法 */}\n \n {\n detailOption && (\n <>\n {/** 詳細 */}\n \n \n {\n methodWatch === reservationEatingMethod.brestFeeding && (\n <>\n {/** ミルク量 */}\n \n {/** ミルク回数 */}\n \n \n )\n }\n \n \n \n )\n }\n \n \n \n )\n \n}\nexport default EatingMethodField;\n","import React from 'react';\nimport YesNoField from './common/yesNoField'\n\nexport interface FoodAllergyFieldProps {\n childNum: number\n required: boolean\n}\n\nconst FoodAllergyField = (props: FoodAllergyFieldProps) => {\n const { childNum, required } = props;\n\n return (\n \n );\n}\n\nexport default FoodAllergyField;","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface EatingAbilityFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst EatingAbilityField = (props: EatingAbilityFieldProps) => {\n const { childNum, required, options, control } = props;\n \n return (\n \n )\n}\n\nexport default EatingAbilityField;\n\n","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface ActionsFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst ActionsField = (props: ActionsFieldProps) => {\n const { childNum, required, options, control } = props;\n \n const showOtherSelection = [\"睡眠\"]\n \n return (\n \n )\n}\n\nexport default ActionsField;\n\n","import { Control } from 'react-hook-form';\nimport { Inputs } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\"\n\nexport interface ToiletAbilityFieldProps {\n childNum: number\n required: boolean\n options?: PostDecodeMstDto[]\n control: Control\n}\n\nconst ToiletAbilityField = (props: ToiletAbilityFieldProps) => {\n const { childNum, required, options, control } = props;\n \n const name = `children.${childNum}.toiletAbility`\n \n return (\n \n )\n}\n\nexport default ToiletAbilityField;\n\n","import React from \"react\"\nimport { GItem } from \"../../../../components/common/grids\"\nimport { TextBox } from '../../../../components/common/inputs/textBox'\nimport FieldTitle from \"./fieldTitle\"\nimport { translate } from '../../../../../i18n'\n\ntype TextFieldProps = {\n name: string\n label: string\n maxLength: number\n row: number\n required?: boolean\n title?: string\n isSubField?: boolean\n marginBottom?: number\n}\n\nconst TextField: React.FC = (props) => {\n const { name, label, required, maxLength, row, title, isSubField, marginBottom } = props;\n return (\n \n {\n title && (\n \n )\n }\n \n \n )\n}\n\nexport default TextField;\n","import React from \"react\"\nimport TextField from \"./common/textField\"\n\nexport interface ConsiderationsFieldProps {\n childNum: number\n required: boolean\n}\n\nconst ConsiderationsField: React.FC = (props) => {\n const { childNum, required } = props\n return (\n \n )\n}\n\nexport default ConsiderationsField;\n","import { useCallback } from 'react';\nimport { Control, useWatch } from 'react-hook-form';\nimport { Inputs, facilityLotteryReservationInputKey } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService';\nimport { PostDecodeMstDto } from '../../../../dataAccess/webApi/dto/decodeMstDto';\nimport SelectBoxField from \"./common/selectBoxField\";\nimport { GItem } from \"../../../components/common/grids\";\nimport ConsentCheckField from \"./common/consentCheckField\";\nimport { translate } from '../../../../i18n'\n\nexport interface ReductionTypeFieldProps {\n childNum: number\n required: boolean\n useConsent: boolean\n options?: PostDecodeMstDto[]\n note: string | null\n consentNote?: string | null\n control: Control\n}\n\nconst ReductionTypeField = (props: ReductionTypeFieldProps) => {\n const { childNum, required, useConsent, options, note, consentNote, control } = props;\n\n const nameBase = `children.${childNum}.reductionType`;\n const selectBoxName = `${nameBase}.reduction`;\n\n const inputWatch = useWatch({ name: `${selectBoxName}.select` as facilityLotteryReservationInputKey, control: control })\n \n \n const showConsent = useCallback(() => {\n return inputWatch && inputWatch !== '';\n },[inputWatch]);\n \n return (\n \n \n {note}\n \n {\n (useConsent && showConsent()) &&(\n \n )\n }\n \n )\n}\n\nexport default ReductionTypeField;\n\n","import { ChangeEvent, useCallback, useRef } from 'react'\nimport { useController, useFormContext, useFormState } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Box, Tooltip, styled, FormHelperText } from '@mui/material'\nimport { selectSystemControl } from '../../../../containers/common/store/slices/systemControl'\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { showLoading } from '../../../../containers/common/store/slices/application'\nimport { getAuthenticatedUser } from '../../../../utils/authUtil'\nimport { formatDate, getNow } from '../../../../utils/dateUtil'\nimport { GItem } from '../../common/grids'\nimport { ButtonS } from '../../common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../../common/buttons/buttonOutlinedS'\nimport { translate } from '../../../../i18n'\nimport { executePostLotteryReservationAttachment } from '../../../../dataAccess/webApi/dao/lotteryReservationAttachmentDao'\nimport { PostLotteryReservationAttachmentInputDto } from '../../../../dataAccess/webApi/dto/lotteryReservationAttachmentDto'\n\nconst EXTENSION = [\n '.jpeg',\n '.jpg',\n '.pdf',\n '.png',\n] as const;\n\nconst VALID_FILE = {\n MAX_NAME_LENGTH: 100,\n MAX_MEGA_BYTE_SIZE: 10,\n EXTENSION: EXTENSION,\n} as const\n\n/**\n * 一時アップロードkey取得\n * @param fileName ファイル名\n * @param loginUserId ログインユーザID\n * @retunr 一時アップロードkey\n */\nconst getTempUploadKey = (\n fileName: string,\n loginUserId: string,\n userId: string\n) => {\n const currentDatetime = formatDate(getNow(), 'yyyyMMddHHmmssSSS')\n return `work/${loginUserId}/${userId}/attachedDoc/${currentDatetime}/${fileName}`\n}\n\nconst UrlTextField = styled(Box)({\n border: '1px solid',\n fontSize: '1rem',\n height: '28px',\n alignItems: 'center',\n display: 'flex',\n paddingLeft: '0.25rem',\n paddingRight: '0.25rem',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontWeight: 'bold'\n});\n\nconst FileSelectArea = styled('label')({\n height: '30px',\n width: '100px',\n fontWeight: '700',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n '& input': {\n display: 'none',\n },\n})\n\nconst extentionStr = VALID_FILE.EXTENSION.join(',')\n\ninterface AttachedDocUploadFieldProps {\n name: string\n // 登録済みファイル情報\n registeredFileKey: string | null\n}\n\nexport const AttachedDocUploadField = (props: AttachedDocUploadFieldProps) => {\n const { name, registeredFileKey } = props\n const methods = useFormContext()\n const dispatch = useDispatch()\n const backetName = useSelector(selectSystemControl).s3BucketNameCitizenUserLotteryReservation\n const fileInputRef = useRef(null);\n\n const {\n field: { onChange, value },\n } = useController({\n name: props.name,\n defaultValue: { fileName: null, delFlg: Flag.OFF, tempUploadKey: null },\n control: methods.control\n })\n const { errors } = useFormState({ control: methods.control });\n const errorMessage = errors[props.name]?.message;\n\n /**\n * ファイルアップロード\n * @param fileInfo アップロードするファイル情報\n */\n const uploadFile = useCallback(\n async (fileInfo: File) => {\n dispatch(\n showLoading({\n process: async () => {\n try {\n const loginUser = await getAuthenticatedUser()\n const loginUserId = loginUser.attributes.sub\n \n const key = getTempUploadKey(fileInfo.name, loginUserId, loginUserId)\n \n // 署名付きURLの取得\n const inputs = {\n fileName: fileInfo.name,\n key: key\n } as PostLotteryReservationAttachmentInputDto\n const getUrl = await executePostLotteryReservationAttachment(inputs)\n const url = getUrl.result.url\n if (!url) return\n \n // work配下に一時URLでアップロード\n const response = await fetch(url, {\n method: 'PUT',\n body: fileInfo,\n });\n \n if (!response.ok) {\n throw new Error('Upload failed')\n }\n \n onChange({ fileName: fileInfo.name, delFlg: Flag.OFF, tempUploadKey: key })\n } catch (err) {\n methods.setError(\n name, \n { \n message: translate(\"facilityReservationForm.form.error.attachedDoc.failUpload.fail\") \n }, \n { \n shouldFocus: true \n }\n )\n } \n },\n isHiddenMain: false,\n })\n );\n },\n [backetName, methods, name, onChange]\n )\n\n /**\n * ファイル選択処理\n * @param ChangeEvent\n */\n const handleSelectFile = useCallback(\n async (event: ChangeEvent) => {\n methods.clearErrors(name)\n\n try {\n // ファイル情報\n const fileInfo = event.target?.files?.[0]\n // 同じファイルを選択してもchangeイベントをトリガーさせる為valueを空にする\n event.target.value = ''\n if (fileInfo != null) {\n // ファイル名の文字長チェック\n if (fileInfo.name.length > VALID_FILE.MAX_NAME_LENGTH) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.attachedDoc.failUpload.reason.name\",\n VALID_FILE.MAX_NAME_LENGTH.toString()\n )\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイルサイズチェック\n if (fileInfo.size > VALID_FILE.MAX_MEGA_BYTE_SIZE * 1000000) {\n methods.setError(\n name,\n { \n message: translate(\n \"facilityReservationForm.form.error.attachedDoc.failUpload.reason.byte\",\n VALID_FILE.MAX_MEGA_BYTE_SIZE.toString()\n )?? ''\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイル拡張子チェック\n const isExtentionMatch =\n VALID_FILE.EXTENSION.filter((ext) => {\n const pattern = `^.*\\\\${ext}$`\n return fileInfo.name.toLowerCase().match(pattern)\n }).length > 0\n if (!isExtentionMatch) {\n methods.setError(\n name, \n { \n message: translate('facilityReservationForm.form.error.attachedDoc.failUpload.reason.extention') \n }, \n { \n shouldFocus: true \n }\n )\n return\n }\n await uploadFile(fileInfo)\n }\n } finally {\n }\n },\n [dispatch, methods, name, uploadFile]\n )\n\n /**\n * クリアボタンクリック処理\n */\n const handleClickClear = useCallback(() => {\n methods.clearErrors(name)\n // DBに登録済みのファイルがある場合は削除フラグをONに設定\n const delFlg = registeredFileKey ? Flag.ON : Flag.OFF\n onChange({ fileName: null, delFlg: delFlg, tempUploadKey: null })\n }, [methods, name, onChange, registeredFileKey])\n \n const handleButtonClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n \n \n \n {translate('facilityReservationForm.form.label.attachedDoc.selectBtn')}\n \n \n \n {value.fileName??''}\n \n \n \n \n {translate('facilityReservationForm.form.common.clear')}\n \n \n {\n errorMessage && (\n \n {errorMessage}\n \n )\n }\n \n )\n}\n\nexport default AttachedDocUploadField;\n","import { Control, useFieldArray } from \"react-hook-form\"\nimport { INPUT_FIELD_USAGE } from '../../../../containers/common/constant/projectMst'\nimport { Inputs } from '../../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService'\nimport { GItem } from \"../../common/grids\"\nimport { ButtonS } from '../../common/buttons/buttonS'\nimport { AttachedDocUploadField } from './attachedDocUploadField'\nimport { translate } from '../../../../i18n'\nimport { AttentionLabel } from '../../common/attentionLabel';\nimport { TitleLabel } from '../../common/titleLabel';\n\nexport interface AttachedDocFieldProps {\n childNum: number\n attachedDocInput: string\n control: Control\n}\n\nconst AttachedDocField = (props: AttachedDocFieldProps) => {\n const { childNum, attachedDocInput, control } = props;\n \n const uploadName = `children.${childNum}.attachedDoc.docs` as `children.${number}.attachedDoc.docs`\n const { fields, append } = useFieldArray({\n name: uploadName,\n control,\n })\n \n const isOptional = attachedDocInput === INPUT_FIELD_USAGE.OPTIONAL\n\n return (\n \n \n {\n !isOptional && (\n *\n )\n }\n {translate(\"facilityReservationForm.form.label.attachedDoc.field\")}\n \n {/** 施設備考 */}\n
\n {fields.map((item, docIndex) => (\n \n ))}\n {fields?.length < 3 && (\n \n append({\n fileName: null,\n delFlg: '0',\n tempUploadKey: null,\n })}\n >\n {translate('facilityReservationForm.form.common.add')}\n \n \n )}\n
\n
\n );\n}\n\nexport default AttachedDocField;\n","import { translate } from '../../../../i18n';\nimport { getSiblingsLotteryResultReferenceFlag } from '../../../../containers/common/codeMaster'\nimport { AttentionLabel } from '../../common/attentionLabel';\nimport { GItem } from '../../common/grids';\nimport { RadioButtonGroup } from '../../common/inputs/radioButtonGroup';\nimport { TitleLabel } from '../../common/titleLabel';\n\nexport interface SiblingsLotteryResultReferenceFlagFieldProps {\n childNum: number\n required: boolean\n}\n\nconst SiblingsLotteryResultReferenceFlagField = (props: SiblingsLotteryResultReferenceFlagFieldProps) => {\n const { childNum, required } = props;\n\n return (\n \n
\n \n *\n {translate(\"facilityReservationForm.form.label.siblingsLotteryResultReferenceFlag\")}\n \n
\n \n
\n );\n}\n\nexport default SiblingsLotteryResultReferenceFlagField;\n","import React from 'react';\nimport { GItem } from '../../common/grids';\nimport FieldTitle from './common/fieldTitle';\nimport { Select } from '../../common/inputs/select';\nimport { Flag, facilityInputFieldType } from '../../../../containers/common/constant/classification';\nimport TextField from './common/textField';\n\nexport interface FacilityInputFieldProps {\n childNum: number\n id: string\n label: string,\n options: string[]\n inputType: string\n mustFlag: string\n}\nconst FacilityinputField: React.FC = (props) => {\n const { childNum, label, options, inputType, mustFlag, id } = props;\n\n const option = options.filter(option => option !== null).map((option, index) => ({\n label: option, value: String(index + 1)\n }))\n\n const inputName = `children.${childNum}.facilityInputFields.${id}.answer`\n\n return (\n \n \n {\n inputType === facilityInputFieldType.select && (\n \n \n \n )\n }\n {\n inputType === facilityInputFieldType.text && (\n \n \n \n )\n }\n \n );\n\n}\nexport default FacilityinputField;\n","import React from 'react';\nimport { Control } from 'react-hook-form'\nimport { FieldsType, FieldRule, getByChildFormFieldRule } from '../../../containers/common/projectMst'\nimport { Inputs } from \"../../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService\"\nimport { GetProjectDetailDto } from \"../../../dataAccess/webApi/dto/projectsDto\"\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto';\nimport { GContainer, GItem } from \"../common/grids\"\nimport { InfoCard } from \"../common/infoCard\"\nimport { TitleLabel } from \"../common/titleLabel\"\nimport ChildContent from \"../common/reservationDetail/childContent\"\nimport DiagonosisField, { DiagonosisFieldProps } from '../facilityLotteryReservationForm/fields/diagonosisField';\nimport SymptomField, { SymptomFieldProps } from '../facilityLotteryReservationForm/fields/symptomField';\nimport EpidemicField, { EpidemicFieldProps } from '../facilityLotteryReservationForm/fields/epidemicField';\nimport MedicineField, { MedicineFieldProps } from '../facilityLotteryReservationForm/fields/medicineField';\nimport BodyTemperatureField, { BodyTempatureFieldProps } from '../facilityLotteryReservationForm/fields/bodyTempatureField';\nimport FebrileSeizuresField, { FebrileSeizuresFieldProps } from '../facilityLotteryReservationForm/fields/febrileSeizuresField';\nimport MedicalDocField, { MedicalDocFieldProps } from '../facilityLotteryReservationForm/fields/medicalDocField';\nimport EmergencyActionField, { EmergencyActionFieldProps } from '../facilityLotteryReservationForm/fields/emergencyActionField';\nimport HeightField, { HeightFieldProps } from '../facilityLotteryReservationForm/fields/heightField';\nimport WeightField, { WeightFieldProps } from '../facilityLotteryReservationForm/fields/weightField';\nimport EatingMethodField, { EatingMethodFieldProps } from '../facilityLotteryReservationForm/fields/eatingMethodField';\nimport FoodAllergyField, { FoodAllergyFieldProps } from '../facilityLotteryReservationForm/fields/foodAllergyField';\nimport EatingAbilityField, { EatingAbilityFieldProps } from '../facilityLotteryReservationForm/fields/eatingAbilityField';\nimport ActionsField, { ActionsFieldProps } from '../facilityLotteryReservationForm/fields/actionsField';\nimport ToiletAbilityField, { ToiletAbilityFieldProps } from '../facilityLotteryReservationForm/fields/toiletAbilityField';\nimport ConsiderationsField, { ConsiderationsFieldProps } from \"./fields/considerationsField\";\nimport ReductionTypeField, { ReductionTypeFieldProps } from '../facilityLotteryReservationForm/fields/reductionTypeField';\nimport AttachedDocField, { AttachedDocFieldProps } from '../facilityLotteryReservationForm/fields/attachedDocField';\nimport SiblingsLotteryResultReferenceFlagField from '../facilityLotteryReservationForm/fields/siblingsLotteryResultReferenceFlagField';\nimport { ChildLotteryReservationInfoType } from '../../../containers/common/lotteryReservation';\nimport { Flag, reservationFieldUsage } from '../../../containers/common/constant/classification';\nimport FacilityinputField, { FacilityInputFieldProps } from './fields/facilityInputsField';\nimport { facilityInputFields } from '../../../dataAccess/webApi/dto/facilitiesDto';\n\ntype Field = {\n component:React.FC\n getProps: (rule: FieldRule, childNum: number) => T\n}\n\ntype SortedField = Field & {\n rule: FieldRule\n}\n\ntype ByChildFormUnitProps = {\n control: Control\n projectMst: GetProjectDetailDto\n childInfoList: ChildLotteryReservationInfoType[]\n diagnosisOptions: PostDecodeMstDto[]\n symptomOptions: PostDecodeMstDto[]\n epidemicOptions: PostDecodeMstDto[]\n emergencyOptions: PostDecodeMstDto[]\n eatingMethodOptions: PostDecodeMstDto[]\n brestFeedingDetailOptions: PostDecodeMstDto[]\n weaningDetailOptions: PostDecodeMstDto[]\n eatingAbilityOptions: PostDecodeMstDto[]\n actionsOptions: PostDecodeMstDto[]\n toiletAbilityOptions: PostDecodeMstDto[]\n reductionOptions: PostDecodeMstDto[]\n showSiblingsLotteryResultReferenceFlag: boolean\n facilityInputFieldsDisplayFlag: string\n facilityInputFields?: facilityInputFields[]\n}\n\ninterface FieldComponents {\n diagonosis: Field;\n symptom: Field;\n epidemic: Field;\n medicine: Field;\n bodyTemp: Field;\n febrileSeizures: Field;\n medicalDoc: Field;\n emergency: Field;\n height: Field;\n weight: Field;\n eatingMethod: Field;\n foodAllergy: Field;\n eatingAbility: Field;\n action: Field;\n toiletAbility: Field;\n considerations: Field;\n reduction: Field;\n attachedDoc: Field;\n facilityInputs?: Field\n}\n\nconst ByChildFormUnitForLottery: React.FC = (props) => {\n const { \n control, \n projectMst, \n childInfoList,\n diagnosisOptions,\n symptomOptions,\n epidemicOptions,\n emergencyOptions,\n eatingMethodOptions,\n brestFeedingDetailOptions,\n weaningDetailOptions,\n eatingAbilityOptions,\n actionsOptions,\n toiletAbilityOptions,\n reductionOptions,\n showSiblingsLotteryResultReferenceFlag,\n facilityInputFieldsDisplayFlag,\n facilityInputFields\n } = props\n \n const fieldComponents: FieldComponents = {\n diagonosis: {\n component: DiagonosisField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: diagnosisOptions,\n control\n })\n },\n symptom: {\n component: SymptomField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: symptomOptions,\n control\n })\n },\n epidemic: {\n component: EpidemicField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: epidemicOptions,\n control\n })\n },\n medicine: {\n component: MedicineField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required\n })\n },\n bodyTemp: {\n component: BodyTemperatureField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n control\n })\n },\n febrileSeizures: {\n component: FebrileSeizuresField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required\n })\n },\n medicalDoc: {\n component: MedicalDocField,\n getProps: (rule, childNum) => ({\n childNum,\n note: projectMst.medicalDocNote,\n medicalDocUsage: projectMst.medicalDocUsage,\n control\n })\n },\n emergency: {\n component: EmergencyActionField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: emergencyOptions,\n control\n })\n },\n height: {\n component: HeightField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n control\n })\n },\n weight: {\n component: WeightField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n control\n })\n },\n eatingMethod: {\n component: EatingMethodField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n methodOptions: eatingMethodOptions,\n brestFeddingDetailOptions: brestFeedingDetailOptions,\n weaningDetailOptions: weaningDetailOptions,\n control\n })\n },\n foodAllergy: {\n component: FoodAllergyField,\n getProps: (rule, childNum) => ({\n childNum: childNum,\n required: rule.required\n })\n },\n eatingAbility: {\n component: EatingAbilityField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: eatingAbilityOptions,\n control\n })\n },\n action: {\n component: ActionsField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: actionsOptions,\n control\n })\n },\n toiletAbility: {\n component: ToiletAbilityField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n options: toiletAbilityOptions,\n control\n })\n },\n considerations: {\n component: ConsiderationsField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n })\n },\n reduction: {\n component: ReductionTypeField,\n getProps: (rule, childNum) => ({\n childNum,\n required: rule.required,\n useConsent: projectMst.reductionConsentInput !== reservationFieldUsage.noUse,\n options: reductionOptions,\n note: projectMst.reductionNote,\n consentNote: projectMst.reductionConsentNote,\n control\n })\n },\n attachedDoc: {\n component: AttachedDocField,\n getProps: (_rule, childNum) => ({\n childNum,\n attachedDocInput: projectMst.attachedDocInput,\n control\n })\n },\n }\n const fieldRule = getByChildFormFieldRule(projectMst)\n const isMultipleChild = childInfoList.length !== 1\n \n const sortedFields: SortedField[] = Object.keys(fieldRule)\n .filter((fieldKey) => {\n return fieldRule[fieldKey as keyof FieldsType].show\n }) \n .map((fieldKey) => {\n const field = fieldKey as keyof FieldsType;\n return {\n component: fieldComponents[field].component,\n getProps: fieldComponents[field].getProps,\n rule: fieldRule[field],\n };\n })\n .sort((a, b) => (a.rule.order ?? Number.MAX_SAFE_INTEGER) - (b.rule.order ?? Number.MAX_SAFE_INTEGER));\n \n if (facilityInputFieldsDisplayFlag === Flag.ON && facilityInputFields ) {\n const facilityFields: SortedField[] = facilityInputFields.map((input) => ({\n component: FacilityinputField,\n getProps: (rule: FieldRule, childNum: number) => ({\n childNum,\n ...input\n }),\n rule: {\n show: true,\n required: true,\n order: Number(input.order)\n }\n }))\n .sort((a, b) => a.rule.order - b.rule.order);\n\n sortedFields.push(...facilityFields)\n }\n\n return (\n <>\n {childInfoList.map((childInfo, childNum) => {\n \n return (\n \n {\n ( isMultipleChild && sortedFields.length > 0 ) && (\n <>\n \n お子さま{childNum + 1}\n \n \n \n \n \n \n \n )\n }\n <>\n {\n sortedFields.map(({component: Component, getProps, rule}, index) => (\n \n ))\n }\n {\n showSiblingsLotteryResultReferenceFlag && childInfo.childInfo?.brothersSistersFlag === Flag.ON && (\n \n )\n }\n \n \n \n )\n })}\n \n \n )\n}\n\n\n\nexport default ByChildFormUnitForLottery;\n","import { Stack, styled } from '@mui/material'\nimport {\n getCancelLimitHolidayOptionLabel\n} from '../../containers/common/codeMaster'\nimport { availabilityStatus, yesNo } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/facilityLotteryReservationForm/facilityLotteryReservationFormService'\nimport { translate } from '../../i18n'\nimport { formatHmtoHmOver, formatYmdWeek, fromApiHms } from '../../utils/dateUtil'\nimport { formatCancelLimit } from '../../utils/itemFormatUtil'\nimport { AlertCard } from '../components/common/alertCard'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { Card } from '../components/common/card'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\nimport { Form } from '../components/common/inputs/form'\nimport ReservationDetailGItems, { ReservationDetailGItemsProps } from '../components/common/reservationDetail/reservationDetailGItems'\nimport BasicDetailContent from '../components/common/reservationDetail/basicDetailContent'\n\nimport { StepBar } from '../components/common/stepBar'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { TransitionCheck } from '../components/common/transitionCheck'\nimport CommonFormUnitForLottery from '../components/facilityLotteryReservationForm/commonFormUnitForLottery'\nimport ByChildFormUnitForLottery from '../components/facilityLotteryReservationForm/byChildFormUnitForLottery'\nimport NoteField from \"../components/facilityReservationForm/fields/noteField\"\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\n\nexport const FacilityLotteryReservationForm = () => {\n const {\n reserveEntry,\n lotteryReservationReference,\n isShownPostponeCancelWaitItem,\n formMethods,\n onSubmit,\n goingTimeFileds,\n cancelSendingFlag,\n showMessages,\n decodeMst,\n showSiblingsLotteryResultReferenceFlag,\n } = useAction()\n\n if (reserveEntry == null) {\n return \n }\n if (lotteryReservationReference == null || reserveEntry.projectMst === undefined || decodeMst === undefined ) {\n // 初期表示処理完了前\n return null\n }\n const detailSetting = (reserveEntry.facility.detailSetting.length === 1 && reserveEntry.facility.detailSetting[0].useReasonCode === '0') ? reserveEntry.facility.detailSetting[0] : reserveEntry.facility.detailSetting.find((v) => v.useReasonCode === lotteryReservationReference.useReasonCategory)\n const alertCardConents = []\n const messageContent = []\n const AnnotationBox = styled('div')({\n whiteSpace: 'pre-wrap',\n })\n\n if (detailSetting) {\n const { cancelLimit, cancelNote, cancelLimitHolidayOption, cancelLimitTime } = detailSetting\n const fromCancelLimitTime = fromApiHms(cancelLimitTime)\n\n if (cancelLimit != null && fromCancelLimitTime != null) {\n alertCardConents.push(\n
\n {translate('facilityReservationDetail.card.cancelLimit')}:{formatCancelLimit(cancelLimit, fromCancelLimitTime)}\n
\n )\n if (cancelLimitHolidayOption) {\n alertCardConents.push(\n
※{getCancelLimitHolidayOptionLabel(cancelLimitHolidayOption)}
\n )\n }\n }\n if (cancelNote) {\n if (alertCardConents.length) {\n alertCardConents.push(
 
)\n }\n alertCardConents.push({cancelNote})\n }\n }\n\n if (showMessages !== undefined && showMessages.length) {\n for (const messages of showMessages) {\n messageContent.push(\n
\n {messages.message}\n
\n )\n }\n }\n \n const isSingleChild = reserveEntry.childInfoList.length === 1\n // 予約詳細のだし分け\n const DetailComponent: React.FC = isSingleChild? ReservationDetailGItems : BasicDetailContent\n \n const CommonFormUnitComponent = (key: number) => (\n \n );\n \n const ByChildFormUnitComponent = (key: number) => (\n \n );\n \n const formContents = isSingleChild? [ByChildFormUnitComponent, CommonFormUnitComponent]: [CommonFormUnitComponent, ByChildFormUnitComponent]\n\n return (\n <>\n
\n \n \n \n \n \n\n \n {reserveEntry.usageDatetimes[0].status === availabilityStatus.wait && (\n \n
キャンセル待ち日時が選択されています
\n {reserveEntry.facility.immediatelyReservationFlag === yesNo.yes ? (\n cancelSendingFlag && (\n <>\n
 
\n
\n 申し込みをした日においてキャンセルが発生した場合、その日でキャンセル待ちを申し込んでいる利用者全員に通知メールが届くようになっています。\n
\n
\n \n ※メールが届いてもその直後に他の利用者による予約で枠が埋まった場合、利用申し込みはできません。\n \n
\n \n )\n ) : (\n <>\n
 
\n
キャンセル待ちの期限(当日・前日・希望日)を備考欄に記入してください。
\n
申し込みをした日にキャンセルが発生した場合、改めて施設より連絡があります。
\n
尚、キャンセル待ちを取り消す場合は、キャンセル待ち取消を行ってください。
\n \n )}\n
\n )}\n\n {reserveEntry.usageDatetimes[0].status !== availabilityStatus.wait && !!alertCardConents.length && (\n \n
キャンセルについて
\n
 
\n {alertCardConents.map((v) => v)}\n
\n )}\n\n {!!showMessages?.length && !!messageContent.length && (\n \n
未確定の予約と重なる日時に確定済予約を登録します。以下日程の未確定予約の確認をお願いします。
\n
 
\n {messageContent.map((v) => v)}\n
\n )}\n\n
\n \n \n 利用希望日時\n \n {reserveEntry.usageDatetimes.map((usageDatetime, index) => (\n \n \n \n \n \n {formatYmdWeek(usageDatetime.usageDate)}\n \n \n \n \n \n {formatHmtoHmOver(\n {\n from: usageDatetime.useFromDatetime,\n to: usageDatetime.useToDatetime,\n },\n usageDatetime.usageDate\n )}\n \n \n \n \n \n \n ))}\n \n
\n \n \n \n \n \n {/** フォームコンテンツ */}\n {\n formContents.map((component, index) => (component(index)))\n }\n {/** 備考 */}\n \n
\n
\n \n
\n\n {/* 画面下部ボタングループ */}\n \n \n 申込内容の確認\n \n \n \n
\n
\n \n )\n}\n","import { executeGet, executeGetNoResultError, executePost, executePut, executeDelete } from '../common/apiCaller'\r\nimport {\r\n GetInterviewDto,\r\n GetInterviewsDto,\r\n GetSameAddChildInterviewsDto,\r\n GetInterviewsInputDto,\r\n PostInterviewInputDto,\r\n PutInterviewInputDto,\r\n DeleteInterviewInputDto,\r\n} from '../dto/interviewsDto'\r\n\r\nconst apiNameCitizen = 'citizen'\r\nconst apiPath = '/interviews'\r\n\r\nexport const executeGetInterviews = async (input: GetInterviewsInputDto) => {\r\n return executeGet(apiNameCitizen, apiPath, input)\r\n}\r\n\r\nexport const executeGetSameAddChildInterviews = async (id: string) => {\r\n return executeGet(apiNameCitizen, `${apiPath}/same-add-child/${id}`)\r\n}\r\n\r\nexport const executeGetInterview = (id: string) => {\r\n return executeGetNoResultError(apiNameCitizen, `${apiPath}/${id}`)\r\n}\r\n\r\nexport const executePostInterview = (input: PostInterviewInputDto) => {\r\n return executePost(apiNameCitizen, apiPath, input)\r\n}\r\n\r\nexport const executePutInterview = (id: string, input: PutInterviewInputDto) => {\r\n return executePut(apiNameCitizen, `${apiPath}/${id}`, input)\r\n}\r\n\r\nexport const executeDeleteInterview = (id: string, input: DeleteInterviewInputDto) => {\r\n return executeDelete(apiNameCitizen, `${apiPath}/${id}`, input)\r\n}","import { executeGet } from '../common/apiCaller'\nimport {\n GetPdfUrlInputDto,\n GetDownloadPdfUrlDto,\n GetBatchResultInputDto,\n GetBatchResultResponseDto,\n} from '../dto/acceptNoticeDto'\n\nconst apiName = 'citizen'\nconst apiPath = '/accept-notice'\n\n// 承諾通知書PDFダウンロードURL取得\nexport const executeGetDownloadPdfUrl = (input: GetPdfUrlInputDto) => {\n return executeGet(apiName, `${apiPath}/pdf-url`, input)\n}\n\n// バッチ処理結果取得\nexport const executeGetBatchResult = (input: GetBatchResultInputDto) => {\n return executeGet(apiName, `${apiPath}/batch-results`, input)\n}\n","import { SelectChangeEvent } from '@mui/material'\r\nimport { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeGetInterviews } from '../../dataAccess/webApi/dao/interviewsDao'\r\nimport { executeGetReservations } from '../../dataAccess/webApi/dao/reservationsDao'\r\nimport { executeGetLotteryReservations } from '../../dataAccess/webApi/dao/lotteryReservationsDao'\r\nimport { executeGetBatchResult } from '../../dataAccess/webApi/dao/acceptNoticeDao'\r\nimport { fromApiYmd, fromApiYmdHms } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined, undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { ChildrenChoice, getChildrenChoices } from '../common/child'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo, reservationStatusSearchCondition } from '../common/constant/classification'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { executeGetProjectsFullHistories } from '../../dataAccess/webApi/dao/projectsDao'\r\n\r\ninterface LocationState {\r\n /** アクティブなお子さまIDの値 */\r\n childId?: string\r\n /** アクティブなタブの値 */\r\n tabValue?: string\r\n /** アクティブな利用予約の検索条件 */\r\n statusSearchCondition?: string\r\n}\r\n\r\ninterface Reservation {\r\n reservationNo: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n isTodayConditionInput: string\r\n todayConditionInputName?: string | null\r\n todayConditionInputEndTime?: string | null\r\n}\r\ninterface LotteryReservation {\r\n lotteryReservationNo: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n}\r\n\r\ninterface Interview {\r\n interviewNo: string\r\n interviewDate?: Date\r\n interviewStartDatetime?: Date\r\n interviewEndDatetime?: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n permitFlag: string\r\n}\r\n\r\ninterface Project {\r\n projectId: string\r\n projectName: string\r\n projectCategoryId: string\r\n interviewMethodFlag: string\r\n}\r\n\r\ninterface BatchResult {\r\n batchId: string\r\n reservationType: number\r\n reservationDate: string\r\n facilityId: string\r\n userId: string\r\n childId: string\r\n usageDates: string\r\n facilityName: string\r\n childName: string\r\n}\r\n\r\ninterface PageState {\r\n activeChildId?: string\r\n activeTabValue: string\r\n /** 利用予約の検索条件 */\r\n activeStatusSearchCondition: string\r\n /** 利用予約 */\r\n reservations?: Reservation[]\r\n /** 抽選予約 */\r\n lotteryReservations?: LotteryReservation[]\r\n /** 面談予約 */\r\n interviews?: Interview[]\r\n /** 承諾通知書バッチ処理結果 */\r\n batchResults?: BatchResult[]\r\n\r\n childs: ChildrenChoice[]\r\n projects: Project[]\r\n tabs: typeof tabValue[keyof typeof tabValue][]\r\n\r\n acceptNoticeStatus: string\r\n}\r\n\r\n/** タブの選択値 */\r\nexport const tabValue = {\r\n reservation: '1',\r\n lotteryReservation: '2',\r\n interview: '3',\r\n acceptNotice: '4'\r\n} as const\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const locationState = history.location.state\r\n\r\n const [state, setState] = useState({\r\n activeChildId: locationState?.childId,\r\n activeTabValue: locationState?.tabValue ?? tabValue.reservation,\r\n activeStatusSearchCondition: locationState?.statusSearchCondition ?? reservationStatusSearchCondition.confirmedOnly,\r\n childs: [],\r\n projects: [],\r\n tabs: [],\r\n acceptNoticeStatus: ''\r\n })\r\n\r\n const load = useCallback(\r\n (\r\n isInitialize: boolean,\r\n loadedChilds: { value: string; label: string }[],\r\n activeStatusSearchCondition: string,\r\n activeTabValue: string,\r\n activeChildId?: string\r\n ) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n let callGetChildren\r\n let callGetReservations\r\n let callGetLotteryReservations\r\n let callGetInterviews\r\n let callGetAcceptNotice\r\n const callGetProjects = getProjectsMstFullHistories()\r\n if (isInitialize) {\r\n callGetChildren = getChildrenChoices()\r\n }\r\n switch (activeTabValue) {\r\n case (tabValue.reservation):\r\n callGetReservations = getReservations(activeStatusSearchCondition, activeChildId)\r\n break\r\n case (tabValue.lotteryReservation):\r\n callGetLotteryReservations = getLotteryReservations(activeChildId)\r\n break\r\n case (tabValue.interview):\r\n callGetInterviews = getInterviews(activeChildId)\r\n break\r\n case (tabValue.acceptNotice):\r\n callGetAcceptNotice = GetAcceptNotice(activeChildId)\r\n break\r\n default:\r\n console.log(\"wrong tab selection\");\r\n }\r\n const [projects, childs, reservations, lotteryReservations, interviews, batchResults] = await Promise.all([\r\n callGetProjects ?? [],\r\n callGetChildren ?? loadedChilds,\r\n callGetReservations,\r\n callGetLotteryReservations,\r\n callGetInterviews,\r\n callGetAcceptNotice,\r\n ])\r\n const tabs: typeof tabValue[keyof typeof tabValue][] = Object.values(tabValue).filter(value => {\r\n if (value === tabValue.lotteryReservation || value === tabValue.acceptNotice) {\r\n // 抽選予約タブ, 帳票出力タブ\r\n return sysCtrl.lotteryDisplayFlag === yesNo.yes && sysCtrl.lotteryFlag === yesNo.yes\r\n }\r\n\r\n return true\r\n });\r\n\r\n const acceptNoticeStatus = sysCtrl.acceptNoticeStatus\r\n\r\n setState({\r\n activeChildId,\r\n activeTabValue,\r\n activeStatusSearchCondition,\r\n reservations,\r\n lotteryReservations,\r\n interviews,\r\n batchResults,\r\n childs,\r\n projects,\r\n tabs,\r\n acceptNoticeStatus,\r\n })\r\n }),\r\n isHiddenMain: isInitialize,\r\n })\r\n )\r\n },\r\n []\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n load(true, state.childs, state.activeStatusSearchCondition, state.activeTabValue, state.activeChildId)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n // 戻るで表示した際にアクティブなタブなどを復元する為に履歴に保管\r\n history.replace({\r\n ...history.location,\r\n state: { childId: state.activeChildId, tabValue: state.activeTabValue, statusSearchCondition: state.activeStatusSearchCondition }\r\n })\r\n }, [state.activeChildId, state.activeTabValue, state.activeStatusSearchCondition])\r\n\r\n const changeChild = useCallback(\r\n (event: SelectChangeEvent) => {\r\n addOperationLog({ operationId: OperationId.OP_00000028 })\r\n\r\n load(false, state.childs, state.activeStatusSearchCondition, state.activeTabValue, event.target.value)\r\n },\r\n [state, addOperationLog]\r\n )\r\n\r\n const changeTab = useCallback(\r\n (value: string) => {\r\n switch (value) {\r\n case (tabValue.reservation):\r\n addOperationLog({ operationId: OperationId.OP_00000042 })\r\n break\r\n case (tabValue.lotteryReservation):\r\n addOperationLog({ operationId: OperationId.OP_00000169 })\r\n break\r\n case (tabValue.interview):\r\n addOperationLog({ operationId: OperationId.OP_00000043 })\r\n break\r\n case (tabValue.acceptNotice):\r\n addOperationLog({ operationId: OperationId.OP_00000191 })\r\n break\r\n default:\r\n console.log(\"wrong tab selection\");\r\n }\r\n load(false, state.childs, state.activeStatusSearchCondition, value, state.activeChildId)\r\n },\r\n [state, addOperationLog]\r\n )\r\n \r\n const statusSearchConditionChangeHandle = useCallback(\r\n (event: SelectChangeEvent) => {\r\n load(false, state.childs, event.target.value, state.activeTabValue, state.activeChildId)\r\n },\r\n [state]\r\n )\r\n\r\n return {\r\n ...state,\r\n changeChild,\r\n changeTab,\r\n statusSearchConditionChangeHandle,\r\n }\r\n}\r\n\r\n/**\r\n * 事業マスタ(全履歴)を一覧取得して返す\r\n * @return {Array} - projectMstsのリスト\r\n */\r\nconst getProjectsMstFullHistories = async () => {\r\n const response = await executeGetProjectsFullHistories({})\r\n return response.result\r\n}\r\n\r\nconst getReservations = async (activeStatusSearchCondition: string, childId?: string) => {\r\n const response = await executeGetReservations({ \r\n ...undefinedPropsToNull({childId}),\r\n ...(activeStatusSearchCondition === reservationStatusSearchCondition.confirmedOnly && {confirmedOnlyGetFlag: yesNo.yes}),\r\n })\r\n return response.result.map((reservation) => {\r\n const { usageDate, useFromDatetime, useToDatetime, ...other } = reservation\r\n return nullPropsToUndefined({\r\n ...other,\r\n usageDate: fromApiYmd(usageDate),\r\n useFromDatetime: fromApiYmdHms(useFromDatetime),\r\n useToDatetime: fromApiYmdHms(useToDatetime),\r\n })\r\n })\r\n}\r\n\r\nconst getLotteryReservations = async (childId?: string) => {\r\n const response = await executeGetLotteryReservations({childId})\r\n return response.result.map((reservation) => {\r\n const { usageDate, useFromDatetime, useToDatetime, ...other } = reservation\r\n return nullPropsToUndefined({\r\n ...other,\r\n usageDate: fromApiYmd(usageDate),\r\n useFromDatetime: fromApiYmdHms(useFromDatetime),\r\n useToDatetime: fromApiYmdHms(useToDatetime),\r\n })\r\n })\r\n}\r\n\r\nconst getInterviews = async (childId?: string) => {\r\n const response = await executeGetInterviews(undefinedPropsToNull({ childId }))\r\n return response.result.map((interview) => {\r\n const { interviewDate, interviewStartDatetime, interviewEndDatetime, ...other } = interview\r\n return nullPropsToUndefined({\r\n ...other,\r\n interviewDate: fromApiYmd(interviewDate),\r\n interviewStartDatetime: fromApiYmdHms(interviewStartDatetime),\r\n interviewEndDatetime: fromApiYmdHms(interviewEndDatetime),\r\n })\r\n })\r\n}\r\n\r\nconst GetAcceptNotice = async (childId?: string) => {\r\n const response = await executeGetBatchResult({ \r\n childId,\r\n });\r\n\r\n return response.result\r\n};\r\n","import { useMemo, useEffect, useCallback } from 'react'\nimport { useParams } from 'react-router'\nimport { getFacilityReservationSteps } from '../common/codeMaster'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { useLocation, useHistory } from 'react-router-dom'\nimport { reservationStatusListUrl } from '../common/constant/appUrl'\nimport { tabValue } from '../reservationStatusList/reservationStatusListService'\n\ninterface UrlParams {\n facilityId: string\n childId: string\n displayMode: string\n}\n\n/** 表示モード(施設予約完了画面) */\nexport const dispMode = {\n /** 施設予約(即時予約)*/\n insert: 'i',\n /** 施設予約変更(即時予約)*/\n update: 'u',\n} as const\n\nexport const useAction = () => {\n const { addOperationLog } = useOperationLog()\n const { facilityId, childId, displayMode } = useParams()\n\n const location = useLocation<{ lotteryAnnouncementDatetime: string }>();\n const history = useHistory();\n const announcementDatetime = location.state?.lotteryAnnouncementDatetime;\n const datetime = new Date(announcementDatetime)\n const year = datetime.getFullYear().toString()\n const month = (datetime.getMonth() + 1).toString()\n const date = datetime.getDate().toString()\n const hours = announcementDatetime.split(' ')[1].split(':')[0]\n const minutes = announcementDatetime.split(' ')[1].split(':')[1]\n\n // 初期表示\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const steps = useMemo(getFacilityReservationSteps, [])\n\n const onClickShowReservationList = useCallback(() => {\n history.push(reservationStatusListUrl.url(), {\n tabValue: tabValue.lotteryReservation\n })\n }, []);\n\n return {\n facilityId,\n childId,\n displayMode,\n steps,\n announcementDatetime,\n year,\n month,\n date,\n hours,\n minutes,\n onClickShowReservationList\n }\n}\n\n","import { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { Flag, lotteryMethod } from '../common/constant/classification'\nimport {\n clearLotteryReserve,\n LotteryReserveEntry,\n selectLotteryReserveEntry\n} from '../common/store/slices/lotteryReserve'\nimport { executePostLotteryReservation, executePutLotteryReservation } from '../../dataAccess/webApi/dao/lotteryReservationsDao'\nimport { toApiYmd, toApiYmdHms } from '../../utils/dateUtil'\nimport { combineDecimalParts } from '../../utils/objectUtil'\nimport { blankToNull } from '../../utils/stringUtil'\nimport { castNonNullable } from '../../utils/typeUtil'\nimport { facilityLotteryReservationCompletionUrl } from '../common/constant/appUrl'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading } from '../common/store/slices/application'\nimport { dispMode } from '../facilityLotteryReservationCompletion/facilityLotteryReservationCompletionService'\nimport { getLatestAddOperationDatetime, useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { ChildLotteryReservationInfoType, GoingTimeType } from '../common/lotteryReservation'\nimport { LotteryReservationConfirmation } from '../../views/components/common/lotteryReservationDetail/lotteryReservationDetailGItems'\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\nimport { executeGetLotterySettings } from '../../dataAccess/webApi/dao/lotterySettingsDao'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\n\ntype LotteryReservationReference = LotteryReservationConfirmation & {\n useReason: GetUseReasonDto,\n}\n\nexport const useAction = () => {\n const errorHandler = useErrorHandle()\n const dispatch = useDispatch()\n const history = useHistory()\n const { addOperationLog } = useOperationLog()\n const sysCtrl = useSelector(selectSystemControl)\n const showSiblingsLotteryResultReferenceFlag = sysCtrl.lotteryMethod === lotteryMethod.byParent\n\n const reserveEntry = useSelector(selectLotteryReserveEntry)\n\n const reservationReference: LotteryReservationReference | undefined = useMemo(() => {\n if (reserveEntry?.projectMst && reserveEntry?.facility && reserveEntry?.parentInfo && reserveEntry?.commonInput && reserveEntry?.useReason) {\n const { projectMst, facility, parentInfo, useReasonCategory, useReasonDetailCategory, useReasonDetailDescription, commonInput, useReason, childInfoList } = reserveEntry\n \n return {\n ...commonInput,\n ...facility,\n facilityName: facility.facilityName,\n useReasonCategory: useReasonCategory,\n useReasonDetailCategory: useReasonDetailCategory,\n useReasonDetailDescription: useReasonDetailDescription,\n childInfoList,\n parentInfo,\n projectMst,\n useReason: {...useReason},\n }\n }\n }, [reserveEntry])\n\n const [reservationResultCode, setReservationResultCode] = useState()\n\n // 初期表示\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 });\n }, [reserveEntry]); \n\n\n // 上記の内容で申し込み\n const decide = useCallback(() => {\n addOperationLog({ operationId: OperationId.OP_00000026 })\n const operationLogDatetime = castNonNullable(getLatestAddOperationDatetime());\n \n if (!reserveEntry) {\n // 前画面情報無しの場合はエラーなので何もしない\n return\n }\n \n dispatch(\n showLoading({\n process: errorHandler(async () => {\n if (reserveEntry.reservationNo == null) {\n // 予約新規登録時\n // childInfoList の長さが 0 のときには何もせずに処理を終える\n // ※アプリケーションの仕様上この画面に到達するときには childInfoList の長さは 1 以上のはず\n if (reserveEntry.childInfoList.length > 0) {\n let clearLotteryReserveFlg: boolean = false\n\n const [response, lotteryAnnouncementDatetime] = await Promise.all([\n postReservation(reserveEntry, operationLogDatetime),\n getLotteryAnnouncementDatetime(\n reserveEntry.facility.facilityId,\n toApiYmd(reserveEntry.usageDatetimes[0].usageDate),\n reserveEntry.useReasonCategory ?? null,\n )\n ])\n if (response.resultCode) {\n // 登録失敗時\n setReservationResultCode(response.resultCode)\n } else {\n // 登録成功時\n const displayMode = getDisplayMode(reserveEntry)\n history.push(\n facilityLotteryReservationCompletionUrl.url(reserveEntry.facility.facilityId, reserveEntry.childInfoList[0].childId, displayMode),\n { lotteryAnnouncementDatetime }\n )\n clearLotteryReserveFlg = true\n }\n\n if (clearLotteryReserveFlg) dispatch(clearLotteryReserve())\n }\n } else {\n // 予約更新時\n if (reserveEntry.updateDatetime) {\n const [response, lotteryAnnouncementDatetime] = await Promise.all([\n putReservation(reserveEntry, operationLogDatetime),\n getLotteryAnnouncementDatetime(\n reserveEntry.facility.facilityId,\n toApiYmd(reserveEntry.usageDatetimes[0].usageDate),\n reserveEntry.useReasonCategory ?? null,\n )\n ])\n if (response.resultCode) {\n // 登録失敗時\n setReservationResultCode(response.resultCode)\n } else {\n // 登録成功時\n const displayMode = getDisplayMode(reserveEntry)\n history.push(\n facilityLotteryReservationCompletionUrl.url(reserveEntry.facility.facilityId, reserveEntry.childInfoList[0].childId, displayMode),\n { lotteryAnnouncementDatetime }\n )\n dispatch(clearLotteryReserve())\n }\n } else {\n throw new Error('updateDatetime data is not found on lotteryReservationEntry')\n }\n }\n }, reserveEntry),\n isHiddenMain: false,\n })\n )\n }, [reserveEntry, addOperationLog, dispatch, errorHandler, history])\n\n return {\n reserveEntry,\n reservationReference,\n reservationResultCode,\n showSiblingsLotteryResultReferenceFlag,\n decide,\n }\n}\n\nconst getRegistDataCommonForPut = (facilityReserveEntry: LotteryReserveEntry) => {\n const entryInput = castNonNullable(facilityReserveEntry.commonInput)\n\n const childInfo = convertChildInfo(facilityReserveEntry.childInfoList[0])\n \n return {\n /* 施設ID */\n facilityId: facilityReserveEntry.facility.facilityId,\n /* キャンセル待ち予約フラグ \n * 複数日時の同時申込ではキャンセル待ちを選択できないため usageDatetimes の最初の要素だけを見れば十分\n */\n /* 利用理由 */\n useReasonCategory: blankToNull(facilityReserveEntry.useReasonCategory),\n /* 利用詳細事由 */\n useReasonDetailCategory: blankToNull(facilityReserveEntry.useReasonDetailCategory),\n /* 利用詳細事由テキスト入力 */\n useReasonDetailDescription: blankToNull(facilityReserveEntry.useReasonDetailDescription),\n /* 昼食有無 */\n lunchFlag: entryInput.lunchFlag,\n /* おやつ有無 */\n snackFlag: entryInput.snackFlag,\n /* 見送り時のキャンセル待ち可否 */\n postponeCancelWaitFlag: entryInput.postponeCancelWaitFlag,\n /* 領収書兼提供証明書の発行希望 */\n preferenceProvisionCertificateFlag: entryInput.preferenceProvisionCertificateFlag?? null,\n /** 利用事由 */\n useReason: entryInput.formUseReason?.select?? null,\n useReasonOther: entryInput.formUseReason?.other?? null,\n /* 備考 */\n citizenNote: blankToNull(entryInput.citizenNote),\n /** お子様ID & お子様生年月日 & 予約時利用項目 */\n ... childInfo,\n }\n}\n\nconst getRegistDataCommonForPost = (facilityReserveEntry: LotteryReserveEntry) => {\n const entryInput = castNonNullable(facilityReserveEntry.commonInput)\n const childInfoList = facilityReserveEntry.childInfoList.map((childInfo) => convertChildInfo(childInfo))\n \n return {\n /* 施設ID */\n facilityId: facilityReserveEntry.facility.facilityId,\n /* キャンセル待ち予約フラグ \n * 複数日時の同時申込ではキャンセル待ちを選択できないため usageDatetimes の最初の要素だけを見れば十分\n */\n /* 利用理由 */\n useReasonCategory: blankToNull(facilityReserveEntry.useReasonCategory),\n /* 利用詳細事由 */\n useReasonDetailCategory: blankToNull(facilityReserveEntry.useReasonDetailCategory),\n /* 利用詳細事由テキスト入力 */\n useReasonDetailDescription: blankToNull(facilityReserveEntry.useReasonDetailDescription),\n /* 昼食有無 */\n lunchFlag: entryInput.lunchFlag,\n /* おやつ有無 */\n snackFlag: entryInput.snackFlag,\n /* 見送り時のキャンセル待ち可否 */\n postponeCancelWaitFlag: entryInput.postponeCancelWaitFlag,\n /* 領収書兼提供証明書の発行希望 */\n preferenceProvisionCertificateFlag: entryInput.preferenceProvisionCertificateFlag?? null,\n /** 利用事由 */\n useReason: entryInput.formUseReason?.select?? null,\n useReasonOther: entryInput.formUseReason?.other?? null,\n /* 備考 */\n citizenNote: blankToNull(entryInput.citizenNote),\n /* 在住種別 */\n residenceCategory: castNonNullable(facilityReserveEntry.parentInfo?.residenceCategory),\n /** 予約時利用項目含むデータ */\n childInfoList,\n }\n}\n\nconst postReservation = async (facilityReserveEntry: LotteryReserveEntry, operationLogDatetime: string) => {\n const goingDatetimes = convertGoingDatetimes(facilityReserveEntry.commonInput?.goingTimes)\n \n return executePostLotteryReservation(\n {\n ...getRegistDataCommonForPost(facilityReserveEntry),\n usageDatetimes: facilityReserveEntry.usageDatetimes.map((v) => ({\n /* 利用日 */\n usageDate: toApiYmd(v.usageDate),\n /* 利用開始日時 */\n useFromDatetime: toApiYmdHms(v.useFromDatetime),\n /* 利用終了日時 */\n useToDatetime: toApiYmdHms(v.useToDatetime),\n /** fileアップロード用日*/\n usageDateForUpload: v.useFromDatetime\n })),\n /** 登園・降園予定時間 */\n goingDatetimes,\n operationLogDatetime,\n }\n )\n}\n\nconst putReservation = async (facilityReserveEntry: LotteryReserveEntry, operationLogDatetime: string) => {\n const goingDatetimes = convertGoingDatetimes(facilityReserveEntry.commonInput?.goingTimes)\n\n return executePutLotteryReservation(\n castNonNullable(facilityReserveEntry.reservationNo),\n {\n ...getRegistDataCommonForPut(facilityReserveEntry),\n /* 利用日 */\n usageDate: toApiYmd(facilityReserveEntry.usageDatetimes[0].usageDate),\n /* 利用開始日時 */\n useFromDatetime: toApiYmdHms(facilityReserveEntry.usageDatetimes[0].useFromDatetime),\n /* 利用終了日時 */\n useToDatetime: toApiYmdHms(facilityReserveEntry.usageDatetimes[0].useToDatetime),\n /** 登園・降園予定時間 */\n ... goingDatetimes[0],\n /* 更新日時 */\n updateDatetime: castNonNullable(facilityReserveEntry.updateDatetime),\n operationLogDatetime,\n }\n )\n}\n\nconst getDisplayMode = (reserveEntry: LotteryReserveEntry) => {\n return reserveEntry.reservationNo == null ? dispMode.insert : dispMode.update\n}\n\nconst convertChildInfo = (childReservationInfo: ChildLotteryReservationInfoType) => {\n const bodyTemperature = childReservationInfo.temperature? combineDecimalParts(childReservationInfo.temperature): null\n const height = childReservationInfo.height? combineDecimalParts(childReservationInfo.height): null\n const weight = childReservationInfo.weight? combineDecimalParts(childReservationInfo.weight): null\n \n return {\n /* お子様ID */\n childId: childReservationInfo.childId,\n /** 医師連絡票 */\n ... (\n childReservationInfo.medicalDoc\n ? {\n hasMedicalDocSubmitted: childReservationInfo.medicalDoc.hasSubmitted?? Flag.OFF, \n medicalDocs: childReservationInfo.medicalDoc.docs?? [],\n }\n : {\n hasMedicalDocSubmitted: null,\n medicalDocs: []\n }\n ),\n /** 病院情報 */\n ... (\n childReservationInfo.hospitalInfo\n ? {\n hospitalVisitDatetime: childReservationInfo.hospitalInfo.date ? `${childReservationInfo.hospitalInfo.date} ${childReservationInfo.hospitalInfo.time}` : null, \n hospitalName : childReservationInfo.hospitalInfo.hospitalName ?? null, \n }\n : {\n hospitalVisitDatetime: null, \n hospitalName : null, \n }\n ),\n /** 症状 */\n ... (\n childReservationInfo.symptom\n ? {\n symptoms: (childReservationInfo.symptom.symptoms.length !== 0 ? Object.values(childReservationInfo.symptom.symptoms).filter(s => s !== \"\").join(\",\") : null),\n symptomOther: (childReservationInfo.symptom.other !== '' ? childReservationInfo.symptom.other : null)\n } \n : {\n symptoms: null,\n symptomOther: null\n }\n ),\n /** 病名 */\n ... (\n childReservationInfo.diagonosis\n ? {\n diagonosis: (childReservationInfo.diagonosis.first.select !== '' ? childReservationInfo.diagonosis.first.select : null),\n diagonosisOther: (childReservationInfo.diagonosis.first.other !== '' ? childReservationInfo.diagonosis.first.other : null),\n diagonosis2: (childReservationInfo.diagonosis.second.select !== '' ? childReservationInfo.diagonosis.second.select : null),\n diagonosisOther2: (childReservationInfo.diagonosis.second.other !== '' ? childReservationInfo.diagonosis.second.other : null),\n }\n : {\n diagonosis: null,\n diagonosisOther: null,\n diagonosis2: null,\n diagonosisOther2: null\n }\n ),\n /** 流行り病 */\n ... (\n childReservationInfo.epidemic\n ? {\n epidemic: childReservationInfo.epidemic.select,\n epidemicOther: childReservationInfo.epidemic.other\n }\n : {\n epidemic: null,\n epidemicOther: null\n }\n ),\n /** 服用薬 */\n ... (\n childReservationInfo.medicine\n ? {\n rxMedicineFlag: childReservationInfo.medicine.rx,\n otcMedicineFlag: childReservationInfo.medicine.otc\n }\n : {\n rxMedicineFlag: null,\n otcMedicineFlag: null\n }\n ),\n /** 体温 */\n bodyTemperature: (bodyTemperature? bodyTemperature.toString(): null),\n /** 熱性けいれん */\n febrileSeizuresFlag: childReservationInfo.febrileSeizures?? null,\n /** 容態変化時の対応 */\n ... (\n childReservationInfo.emergencyAction\n ? {\n emergencyAction: childReservationInfo.emergencyAction.action.select,\n emergencyActionNote: childReservationInfo.emergencyAction.note\n }\n : {\n emergencyAction: null,\n emergencyActionNote: null\n }\n ),\n /** 身長 */\n height: height,\n /** 体重 */\n weight: weight,\n /** 栄養方法 */\n ... (\n childReservationInfo.eatingMethod\n ? {\n eatingMethod: childReservationInfo.eatingMethod.method.select,\n eatingMethodDetail: childReservationInfo.eatingMethod.detail.select,\n milkAmount: combineDecimalParts(childReservationInfo.eatingMethod.milkAmount),\n milkFrequency: childReservationInfo.eatingMethod.milkFrequency \n ? Number(childReservationInfo.eatingMethod.milkFrequency)\n : null\n }\n : {\n eatingMethod: null,\n eatingMethodDetail: null,\n milkAmount: null,\n milkFrequency: null\n }\n ),\n /** 食物アレルギー */\n foodAllergyFlag: childReservationInfo.allergy?.foodFlag?? null,\n /** 食事状況 */\n eatingAbility: childReservationInfo.eatingAbility?.select?? null,\n /** 行動 */\n ... (\n childReservationInfo.actions\n ? {\n actions: childReservationInfo.actions.action.select,\n sleepMethod: childReservationInfo.actions.sleepMethod,\n }\n : {\n actions: null,\n sleepMethod: null\n }\n ),\n /** 排泄 */\n toiletAbility: childReservationInfo.toiletAbility?.select?? null,\n /** 配慮が必要な事項 */\n considerations: childReservationInfo.considerations?? null,\n /** 減免 */\n reductionType: childReservationInfo.reductionType?.reduction.select?? null,\n /** きょうだい全員当選とならない場合 */\n siblingsLotteryResultReferenceFlag: childReservationInfo.siblingsLotteryResultReferenceFlag ?? null,\n /** 添付ファイル */\n attachedDocs: childReservationInfo.attachedDoc?.docs ?? [],\n /** 施設別予約時項目 */\n facilityInputFields: childReservationInfo.facilityInputFields?? null\n }\n}\n\nconst convertGoingDatetimes = (goingTimes: GoingTimeType[] | undefined) => {\n return goingTimes?.map((goingTime) => ({\n goingToFacilityDatetime:\n goingTime.goingToFacilityDate && goingTime.goingToFacilityTime\n ? toApiYmdHms(new Date(`${goingTime.goingToFacilityDate} ${goingTime.goingToFacilityTime}`))\n : null,\n goingHomeDatetime:\n goingTime.goingHomeDate && goingTime.goingHomeTime\n ? toApiYmdHms(new Date(`${goingTime.goingHomeDate} ${goingTime.goingHomeTime}`))\n : null,\n })) ?? []\n}\n\nconst getLotteryAnnouncementDatetime = async (facilityId: string, usageDate: string, useReasonCategory: string | null) => {\n let lotteryAnnouncementDatetime = '';\n const response = await executeGetLotterySettings({\n facilityId,\n usageDate,\n useReasonCategory,\n })\n if(!response.resultCode) {\n lotteryAnnouncementDatetime = response.result.lotteryAnnouncementDatetime \n }\n return lotteryAnnouncementDatetime\n}\n","import { executeGet } from '../common/apiCaller'\nimport {\n GetLotterySettingsInputDto,\n GetLotterySettingsDto,\n} from '../dto/lotterySettingsDto'\n\nconst apiName = 'public'\nconst apiPath = '/lottery-settings'\n\nexport const executeGetLotterySettings = async (input: GetLotterySettingsInputDto) => {\n return executeGet(apiName, `${apiPath}/announcement-datetime`, input)\n}","import React from \"react\"\nimport { getSiblingsLotteryResultReferenceLabel, getYesNoLabel } from '../../../../containers/common/codeMaster'\nimport { ChildLotteryReservationInfoType } from '../../../../containers/common/lotteryReservation'\nimport { FieldsType, FieldRule, getByChildFormFieldRule } from '../../../../containers/common/projectMst'\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\nimport { LabelGItem, ConvertFalsyValueToUnfilledValueGItem, ValueGItem } from './lotteryReservationDetailParts'\nimport { translate } from '../../../../i18n'\nimport { yesNo } from \"../../../../containers/common/constant/classification\"\nimport { Stack } from \"@mui/material\"\nimport { formatYmdWeek } from \"../../../../utils/dateUtil\"\n\ntype ReservationDetailFieldType = {\n component: React.FC<{ childInfo: ChildLotteryReservationInfoType }>\n}\ntype SortedReservationDetailFieldType = ReservationDetailFieldType & {\n rule: FieldRule\n}\n\nexport type ByChildDetailContentProps = {\n childInfo: ChildLotteryReservationInfoType\n projectMst: GetProjectDetailDto\n showSiblingsLotteryResultReferenceFlag: boolean\n}\n\nconst ByChildDetailContent: React.FC = (props: ByChildDetailContentProps) => {\n // eslint-disable-next-line react/prop-types\n const { childInfo, projectMst, showSiblingsLotteryResultReferenceFlag } = props;\n\n const reservationDetail: FieldsType = {\n diagonosis: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 病名1 */}\n {translate('system.reservationDetailGItems.label.diagonosis')}\n \n {/* 病名2 */}\n {translate('system.reservationDetailGItems.label.diagonosis2')}\n \n \n )\n },\n symptom: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 症状 */}\n {translate('system.reservationDetailGItems.label.symptoms')}\n \n \n )\n },\n epidemic: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 流行り病 */}\n {translate('system.reservationDetailGItems.label.epidemic')}\n \n \n )\n },\n medicine: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 処方薬 */}\n {translate('system.reservationDetailGItems.label.medicine.rx')}\n \n {/* 市販薬 */}\n {translate('system.reservationDetailGItems.label.medicine.otc')}\n \n \n )\n },\n bodyTemp: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 体温 */}\n {translate('system.reservationDetailGItems.label.bodyTemperature')}\n \n \n )\n },\n febrileSeizures: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 熱性けいれん */}\n {translate('system.reservationDetailGItems.label.febrileSeizures')}\n \n \n )\n },\n medicalDoc: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 医師連絡票提出状況 */}\n {translate('system.reservationDetailGItems.label.medicalDoc')}\n \n { childInfo.hospitalInfo?.date && (\n <>\n {/* 病院名 */}\n {translate(\"system.reservationDetailGItems.label.hospital.name\")}\n \n {/* 来院日時 */}\n {translate(\"system.reservationDetailGItems.label.hospital.datetime\")}\n \n \n
{formatYmdWeek(new Date(childInfo.hospitalInfo?.date))}
\n
{childInfo.hospitalInfo?.time}
\n
\n
\n \n )}\n \n )\n },\n emergency: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 容態変化時の対応 */}\n {translate('system.reservationDetailGItems.label.emergency')}\n \n \n )\n },\n height: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 身長 */}\n {translate('system.reservationDetailGItems.label.height')}\n \n \n )\n },\n weight: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 体重 */}\n {translate('system.reservationDetailGItems.label.weight')}\n \n \n )\n },\n eatingMethod: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 栄養方法 */}\n {translate('system.reservationDetailGItems.label.eatingMethod')}\n \n \n )\n },\n foodAllergy: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 食物アレルギー */}\n {translate('system.reservationDetailGItems.label.foodAllergy')}\n \n \n )\n },\n eatingAbility: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 食事状況 */}\n {translate('system.reservationDetailGItems.label.eatingAbility')}\n \n \n )\n },\n action: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 行動 */}\n {translate('system.reservationDetailGItems.label.action')}\n \n \n )\n },\n toiletAbility: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 排便 */}\n {translate('system.reservationDetailGItems.label.toiletAbility')}\n \n \n )\n },\n considerations: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 配慮が必要な事項 */}\n {translate('system.reservationDetailGItems.label.considerations')}\n \n \n )\n },\n reduction: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 減免の種類 */}\n {translate('system.reservationDetailGItems.label.reduction')}\n \n \n )\n },\n attachedDoc: {\n component: ({ childInfo }: { childInfo: ChildLotteryReservationInfoType }) => (\n <>\n {/* 添付ファイル */}\n {translate('system.reservationDetailGItems.label.attachedDoc')}\n \n \n )\n },\n }\n const fieldRule = getByChildFormFieldRule(projectMst)\n const sortedDetail: SortedReservationDetailFieldType[] = Object.keys(fieldRule)\n .filter((fieldKey) => fieldRule[fieldKey as keyof FieldsType].show)\n .map((fieldKey) => {\n const field = fieldKey as keyof FieldsType;\n return {\n component: reservationDetail[field].component,\n rule: fieldRule[field]\n }\n })\n .sort((a, b) => (a.rule.order ?? Number.MAX_SAFE_INTEGER) - (b.rule.order ?? Number.MAX_SAFE_INTEGER));\n \n if (childInfo.facilityInputFields) {\n Object.entries(childInfo.facilityInputFields)\n .sort(([_keyA, valueA], [_keyB, valueB]) => {\n return (valueA.order || 0) - (valueB.order || 0);\n })\n .forEach(([_key, value], index) => {\n const isAnswered = value.answer !== '' && value\n ? translate('system.reservationDetailGItems.label.answered')\n : translate('system.reservationDetailGItems.label.unanswered');\n sortedDetail.push({\n component: () => (\n <>\n {/* 施設別予約字項目回答 */}\n {`${translate('system.reservationDetailGItems.label.facilityInputField')}${index + 1}`}\n \n \n ),\n rule: {\n order: 100,\n show: true,\n required: true\n },\n });\n })\n } \n \n return (\n <>\n {sortedDetail.map(({ component: Component }, index) => (\n \n ))}\n {\n showSiblingsLotteryResultReferenceFlag && childInfo.childInfo?.brothersSistersFlag === yesNo.yes && (\n <>\n {/* きょうだい全員当選とならない場合 */}\n {translate('system.reservationDetailGItems.label.siblingsLotteryResultReference')}\n \n \n )\n }\n \n );\n}\n\nconst isYesNo = (value?: unknown): value is yesNo => {\n return value === yesNo.yes || value === yesNo.no;\n}\n\nexport default ByChildDetailContent;\n","import React from \"react\"\nimport {\n getGenderLabel,\n getYesNoLabel,\n} from '../../../../containers/common/codeMaster'\nimport { ChildLotteryReservationInfoType } from '../../../../containers/common/lotteryReservation'\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\nimport { formatYmd } from '../../../../utils/dateUtil'\nimport { LabelGItem, ValueGItem } from './lotteryReservationDetailParts'\nimport ByChildDetailContent from \"./byChildDetailContent\"\nimport { translate } from '../../../../i18n'\n\nexport type ChildContentProps = {\n childInfo: ChildLotteryReservationInfoType\n projectMst?: GetProjectDetailDto\n showSiblingsLotteryResultReferenceFlag: boolean\n}\n\nconst ChildContent: React.FC = (props: ChildContentProps) => {\n const { childInfo, projectMst, showSiblingsLotteryResultReferenceFlag } = props;\n \n return (\n <>\n {/* お子さま */}\n {translate('system.reservationDetailGItems.label.childName')}\n {childInfo.childInfo?.name}\n {/* お子さまフリガナ */}\n {translate('system.reservationDetailGItems.label.childNameKana')}\n {childInfo.childInfo?.kana}\n {/* お子さま誕生日 */}\n {translate('system.reservationDetailGItems.label.birthday')}\n {childInfo.childInfo?.birthday? formatYmd(new Date(childInfo.childInfo?.birthday)): ''}\n {/* お子さま性別 */}\n {translate('system.reservationDetailGItems.label.gender')}\n {getGenderLabel(childInfo.childInfo?.gender)}\n {/* お子さまアレルギー */}\n {translate('system.reservationDetailGItems.label.allergy')}\n {childInfo.allergy?.flag?getYesNoLabel(childInfo.allergy?.flag): ''} \n {\n projectMst && (\n \n )\n }\n \n )\n}\n\nexport default ChildContent;","import React from 'react'\nimport {\n getDoNotWaitlistLabel,\n getYesNoLabel,\n} from '../../../../containers/common/codeMaster'\nimport { yesNo } from '../../../../containers/common/constant/classification'\nimport { LabelGItem, ValueGItem, ConvertFalsyValueToUnfilledValueGItem } from './lotteryReservationDetailParts'\nimport { translate } from '../../../../i18n'\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\nimport { INPUT_FIELD_USAGE } from '../../../../containers/common/constant/projectMst'\n\ntype CommonDetailContentProps = {\n lunchAcceptFlag: string\n lunchFlag: string\n snackAcceptFlag: string\n snackFlag: string\n immediatelyReservationFlag: string\n postponeCancelWaitAcceptFlag: string\n postponeCancelWaitFlag: string\n projectMst: GetProjectDetailDto\n preferenceProvisionCertificateFlag?: string\n formUseReasonUsage: string\n formUseReason?: string\n}\n\nconst CommonDetailContent: React.FC = (props: CommonDetailContentProps) => {\n return (\n <>\n {/* 給食 */}\n {props.lunchAcceptFlag === yesNo.yes && (\n <>\n {translate('system.reservationDetailGItems.label.lunch')}\n {getYesNoLabel(props.lunchFlag)}\n \n )}\n {/* おやつ */}\n {props.snackAcceptFlag === yesNo.yes && (\n <>\n {translate('system.reservationDetailGItems.label.snack')}\n {getYesNoLabel(props.snackFlag)}\n \n )}\n {/* キャンセル待ち可否 */}\n {props.immediatelyReservationFlag === yesNo.no && props.postponeCancelWaitAcceptFlag === yesNo.yes && (\n <>\n {translate('system.reservationDetailGItems.label.postponeCancelWait')}\n {getDoNotWaitlistLabel(props.postponeCancelWaitFlag)}\n \n )}\n {/** 領収書兼提供証明書の発行希望 */}\n {props.projectMst.provisionCertificateInput !== INPUT_FIELD_USAGE.NO_USE && (\n <>\n {translate('system.reservationDetailGItems.label.preferenceProvisionCertificate')}\n {getYesNoLabel(props.preferenceProvisionCertificateFlag)}\n \n )}\n {/* 利用事由 */}\n {props.formUseReasonUsage !== INPUT_FIELD_USAGE.NO_USE && (\n <>\n {translate('system.reservationDetailGItems.label.formUseReason')}\n \n \n )}\n \n )\n}\n\nexport default CommonDetailContent","import React from 'react'\nimport { ParentInfoType } from '../../../../containers/common/lotteryReservation'\nimport { LabelGItem, ValueGItem } from './lotteryReservationDetailParts'\nimport { translate } from '../../../../i18n'\n\nconst ParentContent: React.FC = (props: ParentInfoType) => {\n return (\n <>\n {/* 保護者 */}\n {translate('system.reservationDetailGItems.label.userName')}\n {props.name}\n {/* フリガナ */}\n {translate('system.reservationDetailGItems.label.userNameKana')}\n {props.kana}\n {/* 携帯電話番号 */}\n {translate('system.reservationDetailGItems.label.tel')}\n {props.tel}\n {/* メールアドレス */}\n {translate('system.reservationDetailGItems.label.email')}\n {props.email}\n \n )\n}\n\nexport default ParentContent","import { Stack } from '@mui/material'\nimport { getLotteryReservationStatusLabel } from '../../../../containers/common/codeMaster'\nimport { GOING_DATETIME_DISPLAY_METHODS } from '../../../../containers/common/constant/projectMst'\nimport { purposeOfUse as purposeOfUseValue } from '../../../../containers/common/constant/classification'\nimport { formatHmtoHmOver, formatYmdWeek, formatHmOver } from '../../../../utils/dateUtil'\nimport { LabelGItem, ValueGItem } from './lotteryReservationDetailParts'\nimport { LotteryReservationDetailGItemsProps } from \"./lotteryReservationDetailGItems\"\nimport ParentContent from \"./parentContent\"\nimport { RowSpacerGItem } from '../grids'\nimport { translate } from '../../../../i18n'\n\nconst BasicDetailContent = (props: LotteryReservationDetailGItemsProps) => {\n const isShownStatusItem = props.displayType === 'delete' || props.displayType === 'reference';\n\n return (\n <>\n {/* 施設名 */}\n {translate('system.reservationDetailGItems.label.facilityName')}\n {props.lotteryReservation.facilityName}\n \n {isShownStatusItem && (\n <>\n {/** 利用予定日時 */}\n {translate('system.reservationDetailGItems.label.reservationDatetime')}\n \n \n
{formatYmdWeek(props.lotteryReservation.usageDate)}
\n
\n {formatHmtoHmOver(\n { from: props.lotteryReservation.useFromDatetime, to: props.lotteryReservation.useToDatetime },\n props.lotteryReservation.usageDate\n )}\n
\n
\n
\n {\n props.lotteryReservation.projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY && (\n <>\n {/** 登園予定時間 */}\n {translate('system.reservationDetailGItems.label.goingDatetime')}\n \n {\n formatHmOver(\n new Date(`${props.lotteryReservation.goingTime.goingToFacilityDate} ${props.lotteryReservation.goingTime.goingToFacilityTime}`),\n props.lotteryReservation.usageDate\n )\n }\n \n {/** 降園予定時間 */}\n {translate('system.reservationDetailGItems.label.goingHomeDatetime')}\n \n {\n formatHmOver(\n new Date(`${props.lotteryReservation.goingTime.goingHomeDate} ${props.lotteryReservation.goingTime.goingHomeTime}`),\n props.lotteryReservation.usageDate\n )\n }\n \n \n \n )\n }\n {/** 予約状態 */}\n {translate('system.reservationDetailGItems.label.status')}\n {getLotteryReservationStatusLabel(props.lotteryReservation.status)}\n \n )}\n \n \n {/* 利用目的 */}\n {props.lotteryReservation.useReasonCategory && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonCategory')}\n \n {\n props.lotteryReservation.useReasonCategory === purposeOfUseValue.irregular && props.useReason?.displayNameForCitizenIrregular ||\n props.lotteryReservation.useReasonCategory === purposeOfUseValue.emergency && props.useReason?.displayNameForCitizenEmg ||\n props.lotteryReservation.useReasonCategory === purposeOfUseValue.refresh && props.useReason?.displayNameForCitizenRefresh\n }\n \n \n )}\n\n {/* 利用目的詳細:以下の三つのコンポーネントのうちいずれかが表示される(もしくは一つも表示されない) */}\n {props.lotteryReservation.useReasonDetailCategory && (\n props.lotteryReservation.useReasonCategory === purposeOfUseValue.irregular && props.useReason?.detailsIrregular && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\n \n {props.useReason?.detailsIrregular[Number(props.lotteryReservation.useReasonDetailCategory) - 1]?.name}\n \n \n ) || \n props.lotteryReservation.useReasonCategory === purposeOfUseValue.emergency && props.useReason?.detailsEmg && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\n \n {props.useReason?.detailsEmg[Number(props.lotteryReservation.useReasonDetailCategory) - 1]?.name}\n \n \n ) || \n props.lotteryReservation.useReasonCategory === purposeOfUseValue.refresh && props.useReason?.detailsRefresh && (\n <>\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\n \n {props.useReason?.detailsRefresh[Number(props.lotteryReservation.useReasonDetailCategory) - 1]?.name}\n \n \n )\n )}\n {/* 詳細事由の入力欄の内容を表示 */}\n {props.lotteryReservation.useReasonDetailDescription && (\n <>\n \n \n {props.lotteryReservation.useReasonDetailDescription}\n \n \n )}\n {\n props.lotteryReservation.useReasonDetailCategory && \n }\n \n \n \n )\n}\n\nexport default BasicDetailContent","// 予約機能で共通する利用予約に関する表示部分を定義\r\n// 情報照会、変更内容確認で共有\r\n\r\nimport React from 'react'\r\nimport { Stack } from '@mui/material'\r\nimport { ElapsedMillisecond, formatYmdWeek, toApiHms } from '../../../../utils/dateUtil'\r\nimport { RowSpacerGItem } from '../grids'\r\nimport { LabelGItem, ValueGItem } from './lotteryReservationDetailParts'\r\nimport { GetUseReasonDto } from '../../../../dataAccess/webApi/dto/useReasonDto'\r\nimport { GetProjectDetailDto } from '../../../../dataAccess/webApi/dto/projectsDto'\r\nimport { ChildLotteryReservationInfoType, ParentInfoType, GoingTimeType, SelectAndOtherType } from '../../../../containers/common/lotteryReservation'\r\nimport ChildContent from \"./childContent\"\r\nimport CommonDetailContent from \"./commonDetailContent\"\r\nimport BasicDetailContent from \"./basicDetailContent\"\r\nimport { translate } from '../../../../i18n'\r\n\r\ninterface LotteryReservation {\r\n facilityName: string\r\n \r\n useReasonCategory: string | null\r\n useReasonDetailCategory: string | null\r\n useReasonDetailDescription: string | null\r\n childInfoList: ChildLotteryReservationInfoType[]\r\n parentInfo: ParentInfoType\r\n // 事業マスタ\r\n projectMst: GetProjectDetailDto\r\n}\r\n\r\nexport interface LotteryReservationConfirmation extends LotteryReservation {\r\n lunchFlag: string\r\n lunchAcceptFlag: string\r\n snackFlag: string\r\n snackAcceptFlag: string\r\n citizenNote: string | null\r\n \r\n postponeCancelWaitFlag: string\r\n postponeCancelWaitAcceptFlag: string\r\n immediatelyReservationFlag: string\r\n\r\n preferenceProvisionCertificateFlag?: string\r\n formUseReason?: SelectAndOtherType\r\n}\r\n\r\nexport interface LotteryReservationCancel extends LotteryReservationConfirmation {\r\n goingTime: GoingTimeType\r\n usageDate: Date | ElapsedMillisecond\r\n useFromDatetime: Date | ElapsedMillisecond\r\n useToDatetime: Date | ElapsedMillisecond\r\n status: string\r\n cancelNote?: string | null\r\n}\r\n\r\nexport interface LotteryReservationReference extends LotteryReservationCancel {\r\n reservationDatetime: Date\r\n reservationChangeDatetime: Date | null\r\n}\r\n\r\n/** 入力時に必要なプロパティ */\r\ninterface Input {\r\n lotteryReservation: LotteryReservation\r\n useReason: GetUseReasonDto\r\n displayType?: never\r\n showSiblingsLotteryResultReferenceFlag: boolean\r\n}\r\n \r\n/** 入力内容確認時に必要なプロパティ */\r\ninterface Confirmation {\r\n lotteryReservation: LotteryReservationConfirmation\r\n useReason: GetUseReasonDto\r\n displayType: 'confirmation'\r\n showSiblingsLotteryResultReferenceFlag: boolean\r\n}\r\n\r\n/** 利用予約情報削除時の詳細照会に必要なプロパティ */\r\ninterface Delete {\r\n lotteryReservation: LotteryReservationCancel\r\n useReason: GetUseReasonDto\r\n displayType: 'delete'\r\n showSiblingsLotteryResultReferenceFlag: boolean\r\n}\r\n\r\n/** 詳細照会時に必要なプロパティ */\r\ninterface Reference {\r\n lotteryReservation: LotteryReservationReference\r\n useReason: GetUseReasonDto\r\n displayType: 'reference'\r\n showSiblingsLotteryResultReferenceFlag: boolean\r\n}\r\n\r\nexport type LotteryReservationDetailGItemsProps = Input | Confirmation | Delete | Reference;\r\n\r\n/** 予約機能の利用予約情報コンテンツ部分 */\r\nconst LotteryReservationDetailGItems = (props: LotteryReservationDetailGItemsProps) => {\r\n const isShownReservationItem =\r\n props.displayType === 'confirmation' || props.displayType === 'delete' || props.displayType === 'reference'\r\n const isShownReservationDatetimeItem = props.displayType === 'reference'\r\n \r\n const childInfoList = props.lotteryReservation.childInfoList;\r\n\r\n return (\r\n <>\r\n \r\n \r\n\r\n {\r\n childInfoList.map((child, index) => (\r\n \r\n \r\n \r\n \r\n ))\r\n }\r\n\r\n\r\n { isShownReservationItem && (\r\n <>\r\n \r\n {/* 備考 */}\r\n {translate('system.reservationDetailGItems.label.note')}\r\n {props.lotteryReservation.citizenNote} \r\n \r\n )}\r\n \r\n { isShownReservationDatetimeItem && (\r\n <>\r\n \r\n {translate('system.reservationDetailGItems.label.reservationReceptionDatetime')}\r\n \r\n \r\n
{formatYmdWeek(props.lotteryReservation.reservationDatetime)}
\r\n
{toApiHms(props.lotteryReservation.reservationDatetime)}
\r\n
\r\n
\r\n { props.lotteryReservation.reservationChangeDatetime != null && (\r\n <>\r\n {translate('system.reservationDetailGItems.label.reservationChangeDatetime')}\r\n \r\n \r\n
{formatYmdWeek(props.lotteryReservation.reservationChangeDatetime)}
\r\n
{toApiHms(props.lotteryReservation.reservationChangeDatetime)}
\r\n
\r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n\r\nexport default LotteryReservationDetailGItems\r\n","import { Stack } from '@mui/material'\nimport { useAction } from '../../containers/facilityLotteryReservationConfirmation/facilityLotteryReservationConfirmationService'\nimport { translate } from '../../i18n'\nimport { formatHmtoHmOver, formatYmdWeek, formatHmOver } from '../../utils/dateUtil'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { Card } from '../components/common/card'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\nimport LotteryReservationDetailGItems from '../components/common/lotteryReservationDetail/lotteryReservationDetailGItems'\nimport { StepBar } from '../components/common/stepBar'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { TransitionCheck } from '../components/common/transitionCheck'\nimport { GOING_DATETIME_DISPLAY_METHODS } from '../../containers/common/constant/projectMst'\n\nexport const FacilityLotteryReservationConfirmation = () => {\n const { reserveEntry, reservationReference, reservationResultCode, showSiblingsLotteryResultReferenceFlag, decide } = useAction()\n if (!reserveEntry) {\n return \n }\n\n if (!reserveEntry.commonInput) {\n return \n }\n\n if ( !reservationReference ) {\n return null\n }\n\n return (\n \n \n \n \n \n\n \n
\n \n \n 利用希望日時\n \n {reserveEntry.usageDatetimes.map((usageDatetime, index) => (\n \n \n {/** 利用希望日時 */}\n \n \n \n {formatYmdWeek(usageDatetime.usageDate)}\n \n \n \n \n \n {formatHmtoHmOver(\n {\n from: usageDatetime.useFromDatetime,\n to: usageDatetime.useToDatetime,\n },\n usageDatetime.usageDate\n )}\n \n \n \n \n {\n reservationReference.projectMst.goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY && (\n <>\n {/** 登園予定時間 */}\n \n \n \n {translate('facilityLotteryReservationConfirmation.label.goingDatetime')}:\n \n \n \n \n {formatHmOver(\n new Date(`${reserveEntry.commonInput?.goingTimes[index].goingToFacilityDate} ${reserveEntry.commonInput?.goingTimes[index].goingToFacilityTime}`),\n usageDatetime.usageDate\n )}\n \n \n \n {/** 登園予定時間 */} \n \n \n \n {translate('facilityLotteryReservationConfirmation.label.goingHomeDatetime')}:\n \n \n \n \n {formatHmOver(\n new Date(`${reserveEntry.commonInput?.goingTimes[index].goingHomeDate} ${reserveEntry.commonInput?.goingTimes[index].goingHomeTime}`),\n usageDatetime.usageDate\n )}\n \n \n \n \n )\n }\n\n \n \n ))}\n \n
\n \n \n \n \n \n\n {!!reservationResultCode && (\n \n )}\n
\n
\n \n
\n\n \n \n 上記の内容で申し込み\n \n \n \n
\n )\n}\n","import { Box, Stack, styled } from '@mui/material'\r\nimport {\r\n facilityReservationSelectionCreateUrl,\r\n rootUrl,\r\n} from '../../containers/common/constant/appUrl'\r\nimport { facilityReservationStep } from '../../containers/common/constant/classification'\r\nimport {\r\n dispMode,\r\n useAction,\r\n} from '../../containers/facilityLotteryReservationCompletion/facilityLotteryReservationCompletionService'\r\nimport { translate } from '../../i18n'\r\nimport { AnnotationLabel } from '../components/common/annotationLabel'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { CompletionMessageLabel } from '../components/common/completionMessageLabel'\r\nimport { CenterGItem, GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\r\nimport { StepBar } from '../components/common/stepBar'\r\n\r\nconst StatementGItem = styled(GItem)({\r\n display: 'flex',\r\n justifyContent: 'center',\r\n margin: '38px',\r\n})\r\nconst AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n})\r\n\r\nexport const FacilityLotteryReservationCompletion = () => {\r\n const {\r\n facilityId,\r\n childId,\r\n displayMode,\r\n steps,\r\n announcementDatetime,\r\n year,\r\n month,\r\n date,\r\n hours,\r\n minutes,\r\n onClickShowReservationList\r\n } = useAction()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {translate('facilityLotteryReservationCompletion.label.completion')}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {translate('facilityLotteryReservationCompletion.text.waitAnnouncement')}\r\n \r\n \r\n {announcementDatetime && (\r\n \r\n \r\n {translate(\r\n 'facilityLotteryReservationCompletion.text.announcementDatetime',\r\n year,\r\n month,\r\n date,\r\n hours,\r\n minutes\r\n )}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {translate('facilityLotteryReservationCompletion.text.subMessage')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {displayMode === dispMode.insert && (\r\n \r\n {translate('facilityLotteryReservationCompletion.button.nextReservation')}\r\n \r\n )}\r\n \r\n {translate('facilityLotteryReservationCompletion.button.reserveStatusCheck')}\r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n )\r\n}\r\n","import { Stack } from '@mui/material'\r\nimport { useAction } from '../../containers/facilityLotteryReservationDetail/facilityLotteryReservationDetailService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { GContainer, GItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport LotteryReservationDetailGItems from '../components/common/lotteryReservationDetail/lotteryReservationDetailGItems'\r\n\r\nexport const FacilityLotteryReservationDetail = () => {\r\n const {\r\n lotteryReservationDetail,\r\n showSiblingsLotteryResultReferenceFlag,\r\n goCancel,\r\n goChange\r\n } = useAction()\r\n\r\n if (lotteryReservationDetail == null) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n lotteryReservationDetail.canCancel && (\r\n goCancel()}>\r\n {translate('facilityLotteryReservationDetail.button.cancel')}\r\n \r\n )\r\n }\r\n {\r\n lotteryReservationDetail.canUpdate && (\r\n \r\n {translate('system.button.change')}\r\n \r\n )\r\n }\r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { toApiYmd } from '../../utils/dateUtil';\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { facilityLotteryReservationSelectionUpdateUrl, facilityLotteryReservationCancelUrl } from '../common/constant/appUrl'\r\nimport { lotteryMethod, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { getLotteryReservation } from '../common/lotteryReservation'\r\nimport { getUseReason } from '../common/useReason'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { LotteryReservationReference } from '../../views/components/common/lotteryReservationDetail/lotteryReservationDetailGItems'\r\nimport { \r\n getLotteryReservationDecodeMstValue, \r\n setStringifyNamesChildInfoList,\r\n stringifySelectBox\r\n} from '../common/lotteryReservation'\r\nimport { getProjectMstDataToRefer } from '../common/projectMst'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl';\r\nimport { MEDICAL_DOC_USAGE } from '../common/constant/projectMst';\r\n\r\ninterface UrlParams {\r\n lotteryReservationNo: string\r\n}\r\n\r\ntype LotteryReservationDetail = LotteryReservationReference & {\r\n facilityId: string,\r\n canUpdate: boolean,\r\n canCancel: boolean,\r\n useReason: GetUseReasonDto,\r\n lotteryReservationNo: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { lotteryReservationNo } = useParams();\r\n const { addOperationLog, attachAccessData } = useOperationLog();\r\n const [lotteryReservationDetail, setLotteryReservationDetail] = useState();\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const showSiblingsLotteryResultReferenceFlag = sysCtrl.lotteryMethod === lotteryMethod.byParent\r\n\r\n useEffect(() => {\r\n dispatch(\r\n showLoading(errorHandle(async () => {\r\n addOperationLog({ operationId: OperationId.OP_00000170 });\r\n\r\n const [decodeMstValue, reservation, useReason] = await Promise.all([\r\n getLotteryReservationDecodeMstValue(),\r\n getLotteryReservation(lotteryReservationNo),\r\n getUseReason(),\r\n ]);\r\n\r\n const facility = await getFacility(reservation.facilityId, reservation.usageDate)\r\n const projectMst = await getProjectMstDataToRefer(reservation.facilityId, [reservation.usageDate], facility.projectId)\r\n projectMst.medicalDocUsage = projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY ? facility.medicalDoc : projectMst.medicalDocUsage\r\n\r\n attachAccessData({\r\n accessData: [\r\n ... reservation.childInfoList.map((child) => ({\r\n userIdRegFlag: yesNo.yes, \r\n childId: child.childId,\r\n usageDate: toApiYmd(reservation.usageDate), \r\n lotteryReservationNo\r\n }))\r\n ],\r\n });\r\n \r\n setLotteryReservationDetail({\r\n ...reservation,\r\n ...facility,\r\n lotteryReservationNo,\r\n projectMst,\r\n useReason,\r\n childInfoList: setStringifyNamesChildInfoList(reservation.childInfoList, decodeMstValue),\r\n formUseReason: {\r\n ...reservation.formUseReason,\r\n stringify: (decodeMstValue) \r\n ? stringifySelectBox(\r\n decodeMstValue.formUseReason, \r\n reservation.formUseReason?.select, \r\n reservation.formUseReason?.other,\r\n [\"その他\"]\r\n ): undefined\r\n },\r\n });\r\n }))\r\n )\r\n }, []);\r\n\r\n const goCancel = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000171 })\r\n history.push(facilityLotteryReservationCancelUrl.url(lotteryReservationNo))\r\n },[history, lotteryReservationNo, addOperationLog]);\r\n\r\n const goChange = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000172 })\r\n history.push(facilityLotteryReservationSelectionUpdateUrl.url(lotteryReservationNo))\r\n }, [history, lotteryReservationNo, addOperationLog]);\r\n\r\n return {\r\n lotteryReservationDetail,\r\n showSiblingsLotteryResultReferenceFlag,\r\n goCancel,\r\n goChange\r\n }\r\n}\r\n","import { useCallback, useEffect, useState, useRef, useMemo } from 'react';\r\nimport { useForm } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { toApiYmd } from '../../utils/dateUtil';\r\nimport { datePropsToNumber } from '../../utils/objectUtil';\r\nimport { facilityLotteryReservationCancelConfirmationUrl } from '../common/constant/appUrl';\r\nimport { selectLotteryReserveCancelEntry, setLotteryCancelReserve } from '../common/store/slices/lotteryReserveCancel';\r\nimport { lotteryMethod, yesNo } from '../common/constant/classification';\r\nimport { OperationId } from '../common/constant/operationLog';\r\nimport { DecodeMstCategory } from '../common/constant/decodeMst';\r\nimport { useErrorHandle } from '../common/error/errorHandler';\r\nimport { getFacility } from '../common/facility';\r\nimport { getUseReason } from '../common/useReason';\r\nimport { useOperationLog } from '../common/operationLog';\r\nimport { showLoading } from '../common/store/slices/application';\r\nimport { LotteryReservationCancel } from '../../views/components/common/lotteryReservationDetail/lotteryReservationDetailGItems';\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto';\r\nimport {\r\n FacilityInfoType,\r\n LOTTERY_RESERVATION_DECODE_MST,\r\n getLotteryReservation,\r\n setStringifyNamesChildInfoList,\r\n stringifySelectBox\r\n} from '../common/lotteryReservation';\r\nimport { getProjectMstDataToRefer } from '../common/projectMst';\r\nimport { ValueLabels } from '../../views/components/common/inputs/select';\r\nimport { getDecodeMstValues, GetDecodemstValuesReturn } from '../common/decodeMst';\r\nimport { selectSystemControl } from '../common/store/slices/systemControl';\r\nimport { MEDICAL_DOC_USAGE } from '../common/constant/projectMst';\r\n\r\ninterface UrlParams {\r\n lotteryReservationNo: string\r\n};\r\n\r\ninterface LocationState {\r\n isKeep: boolean // 取得・入力済み情報から復元を試みる場合true\r\n decodeMst: FacilityLotteryCancelDecodeMst\r\n};\r\n\r\ninterface Inputs {\r\n cancelReason?: string\r\n};\r\n\r\ninterface ReservationDetail extends LotteryReservationCancel {\r\n useReason: GetUseReasonDto\r\n updateDatetime: string\r\n};\r\n\r\n// デコードマスタ\r\nconst LOTTERY_CANCEL_DECODE_MST = {\r\n lotteryCancelReason: DecodeMstCategory.LOTTERY_CANCEL_REASON,\r\n ... LOTTERY_RESERVATION_DECODE_MST\r\n};\r\ntype FacilityLotteryCancelDecodeMst = GetDecodemstValuesReturn;\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { lotteryReservationNo } = useParams();\r\n const { addOperationLog } = useOperationLog();\r\n const lotteryReservation = useSelector(selectLotteryReserveCancelEntry);\r\n const locationState = history.location.state;\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const showSiblingsLotteryResultReferenceFlag = sysCtrl.lotteryMethod === lotteryMethod.byParent\r\n\r\n const [decodeMst, setDecodeMst] = useState();\r\n const [reservationDetail, setReservationDetail] = useState();\r\n const facility = useRef();\r\n const cancelReasonOptions = useMemo(() => {\r\n if (!decodeMst) return null;\r\n return decodeMst.lotteryCancelReason.map((reason)=> ({\r\n value: reason.code,\r\n label: reason.name\r\n }))\r\n }, [decodeMst]);\r\n\r\n // フォーム関連\r\n const formMethods = useForm();\r\n\r\n // 初期化\r\n useEffect(() => {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async() => {\r\n let cancelReason: string | undefined;\r\n let reservationDetail: ReservationDetail;\r\n let decodeMst: FacilityLotteryCancelDecodeMst;\r\n if (locationState && locationState.isKeep && lotteryReservation) {\r\n // 次ページから戻ってきた場合\r\n const { usageDatetimes, facility: facilityData, goingTimes, ... other } = lotteryReservation;\r\n\r\n cancelReason = other.cancelReason.select;\r\n reservationDetail = {\r\n ... other,\r\n ... facilityData,\r\n status: usageDatetimes[0].status,\r\n goingTime: goingTimes[0],\r\n usageDate: usageDatetimes[0].usageDate,\r\n useFromDatetime: usageDatetimes[0].useFromDatetime,\r\n useToDatetime: usageDatetimes[0].useToDatetime,\r\n };\r\n decodeMst = locationState.decodeMst;\r\n facility.current = facilityData;\r\n } else {\r\n // 初期表示の場合\r\n const [\r\n lotteryReservation, \r\n useReason,\r\n decodeMstData\r\n ] = await Promise.all([\r\n getLotteryReservation(lotteryReservationNo),\r\n getUseReason(),\r\n getDecodeMstValues(LOTTERY_CANCEL_DECODE_MST)\r\n ]);\r\n\r\n const facilityData = await getFacility(lotteryReservation.facilityId, lotteryReservation.usageDate)\r\n const projectMst = await getProjectMstDataToRefer(lotteryReservation.facilityId, [lotteryReservation.usageDate], facilityData.projectId)\r\n projectMst.medicalDocUsage = projectMst.medicalDocUsage === MEDICAL_DOC_USAGE.BY_FACILITY && facilityData.detailSetting[0].medicalDoc !== null ? facilityData.detailSetting[0].medicalDoc : projectMst.medicalDocUsage\r\n\r\n reservationDetail = {\r\n ... lotteryReservation,\r\n ... facilityData,\r\n projectMst,\r\n useReason,\r\n childInfoList: setStringifyNamesChildInfoList(lotteryReservation.childInfoList, decodeMstData),\r\n formUseReason: {\r\n ...lotteryReservation.formUseReason,\r\n stringify: (decodeMstData) \r\n ? stringifySelectBox(\r\n decodeMstData.formUseReason, \r\n lotteryReservation.formUseReason?.select, \r\n lotteryReservation.formUseReason?.other,\r\n [\"その他\"]\r\n ): undefined\r\n },\r\n }\r\n decodeMst = decodeMstData;\r\n facility.current = {\r\n ... facilityData,\r\n facilityId: lotteryReservation.facilityId\r\n }\r\n }\r\n\r\n // アクセスログ\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [\r\n ...reservationDetail.childInfoList.map((child) => ({\r\n userIdRegFlag: yesNo.yes,\r\n childId: child.childId,\r\n usageDate: toApiYmd(reservationDetail.usageDate),\r\n lotteryReservationNo\r\n }))\r\n ],\r\n })\r\n\r\n formMethods.reset({\r\n cancelReason\r\n })\r\n setReservationDetail(reservationDetail);\r\n setDecodeMst(decodeMst);\r\n })\r\n )\r\n )\r\n }, []);\r\n\r\n const goList = useCallback(() => history.goBack(), []);\r\n\r\n const onSubmit = useCallback((data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_000001734 });\r\n if (!reservationDetail || !facility.current || !decodeMst) return;\r\n const cancelReason = data.cancelReason;\r\n if (!cancelReason) return;\r\n\r\n const { usageDate, useFromDatetime, useToDatetime, status, goingTime, ... other } = reservationDetail;\r\n\r\n dispatch(\r\n setLotteryCancelReserve({\r\n ...datePropsToNumber(other),\r\n usageDatetimes: [{\r\n ...datePropsToNumber({\r\n usageDate,\r\n useFromDatetime,\r\n useToDatetime,\r\n status\r\n }),\r\n usageBaseDate: toApiYmd(usageDate)\r\n }],\r\n facility: facility.current,\r\n goingTimes: [goingTime],\r\n cancelReason: {\r\n select: cancelReason,\r\n stringify: decodeMst.lotteryCancelReason.find((reason) => reason.code === cancelReason)?.name\r\n },\r\n reservationNo: lotteryReservationNo\r\n })\r\n )\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { \r\n isKeep: true,\r\n decodeMst: decodeMst\r\n }})\r\n history.push(facilityLotteryReservationCancelConfirmationUrl.url())\r\n }, [\r\n reservationDetail,\r\n facility,\r\n decodeMst,\r\n addOperationLog\r\n ]);\r\n\r\n return {\r\n decodeMst,\r\n reservationDetail,\r\n cancelReasonOptions,\r\n formMethods,\r\n showSiblingsLotteryResultReferenceFlag,\r\n goList,\r\n onSubmit\r\n }\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material';\r\nimport { translate } from '../../i18n';\r\nimport { getFacilityLotteryReservationCancelSteps } from '../../containers/common/codeMaster';\r\nimport { facilityLotteryReservationCancelStep } from '../../containers/common/constant/classification';\r\nimport { useAction } from '../../containers/facilityLotteryReservationCancel/facilityLotteryReservationCancelService';\r\nimport LotteryReservationDetailGItems from '../components/common/lotteryReservationDetail/lotteryReservationDetailGItems';\r\nimport { AttentionLabel } from '../components/common/attentionLabel';\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup';\r\nimport { BreakpointSwitch } from '../components/common/breakpointSwitch';\r\nimport { ButtonL } from '../components/common/buttons/buttonL';\r\nimport { ButtonOutlinedL } from '../components/common/buttons/buttonOutlinedL';\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS';\r\nimport { GContainer, GItem, MiddleGItem } from '../components/common/grids';\r\nimport { InfoCard } from '../components/common/infoCard';\r\nimport { Form } from '../components/common/inputs/form';\r\nimport { Select } from '../components/common/inputs/select';\r\nimport { StepBar } from '../components/common/stepBar';\r\nimport { AlertCard } from '../components/common/alertCard';\r\n\r\nexport const FacilityLotteryReservationCancel = () => {\r\n const {\r\n reservationDetail,\r\n cancelReasonOptions,\r\n formMethods,\r\n showSiblingsLotteryResultReferenceFlag,\r\n goList,\r\n onSubmit\r\n } = useAction();\r\n\r\n const AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n })\r\n \r\n if ( !reservationDetail || !cancelReasonOptions ) {\r\n return null\r\n } \r\n\r\n const alertCardConents = []\r\n if (reservationDetail.cancelNote !== null) {\r\n alertCardConents.push({reservationDetail.cancelNote})\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!alertCardConents.length && {alertCardConents.map((v) => v)}}\r\n
\r\n \r\n \r\n *\r\n {translate('facilityLotteryReservationCancel.label.cancelReason')}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n {translate('facilityLotteryReservationCancel.button.cancelContentConfirmation')}\r\n \r\n {translate('system.button.stop')}}\r\n md={\r\n \r\n {translate('system.button.stop')}\r\n \r\n }\r\n />\r\n \r\n
\r\n
\r\n )\r\n}\r\n","import { useCallback, useEffect, useState, useMemo } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { translate } from '../../i18n';\r\nimport { toApiYmd } from '../../utils/dateUtil';\r\nimport { executeDeleteLotteryReservation } from '../../dataAccess/webApi/dao/lotteryReservationsDao';\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto';\r\nimport { LotteryReservationCancel } from '../../views/components/common/lotteryReservationDetail/lotteryReservationDetailGItems';\r\nimport { selectLotteryReserveCancelEntry, clearLotteryReserveCancel } from '../common/store/slices/lotteryReserveCancel';\r\nimport { reservationStatusListUrl } from '../common/constant/appUrl'\r\nimport { lotteryMethod, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { tabValue } from '../reservationStatusList/reservationStatusListService';\r\nimport { selectSystemControl } from '../common/store/slices/systemControl';\r\n\r\n\r\ninterface ReservationDetail extends LotteryReservationCancel {\r\n useReason: GetUseReasonDto\r\n updateDatetime: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const lotteryReservation = useSelector(selectLotteryReserveCancelEntry);\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const showSiblingsLotteryResultReferenceFlag = sysCtrl.lotteryMethod === lotteryMethod.byParent\r\n\r\n const [deleteResultCode, setDeleteResultCode] = useState();\r\n\r\n const reservationDetail = useMemo(() => {\r\n if (!lotteryReservation) return null;\r\n const { usageDatetimes, facility: facilityData, goingTimes, ... other } = lotteryReservation;\r\n\r\n return {\r\n ... other,\r\n ... facilityData,\r\n status: usageDatetimes[0].status,\r\n goingTime: goingTimes[0],\r\n usageDate: usageDatetimes[0].usageDate,\r\n useFromDatetime: usageDatetimes[0].useFromDatetime,\r\n useToDatetime: usageDatetimes[0].useToDatetime,\r\n };\r\n }, [lotteryReservation])\r\n\r\n // 初期化\r\n useEffect(() => {\r\n if (!lotteryReservation) return;\r\n\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{\r\n userIdRegFlag: yesNo.yes,\r\n childId: lotteryReservation.childInfoList[0].childId,\r\n usageDate: toApiYmd(lotteryReservation.usageDatetimes[0].usageDate),\r\n reservationNo: lotteryReservation.reservationNo\r\n }],\r\n });\r\n }, [])\r\n\r\n // キャンセル処理\r\n const decide = useCallback(() => {\r\n if (!lotteryReservation) return;\r\n\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [{\r\n userIdRegFlag: yesNo.yes,\r\n childId: lotteryReservation.childInfoList[0].childId,\r\n usageDate: toApiYmd(lotteryReservation.usageDatetimes[0].usageDate),\r\n reservationNo: lotteryReservation.reservationNo\r\n }]\r\n });\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const response = await executeDeleteLotteryReservation(lotteryReservation.reservationNo, {\r\n cancelReasonCategory: lotteryReservation.cancelReason.select,\r\n updateDatetime: lotteryReservation.updateDatetime\r\n });\r\n if (response.resultCode) {\r\n // キャンセル失敗時\r\n setDeleteResultCode(response.resultCode);\r\n } else {\r\n // キャンセル成功時\r\n dispatch(notifyMessage(translate('facilityLotteryReservationCancelConfirmation.success.completionMessage')));\r\n history.push(reservationStatusListUrl.url(), {\r\n tabValue: tabValue.lotteryReservation\r\n })\r\n dispatch(clearLotteryReserveCancel());\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n );\r\n }, [lotteryReservation, addOperationLog, dispatch, errorHandle, history])\r\n\r\n return {\r\n lotteryReservation,\r\n deleteResultCode,\r\n reservationDetail,\r\n showSiblingsLotteryResultReferenceFlag,\r\n decide\r\n }\r\n}\r\n","import { Box, Stack } from '@mui/material';\r\nimport { translate } from '../../i18n'\r\nimport { getFacilityLotteryReservationCancelSteps } from '../../containers/common/codeMaster';\r\nimport { facilityLotteryReservationCancelStep } from '../../containers/common/constant/classification';\r\nimport { useAction } from '../../containers/facilityLotteryReservationCancelConfirmation/facilityLotteryReservationCancelConfirmationService'\r\nimport LotteryReservationDetailGItems from '../components/common/lotteryReservationDetail/lotteryReservationDetailGItems';\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { LabelGItem, ValueGItem } from '../components/common/reservationDetail/reservationDetailParts'\r\nimport { StepBar } from '../components/common/stepBar'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\n\r\nexport const FacilityLotteryReservationCancelConfirmation = () => {\r\n const { lotteryReservation, deleteResultCode, reservationDetail, showSiblingsLotteryResultReferenceFlag, decide } = useAction();\r\n \r\n if (!lotteryReservation) {\r\n return \r\n }\r\n\r\n if (!reservationDetail) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('facilityLotteryReservationCancelConfirmation.label.cancelReason')}\r\n {lotteryReservation.cancelReason.stringify}\r\n \r\n\r\n \r\n \r\n \r\n\r\n {!!deleteResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('facilityLotteryReservationCancelConfirmation.button.decision')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useEffect, useMemo, useState, useRef } from 'react';\r\nimport { useFieldArray, useForm, useWatch } from 'react-hook-form';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { differenceInMinutes } from 'date-fns';\r\nimport { translate } from '../../i18n';\r\nimport { \r\n reservableUnitPatterMinutes, \r\n yesNo, \r\n useReasonCode as useReasonCodeValue, \r\n purposeOfUse as purposeOfUseValue,\r\n lotteryAcceptTypeOption, \r\n useReasonDisplayTypes\r\n} from '../common/constant/classification';\r\nimport { facilityLotteryReservationFormUrl } from '../common/constant/appUrl';\r\nimport { OperationId } from '../common/constant/operationLog';\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application';\r\nimport { selectSystemControl } from '../common/store/slices/systemControl';\r\nimport { selectLotteryReserveEntry, setLotteryReserve } from '../common/store/slices/lotteryReserve';\r\nimport { useErrorHandle } from '../common/error/errorHandler';\r\nimport { getFacility } from '../common/facility';\r\nimport { useOperationLog } from '../common/operationLog';\r\nimport { getUseReason } from '../common/useReason';\r\nimport { getUsageGuidStr } from '../common/reservationSelection';\r\nimport { \r\n getLotteryReservation, \r\n LotteryReservation, \r\n IsCertificateUseReasonViewFlags\r\n} from '../common/lotteryReservation';\r\nimport { executeGetChildren } from '../../dataAccess/webApi/dao/childrenDao';\r\nimport { executeGetFacilityReservationsWeekCitizen } from '../../dataAccess/webApi/dao/facilityReservationsWeekCitizenDao';\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto';\r\nimport { GetFacilityReservationsWeekCitizenDto } from '../../dataAccess/webApi/dto/facilityReservationsWeekCitizenDto';\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto';\r\nimport { \r\n DateRange, \r\n ElapsedMillisecond, \r\n isValidDate, \r\n toApiYmd, \r\n formatHyphenYmd \r\n} from '../../utils/dateUtil';\r\nimport { promiseAllConcurrency } from '../../utils/promiseUtil';\r\nimport { fromNumber } from '../../utils/stringUtil';\r\nimport { NullPropsToUndefinedType } from '../../utils/typeUtil';\r\nimport { UseReasonOptions } from '../../views/components/facilityReservationForm/useReasonRadioGroup';\r\n\r\ntype UrlParams = {\r\n lotteryReservationNo: string\r\n};\r\ntype DetailDescription = {\r\n value: string | null\r\n}\r\ntype Inputs = {\r\n // 利用希望日時\r\n usageDesiredDatetimes: {\r\n value: {\r\n baseDateOfTime: Date // 時間の基準となる日付\r\n range: DateRange // 日時範囲\r\n status: string // 空き状況ステータス\r\n }\r\n }[],\r\n purposeOfUse: string | null\r\n useReasonDetailIrregular: string | null\r\n useReasonDetailEmg: string | null\r\n useReasonDetailRefresh: string | null\r\n useReasonDetailDescriptionsIrregular: DetailDescription[]\r\n useReasonDetailDescriptionsEmg: DetailDescription[]\r\n useReasonDetailDescriptionsRefresh: DetailDescription[]\r\n};\r\ntype LocationState = {\r\n isKeep?: boolean // 入力済み情報から復元を試みる場合true\r\n};\r\ntype CommonFlag = typeof yesNo[keyof typeof yesNo]\r\ntype PageState = {\r\n prevReservation: LotteryReservation // 変更前情報\r\n selectedChildId: string\r\n selectedChildName: string\r\n facility: NullPropsToUndefinedType // 施設情報\r\n activeDate: Date\r\n purposeOfUse?: string | null\r\n useReasonDetailCategory: string | null\r\n useReasonDetailDescription: string | null\r\n commonFlag: CommonFlag\r\n useReasonOptions: UseReasonOptions\r\n isCertificateUseReasonViewFlags: IsCertificateUseReasonViewFlags,\r\n usageGuideStr: string\r\n useReason: NullPropsToUndefinedType // 利用目的マスタ情報\r\n availabilities: GetFacilityReservationsWeekCitizenDto[] // 空き状況(1週間分)\r\n lotteryNote: string | null\r\n};\r\ntype ShowMessage = {\r\n Date: Date;\r\n message: string;\r\n};\r\n\r\n// 施設情報同時取得最大値\r\nconst MAX_WORKER_COUNT = 4;\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const lotteryReservationNo = useParams().lotteryReservationNo;\r\n const { addOperationLog, attachAccessData } = useOperationLog();\r\n const lotteryReserveEntry = useSelector(selectLotteryReserveEntry);\r\n const isKeep = history.location.state?.isKeep?? false;\r\n const sysCtrl = useSelector(selectSystemControl);\r\n const initialized = useRef(false);\r\n \r\n // ページ情報\r\n const [state, setState] = useState();\r\n\r\n // フォーム関連\r\n const methods = useForm();\r\n const purposeOfUse = useWatch({ name: 'purposeOfUse', control: methods.control});\r\n const useReasonDetailIrregular = useWatch({ name: 'useReasonDetailIrregular', control: methods.control });\r\n const useReasonDetailEmg = useWatch({ name: 'useReasonDetailEmg', control: methods.control });\r\n const useReasonDetailRefresh = useWatch({ name: 'useReasonDetailRefresh', control: methods.control });\r\n const { append: appendUseReasonDetailDescriptionsIrregular } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsIrregular',\r\n control: methods.control,\r\n });\r\n const { append: appendUseReasonDetailDescriptionsEmg } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsEmg',\r\n control: methods.control,\r\n });\r\n const { append: appendUseReasonDetailDescriptionsRefresh } = useFieldArray({\r\n name: 'useReasonDetailDescriptionsRefresh',\r\n control: methods.control,\r\n });\r\n\r\n // 変更前の日時\r\n const previousRange = useMemo(() => {\r\n if (!state) return; \r\n return {\r\n range: {\r\n from: new Date(state.prevReservation.useFromDatetime),\r\n to: new Date(state.prevReservation.useToDatetime),\r\n },\r\n baseDateOfTime: new Date(state.prevReservation.usageDate),\r\n }\r\n }, [state?.prevReservation]);\r\n\r\n // 「予約期間外」の文言表示\r\n const notifyDateFetchErrorMessage = useCallback(() => dispatch(notifyMessage(translate('facilityReservationSelection.error.noReservationReceptionSetting'))),[]);\r\n\r\n const getNotes = useCallback((facility: NullPropsToUndefinedType, purposeOfUse: string | null | undefined) => {\r\n if ( purposeOfUse === undefined || !facility.lotteryNotes ) return null;\r\n\r\n if ( facility.lotteryAcceptType === lotteryAcceptTypeOption.common ) {\r\n // 共通設定\r\n return facility.lotteryNotes[0].note;\r\n }\r\n\r\n // 利用目的別設定\r\n return facility.lotteryNotes.find((setting) => setting.useReasonCode === purposeOfUse)?.note ?? null;\r\n }, []);\r\n\r\n // 初期化\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 });\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [prevReservation, useReason] = await Promise.all([\r\n getLotteryReservation(lotteryReservationNo),\r\n getUseReason()\r\n ]);\r\n \r\n let activeDate = new Date(prevReservation.usageDate);\r\n let useFromDatetime = prevReservation.useFromDatetime;\r\n let useToDatetime = prevReservation.useToDatetime;\r\n let purposeOfUse: string | null = prevReservation.useReasonCategory;\r\n let useReasonDetailIrregular: string | null = null;\r\n let useReasonDetailEmg: string | null = null;\r\n let useReasonDetailRefresh: string | null = null;\r\n let useReasonDetailCategory = prevReservation.useReasonDetailCategory;\r\n let useReasonDetailDescription = prevReservation.useReasonDetailDescription;\r\n let isCertificateUseReasonViewFlags: IsCertificateUseReasonViewFlags = {irregularFlag: true, emgFlag: true, refreshFlag: true};\r\n const selectedChildId = prevReservation.childInfoList[0].childId;\r\n const useReasonDetailDescriptionsIrregular: DetailDescription[] = Array(useReason.detailsIrregular.length).fill(null).map(() => ({ value: null }));\r\n const useReasonDetailDescriptionsEmg: DetailDescription[] = Array(useReason.detailsEmg.length).fill(null).map(() => ({ value: null }));\r\n const useReasonDetailDescriptionsRefresh: DetailDescription[] = Array(useReason.detailsRefresh.length).fill(null).map(() => ({ value: null }));\r\n\r\n if (isKeep && lotteryReserveEntry) {\r\n // 次画面から戻ってきた場合\r\n const usageDatetime = lotteryReserveEntry.usageDatetimes[0]\r\n activeDate = new Date(usageDatetime.usageDate);\r\n useFromDatetime = usageDatetime.useFromDatetime;\r\n useToDatetime = usageDatetime.useToDatetime;\r\n purposeOfUse = lotteryReserveEntry.useReasonCategory;\r\n useReasonDetailCategory = lotteryReserveEntry.useReasonDetailCategory;\r\n useReasonDetailDescription = lotteryReserveEntry.useReasonDetailDescription;\r\n isCertificateUseReasonViewFlags = lotteryReserveEntry.isCertificateUseReasonViewFlags;\r\n }\r\n\r\n attachAccessData({\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n childId: selectedChildId,\r\n usageDate: toApiYmd(prevReservation.usageDate),\r\n reservationNo: prevReservation.reservationNo, \r\n }\r\n ],\r\n });\r\n \r\n const [child, facility, availabilities] = await Promise.all([\r\n getChildData(prevReservation.facilityId, selectedChildId),\r\n getFacility(prevReservation.facilityId, activeDate),\r\n getAvaiabilitiesForWeek(\r\n prevReservation.facilityId,\r\n selectedChildId,\r\n activeDate,\r\n purposeOfUse,\r\n lotteryReservationNo,\r\n )\r\n ]);\r\n\r\n // 抽選予約を受け付けているか\r\n const acceptLottery = (\r\n sysCtrl.lotteryDisplayFlag === yesNo.yes \r\n && sysCtrl.lotteryFlag === yesNo.yes \r\n && facility.lotteryFlag === yesNo.yes \r\n )\r\n\r\n if (!child || !facility || !availabilities || !acceptLottery) {\r\n // データ取得できない場合は「予約対象外」というエラー文言を表示\r\n notifyDateFetchErrorMessage();\r\n return;\r\n }\r\n\r\n switch (purposeOfUse) {\r\n case purposeOfUseValue.irregular:\r\n useReasonDetailIrregular = useReasonDetailCategory\r\n if (useReasonDetailIrregular) {\r\n const index = Number(useReasonDetailIrregular) - 1\r\n useReasonDetailDescriptionsIrregular[index].value = useReasonDetailDescription\r\n }\r\n \r\n break;\r\n case purposeOfUseValue.emergency:\r\n useReasonDetailEmg = useReasonDetailCategory\r\n if (useReasonDetailEmg) {\r\n const index = Number(useReasonDetailEmg) - 1\r\n useReasonDetailDescriptionsEmg[index].value = useReasonDetailDescription\r\n }\r\n break;\r\n case purposeOfUseValue.refresh:\r\n useReasonDetailRefresh = useReasonDetailCategory\r\n if (useReasonDetailRefresh) {\r\n const index = Number(useReasonDetailRefresh) - 1\r\n useReasonDetailDescriptionsRefresh[index].value = useReasonDetailDescription\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n appendUseReasonDetailDescriptionsIrregular(useReasonDetailDescriptionsIrregular);\r\n appendUseReasonDetailDescriptionsEmg(useReasonDetailDescriptionsEmg);\r\n appendUseReasonDetailDescriptionsRefresh(useReasonDetailDescriptionsRefresh);\r\n\r\n if (!isKeep || !lotteryReserveEntry) {\r\n isCertificateUseReasonViewFlags = {irregularFlag: true, emgFlag: true, refreshFlag: true};\r\n if (facility.certificateFlag === yesNo.yes) {\r\n if(facility.certificateControlAtypical === yesNo.yes && child.useFlagAtypical === yesNo.no) {\r\n isCertificateUseReasonViewFlags.irregularFlag = false;\r\n }\r\n if(facility.certificateControlEmergency === yesNo.yes && child.useFlagEmergency === yesNo.no) {\r\n isCertificateUseReasonViewFlags.emgFlag = false;\r\n }\r\n if(facility.certificateControlRefresh === yesNo.yes && child.useFlagRefresh === yesNo.no) {\r\n isCertificateUseReasonViewFlags.refreshFlag = false;\r\n }\r\n } \r\n }\r\n\r\n // 各利用目的の利用可否\r\n const useReasonOptions: UseReasonOptions = {\r\n irregular:\r\n facility.irregularDisplayType === useReasonDisplayTypes.usedInBoth\r\n && facility.useReasonUsageFlagIrregular === yesNo.yes\r\n && isCertificateUseReasonViewFlags.irregularFlag,\r\n emergency:\r\n facility.emergencyDisplayType === useReasonDisplayTypes.usedInBoth\r\n && facility.useReasonUsageFlagEmg === yesNo.yes\r\n && isCertificateUseReasonViewFlags.emgFlag,\r\n refresh:\r\n facility.refreshDisplayType === useReasonDisplayTypes.usedInBoth\r\n && facility.useReasonUsageFlagRefresh === yesNo.yes\r\n && isCertificateUseReasonViewFlags.refreshFlag,\r\n };\r\n\r\n // 共通OR利用目的別設定かの判断\r\n let commonFlag: CommonFlag = yesNo.no;\r\n if (\r\n facility.detailSetting.length === 1 \r\n && facility.detailSetting[0].useReasonCode === useReasonCodeValue.common \r\n && facility.lotteryAcceptType === lotteryAcceptTypeOption.common\r\n ) {\r\n commonFlag = yesNo.yes;\r\n if (Object.values(useReasonOptions).every((value)=> !value)) {\r\n // 全ての利用目的が使用されない場合\r\n purposeOfUse = null;\r\n }\r\n }\r\n \r\n // カレンダー説明文\r\n const usageGuideStr = getUsageGuidStr(\r\n facility.immediatelyReservationFlag,\r\n facility.cancelWaitAcceptFlag,\r\n facility.postponeCancelWaitAcceptFlag,\r\n acceptLottery\r\n );\r\n\r\n methods.reset({\r\n usageDesiredDatetimes: [\r\n {\r\n value: {\r\n baseDateOfTime: new Date(activeDate),\r\n range: {\r\n from: new Date(useFromDatetime),\r\n to: new Date(useToDatetime),\r\n },\r\n },\r\n },\r\n ],\r\n purposeOfUse,\r\n useReasonDetailIrregular,\r\n useReasonDetailEmg,\r\n useReasonDetailRefresh,\r\n useReasonDetailDescriptionsIrregular,\r\n useReasonDetailDescriptionsEmg,\r\n useReasonDetailDescriptionsRefresh\r\n });\r\n\r\n setState((prev) => ({\r\n ...prev,\r\n prevReservation,\r\n selectedChildId,\r\n selectedChildName: child.name,\r\n facility,\r\n activeDate,\r\n purposeOfUse,\r\n useReasonDetailCategory,\r\n useReasonDetailDescription,\r\n commonFlag,\r\n useReasonOptions,\r\n isCertificateUseReasonViewFlags,\r\n usageGuideStr,\r\n availabilities: availabilities,\r\n useReason,\r\n lotteryNote: getNotes(facility, purposeOfUse)\r\n }))\r\n })\r\n )\r\n );\r\n }, []);\r\n \r\n // 初期化+コンテンツが表示後に一番上にスクロールする\r\n useEffect(() => {\r\n if (!state || initialized.current) return\r\n setTimeout(() => {\r\n window.scrollTo({ top: 0, behavior: 'smooth' });\r\n }, 0);\r\n initialized.current = true;\r\n }, [state])\r\n \r\n // 条件変更時に空き状況確認する\r\n useEffect(() => {\r\n if (!state) return;\r\n if (state.commonFlag === null) return;\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const availabilities = await getAvaiabilitiesForWeek(\r\n state.prevReservation.facilityId,\r\n state.selectedChildId,\r\n state.activeDate,\r\n state.purposeOfUse,\r\n lotteryReservationNo,\r\n ) \r\n \r\n if (availabilities) {\r\n setState((prev) => (\r\n { \r\n ...prev as PageState,\r\n availabilities \r\n })\r\n );\r\n }else {\r\n // 異常処理\r\n notifyDateFetchErrorMessage();\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n );\r\n \r\n }, [\r\n state?.selectedChildId,\r\n state?.activeDate,\r\n state?.purposeOfUse\r\n ]\r\n );\r\n \r\n // 日付変更\r\n const changeDate = useCallback((date: Date | null) => {\r\n if (!state || !date) return;\r\n addOperationLog({ operationId: OperationId.OP_00000029 });\r\n\r\n if (!isValidDate(date)) {\r\n notifyDateFetchErrorMessage();\r\n return;\r\n }\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n activeDate: date\r\n }))\r\n }, [state]);\r\n\r\n // 利用目的変更\r\n const changeUseReason = useCallback((event: React.ChangeEvent) => {\r\n if (!state) return;\r\n addOperationLog({ operationId: OperationId.OP_00000173 });\r\n\r\n const selectedUseReason = event.target.value;\r\n methods.reset({\r\n ...methods.getValues(),\r\n purposeOfUse: selectedUseReason,\r\n });\r\n\r\n if (state.commonFlag === yesNo.yes) return;\r\n\r\n setState((prev) => ({\r\n ...prev as PageState,\r\n purposeOfUse: selectedUseReason,\r\n lotteryNote: getNotes(state.facility, selectedUseReason)\r\n }));\r\n }, [state]);\r\n\r\n // 妥当性検査\r\n const validate = useCallback(async (data: Inputs) => {\r\n const response: {isError: boolean; showMessages: ShowMessage[]} = {\r\n isError: false,\r\n showMessages: []\r\n } \r\n if (!state) return response;\r\n \r\n const facilityMap = await getFacilityMapByUsageDateElapsed(\r\n state.prevReservation.facilityId,\r\n new Set(data.usageDesiredDatetimes.map((v) => v.value.baseDateOfTime.getTime()))\r\n )\r\n\r\n // 対象日を取得する\r\n const entriesArray = Array.from(data.usageDesiredDatetimes.entries())\r\n\r\n for (const [idx, { value: { baseDateOfTime, range } }] of entriesArray) {\r\n const facility = facilityMap.get(baseDateOfTime.getTime())\r\n const minReservationMinute = facility?.minReservationMinute\r\n const reservableUnitPatternMinute = facility && reservableUnitPatterMinutes[facility?.reservableUnitPattern]\r\n if (minReservationMinute != null) {\r\n // 最低予約時間が設定されている場合\r\n const minute = differenceInMinutes(range.to, range.from)\r\n if (minute < minReservationMinute) {\r\n methods.setError(`usageDesiredDatetimes.${idx}.value`, {\r\n message: translate(\r\n 'facilityReservationSelection.error.minReservationMinute',\r\n fromNumber(minReservationMinute)\r\n ),\r\n })\r\n response.isError = true\r\n }\r\n }\r\n if (reservableUnitPatternMinute != null) {\r\n // 予約可能単位が設定されている場合\r\n const minute = differenceInMinutes(range.to, range.from)\r\n if (minute % reservableUnitPatternMinute !== 0) {\r\n methods.setError(`usageDesiredDatetimes.${idx}.value`, {\r\n message: translate(\r\n 'facilityReservationSelection.error.reservableUnitPattern',\r\n fromNumber(reservableUnitPatternMinute)\r\n ),\r\n })\r\n response.isError = true\r\n }\r\n }\r\n }\r\n\r\n return response\r\n }, [state]);\r\n\r\n // 次ページ移動ボタン押下時\r\n const onSubmit = useCallback((data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000030 });\r\n\r\n if (!state) return;\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 妥当性検査\r\n const isValidateError = await validate(data);\r\n if (isValidateError.isError) {\r\n return\r\n }\r\n \r\n let useReasonDetailCategory: string | null = null\r\n let useReasonDetailDescription: string | null = null\r\n \r\n switch (data.purposeOfUse) {\r\n case purposeOfUseValue.irregular:\r\n useReasonDetailCategory = data.useReasonDetailIrregular\r\n if (useReasonDetailCategory){\r\n const indexOfDescription = Number(useReasonDetailCategory) - 1\r\n useReasonDetailDescription = data.useReasonDetailDescriptionsIrregular[indexOfDescription].value\r\n }\r\n break\r\n case purposeOfUseValue.emergency:\r\n useReasonDetailCategory = data.useReasonDetailEmg\r\n if (useReasonDetailCategory){\r\n const indexOfDescription = Number(useReasonDetailCategory) - 1\r\n useReasonDetailDescription = data.useReasonDetailDescriptionsEmg[indexOfDescription].value\r\n }\r\n break\r\n case purposeOfUseValue.refresh:\r\n useReasonDetailCategory = data.useReasonDetailRefresh\r\n if (useReasonDetailCategory){\r\n const indexOfDescription = Number(useReasonDetailCategory) - 1\r\n useReasonDetailDescription = data.useReasonDetailDescriptionsRefresh[indexOfDescription].value\r\n }\r\n break\r\n }\r\n\r\n // Redux上に現状データを保管\r\n dispatch(\r\n setLotteryReserve({\r\n reservationNo: lotteryReservationNo,\r\n updateDatetime: state.prevReservation.updateDatetime,\r\n useReasonCategory: data.purposeOfUse,\r\n useReasonDetailCategory,\r\n useReasonDetailDescription,\r\n usageDatetimes: data.usageDesiredDatetimes\r\n .map((v) => ({\r\n usageDate: v.value.baseDateOfTime.getTime(),\r\n useFromDatetime: v.value.range.from.getTime(),\r\n useToDatetime: v.value.range.to.getTime(),\r\n usageBaseDate: formatHyphenYmd(v.value.baseDateOfTime),\r\n status: v.value.status,\r\n }))\r\n .sort((a, b) => a.useFromDatetime - b.useFromDatetime),\r\n facility: {\r\n facilityId: state.prevReservation.facilityId,\r\n ...state.facility\r\n },\r\n childInfoList: state.prevReservation.childInfoList,\r\n commonInput: {\r\n lunchFlag: state.prevReservation.lunchFlag,\r\n snackFlag: state.prevReservation.snackFlag,\r\n postponeCancelWaitFlag: state.prevReservation.postponeCancelWaitFlag,\r\n goingTimes: [\r\n ... ( \r\n isUsageDatetimeUpdated(\r\n state.prevReservation.useFromDatetime,\r\n state.prevReservation.useToDatetime,\r\n data.usageDesiredDatetimes[0].value.range.from.getTime(),\r\n data.usageDesiredDatetimes[0].value.range.to.getTime()\r\n )\r\n ? []\r\n : [\r\n state.prevReservation.goingTime\r\n ]\r\n )\r\n ],\r\n formUseReason: state.prevReservation.formUseReason,\r\n preferenceProvisionCertificateFlag: state.prevReservation.preferenceProvisionCertificateFlag,\r\n citizenNote: state.prevReservation.citizenNote,\r\n consentCheck: ''\r\n },\r\n useReason: state.useReason,\r\n isCertificateUseReasonViewFlags: state.isCertificateUseReasonViewFlags,\r\n })\r\n );\r\n\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({\r\n ...history.location,\r\n state: {\r\n isKeep: true,\r\n },\r\n });\r\n\r\n // 次ページへ移動\r\n history.push(facilityLotteryReservationFormUrl.url())\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [state, validate, addOperationLog]);\r\n\r\n return {\r\n state,\r\n previousRange,\r\n methods,\r\n purposeOfUse,\r\n useReasonDetailIrregular,\r\n useReasonDetailEmg,\r\n useReasonDetailRefresh,\r\n onSubmit,\r\n changeDate,\r\n changeUseReason,\r\n }\r\n}\r\n\r\nconst getChildData = async(facilityId: string, childId: string) => {\r\n const response = await executeGetChildren({ facilityId });\r\n return response.result.find((data) => data.childId === childId);\r\n}\r\n\r\nconst getAvaiabilitiesForWeek = async (\r\n facilityId: string,\r\n selectedChildId: string,\r\n targetDate: Date,\r\n useReasonCode: string | null | undefined,\r\n lotteryReservationNo: string | null\r\n) => {\r\n const response = await executeGetFacilityReservationsWeekCitizen(facilityId, {\r\n childId: selectedChildId,\r\n targetDate: toApiYmd(targetDate),\r\n useReasonCode: useReasonCode?? purposeOfUseValue.common,\r\n reservationNo: lotteryReservationNo,\r\n });\r\n return response.result;\r\n}\r\n\r\nconst getFacilityMapByUsageDateElapsed = async (facilityId: string, usageDateElapsedSet: Set) => {\r\n const facilities = await promiseAllConcurrency(\r\n Array.from(usageDateElapsedSet).map((usageDateElapsed) => async () => {\r\n const facility = await getFacility(facilityId, new Date(usageDateElapsed))\r\n return [usageDateElapsed, facility] as const\r\n }),\r\n MAX_WORKER_COUNT\r\n )\r\n return new Map(facilities)\r\n}\r\n\r\n/**\r\n * 予約変更を行っている予約の利用日時に更新がされているか確認する\r\n * @param prevUseFromDatetime \r\n * @param prevUseToDatetime \r\n * @param currUseFromDatetime \r\n * @param currUseToDatetime \r\n * @returns \r\n */\r\nconst isUsageDatetimeUpdated = (\r\n prevUseFromDatetime: number,\r\n prevUseToDatetime: number,\r\n currUseFromDatetime: number,\r\n currUseToDatetime: number\r\n) => {\r\n return (\r\n prevUseFromDatetime !== currUseFromDatetime\r\n || prevUseToDatetime !== currUseToDatetime\r\n );\r\n}\r\n\r\n","import { Box, Stack } from '@mui/material'\nimport { useAction } from '../../containers/facilityLotteryReservationUpdateSelection/facilityLotteryReservationUpdateSelectionService';\nimport { yesNo } from '../../containers/common/constant/classification'\nimport { translate } from '../../i18n'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { AvailabilityCalendar } from '../components/common/inputs/availabilityCalendar'\nimport { Form } from '../components/common/inputs/form'\nimport ChildName from '../components/common/reservationFlow/selection/childName'\nimport BottomButtons from '../components/common/reservationFlow/selection/bottomButtons'\nimport DateSelection from '../components/common/reservationFlow/selection/dateSelection'\nimport FacilityLinkedName from '../components/common/reservationFlow/selection/facilityLinkedName'\nimport FacilityNoteCard from '../components/common/reservationFlow/selection/facilityNote'\nimport ReservationStepBar, { RESERVATION_STEPS } from '../components/common/reservationFlow/reservationStepBar'\nimport UseReasonSelection from '../components/common/reservationFlow/selection/useReasonSelection'\n\nexport const FacilityLotteryReservationUpdateSelection = () => {\n const {\n state,\n previousRange,\n methods,\n purposeOfUse,\n useReasonDetailIrregular,\n useReasonDetailEmg,\n useReasonDetailRefresh,\n onSubmit,\n changeDate,\n changeUseReason,\n } = useAction();\n \n if (!state) {\n return null;\n }\n\n return (\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {\n state.commonFlag === yesNo.no \n && Object.values(state.useReasonOptions).some((usage) => usage)\n && (\n \n )\n }\n \n \n \n \n \n {translate(state.usageGuideStr)}\n \n \n \n \n \n {\n state.lotteryNote && (\n {state.lotteryNote}\n )\n }\n \n {\n state.commonFlag === yesNo.yes \n && Object.values(state.useReasonOptions).some((usage) => usage)\n && (\n \n \n \n )\n }\n \n \n \n \n \n \n \n \n
\n )\n}","import OpenInNewIcon from '@mui/icons-material/OpenInNew'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/**外部へのリンクを示すアイコン */\r\nexport const ExternalLinkIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import { useEffect, useState } from 'react'\nimport { useDispatch } from 'react-redux'\nimport { showLoading } from '../../containers/common/store/slices/application'\nimport { executePostFAQsForEnduser } from '../../dataAccess/webApi/dao/faqDao'\nimport { executePostGuideText, guideTextId } from '../../dataAccess/webApi/dao/guideTextDao'\n// import { ContactData } from '../../dataAccess/webApi/dto/contactDto'\nimport { FaqData } from '../../dataAccess/webApi/dto/faqDto'\nimport { GuideTextData } from '../../dataAccess/webApi/dto/guideTextDto'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const { addOperationLog } = useOperationLog()\n \n const [faqList, setFaqList] = useState()\n const [guideText, setGuideText] = useState()\n \n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n\n const initialize = async () => {\n // よくあるご質問リストを取得\n { \n const faqList = await getFAQs()\n setFaqList(faqList)\n // console.log(\"faqList\", faqList)\n }\n \n // 案内文を取得\n { \n const guideText = await getFaqFootnoteGuideText()\n setGuideText(guideText)\n // console.log(\"guideText\", guideText)\n }\n \n }\n dispatch(showLoading(errorHandle(initialize)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return {\n faqList,\n guideText,\n }\n}\n\n/**\n * 一覧取得して返す\n * @return {Array}\n */\nconst getFAQs = async () => {\n const response = await executePostFAQsForEnduser()\n return response.result.map((entry) => {\n const { ...other } = entry\n return {\n ...other,\n }\n })\n}\n\n/**\n * 案内文を取得して返す\n * @return {Array} - linkSettingsのリスト\n */\nconst getFaqFootnoteGuideText = async () => {\n const response = await executePostGuideText( guideTextId.faqFootnoteGuideText )\n return response.result;\n}\n\n","// import { executePost, KANRI_API_NAME } from '../common/apiCaller'\r\nimport { executePost } from '../common/apiCaller'\r\nimport { FaqData } from '../dto/faqDto'\r\n// import { GuideTextDto, GuideTextData } from '../dto/guideTextDto'\r\n\r\nconst apiName = 'public'\r\nconst apiPath = '/faq'\r\n\r\n/**\r\n * エンドユーザー向けを全件取得\r\n */\r\nexport const executePostFAQsForEnduser = () => {\r\n return executePost(apiName, apiPath, {\"visibleRole\": \"0\"})\r\n}\r\n\r\n\r\n \r\n","import { Stack, styled } from '@mui/material'\r\n// import { ReactNode, useState } from 'react'\r\nimport { useState } from 'react'\r\n// import {\r\n// auMailSetupUrl,\r\n// docomoMailSetupUrl,\r\n// softbankMailSetupUrl,\r\n// ymobileMailSetupUrl,\r\n// } from '../../containers/common/constant/externalUrl'\r\nimport { AccordionCard } from '../components/common/accordionCard'\r\nimport { BottomActionContainer } from '../components/common/bottomActionContainer'\r\nimport { BottomButtonStack } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { InlineFlexbox } from '../components/common/flexboxes'\r\nimport { CenterGItem, GContainer, GItem } from '../components/common/grids'\r\nimport { ExternalLinkIcon } from '../components/common/icons/externalLinkIcon'\r\nimport { Link } from '../components/common/link'\r\nimport { SubTitle } from '../components/common/subTitle'\r\n\r\nimport { useAction } from '../../containers/faq/faqService'\r\n\r\n// const QaCard = ({ question, answer, qaNum }: { question: string; answer: ReactNode; qaNum: number }) => {\r\nconst QaCard = ({ question, answer, qaNum }: { question: string; answer: string; qaNum: number }) => {\r\n const [setOpen, setOpenState] = useState(false)\r\n const toggleAccordion = () => {\r\n setOpenState(!setOpen)\r\n }\r\n return (\r\n \r\n
\r\n {'A' + qaNum + '.'}\r\n {/* {answer} */}\r\n {/*
*/}\r\n {convertToReactNode(answer)}\r\n
\r\n \r\n )\r\n}\r\nconst ItemIconBox = styled(InlineFlexbox)(({ theme }) => ({\r\n color: theme.palette.primary.main,\r\n backgroundColor: theme.palette.white.main,\r\n borderRadius: 24,\r\n fontSize: '1rem',\r\n marginTop: '0.15rem',\r\n marginRight: '4px',\r\n}))\r\n// const LinkList = styled('ul')({\r\n// marginTop: '0',\r\n// })\r\nconst TrademarkNoticeGItem = styled(CenterGItem)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeS,\r\n letterSpacing: '0.2em',\r\n color: theme.palette.grayDark.main,\r\n borderTop: `1px solid ${theme.palette.grayDark.main}`,\r\n marginTop: '6rem',\r\n padding: '1rem 0',\r\n // whiteSpace: 'pre',\r\n whiteSpace: 'pre-wrap',\r\n}))\r\nconst FaqStack = styled(Stack)({\r\n paddingBottom: '5rem',\r\n})\r\n/*\r\n// FAQ掲載内容\r\nconst categList = [\r\n {\r\n category: 'アカウント作成',\r\n qaList: [\r\n {\r\n question: 'アカウント作成したのですが、確認メールが届きません。',\r\n answer: (\r\n <>\r\n 迷惑メールに割り振られている可能性があります。受信ボックスを確認してください。\r\n
\r\n 全ての受信ボックスにメールが届いていない場合は、「no-reply@michi-shiru.jp」からのメールを受け取れるように設定を変更してください。\r\n
\r\n
\r\n ※通信キャリア各社における受信設定の変更方法\r\n \r\n
  • \r\n \r\n ドコモ\r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n au\r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n ソフトバンク\r\n \r\n \r\n \r\n \r\n
  • \r\n
  • \r\n \r\n ワイモバイル\r\n \r\n \r\n \r\n \r\n
  • \r\n
    \r\n \r\n ),\r\n },\r\n {\r\n question: 'アカウント作成したのですが、ワンタイムパスワード(SMS)が届きません。',\r\n answer: [\r\n 'ワンタイムパスワードは、入力していただいた携帯電話番号に、SMS(ショートメッセージサービス)で送られます。',\r\n 'ワンタイムパスワードの受信には時間がかかる場合があります。',\r\n 'SMSが届かない場合は、SMSを受信できる環境であること、また、登録した携帯電話番号が正しいものか確認してください。',\r\n '登録した携帯電話番号は、マイページのアカウント情報から確認することができます。',\r\n ].join('\\n'),\r\n },\r\n {\r\n question: 'パスワードを変更したいのですが、新しいパスワードを受け付けてもらえません。',\r\n answer: [\r\n '新しく設定するパスワードには、ルールがあります。',\r\n '以下の文字を最低1つずつ以上含み、半角で8文字以上のパスワードを入力してください。',\r\n '1.大文字英字',\r\n '2.小文字英字',\r\n '3.数字',\r\n '4.記号(記号例)^ $ * . [ ] { } ( ) ? - \" ! @ # % & / \\\\ , > < \\' : ; | _ ~ ` + =',\r\n ].join('\\n'),\r\n },\r\n {\r\n question: '「子育て応援サイト パマトコのアカウントでログイン」とは何でしょうか。',\r\n answer: [\r\n '横浜市が提供している子育て応援サイト『パマトコ』へ登録がお済みの方は、応援サイトのアカウント情報を利用して、',\r\n '一時預かりWEB予約システムにログインすることや、一時預かりWEB予約システムでの予約情報をパマトコで確認することができます。',\r\n '詳細は、操作マニュアル「横浜市子育て応援サイト「パマトコ」との連携」をご確認ください。',\r\n ].join('\\n'),\r\n },\r\n {\r\n question: 'パスワードをリセットしたのですが、ワンタイムパスワード(メール)が届きません。',\r\n answer: [\r\n 'パスワードをリセットした時のワンタイムパスワードは、入力していただいたメールアドレスに、メールで送られます。',\r\n 'ワンタイムパスワードの受信には時間がかかる場合があります。',\r\n '【メールが届かない場合】',\r\n '1.メールを受信できる環境(ドメイン拒否設定の確認等)であることを確認してください。',\r\n '  Q1.A1.を参考にご確認ください。',\r\n '2.登録したメールアドレスが正しいものであることを確認してください。',\r\n '  登録したメールアドレスは、マイページのアカウント情報から確認することができます。',\r\n '3.再度画面からワンタイムパスワードを送信してください。',\r\n '',\r\n '※2024/07/01よりワンタイムパスワードはSMS(ショートメッセージ)からメールアドレスへ送信先を変更いたしました。',\r\n ].join('\\n'),\r\n },\r\n ],\r\n },\r\n {\r\n category: '面談・登録情報',\r\n qaList: [\r\n {\r\n question: '面談申込をしましたが、違う施設へ変更したいです。',\r\n answer: [\r\n '面談申込した施設に連絡して面談予約をキャンセルしてください。',\r\n 'また、利用を希望する施設へ改めて面談申込を行ってください。',\r\n '複数施設に対し面談申込することも可能です。',\r\n ].join('\\n'),\r\n },\r\n ],\r\n },\r\n {\r\n category: '利用予約',\r\n qaList: [\r\n {\r\n question: '一時預かり利用の予約ができません。',\r\n answer: [\r\n 'アカウント作成後に利用予定施設へ面談申込を行い、電話にて施設と日程調整を行ったうえで、面談を実施します。',\r\n 'その後、施設から利用案内メールが届いた段階で、利用予約をすることができます。',\r\n '【上記の手順を行っても利用予約ができない場合】',\r\n '・ログインしていることを確認してください。',\r\n '・施設側の設定によって、予約受付の期限などを設定している場合があります。',\r\n ' 施設へ直接ご連絡ください。',\r\n '・お子さまお一人につき、月「120時間」の利用上限を設けております。',\r\n ' 予約状態が「未確定(施設確認中)」「確定済」「利用済」の予約の合計時間が、',\r\n ' 同じ月の中で120時間に達していないかどうかご確認いただき、ご不明な場合は市へご連絡ください。',\r\n ' ※ただし、公立保育園が実施する一時保育の利用上限は、月「140時間」です。詳細は、施設へ直接ご確認ください。',\r\n ].join('\\n'),\r\n },\r\n {\r\n question: '予約したのに「予約の見送り」メールが届きました。利用できないのですか?',\r\n answer: [\r\n '施設によって予約の受付方法が異なります(詳細については、マニュアルp.5を参照してください)。',\r\n '予約確認をしてから、予約完了とする受付方法を取っている施設があります(施設承認予約)。',\r\n '予約確認にて、予約の整理が行われたり、定員に達したりした場合に、「予約の見送り」メールにて予約が難しいことをご案内しています。',\r\n '※予約の受付時に送信される「ご予約仮受付」メールは、予約の完了をお知らせするメールではありません。',\r\n ].join('\\n'),\r\n },\r\n ],\r\n },\r\n]\r\n*/\r\n\r\nexport const Faq = () => {\r\n // データ取得\r\n const { faqList, guideText } = useAction()\r\n\r\n // データをカテゴリーごとにまとめる\r\n const categList: any[] = [];\r\n {\r\n if(faqList){\r\n let lastCategory = null\r\n for(const faq of faqList){\r\n const category = faq.category ?? ''\r\n\r\n // 1つ前のデータと違うカテゴリーなら\r\n if(category !== lastCategory){\r\n // 新しいカテゴリーMAPを追加\r\n categList.push({\r\n category: category,\r\n qaList: [],\r\n })\r\n }\r\n\r\n // 追加用のデータに加工\r\n const qa = {\r\n question: faq.question,\r\n answer: faq.answer,\r\n }\r\n\r\n // 最後尾のリストに追加\r\n categList[categList.length - 1].qaList.push(qa)\r\n\r\n lastCategory = category\r\n }\r\n }\r\n }\r\n\r\n // // 脚注を加工\r\n // let footnote = guideText?.guideTextContent ?? ''\r\n // {\r\n // // 改行文字\r\n // footnote = footnote.replace(/(\\r\\n|\\r|\\n)/gm, \"
    \")\r\n\r\n // // リンク\r\n // footnote = footnote.replace(/\\[(.+)\\]\\((.+)\\)/gm, '$1')\r\n // }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {categList.map((category, index) => (\r\n \r\n \r\n \r\n {category.qaList.map((qa:any, qaIndex:any) => (\r\n // カテゴリごとにグループ化され見た目に影響があるためspanで囲う\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n ※ドコモは日本電信電話株式会社の商標または登録商標です。
    \r\n ※auはKDDI株式会社の商標または登録商標です。
    \r\n ※ソフトバンクはソフトバンクグループ株式会社の商標または登録商標です。
    \r\n ※ワイモバイルはヤフー株式会社の商標または登録商標です。
    \r\n
    \r\n */}\r\n \r\n {/*
    */}\r\n {/*
    */}\r\n {convertToReactNode(guideText?.guideTextContent ?? '')}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\n/**\r\n * テキストをHTML形式に変換する\r\n * @param plainText \r\n * @returns \r\n */\r\n// function convertToHTML(plainText?: string){\r\n// let ret = plainText ?? ''\r\n// // 改行文字\r\n// ret = ret.replace(/(\\r\\n|\\r|\\n)/gm, \"
    \")\r\n// // リンク\r\n// ret = ret.replace(/\\[([^\\]]+)\\]\\(([^\\)]+)\\)/gm, '$1')\r\n\r\n// return ret\r\n// }\r\nfunction convertToReactNode(plainText?: string){\r\n const ret = plainText ?? ''\r\n\r\n // リンク形式とそれ以外の形式とで分割して全て抽出\r\n // const matches = ret.match(/(\\[[^\\]]+\\]\\([^\\)]+\\)|[^\\[]*)/g);\r\n const matches = ret.match(/(\\[[^\\]]+\\]\\([^\\)]+\\)|[^\\[]*|\\[[^\\[]*)/g);\r\n let match = null\r\n\r\n return (\r\n <>\r\n {matches?.map((str) => (\r\n // リンク表記なら\r\n (match = str.match(/\\[([^\\]]+)\\]\\(([^\\)]+)\\)/)) ? \r\n \r\n {match[1]}\r\n \r\n \r\n \r\n \r\n :\r\n str\r\n // str.replace(/(\\r\\n|\\r|\\n)/gm, \"
    \")\r\n ))}\r\n \r\n )\r\n}","import { Stack } from '@mui/material'\r\nimport React, { useCallback } from 'react'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { informationDetailUrl } from '../../../containers/common/constant/appUrl'\r\nimport { formatYmdHmWeek } from '../../../utils/dateUtil'\r\nimport { AnnotationLabel } from './annotationLabel'\r\nimport { Card } from './card'\r\n\r\ninterface CityFacilityInformationCardProps {\r\n informaionNo: string\r\n publicationStartDatetime: Date\r\n facilityName: string\r\n title: string\r\n}\r\n\r\n/**\r\n * 市、施設からのお知らせ概要を表示するカードコントロール。\r\n * HOME、お知らせ一覧画面で使うためcommonに配置している\r\n */\r\nexport const CityFacilityInformationCard = (props: CityFacilityInformationCardProps) => {\r\n const history = useHistory()\r\n const onClick = useCallback(() => history.push(informationDetailUrl.url(props.informaionNo)), [props.informaionNo])\r\n return (\r\n \r\n \r\n
    \r\n {formatYmdHmWeek(props.publicationStartDatetime)}\r\n
    \r\n
    【{props.facilityName}】
    \r\n
    {props.title}
    \r\n
    \r\n
    \r\n )\r\n}\r\n","import { Grid, GridSize, styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { ColonSeparator, InlineFlexbox } from './flexboxes'\r\n\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const FlexItem = styled(Grid)({\r\n display: 'flex',\r\n})\r\n\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const LeftItem = styled(FlexItem)({\r\n justifyContent: 'start',\r\n})\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const CenterItem = styled(FlexItem)({\r\n justifyContent: 'center',\r\n})\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const RightItem = styled(FlexItem)({\r\n justifyContent: 'flex-end',\r\n})\r\n\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const TopItem = styled(FlexItem)({\r\n alignItems: 'start',\r\n})\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const MiddleItem = styled(FlexItem)({\r\n alignItems: 'center',\r\n})\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const BottomItem = styled(FlexItem)({\r\n alignItems: 'flex-end',\r\n})\r\n\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const CenterMiddleItem = styled(CenterItem)({\r\n alignItems: 'center',\r\n})\r\n\r\nconst WrapValue = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n wordBreak: 'break-all',\r\n})\r\n\r\ninterface LabelValueItemProps {\r\n children: ReactNode\r\n xs?: boolean | GridSize\r\n sm?: boolean | GridSize\r\n md?: boolean | GridSize\r\n}\r\n\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const LabelItemBase = (props: LabelValueItemProps) => {\r\n const { children, ...through } = props\r\n return (\r\n \r\n {children}\r\n \r\n )\r\n}\r\n\r\n/** @deprecated grids.tsx に定義されたコントロールへ移行してください */\r\nexport const ValueItemBase = (props: LabelValueItemProps) => {\r\n const { children, ...through } = props\r\n return (\r\n \r\n \r\n \r\n {children}\r\n \r\n \r\n )\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport { informationUrl } from '../../containers/common/constant/appUrl'\r\nimport { useAction } from '../../containers/home/homeService'\r\nimport { translate } from '../../i18n'\r\nimport { ButtonErrorL } from '../components/common/buttons/ButtonErrorL'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { CityFacilityInformationCard } from '../components/common/cityFacilityInformationCard'\r\nimport { RightItem } from '../components/common/gridItems'\r\nimport { FacilitySearchIcon } from '../components/common/icons/facilitySearchIcon'\r\nimport { MyFacilityIcon } from '../components/common/icons/myFacilityIcon'\r\nimport { ReserveStatusCheckIcon } from '../components/common/icons/reserveStatusCheckIcon'\r\nimport { UsageHistoryIcon } from '../components/common/icons/usageHistoryIcon'\r\nimport { Link } from '../components/common/link'\r\nimport { SubTitle } from '../components/common/subTitle'\r\n\r\nexport const Home = () => {\r\n const {\r\n informations,\r\n linkSettingsList,\r\n showCouponFunctionFlag,\r\n showTodayConditionInputFlag,\r\n todayConditionInputName,\r\n todayConditionInputEndTime,\r\n goMyFacility,\r\n goReservationStatusList,\r\n goUsageHistory,\r\n goCoupon,\r\n handleClickSearchFacility,\r\n } = useAction()\r\n \r\n if (informations == null) {\r\n return null\r\n }\r\n let firstChildcareTicketButton\r\n if (showCouponFunctionFlag) {\r\n firstChildcareTicketButton = (\r\n <>\r\n \r\n \r\n {translate('home.button.firstChildcareTicket')}\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!informations.length ? (\r\n
    \r\n \r\n {informations.map((info) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n {translate('home.text.toInformation')}▶\r\n \r\n \r\n
    \r\n ) : (\r\n
    {translate('home.text.noInformation')}
    \r\n )}\r\n
    \r\n\r\n
    \r\n \r\n \r\n }\r\n >\r\n {translate('home.button.facilitySearch')}\r\n \r\n \r\n \r\n }>\r\n {translate('home.button.myFacility')}\r\n \r\n \r\n \r\n }>\r\n {translate('home.button.reserveStatusCheck')}\r\n \r\n \r\n \r\n }>\r\n {translate('home.button.usageHistory')}\r\n \r\n \r\n {firstChildcareTicketButton}\r\n {showTodayConditionInputFlag && (\r\n <>\r\n \r\n \r\n {translate(\r\n 'home.button.todayConditionInput',\r\n todayConditionInputEndTime ? todayConditionInputEndTime: \"\",\r\n todayConditionInputName ? todayConditionInputName: \"\",\r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n {translate('home.button.aboutTemporaryCustodyOfInfants')}\r\n \r\n \r\n \r\n \r\n {translate('home.button.aboutTemporaryChildcareBusiness')}\r\n \r\n \r\n \r\n \r\n {translate('home.button.aboutFirstChildcareTicket')}\r\n \r\n \r\n */}\r\n \r\n {linkSettingsList && linkSettingsList.map((link) => (\r\n \r\n \r\n {link.linkName}\r\n \r\n \r\n ))}\r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","export interface GetAccountDto {\r\n email: string\r\n tel: string\r\n ssoUserId: string | null\r\n}\r\n\r\nexport interface GetAccountIsSsoFirstLoginDto {\r\n isSsoFirstLogin: boolean\r\n loginUser: {\r\n email: string\r\n }\r\n}\r\n\r\nexport interface GetAccountOtpDto {\r\n userId: string\r\n emailVerifiedFlag: string\r\n emailVerifiedDatetime: string | null\r\n telVerifiedFlag: string\r\n telVerifiedDatetime: string | null\r\n otp: string | null\r\n generateDatetime: string | null\r\n lastOtpLoginDatetime: string | null\r\n loginFlag: string\r\n updateDatetime : string | null\r\n}\r\n\r\nexport interface PutAccountInputDto {\r\n accessToken: string\r\n email: string | null\r\n tel: string | null\r\n}\r\n\r\nexport interface PostAccountInputDto {\r\n accessToken: string\r\n category: string\r\n passcode: string\r\n}\r\n\r\n/** PostAccountIdentityVerifySubmitInputDtoのcategory */\r\nexport const accountIdentityVerifySubmitCategory = {\r\n email: '1',\r\n tel: '2',\r\n} as const\r\n\r\nexport interface PostAccountIdentityVerifySubmitInputDto {\r\n accessToken: string\r\n category: string\r\n passcode: string\r\n}\r\n\r\nexport interface PutAccountIdentityVerifyResendEmailInputDto {\r\n accessToken: string\r\n email: string\r\n}\r\n","import { useMemo } from 'react'\r\nimport { useLocation } from 'react-router-dom'\r\nimport { castNonNullable, tuple } from '../../utils/typeUtil'\r\n\r\n/** クエリパラメータオブジェクトの型 */\r\nexport type QueryParams = {\r\n [key in keyof T]?: string\r\n}\r\n\r\n/**\r\n * ロケーションのクエリ文字列からクエリパラメータオブジェクトを生成して返すフック関数\r\n *\r\n * @returns クエリパラメータオブジェクト\r\n */\r\nexport const useQueryParams = >(): T => {\r\n const location = useLocation()\r\n const search = location.search\r\n\r\n const queryParams = useMemo(() => {\r\n const searchParams = new URLSearchParams(search)\r\n const params: Record = {}\r\n for (const key of Array.from(searchParams.keys())) {\r\n const value = searchParams.get(key)\r\n if (value) {\r\n params[key] = decodeURIComponent(value)\r\n }\r\n }\r\n return params as T\r\n }, [search])\r\n\r\n return queryParams\r\n}\r\n\r\n/**\r\n * クエリパラメータを付与したURLpathnameを返す\r\n * @param pathname URLpathname\r\n * @param params クエリパラメータオブジェクト\r\n * @returns クエリパラメータを付与したURLpathname\r\n */\r\nexport const getUrlPathname = >(pathname: string, params: T) => {\r\n const entries = Object.entries(params as Record)\r\n .filter(([_key, value]) => value)\r\n .map(([key, value]) => {\r\n // filterでnullは除去されるのでnonNull\r\n return tuple(key, encodeURIComponent(castNonNullable(value)))\r\n })\r\n return entries.length ? pathname + '?' + new URLSearchParams(entries).toString() : pathname\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation } from 'react-router-dom'\r\nimport {\r\n executePostAccountIdentityVerifySubmit,\r\n executePutAccountIdentityVerifyResendEmail,\r\n} from '../../dataAccess/webApi/dao/accountDao'\r\nimport { accountIdentityVerifySubmitCategory } from '../../dataAccess/webApi/dto/accountDto'\r\nimport { translate } from '../../i18n'\r\nimport { getSessionAccessToken } from '../../utils/authUtil'\r\nimport { setFormErrors } from '../../utils/reactUtil'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport {\r\n detectLoginStatus,\r\n selectIsVerifiedEmail,\r\n selectIsVerifiedTel,\r\n} from '../common/store/slices/authority'\r\nimport { useQueryParams } from '../common/transition'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport {\r\n verifyEmail,\r\n} from '../../utils/authUtil'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\n\r\ninterface QueryParams {\r\n code?: string\r\n}\r\ninterface LocationState {\r\n from: Location\r\n}\r\n\r\ninterface Inputs {\r\n email: string\r\n emailConfirmation: string\r\n}\r\ntype InputTypePropName = keyof Inputs\r\n\r\nexport const useAction = () => {\r\n const queryParams = useQueryParams()\r\n const location = useLocation()\r\n const from = location.state?.from\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const dispatch = useDispatch()\r\n const errorHandle = useErrorHandle()\r\n\r\n // const history = useHistory()\r\n\r\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\r\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\r\n const {\r\n smsSubscriptionFlag,\r\n phoneCertificationFlag,\r\n } = useSelector(selectSystemControl)\r\n\r\n const [resultCode, setResultCode] = useState<{ verifySubmit?: number; resendEmail?: number }>()\r\n\r\n const formMethods = useForm()\r\n\r\n const verifySubmit = useCallback(\r\n async (code: string) => {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const resp = await executePostAccountIdentityVerifySubmit({\r\n accessToken: await getSessionAccessToken(),\r\n category: accountIdentityVerifySubmitCategory.email,\r\n passcode: code,\r\n })\r\n if (resp.resultCode) {\r\n // 検証失敗時\r\n setResultCode({ verifySubmit: resp.resultCode })\r\n } else {\r\n await dispatch(detectLoginStatus())\r\n }\r\n })\r\n )\r\n )\r\n },\r\n [dispatch, errorHandle, isVerifiedTel]\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n const { code } = queryParams\r\n if (isVerifiedEmail) {\r\n return\r\n }\r\n if (code) {\r\n verifySubmit(code)\r\n } else {\r\n dispatch(showLoading(errorHandle(async () => await dispatch(detectLoginStatus()))))\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n const { code } = queryParams\r\n const sendCode = async () => {\r\n // メールアドレス検証用のワンタイムパスワード発行\r\n try {\r\n await verifyEmail()\r\n dispatch(notifyMessage(translate('system.success.sendOneTimePassword')))\r\n } catch (e) {\r\n if (e instanceof Error && (e.name === 'LimitExceededException' || e.name === 'TooManyRequestsException')) {\r\n setResultCode({ resendEmail: 3 })\r\n }\r\n }\r\n }\r\n if (!isVerifiedEmail && !code) {\r\n sendCode()\r\n }\r\n }, [])\r\n\r\n /**\r\n * 項目間などの入力値妥当性検査\r\n * @param data 入力値\r\n * @returns エラーが存在する場合true\r\n */\r\n const validateItems = useCallback(\r\n (data: Inputs) => {\r\n const errors: { name: InputTypePropName; message: string }[] = []\r\n\r\n if (data.email !== data.emailConfirmation) {\r\n errors.push({\r\n name: 'emailConfirmation',\r\n message: translate('system.error.notSameEmail'),\r\n })\r\n }\r\n\r\n setFormErrors(formMethods, errors)\r\n\r\n return !!errors.length\r\n },\r\n [formMethods]\r\n )\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000059 })\r\n\r\n setResultCode(undefined)\r\n if (validateItems(data)) {\r\n return\r\n }\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const resp = await executePutAccountIdentityVerifyResendEmail({\r\n accessToken: await getSessionAccessToken(),\r\n email: data.email,\r\n })\r\n if (resp.resultCode) {\r\n // 送信失敗時\r\n setResultCode({ resendEmail: resp.resultCode })\r\n } else {\r\n // 送信成功時\r\n dispatch(notifyMessage(translate('identityEmailVerification.success.resendEmail')))\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [dispatch, errorHandle, validateItems, addOperationLog]\r\n )\r\n\r\n return {\r\n from,\r\n isVerifiedEmail,\r\n isVerifiedTel,\r\n resultCode,\r\n formMethods,\r\n onSubmit,\r\n smsSubscriptionFlag,\r\n phoneCertificationFlag,\r\n }\r\n}\r\n","import { Redirect } from 'react-router'\r\n\r\ninterface IdentityRedirectProps {\r\n from?: Location\r\n toPathname: string\r\n}\r\nexport const IdentityRedirect = (props: IdentityRedirectProps) => {\r\n const { from, toPathname } = props\r\n\r\n return from?.pathname === toPathname ? (\r\n \r\n ) : (\r\n \r\n )\r\n}\r\n","import { Stack, styled } from '@mui/material'\r\nimport { identityVerificationUrl, rootUrl, faqUrl } from '../../containers/common/constant/appUrl'\r\nimport { useAction } from '../../containers/identityEmailVerification/identityEmailVerificationService'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { GContainer, GItem, GItemContainer, RowSpacerGItem } from '../components/common/grids'\r\nimport { IdentityRedirect } from '../components/common/identityRedirect'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { TitleLabel } from '../components/common/titleLabel'\r\nimport { Link } from '../components/common/link'\r\n\r\nconst SubMessageGItem = styled(GItem)({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const IdentityEmailVerification = () => {\r\n const { from, isVerifiedEmail, resultCode, formMethods, onSubmit } = useAction()\r\n\r\n if (isVerifiedEmail) {\r\n return \r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('identityEmailVerification.text.mainMessage')}\r\n \r\n \r\n\r\n {translate('identityEmailVerification.text.subMessageMail')}\r\n \r\n \r\n {translate('identityEmailVerification.text.subMessageQaLinkPrefix')}\r\n {translate('identityEmailVerification.text.subMessageQaLink')}\r\n {translate('identityEmailVerification.text.subMessageQaLinkSuffix')}\r\n \r\n \r\n \r\n \r\n *\r\n {translate('identityEmailVerification.label.email')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('identityEmailVerification.label.emailConfirmation')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {(!!resultCode?.verifySubmit || !!resultCode?.resendEmail) && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('accountCreateCompletion.button.resend')}\r\n \r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","import { useCallback, useState, useEffect } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useLocation, useHistory } from 'react-router-dom'\r\nimport { executePostAccountIdentityVerifySubmit } from '../../dataAccess/webApi/dao/accountDao'\r\nimport { accountIdentityVerifySubmitCategory } from '../../dataAccess/webApi/dto/accountDto'\r\nimport { translate } from '../../i18n'\r\nimport { getSessionAccessToken, verifyTel } from '../../utils/authUtil'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { detectLoginStatus, selectIsVerifiedTel } from '../common/store/slices/authority'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport {\r\n identityVerificationUrl,\r\n emailVerifiedUrl,\r\n} from '../common/constant/appUrl'\r\n\r\ninterface LocationState {\r\n from: Location\r\n}\r\n\r\ninterface Inputs {\r\n oneTimePassword: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const location = useLocation()\r\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\r\n const { smsSubscriptionFlag, phoneCertificationFlag } = useSelector(selectSystemControl)\r\n \r\n const [identifier, setIdentifier] = useState(getNow())\r\n\r\n const formMethods = useForm()\r\n\r\n const from = location.state?.from\r\n\r\n const resend = useCallback(() => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n await verifyTel()\r\n dispatch(notifyMessage(translate('system.success.resendOneTimePassword')))\r\n setIdentifier(getNow())\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [dispatch, errorHandle])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const resp = await executePostAccountIdentityVerifySubmit({\r\n accessToken: await getSessionAccessToken(),\r\n category: accountIdentityVerifySubmitCategory.tel,\r\n passcode: data.oneTimePassword,\r\n })\r\n if (resp.resultCode) {\r\n // 検証失敗時\r\n // ローディング表示中はsetErrorでメッセージ表示が反映されないので遅延させる\r\n setTimeout(() => {\r\n formMethods.setError(\r\n 'oneTimePassword',\r\n { message: translate(`identityVerification.error.verifySubmitResultCode${resp.resultCode}`) },\r\n { shouldFocus: true }\r\n )\r\n }, 0)\r\n } else {\r\n // 検証成功時\r\n await dispatch(detectLoginStatus())\r\n history.replace(emailVerifiedUrl.url(), { from: identityVerificationUrl.url() })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [dispatch, errorHandle, formMethods]\r\n )\r\n\r\n useEffect(() => {\r\n const sendCode = async () => {\r\n // 電話番号検証用のワンタイムパスワード発行\r\n await verifyTel()\r\n dispatch(notifyMessage(translate('system.success.sendOneTimePassword')))\r\n }\r\n\r\n if (!isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes) {\r\n sendCode()\r\n }\r\n }, [])\r\n\r\n return {\r\n formMethods,\r\n isVerifiedTel,\r\n identifier,\r\n from,\r\n resend,\r\n onSubmit,\r\n smsSubscriptionFlag,\r\n phoneCertificationFlag,\r\n }\r\n}\r\n","import { Redirect } from 'react-router-dom'\r\nimport { useAction } from '../../containers/identityVerification/identityVerificationService'\r\nimport { translate } from '../../i18n'\r\nimport { OneTimePasswordVerificationContent } from '../components/common/account/oneTimePasswordVerificationContent'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport {\r\n emailVerifiedUrl,\r\n} from '../../containers/common/constant/appUrl'\r\n\r\nexport const IdentityVerification = () => {\r\n const {\r\n formMethods,\r\n isVerifiedTel,\r\n identifier,\r\n resend,\r\n onSubmit,\r\n smsSubscriptionFlag,\r\n phoneCertificationFlag,\r\n } = useAction()\r\n\r\n if (isVerifiedTel || smsSubscriptionFlag === yesNo.no || phoneCertificationFlag === yesNo.no) {\r\n return \r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n )\r\n}\r\n","import { useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { showLoading } from '../../containers/common/store/slices/application'\nimport { executeGetInformations } from '../../dataAccess/webApi/dao/informationsDao'\nimport { fromApiYmdHms } from '../../utils/dateUtil'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { selectIsLoggedIn, selectIsVerifiedEmail, selectIsVerifiedTel } from '../common/store/slices/authority'\n\ninterface Information {\n informaionNo: string\n publicationStartDatetime: Date\n facilityName: string\n title: string\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n\n const isLoggedIn = useSelector(selectIsLoggedIn)\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\n const [informations, setInformations] = useState()\n\n useEffect(() => {\n const initialize = async () => {\n const result = await getInformations(isLoggedIn, isVerifiedEmail, isVerifiedTel)\n setInformations(result)\n }\n dispatch(showLoading(errorHandle(initialize)))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n return {\n informations,\n }\n}\n\nconst getInformations = async (isLoggedIn: boolean, isVerifiedEmail: boolean, isVerifiedTel: boolean) => {\n const response = await executeGetInformations(isLoggedIn && isVerifiedEmail && isVerifiedTel)\n return response.result.map((info) => {\n const { publicationStartDatetime, ...other } = info\n return {\n ...other,\n publicationStartDatetime: fromApiYmdHms(publicationStartDatetime),\n }\n })\n}\n","import { Grid, Stack } from '@mui/material'\nimport React from 'react'\nimport { rootUrl } from '../../containers/common/constant/appUrl'\nimport { useAction } from '../../containers/information/informationService'\nimport { translate } from '../../i18n'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\nimport { CityFacilityInformationCard } from '../components/common/cityFacilityInformationCard'\nimport { SubTitle } from '../components/common/subTitle'\n\nexport const Information = () => {\n const { informations } = useAction()\n if (informations == null) {\n return null\n }\n return (\n \n \n \n \n \n \n {!!informations.length ? (\n
    \n \n {informations.map((info) => (\n \n \n \n ))}\n \n
    \n ) : (\n
    {translate('home.text.noInformation')}
    \n )}\n
    \n
    \n \n
    \n\n \n {translate('system.button.backToHome')}\n \n
    \n )\n}\n","import { useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useParams } from 'react-router-dom'\r\nimport { executeGetInformation } from '../../dataAccess/webApi/dao/informationsDao'\r\nimport { fromApiYmdHms } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { selectIsLoggedIn, selectIsVerifiedEmail, selectIsVerifiedTel } from '../common/store/slices/authority'\r\n\r\ninterface UrlParams {\r\n informaionNo: string\r\n}\r\n\r\ninterface Information {\r\n informaionNo: string\r\n publicationStartDatetime: Date\r\n facilityName: string\r\n title: string\r\n body: string\r\n url?: string\r\n attachment1FileName?: string\r\n attachment1Key?: string\r\n attachment2FileName?: string\r\n attachment2Key?: string\r\n attachment3FileName?: string\r\n attachment3Key?: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const { informaionNo } = useParams()\r\n const [information, setInformation] = useState()\r\n\r\n const isLoggedIn = useSelector(selectIsLoggedIn)\r\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\r\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\r\n\r\n useEffect(() => {\r\n const initialize = async () => {\r\n const result = await getInformation(isLoggedIn, isVerifiedEmail, isVerifiedTel, informaionNo)\r\n setInformation(result)\r\n }\r\n dispatch(showLoading(errorHandle(initialize)))\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return {\r\n information,\r\n }\r\n}\r\n\r\nconst getInformation = async (\r\n isLoggedIn: boolean,\r\n isVerifiedEmail: boolean,\r\n isVerifiedTel: boolean,\r\n informaionNo: string\r\n) => {\r\n const response = await executeGetInformation(isLoggedIn && isVerifiedEmail && isVerifiedTel, informaionNo)\r\n const { publicationStartDatetime, ...other } = response.result\r\n return nullPropsToUndefined({\r\n ...other,\r\n publicationStartDatetime: fromApiYmdHms(publicationStartDatetime),\r\n })\r\n}\r\n","import PersonIcon from '@mui/icons-material/Person'\nimport React from 'react'\nimport { IconProps } from './iconBase'\n\n/** アカウントを示すアイコン */\nexport const AccountIcon = (props: IconProps) => {\n return \n}\n","import { MouseEvent, useState } from 'react'\nimport { executePostInformationAttachment } from '../../../dataAccess/webApi/dao/informationAttachmentDao'\nimport { translate } from '../../../i18n'\nimport { ErrorMessageCard } from '../../components/common/errorMessageCard'\nimport { Link } from '../../components/common/link'\n\nexport interface Attachment {\n fileName?: string\n key?: string\n}\n\ninterface FileLinkProps {\n attachments: Attachment[]\n}\n\nexport const AttachmentLinks = ({attachments}: FileLinkProps) => {\n const [errorFlg, setErrorFlg] = useState(false)\n\n const onClick = (fileName: string, key: string) => async (e: MouseEvent) => {\n e.preventDefault();\n\n try{\n // S3バケット上のファイルへの一時アクセス用のURLを取得\n const res = await executePostInformationAttachment({ fileName, key })\n \n const signedUrl = res.result.url\n // const ext = fileName.split('.').pop()?.toLowerCase()\n \n // Google Docs Viewer を利用してファイルを別タブでプレビュー\n // ただし、Google Docs Viewer は jpg, jpeg には対応していないため、jpg, jpeg は画像のURLをそのまま別タブで開く\n // const url = ext === \"jpg\" || ext === \"jpeg\"\n // ? signedUrl\n // : `https://docs.google.com/viewer?url=${encodeURIComponent(signedUrl)}`\n\n // 別タブで開かずにダウンロードのみを行う\n fetch(signedUrl)\n .then(response => response.blob())\n .then(blob => {\n const url = window.URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.style.display = 'none';\n a.href = url;\n a.download = fileName;\n document.body.appendChild(a);\n a.click();\n window.URL.revokeObjectURL(url);\n document.body.removeChild(a);\n })\n .catch(error => console.error('ダウンロードエラー:', error));\n\n // window.open(url, '_blank')\n setErrorFlg(false)\n }catch(err){\n setErrorFlg(true)\n }\n }\n\n return (\n <>\n {attachments.map(({fileName, key}) => (\n fileName && key && \n {fileName}\n \n ))}\n {errorFlg && }\n \n )\n}\n","import { executePost } from '../common/apiCaller'\r\nimport { PostInformationAttachmentDto, PostInformationAttachmentInputDto } from '../dto/informationAttachmentDto'\r\n\r\nconst apiNamePublic = 'public'\r\nconst apiPath = '/informations/attachment'\r\n\r\nexport const executePostInformationAttachment = (input: PostInformationAttachmentInputDto) => {\r\n return executePost(apiNamePublic, apiPath, input)\r\n}\r\n","import { Divider, Grid, Stack, styled } from '@mui/material'\nimport React from 'react'\nimport { useAction } from '../../containers/informationDetail/informationDetailService'\nimport { formatYmdHmWeek } from '../../utils/dateUtil'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { InlineFlexbox } from '../components/common/flexboxes'\nimport { AccountIcon } from '../components/common/icons/accountIcon'\nimport { Link } from '../components/common/link'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { Attachment, AttachmentLinks } from '../components/information/attachmentLinks'\n\n\nconst IconBox = styled(InlineFlexbox)(({ theme }) => ({\n color: theme.palette.primary.contrastText,\n backgroundColor: theme.palette.grayDark.main,\n borderRadius: 24,\n fontSize: '1.4rem',\n marginTop: '0.15rem',\n marginRight: 4,\n}))\n\nconst BodyBox = styled('div')({\n whiteSpace: 'pre-wrap',\n})\n\nconst HeaderBodyDivider = styled(Divider)(({ theme }) => ({\n borderColor: theme.palette.secondary.main,\n}))\n\nexport const InformationDetail = () => {\n const { information } = useAction()\n\n if (information == null) {\n return null\n }\n\n const attachments: Attachment[] = [\n {\n fileName: information.attachment1FileName,\n key: information.attachment1Key\n },\n {\n fileName: information.attachment2FileName,\n key: information.attachment2Key\n },\n {\n fileName: information.attachment3FileName,\n key: information.attachment3Key\n },\n ]\n\n return (\n \n \n \n \n \n
    \n {formatYmdHmWeek(information.publicationStartDatetime)}\n
    \n \n \n \n {information.facilityName}\n
    \n {information.title}\n
    \n\n \n\n {information.body}\n\n {information.url && (\n \n {information.url}\n \n )}\n \n
    \n
    \n \n
    \n \n \n \n
    \n )\n}\n","import { Stack, styled } from '@mui/material'\nimport React from 'react'\nimport { rootUrl } from '../../containers/common/constant/appUrl'\nimport {\n interviewReservationStep,\n interviewReservationStep2,\n yesNo,\n interviewAcceptMethod\n} from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/interviewReservationCompletion/interviewReservationCompletionService'\nimport { translate } from '../../i18n'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\nimport { CompletionMessageLabel } from '../components/common/completionMessageLabel'\nimport { CenterGItem, GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\nimport { StepBar } from '../components/common/stepBar'\n\nconst CompletionMessageGItem = styled(CenterGItem)({\n padding: '35px 0',\n})\nconst SubMessageGItem = styled(GItem)({\n whiteSpace: 'pre-wrap',\n display: 'flex',\n justifyContent: 'center',\n})\nconst AttentionMessageLabel = styled(AttentionLabel)(({ theme }) => ({\n fontSize: theme.typography.font.sizeL2,\n}))\n\nexport const InterviewReservationCompletion = () => {\n const { steps, facility } = useAction()\n return (\n \n \n \n \n \n \n \n \n {translate('interviewReservationCompletion.label.completion')}\n \n \n \n \n { (facility.interviewRequestCompletionNotice \n && facility.interviewRequestCompletionNotice.length) \n ? facility.interviewRequestCompletionNotice\n : (facility.interviewDailyAcceptFlag === yesNo.yes\n && facility.interviewAcceptMethod === interviewAcceptMethod.interviewSlots)\n ? translate('interviewReservationCompletion.text.mainMessage.dailyAccept')\n : translate('interviewReservationCompletion.text.mainMessage.dailyNotAccept')\n }\n \n \n {facility.interviewRequestCompletionInformation\n && facility.interviewRequestCompletionInformation.length && (\n <>\n \n \n {facility.interviewRequestCompletionInformation}\n \n \n )}\n {facility\n && !(facility.interviewDailyAcceptFlag === yesNo.yes\n && facility.interviewAcceptMethod === interviewAcceptMethod.interviewSlots) && (\n <>\n \n \n \n {facility.facilityName}\n \n \n {facility.tel}\n \n {facility.inquiryTime && facility.inquiryTime.length && (\n <>\n \n \n {'【' + translate('interviewReservationCompletion.label.inquiryTime') + '】'}\n \n \n {facility.inquiryTime}\n \n \n )}\n \n \n )}\n \n {translate('interviewReservationCompletion.text.subMessage')}\n \n \n \n \n \n {translate('system.button.backToHome')}\n \n \n )\n}\n","import { useMemo, useEffect, useState } from 'react'\r\nimport { useSelector, useDispatch } from 'react-redux'\r\nimport { getInterviewReservationSteps, getInterviewReservationSteps2 } from '../common/codeMaster'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { getFacility } from '../common/facility'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo, interviewAcceptMethod } from '../common/constant/classification'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n selectInterviewReserveEntry,\r\n clearInterviewReserve\r\n} from '../common/store/slices/interviewReserve'\r\n\r\ninterface FacilityState {\r\n interviewDailyAcceptFlag: string\r\n interviewAcceptMethod: string\r\n interviewRequestCompletionInformation: string\r\n interviewRequestCompletionNotice: string\r\n facilityName: string\r\n tel: string\r\n inquiryTime: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const reserveEntry = useSelector(selectInterviewReserveEntry)\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const [facility, setFacility] = useState({\r\n interviewDailyAcceptFlag: yesNo.no,\r\n interviewAcceptMethod: interviewAcceptMethod.applicationOnly,\r\n interviewRequestCompletionInformation: '',\r\n interviewRequestCompletionNotice: '',\r\n facilityName: '',\r\n tel: '',\r\n inquiryTime: '',\r\n })\r\n\r\n const steps = useMemo(\r\n (facility?.interviewDailyAcceptFlag === yesNo.yes && facility?.interviewAcceptMethod === interviewAcceptMethod.interviewSlots)\r\n ? getInterviewReservationSteps2 : getInterviewReservationSteps,\r\n [facility]\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n if (reserveEntry) {\r\n const facility = await getFacility(reserveEntry.facilityId)\r\n if (facility) {\r\n setFacility({\r\n interviewDailyAcceptFlag: facility.interviewDailyAcceptFlag ?? yesNo.no,\r\n interviewAcceptMethod: facility.interviewAcceptMethod ?? interviewAcceptMethod.applicationOnly,\r\n interviewRequestCompletionInformation: facility.interviewRequestCompletionInformation ?? '',\r\n interviewRequestCompletionNotice: facility.interviewRequestCompletionNotice ?? '',\r\n facilityName: facility.facilityName ?? '',\r\n tel: facility.tel ?? '',\r\n inquiryTime: facility.inquiryTime ?? '',\r\n })\r\n }\r\n }\r\n dispatch(clearInterviewReserve())\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n return {\r\n steps,\r\n facility,\r\n }\r\n}\r\n","// 面談予約情報に関する共通処理を定義\r\n\r\nimport { executeGetInterview } from '../../dataAccess/webApi/dao/interviewsDao'\r\nimport { fromApiYmd, fromApiYmdHms, endOfDay, getNow, ElapsedMillisecond } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { yesNo } from './constant/classification'\r\n\r\n\r\nexport type DocType = {\r\n fileName: string | null\r\n delFlg: string | null\r\n tempUploadKey: string | null\r\n}\r\n\r\nexport type TempFile = {\r\n files: DocType[]\r\n hasSubmitted: string\r\n status?: string\r\n}\r\n\r\ntype child = {\r\n childId: string\r\n childName: string\r\n childKana: string\r\n childGender: string\r\n childBirthday: ElapsedMillisecond\r\n childMedicalHistoryFlag: string\r\n childMedicalHistory: string\r\n childAllergyFlag: string\r\n childAllergy: string\r\n //TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする\r\n //maternalHandbookNo: string\r\n note: string\r\n facilityNumber: string\r\n childUpdateDatetime: string\r\n childInterviewPermitCount: number\r\n availabilityOfApplication: string\r\n tempFile?: TempFile\r\n}\r\n\r\nexport const setStringifyNamesChildInfoList = (childInfoList: T[]): T[] => {\r\n return childInfoList.map((childInfo) => {\r\n const returnChildInfo = { ...childInfo };\r\n\r\n if (childInfo.tempFile) {\r\n returnChildInfo.tempFile = {\r\n ...childInfo.tempFile,\r\n };\r\n\r\n // なぜ必要なのか不明 利用予約では不要\r\n returnChildInfo.tempFile.files = childInfo.tempFile.files.map((file) => {\r\n return { ...file }\r\n })\r\n }\r\n return returnChildInfo\r\n\r\n })\r\n}\r\n\r\n/**\r\n * 指定した受付Noの面談予約情報を返す。\r\n *\r\n * @param interviewNo 受付No\r\n * @returns 面談予約情報\r\n */\r\nexport const getInterview = async (interviewNo: string) => {\r\n const response = await executeGetInterview(interviewNo)\r\n const {\r\n interviewDate,\r\n interviewStartDatetime,\r\n interviewEndDatetime,\r\n childBirthday,\r\n canUpdate,\r\n canCancel,\r\n reservationDatetime,\r\n reservationChangeDatetime,\r\n reservationCancelDatetime,\r\n ...other\r\n } = response.result\r\n\r\n // 添付ファイルの有無\r\n const hasTempDoc = !!other.tempDoc1Name || !!other.tempDoc2Name || !!other.tempDoc3Name || !!other.tempDoc4Name || !!other.tempDoc5Name\r\n\r\n return nullPropsToUndefined({\r\n ...other,\r\n interviewNo,\r\n interviewDate: fromApiYmd(interviewDate),\r\n interviewStartDatetime: fromApiYmdHms(interviewStartDatetime),\r\n interviewEndDatetime: fromApiYmdHms(interviewEndDatetime),\r\n childBirthday: fromApiYmd(childBirthday),\r\n canUpdate: canUpdate === yesNo.yes,\r\n canCancel: canCancel === yesNo.yes,\r\n canCancelWait: interviewDate && getNow().getTime() <= endOfDay(interviewDate).getTime(),\r\n reservationDatetime: fromApiYmdHms(reservationDatetime),\r\n reservationChangeDatetime: fromApiYmdHms(reservationChangeDatetime),\r\n reservationCancelDatetime: fromApiYmdHms(reservationCancelDatetime),\r\n hasTempDoc: hasTempDoc ? yesNo.yes : yesNo.no\r\n })\r\n}\r\n\r\n/** 面談予約情報の型 */\r\nexport type Interview = ReturnType extends Promise ? T : never\r\n","import { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePostInterview, executePutInterview, executeGetSameAddChildInterviews } from '../../dataAccess/webApi/dao/interviewsDao'\r\nimport { GetSameAddChildInterviewsDto } from '../../dataAccess/webApi/dto/interviewsDto'\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { formatDate, getNow, toApiYmd, toApiYmdHms } from '../../utils/dateUtil'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { castNonNullable, NullPropsToUndefinedType } from '../../utils/typeUtil'\r\nimport { getInterviewReservationSteps, getInterviewReservationSteps2 } from '../common/codeMaster'\r\nimport { getInterview } from '../common/interview'\r\nimport { interviewReservationCompletionUrl } from '../common/constant/appUrl'\r\nimport { yesNo, interviewAcceptMethod } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { getLatestAddOperationDatetime, useOperationLog } from '../common/operationLog'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { getCategories } from '../common/category'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport {\r\n InterviewReserveEntry,\r\n //clearInterviewReserve,\r\n selectInterviewReserveEntry,\r\n selectInterviewReserveUpdateDatetimes,\r\n} from '../common/store/slices/interviewReserve'\r\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\r\nimport { executeGetProjectDetail } from '../../dataAccess/webApi/dao/projectsDao'\r\nimport { TEMP_FILE_CONDITION } from '../common/constant/projectMst'\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const [facility, setFacility] = useState>()\r\n const [facilityName, setFacilityName] = useState()\r\n const [isConfirmDialogOpen, setIsConfirmDialogOpen] = useState(false)\r\n const [sameAddChildInfo, setAddChildInfo] = useState()\r\n const [interviewResultCode, setInterviewResultCode] = useState()\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const reserveEntry = useSelector(selectInterviewReserveEntry)\r\n const updateDatetimes = useSelector(selectInterviewReserveUpdateDatetimes)\r\n\r\n /** 使用する項目 */\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n 'allergy',\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n\r\n \r\n\r\n const steps = useMemo(\r\n (facility?.interviewDailyAcceptFlag === yesNo.yes && facility?.interviewAcceptMethod === interviewAcceptMethod.interviewSlots)\r\n ? getInterviewReservationSteps2 : getInterviewReservationSteps,\r\n [facility]\r\n )\r\n const [hasInterviewdocs, setHasInterviewdocs] = useState()\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n if (reserveEntry) {\r\n const facility = await getFacility(reserveEntry.facilityId)\r\n setFacility(facility)\r\n setFacilityName(facility.facilityName)\r\n\r\n // 事業マスタデータ取得\r\n const projectMstData: GetProjectDetailDto = await getProjectMstData(facility.projectId)\r\n setHasInterviewdocs(projectMstData.interviewDocFlag === TEMP_FILE_CONDITION.USED_BOTH)\r\n }\r\n \r\n //カテゴリーマスタ取得\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS})\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 登録処理\r\n const decideFinal = useCallback((sameUpdateFlag: boolean) => async () => {\r\n addOperationLog({ operationId: OperationId.OP_00000026 })\r\n const operationLogDatetime = castNonNullable(getLatestAddOperationDatetime())\r\n\r\n let success = false\r\n await dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (reserveEntry && updateDatetimes && !reserveEntry.interviewNo) {\r\n // 面談登録\r\n const response = await postInterview(\r\n reserveEntry,\r\n updateDatetimes.userUpdateDatetime,\r\n operationLogDatetime,\r\n facility?.interviewDailyAcceptFlag ?? yesNo.no,\r\n facility?.interviewAcceptMethod ?? interviewAcceptMethod.applicationOnly,\r\n )\r\n if (response.resultCode) {\r\n // 登録失敗時\r\n setInterviewResultCode(response.resultCode)\r\n } else {\r\n // 登録成功時\r\n success = true\r\n //history.push(interviewReservationCompletionUrl.url())\r\n //dispatch(clearInterviewReserve())\r\n }\r\n } else if (reserveEntry && updateDatetimes && reserveEntry.interviewNo && updateDatetimes.interviewUpdateDatetime) {\r\n // 面談更新\r\n const response = await putInterview(\r\n reserveEntry,\r\n reserveEntry.interviewNo,\r\n updateDatetimes.userUpdateDatetime,\r\n updateDatetimes.interviewUpdateDatetime,\r\n operationLogDatetime,\r\n facility?.interviewDailyAcceptFlag ?? yesNo.no,\r\n sameUpdateFlag,\r\n sameAddChildInfo ?? [],\r\n facility?.interviewAcceptMethod ?? interviewAcceptMethod.applicationOnly,\r\n )\r\n if (response.resultCode) {\r\n // 登録失敗時\r\n setInterviewResultCode(response.resultCode)\r\n } else {\r\n // 登録成功時\r\n success = true\r\n //history.push(interviewReservationCompletionUrl.url())\r\n //dispatch(clearInterviewReserve())\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n\r\n // エラーが発生していない場合に次画面に遷移\r\n if (success) {\r\n history.push(interviewReservationCompletionUrl.url())\r\n }\r\n }, [addOperationLog, dispatch, errorHandle, history, reserveEntry, updateDatetimes, sameAddChildInfo, facility])\r\n\r\n // 登録前処理\r\n const decide = useCallback(async () => {\r\n let decideFinalFlag = false\r\n await dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (reserveEntry && updateDatetimes && !reserveEntry.interviewNo) {\r\n // 面談登録\r\n // 登録処理を実行する\r\n decideFinalFlag = true\r\n } else if (reserveEntry && updateDatetimes && reserveEntry.interviewNo && updateDatetimes.interviewUpdateDatetime) {\r\n // 面談変更\r\n // 変更前の面談情報を取得\r\n const interview = await getInterview(reserveEntry.interviewNo)\r\n\r\n // 変更後の面談開始終了日時を取得\r\n const newInterviewDate = reserveEntry.interviewDatetimes && toApiYmd(reserveEntry.interviewDatetimes[0].interviewDate)\r\n const newInterviewFromDatetime = reserveEntry.interviewDatetimes && toApiYmdHms(reserveEntry.interviewDatetimes[0].interviewFromDatetime)\r\n const newInterviewToDatetime = reserveEntry.interviewDatetimes && toApiYmdHms(reserveEntry.interviewDatetimes[0].interviewToDatetime)\r\n\r\n if (toApiYmd(interview.interviewDate) !== newInterviewDate\r\n || toApiYmdHms(interview.interviewStartDatetime) !== newInterviewFromDatetime\r\n || toApiYmdHms(interview.interviewEndDatetime) !== newInterviewToDatetime) {\r\n // 面談日、面談開始時間、面談終了時間のどれかが変更ある場合に\r\n // 同時更新できるお子様の面談があるか取得\r\n const getSameAddChildInterviewsRes = await executeGetSameAddChildInterviews(\r\n reserveEntry.interviewNo,\r\n )\r\n if (getSameAddChildInterviewsRes.resultCode) {\r\n // 失敗時\r\n setInterviewResultCode(getSameAddChildInterviewsRes.resultCode)\r\n } else {\r\n // 成功時\r\n // お子さま名を設定\r\n if (getSameAddChildInterviewsRes.result && getSameAddChildInterviewsRes.result.length > 0) {\r\n setAddChildInfo(getSameAddChildInterviewsRes.result)\r\n setIsConfirmDialogOpen(true)\r\n } else {\r\n // 登録処理を実行する\r\n decideFinalFlag = true\r\n }\r\n }\r\n } else {\r\n // 登録処理を実行する\r\n decideFinalFlag = true\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n\r\n if (decideFinalFlag) {\r\n // 登録処理\r\n dispatch(decideFinal(false))\r\n }\r\n }, [addOperationLog, dispatch, errorHandle, decideFinal, history, reserveEntry, updateDatetimes])\r\n\r\n // 同時更新確認ダイアログ:同時更新しない\r\n const onConfirmDialogNo = useCallback(async() => {\r\n // ダイアログを閉じて登録処理を実行\r\n setIsConfirmDialogOpen(false)\r\n dispatch(decideFinal(false))\r\n },[dispatch, decideFinal])\r\n\r\n // 同時更新確認ダイアログ:同時更新する\r\n const onConfirmDialogYes = useCallback(async() => {\r\n // ダイアログを閉じて登録処理を実行\r\n setIsConfirmDialogOpen(false)\r\n dispatch(decideFinal(true))\r\n },[dispatch, decideFinal])\r\n\r\n // 同時更新確認ダイアログ:閉じる\r\n const onConfirmDialogClose = useCallback(() => {\r\n //閉じたくないので処理なし\r\n },[])\r\n\r\n let applicationChildren: any[] = []\r\n if (reserveEntry && reserveEntry.children) {\r\n applicationChildren = reserveEntry.children.filter(child => child.availabilityOfApplication === yesNo.yes)\r\n }\r\n\r\n return {\r\n reserveEntry,\r\n facilityName,\r\n steps,\r\n interviewResultCode,\r\n decide,\r\n applicationChildren,\r\n isConfirmDialogOpen,\r\n onConfirmDialogClose,\r\n onConfirmDialogNo,\r\n onConfirmDialogYes,\r\n sameAddChildInfo,\r\n facility,\r\n categoryMap,\r\n hasInterviewdocs\r\n }\r\n}\r\n\r\n/**\r\n * 面談登録パラメータ設定\r\n */\r\nconst postInterview = (\r\n entry: InterviewReserveEntry,\r\n userUpdateDatetime: string,\r\n operationLogDatetime: string,\r\n interviewDailyAcceptFlag: string,\r\n facilityInterviewAcceptMethod: string,\r\n) => {\r\n\r\n let interviewDatetime\r\n if ((interviewDailyAcceptFlag === yesNo.yes && facilityInterviewAcceptMethod === interviewAcceptMethod.interviewSlots)\r\n && entry.interviewDatetimes && entry.interviewDatetimes.length > 0) {\r\n interviewDatetime = {\r\n interviewDate: toApiYmd(entry.interviewDatetimes[0].interviewDate),\r\n interviewFromDatetime: toApiYmdHms(entry.interviewDatetimes[0].interviewFromDatetime),\r\n interviewToDatetime: toApiYmdHms(entry.interviewDatetimes[0].interviewToDatetime),\r\n }\r\n }\r\n let applicationChildren: any[] = []\r\n if (entry && entry.children) {\r\n applicationChildren = entry.children.filter(child => child.availabilityOfApplication === yesNo.yes)\r\n } \r\n return executePostInterview({\r\n ...undefinedPropsToNull(\r\n {\r\n facilityId: entry.facilityId,\r\n parentName: castNonNullable(entry.parentName),\r\n parentKana: castNonNullable(entry.parentKana),\r\n postalCode: castNonNullable(entry.postalCode),\r\n address1: castNonNullable(entry.address1),\r\n address2: castNonNullable(entry.address2),\r\n buildingNameRoomNumber: blankToNull(entry.buildingNameRoomNumber),\r\n residenceCategory: castNonNullable(entry.residenceCategory),\r\n relationship: blankToNull(entry.relationship),\r\n userUpdateDatetime,\r\n operationLogDatetime,\r\n uploadDate: formatDate(getNow(), 'yyyyMMddHHmmssSSS'),\r\n children:\r\n !applicationChildren ? [] : applicationChildren.map((child) => {\r\n return (\r\n {\r\n childId: child.childId,\r\n childName: child.childName,\r\n childKana: child.childKana,\r\n childGender: child.childGender,\r\n childBirthday: toApiYmd(child.childBirthday),\r\n childAllergyFlag: child.childAllergyFlag,\r\n childAllergy: blankToNull(child.childAllergy),\r\n childMedicalHistoryFlag: child.childMedicalHistoryFlag,\r\n childMedicalHistory: blankToNull(child.childMedicalHistory),\r\n maternalHandbookNo: blankToNull(child.maternalHandbookNo),\r\n note: blankToNull(child.note),\r\n facilityNumber: blankToNull(child.facilityNumber),\r\n childUpdateDatetime: child.childUpdateDatetime,\r\n tempFiles: child.tempFile ? child.tempFile.files : [],\r\n }\r\n )\r\n }),\r\n }\r\n ),\r\n ...(interviewDatetime && {interviewDatetime}),\r\n })\r\n}\r\n\r\n/**\r\n * 面談更新パラメータ設定\r\n */\r\nconst putInterview = (\r\n entry: InterviewReserveEntry,\r\n interviewNo: string,\r\n userUpdateDatetime: string,\r\n interviewUpdateDatetime: string,\r\n operationLogDatetime: string,\r\n interviewDailyAcceptFlag: string,\r\n sameUpdateFlag: boolean,\r\n sameAddChildInfo: GetSameAddChildInterviewsDto[],\r\n facilityInterviewAcceptMethod: string,\r\n) => {\r\n\r\n let interviewDatetime\r\n if ((interviewDailyAcceptFlag === yesNo.yes && facilityInterviewAcceptMethod === interviewAcceptMethod.interviewSlots)\r\n && entry.interviewDatetimes && entry.interviewDatetimes.length > 0) {\r\n interviewDatetime = {\r\n interviewDate: toApiYmd(entry.interviewDatetimes[0].interviewDate),\r\n interviewFromDatetime: toApiYmdHms(entry.interviewDatetimes[0].interviewFromDatetime),\r\n interviewToDatetime: toApiYmdHms(entry.interviewDatetimes[0].interviewToDatetime),\r\n }\r\n }\r\n\r\n return executePutInterview(\r\n interviewNo,\r\n {...undefinedPropsToNull(\r\n {\r\n facilityId: entry.facilityId,\r\n parentName: castNonNullable(entry.parentName),\r\n parentKana: castNonNullable(entry.parentKana),\r\n postalCode: castNonNullable(entry.postalCode),\r\n address1: castNonNullable(entry.address1),\r\n address2: castNonNullable(entry.address2),\r\n buildingNameRoomNumber: blankToNull(entry.buildingNameRoomNumber),\r\n residenceCategory: castNonNullable(entry.residenceCategory),\r\n relationship: blankToNull(entry.relationship),\r\n userUpdateDatetime,\r\n interviewUpdateDatetime,\r\n operationLogDatetime,\r\n uploadDate: formatDate(getNow(), 'yyyyMMddHHmmssSSS'),\r\n children:\r\n !entry.children ? [] : entry.children.map((child) => {\r\n return (\r\n {\r\n childId: child.childId,\r\n childName: child.childName,\r\n childKana: child.childKana,\r\n childGender: child.childGender,\r\n childBirthday: toApiYmd(child.childBirthday),\r\n childAllergyFlag: child.childAllergyFlag,\r\n childAllergy: blankToNull(child.childAllergy),\r\n childMedicalHistoryFlag: child.childMedicalHistoryFlag,\r\n childMedicalHistory: blankToNull(child.childMedicalHistory),\r\n maternalHandbookNo: blankToNull(child.maternalHandbookNo),\r\n note: blankToNull(child.note),\r\n facilityNumber: blankToNull(child.facilityNumber),\r\n childUpdateDatetime: child.childUpdateDatetime,\r\n tempFiles: child.tempFile ? child.tempFile.files : [],\r\n }\r\n )\r\n }),\r\n sameAddChildren:\r\n (!sameUpdateFlag || !sameAddChildInfo.length) ? [] : sameAddChildInfo.map((child) => {\r\n return (\r\n {\r\n interviewsNo: child.interviewNo,\r\n childId: child.childId,\r\n interviewUpdateDatetime: child.interviewUpdateDatetime,\r\n }\r\n )\r\n }),\r\n }\r\n ),\r\n ...(interviewDatetime && {interviewDatetime}),\r\n })\r\n}\r\n\r\nconst getProjectMstData = async (projectId: string)=>{\r\n const projectMstData = await executeGetProjectDetail(projectId, toApiYmd(Date.now()))\r\n return projectMstData.result\r\n}\r\n","import { Grid, Stack } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { getGenderLabel, getYesNoLabel } from '../../containers/common/codeMaster'\nimport {\n interviewReservationStep,\n interviewReservationStep2,\n yesNo,\n interviewAcceptMethod,\n Flag\n} from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/interviewReservationConfirmation/interviewReservationConfirmationService'\nimport { translate } from '../../i18n'\nimport { formatYmd, formatHmtoHmOver, formatYmdWeek } from '../../utils/dateUtil'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { Card } from '../components/common/card'\nimport { ElevatedCard } from '../components/common/elevatedCard'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { GContainer, GItem, LabelGItemBase, RowSpacerGItem, ValueGItemBase } from '../components/common/grids'\nimport { StepBar } from '../components/common/stepBar'\nimport { TransitionCheck } from '../components/common/transitionCheck'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { Dialog } from '../components/common/dialog'\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\nimport { ButtonS } from '../components/common/buttons/buttonS'\nimport { DocType } from '../../containers/common/interview'\n\nconst LabelGItem = (props: { children?: ReactNode }) => {props.children}\nconst ValueGItem = (props: { children: ReactNode }) => {props.children}\n\nexport const InterviewReservationConfirmation = () => {\n const {\n reserveEntry,\n facilityName,\n steps,\n interviewResultCode,\n decide,\n applicationChildren,\n isConfirmDialogOpen,\n onConfirmDialogClose,\n onConfirmDialogNo,\n onConfirmDialogYes,\n sameAddChildInfo,\n facility,\n categoryMap,\n hasInterviewdocs\n } = useAction()\n\n if (reserveEntry == null) {\n return \n }\n if (facilityName == null) {\n return null\n }\n\n return (\n \n \n {translate('interviewReservationConfirmation.button.no')}\n {translate('interviewReservationConfirmation.button.yes')}\n \n }\n maxWidth={'xs'}\n fullWidth\n >\n <>\n {translate('interviewReservationConfirmation.text.sameAddChildDialog')}\n
      \n {sameAddChildInfo && sameAddChildInfo.map((child, idx) => {\n return (\n
    • {child.childName}
    • \n )\n })}\n
    \n \n \n\n \n \n \n \n
    \n \n
    \n \n {(facility?.interviewDailyAcceptFlag === yesNo.yes && facility?.interviewAcceptMethod === interviewAcceptMethod.interviewSlots)\n && reserveEntry.interviewDatetimes && reserveEntry.interviewDatetimes.length > 0 &&\n <>\n \n \n {translate('interviewReservationConfirmation.label.interviewDatetime')}\n \n \n \n \n \n \n {formatYmdWeek(reserveEntry.interviewDatetimes[0].interviewDate)}\n \n \n \n \n \n {formatHmtoHmOver(\n {\n from: reserveEntry.interviewDatetimes[0].interviewFromDatetime,\n to: reserveEntry.interviewDatetimes[0].interviewToDatetime,\n },\n reserveEntry.interviewDatetimes[0].interviewDate\n )}\n \n \n \n \n \n \n \n \n \n }\n \n {translate('interviewReservationConfirmation.label.facilityName')}\n {facilityName}\n \n\n {translate('interviewReservationConfirmation.label.parentName')}\n {reserveEntry.parentName}\n {translate('interviewReservationConfirmation.label.parentKana')}\n {reserveEntry.parentKana}\n {translate('interviewReservationConfirmation.label.postalCode')}\n {reserveEntry.postalCode}\n \n {translate('interviewReservationConfirmation.label.prefecturesAndMunicipalities')}\n \n {reserveEntry.address1}\n {translate('interviewReservationConfirmation.label.address')}\n {reserveEntry.address2}\n {translate('interviewReservationConfirmation.label.buildingNameRoomNumber')}\n {reserveEntry.buildingNameRoomNumber}\n {translate('interviewReservationConfirmation.label.residenceCategory')}\n {reserveEntry.residenceCategoryName}\n {translate('interviewReservationConfirmation.label.relationship')}\n {reserveEntry.relationship}\n \n\n {applicationChildren && applicationChildren.map((child, index) => {\n return (\n \n \n \n \n {translate('interviewReservationConfirmation.label.childName')}\n {child.childName}\n {translate('interviewReservationConfirmation.label.childKana')}\n {child.childKana}\n {translate('interviewReservationConfirmation.label.childBirthday')}\n {formatYmd(child.childBirthday)}\n {translate('interviewReservationConfirmation.label.childGender')}\n {getGenderLabel(child.childGender)}\n\n {facility?.interviewMethodFlag === yesNo.no && (\n <>\n {translate('interviewReservationConfirmation.label.childAllergyFlag')}\n {getYesNoLabel(child.childAllergyFlag)}\n {translate('interviewReservationConfirmation.label.childAllergyContent')}\n {child.childAllergy}\n \n {translate('interviewReservationConfirmation.label.childMedicalHistoryFlag')}\n \n {getYesNoLabel(child.childMedicalHistoryFlag)}\n \n {translate('interviewReservationConfirmation.label.childMedicalHistoryContent')}\n \n {child.childMedicalHistory}\n \n )}\n\n {categoryMap?.maternalHandbookNo && (\n <>\n {translate('interviewReservationConfirmation.label.maternalHandbookNo')}\n {child.maternalHandbookNo}\n \n )}\n {hasInterviewdocs &&(<>\n {translate('interviewReservationConfirmation.label.tempFile')}\n \n {getYesNoLabel(child.tempFile?.files.filter((doc: DocType) => doc.fileName).length > 0 ? Flag.ON : Flag.OFF)})}\n {translate('interviewReservationConfirmation.label.note')}\n {child.note}\n {translate('interviewReservationConfirmation.label.facilityNumber')}\n {child.facilityNumber}\n \n \n \n \n )\n })}\n\n {!!interviewResultCode && (\n \n )}\n \n
    \n
    \n \n
    \n \n \n {translate('interviewReservationConfirmation.button.decide')}\n \n \n \n
    \n )\n}\n","import { useEffect, useState, useCallback } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { fromApiHms, toApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { yesNo, interviewStatus } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { interviewReservationDeleteUrl, interviewReservationSelectionUpdateUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { Interview, getInterview } from '../common/interview'\r\nimport { getFacility } from '../common/facility'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\r\nimport { TEMP_FILE_CONDITION } from '../common/constant/projectMst'\r\nimport { executeGetProjectDetail } from '../../dataAccess/webApi/dao/projectsDao'\r\n\r\ninterface UrlParams {\r\n interviewNo: string\r\n}\r\n\r\ntype InterviewDetail = {\r\n cancelLimit?: number\r\n cancelLimitTime?: Date\r\n cancelNote?: string\r\n cancelExcludeHolidayFlag?: string\r\n cancelLimitHolidayOption?: string\r\n immediatelyReservationFlag?: string\r\n isInterviewDocsFlagOn: boolean\r\n} & Interview\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { interviewNo } = useParams()\r\n const { addOperationLog, attachAccessData } = useOperationLog()\r\n\r\n const [interviewDetail, setInterviewDetail] = useState()\r\n\r\n // 初期表示\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const result = await getInterviewDetail(interviewNo)\r\n attachAccessData({ accessData: [{ userIdRegFlag: yesNo.yes, childId: result.childId, interviewNo }] })\r\n\r\n setInterviewDetail(result)\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // キャンセルボタン押下\r\n const goCancel = useCallback(\r\n (status: string) => {\r\n if (status === interviewStatus.wait) {\r\n addOperationLog({ operationId: OperationId.OP_00000032 })\r\n } else {\r\n addOperationLog({ operationId: OperationId.OP_00000031 })\r\n }\r\n\r\n history.push(interviewReservationDeleteUrl.url(interviewNo))\r\n },\r\n [history, interviewNo, addOperationLog]\r\n )\r\n\r\n // 変更ボタン押下\r\n const goChange = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000035 })\r\n\r\n history.push(interviewReservationSelectionUpdateUrl.url(interviewNo))\r\n }, [history, interviewNo, addOperationLog])\r\n\r\n return {\r\n interviewDetail,\r\n goCancel,\r\n goChange\r\n }\r\n}\r\n\r\n/**\r\n * 面談情報取得\r\n */\r\nconst getInterviewDetail = async (interviewNo: string) => {\r\n const interview = await getInterview(interviewNo)\r\n const facility = await getFacility(interview.facilityId, interview.interviewDate)\r\n\r\n const projectMstData: GetProjectDetailDto = (await executeGetProjectDetail(facility.projectId, toApiYmd(Date.now()))).result\r\n\r\n return nullPropsToUndefined({\r\n ...interview,\r\n cancelLimit: facility.interviewCancelLimit,\r\n cancelLimitTime: fromApiHms(facility.interviewCancelLimitTime),\r\n cancelNote: facility.interviewCancelNote,\r\n cancelExcludeHolidayFlag: facility.interviewCancelExcludeHolidayFlag,\r\n cancelLimitHolidayOption: facility.interviewCancelLimitHolidayOption,\r\n immediatelyReservationFlag: facility.interviewImmediatelyReservationFlag,\r\n isInterviewDocsFlagOn: projectMstData.interviewDocFlag === TEMP_FILE_CONDITION.USED_BOTH,\r\n })\r\n}\r\n","// 予約機能で共通する面談予約に関する表示部分を定義\r\n// 情報照会、変更内容確認で共有\r\n//\r\n\r\nimport { Stack } from '@mui/material'\r\nimport { ReactNode } from 'react'\r\nimport {\r\n getGenderLabel,\r\n getInterviewStatusLabel,\r\n getYesNoLabel,\r\n getPermitFlagLabel,\r\n} from '../../../../containers/common/codeMaster'\r\nimport { interviewStatus, permitFlag } from '../../../../containers/common/constant/classification'\r\nimport { translate } from '../../../../i18n'\r\nimport { ElapsedMillisecond, formatHmtoHmOver, formatYmd, formatYmdWeek, toApiHms } from '../../../../utils/dateUtil'\r\nimport { formatAddress } from '../../../../utils/itemFormatUtil'\r\nimport { LabelGItemBase, RowSpacerGItem, ValueGItemBase } from '../grids'\r\n\r\ninterface Interview {\r\n facilityName: string\r\n\r\n parentName: string\r\n parentKana: string\r\n tel: string\r\n email: string\r\n\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber?: string\r\n residenceCategory: string\r\n residenceCategoryName: string\r\n relationship?: string\r\n\r\n childName: string\r\n childKana: string\r\n childBirthday: Date | ElapsedMillisecond\r\n childGender: string\r\n childMedicalHistoryFlag: string\r\n childMedicalHistory?: string\r\n childAllergyFlag: string\r\n childAllergy?: string\r\n hasTempDoc?: string\r\n isInterviewDocsFlagOn: boolean\r\n\r\n maternalHandbookNo?: string\r\n note?: string\r\n facilityNumber?: string\r\n}\r\n\r\ninterface InterviewReference extends Interview {\r\n interviewDate?: Date | ElapsedMillisecond\r\n interviewStartDatetime?: Date | ElapsedMillisecond\r\n interviewEndDatetime?: Date | ElapsedMillisecond\r\n status: string\r\n reservationDatetime: Date | ElapsedMillisecond\r\n reservationChangeDatetime?: Date | ElapsedMillisecond\r\n reservationCancelDatetime?: Date | ElapsedMillisecond\r\n permitFlag: string\r\n}\r\n\r\n/** 情報照会時以外で必要なプロパティ */\r\ninterface Confirmation {\r\n interview: Interview\r\n displayType?: never\r\n}\r\n/** 情報照会時に必要なプロパティ */\r\ninterface Reference {\r\n interview: InterviewReference\r\n displayType: 'reference'\r\n}\r\n/** 削除時に必要なプロパティ */\r\ninterface Delete {\r\n interview: InterviewReference\r\n displayType: 'delete'\r\n}\r\n\r\ntype InterviewDetailContentProps = Confirmation | Reference | Delete\r\n\r\nconst LabelGItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueGItem = (props: { children: ReactNode }) => {props.children}\r\n\r\n/** 予約機能の面談予約情報コンテンツ部分 */\r\nexport const InterviewDetailContent = (props: InterviewDetailContentProps) => {\r\n const isShownStatusItem = props.displayType === 'delete' || props.displayType === 'reference'\r\n const isShownReservationDatetimeItem = props.displayType === 'reference'\r\n\r\n return (\r\n <>\r\n {translate('system.interviewDetailContent.label.facilityName')}\r\n {props.interview.facilityName}\r\n {isShownStatusItem && (\r\n <>\r\n {translate('system.interviewDetailContent.label.interviewDatetime')}\r\n \r\n {props.interview.status !== interviewStatus.notFixed ? (\r\n \r\n
    {props.interview.interviewDate != null && formatYmdWeek(props.interview.interviewDate)}
    \r\n {props.interview.interviewDate != null &&\r\n props.interview.interviewStartDatetime != null &&\r\n props.interview.interviewEndDatetime != null && (\r\n
    \r\n {formatHmtoHmOver(\r\n { from: props.interview.interviewStartDatetime, to: props.interview.interviewEndDatetime },\r\n props.interview.interviewDate\r\n )}\r\n
    \r\n )}\r\n
    \r\n ) : (\r\n translate('system.interviewDetailContent.text.notFixed')\r\n )}\r\n
    \r\n {translate('system.interviewDetailContent.label.status')}\r\n {props.interview.permitFlag === permitFlag.shelved ? (\r\n {getPermitFlagLabel(props.interview.permitFlag)}\r\n ) : (\r\n {getInterviewStatusLabel(props.interview.status)}\r\n )}\r\n \r\n )}\r\n \r\n\r\n {translate('system.interviewDetailContent.label.userName')}\r\n {props.interview.parentName}\r\n {translate('system.interviewDetailContent.label.userNameKana')}\r\n {props.interview.parentKana}\r\n {translate('system.interviewDetailContent.label.tel')}\r\n {props.interview.tel}\r\n {translate('system.interviewDetailContent.label.email')}\r\n {props.interview.email}\r\n {translate('system.interviewDetailContent.label.postalCode')}\r\n {props.interview.postalCode}\r\n {translate('system.interviewDetailContent.label.address')}\r\n \r\n {formatAddress(props.interview.address1, props.interview.address2, props.interview.buildingNameRoomNumber)}\r\n \r\n {translate('system.interviewDetailContent.label.residenceCategory')}\r\n {props.interview.residenceCategoryName}\r\n {translate('system.interviewDetailContent.label.relationship')}\r\n {props.interview.relationship}\r\n \r\n\r\n {translate('system.interviewDetailContent.label.childName')}\r\n {props.interview.childName}\r\n {translate('system.interviewDetailContent.label.childNameKana')}\r\n {props.interview.childKana}\r\n {translate('system.interviewDetailContent.label.birthday')}\r\n {formatYmd(props.interview.childBirthday)}\r\n {translate('system.interviewDetailContent.label.gender')}\r\n {getGenderLabel(props.interview.childGender)}\r\n {translate('system.interviewDetailContent.label.allergy')}\r\n \r\n {[getYesNoLabel(props.interview.childAllergyFlag), props.interview.childAllergy].filter((v) => v).join('\\n')}\r\n \r\n {translate('system.interviewDetailContent.label.medicalHistory')}\r\n \r\n {[getYesNoLabel(props.interview.childMedicalHistoryFlag), props.interview.childMedicalHistory]\r\n .filter((v) => v)\r\n .join('\\n')}\r\n \r\n {/*TODO:HOIKU-178にて暫定的に母子健康手帳の項目を非表示&登録されないようにする\r\n {translate('system.interviewDetailContent.label.maternalHandbookNo')}\r\n {props.interview.maternalHandbookNo}\r\n */}\r\n {props.interview.isInterviewDocsFlagOn &&\r\n <>\r\n {translate('system.interviewDetailContent.label.tempDoc')}\r\n {getYesNoLabel(props.interview.hasTempDoc)}\r\n \r\n }\r\n {translate('system.interviewDetailContent.label.note')}\r\n {props.interview.note}\r\n {translate('system.interviewDetailContent.label.facilityNumber')}\r\n {props.interview.facilityNumber}\r\n {isShownReservationDatetimeItem && (\r\n <>\r\n \r\n {translate('system.interviewDetailContent.label.reservationDatetime')}\r\n \r\n \r\n
    {formatYmdWeek(props.interview.reservationDatetime)}
    \r\n
    {toApiHms(props.interview.reservationDatetime)}
    \r\n
    \r\n
    \r\n {props.interview.reservationChangeDatetime != null && (\r\n <>\r\n {translate('system.interviewDetailContent.label.reservationChangeDatetime')}\r\n \r\n \r\n
    {formatYmdWeek(props.interview.reservationChangeDatetime)}
    \r\n
    {toApiHms(props.interview.reservationChangeDatetime)}
    \r\n
    \r\n
    \r\n \r\n )}\r\n {props.interview.status === interviewStatus.canceled && props.interview.reservationCancelDatetime != null && (\r\n <>\r\n {translate('system.interviewDetailContent.label.reservationCancelDatetime')}\r\n \r\n \r\n
    {formatYmdWeek(props.interview.reservationCancelDatetime)}
    \r\n
    {toApiHms(props.interview.reservationCancelDatetime)}
    \r\n
    \r\n
    \r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { useAction } from '../../containers/interviewReservationDetail/interviewReservationDetailService'\r\nimport { translate } from '../../i18n'\r\nimport { AlertCard } from '../components/common/alertCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { InterviewDetailContent } from '../components/common/reservationDetail/interviewDetailContent'\r\nimport { interviewStatus } from '../../containers/common/constant/classification'\r\nimport { getCancelLimitHolidayOptionLabel } from '../../containers/common/codeMaster'\r\nimport { formatCancelLimit } from '../../utils/itemFormatUtil'\r\n\r\nconst AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const InterviewReservationDetail = () => {\r\n const {\r\n interviewDetail,\r\n goCancel,\r\n goChange\r\n } = useAction()\r\n\r\n if (interviewDetail == null) {\r\n // 面談情報なし\r\n return null\r\n }\r\n\r\n // キャンセルについての注意文言設定\r\n const { cancelLimit, cancelLimitTime, cancelNote, cancelExcludeHolidayFlag, cancelLimitHolidayOption } = interviewDetail\r\n const alertCardConents = []\r\n if (cancelLimit != null && cancelLimitTime != null) {\r\n alertCardConents.push(\r\n
    \r\n {translate('interviewReservationDetail.card.cancelLimit')}:{formatCancelLimit(cancelLimit, cancelLimitTime, cancelExcludeHolidayFlag, true)}\r\n
    \r\n )\r\n if (cancelLimitHolidayOption) {\r\n alertCardConents.push(\r\n
    ※{getCancelLimitHolidayOptionLabel(cancelLimitHolidayOption)}
    \r\n )\r\n }\r\n }\r\n if (cancelNote) {\r\n if (alertCardConents.length) {\r\n alertCardConents.push(
     
    )\r\n }\r\n alertCardConents.push({cancelNote})\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {\r\n interviewDetail.canCancel &&\r\n interviewDetail.status !== interviewStatus.notFixed &&\r\n interviewDetail.status !== interviewStatus.interviewed &&\r\n interviewDetail.status !== interviewStatus.canceled &&\r\n interviewDetail.status !== interviewStatus.canceledWait &&\r\n !!alertCardConents.length &&\r\n {alertCardConents.map((v) => v)}\r\n }\r\n\r\n {\r\n !interviewDetail.canCancel &&\r\n !interviewDetail.canUpdate &&\r\n ・{translate('interviewReservationDetail.card.inquiry')}\r\n }\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n interviewDetail.status === interviewStatus.wait\r\n ? (interviewDetail.canCancelWait && (\r\n goCancel(interviewDetail.status)}>\r\n {translate('interviewReservationDetail.button.waitCancel')}\r\n \r\n ))\r\n : (interviewDetail.canCancel && (\r\n goCancel(interviewDetail.status)}>\r\n {translate('interviewReservationDetail.button.reservationCancel')}\r\n \r\n ))\r\n }\r\n {interviewDetail.canUpdate && (\r\n \r\n {translate('system.button.change')}\r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n","import { Box, Grid, styled } from '@mui/material'\nimport { ReactNode } from 'react'\nimport { OperationLogInput } from '../../../../containers/common/operationLog'\nimport { GItem, RightGItem } from '../grids'\nimport { Link } from '../link'\n\ninterface UnitTitleProps {\n title: ReactNode\n linkTo?: string\n operationLog?: OperationLogInput\n hideLink?: boolean\n}\n\nconst Root = styled(Box)(({ theme }) => ({\n fontSize: theme.typography.font.sizeL1,\n letterSpacing: '0.2em',\n color: theme.palette.secondary.main,\n borderBottom: `1px solid ${theme.palette.secondary.main}`,\n}))\n\nexport const UnitTitle = (props: UnitTitleProps) => {\n return(\n <>\n \n \n {props.title}\n \n {!props.hideLink && \n 編集\n }\n \n \n \n )\n}\n","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildAllergyUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAME = 'allergy'\n\ninterface ChildAllergyUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildAllergyUnit = (props: ChildAllergyUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_NAME)\n if (!targetCategory) return null\n \n return (\n <>\n \n \n {getYesNoText(targetCategory, child.allergyFlag)}\n \n \n )\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildDiseaseUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAME = 'disease'\n\ninterface ChildDiseaseUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildDiseaseUnit = (props: ChildDiseaseUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_NAME)\n if (!targetCategory) return null\n \n return (\n <>\n \n \n {getYesNoText(targetCategory, child.diseaseFlag)}\n \n \n )\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildEatingUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAMES = ['howToNurse', 'howToNurseNote', 'babyFoodStartEnd', 'babyFoodStage','babyFoodShape','babyFoodRice','milk', 'favoriteFood', 'hatedFood', 'allergyFreeFood', 'eatingNote', 'eatingStyle']\n\ninterface ChildEatingUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildEatingUnit = (props: ChildEatingUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_NAMES.includes(value.category))\n if (targetCategories == null || targetCategories.length === 0) return null\n \n const childEating = child?.eating\n const hasEatingStyleData = childEating?.eatingStyle?.length\n \n const eatingFlag = hasEatingData(targetCategories, childEating?.eating) || hasEatingStyleData\n return (\n <>\n \n \n { eatingFlag ? '登録あり' : '登録なし'}\n \n \n )\n}\n\nconst hasEatingData = (targetCategories: GetCategoryMstDto[], eating: any) => {\n if (eating == null) return false\n \n const targetCategoryNames = targetCategories.map(e => e.category)\n return targetCategoryNames.some(categoryName => eating[categoryName] != null && eating[categoryName] !== \"\")\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildFebrileSeizureUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAME = 'febrileSeizure'\n\ninterface ChildFebrileSeizureUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildFebrileSeizureUnit = (props: ChildFebrileSeizureUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_NAME)\n if (!targetCategory) return null\n \n return (\n <>\n \n \n {getYesNoText(targetCategory, child.febrileSeizureFlag)}\n \n \n )\n}","import {\n executeGet,\n executePut,\n} from '../common/apiCaller'\nimport {\n GetChildrenHospitalAdmissionDto,\n PutChildrenHospitalAdmissionInputDto,\n} from '../dto/childrenHospitalAdmissionDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-hospital-admission'\n\nexport const executeGetChildrenHospitalAdmission = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\nexport const executePutChildrenHospitalAdmission = (id: string, input: PutChildrenHospitalAdmissionInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { executeGetChildrenHospitalAdmission } from '../../../../dataAccess/webApi/dao/childrenHospitalAdmissionDao'\nimport { GetChildrenHospitalAdmissionDto } from '../../../../dataAccess/webApi/dto/childrenHospitalAdmissionDto'\nimport { memberModifyChildHospitalAdmissionUrl } from '../../../../containers/common/constant/appUrl'\n\nconst HOSPITAL_ADMISSION = 'hospitalAdmission'\nconst SUB_CATEGORIES = ['hospitalAdmission.admissionAge', 'hospitalAdmission.reason']\nexport const CATEGORY_NAMES = [HOSPITAL_ADMISSION, ...SUB_CATEGORIES]\n\ninterface ChildHospitalAdmissionUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean \n}\n\nexport const ChildHospitalAdmissionUnit = (props: ChildHospitalAdmissionUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n const MAX_RECORD = 2\n\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const hospitalAdmissionCategory = categoryMst.find((value) => value.category === HOSPITAL_ADMISSION)\n const subCategories = categoryMst.filter((mst) => SUB_CATEGORIES.includes(mst.category))\n \n if (!hospitalAdmissionCategory || subCategories.length === 0) return null\n \n const subCategoryMap: {[key:string]: GetCategoryMstDto} = {}\n subCategories?.forEach(e => subCategoryMap[e.category.substring(HOSPITAL_ADMISSION.length + 1)] = e)\n \n const recordCnt = child.hospitalAdmission?.length ?? 0\n return (\n <>\n \n \n { recordCnt === 0 ? (\n {getYesNoText(hospitalAdmissionCategory, undefined)}\n ) : (\n child.hospitalAdmission?.slice(0, MAX_RECORD).map((hospitalAdmission, i) => {\n return ()\n })\n )}\n { recordCnt > MAX_RECORD && ... }\n \n \n )\n}\n\ninterface DataRowProps {\n categoryMap: {[key:string]: GetCategoryMstDto}\n hospitalAdmission: GetChildrenHospitalAdmissionDto\n}\n\nconst DataRow = ({ categoryMap, hospitalAdmission }: DataRowProps) => {\n return (\n <>\n {categoryMap.admissionAge && {`${hospitalAdmission.admissionAge}歳${hospitalAdmission.admissionMonth}ヶ月`}}\n {categoryMap.reason && {hospitalAdmission.reason}}\n \n )\n}\n\n/**\n * 入院情報を取得\n */\nexport const resetHospitalAdmission = async (id: string, facilityId: string, baseObj: any) => {\n const resp = await executeGetChildrenHospitalAdmission(id, facilityId)\n baseObj.hospitalAdmission = resp.result\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildMedicalHistoryUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAME = 'medicalHistory'\n\ninterface ChildMedicalHistoryUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildMedicalHistoryUnit = (props: ChildMedicalHistoryUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_NAME)\n if (!targetCategory) return null\n \n return (\n <>\n \n \n {getYesNoText(targetCategory, child.medicalHistoryFlag)}\n \n \n )\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildPredispositionUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAMES = ['predisposition']\n\ninterface ChildPredispositionUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildPredispositionUnit = (props: ChildPredispositionUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_NAMES.includes(value.category))\n if (targetCategories == null || targetCategories.length === 0) return null\n \n const childPredisposition = child?.predisposition\n const predispositionFlag = childPredisposition?.length\n return (\n <>\n \n \n { predispositionFlag ? '登録あり' : '登録なし'}\n \n \n )\n}\n","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildSymptomUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAME = 'symptom'\n\ninterface ChildSymptomUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildSymptomUnit = (props: ChildSymptomUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_NAME)\n if (!targetCategory) return null\n \n return (\n <>\n \n \n {getYesNoText(targetCategory, child.symptomFlag)}\n \n \n )\n}","import { Grid } from '@mui/material'\n// import React, { ReactNode } from 'react'\nimport { Child } from '../../../../containers/common/child'\n// import { GItem, LabelGItemBase, RightGItem, ValueGItemBase } from '../grids'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildVaccinationUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAME = 'vaccination'\n\ninterface ChildVaccinationUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildVaccinationUnit = (props: ChildVaccinationUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_NAME)\n if (!targetCategory) return null\n \n return (\n <>\n \n \n {getYesNoText(targetCategory, child.vaccinationFlag)}\n \n \n )\n}","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm, FieldPath } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { getNow, toApiYmd } from '../../utils/dateUtil'\r\nimport { datePropsToNumber, undefinedPropsToOptional } from '../../utils/objectUtil'\r\nimport { setFormValueClearError } from '../../utils/reactUtil'\r\nimport { NullPropsToUndefinedType, castNonNullable } from '../../utils/typeUtil'\r\nimport { translate } from '../../i18n'\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { GetResidenceCategoryMstDto } from '../../dataAccess/webApi/dto/residenceCategoryMstDto'\r\nimport {\r\n ADDITIONALS,\r\n getChild,\r\n ChildrenChoice,\r\n getChildrenChoices,\r\n getInterviewedChildrenChoices,\r\n Child,\r\n InterviewedChildrenChoice\r\n} from '../common/child'\r\nimport { getFacility } from '../common/facility'\r\nimport { getResidenceCategoriesAndMstData } from '../common/residenceCategoryMst'\r\nimport { getInterviewStatusLabel } from '../common/codeMaster'\r\nimport { interviewReservationConfirmationUrl } from '../common/constant/appUrl'\r\nimport { Flag, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport {\r\n interviewStatus,\r\n permitFlag,\r\n availabilityOfApplication,\r\n interviewAcceptMethod,\r\n interviewCrossManagementFlag\r\n} from '../common/constant/classification'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getAddressStringByPostalCode } from '../common/location'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n selectInterviewReserveEntry,\r\n setInterviewReserve,\r\n setInterviewReserveUpdateDatetime,\r\n} from '../common/store/slices/interviewReserve'\r\nimport { getUser } from '../common/user'\r\nimport { DocType, TempFile, getInterview, setStringifyNamesChildInfoList } from '../common/interview'\r\nimport { promiseAllConcurrency } from '../../utils/promiseUtil'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { getCategories, getCategorySpecifyMasters, SpecifyMasterType } from '../common/category'\r\nimport { executeGetProjects } from '../../dataAccess/webApi/dao/projectsDao'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { CATEGORY_NAME as ALLERGY } from '../../views/components/common/member/childAllergyUnit'\r\nimport { CATEGORY_NAME as DISEASE } from '../../views/components/common/member/childDiseaseUnit'\r\nimport { CATEGORY_NAMES as EATING_KEYS } from '../../views/components/common/member/childEatingUnit'\r\nimport { CATEGORY_NAME as FEBRILE_SEIZURE } from '../../views/components/common/member/childFebrileSeizureUnit'\r\nimport { CATEGORY_NAMES as HOSPITAL_ADMISSION_KEYS } from '../../views/components/common/member/childHospitalAdmissionUnit'\r\nimport { CATEGORY_NAME as MEDICAL_HISTORY } from '../../views/components/common/member/childMedicalHistoryUnit'\r\nimport { CATEGORY_NAMES as PREDISPOSITION_KEYS } from '../../views/components/common/member/childPredispositionUnit'\r\nimport { CATEGORY_NAME as SYMPTOM } from '../../views/components/common/member/childSymptomUnit'\r\nimport { CATEGORY_NAME as VACCINATION } from '../../views/components/common/member/childVaccinationUnit'\r\nimport { executeGetProjectDetail } from '../../dataAccess/webApi/dao/projectsDao'\r\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\r\n\r\n/** 最大並列実行数 */\r\nconst MAX_WORKER_COUNT = 4\r\n\r\nconst DEFAULT_FACILITY_ID = '0' // 事業共通お子様情報はfacility_id = 0\r\nconst ALLERGY_PROJECT_ID = '1' // アレルギー項目は全事業共通のため事業ID:1\r\nconst ADDITIONAL_TABLES = [ADDITIONALS.HOSPITAL_ADMISSION, ADDITIONALS.EATING, ADDITIONALS.PREDISPOSITION]\r\n\r\ninterface UrlParams {\r\n facilityId: string\r\n childId: string\r\n}\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n}\r\n\r\ninterface PageState {\r\n facility?: NullPropsToUndefinedType\r\n uninterviewedChilds: ChildrenChoice[]\r\n childs: ChildrenChoice[]\r\n interviewedChildsAndStatus: ChildrenChoice[]\r\n}\r\n\r\nexport interface Inputs {\r\n parentName: string\r\n parentKana: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber: string\r\n residenceCategory: string\r\n relationship: string\r\n children: child[]\r\n}\r\n\r\nexport type interviewReservationInputKey = FieldPath\r\n\r\nexport interface child {\r\n childId: string\r\n childName: string\r\n childKana: string\r\n childGender: string\r\n childBirthday: Date\r\n childMedicalHistoryFlag: string\r\n childMedicalHistory: string\r\n childAllergyFlag: string\r\n childAllergy: string\r\n maternalHandbookNo: string\r\n note: string\r\n facilityNumber: string\r\n childUpdateDatetime: string\r\n childInterviewPermitCount: number\r\n availabilityOfApplication: string\r\n childOrig: Child\r\n tempFile?: TempFile\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { facilityId } = useParams()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const isKeep = !!history.location.state?.isKeep\r\n const reserveEntry = useSelector(selectInterviewReserveEntry)\r\n const childBirthdayLimitDate = getNow() // 誕生日入力の上限値\r\n \r\n const formMethods = useForm({\r\n defaultValues: {\r\n ...(isKeep && reserveEntry && {\r\n ...reserveEntry,\r\n children: reserveEntry.children?.map(child => ({\r\n ...child,\r\n // ミリ秒から Date オブジェクトに変換\r\n childBirthday: new Date(child.childBirthday),\r\n })),\r\n }),\r\n },\r\n })\r\n const watchAllFields= formMethods.watch()\r\n const [userInterviewPermitCount, setUserInterviewPermitCount] = useState(0)\r\n const [childInterviewPermitCount, setChildInterviewPermitCount] = useState(0)\r\n const [isOpenInterviewChildSelect, setIsOpenInterviewChildSelect] = useState(false)\r\n const [isSubmitDialogOpen, setIsSubmitDialogOpen] = useState(false)\r\n const [state, setState] = useState({ uninterviewedChilds: [], childs: [], interviewedChildsAndStatus: [] })\r\n const [childId, setChildId] = useState('')\r\n const [residenceCategoryMst, setResidenceCategoryMst] = useState()\r\n const [residenceCategories, setResidenceCategories] = useState<{ value: string; label: string }[]>([])\r\n const [isDisabledAddress1, setIsDisabledAddress1] = useState(true)\r\n /** カテゴリーマスタ */\r\n const [category, setCategory] = useState()\r\n const [allergyCategory, setAllergyCategory] = useState()\r\n const [diseaseCategory, setDiseaseCategory] = useState()\r\n const [medicalHistoryCategory, setMedicalHistoryCategory] = useState()\r\n const [symptomCategory, setSymptomCategory] = useState()\r\n const [vaccinationCategory, setVaccinationCategory] = useState()\r\n \r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n const [projectMst, setprojectMst] = useState()\r\n \r\n let isDisabledResidenceCategory = false\r\n if ((isKeep && reserveEntry?.isDisabledResidenceCategory) || userInterviewPermitCount > 0) {\r\n isDisabledResidenceCategory = true\r\n }\r\n let isDisabledBirthday = false\r\n if (childInterviewPermitCount > 0) {\r\n isDisabledBirthday = true\r\n }\r\n \r\n // 初期表示\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes, childId }] })\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n // 在住種別を取得&表示\r\n const residenceCategoriesAndMstData = await getResidenceCategoriesAndMstData()\r\n setResidenceCategoryMst(residenceCategoriesAndMstData.mstData)\r\n setResidenceCategories(residenceCategoriesAndMstData.categories)\r\n const facility = await getFacility(facilityId)\r\n setState({...state, facility})\r\n const projectMstData: GetProjectDetailDto = await getProjectMstData(facility.projectId)\r\n setprojectMst(projectMstData)\r\n \r\n \r\n // 事業マスタ取得\r\n const projectMstResp = await executeGetProjects({ projectId: String(facility.projectId) })\r\n const isAnnualUpdate = projectMstResp.result.length ? projectMstResp.result[0].annualUpdateFlag === yesNo.yes : false\r\n \r\n if (!reserveEntry || !reserveEntry.interviewNo) {\r\n // 新規申込\r\n if (facility.interviewDailyAcceptFlag === yesNo.yes && facility.interviewAcceptMethod === interviewAcceptMethod.interviewSlots) {\r\n // 面談申込受付方法:日時の受付を行う\r\n // 面談受付設定:面談枠で受け付ける\r\n if (!isKeep && reserveEntry && reserveEntry.childIds) {\r\n // お子さまの情報を取得\r\n const facilityWithChilds = await getFacilityWithChilds(facilityId, facility, isAnnualUpdate)\r\n setState({...state, ...facilityWithChilds, facility})\r\n await initialize(reserveEntry.childIds, facility)\r\n }\r\n } else {\r\n // 面談申込受付方法:日時の受付を行わない\r\n // 面談受付設定:未設定、申込のみ\r\n if (!(isKeep && reserveEntry)) {\r\n // お子さま選択ダイアログの情報を取得&表示\r\n const facilityWithChilds = await getFacilityWithChilds(facilityId, facility, isAnnualUpdate)\r\n setState({...state, ...facilityWithChilds, facility})\r\n setIsOpenInterviewChildSelect(true)\r\n }\r\n }\r\n } else {\r\n // 予約変更\r\n if (!isKeep && reserveEntry && reserveEntry.childIds) {\r\n // お子さまの情報を取得\r\n const facilityWithChilds = await getFacilityWithChilds(facilityId, facility, isAnnualUpdate)\r\n setState({...state, ...facilityWithChilds, facility})\r\n await initializeUpdate(reserveEntry.interviewNo, reserveEntry.childIds)\r\n }\r\n }\r\n // 項目マスタ取得 \r\n const categoryMsts = await getCategoryMsts(facility.projectId)\r\n const category = categoryMsts.category\r\n setCategory(category)\r\n setAllergyCategory(categoryMsts.allergyCategory)\r\n setDiseaseCategory(categoryMsts.diseaseCategory)\r\n setMedicalHistoryCategory(categoryMsts.medicalHistoryCategory)\r\n setSymptomCategory(categoryMsts.symptomCategory)\r\n setVaccinationCategory(categoryMsts.vaccinationCategory)\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n \r\n const setResidenceCategory = useCallback((address1: string) => {\r\n if (\r\n !isDisabledResidenceCategory \r\n && residenceCategoryMst?.triggerKeywordSetInitialValue\r\n && address1.includes(residenceCategoryMst.triggerKeywordSetInitialValue)\r\n ) {\r\n setFormValueClearError(formMethods, 'residenceCategory', residenceCategoryMst.initialValue)\r\n }\r\n }, [isDisabledResidenceCategory, residenceCategoryMst, formMethods])\r\n \r\n useEffect(() => {\r\n const subscription = formMethods.watch((values, { name, type }) => {\r\n if (name === 'address1' && type === 'change') {\r\n if (values.address1) {\r\n setResidenceCategory(values.address1)\r\n }\r\n }\r\n })\r\n return () => subscription.unsubscribe()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [setResidenceCategory])\r\n \r\n // 初期設定\r\n const initialize = useCallback(\r\n async (childIds: string[], facility?: NullPropsToUndefinedType) => {\r\n const {\r\n initialInputs,\r\n userInterviewPermitCount,\r\n userUpdateDatetime,\r\n } = await getInitialInputs(childIds, facility)\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...initialInputs,\r\n })\r\n dispatch(setInterviewReserveUpdateDatetime({ userUpdateDatetime }))\r\n setUserInterviewPermitCount(userInterviewPermitCount)\r\n setChildInterviewPermitCount(childInterviewPermitCount)\r\n setChildId(childId)\r\n \r\n },[dispatch, errorHandle, formMethods])\r\n \r\n // 予約変更の初期設定\r\n const initializeUpdate = useCallback(\r\n async (interviewNo: string, childIds: string[]) => {\r\n const {\r\n initialInputs,\r\n userInterviewPermitCount,\r\n userUpdateDatetime,\r\n interviewUpdateDatetime,\r\n } = await getInitialInputsUpdate(interviewNo, childIds)\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...initialInputs,\r\n })\r\n\r\n dispatch(setInterviewReserveUpdateDatetime({\r\n userUpdateDatetime,\r\n interviewUpdateDatetime\r\n }))\r\n setUserInterviewPermitCount(userInterviewPermitCount)\r\n setChildInterviewPermitCount(childInterviewPermitCount)\r\n setChildId(childId)\r\n },[dispatch, errorHandle, formMethods])\r\n\r\n // 次の画面へ\r\n const goNext = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000025 })\r\n\r\n // 1人以上申込みがあるかチェック\r\n const applicationChildrenFilter = data.children.filter((child) => {\r\n return child.availabilityOfApplication === availabilityOfApplication.apply\r\n })\r\n // 申込みが0人の場合はエラーメッセージを表示する\r\n if (!applicationChildrenFilter.length) {\r\n for (let idx = 0; idx < data.children.length; idx++) {\r\n formMethods.setError(`children.${idx}.availabilityOfApplication`, {\r\n message: translate('interviewReservationForm.error.overOneApply'),\r\n })\r\n }\r\n return\r\n }\r\n\r\n const matchValueLabels = residenceCategories.filter((element) => {\r\n return data.residenceCategory === element.value\r\n })\r\n const residenceCategoryName = matchValueLabels[0].label\r\n\r\n const applicationChildren = data.children\r\n .map(child => ({\r\n ...child,\r\n childBirthday: child.childBirthday,\r\n // 事業マスタの施設登録方法(interviewAcceptMethod)が'1'の場合は、アレルギー・既往症項目が非表示の為nullになる\r\n // その状態を回避する為、DB必須項目に'0'を設定する\r\n childAllergyFlag: child.childAllergyFlag ?? '0',\r\n childMedicalHistoryFlag: child.childMedicalHistoryFlag ?? '0',\r\n }))\r\n .map ((child) => {\r\n return datePropsToNumber(child)\r\n })\r\n\r\n const confirmationData = {\r\n address1: data.address1,\r\n address2: data.address2,\r\n buildingNameRoomNumber: data.buildingNameRoomNumber,\r\n parentKana: data.parentKana,\r\n parentName: data.parentName,\r\n postalCode: data.postalCode,\r\n relationship: data.relationship,\r\n residenceCategory: data.residenceCategory,\r\n\r\n children: setStringifyNamesChildInfoList(applicationChildren),\r\n }\r\n \r\n dispatch(\r\n setInterviewReserve({\r\n ...confirmationData,\r\n facilityId,\r\n childIds: reserveEntry?.childIds,\r\n childId,\r\n residenceCategoryName,\r\n interviewNo: reserveEntry?.interviewNo,\r\n interviewDatetimes: reserveEntry?.interviewDatetimes,\r\n isDisabledResidenceCategory,\r\n })\r\n )\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { isKeep: true } })\r\n history.push(interviewReservationConfirmationUrl.url())\r\n },\r\n [dispatch, history, facilityId, childId, addOperationLog, residenceCategories, isDisabledResidenceCategory]\r\n )\r\n\r\n const autoCompleteAddress = useCallback(async () => {\r\n const { postalCode } = formMethods.getValues()\r\n try {\r\n const address = await getAddressStringByPostalCode(postalCode)\r\n if (address) {\r\n formMethods.setValue('address1', address)\r\n setResidenceCategory(address)\r\n setIsDisabledAddress1(true)\r\n } else {\r\n setIsDisabledAddress1(false)\r\n }\r\n } catch {\r\n // 取得できなかった場合は何もしない\r\n }\r\n }, [formMethods, setResidenceCategory])\r\n\r\n // お子さま選択ダイアログのボタン押下\r\n const onCloseInterviewChildSelect = useCallback(\r\n (isCancel: boolean, childIds?: string[]) => {\r\n dispatch(\r\n showLoading({\r\n process: \r\n errorHandle(async () => {\r\n if (isCancel || !childIds) {\r\n // 選択をキャンセルした場合\r\n setIsOpenInterviewChildSelect(false)\r\n history.goBack()\r\n } else {\r\n // お子さまを選択した場合\r\n const filteredChildIds = childIds.filter(childId => childId !== '')\r\n if (filteredChildIds.length <= 0) {\r\n return\r\n }\r\n setIsOpenInterviewChildSelect(false)\r\n await initialize(castNonNullable(filteredChildIds), state.facility)\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n\r\n },\r\n [history, initialize, state]\r\n )\r\n \r\n const closeSubmitDialog = useCallback(async () => {\r\n setIsSubmitDialogOpen(false)\r\n }, [])\r\n \r\n const openSubmitDialog = useCallback(async () => {\r\n setIsSubmitDialogOpen(true)\r\n }, [])\r\n \r\n const hasInterviewRequestNotice = !!(state.facility?.interviewRequestNotice?.length)\r\n const onSubmit = hasInterviewRequestNotice ? openSubmitDialog : goNext\r\n \r\n return {\r\n formMethods,\r\n autoCompleteAddress,\r\n onSubmit,\r\n userInterviewPermitCount,\r\n childInterviewPermitCount,\r\n childBirthdayLimitDate,\r\n isOpenInterviewChildSelect,\r\n onCloseInterviewChildSelect,\r\n isDisabledResidenceCategory,\r\n isDisabledBirthday,\r\n residenceCategories,\r\n ...state,\r\n isDisabledAddress1,\r\n watchAllFields,\r\n sysCtrl,\r\n projectMst,\r\n category,\r\n allergyCategory,\r\n diseaseCategory,\r\n medicalHistoryCategory,\r\n symptomCategory,\r\n vaccinationCategory,\r\n categoryMap,\r\n goNext,\r\n isSubmitDialogOpen,\r\n closeSubmitDialog\r\n }\r\n}\r\n\r\nconst getInitialInputs = async (childIds: string[], facility?: NullPropsToUndefinedType) => {\r\n const user = await getUser()\r\n const childs = await promiseAllConcurrency(\r\n childIds.map((childId) => async () => {\r\n return await getChild(childId, DEFAULT_FACILITY_ID, ADDITIONAL_TABLES)\r\n }),\r\n MAX_WORKER_COUNT\r\n )\r\n //TODO:一旦型定義をanyにしてしまっているので修正する\r\n const children:any[] = []\r\n childs.forEach((child:Child) => {\r\n children.push({\r\n childId: child.childId,\r\n childName: child.name,\r\n childKana: child.kana,\r\n childGender: child.gender,\r\n childBirthday: child.birthday,\r\n maternalHandbookNo: child.maternalHandbookNo,\r\n childUpdateDatetime: child.updateDatetime,\r\n childInterviewPermitCount: child.interviewPermitCount,\r\n availabilityOfApplication: yesNo.yes,\r\n note: facility?.interviewCitizenNoteEntryTemplate ?? '',\r\n childOrig: child,\r\n tempFile: {\r\n files: [],\r\n hasSubmitted: Flag.OFF,\r\n }\r\n })\r\n })\r\n return {\r\n initialInputs: undefinedPropsToOptional({\r\n parentName: user.name,\r\n parentKana: user.kana,\r\n postalCode: user.postalCode,\r\n address1: user.address1,\r\n address2: user.address2,\r\n buildingNameRoomNumber: user.buildingNameRoomNumber,\r\n residenceCategory: user.residenceCategory,\r\n relationship: user.relationship,\r\n children: children,\r\n }),\r\n userInterviewPermitCount: user.interviewPermitCount,\r\n //お子様ごとの誕生日の表示非表示に利用しているので、個別で持たせる\r\n userUpdateDatetime: user.updateDatetime,\r\n }\r\n}\r\n\r\n/**\r\n * INPUT情報初期設定(予約変更)\r\n */\r\nconst getInitialInputsUpdate = async (interviewNo: string, childIds: string[]) => {\r\n const user = await getUser()\r\n const interview = await getInterview(interviewNo)\r\n const child = await getChild(childIds[0], DEFAULT_FACILITY_ID, ADDITIONAL_TABLES)\r\n\r\n const tempFiles = createTempFiles(interview)\r\n\r\n //TODO:一旦型定義をanyにしてしまっているので修正する\r\n const tempFile: TempFile = {\r\n files: tempFiles,\r\n hasSubmitted: tempFiles.length >= 1 ? Flag.ON : Flag.OFF,\r\n }\r\n const children:any[] = []\r\n children.push({\r\n childId: child.childId,\r\n childName: child.name,\r\n childKana: child.kana,\r\n childGender: child.gender,\r\n childBirthday: child.birthday,\r\n maternalHandbookNo: child.maternalHandbookNo,\r\n childUpdateDatetime: child.updateDatetime,\r\n childInterviewPermitCount: child.interviewPermitCount,\r\n availabilityOfApplication: yesNo.yes,\r\n childMedicalHistoryFlag: interview.childMedicalHistoryFlag,\r\n childMedicalHistory: interview.childMedicalHistory,\r\n childAllergyFlag: interview.childAllergyFlag,\r\n childAllergy: interview.childAllergy,\r\n note: interview.note,\r\n facilityNumber: interview.facilityNumber,\r\n childOrig: child,\r\n tempFile: tempFile\r\n })\r\n\r\n return {\r\n initialInputs: undefinedPropsToOptional({\r\n parentName: user.name,\r\n parentKana: user.kana,\r\n postalCode: user.postalCode,\r\n address1: user.address1,\r\n address2: user.address2,\r\n buildingNameRoomNumber: user.buildingNameRoomNumber,\r\n residenceCategory: user.residenceCategory,\r\n relationship: user.relationship,\r\n children: children,\r\n }),\r\n userInterviewPermitCount: user.interviewPermitCount,\r\n //お子様ごとの誕生日の表示非表示に利用しているので、個別で持たせる\r\n userUpdateDatetime: user.updateDatetime,\r\n interviewUpdateDatetime: interview.interviewsUpdateDatetime,\r\n }\r\n}\r\n\r\nconst createTempFiles = (interview: any) =>{\r\n const tempFiles: DocType[] = [];\r\n\r\n if(interview.tempDoc1Name){\r\n tempFiles.push({\r\n fileName: interview.tempDoc1Name,\r\n tempUploadKey: interview.tempDoc1,\r\n delFlg:Flag.OFF\r\n })\r\n }\r\n if(interview.tempDoc2Name){\r\n tempFiles.push({\r\n fileName: interview.tempDoc2Name,\r\n tempUploadKey: interview.tempDoc2,\r\n delFlg:Flag.OFF\r\n })\r\n }\r\n if(interview.tempDoc3Name){\r\n tempFiles.push({\r\n fileName: interview.tempDoc3Name,\r\n tempUploadKey: interview.tempDoc3,\r\n delFlg:Flag.OFF\r\n })\r\n }\r\n if(interview.tempDoc4Name){\r\n tempFiles.push({\r\n fileName: interview.tempDoc4Name,\r\n tempUploadKey: interview.tempDoc4,\r\n delFlg:Flag.OFF\r\n })\r\n }\r\n if(interview.tempDoc5Name){\r\n tempFiles.push({\r\n fileName: interview.tempDoc5Name,\r\n tempUploadKey: interview.tempDoc5,\r\n delFlg:Flag.OFF\r\n })\r\n }\r\n\r\n return tempFiles\r\n}\r\n\r\n/**\r\n\r\n * お子さま一覧取得(お子さま選択ダイアログで使用)\r\n\r\n */\r\nasync function getFacilityWithChilds(facilityId: string, facility: any, isAnnualUpdate: boolean) {\r\n const [allChilds, interviewedChilds] = await Promise.all([\r\n getChildrenChoices(),\r\n getInterviewedChildrenChoices(facilityId, yesNo.yes),\r\n ])\r\n\r\n //面談許可時の利用許可範囲\r\n const pmInterviewCrossManagementFlag = facility?.interviewCrossManagementFlag ?? interviewCrossManagementFlag.byFacility\r\n\r\n //A761にて、キャンセル済お子様にラジオボタンを表示して再登録を可能にする対応を行いました。\r\n //本来SQLで修正をするところですが、お子様選択一覧画面に表示されるキャンセル済お子様のラベルに\r\n //「(キャンセル済)」のステータスを表示する対応が今後発生する可能性があり、その場合SQLの修正は不要になってしまうため画面での対応としました。\r\n\r\n //interviewedChilds(面談済みお子様)から状態:キャンセル済を除外する\r\n let exceptForChildsWithCanceledInterview\r\n if (isAnnualUpdate) {\r\n // 年度更新暫定対応 許可済でも再度面談申込できるように\r\n exceptForChildsWithCanceledInterview = interviewedChilds.filter((v) => v.status !== interviewStatus.canceled && v.permitFlag !== permitFlag.permitted) \r\n } else {\r\n exceptForChildsWithCanceledInterview = interviewedChilds.filter((v) => v.status !== interviewStatus.canceled) \r\n }\r\n const interviewedChildIdSet = new Set(exceptForChildsWithCanceledInterview.map(({ value }) => value))\r\n const uninterviewedChilds = allChilds.filter(({ value }) => !interviewedChildIdSet.has(value))\r\n const childs = interviewedChilds.filter((v) => v.permitFlag === permitFlag.permitted)\r\n\r\n //1つでも利用許可したら同一事業内の施設で利用可能とする場合の重複対応\r\n if (pmInterviewCrossManagementFlag === interviewCrossManagementFlag.sameBusiness) {\r\n //重複情報\r\n const valueCounts: Record = {}\r\n exceptForChildsWithCanceledInterview.forEach((item: any) => {\r\n //カウント\r\n valueCounts[item.value] = (valueCounts[item.value] || 0) + 1\r\n //自施設が含まれるか\r\n if (item.facilityId === facilityId) {\r\n valueCounts['myFacility' + item.value] = true\r\n }\r\n })\r\n\r\n //重複するvalue(お子さまID)は自施設の情報を優先する\r\n const result: InterviewedChildrenChoice[] = []\r\n const doDuplicatelist: string[] = []\r\n exceptForChildsWithCanceledInterview.forEach((item: any) => {\r\n if (valueCounts[item.value] > 1) {\r\n //重複あり\r\n if (!doDuplicatelist.includes(item.value)) {\r\n //重複未処理\r\n if (valueCounts['myFacility' + item.value] && item.facilityId === facilityId) {\r\n //自施設が含まれる場合は自施設情報を設定\r\n //(例)自:確定済、他:確定済 ⇒ 自\r\n result.push(item)\r\n doDuplicatelist.push(item.value)\r\n } else if (!valueCounts['myFacility' + item.value]) {\r\n //自施設が含まれない場合は他施設情報を設定\r\n //(例)他A:確定済、他B:確定済 ⇒ 他(A or B どちらかでOK)\r\n result.push(item)\r\n doDuplicatelist.push(item.value)\r\n }\r\n }\r\n } else {\r\n //重複なしはそのまま\r\n result.push(item)\r\n }\r\n })\r\n\r\n //重複を除いた情報に置き換える\r\n exceptForChildsWithCanceledInterview = result\r\n }\r\n\r\n const interviewedChildsAndStatus = exceptForChildsWithCanceledInterview.map((v) => {\r\n let label = v.label\r\n if (v.status) {\r\n if (pmInterviewCrossManagementFlag === interviewCrossManagementFlag.sameBusiness && v.facilityId !== facilityId) {\r\n //1つでも利用許可したら同一事業内の施設で利用可能とする\r\n label = v.label + '(' + getInterviewStatusLabel(v.status)\r\n + ':' + translate('interviewReservationForm.label.sameBusiness') + ')'\r\n } else {\r\n //上記以外(施設毎に利用許可を行う)\r\n label = v.label + '(' + getInterviewStatusLabel(v.status) + ')'\r\n }\r\n }\r\n return { value: v.value, label: label }\r\n })\r\n\r\n return {\r\n uninterviewedChilds,\r\n childs,\r\n interviewedChildsAndStatus,\r\n }\r\n}\r\n\r\nasync function getCategoryMsts(projectId: string) {\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'allergyFlag',\r\n 'allergyCauses1',\r\n 'allergySymptoms1',\r\n 'allergyTreatments1',\r\n 'allergyConcerns1',\r\n 'allergyCauses2',\r\n 'allergySymptoms2',\r\n 'allergyTreatments2',\r\n 'allergyConcerns2',\r\n 'allergyCauses3',\r\n 'allergySymptoms3',\r\n 'allergyTreatments3',\r\n 'allergyConcerns3',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n ]\r\n\r\n const [\r\n category,\r\n allergyCategory,\r\n diseaseCategory,\r\n medicalHistoryCategory,\r\n symptomCategory,\r\n vaccinationCategory,\r\n ] = await Promise.all([\r\n getCategories({projectId: projectId, categories: [...CATEGORY_KEYS, ...EATING_KEYS, FEBRILE_SEIZURE, ...HOSPITAL_ADMISSION_KEYS, ...PREDISPOSITION_KEYS]}),\r\n getCategories({projectId: ALLERGY_PROJECT_ID, categories: [ALLERGY]}),\r\n getCategorySpecifyMasters({projectId: projectId, category: DISEASE, masterType: SpecifyMasterType.DISEASE}),\r\n getCategorySpecifyMasters({projectId: projectId, category: MEDICAL_HISTORY, masterType: SpecifyMasterType.MEDICAL_HISTORY}),\r\n getCategorySpecifyMasters({projectId: projectId, category: SYMPTOM, masterType: SpecifyMasterType.SYMPTOM}),\r\n getCategorySpecifyMasters({projectId: projectId, category: VACCINATION, masterType: SpecifyMasterType.VACCINATION})\r\n ])\r\n \r\n return {\r\n category,\r\n allergyCategory,\r\n diseaseCategory,\r\n medicalHistoryCategory,\r\n symptomCategory,\r\n vaccinationCategory,\r\n }\r\n}\r\n\r\nconst getProjectMstData = async (projectId: string)=>{\r\n const projectMstData = await executeGetProjectDetail(projectId, toApiYmd(Date.now()))\r\n return projectMstData.result\r\n}","import { ChangeEvent, useCallback, useRef } from 'react'\nimport { useController, useFormContext, useFormState } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { Box, Tooltip, styled, FormHelperText } from '@mui/material'\nimport { selectSystemControl } from '../../../../containers/common/store/slices/systemControl'\nimport { Flag } from '../../../../containers/common/constant/classification'\nimport { showLoading } from '../../../../containers/common/store/slices/application'\nimport { getAuthenticatedUser } from '../../../../utils/authUtil'\nimport { formatDate, getNow } from '../../../../utils/dateUtil'\nimport { GItem } from '../../common/grids'\nimport { ButtonS } from '../../common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../../common/buttons/buttonOutlinedS'\nimport { translate } from '../../../../i18n'\nimport { PostInterviewAttachmentInputDto } from '../../../../dataAccess/webApi/dto/interviewAttachmentDto'\nimport { executePostInterviewAttachment } from '../../../../dataAccess/webApi/dao/interviewAttachmentDao'\n\nconst EXTENSION = [\n '.jpeg',\n '.jpg',\n '.pdf',\n '.png',\n] as const;\n\nconst VALID_FILE = {\n MAX_NAME_LENGTH: 100,\n MAX_MEGA_BYTE_SIZE: 10,\n EXTENSION: EXTENSION,\n} as const\n\n/**\n * 一時アップロードkey取得\n * @param fileName ファイル名\n * @param loginUserId ログインユーザID\n * @retunr 一時アップロードkey\n */\nconst getTempUploadKey = (\n fileName: string,\n loginUserId: string,\n userId: string\n) => {\n const currentDatetime = formatDate(getNow(), 'yyyyMMddHHmmssSSS')\n return `work/${loginUserId}/${userId}/interviewDoc/${currentDatetime}/${fileName}`\n}\n\nconst UrlTextField = styled(Box)({\n border: '1px solid',\n fontSize: '1rem',\n height: '28px',\n alignItems: 'center',\n display: 'flex',\n paddingLeft: '0.25rem',\n paddingRight: '0.25rem',\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n fontWeight: 'bold'\n});\n\nconst FileSelectArea = styled('label')({\n height: '30px',\n width: '100px',\n fontWeight: '700',\n display: 'flex',\n alignItems: 'center',\n borderRadius: 0,\n '& input': {\n display: 'none',\n },\n})\n\nconst extentionStr = VALID_FILE.EXTENSION.join(',')\n\n\ninterface TempFileUploadFieldProps {\n name: string\n // 登録済みファイル情報\n registeredFileKey: string | null,\n}\n\nexport const TempFileUploadField = (props: TempFileUploadFieldProps) => {\n const { name, registeredFileKey } = props\n const methods = useFormContext()\n const dispatch = useDispatch()\n const backetName = useSelector(selectSystemControl).s3BucketNameCitizenUserInterviewFile\n const fileInputRef = useRef(null);\n\n const {\n field: { onChange, value },\n } = useController({\n name: props.name,\n defaultValue: { fileName: null, delFlg: Flag.OFF, tempUploadKey: null },\n control: methods.control\n })\n const { errors } = useFormState({ control: methods.control });\n const errorMessage = () => {\n let preObj: any = errors\n props.name.split(\".\").forEach((currentWord: string) => {\n if (!preObj) {\n return\n }\n preObj = preObj[currentWord]\n })\n\n return preObj?.message;\n }\n\n /**\n * ファイルアップロード\n * @param fileInfo アップロードするファイル情報\n */\n const uploadFile = useCallback(\n async (fileInfo: File) => {\n dispatch(\n showLoading({\n process: async () => {\n try {\n const loginUser: any = await getAuthenticatedUser()\n const loginUserId = loginUser.attributes.sub\n\n const key = getTempUploadKey(fileInfo.name, loginUserId, loginUserId)\n\n // 署名付きURLの取得\n const inputs = {\n fileName: fileInfo.name,\n key: key\n } as PostInterviewAttachmentInputDto\n const getUrl = await executePostInterviewAttachment(inputs)\n const url = getUrl.result.url\n if (!url) return\n\n // work配下に一時URLでアップロード\n const response = await fetch(url, {\n method: 'PUT',\n body: fileInfo,\n });\n\n if (!response.ok) {\n throw new Error('Upload failed')\n }\n\n onChange({ fileName: fileInfo.name, delFlg: Flag.OFF, tempUploadKey: key })\n } catch (err) {\n methods.setError(\n name,\n {\n message: translate(\"interviewReservationForm.error.tempFile.failUpload.fail\")\n },\n {\n shouldFocus: true\n }\n )\n }\n },\n isHiddenMain: false,\n })\n );\n },\n [backetName, methods, name, onChange]\n )\n\n /**\n * ファイル選択処理\n * @param ChangeEvent\n */\n const handleSelectFile = useCallback(\n async (event: ChangeEvent) => {\n methods.clearErrors(name)\n\n try {\n // ファイル情報\n const fileInfo = event.target?.files?.[0]\n // 同じファイルを選択してもchangeイベントをトリガーさせる為valueを空にする\n event.target.value = ''\n if (fileInfo != null) {\n // ファイル名の文字長チェック\n if (fileInfo.name.length > VALID_FILE.MAX_NAME_LENGTH) {\n methods.setError(\n name,\n {\n message: translate(\n \"interviewReservationForm.error.tempFile.failUpload.reason.name\",\n VALID_FILE.MAX_NAME_LENGTH.toString()\n )\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイルサイズチェック\n if (fileInfo.size > VALID_FILE.MAX_MEGA_BYTE_SIZE * 1000000) {\n methods.setError(\n name,\n {\n message: translate(\n \"interviewReservationForm.error.tempFile.failUpload.reason.byte\",\n VALID_FILE.MAX_MEGA_BYTE_SIZE.toString()\n ) ?? ''\n },\n { shouldFocus: true }\n )\n return\n }\n // ファイル拡張子チェック\n const isExtentionMatch =\n VALID_FILE.EXTENSION.filter((ext) => {\n const pattern = `^.*\\\\${ext}$`\n return fileInfo.name.toLowerCase().match(pattern)\n }).length > 0\n if (!isExtentionMatch) {\n methods.setError(\n name,\n {\n message: translate('interviewReservationForm.error.tempFile.failUpload.reason.extention')\n },\n {\n shouldFocus: true\n }\n )\n return\n }\n await uploadFile(fileInfo)\n }\n } finally {\n }\n },\n [dispatch, methods, name, uploadFile]\n )\n\n /**\n * クリアボタンクリック処理\n */\n const handleClickClear = useCallback(() => {\n methods.clearErrors(name)\n // DBに登録済みのファイルがある場合は削除フラグをONに設定\n const delFlg = registeredFileKey ? Flag.ON : Flag.OFF\n onChange({ fileName: null, delFlg: delFlg, tempUploadKey: null })\n }, [methods, name, onChange, registeredFileKey])\n\n const handleButtonClick = () => {\n if (fileInputRef.current) {\n fileInputRef.current.click();\n }\n };\n\n return (\n <>\n \n \n \n \n \n {translate('interviewReservationForm.button.tempFile.selectBtn')}\n \n \n \n {value.fileName ?? ''}\n \n \n\n \n {translate('interviewReservationForm.button.tempFile.clear')}\n \n \n {\n errorMessage() && (\n \n {errorMessage()}\n \n )\n }\n \n )\n}\n\nexport default TempFileUploadField;","import { executePost } from '../common/apiCaller'\nimport { PostInterviewAttachmentDto, PostInterviewAttachmentInputDto } from '../dto/interviewAttachmentDto'\n\nconst apiNamePublic = 'citizen'\nconst apiPath = '/interviews/attachment'\n\nexport const executePostInterviewAttachment = (input: PostInterviewAttachmentInputDto) => {\n return executePost(apiNamePublic, apiPath, input)\n}\n","import React from 'react';\nimport { Control, useController, useFieldArray } from \"react-hook-form\"\nimport { Inputs } from '../../../../containers/interviewReservationForm/interviewReservationFormService'\nimport { GItem } from \"../../common/grids\"\nimport { ButtonS } from '../../common/buttons/buttonS'\nimport { TempFileUploadField } from './tempFileUploadFiled'\nimport { translate } from '../../../../i18n'\nimport { FormHelperText, styled } from '@mui/material';\n\nexport interface TempFileFieldProps {\n childNum: number\n note: string\n tempFileNote: string\n control?: Control\n}\n\nconst InformationAndNote = styled('div')({\n margin: '0',\n whiteSpace: 'pre-wrap',\n })\n\nconst TempFileField = (props: TempFileFieldProps) => {\n const { childNum, note, tempFileNote, control } = props;\n\n const uploadName = `children.${childNum}.tempFile.files` as `children.${number}.tempFile.files`\n const { fields, append } = useFieldArray({\n name: uploadName,\n control,\n })\n\n const {\n fieldState: { error }\n } = useController({\n control,\n name: uploadName, // このフィールドに対してバリデーションを設定\n rules: {},\n defaultValue: []\n });\n\n return (\n \n
    {note}
    \n {tempFileNote}\n {error && {error.message}}\n
    \n {fields.map((item, docIndex) => (\n \n ))}\n {fields?.length < 5 && (\n \n append({\n fileName: null,\n delFlg: '0',\n tempUploadKey: null,\n })}\n >\n {translate('interviewReservationForm.button.tempFile.add')}\n \n \n )}\n
    \n
    \n );\n}\n\nexport default TempFileField;\n","import { Stack, styled } from '@mui/material'\nimport {\n getGenders,\n getInterviewReservationSteps,\n getInterviewReservationSteps2,\n getYesNos,\n getAvailabilityOfApplication,\n} from '../../containers/common/codeMaster'\nimport {\n interviewReservationStep,\n interviewReservationStep2,\n yesNo,\n interviewAcceptMethod\n} from '../../containers/common/constant/classification'\nimport { OperationId } from '../../containers/common/constant/operationLog'\nimport { memberUrl } from '../../containers/common/constant/appUrl'\nimport { useAction, child, Inputs } from '../../containers/interviewReservationForm/interviewReservationFormService'\nimport { translate } from '../../i18n'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { Dialog } from '../components/common/dialog'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\nimport { ButtonS } from '../components/common/buttons/buttonS'\nimport { ElevatedCard } from '../components/common/elevatedCard'\nimport { FlexboxRowTop, Separator } from '../components/common/flexboxes'\nimport { GContainer, GItem, GItemContainer, RightGItem } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\nimport { DatePicker } from '../components/common/inputs/datePicker'\nimport { Form } from '../components/common/inputs/form'\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { StepBar } from '../components/common/stepBar'\nimport { ChildSelectDialog } from '../components/accountConfirmation/childSelectDialog'\nimport { ChildAllergyUnit } from '../components/common/member/childAllergyUnit'\nimport { ChildDiseaseUnit } from '../components/common/member/childDiseaseUnit'\nimport { ChildEatingUnit } from '../components/common/member/childEatingUnit'\nimport { ChildFebrileSeizureUnit } from '../components/common/member/childFebrileSeizureUnit'\nimport { ChildHospitalAdmissionUnit } from '../components/common/member/childHospitalAdmissionUnit'\nimport { ChildMedicalHistoryUnit } from '../components/common/member/childMedicalHistoryUnit'\nimport { ChildPredispositionUnit } from '../components/common/member/childPredispositionUnit'\nimport { ChildSymptomUnit } from '../components/common/member/childSymptomUnit'\nimport { ChildVaccinationUnit } from '../components/common/member/childVaccinationUnit'\nimport { Link } from '../components/common/link'\nimport TempFileField from '../components/interviewReservationForm/fields/tempFileField'\nimport { Control } from 'react-hook-form'\nimport { TEMP_FILE_CONDITION } from '../../containers/common/constant/projectMst'\n\nconst InformationAndNote = styled('div')({\n paddingLeft: '20px',\n margin: '0',\n whiteSpace: 'pre-wrap',\n})\n\nconst InformationAndNoteWithBr = styled('div')({\n paddingLeft: '20px',\n margin: '10px 0px 0px 0px',\n whiteSpace: 'pre-wrap',\n})\n\nconst DivWithBr = styled('div')({\n whiteSpace: 'pre-wrap',\n})\n\nexport const InterviewReservationForm = () => {\n const {\n formMethods,\n autoCompleteAddress,\n onSubmit,\n childBirthdayLimitDate,\n\n isOpenInterviewChildSelect,\n onCloseInterviewChildSelect,\n uninterviewedChilds,\n interviewedChildsAndStatus,\n isDisabledResidenceCategory,\n residenceCategories,\n isDisabledAddress1,\n watchAllFields,\n sysCtrl,\n facility,\n projectMst,\n category,\n allergyCategory,\n diseaseCategory,\n medicalHistoryCategory,\n symptomCategory,\n vaccinationCategory,\n categoryMap,\n goNext,\n isSubmitDialogOpen,\n closeSubmitDialog,\n } = useAction()\n\n const control: Control = formMethods.control\n\n const tempDocField = (index: number) => {\n if (projectMst?.interviewDocFlag === TEMP_FILE_CONDITION.USED_BOTH) {\n return (\n \n \n \n \n \n )\n }\n }\n\n return (\n <>\n \n \n \n {translate('interviewReservationForm.button.back')}\n {translate('interviewReservationForm.button.yes')}\n \n }\n maxWidth={'xs'}\n fullWidth\n >\n \n { facility?.interviewRequestNotice }\n \n \n \n
    \n \n \n \n \n \n
    \n \n \n \n {facility?.interviewRequestInformation}\n \n {\n (facility?.interviewDailyAcceptFlag === yesNo.yes\n && facility?.interviewAcceptMethod === interviewAcceptMethod.applicationOnly)\n && (\n \n {facility?.interviewNote}\n \n )\n }\n \n
    \n
    \n \n \n \n *\n {translate('interviewReservationForm.label.parentName')}\n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.parentKana')}\n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.postalCode')}\n \n \n \n \n \n \n {translate('interviewReservationForm.button.autoComplete')}\n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.prefecturesAndMunicipalities')}\n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.address')}\n \n \n \n \n \n \n {translate('interviewReservationForm.label.buildingNameRoomNumber')}\n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.residenceCategory')}\n \n \n \n \n \n\n \n {translate('interviewReservationForm.label.relationship')}\n \n \n \n \n {watchAllFields?.children?.map((child: child, index: number) => {\n const isAvailabilityOfApplication = watchAllFields?.children?.[index]?.availabilityOfApplication === '1'\n const isInterviewMethodFlagOn = facility?.interviewMethodFlag === yesNo.yes\n return (\n \n \n \n \n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.childName')}\n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.childKana')}\n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.childBirthday')}\n \n \n 0}\n required\n />\n \n \n\n {isAvailabilityOfApplication && !isInterviewMethodFlagOn && (\n <>\n \n \n *\n {translate('interviewReservationForm.label.childGender')}\n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.childAllergy')}\n \n \n \n \n \n \n \n \n \n \n *\n {translate('interviewReservationForm.label.childMedicalHistory')}\n \n \n \n \n\n \n \n \n \n\n {/* アレルギー */}\n \n \n \n\n {/* 熱性けいれん */}\n \n \n \n\n {/* 既往症 */}\n \n \n \n\n {/* 食事 */}\n \n \n \n\n\n {/* 病気 */}\n \n \n \n\n {/* 症状 */}\n \n \n \n\n {/* 予防接種 */}\n \n \n \n\n {/* 体質・くせ */}\n \n \n \n\n {/* 入院歴 */}\n \n \n \n\n {/* 母子健康手帳番号 */}\n {categoryMap?.maternalHandbookNo && \n \n *\n {translate('interviewReservationForm.label.maternalHandbookNo')}\n \n \n \n \n }\n {tempDocField(index)}\n \n {translate('interviewReservationForm.label.note')}\n \n \n \n \n \n \n
    {translate('interviewReservationForm.label.facilityNumber')}
    \n
    {translate('interviewReservationForm.label.facilityNumberSupplement')}
    \n
    \n \n \n \n
    \n \n )}\n\n {isAvailabilityOfApplication && isInterviewMethodFlagOn && (\n <>\n \n \n *\n {translate('interviewReservationForm.label.childGender')}\n \n \n \n \n \n\n {/* アレルギー */}\n \n \n \n\n {/* 熱性けいれん */}\n \n \n \n\n {/* 既往症 */}\n \n \n \n\n {/* 食事 */}\n \n \n \n\n\n {/* 病気 */}\n \n \n \n\n {/* 症状 */}\n \n \n \n\n {/* 予防接種 */}\n \n \n \n\n {/* 体質・くせ */}\n \n \n \n\n {/* 入院歴 */}\n \n \n \n\n {/* 母子健康手帳番号 */}\n {categoryMap?.maternalHandbookNo && \n \n *\n {translate('interviewReservationForm.label.maternalHandbookNo')}\n \n \n \n \n }\n {tempDocField(index)}\n \n {translate('interviewReservationForm.label.note')}\n \n \n \n \n \n \n
    {translate('interviewReservationForm.label.facilityNumber')}
    \n
    {translate('interviewReservationForm.label.facilityNumberSupplement')}
    \n
    \n \n \n \n
    \n \n )}\n
    \n
    \n
    \n
    \n )\n })}\n
    \n \n \n \n 会員情報で編集\n \n \n \n
    \n
    \n
    \n \n
    \n \n \n {translate('interviewReservationForm.button.confirmation')}\n \n \n \n
    \n
    \n \n )\n}\n","import { differenceInMinutes } from 'date-fns'\r\nimport { useCallback, useEffect, useMemo, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router'\r\nimport {\r\n interviewStatus,\r\n reservableUnitPatterMinutes,\r\n yesNo,\r\n permitFlag,\r\n interviewCrossManagementFlag\r\n} from '../../containers/common/constant/classification'\r\nimport {\r\n InterviewReserveEntry,\r\n selectInterviewReserveEntry,\r\n setInterviewReserve,\r\n} from '../../containers/common/store/slices/interviewReserve'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { NoResultError } from '../../dataAccess/webApi/common/apiCaller'\r\nimport { executeGetInterviewReservationsDays } from '../../dataAccess/webApi/dao/interviewReservationsDaysDao'\r\nimport { executeGetInterviewReservationsWeekCitizen } from '../../dataAccess/webApi/dao/interviewReservationsWeekCitizenDao'\r\nimport { executeGetProjects } from '../../dataAccess/webApi/dao/projectsDao'\r\nimport { GetFacilityDto } from '../../dataAccess/webApi/dto/facilitiesDto'\r\nimport { GetInterviewReservationsDaysDto } from '../../dataAccess/webApi/dto/interviewReservationsDaysDto'\r\nimport { GetInterviewReservationsWeekCitizenDto } from '../../dataAccess/webApi/dto/interviewReservationsWeekCitizenDto'\r\nimport { translate } from '../../i18n'\r\nimport { DateRange, ElapsedMillisecond, getNowTrimedTime, isValidDate, toApiYmd } from '../../utils/dateUtil'\r\nimport { promiseAllConcurrency } from '../../utils/promiseUtil'\r\nimport { fromNumber } from '../../utils/stringUtil'\r\nimport { castNonNullable, NullPropsToUndefinedType } from '../../utils/typeUtil'\r\nimport { interviewReservationFormUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { getInterview, Interview } from '../common/interview'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport {\r\n ChildrenChoice,\r\n Child,\r\n getChild,\r\n getChildrenChoices,\r\n getInterviewedChildrenChoices,\r\n InterviewedChildrenChoice,\r\n} from '../common/child'\r\nimport { getInterviewStatusLabel } from '../common/codeMaster'\r\nimport { OperationId } from '../common/constant/operationLog'\r\n\r\ninterface InsertUrlParams {\r\n facilityId: string\r\n}\r\ninterface UpdateUrlParams {\r\n interviewNo: string\r\n}\r\ntype UrlParams = InsertUrlParams | UpdateUrlParams\r\n\r\ninterface Inputs {\r\n /** 面談希望日時 */\r\n interviewDesiredDatetimes: {\r\n value: {\r\n /** 時間の基準となる日付 */\r\n baseDateOfTime: Date\r\n /** 日時範囲 */\r\n range: DateRange\r\n /** 空き状況ステータス */\r\n status: string\r\n }\r\n }[]\r\n}\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep?: boolean\r\n activeDate: ElapsedMillisecond\r\n childIds: string[]\r\n childrenName: string\r\n}\r\n\r\ninterface PageState {\r\n activeChildId?: string\r\n activeDate: Date\r\n facilityId?: string\r\n uninterviewedChilds: ChildrenChoice[]\r\n childs: ChildrenChoice[]\r\n interviewedChildsAndStatus: ChildrenChoice[]\r\n\r\n /** 施設情報 */\r\n facility?: NullPropsToUndefinedType\r\n /** 変更前予約情報 */\r\n interview?: Interview\r\n /** 空き状況(1週間分) */\r\n availabilities?: GetInterviewReservationsWeekCitizenDto[]\r\n /** 空き状況(選択した利用日分) */\r\n initialValidationAvailabilities?: GetInterviewReservationsDaysDto[]\r\n}\r\n\r\ninterface ChildrenState {\r\n childIds: string[]\r\n childrenName: string\r\n}\r\n\r\n/** 最大並列実行数 */\r\nconst MAX_WORKER_COUNT = 4\r\n\r\nconst isInsertParams = (urlParams: UrlParams): urlParams is InsertUrlParams => {\r\n return 'facilityId' in urlParams\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const urlParams = useParams()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n const { addOperationLog, attachAccessData } = useOperationLog()\r\n\r\n const locationState = history.location.state\r\n const reserveEntry = useSelector(selectInterviewReserveEntry)\r\n\r\n const [isOpenInterviewChildSelect, setIsOpenInterviewChildSelect] = useState(false)\r\n const [childrenInfo, setChildrenInfo] = useState({\r\n ...(locationState?.isKeep\r\n ? {\r\n childIds: locationState.childIds,\r\n childrenName: locationState.childrenName,\r\n }\r\n : {\r\n childIds: [],\r\n childrenName: '',\r\n }),\r\n })\r\n const [state, setState] = useState({\r\n ...(locationState?.isKeep\r\n ? {\r\n activeDate: new Date(locationState.activeDate),\r\n uninterviewedChilds: [], childs: [], interviewedChildsAndStatus: []\r\n }\r\n : {\r\n activeDate: locationState?.activeDate ? new Date(locationState.activeDate) : getNowTrimedTime(),\r\n uninterviewedChilds: [], childs: [], interviewedChildsAndStatus: []\r\n }),\r\n })\r\n\r\n /** 変更前の日時 */\r\n const previousRange = useMemo(() => {\r\n if (state.interview\r\n && state.interview.interviewDate\r\n && state.interview.interviewStartDatetime\r\n && state.interview.interviewEndDatetime) {\r\n return {\r\n range: {\r\n from: state.interview.interviewStartDatetime,\r\n to: state.interview.interviewEndDatetime,\r\n },\r\n baseDateOfTime: state.interview.interviewDate,\r\n isWaiting: state.interview.status === interviewStatus.wait,\r\n }\r\n }\r\n }, [state.interview])\r\n\r\n const notifyDateFetchErrorMessage = useCallback(\r\n () => dispatch(notifyMessage(translate('facilityReservationSelection.error.noReservationReceptionSetting'))),\r\n []\r\n )\r\n\r\n const formMethods = useForm({\r\n defaultValues: {\r\n ...(locationState?.isKeep &&\r\n reserveEntry && reserveEntry.interviewDatetimes && {\r\n interviewDesiredDatetimes: reserveEntry.interviewDatetimes.map((v) => ({\r\n value: {\r\n /** 時間の基準となる日付 */\r\n baseDateOfTime: new Date(v.interviewDate),\r\n /** 日時範囲 */\r\n range: { from: new Date(v.interviewFromDatetime), to: new Date(v.interviewToDatetime) },\r\n /** 空き状況ステータス */\r\n status: v.status,\r\n },\r\n })),\r\n }),\r\n },\r\n })\r\n\r\n /**\r\n * 初期表示の情報取得\r\n */\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n if (isInsertParams(urlParams)) {\r\n // 新規予約時\r\n // TODO:動作確認用\r\n const searchChildId = '01'\r\n //const searchChildId = state.activeChildId ?? urlParams.childId\r\n attachAccessData({\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId: searchChildId }],\r\n })\r\n\r\n const initialSelectedUsageApiYmds = getInitialSelectedUsageApiYmds(locationState?.isKeep, reserveEntry)\r\n const [interviewAvailabilities, initialValidationAvailabilities] = await Promise.all([\r\n getInterviewAvailabilities(urlParams.facilityId, state.activeDate, null),\r\n getAvailabilitiesByDays(urlParams.facilityId, initialSelectedUsageApiYmds, null),\r\n ])\r\n \r\n if (interviewAvailabilities) {\r\n /** 正常 */\r\n if (!(locationState?.isKeep && reserveEntry)) {\r\n // 初回:お子さま選択ダイアログの情報を取得&表示\r\n const facilityWithChilds = await getFacilityWithChilds(urlParams.facilityId)\r\n setState({ ...interviewAvailabilities, initialValidationAvailabilities, ...facilityWithChilds })\r\n setIsOpenInterviewChildSelect(true)\r\n } else {\r\n // 次画面からの戻り\r\n setState({\r\n ...interviewAvailabilities,\r\n initialValidationAvailabilities,\r\n uninterviewedChilds: [],\r\n childs: [],\r\n interviewedChildsAndStatus: [],\r\n })\r\n }\r\n if (initialValidationAvailabilities?.length) {\r\n // 初期表示時バリデーション実行\r\n formMethods.trigger(undefined, { shouldFocus: true })\r\n }\r\n } else {\r\n /** 異常 */\r\n notifyDateFetchErrorMessage()\r\n }\r\n } else {\r\n // 予約変更時\r\n const interview = await getInterview(urlParams.interviewNo)\r\n attachAccessData({\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n usageDate: toApiYmd(interview.interviewDate),\r\n interviewNo: interview.interviewNo,\r\n },\r\n ],\r\n })\r\n\r\n const searchDate = locationState?.isKeep ? state.activeDate : interview.interviewDate\r\n if (!searchDate) {\r\n /** 異常 */\r\n notifyDateFetchErrorMessage()\r\n return\r\n }\r\n\r\n const initialSelectedUsageApiYmds = getInitialSelectedUsageApiYmds(locationState?.isKeep, reserveEntry)\r\n const availabilitiesInterviewNo = getAvailabilitiesInterviewNo(interview)\r\n \r\n const [interviewAvailabilities, initialValidationAvailabilities, child] = await Promise.all([\r\n getInterviewAvailabilities(\r\n interview.facilityId,\r\n searchDate,\r\n availabilitiesInterviewNo\r\n ),\r\n getAvailabilitiesByDays(\r\n interview.facilityId,\r\n initialSelectedUsageApiYmds,\r\n availabilitiesInterviewNo\r\n ),\r\n interview.childId && getChild(interview.childId)\r\n ])\r\n\r\n if (interviewAvailabilities) {\r\n /** 正常 */\r\n if (!locationState?.isKeep) {\r\n // 戻る以外の初期表示時のみ変更前範囲を初期選択\r\n formMethods.reset({\r\n interviewDesiredDatetimes: [\r\n {\r\n value: {\r\n /** 時間の基準となる日付 */\r\n baseDateOfTime: interview.interviewDate,\r\n /** 日時範囲 */\r\n range: {\r\n from: interview.interviewStartDatetime,\r\n to: interview.interviewEndDatetime,\r\n },\r\n // 空き状況ステータスは、空き状況カレンダーコントロールの初期設定に任せる\r\n },\r\n },\r\n ],\r\n })\r\n }\r\n\r\n if (child) {\r\n setChildrenInfo({\r\n childIds: [child.childId],\r\n childrenName: child.name\r\n })\r\n }\r\n setState({\r\n ...interviewAvailabilities,\r\n initialValidationAvailabilities,\r\n interview: interview,\r\n uninterviewedChilds: [],\r\n childs: [],\r\n interviewedChildsAndStatus: []\r\n })\r\n if (initialValidationAvailabilities?.length) {\r\n // 初期表示時バリデーション実行\r\n formMethods.trigger(undefined, { shouldFocus: true })\r\n }\r\n } else {\r\n /** 異常 */\r\n notifyDateFetchErrorMessage()\r\n }\r\n }\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n /**\r\n * お子さま選択ダイアログ決定処理\r\n */\r\n const getChildrenInfo = useCallback(\r\n (childIds: string[]) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const filteredChildIds = childIds.filter(childId => childId !== '')\r\n const childs = await promiseAllConcurrency(\r\n filteredChildIds.map((childId) => async () => {\r\n const child = await getChild(childId)\r\n return child\r\n }),\r\n MAX_WORKER_COUNT\r\n )\r\n\r\n let childrenName = ''\r\n childs.forEach((child: Child) => {\r\n childrenName = childrenName ? childrenName + '、' + child.name : child.name\r\n })\r\n setChildrenInfo({\r\n childIds: filteredChildIds,\r\n childrenName: childrenName\r\n })\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },[])\r\n\r\n // お子さま選択ダイアログのボタン押下\r\n const onCloseInterviewChildSelect = useCallback(\r\n (isCancel: boolean, childIds?: string[]) => {\r\n if (isCancel || !childIds) {\r\n // 選択をキャンセルした場合\r\n setIsOpenInterviewChildSelect(false)\r\n history.goBack()\r\n } else {\r\n // お子さまを選択した場合\r\n const filteredChildIds = childIds.filter(childId => childId !== '')\r\n if (filteredChildIds.length <= 0) {\r\n return\r\n }\r\n setIsOpenInterviewChildSelect(false)\r\n // お子さま情報設定\r\n getChildrenInfo(childIds)\r\n }\r\n },\r\n [history, getChildrenInfo]\r\n )\r\n\r\n const onNextPrevExec = useCallback(\r\n (baseDate: Date) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const facilityInterviewAvailabilities = await getFacilityInterviewAvailabilities(\r\n castNonNullable(state.facilityId),\r\n baseDate,\r\n getAvailabilitiesInterviewNo(state.interview)\r\n )\r\n if (facilityInterviewAvailabilities) {\r\n /** 正常 */\r\n setState((old) => ({ ...old, ...facilityInterviewAvailabilities }))\r\n } else {\r\n /** 異常 */\r\n notifyDateFetchErrorMessage()\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [state.facilityId, state.activeChildId, state.interview]\r\n )\r\n\r\n const changeDate = useCallback(\r\n (date: Date | null) => {\r\n addOperationLog({ operationId: OperationId.OP_00000029 })\r\n\r\n if (isValidDate(date)) {\r\n onNextPrevExec(date)\r\n }\r\n },\r\n [onNextPrevExec, addOperationLog]\r\n )\r\n\r\n /**\r\n * 妥当性検査\r\n * @param data 入力値\r\n * @param facilityId 施設ID\r\n * @returns エラーが存在する場合true\r\n */\r\n const validate = useCallback(async (data: Inputs, facilityId: string) => {\r\n const facilityMap = await getFacilityMapByInterviewDateElapsed(\r\n facilityId,\r\n new Set(data.interviewDesiredDatetimes.map((v) => v.value.baseDateOfTime.getTime()))\r\n )\r\n\r\n let isError = false\r\n data.interviewDesiredDatetimes.forEach(({ value: { baseDateOfTime, range } }, idx) => {\r\n const facility = facilityMap.get(baseDateOfTime.getTime())\r\n\r\n // 面談予約設定には最低予約時間の設定がないのでコメントアウトしておく\r\n // const minReservationMinute = facility?.minReservationMinute\r\n // if (minReservationMinute != null) {\r\n // // 最低予約時間が設定されていれる場合\r\n // const minute = differenceInMinutes(range.to, range.from)\r\n // if (minute < minReservationMinute) {\r\n // formMethods.setError(`interviewDesiredDatetimes.${idx}.value`, {\r\n // message: translate(\r\n // 'facilityReservationSelection.error.minReservationMinute',\r\n // fromNumber(minReservationMinute)\r\n // ),\r\n // })\r\n // isError = true\r\n // }\r\n // }\r\n\r\n const reservableUnitPatternMinute = facility && reservableUnitPatterMinutes[facility?.interviewReservableUnitPattern]\r\n if (reservableUnitPatternMinute != null) {\r\n // 予約可能単位が設定されていれる場合\r\n const minute = differenceInMinutes(range.to, range.from)\r\n if (minute % reservableUnitPatternMinute !== 0) {\r\n formMethods.setError(`interviewDesiredDatetimes.${idx}.value`, {\r\n message: translate(\r\n 'interviewReservationSelection.error.reservableUnitPattern',\r\n fromNumber(reservableUnitPatternMinute)\r\n ),\r\n })\r\n isError = true\r\n }\r\n }\r\n })\r\n\r\n return isError\r\n }, [])\r\n\r\n /**\r\n * 申し込みボタン押下\r\n */\r\n const onSubmit = useCallback(\r\n async (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000030 })\r\n\r\n const facilityId = castNonNullable(state.facilityId)\r\n\r\n let isError = false\r\n await dispatch(\r\n showLoading({\r\n process: \r\n errorHandle(async () => {\r\n // 妥当性検査\r\n const isValidateError = await validate(data, facilityId)\r\n if (isValidateError) {\r\n isError = true\r\n return\r\n }\r\n\r\n dispatch(\r\n setInterviewReserve({\r\n facilityId: castNonNullable(state.facilityId),\r\n childId: castNonNullable(state.activeChildId),\r\n childIds: childrenInfo.childIds,\r\n interviewNo: state.interview?.interviewNo,\r\n\r\n // 確認しやすくするために利用開始日でソートしておく\r\n interviewDatetimes: \r\n !data.interviewDesiredDatetimes ? [] : data.interviewDesiredDatetimes.map((v) => ({\r\n interviewDate: v.value.baseDateOfTime.getTime(),\r\n interviewFromDatetime: v.value.range.from.getTime(),\r\n interviewToDatetime: v.value.range.to.getTime(),\r\n status: v.value.status,\r\n }))\r\n .sort((a, b) => a.interviewFromDatetime - b.interviewFromDatetime),\r\n })\r\n )\r\n\r\n /** 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管 */\r\n history.replace({\r\n ...history.location,\r\n state: {\r\n isKeep: true,\r\n activeDate: state.activeDate.getTime(),\r\n childIds: childrenInfo.childIds,\r\n childrenName: childrenInfo.childrenName,\r\n },\r\n })\r\n }),\r\n isHiddenMain: false,\r\n })\r\n \r\n )\r\n if (!isError) {\r\n history.push(interviewReservationFormUrl.url(facilityId))\r\n }\r\n },\r\n [\r\n reserveEntry,\r\n state.facilityId,\r\n state.activeChildId,\r\n state.activeDate,\r\n state.interview,\r\n validate,\r\n addOperationLog,\r\n childrenInfo,\r\n ]\r\n )\r\n\r\n return {\r\n facilityId: state.facilityId,\r\n facility: state.facility,\r\n childrenName: childrenInfo.childrenName,\r\n activeChildId: state.activeChildId,\r\n activeDate: state.activeDate,\r\n availabilities: state.availabilities,\r\n initialValidationAvailabilities: state.initialValidationAvailabilities,\r\n previousRange,\r\n formMethods,\r\n onSubmit,\r\n onNextPrevExec,\r\n changeDate,\r\n isOpenInterviewChildSelect,\r\n onCloseInterviewChildSelect,\r\n uninterviewedChilds: state.uninterviewedChilds,\r\n interviewedChildsAndStatus: state.interviewedChildsAndStatus,\r\n sysCtrl,\r\n }\r\n}\r\n\r\nconst getFacilityMapByInterviewDateElapsed = async (facilityId: string, interviewDateElapsedSet: Set) => {\r\n const facilities = await promiseAllConcurrency(\r\n Array.from(interviewDateElapsedSet).map((interviewDateElapsed) => async () => {\r\n const facility = await getFacility(facilityId, new Date(interviewDateElapsed))\r\n return [interviewDateElapsed, facility] as const\r\n }),\r\n MAX_WORKER_COUNT\r\n )\r\n return new Map(facilities)\r\n}\r\n\r\n/**\r\n * 空き状況取得用の受付No取得\r\n * キャンセル待ち予約の変更時は受付Noを指定して空き状況を取得する為\r\n * @param reservation\r\n * @returns\r\n */\r\nconst getAvailabilitiesInterviewNo = (interivew: Interview | undefined) =>\r\n interivew?.status === interviewStatus.wait ? interivew.interviewNo : null\r\n\r\n/**\r\n * 空き情報を取得\r\n * @param facilityId 施設ID\r\n * @param childId お子さまID\r\n * @param targetDate 取得基準日\r\n * @param reservationNo 受付No。空き状況取得でキャンセル待ち予約を変更する際に設定する\r\n * @returns 空き情報\r\n */\r\nconst getAvailabilities = async (\r\n facilityId: string,\r\n targetDate: Date,\r\n interviewNo: string | null\r\n) => {\r\n const availabilitiesResponse = await executeGetInterviewReservationsWeekCitizen(facilityId, {\r\n targetDate: toApiYmd(targetDate),\r\n interviewNo,\r\n })\r\n if (availabilitiesResponse.result.length) {\r\n return {\r\n activeDate: targetDate,\r\n facilityId,\r\n availabilities: availabilitiesResponse.result,\r\n }\r\n } else {\r\n return null\r\n }\r\n}\r\n\r\n/**\r\n * 施設情報、空き情報を取得\r\n * @param facilityId 施設ID\r\n * @param childId お子さまID\r\n * @param targetDate 取得基準日\r\n * @param reservationNo 受付No。空き状況取得でキャンセル待ち予約を変更する際に設定する\r\n * @returns 施設情報、空き情報\r\n */\r\nconst getFacilityInterviewAvailabilities = async (\r\n facilityId: string,\r\n targetDate: Date,\r\n interviewNo: string | null\r\n) => {\r\n try {\r\n const [facility, availabilities] = await Promise.all([\r\n getFacility(facilityId, targetDate),\r\n getAvailabilities(facilityId, targetDate, interviewNo),\r\n ])\r\n if (availabilities) {\r\n return {\r\n ...availabilities,\r\n facility,\r\n }\r\n } else {\r\n return null\r\n }\r\n } catch (e) {\r\n if (e instanceof NoResultError) {\r\n return null\r\n } else {\r\n throw e\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * 施設情報、空き情報を取得\r\n * @param facilityId 施設ID\r\n * @param targetDate 取得基準日\r\n * @param reservationNo 受付No。空き状況取得でキャンセル待ち予約を変更する際に設定する\r\n * @returns 施設情報、空き情報\r\n */\r\nconst getInterviewAvailabilities = async (\r\n facilityId: string,\r\n targetDate: Date,\r\n interviewNo: string | null\r\n) => {\r\n const [facilityAvailabilities] = await Promise.all([\r\n getFacilityInterviewAvailabilities(facilityId, targetDate, interviewNo),\r\n ])\r\n if (facilityAvailabilities) {\r\n return {\r\n ...facilityAvailabilities,\r\n }\r\n } else {\r\n return null\r\n }\r\n}\r\n\r\n/**\r\n * 初期選択の年月日を取得する\r\n *\r\n * @param isKeep 戻るで初期表示してreduxから状態を復元する際はtrue\r\n * @param reserveEntry 保存された状態\r\n * @returns 初期選択の利用日時から取得した年月日(yyyy-MM-dd)配列。※重複除去\r\n */\r\nconst getInitialSelectedUsageApiYmds = (isKeep?: boolean, reserveEntry?: InterviewReserveEntry) => {\r\n return isKeep && reserveEntry && reserveEntry.interviewDatetimes\r\n ? Array.from(new Set(reserveEntry.interviewDatetimes.map((v) => toApiYmd(new Date(v.interviewDate)))))\r\n : []\r\n}\r\n\r\n/**\r\n * 指定日分の空き状況を取得する\r\n *\r\n * @param facilityId 施設ID\r\n * @param childId お子さまID\r\n * @param targetApiYmds 取得対象年月日(yyyy-MM-ddの配列)\r\n * @param reservationNo キャンセル待ち予約変更時は対象予約No。それ以外はnull\r\n * @returns 空き状況\r\n */\r\nconst getAvailabilitiesByDays = async (\r\n facilityId: string,\r\n targetApiYmds: string[],\r\n interviewNo: string | null\r\n) => {\r\n let result\r\n if (targetApiYmds.length) {\r\n const resp = await executeGetInterviewReservationsDays(facilityId, {\r\n targetDates: targetApiYmds,\r\n interviewNo,\r\n })\r\n result = resp.result\r\n }\r\n return result\r\n}\r\n\r\n/**\r\n * お子さま一覧取得(お子さま選択ダイアログで使用)\r\n */\r\nasync function getFacilityWithChilds(facilityId: string) {\r\n const [facility, allChilds, interviewedChilds] = await Promise.all([\r\n getFacility(facilityId),\r\n getChildrenChoices(),\r\n getInterviewedChildrenChoices(facilityId, yesNo.yes),\r\n ])\r\n\r\n //面談許可時の利用許可範囲\r\n const pmInterviewCrossManagementFlag = facility?.interviewCrossManagementFlag ?? interviewCrossManagementFlag.byFacility\r\n\r\n // 事業マスタ取得\r\n const projectMstResp = await executeGetProjects({ projectId: String(facility.projectId) })\r\n const isAnnualUpdate = projectMstResp.result.length ? (projectMstResp.result[0].annualUpdateFlag === yesNo.yes) : false\r\n //A761にて、キャンセル済お子様にラジオボタンを表示して再登録を可能にする対応を行いました。\r\n //本来SQLで修正をするところですが、お子様選択一覧画面に表示されるキャンセル済お子様のラベルに\r\n //「(キャンセル済)」のステータスを表示する対応が今後発生する可能性があり、その場合SQLの修正は不要になってしまうため画面での対応としました。\r\n\r\n //interviewedChilds(面談済みお子様)から状態:キャンセル済を除外する\r\n let exceptForChildsWithCanceledInterview\r\n if (isAnnualUpdate) {\r\n // 年度更新暫定対応 許可済でも再度面談申込できるように\r\n exceptForChildsWithCanceledInterview = interviewedChilds.filter((v) => v.status !== interviewStatus.canceled && v.permitFlag !== permitFlag.permitted) \r\n } else {\r\n exceptForChildsWithCanceledInterview = interviewedChilds.filter((v) => v.status !== interviewStatus.canceled) \r\n }\r\n \r\n const interviewedChildIdSet = new Set(exceptForChildsWithCanceledInterview.map(({ value }) => value))\r\n const uninterviewedChilds = allChilds.filter(({ value }) => !interviewedChildIdSet.has(value))\r\n const childs = interviewedChilds.filter((v) => v.permitFlag === permitFlag.permitted)\r\n\r\n //1つでも利用許可したら同一事業内の施設で利用可能とする場合の重複対応\r\n if (pmInterviewCrossManagementFlag === interviewCrossManagementFlag.sameBusiness) {\r\n //重複情報\r\n const valueCounts: Record = {}\r\n exceptForChildsWithCanceledInterview.forEach((item: any) => {\r\n //カウント\r\n valueCounts[item.value] = (valueCounts[item.value] || 0) + 1\r\n //自施設が含まれるか\r\n if (item.facilityId === facilityId) {\r\n valueCounts['myFacility' + item.value] = true\r\n }\r\n })\r\n\r\n //重複するvalue(お子さまID)は自施設の情報を優先する\r\n const result: InterviewedChildrenChoice[] = []\r\n const doDuplicatelist: string[] = []\r\n exceptForChildsWithCanceledInterview.forEach((item: any) => {\r\n if (valueCounts[item.value] > 1) {\r\n //重複あり\r\n if (!doDuplicatelist.includes(item.value)) {\r\n //重複未処理\r\n if (valueCounts['myFacility' + item.value] && item.facilityId === facilityId) {\r\n //自施設が含まれる場合は自施設情報を設定\r\n //(例)自:確定済、他:確定済 ⇒ 自\r\n result.push(item)\r\n doDuplicatelist.push(item.value)\r\n } else if (!valueCounts['myFacility' + item.value]) {\r\n //自施設が含まれない場合は他施設情報を設定\r\n //(例)他A:確定済、他B:確定済 ⇒ 他(A or B どちらかでOK)\r\n result.push(item)\r\n doDuplicatelist.push(item.value)\r\n }\r\n }\r\n } else {\r\n //重複なしはそのまま\r\n result.push(item)\r\n }\r\n })\r\n\r\n //重複を除いた情報に置き換える\r\n exceptForChildsWithCanceledInterview = result\r\n }\r\n\r\n const interviewedChildsAndStatus = exceptForChildsWithCanceledInterview.map((v) => {\r\n let label = v.label\r\n if (v.status) {\r\n if (pmInterviewCrossManagementFlag === interviewCrossManagementFlag.sameBusiness && v.facilityId !== facilityId) {\r\n //1つでも利用許可したら同一事業内の施設で利用可能とする\r\n label = v.label + '(' + getInterviewStatusLabel(v.status)\r\n + ':' + translate('facilityReservationSelection.label.sameBusiness') + ')'\r\n } else {\r\n //上記以外(施設毎に利用許可を行う)\r\n label = v.label + '(' + getInterviewStatusLabel(v.status) + ')'\r\n }\r\n }\r\n return { value: v.value, label: label }\r\n })\r\n\r\n return {\r\n facility,\r\n uninterviewedChilds,\r\n childs,\r\n interviewedChildsAndStatus,\r\n }\r\n}","import { executeGet } from '../common/apiCaller'\nimport {\n GetInterviewReservationsWeekCitizenDto,\n GetInterviewReservationsWeekCitizenInputDto,\n} from '../dto/interviewReservationsWeekCitizenDto'\n\nconst apiName = 'citizen'\nconst apiPath = '/facilities'\n\nexport const executeGetInterviewReservationsWeekCitizen = (\n id: string,\n input?: GetInterviewReservationsWeekCitizenInputDto\n) => {\n return executeGet(apiName, `${apiPath}/${id}/interviews/week`, input)\n}\n","import { executeGet } from '../common/apiCaller'\nimport { GetInterviewReservationsDaysDto, GetInterviewReservationsDaysInputDto } from '../dto/interviewReservationsDaysDto'\n\nconst apiName = 'citizen'\nconst apiPath = '/facilities'\n\nexport const executeGetInterviewReservationsDays = (id: string, input?: GetInterviewReservationsDaysInputDto) => {\n return executeGet(apiName, `${apiPath}/${id}/interviews/days`, input)\n}\n","import { Box, Stack, styled } from '@mui/material'\nimport { facilityDetailUrl } from '../../containers/common/constant/appUrl'\nimport { interviewChangeRestriction, yesNo, interviewReservationStep2 } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/interviewReservationSelection/interviewReservationSelectionService'\nimport { translate } from '../../i18n'\nimport { AnnotationLabel } from '../components/common/annotationLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { GContainer, GItem, MiddleGItem, RowSpacerGItem } from '../components/common/grids'\nimport { InfoCard } from '../components/common/infoCard'\nimport {\n AvailabilityCalendar,\n calendarChangeRestriction,\n CalendarChangeRestrictionType,\n} from '../components/common/inputs/availabilityCalendar'\nimport { DatePickerNoBind } from '../components/common/inputs/datePickerNoBind'\nimport { Form } from '../components/common/inputs/form'\nimport { Link } from '../components/common/link'\nimport { StepBar } from '../components/common/stepBar'\nimport { TitleLabel } from '../components/common/titleLabel'\nimport { getInterviewReservationSteps2 } from '../../containers/common/codeMaster'\nimport { ChildSelectDialog } from '../components/accountConfirmation/childSelectDialog'\nimport { OperationId } from '../../containers/common/constant/operationLog'\n\nconst FacilityNoteCard = styled(InfoCard)({\n whiteSpace: 'pre-wrap',\n})\n\n/** 施設の予約変更制限値とカレンダーコントロールの変更制限値のマッピング */\nconst interviewChangeRestrictionToCalendarChangeableMap: Readonly> = {\n [interviewChangeRestriction.allowChangeDatetime]: calendarChangeRestriction.datetime,\n [interviewChangeRestriction.allowChangeTimeOnly]: calendarChangeRestriction.time,\n [interviewChangeRestriction.notAllowChangeDatetime]: calendarChangeRestriction.none,\n} as const\n\nexport const InterviewReservationSelection = () => {\n const {\n facilityId,\n facility,\n childrenName,\n activeChildId,\n activeDate,\n availabilities,\n initialValidationAvailabilities,\n previousRange,\n formMethods,\n onSubmit,\n onNextPrevExec,\n changeDate,\n isOpenInterviewChildSelect,\n onCloseInterviewChildSelect,\n uninterviewedChilds,\n interviewedChildsAndStatus,\n sysCtrl,\n } = useAction()\n \n // TODO エラー回避の仮実装\n console.log(activeChildId)\n\n if (facilityId == null || facility == null) {\n return null\n }\n\n let usageGuideStr: string\n if (facility.interviewImmediatelyReservationFlag === yesNo.yes) {\n if (facility.interviewCancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.1'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.2'\n }\n } else {\n if (facility.interviewCancelWaitAcceptFlag === yesNo.yes) {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.5'\n } else {\n usageGuideStr = 'facilityDetailAvailability.label.reserveUsageGuide.LoggedIn.6'\n }\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n\n \n \n {facility.facilityName}\n \n \n\n \n \n \n {translate('interviewReservationSelection.label.selectionChild')}\n \n \n {childrenName}\n \n \n\n \n \n {translate('interviewReservationSelection.label.selectTheDesiredDateOfUse')}\n \n \n \n \n \n \n \n\n \n \n {translate(usageGuideStr)}\n\n \n \n \n \n {facility.interviewNote}\n \n \n \n
    {translate('interviewReservationSelection.label.annotation')}
    \n
    \n \n
    \n\n
    \n \n \n {translate('interviewReservationSelection.button.applyOnTheSelectedSchedule')}\n \n \n \n
    \n
    \n )\n}\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { fromApiHms, toApiYmd } from '../../utils/dateUtil'\r\nimport { datePropsToNumber, nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { interviewReservationDeleteConfirmationUrl, reservationStatusListUrl } from '../common/constant/appUrl'\r\nimport { reservationStatus, yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getFacility } from '../common/facility'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { getInterview } from '../common/interview'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n InterviewReservationDeleteEntry,\r\n selectInterviewReserveDeleteEntry,\r\n setInterviewReserveDeleteEntry,\r\n setInterviewReserveDeleteUpdateDatetime,\r\n} from '../common/store/slices/interviewReserveDelete'\r\nimport { executeGetProjectDetail } from '../../dataAccess/webApi/dao/projectsDao'\r\nimport { GetProjectDetailDto } from '../../dataAccess/webApi/dto/projectsDto'\r\nimport { TEMP_FILE_CONDITION } from '../common/constant/projectMst'\r\n\r\ninterface UrlParams {\r\n interviewNo: string\r\n}\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n}\r\n\r\ninterface Inputs {\r\n cancelReson: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { interviewNo } = useParams()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const locationState = history.location.state\r\n\r\n const deleteEntry = useSelector(selectInterviewReserveDeleteEntry)\r\n\r\n const formMethods = useForm({\r\n ...(locationState?.isKeep && {\r\n defaultValues: {\r\n cancelReson: deleteEntry?.cancelReason,\r\n },\r\n }),\r\n })\r\n const [interviewDetail, setInterviewDetail] = useState<\r\n Omit | undefined\r\n >(locationState?.isKeep ? deleteEntry : undefined)\r\n\r\n // 初期処理\r\n useEffect(() => {\r\n if (interviewDetail == null) {\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const { interviewsUpdateDatetime, ...detail } = await getInterviewDetail(interviewNo)\r\n dispatch(setInterviewReserveDeleteUpdateDatetime(interviewsUpdateDatetime))\r\n if (detail.status === reservationStatus.wait) {\r\n // キャンセル待ちの場合、キャンセル理由の入力は不要なので確認画面まで即遷移\r\n dispatch(\r\n setInterviewReserveDeleteEntry({\r\n ...detail,\r\n })\r\n )\r\n history.replace(interviewReservationDeleteConfirmationUrl.url())\r\n } else {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n childId: detail.childId ?? '',\r\n usageDate: toApiYmd(detail.interviewDate),\r\n interviewNo,\r\n },\r\n ],\r\n })\r\n setInterviewDetail(detail)\r\n }\r\n })\r\n )\r\n )\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 中止(予約一覧に戻る)\r\n const goList = useCallback(() => history.push(reservationStatusListUrl.url()), [])\r\n\r\n // 確認画面へ遷移\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000036 })\r\n\r\n if (interviewDetail) {\r\n dispatch(\r\n setInterviewReserveDeleteEntry({\r\n ...interviewDetail,\r\n cancelReason: data.cancelReson,\r\n })\r\n )\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { isKeep: true } })\r\n history.push(interviewReservationDeleteConfirmationUrl.url())\r\n }\r\n },\r\n [interviewDetail, addOperationLog]\r\n )\r\n\r\n return {\r\n formMethods,\r\n interviewDetail,\r\n onSubmit,\r\n goList,\r\n }\r\n}\r\n\r\n/**\r\n * 面談詳細情報を取得\r\n */\r\nconst getInterviewDetail = async (interviewNo: string) => {\r\n const interview = await getInterview(interviewNo)\r\n const facility = await getFacility(interview.facilityId, interview.interviewDate)\r\n\r\n const projectMstData: GetProjectDetailDto = (await executeGetProjectDetail(facility.projectId, toApiYmd(Date.now()))).result\r\n\r\n return nullPropsToUndefined({\r\n ...datePropsToNumber(interview),\r\n cancelLimit: facility.interviewCancelLimit,\r\n cancelLimitTime: fromApiHms(facility.interviewCancelLimitTime)?.getTime(),\r\n cancelNote: facility.interviewCancelNote,\r\n cancelExcludeHolidayFlag: facility.interviewCancelExcludeHolidayFlag,\r\n cancelLimitHolidayOption: facility.interviewCancelLimitHolidayOption,\r\n immediatelyReservationFlag: facility.interviewImmediatelyReservationFlag,\r\n isInterviewDocsFlagOn: projectMstData.interviewDocFlag === TEMP_FILE_CONDITION.USED_BOTH,\r\n })\r\n}","import { Grid, Stack, styled } from '@mui/material'\r\nimport {\r\n getCancelLimitHolidayOptionLabel,\r\n getCancelReasons,\r\n getInterviewReservationDeleteSteps,\r\n} from '../../containers/common/codeMaster'\r\nimport { interviewReservationDeleteStep } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/interviewReservationDelete/interviewReservationDeleteService'\r\nimport { translate } from '../../i18n'\r\nimport { formatCancelLimit } from '../../utils/itemFormatUtil'\r\nimport { AlertCard } from '../components/common/alertCard'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BreakpointSwitch } from '../components/common/breakpointSwitch'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedL } from '../components/common/buttons/buttonOutlinedL'\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\r\nimport { GContainer, GItem, MiddleGItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { Select } from '../components/common/inputs/select'\r\nimport { InterviewDetailContent } from '../components/common/reservationDetail/interviewDetailContent'\r\nimport { StepBar } from '../components/common/stepBar'\r\n\r\nconst AnnotationBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const InterviewReservationDelete = () => {\r\n const { formMethods, interviewDetail, onSubmit, goList } = useAction()\r\n\r\n if (interviewDetail == null) {\r\n return null\r\n }\r\n const { cancelLimit, cancelLimitTime, cancelNote, cancelExcludeHolidayFlag, cancelLimitHolidayOption } = interviewDetail\r\n const alertCardConents = []\r\n if (cancelLimit != null && cancelLimitTime != null) {\r\n alertCardConents.push(\r\n
    \r\n {translate('interviewReservationDelete.label.cancelLimit')}:{formatCancelLimit(cancelLimit, cancelLimitTime, cancelExcludeHolidayFlag, true)}\r\n
    \r\n )\r\n if (cancelLimitHolidayOption) {\r\n alertCardConents.push(\r\n
    ※{getCancelLimitHolidayOptionLabel(cancelLimitHolidayOption)}
    \r\n )\r\n }\r\n }\r\n if (cancelNote) {\r\n if (alertCardConents.length) {\r\n alertCardConents.push(
     
    )\r\n }\r\n alertCardConents.push({cancelNote})\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!alertCardConents.length && {alertCardConents.map((v) => v)}}\r\n
    \r\n \r\n \r\n *\r\n {translate('interviewReservationDelete.label.cancelReason')} \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n {translate('interviewReservationDelete.button.cancelContentConfirmation')}\r\n \r\n {translate('system.button.stop')}}\r\n md={\r\n \r\n {translate('system.button.stop')}\r\n \r\n }\r\n />\r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeDeleteInterview, executeGetSameAddChildInterviews } from '../../dataAccess/webApi/dao/interviewsDao'\r\nimport { GetSameAddChildInterviewsDto } from '../../dataAccess/webApi/dto/interviewsDto'\r\nimport { translate } from '../../i18n'\r\nimport { toApiYmd } from '../../utils/dateUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { reservationStatusListUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport {\r\n clearInterviewReserveDelete,\r\n selectInterviewReserveDeleteEntry,\r\n selectInterviewReserveDeleteUpdateDatetime,\r\n} from '../common/store/slices/interviewReserveDelete'\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const deleteEntry = useSelector(selectInterviewReserveDeleteEntry)\r\n const updateDatetime = useSelector(selectInterviewReserveDeleteUpdateDatetime)\r\n\r\n const [deleteResultCode, setDeleteResultCode] = useState()\r\n const [isConfirmDialogOpen, setIsConfirmDialogOpen] = useState(false)\r\n const [sameAddChildInfo, setAddChildInfo] = useState()\r\n\r\n // 初期処理\r\n useEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n ...(deleteEntry && {\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n childId: deleteEntry.childId ?? '',\r\n usageDate: deleteEntry.interviewDate ? toApiYmd(deleteEntry.interviewDate) : '',\r\n interviewNo: deleteEntry.interviewNo,\r\n },\r\n ],\r\n }),\r\n })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // キャンセル処理\r\n const decideFinal = useCallback((sameUpdateFlag: boolean) => {\r\n if (deleteEntry == null || updateDatetime == null) {\r\n // 確定押下時には発生しない。型ガードの為の分岐\r\n return\r\n }\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n childId: deleteEntry.childId ?? '',\r\n usageDate: deleteEntry.interviewDate ? toApiYmd(deleteEntry.interviewDate) : '',\r\n interviewNo: deleteEntry.interviewNo,\r\n },\r\n ],\r\n })\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const response = await deleteInterview(\r\n deleteEntry.interviewNo,\r\n updateDatetime,\r\n sameUpdateFlag,\r\n sameAddChildInfo ?? [],\r\n deleteEntry.cancelReason\r\n )\r\n if (response.resultCode) {\r\n // キャンセル失敗時\r\n setDeleteResultCode(response.resultCode)\r\n } else {\r\n // キャンセル成功時\r\n dispatch(notifyMessage(translate('interviewReservationDeleteConfirmation.success.completionMessage')))\r\n history.push(reservationStatusListUrl.url())\r\n dispatch(clearInterviewReserveDelete())\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog, deleteEntry, updateDatetime, dispatch, errorHandle, history, sameAddChildInfo])\r\n\r\n // キャンセル前処理\r\n const decide = useCallback(async () => {\r\n if (deleteEntry == null) {\r\n // 確定押下時には発生しない。型ガードの為の分岐\r\n return\r\n }\r\n\r\n let decideFinalFlag = false\r\n await dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 同時更新できるお子様の面談があるか取得\r\n const getSameAddChildInterviewsRes = await executeGetSameAddChildInterviews(\r\n deleteEntry.interviewNo,\r\n )\r\n if (getSameAddChildInterviewsRes.resultCode) {\r\n // 失敗時\r\n setDeleteResultCode(getSameAddChildInterviewsRes.resultCode)\r\n } else {\r\n // 成功時\r\n // お子さま名を設定\r\n if (getSameAddChildInterviewsRes.result && getSameAddChildInterviewsRes.result.length > 0) {\r\n setAddChildInfo(getSameAddChildInterviewsRes.result)\r\n setIsConfirmDialogOpen(true)\r\n } else {\r\n // 登録処理を実行する\r\n decideFinalFlag = true\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n\r\n if (decideFinalFlag) {\r\n // 登録処理\r\n decideFinal(false)\r\n }\r\n }, [addOperationLog, dispatch, errorHandle, decideFinal, history, deleteEntry])\r\n\r\n // 同時キャンセル確認ダイアログ:同時更新しない\r\n const onConfirmDialogNo = useCallback(async() => {\r\n // ダイアログを閉じて登録処理を実行\r\n setIsConfirmDialogOpen(false)\r\n decideFinal(false)\r\n },[decideFinal])\r\n\r\n // 同時キャンセル確認ダイアログ:同時更新する\r\n const onConfirmDialogYes = useCallback(async() => {\r\n // ダイアログを閉じて登録処理を実行\r\n setIsConfirmDialogOpen(false)\r\n decideFinal(true)\r\n },[decideFinal])\r\n\r\n // 同時キャンセル確認ダイアログ:閉じる\r\n const onConfirmDialogClose = useCallback(() => {\r\n //閉じたくないので処理なし\r\n },[])\r\n\r\n return {\r\n deleteEntry,\r\n deleteResultCode,\r\n decide,\r\n isConfirmDialogOpen,\r\n onConfirmDialogClose,\r\n onConfirmDialogNo,\r\n onConfirmDialogYes,\r\n sameAddChildInfo,\r\n }\r\n}\r\n\r\n/**\r\n * キャンセルAPI呼び出し\r\n */\r\nconst deleteInterview = (\r\n interviewNo: string,\r\n updateDatetime: string,\r\n sameUpdateFlag: boolean,\r\n sameAddChildInfo: GetSameAddChildInterviewsDto[],\r\n cancelReason?: string\r\n) => {\r\n return executeDeleteInterview(\r\n interviewNo,\r\n {\r\n cancelReasonCategory: blankToNull(cancelReason),\r\n updateDatetime,\r\n sameAddChildren:\r\n (!sameUpdateFlag || !sameAddChildInfo.length) ? [] : sameAddChildInfo.map((child) => {\r\n return (\r\n {\r\n interviewsNo: child.interviewNo,\r\n childId: child.childId,\r\n interviewUpdateDatetime: child.interviewUpdateDatetime,\r\n }\r\n )\r\n }),\r\n }\r\n )\r\n}\r\n","import { Box, Stack } from '@mui/material'\r\nimport { getCancelReasonLabel, getInterviewReservationDeleteSteps } from '../../containers/common/codeMaster'\r\nimport { interviewReservationDeleteStep, interviewStatus } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/interviewReservationDeleteConfirmation/interviewReservationDeleteConfirmationService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\r\nimport { InfoCard } from '../components/common/infoCard'\r\nimport { InterviewDetailContent } from '../components/common/reservationDetail/interviewDetailContent'\r\nimport { LabelGItem, ValueGItem } from '../components/common/reservationDetail/reservationDetailParts'\r\nimport { StepBar } from '../components/common/stepBar'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\nimport { Dialog } from '../components/common/dialog'\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\r\nimport { ButtonS } from '../components/common/buttons/buttonS'\r\n\r\nexport const InterviewReservationDeleteConfirmation = () => {\r\n const {\r\n deleteEntry,\r\n deleteResultCode,\r\n decide,\r\n isConfirmDialogOpen,\r\n onConfirmDialogClose,\r\n onConfirmDialogNo,\r\n onConfirmDialogYes,\r\n sameAddChildInfo\r\n } = useAction()\r\n\r\n if (deleteEntry == null) {\r\n return \r\n }\r\n return (\r\n \r\n \r\n {translate('interviewReservationDeleteConfirmation.button.no')}\r\n {translate('interviewReservationDeleteConfirmation.button.yes')}\r\n \r\n }\r\n maxWidth={'xs'}\r\n fullWidth\r\n >\r\n <>\r\n {translate('interviewReservationDeleteConfirmation.text.sameAddChildDialog')}\r\n
      \r\n {sameAddChildInfo && sameAddChildInfo.map((child, idx) => {\r\n return (\r\n
    • {child.childName}
    • \r\n )\r\n })}\r\n
    \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {deleteEntry.status !== interviewStatus.wait && (\r\n \r\n )}\r\n\r\n \r\n \r\n {deleteEntry.status !== interviewStatus.wait && (\r\n <>\r\n {translate('interviewReservationDeleteConfirmation.label.cancelReason')}\r\n {getCancelReasonLabel(deleteEntry.cancelReason)}\r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n\r\n {!!deleteResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('interviewReservationDeleteConfirmation.button.decision')}\r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector, batch } from 'react-redux'\r\nimport { useLocation, useHistory } from 'react-router-dom'\r\n// import { translate } from '../../i18n'\r\nimport {\r\n signIn,\r\n // verifyTel,\r\n // verifyEmail,\r\n // getAuthenticatedUser,\r\n} from '../../utils/authUtil'\r\nimport {\r\n // notifyMessage,\r\n showLoading,\r\n} from '../common/store/slices/application'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport {\r\n selectIsLoggedIn,\r\n selectIsOTPAuthenticated,\r\n selectIsVerifiedEmail,\r\n selectIsVerifiedTel,\r\n setIsOTPAuthenticated,\r\n setLogin,\r\n} from '../common/store/slices/authority'\r\nimport { setLoginForm } from '../common/store/slices/login'\r\nimport { setCognitoUser } from '../common/store/slices/cognitoUser'\r\nimport { newPasswordUrl, loginUrl } from '../common/constant/appUrl'\r\nimport { executeGetSessionSettingMst } from '../../dataAccess/webApi/dao/sessionSettingMstDao'\r\nimport {\r\n executeGetAccountOtp,\r\n executePutAccountAuthentication,\r\n executePutAccountOtp,\r\n} from '../../dataAccess/webApi/dao/accountDao'\r\nimport { yesNo } from '../common/constant/classification'\r\n\r\ninterface LocationState {\r\n from: Location\r\n}\r\n\r\ninterface Inputs {\r\n email: string\r\n password: string\r\n}\r\n\r\ninterface SessionSettingMst {\r\n mfaType: string | null\r\n mfaPeriod: number | null\r\n}\r\n\r\n/**\r\n * ログイン画面フォームアクション\r\n */\r\nexport const useAction = () => {\r\n const dispatch = useDispatch()\r\n const location = useLocation()\r\n const isLoggedIn = useSelector(selectIsLoggedIn)\r\n const isOTPAuthenticated = useSelector(selectIsOTPAuthenticated)\r\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\r\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\r\n const { ssoUseFlag, ssoUseName, smsSubscriptionFlag, phoneCertificationFlag } = useSelector(selectSystemControl)\r\n const [sessionSettingMst, setSessionSettingMst] = useState()\r\n\r\n const formMethods = useForm()\r\n const history = useHistory()\r\n\r\n const from = location.state?.from\r\n\r\n const initialize = useCallback(async () => {\r\n const [sessionSettingMstRes] = await Promise.all([\r\n await getSessionSettingMst(),\r\n ])\r\n\r\n setSessionSettingMst({\r\n mfaType: sessionSettingMstRes.mfaType,\r\n mfaPeriod: sessionSettingMstRes.mfaPeriod,\r\n })\r\n }, [])\r\n\r\n useEffect(() => {\r\n initialize()\r\n }, [])\r\n\r\n const isLastOtpLoginExpired = (\r\n lastOtpLoginDatetimeString: string,\r\n mfaPeriodString: string\r\n ) => {\r\n const lastOtpLoginDatetime = new Date(lastOtpLoginDatetimeString)\r\n\r\n const today = new Date()\r\n\r\n const mfaPeriod = parseInt(mfaPeriodString, 10)\r\n\r\n const pastDate = new Date(today.getTime() - mfaPeriod * 24 * 60 * 60 * 1000)\r\n\r\n return lastOtpLoginDatetime <= pastDate\r\n }\r\n\r\n /**\r\n * フォーム送信イベント処理\r\n * @param data フォーム入力値\r\n */\r\n const onSubmit = useCallback(\r\n async (data: Inputs) => {\r\n // 入力情報を取得\r\n const { email, password } = data\r\n\r\n dispatch(\r\n // ログインリクエスト中にローディングアイコンを表示する\r\n showLoading((async () => {\r\n try {\r\n // ログインリクエスト\r\n const cognitoUser = await signIn(email, password)\r\n\r\n if (cognitoUser.challengeName === 'NEW_PASSWORD_REQUIRED') {\r\n // 初期パスワードでsignIn実行後、新パスワードを設定する\r\n // セッション情報を持つCognitoUserオブジェクトをインスタンス生成できないため、Reduxストアにそのまま格納する\r\n dispatch(setCognitoUser(cognitoUser))\r\n history.push(newPasswordUrl.url(), { from: loginUrl.url() })\r\n }\r\n } catch (error) {\r\n console.log(error)\r\n // エラーメッセージ表示\r\n dispatch(setLoginForm({\r\n error: error instanceof Error ? error.message : String(error)\r\n }));\r\n }\r\n\r\n const authLogRes = await executeGetAccountOtp()\r\n\r\n const { emailVerifiedFlag, telVerifiedFlag, userId, lastOtpLoginDatetime } = authLogRes.result\r\n\r\n // メールアドレス・電話番号の検証可否\r\n const isVerifiedEmail = emailVerifiedFlag === yesNo.yes\r\n const isVerifiedTel = telVerifiedFlag === yesNo.yes\r\n const isVerifiedPending = !isVerifiedEmail || (!isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes)\r\n\r\n batch(async () => {\r\n dispatch(setLogin({\r\n loginId: email,\r\n verifications: { tel: isVerifiedTel, email: isVerifiedEmail },\r\n }))\r\n\r\n // エラーメッセージクリア\r\n dispatch(setLoginForm({}))\r\n\r\n if (!isVerifiedEmail) {\r\n dispatch(setIsOTPAuthenticated(true))\r\n await executePutAccountAuthentication({ userId, loginFlag: '1' })\r\n }\r\n\r\n if (isVerifiedPending || sessionSettingMst?.mfaType === '0') {\r\n dispatch(setIsOTPAuthenticated(true))\r\n } else if (sessionSettingMst?.mfaType === '2') {\r\n if (lastOtpLoginDatetime && sessionSettingMst?.mfaPeriod) {\r\n const isExpired = isLastOtpLoginExpired(lastOtpLoginDatetime, sessionSettingMst?.mfaPeriod?.toString())\r\n if (!isExpired) {\r\n dispatch(setIsOTPAuthenticated(true))\r\n }\r\n } else {\r\n dispatch(setIsOTPAuthenticated(true))\r\n }\r\n }\r\n });\r\n\r\n verifyMfa(userId ?? '', isVerifiedEmail, isVerifiedTel, lastOtpLoginDatetime ?? '')\r\n })\r\n )\r\n )\r\n },\r\n [sessionSettingMst]\r\n )\r\n\r\n const verifyMfa = async (userId: string, isVerifiedEmail: boolean, isVerifiedTel: boolean, lastOtpLoginDatetime: string) => {\r\n switch (sessionSettingMst?.mfaType) {\r\n case '0':\r\n await executePutAccountAuthentication({ userId, loginFlag: '1' })\r\n break\r\n case '1':\r\n if (isVerifiedEmail && isVerifiedTel) {\r\n await executePutAccountOtp({ userId })\r\n }\r\n break\r\n case '2':\r\n if (lastOtpLoginDatetime && sessionSettingMst.mfaPeriod) {\r\n if (isLastOtpLoginExpired(lastOtpLoginDatetime, sessionSettingMst.mfaPeriod?.toString())) {\r\n await executePutAccountOtp({ userId })\r\n }\r\n }\r\n break\r\n }\r\n }\r\n\r\n return {\r\n isLoggedIn,\r\n isOTPAuthenticated,\r\n formMethods,\r\n onSubmit,\r\n isVerifiedEmail,\r\n isVerifiedTel,\r\n from,\r\n ssoUseFlag,\r\n ssoUseName,\r\n smsSubscriptionFlag,\r\n phoneCertificationFlag,\r\n }\r\n}\r\n\r\nconst getSessionSettingMst = async () => {\r\n const apiResponse = await executeGetSessionSettingMst()\r\n return { mfaType: apiResponse.result.mfaType, mfaPeriod: apiResponse.result.mfaPeriod }\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { ButtonContainedBase } from './buttonContainedBase'\r\n\r\n/**\r\n * primaryカラーのボタンコントロールLサイズ。\r\n */\r\nexport const ButtonM = styled(ButtonContainedBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n padding: '10px 10px',\r\n}))\r\n","import { styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\n\r\ninterface SuccessStatusLabelProps {\r\n children: ReactNode\r\n /** styled()でスタイル変更した際に設定されるclass属性 */\r\n className?: string\r\n}\r\n\r\nconst Root = styled('span')(({ theme }) => ({\r\n color: theme.palette.success.main,\r\n}))\r\n\r\n/** 注目させたい文言に使用する赤字のラベルコントロール */\r\nexport const SuccessStatusLabel = (props: SuccessStatusLabelProps) => {\r\n return {props.children}\r\n}\r\n","import { useSelector, useDispatch } from 'react-redux'\r\nimport { Grid, styled } from '@mui/material'\r\nimport { Redirect } from 'react-router'\r\nimport {\r\n accountCreateFormUrl,\r\n forgotPasswordUrl,\r\n identityEmailVerificationUrl,\r\n identityVerificationUrl,\r\n rootUrl,\r\n ssoUrl,\r\n loginUrl,\r\n otpUrl,\r\n} from '../../containers/common/constant/appUrl'\r\nimport { useAction } from '../../containers/login/loginService'\r\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\r\nimport { Link } from '../components/common/link'\r\nimport { translate } from '../../i18n'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { IdentityRedirect } from '../components/common/identityRedirect'\r\nimport { ButtonM } from '../components/common/buttons/buttonM'\r\nimport { ElevatedCard } from '../components/common/elevatedCard'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { SuccessStatusLabel } from '../components/common/successStatusLabel'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { setLoginForm, selectLoginError } from '../../containers/common/store/slices/login'\r\nimport { selectIsSuccessResetPassword } from '../../containers/common/store/slices/resetPassword'\r\n\r\n// メッセージコンテナ\r\nconst NoticeGContainer = styled(GItemContainer)({\r\n justifyContent: 'center',\r\n paddingBottom: 20,\r\n})\r\n\r\n// メインコンテンツコンテナ\r\nconst CustomDivContainer = styled('div')(({ theme }) => ({\r\n margin: '10px auto',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '600px',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n },\r\n}))\r\n\r\n// メインコンテンツのサブコンテナ\r\nconst CustomDivSubContainer = styled('div')(({ theme }) => ({\r\n margin: '10px auto',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '500px',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '100%',\r\n },\r\n}))\r\n\r\n// SSOボタンコンテナ\r\nconst SsoButtonContainer = styled(GContainer)({\r\n justifyContent: 'center',\r\n margin: '20px 0px',\r\n})\r\n\r\n// SSOボタン\r\nconst SsoLoginButton = styled(ButtonM)(({ theme }) => ({\r\n borderRadius: '3px',\r\n [theme.breakpoints.up('sm')]: {\r\n width: '500px',\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n width: '90%',\r\n },\r\n backgroundColor: '#c8e3f3',\r\n color: 'black',\r\n \"&:hover\": {\r\n backgroundColor: '#8ecef5',\r\n },\r\n}))\r\n\r\n/**\r\n * ログイン画面UIコンポーネント\r\n */\r\nexport const Login = () => {\r\n const { isLoggedIn,\r\n isOTPAuthenticated,\r\n formMethods,\r\n onSubmit,\r\n isVerifiedEmail,\r\n isVerifiedTel,\r\n from,\r\n ssoUseFlag,\r\n ssoUseName,\r\n smsSubscriptionFlag,\r\n phoneCertificationFlag,\r\n } = useAction()\r\n const error = useSelector(selectLoginError)\r\n const isSuccessResetPassword = useSelector(selectIsSuccessResetPassword)\r\n const dispatch = useDispatch()\r\n \r\n if (isLoggedIn) {\r\n if (isVerifiedEmail && isVerifiedTel) {\r\n return isOTPAuthenticated ? : \r\n } else if (isVerifiedEmail && smsSubscriptionFlag === yesNo.no || phoneCertificationFlag === yesNo.no) {\r\n return \r\n } else if (!isVerifiedEmail) {\r\n return \r\n } else if (!isVerifiedTel && smsSubscriptionFlag === yesNo.yes && phoneCertificationFlag === yesNo.yes) { \r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n {/* 左余白 */}\r\n \r\n\r\n {/* メインコンテンツ */}\r\n \r\n \r\n\r\n {/* タイトル */}\r\n \r\n \r\n \r\n {/* パスワード変更完了メッセージ */}\r\n {isSuccessResetPassword &&\r\n \r\n \r\n \r\n {translate('resetPassword.text.success')}\r\n \r\n \r\n \r\n }\r\n \r\n {/* エラーメッセージ表示 */}\r\n {error &&\r\n \r\n \r\n \r\n {translate(error)}\r\n \r\n \r\n \r\n }\r\n \r\n {/* メールアドレス */}\r\n \r\n {translate('login.label.email')}\r\n \r\n \r\n \r\n {/* パスワード */}\r\n \r\n {translate('login.label.password')}\r\n \r\n \r\n \r\n {/* パスワードリセット */}\r\n \r\n dispatch(setLoginForm({}))}\r\n >\r\n {translate('login.link.forgotPassword')}\r\n \r\n \r\n \r\n {/* ログインボタン */}\r\n \r\n \r\n {translate('login.button.login')}\r\n \r\n \r\n \r\n \r\n \r\n {/* SSOボタン */}\r\n \r\n { ssoUseFlag === yesNo.yes && (\r\n \r\n {translate('login.button.ssoLink', ssoUseName ?? '')}\r\n \r\n )}\r\n \r\n \r\n {/* アカウント作成画面に遷移 */}\r\n \r\n dispatch(setLoginForm({}))}\r\n >\r\n {translate('login.link.accountCreate')}\r\n \r\n \r\n \r\n \r\n\r\n {/* 右余白 */}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { useCallback } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { resetPasswordUrl, forgotPasswordUrl } from '../common/constant/appUrl'\nimport { setResetPassword } from '../common/store/slices/resetPassword'\nimport { forgotPassword } from '../../utils/authUtil'\n\ninterface Inputs {\n email: string\n}\n\n/**\n * ワンタイムパスワード要求画面フォームアクション\n */\nexport const useAction = () => {\n const formMethods = useForm()\n const history = useHistory()\n const dispatch = useDispatch()\n\n /**\n * フォーム送信イベント処理\n * @param data フォーム入力値\n */\n const onSubmit = useCallback(\n async (data: Inputs) => {\n // 入力情報を取得\n const { email } = data\n\n try {\n // パスワードリセットのためのワンタイムパスワード要求\n await forgotPassword(email)\n\n // Reduxストアにメールアドレスを送信\n dispatch(setResetPassword({email: email}))\n \n // パスワードリセット画面に遷移\n history.push(resetPasswordUrl.url(), { from: forgotPasswordUrl.url() })\n\n } catch (error) {\n // エラーメッセージ表示\n dispatch(setResetPassword({\n error: error instanceof Error ? error.message : String(error),\n }));\n }\n },\n []\n )\n\n return {\n formMethods,\n onSubmit,\n }\n}\n","import { useSelector, useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { Grid, styled } from '@mui/material'\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { ButtonM } from '../components/common/buttons/buttonM'\nimport { loginUrl } from '../../containers/common/constant/appUrl'\nimport { ElevatedCard } from '../components/common/elevatedCard'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { Form } from '../components/common/inputs/form'\nimport { ButtonOutlinedBase } from '../components/common/buttons/buttonOutlinedBase'\nimport { useAction } from '../../containers/forgotPassword/forgotPasswordService'\nimport { setResetPassword, selectResetPasswordError } from '../../containers/common/store/slices/resetPassword'\nimport { translate } from '../../i18n'\n\n// ログイン画面に戻るボタン\nconst BackToLoginButton = styled(ButtonOutlinedBase)(({ theme }) => ({\n color: theme.palette.primary.main,\n border: 'solid',\n}))\n\n// メッセージコンテナ\nconst NoticeGContainer = styled(GItemContainer)({\n justifyContent: 'center',\n paddingBottom: 20,\n})\n\n// 説明文コンテナ\nconst DescriptionContainer = styled('p')({\n whiteSpace: 'pre-wrap',\n})\n\n// メインコンテンツコンテナ\nconst CustomDivContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '600px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n// メインコンテンツのサブコンテナ\nconst CustomDivSubContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '500px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n/**\n * ワンタイムパスワード要求画面UIコンポーネント\n */\nexport const ForgotPassword= () => {\n const { formMethods, onSubmit } = useAction()\n const error = useSelector(selectResetPasswordError)\n const dispatch = useDispatch()\n const history = useHistory()\n \n return (\n \n
    \n \n {/* 左余白 */}\n \n\n {/* メインコンテンツ */}\n \n \n\n {/* タイトル */}\n \n \n {/* 説明 */}\n \n \n {translate('forgotPassword.text.description')}\n \n \n \n {/* エラーメッセージ表示 */}\n {error &&\n \n \n \n {translate(error)}\n \n \n \n }\n \n {/* メールアドレス */}\n \n {translate('forgotPassword.label.email')}\n \n \n \n {/* ワンタイムパスワード送信ボタン */}\n \n \n {translate('forgotPassword.button.requestCode')}\n \n \n \n {/* ログインに戻るボタン */}\n \n {\n dispatch(setResetPassword({}))\n history.push(loginUrl.url())\n }}\n >\n {translate('forgotPassword.button.backToLogin')}\n \n \n \n \n \n \n \n {/* 右余白 */}\n \n \n
    \n
    \n )\n}","import { useCallback } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { useHistory, useLocation } from 'react-router-dom'\nimport { loginUrl, forgotPasswordUrl } from '../common/constant/appUrl'\nimport { setResetPassword, selectResetPasswordEntry } from '../common/store/slices/resetPassword'\nimport { translate } from '../../i18n'\nimport { forgotPasswordSubmit } from '../../utils/authUtil'\nimport { setFormErrors } from '../../utils/reactUtil'\nimport { usePasswordValidationMessage } from '../../containers/common/passwordRule'\n\ninterface LocationState {\n from: string\n}\n\ninterface Inputs {\n oneTimeCode: string\n password: string\n passwordConfirmation: string\n}\n\ntype InputTypePropName = keyof Inputs\n\n/**\n * パスワード再設定画面フォームアクション\n */\nexport const useAction = () => {\n const formMethods = useForm()\n const history = useHistory()\n const entry = useSelector(selectResetPasswordEntry)\n const dispatch = useDispatch()\n const location = useLocation()\n const { validationMessage, passwordRule } = usePasswordValidationMessage()\n \n const from = location.state?.from\n\n /**\n * 項目間などの入力値妥当性検査\n * @param data 入力値\n * @returns エラーが存在する場合true\n */\n const validateItems = useCallback(\n (data: Inputs) => {\n const errors: { name: InputTypePropName; message: string }[] = []\n \n if (data.password !== data.passwordConfirmation) {\n errors.push({\n name: 'passwordConfirmation',\n message: translate('system.error.notSamePassword'),\n })\n }\n\n setFormErrors(formMethods, errors)\n\n return !!errors.length\n },\n [formMethods]\n )\n\n /**\n * フォーム送信イベント処理\n * @param data フォーム入力値\n */\n const onSubmit = useCallback(\n async (data: Inputs) => {\n if (validateItems(data)) {\n return\n }\n\n // 入力情報を取得\n const { oneTimeCode, password } = data\n\n // Reduxストアからワンタイムパスワード要求時に入力したメールアドレスを取得\n const email = entry?.email\n \n try {\n if (email) {\n // パスワードリセットリクエスト\n await forgotPasswordSubmit(email, oneTimeCode, password)\n } else {\n // ワンタイムパスワード要求時に入力したメールアドレスが取得できなかった場合(通常は想定されない)\n // ワンタイムパスワード要求画面にリダイレクトし, 再度操作を促す\n history.push(forgotPasswordUrl.url())\n throw new Error(translate('system.error.unexpectedError'))\n }\n\n // パスワード変更ステータスを更新\n dispatch(setResetPassword({\n isSuccessResetPassword: true,\n }))\n\n // ログイン画面に遷移\n history.push(loginUrl.url())\n\n } catch (error) {\n // エラーメッセージ表示\n if (!(error instanceof Error)) {\n dispatch(setResetPassword({\n error: String(error)\n }));\n } else if (error.name === 'CodeMismatchException') {\n // Invalid verification code provided, please try again. に対応する日本語メッセージは\n // 電話番号という語を含んでいるため使用できない.\n dispatch(setResetPassword({\n error: translate('resetPassword.error.oneTimeCodeError')\n }));\n } else {\n dispatch(setResetPassword({\n error: error.message\n }));\n }\n }\n },\n [validateItems]\n )\n\n return {\n formMethods,\n onSubmit,\n from,\n validationMessage,\n passwordRule,\n }\n}\n","import { useSelector, useDispatch } from 'react-redux'\nimport { Redirect } from 'react-router'\nimport { useHistory } from 'react-router-dom'\nimport { Grid, styled, Tooltip, IconButton } from '@mui/material'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\nimport { Form } from '../components/common/inputs/form'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { ButtonM } from '../components/common/buttons/buttonM'\nimport { ElevatedCard } from '../components/common/elevatedCard'\nimport { loginUrl, forgotPasswordUrl } from '../../containers/common/constant/appUrl'\nimport { setResetPassword, selectResetPasswordError } from '../../containers/common/store/slices/resetPassword'\nimport { useAction } from '../../containers/resetPassword/resetPasswordService'\nimport { translate } from '../../i18n'\nimport { HelpIcon } from '../components/common/icons/helpIcon'\nimport { ButtonOutlinedBase } from '../components/common/buttons/buttonOutlinedBase'\n\n// ログイン画面に戻るボタン\nconst BackToLoginButton = styled(ButtonOutlinedBase)(({ theme }) => ({\n color: theme.palette.primary.main,\n border: 'solid',\n}))\n\n// メッセージコンテナ\nconst NoticeGContainer = styled(GItemContainer)({\n justifyContent: 'center',\n paddingBottom: 20,\n})\n\n// 説明文コンテナ\nconst DescriptionContainer = styled('p')({\n whiteSpace: 'pre-wrap',\n})\n\n// 空行を挿入するための部品\nconst EmptyRow = styled(GItem) ({\n margin: 10,\n})\n\n// パスワードヘルプアイコン\nconst HelpIconButton = styled(IconButton)({ fontSize: '1.8rem', padding: 0, marginLeft: '8px' })\n\n// メインコンテンツコンテナ\nconst CustomDivContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '600px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n// メインコンテンツのサブコンテナ\nconst CustomDivSubContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '500px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n/**\n * パスワード再設定画面UIコンポーネント\n */\nexport const ResetPassword= () => {\n const { formMethods, onSubmit, from, validationMessage, passwordRule } = useAction()\n const error = useSelector(selectResetPasswordError)\n const dispatch = useDispatch()\n const history = useHistory()\n \n if (from !== forgotPasswordUrl.url()) {\n // ワンタイムパスワード要求画面以外からの遷移した場合, ワンタイムパスワード要求画面にリダイレクト\n return \n }\n\n return (\n \n
    \n \n {/* 左余白 */}\n \n\n {/* メインコンテンツ */}\n \n \n\n {/* タイトル */}\n \n \n {/* 説明 */}\n \n \n {translate('resetPassword.text.description')}\n \n \n \n {/* エラーメッセージ */}\n {error &&\n \n \n \n {translate(error)}\n \n \n \n }\n \n {/* ワンタイムパスワード入力 */}\n \n {translate('resetPassword.label.code')}\n \n {/* ワンタイムパスワード入力欄と新パスワード入力欄の間に空白を入れる */}\n \n \n \n {/* パスワード入力 */}\n \n {translate('resetPassword.label.password')}\n \n \n \n \n \n \n \n \n {/* パスワード再入力 */}\n \n {translate('resetPassword.label.passwordConfirmation')}\n \n \n \n {/* パスワード再設定送信ボタン */}\n \n \n {translate('resetPassword.button.submit')}\n \n \n \n {/* ログインに戻るボタン */}\n \n {\n dispatch(setResetPassword({}))\n history.push(loginUrl.url())\n }}\n >\n {translate('resetPassword.button.backToLogin')}\n \n \n \n \n \n \n \n {/* 右余白 */}\n \n \n
    \n
    \n )\n}","import { useCallback } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\nimport { selectCognitoUser } from '../common/store/slices/cognitoUser'\nimport { setFormErrors } from '../../utils/reactUtil'\nimport { translate } from '../../i18n'\nimport { completeNewPassword } from '../../utils/authUtil'\nimport { getAuthenticatedUser } from '../../utils/authUtil'\nimport {\n setLogin,\n setIsOTPAuthenticated,\n} from '../common/store/slices/authority'\nimport { loginUrl } from '../common/constant/appUrl'\nimport { clearCognitoUser } from '../common/store/slices/cognitoUser'\nimport { usePasswordValidationMessage } from '../../containers/common/passwordRule'\n\ninterface Inputs {\n password: string\n passwordConfirmation: string\n}\n\ntype InputTypePropName = keyof Inputs\n\n/**\n * 初期パスワード変更画面フォームアクション\n */\nexport const useAction = () => {\n const formMethods = useForm()\n const { ssoUseFlag, ssoUseName } = useSelector(selectSystemControl)\n const cognitoUser = useSelector(selectCognitoUser)\n const history = useHistory()\n const dispatch = useDispatch()\n const { validationMessage, passwordRule } = usePasswordValidationMessage()\n\n /**\n * 項目間などの入力値妥当性検査\n * @param data 入力値\n * @returns エラーが存在する場合true\n */\n const validateItems = useCallback(\n (data: Inputs) => {\n const errors: { name: InputTypePropName; message: string }[] = []\n \n if (data.password !== data.passwordConfirmation) {\n errors.push({\n name: 'passwordConfirmation',\n message: translate('system.error.notSamePassword'),\n })\n }\n\n setFormErrors(formMethods, errors)\n\n return !!errors.length\n },\n [formMethods]\n )\n\n /**\n * フォーム送信イベント処理\n * @param data フォーム入力値\n */\n const onSubmit = useCallback(\n async (data: Inputs) => {\n if (validateItems(data)) {\n return\n }\n\n // 入力情報を取得\n const { password } = data\n \n try {\n if (cognitoUser) {\n // 初期パスワード変更\n await completeNewPassword(cognitoUser, password)\n \n // ログイン後のユーザー情報を取得\n const user = await getAuthenticatedUser(true)\n\n // メールアドレス・電話番号の検証可否を取得\n const isVerifiedEmail = !!user.attributes.email_verified\n const isVerifiedTel = !!user.attributes.phone_number_verified\n\n // Reduxストアにログインエントリを送信\n dispatch(\n setLogin({\n loginId: user.attributes.email,\n verifications: { tel: isVerifiedTel, email: isVerifiedEmail },\n })\n )\n\n dispatch(setIsOTPAuthenticated(true))\n \n dispatch(clearCognitoUser());\n\n history.push(loginUrl.url())\n }\n } catch (error) {\n console.log(error)\n }\n },\n []\n )\n \n return {\n formMethods,\n onSubmit,\n ssoUseFlag,\n ssoUseName,\n validationMessage,\n passwordRule,\n }\n}\n","import { useSelector, useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { Grid, styled, Tooltip, IconButton } from '@mui/material'\nimport {\n accountCreateFormUrl,\n ssoUrl,\n loginUrl,\n} from '../../containers/common/constant/appUrl'\nimport { useAction } from '../../containers/newPassword/newPasswordService'\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\nimport { Link } from '../components/common/link'\nimport { translate } from '../../i18n'\nimport { Form } from '../components/common/inputs/form'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { ButtonM } from '../components/common/buttons/buttonM'\nimport { ButtonOutlinedBase } from '../components/common/buttons/buttonOutlinedBase'\nimport { ElevatedCard } from '../components/common/elevatedCard'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { yesNo } from '../../containers/common/constant/classification'\nimport { setLoginForm, selectLoginError } from '../../containers/common/store/slices/login'\nimport { HelpIcon } from '../components/common/icons/helpIcon'\n\n// メッセージコンテナ\nconst NoticeGContainer = styled(GItemContainer)({\n justifyContent: 'center',\n paddingBottom: 20,\n})\n\n// メインコンテンツコンテナ\nconst CustomDivContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '600px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n// メインコンテンツのサブコンテナ\nconst CustomDivSubContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '500px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n// パスワードヘルプアイコン\nconst HelpIconButton = styled(IconButton)({ fontSize: '1.8rem', padding: 0, marginLeft: '8px' })\n\n// ログイン画面に戻るボタン\nconst BackToLoginButton = styled(ButtonOutlinedBase)(({ theme }) => ({\n color: theme.palette.primary.main,\n border: 'solid',\n}))\n\n// SSOボタンコンテナ\nconst SsoButtonContainer = styled(GContainer)({\n justifyContent: 'center',\n margin: '20px 0px',\n})\n\n// SSOボタン\nconst SsoLoginButton = styled(ButtonM)(({ theme }) => ({\n borderRadius: '3px',\n [theme.breakpoints.up('sm')]: {\n width: '500px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '90%',\n },\n backgroundColor: '#c8e3f3',\n color: 'black',\n \"&:hover\": {\n backgroundColor: '#8ecef5',\n },\n}))\n\n/**\n * ログイン画面UIコンポーネント\n */\nexport const NewPassword = () => {\n const { formMethods, onSubmit, ssoUseFlag, ssoUseName, validationMessage, passwordRule } = useAction()\n const error = useSelector(selectLoginError)\n const dispatch = useDispatch()\n const history = useHistory()\n\n return (\n \n
    \n \n {/* 左余白 */}\n \n\n {/* メインコンテンツ */}\n \n \n\n {/* タイトル */}\n \n \n \n {/* エラーメッセージ表示 */}\n {error &&\n \n \n \n {translate(error)}\n \n \n \n }\n \n {/* 新パスワード */}\n \n {translate('resetPassword.label.password')}\n \n \n \n \n \n \n \n\n {/* パスワード再入力 */}\n \n {translate('resetPassword.label.passwordConfirmation')}\n \n \n \n {/* 新パスワード送信ボタン */}\n \n \n {translate('newPassword.button.submit')}\n \n \n \n {/* ログインに戻るボタン */}\n \n {\n history.push(loginUrl.url())\n }}\n >\n {translate('forgotPassword.button.backToLogin')}\n \n \n \n \n \n {/* SSOボタン */}\n \n { ssoUseFlag === yesNo.yes && (\n \n {translate('login.button.ssoLink', ssoUseName ?? '')}\n \n )}\n \n \n {/* アカウント作成画面に遷移 */}\n \n dispatch(setLoginForm({}))}\n >\n {translate('login.link.accountCreate')}\n \n \n \n \n\n {/* 右余白 */}\n \n \n
    \n
    \n )\n}\n","import MuiDownloadIcon from '@mui/icons-material/Download'\r\nimport React from 'react'\r\nimport { IconProps } from './iconBase'\r\n\r\n/** ダウンロード操作を示すアイコン */\r\nexport const DownloadIcon = (props: IconProps) => {\r\n return \r\n}\r\n","import { useState, useCallback, useEffect } from 'react'\r\nimport { Grid, Stack, Button, styled } from '@mui/material'\r\nimport { useSelector } from 'react-redux'\r\nimport { selectSystemControl } from '../../containers/common/store/slices/systemControl'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { GContainer, GItem } from '../components/common/grids'\r\nimport { DownloadIcon } from '../components/common/icons/downloadIcon'\r\nimport { downloadFile } from '../../utils/reactUtil'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { GetFormatMessage } from '../../containers/common/messageConverter'\r\nimport awsmobile from '../../aws-exports'\r\nimport {\r\n ListObjectsCommand,\r\n ListObjectsCommandInput,\r\n ListObjectsCommandOutput,\r\n S3Client,\r\n} from '@aws-sdk/client-s3'\r\nimport { Auth } from 'aws-amplify'\r\nconst bucketUrl = `https://{0}.s3.{1}.amazonaws.com/{2}/`\r\n\r\nexport const Manual = () => {\r\n const [citizenFileName, setCitizenFileName] = useState(['', '', '', '', ''])\r\n console.log(citizenFileName)\r\n\r\n const bucketName = useSelector(selectSystemControl).s3BucketNameManual\r\n const region = awsmobile.aws_project_region\r\n\r\n const initialize = useCallback(async () => {\r\n\r\n try {\r\n\r\n const s3 = new S3Client({\r\n region: region,\r\n credentials: await Auth.currentCredentials(),\r\n })\r\n\r\n const param: ListObjectsCommandInput = {\r\n Bucket: bucketName,\r\n Prefix: 'citizen' + '/',\r\n }\r\n\r\n // オブジェクトリストを取得\r\n const listObjectsResults = await s3.send(new ListObjectsCommand(param))\r\n\r\n if (listObjectsResults.Contents !== undefined) {\r\n const pdfFiles = listObjectsResults.Contents\r\n .filter((obj) => obj.Key && /\\.pdf$/i.test(obj.Key)) // Keyが存在し、.pdfで終わるものをフィルタリング\r\n .map((obj) => ({\r\n Key: obj.Key, // Keyを取得\r\n LastModified: obj.LastModified, // LastModifiedを取得\r\n }));\r\n\r\n const prefixes = ['01', '02', '03', '04', '05']\r\n\r\n const fileNameList = [];\r\n\r\n // todoリファクタリング 関数化\r\n for (let i = 0; i < prefixes.length; i++) {\r\n const regex = new RegExp(`/${prefixes[i]}/`); // 正規表現を動的に生成\r\n const folderFiles = pdfFiles.filter(file => file.Key && regex.test(file.Key));\r\n\r\n const targetObject = folderFiles.sort((a, b) => {\r\n // 最終更新日で降順ソート\r\n const timeA = a.LastModified?.getTime() ?? 0\r\n const timeB = b.LastModified?.getTime() ?? 0\r\n return timeB - timeA\r\n })[0] ?? null\r\n\r\n if (targetObject !== null) {\r\n const objectKey = targetObject?.Key ?? ''\r\n // s3のキー名からファイル名を取得\r\n const targetFileName = objectKey.split('/').pop()\r\n fileNameList.push(targetFileName)\r\n }\r\n }\r\n // undefinedの可能性があるファイルを除去\r\n const trimedFileNameList = fileNameList.filter((file): file is string => file !== undefined)\r\n\r\n // useStateに格納\r\n setCitizenFileName(trimedFileNameList)\r\n }\r\n } catch (err) {\r\n console.log(err)\r\n }\r\n }, [])\r\n useEffect(() => {\r\n initialize()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // pdfダウンロード\r\n const downloadClick = async (folderNum: string) => {\r\n // 認証情報を使用して S3 クライアントを初期化\r\n const s3 = new S3Client({\r\n region: region,\r\n credentials: await Auth.currentCredentials(),\r\n })\r\n\r\n // Prefix 配下のオブジェクトをリスト化するためのパラメータ\r\n const param: ListObjectsCommandInput = {\r\n Bucket: bucketName,\r\n Prefix: 'citizen' + '/' + folderNum,\r\n }\r\n\r\n // オブジェクトリストを取得\r\n const listObjectsCommandOutput: ListObjectsCommandOutput = await s3.send(new ListObjectsCommand(param))\r\n\r\n // Prefix 直下のファイルのみ抽出\r\n const targetFiles = listObjectsCommandOutput.Contents?.sort((a, b) => {\r\n // 最終更新日で降順ソート\r\n const timeA = a.LastModified?.getTime() ?? 0\r\n const timeB = b.LastModified?.getTime() ?? 0\r\n\r\n return timeB - timeA\r\n })\r\n .map((s3Object) => s3Object.Key)\r\n .filter((s3ObjectKey) => !s3ObjectKey?.endsWith('/')) // フォルダを除外\r\n .filter((s3ObjectKey): s3ObjectKey is string => s3ObjectKey !== undefined)\r\n .map((s3ObjectKey) => s3ObjectKey.split('/')[2]) // ファイル名を取得\r\n\r\n // 最新の更新ファイルを取得\r\n const targetFileName = targetFiles?.[0] ?? ''\r\n\r\n // S3 オブジェクト URL を生成\r\n const targetUrl = GetFormatMessage(bucketUrl, [bucketName, region, 'citizen']) + folderNum + '/' + encodeURIComponent(targetFileName)\r\n\r\n // ファイルダウンロード\r\n downloadFile(targetUrl)\r\n }\r\n\r\n const PdfConponent = styled('div')(() => ({\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n gap: '30px',\r\n width: '100%',\r\n alignItems: 'center',\r\n padding: '0px 15px 20px 15px',\r\n }))\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {/* \r\n マニュアルはダウンロードを強制しています。\r\n download属性は同一オリジンの URL と、 blob:、 data: の各スキームでのみ動作するので、\r\n download属性は使用せず\r\n S3側でpdfのコンテンツタイプをapplication/octet-streamに設定してダウンロードを強制させるようにした\r\n https://developer.mozilla.org/ja/docs/Web/HTML/Element/a\r\n */}\r\n
    \r\n {/* 操作マニュアル1 */}\r\n {citizenFileName[0] && (\r\n \r\n \r\n downloadClick('01')}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n {/* 操作マニュアル2 */}\r\n {citizenFileName[1] && (\r\n \r\n \r\n downloadClick('02')}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {/* 操作マニュアル3 */}\r\n {citizenFileName[2] && (\r\n \r\n \r\n downloadClick('03')}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {/* 操作マニュアル4 */}\r\n {citizenFileName[3] && (\r\n \r\n \r\n downloadClick('04')}\r\n >\r\n \r\n \r\n \r\n )}\r\n\r\n {/* 操作マニュアル5 */}\r\n {citizenFileName[4] && (\r\n \r\n \r\n downloadClick('05')}\r\n >\r\n \r\n \r\n \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","/**\n * メッセージ取得関数(置換あり)\n * @param messageStr メッセージ文字列\n * @param args メッセージ文字列の{n}部分\n */\n export const GetFormatMessage = (messageStr: string, args: string[]):string => {\n for (let i = 0; i < args.length; i++) {\n messageStr = messageStr.replace(\"{\" + i + \"}\", args[i]);\n }\n return messageStr;\n};\n","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildFamilyHospitalUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAMES = ['familyHospital', 'familyHospitalTel']\n\ninterface ChildFamilyHospitalUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildFamilyHospitalUnit = (props: ChildFamilyHospitalUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_NAMES.includes(value.category))\n if (targetCategories == null || targetCategories.length === 0) return null\n \n const categoryMap: {[key:string]: GetCategoryMstDto} = {}\n targetCategories?.forEach(e => categoryMap[e.category] = e)\n \n return (\n <>\n \n \n \n {isNoData(child) \n ? {'登録なし'}\n : targetCategories.map((c, i) => {\n return ()\n })\n }\n \n \n )\n}\n\ninterface DataRowProps {\n category: GetCategoryMstDto\n child: Child\n}\n\nconst DataRow = ({ category, child }: DataRowProps) => {\n const key = category.category as keyof Child\n const label = category.altCategoryName ?? category.name\n return (\n <>\n {label != null && label !== '' &&\n {label}\n }\n {child[key]}\n \n )\n}\n\nconst isNoData = (child: Child) => {\n return !CATEGORY_NAMES.some(cn => child[cn as keyof Child] != null && child[cn as keyof Child] !== '')\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildNormallyUsedFacilityUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAMES = ['normallyUsedFacilitiesType', 'normallyUsedFacilities', 'normallyUsedFacilitiesTel', 'normallyUsedFacilitiesAdmission', 'normallyUsedFacilitiesUsageTime']\n\ninterface ChildNormallyUsedFacilityUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildNormallyUsedFacilityUnit = (props: ChildNormallyUsedFacilityUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const displayCategoryKeys = ['normallyUsedFacilities', 'normallyUsedFacilitiesTel']\n const targetCategories = categoryMst?.filter((value) => displayCategoryKeys.includes(value.category))\n if (targetCategories == null || targetCategories.length === 0) return null\n \n const categoryMap: {[key:string]: GetCategoryMstDto} = {}\n targetCategories?.forEach(e => categoryMap[e.category] = e)\n \n return (\n <>\n \n \n \n {isNoData(child) \n ? {'登録なし'}\n : targetCategories.map((c, i) => {\n return ()\n })\n }\n \n \n )\n}\n\ninterface DataRowProps {\n category: GetCategoryMstDto\n child: Child\n}\n\nconst DataRow = ({ category, child }: DataRowProps) => {\n const key = category.category as keyof Child\n const label = category.altCategoryName ?? category.name\n return (\n <>\n {label != null && label !== '' &&\n {label}\n }\n {child[key]}\n \n )\n}\n\nconst isNoData = (child: Child) => {\n return !CATEGORY_NAMES.some(cn => child[cn as keyof Child] != null && child[cn as keyof Child] !== '')\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { yesNo } from '../../../../containers/common/constant/classification'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildUsuallyMedicinesUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAMES = ['usuallyMedicines', 'usuallyMedicinesMemo']\n\ninterface ChildUsuallyMedicinesUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildUsuallyMedicinesUnit = (props: ChildUsuallyMedicinesUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_NAMES.includes(value.category))\n if (targetCategories == null || targetCategories.length === 0) return null\n \n const categoryMap: {[key:string]: GetCategoryMstDto} = {}\n targetCategories?.forEach(e => categoryMap[e.category] = e)\n \n return (\n <>\n \n \n \n {isNoData(child) \n ? {'登録なし'}\n : targetCategories.map((c, i) => {\n return ()\n })\n }\n \n \n )\n}\n\ninterface DataRowProps {\n category: GetCategoryMstDto\n child: Child\n}\n\nconst DataRow = ({ category, child }: DataRowProps) => {\n const label = category.altCategoryName ?? category.name\n return (\n <>\n {label != null && label !== '' \n ? <>\n {label}\n {getText(child, category)}\n \n : {getText(child, category)}\n } \n \n )\n}\n\nconst isNoData = (child: Child) => {\n return !CATEGORY_NAMES.some(cn => child[cn as keyof Child] != null && child[cn as keyof Child] !== '')\n}\n\nconst getText = (child: Child, category: GetCategoryMstDto) => {\n const key = category.category as keyof Child\n switch(category.category){\n case 'usuallyMedicines':\n const val = child[key]\n return val === yesNo.yes ? 'あり'\n : 'なし'\n default:\n return child[key]\n }\n}","import {\n executeGet,\n executePut,\n} from '../common/apiCaller'\nimport {\n GetChildrenDiseaseTestDto,\n PutChildrenDiseaseTestInputDto,\n} from '../dto/childrenDiseaseTestDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-disease-test'\n\nexport const executeGetChildrenDiseaseTest = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\nexport const executePutChildrenDiseaseTest = (id: string, input: PutChildrenDiseaseTestInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { getYesNoText } from '../../../../containers/common/category'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { executeGetChildrenDiseaseTest } from '../../../../dataAccess/webApi/dao/childrenDiseaseTestDao'\nimport { GetChildrenDiseaseTestDto } from '../../../../dataAccess/webApi/dto/childrenDiseaseTestDto'\nimport { memberModifyChildDiseaseTestUrl } from '../../../../containers/common/constant/appUrl'\n\nconst HOSPITAL_ADMISSION = 'diseaseTest'\nconst SUB_CATEGORIES = ['diseaseTest.testName', 'diseaseTest.testDate', 'diseaseTest.testResult']\nexport const CATEGORY_NAMES = [HOSPITAL_ADMISSION, ...SUB_CATEGORIES]\n\ninterface ChildDiseaseTestUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean \n}\n\nexport const ChildDiseaseTestUnit = (props: ChildDiseaseTestUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n const MAX_RECORD = 2\n\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const diseaseTestCategory = categoryMst.find((value) => value.category === HOSPITAL_ADMISSION)\n const subCategories = categoryMst.filter((mst) => SUB_CATEGORIES.includes(mst.category))\n \n if (!diseaseTestCategory || subCategories.length === 0) return null\n \n const subCategoryMap: {[key:string]: GetCategoryMstDto} = {}\n subCategories?.forEach(e => subCategoryMap[e.category.substring(HOSPITAL_ADMISSION.length + 1)] = e)\n \n const filteredDiseaseTest = child.diseaseTest?.filter(diseaseTest => {\n return diseaseTest.code === '99' || diseaseTest.testDate != null || (diseaseTest.testResult != null && diseaseTest.testResult !== \"\")\n })\n \n const recordCnt = filteredDiseaseTest?.length ?? 0\n return (\n <>\n \n \n { recordCnt === 0 ? (\n {getYesNoText(diseaseTestCategory, undefined)}\n ) : (\n filteredDiseaseTest?.slice(0, MAX_RECORD).map((diseaseTest, i) => {\n return ()\n })\n )}\n { recordCnt > MAX_RECORD && ... }\n \n \n )\n}\n\ninterface DataRowProps {\n categoryMap: {[key:string]: GetCategoryMstDto}\n diseaseTest: GetChildrenDiseaseTestDto\n}\n\nconst DataRow = ({ categoryMap, diseaseTest }: DataRowProps) => {\n return (\n <>\n {categoryMap.testName && {diseaseTest.testName}}\n {categoryMap.testDate && {diseaseTest.testDate}}\n {categoryMap.testResult && {getTestResultName(categoryMap.testResult, diseaseTest.testResult)}}\n \n )\n}\n\nconst getTestResultName = (testResultMst:GetCategoryMstDto, testResult:string | null | undefined) => {\n if(testResult == null){\n return null\n }\n const targetOption = testResultMst.options?.find((opt) => opt.code=== testResult)\n return targetOption?.optionName\n}\n\n/**\n * 検査情報を取得\n */\nexport const resetDiseaseTest = async (id: string, facilityId: string, baseObj: any) => {\n const resp = await executeGetChildrenDiseaseTest(id, facilityId)\n baseObj.diseaseTest = resp.result\n}","import { Grid } from '@mui/material'\nimport { Child } from '../../../../containers/common/child'\nimport { GItem } from '../grids'\nimport { UnitTitle } from './unitTitle'\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\nimport { memberModifyChildTreatmentUrl } from '../../../../containers/common/constant/appUrl'\n\nexport const CATEGORY_NAMES = ['treatment.restLevel', 'treatment.appearanceDate', 'treatment.domesticInfection', 'treatment.progress', 'treatment.medicinePrescription', 'treatment.medicinePrescriptionNote', 'treatment.medicineOtc', 'treatment.medicineOtcNote', 'treatment.prevalentDisease', 'treatment.prevalentDiseaseNote']\n\ninterface ChildTreatmentUnitProps {\n child?: Child\n sectionLabel: string\n categoryMst?: GetCategoryMstDto[]\n hideLink?: boolean\n}\n\nexport const ChildTreatmentUnit = (props: ChildTreatmentUnitProps) => {\n const { categoryMst, child, sectionLabel } = props\n if (child == null || categoryMst == null || categoryMst.length === 0) return null\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_NAMES.includes(value.category))\n if (targetCategories == null || targetCategories.length === 0) return null\n \n const treatmentFlag = child?.treatment?.length\n return (\n <>\n \n \n { treatmentFlag ? '登録あり' : '登録なし'}\n \n \n )\n}\n","import { SelectChangeEvent } from '@mui/material'\r\nimport { useCallback, useEffect, useLayoutEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeGetReductions } from '../../dataAccess/webApi/dao/reductionsDao'\r\nimport { fromApiYmd } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { getCategories, getCategorySpecifyMasters, SpecifyMasterType } from '../common/category'\r\nimport { ADDITIONALS, Child, ChildrenChoice, getChild, getChildrenChoices } from '../common/child'\r\nimport { memberAddChildUrl, memberModifyUserUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { selectIsVerifiedAll } from '../common/store/slices/authority'\r\nimport { User, getUser } from '../common/user'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { CATEGORY_NAME as ALLERGY } from '../../views/components/common/member/childAllergyUnit'\r\nimport { CATEGORY_NAMES as FAMILY_HOSPITAL_KEYS } from '../../views/components/common/member/childFamilyHospitalUnit'\r\nimport { CATEGORY_NAME as FEBRILE_SEIZURE } from '../../views/components/common/member/childFebrileSeizureUnit'\r\nimport { CATEGORY_NAMES as HOSPITAL_ADMISSION_KEYS } from '../../views/components/common/member/childHospitalAdmissionUnit'\r\nimport { CATEGORY_NAME as MEDICAL_HISTORY } from '../../views/components/common/member/childMedicalHistoryUnit'\r\nimport { CATEGORY_NAMES as NORMALLY_USED_FACILITY_KEYS } from '../../views/components/common/member/childNormallyUsedFacilityUnit'\r\nimport { CATEGORY_NAMES as USUALLY_MEDICINES_KEYS } from '../../views/components/common/member/childUsuallyMedicinesUnit'\r\nimport { CATEGORY_NAME as DISEASE } from '../../views/components/common/member/childDiseaseUnit'\r\nimport { CATEGORY_NAME as VACCINATION } from '../../views/components/common/member/childVaccinationUnit'\r\nimport { CATEGORY_NAMES as EATING_KEYS } from '../../views/components/common/member/childEatingUnit'\r\nimport { CATEGORY_NAME as SYMPTOM } from '../../views/components/common/member/childSymptomUnit'\r\nimport { CATEGORY_NAMES as PREDISPOSITION_KEYS } from '../../views/components/common/member/childPredispositionUnit'\r\nimport { CATEGORY_NAMES as DISEASE_TEST_KEYS } from '../../views/components/common/member/childDiseaseTestUnit'\r\nimport { CATEGORY_NAMES as TREATMENT_KEYS } from '../../views/components/common/member/childTreatmentUnit'\r\n\r\ninterface LocationState {\r\n /** アクティブなタブの値 */\r\n tabValue?: string\r\n /** アクティブなお子さまID */\r\n childId?: string\r\n}\r\n\r\ninterface PageState {\r\n activeTabValue: string\r\n activeChildId?: string\r\n user?: User\r\n child?: Child\r\n childs?: ChildrenChoice[]\r\n}\r\ninterface DialogState {\r\n reductionName: string\r\n reductionInfos: {\r\n status: string\r\n reductionStartDate?: Date\r\n reductionEndDate?: Date\r\n }[]\r\n}\r\n\r\n/** タブの選択値 */\r\nexport const tabValue = {\r\n user: '1',\r\n child: '2',\r\n} as const\r\n\r\nconst DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\nconst DEFAULT_FACILITY_ID = '0' // 市民側では事業共通情報として、facility_id = 0でchildren_detailを扱う\r\n\r\nexport const useAction = () => {\r\n /** 使用する項目 */\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'allergyFlag',\r\n 'allergyCauses1',\r\n 'allergySymptoms1',\r\n 'allergyTreatments1',\r\n 'allergyConcerns1',\r\n 'allergyCauses2',\r\n 'allergySymptoms2',\r\n 'allergyTreatments2',\r\n 'allergyConcerns2',\r\n 'allergyCauses3',\r\n 'allergySymptoms3',\r\n 'allergyTreatments3',\r\n 'allergyConcerns3',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n ]\r\n \r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const isVerifiedAll = useSelector(selectIsVerifiedAll)\r\n\r\n const locationState = history.location.state\r\n const [isOpenReductionsHistory, setIsOpenReductionsHistory] = useState(false)\r\n const [state, setState] = useState({\r\n activeTabValue: locationState?.tabValue ?? tabValue.user,\r\n activeChildId: locationState?.childId,\r\n })\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [category, setCategory] = useState()\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n const [medicalHistoryCategory, setMedicalHistoryCategory] = useState()\r\n const [diseaseCategory, setDiseaseCategory] = useState()\r\n const [vaccinationCategory, setVaccinationCategory] = useState()\r\n const [symptomCategory, setSymptomCategory] = useState()\r\n \r\n const [reductionHistoryState, setReductionHistoryState] = useState()\r\n const load = useCallback(\r\n (\r\n isInitialize: boolean,\r\n activeTabValue: string,\r\n loadedChilds?: { value: string; label: string }[],\r\n activeChildId?: string\r\n ) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const [\r\n category, \r\n medicalHistoryCategory,\r\n diseaseCategory,\r\n vaccinationCategory,\r\n symptomCategory,\r\n ] = await Promise.all([\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: [...CATEGORY_KEYS, ALLERGY, ...FAMILY_HOSPITAL_KEYS, FEBRILE_SEIZURE, ...HOSPITAL_ADMISSION_KEYS, ...EATING_KEYS, ...NORMALLY_USED_FACILITY_KEYS, ...PREDISPOSITION_KEYS, ...USUALLY_MEDICINES_KEYS, ...DISEASE_TEST_KEYS, ...TREATMENT_KEYS]}),\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: MEDICAL_HISTORY, masterType: SpecifyMasterType.MEDICAL_HISTORY}),\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: DISEASE, masterType: SpecifyMasterType.MEDICAL_HISTORY}),\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: VACCINATION, masterType: SpecifyMasterType.VACCINATION}),\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: SYMPTOM, masterType: SpecifyMasterType.SYMPTOM})\r\n ])\r\n // 項目マスタ \r\n setCategory(category)\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n // 既往症項目\r\n setMedicalHistoryCategory(medicalHistoryCategory)\r\n // 病気項目\r\n setDiseaseCategory(diseaseCategory)\r\n // 予防接種項目\r\n setVaccinationCategory(vaccinationCategory)\r\n // 症状項目\r\n setSymptomCategory(symptomCategory)\r\n \r\n let childs\r\n let childId\r\n let user\r\n let child\r\n if (activeTabValue === tabValue.user) {\r\n childs = loadedChilds\r\n childId = activeChildId\r\n user = await getUser()\r\n } else {\r\n childs = loadedChilds == null ? await getChildrenChoices() : loadedChilds\r\n childId = activeChildId ?? childs[0].value\r\n child = await getChild(childId, DEFAULT_FACILITY_ID, [ADDITIONALS.HOSPITAL_ADMISSION,ADDITIONALS.EATING,ADDITIONALS.PREDISPOSITION,ADDITIONALS.DISEASE_TEST,ADDITIONALS.TREATMENT]) \r\n }\r\n\r\n setState({\r\n activeTabValue,\r\n activeChildId: childId,\r\n user,\r\n child,\r\n childs,\r\n })\r\n }),\r\n isHiddenMain: isInitialize,\r\n })\r\n )\r\n },\r\n []\r\n )\r\n\r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n load(true, state.activeTabValue, state.childs, state.activeChildId)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n // 戻るで表示した際にアクティブな選択を復元する為に履歴に保管\r\n history.replace({ ...history.location, state: { tabValue: state.activeTabValue, childId: state.activeChildId } })\r\n }, [state.activeTabValue, state.activeChildId])\r\n\r\n const changeTab = useCallback(\r\n (value: string) => {\r\n if (value === tabValue.user) {\r\n addOperationLog({ operationId: OperationId.OP_00000052 })\r\n } else if (value === tabValue.child) {\r\n addOperationLog({ operationId: OperationId.OP_00000053 })\r\n }\r\n\r\n load(false, value, state.childs, state.activeChildId)\r\n },\r\n [state.childs, state.activeChildId, addOperationLog]\r\n )\r\n\r\n const changeChild = useCallback(\r\n (event: SelectChangeEvent) => {\r\n addOperationLog({ operationId: OperationId.OP_00000028 })\r\n\r\n load(false, state.activeTabValue, state.childs, event.target.value)\r\n },\r\n [state.activeTabValue, state.childs, addOperationLog]\r\n )\r\n\r\n const goModify = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000057 })\r\n\r\n if (state.activeTabValue === tabValue.user) {\r\n history.push(memberModifyUserUrl.url())\r\n }\r\n }, [state.activeTabValue, state.activeChildId, addOperationLog])\r\n\r\n const goAddChild = useCallback(() => {\r\n history.push(memberAddChildUrl.url())\r\n }, [history])\r\n\r\n const onClickReductionHistories = useCallback(\r\n (id: string) => {\r\n addOperationLog({ operationId: OperationId.OP_00000054 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const result = await getReductionHistories(id)\r\n setReductionHistoryState(result)\r\n setIsOpenReductionsHistory(true)\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog]\r\n )\r\n\r\n const onCloseReductionsHistory = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000055 })\r\n\r\n setIsOpenReductionsHistory(false)\r\n }, [addOperationLog])\r\n\r\n const getReductionHistories = async (id: string) => {\r\n const response = await executeGetReductions(id)\r\n const reductionInfos = response.result.reductionInfos.map((v) => {\r\n return nullPropsToUndefined({\r\n status: v.status,\r\n reductionStartDate: fromApiYmd(v.reductionStartDate),\r\n reductionEndDate: fromApiYmd(v.reductionEndDate),\r\n })\r\n })\r\n\r\n return nullPropsToUndefined({\r\n reductionName: response.result.reductionName,\r\n reductionInfos: reductionInfos,\r\n })\r\n }\r\n return {\r\n isVerifiedAll,\r\n activeTabValue: state.activeTabValue,\r\n activeChildId: state.activeChildId,\r\n childs: state.childs,\r\n user: state.user,\r\n child: state.child,\r\n isOpenReductionsHistory,\r\n reductionHistoryState,\r\n changeTab,\r\n changeChild,\r\n goModify,\r\n goAddChild,\r\n onClickReductionHistories,\r\n onCloseReductionsHistory,\r\n sysCtrl,\r\n category,\r\n categoryMap,\r\n medicalHistoryCategory,\r\n diseaseCategory,\r\n vaccinationCategory,\r\n symptomCategory,\r\n }\r\n}","import { executeGetNoResultError } from '../common/apiCaller'\nimport { GetReductionsDto } from '../dto/reductionsDto'\n\nconst apiName = 'citizen'\nconst apiPath = '/reductions'\n\nexport const executeGetReductions = (id: string) => {\n return executeGetNoResultError(apiName, `${apiPath}/${id}`)\n}\n","// 会員情報機能で共通するお子さまに関する表示部分を定義\r\n// 情報照会、変更内容確認で共有\r\n//\r\n\r\nimport { Grid, Stack, styled } from '@mui/material'\r\nimport { ReactNode } from 'react'\r\nimport {\r\n getBloodTypeLabel,\r\n getCoveredLabel,\r\n getGenderLabel,\r\n getYesNoLabel,\r\n} from '../../../../containers/common/codeMaster'\r\nimport { translate, translateNode } from '../../../../i18n'\r\nimport { ElapsedMillisecond, formatYmd } from '../../../../utils/dateUtil'\r\nimport { GItem, LabelGItemBase, ValueGItemBase } from '../grids'\r\nimport { SubTitle } from '../subTitle'\r\nimport { Child as ChildOriginal } from '../../../../containers/common/child'\r\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\r\nimport { childUseEndUrl, memberModifyChildUrl } from '../../../../containers/common/constant/appUrl'\r\nimport { Link } from '../link'\r\nimport { GetCategoryMstDto } from '../../../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { ChildAllergyUnit } from './childAllergyUnit'\r\nimport { ChildFamilyHospitalUnit } from './childFamilyHospitalUnit'\r\nimport { ChildFebrileSeizureUnit } from './childFebrileSeizureUnit'\r\nimport { ChildHospitalAdmissionUnit } from './childHospitalAdmissionUnit'\r\nimport { ChildMedicalHistoryUnit } from './childMedicalHistoryUnit'\r\nimport { ChildNormallyUsedFacilityUnit } from './childNormallyUsedFacilityUnit'\r\nimport { ChildUsuallyMedicinesUnit } from './childUsuallyMedicinesUnit'\r\nimport { ChildDiseaseUnit } from './childDiseaseUnit'\r\nimport { ChildVaccinationUnit } from './childVaccinationUnit'\r\nimport { ChildEatingUnit } from './childEatingUnit'\r\nimport { ChildSymptomUnit } from './childSymptomUnit'\r\nimport { ChildPredispositionUnit } from './childPredispositionUnit'\r\nimport { ChildDiseaseTestUnit } from './childDiseaseTestUnit'\r\nimport { ChildTreatmentUnit } from './childTreatmentUnit'\r\nimport { UnitTitle } from './unitTitle'\r\n\r\ninterface Child {\r\n name: string\r\n kana: string\r\n birthday: Date | ElapsedMillisecond\r\n brothersSistersFlag: string\r\n multipleBirthsFlag: string\r\n gender: string\r\n bloodType?: string\r\n maternalHandbookNo: string | null\r\n}\r\n\r\ninterface ChildReference extends Child {\r\n childId: string\r\n allergyFlag: string\r\n /** アレルギー1~3 */\r\n allergies: {\r\n causes?: string\r\n symptoms?: string\r\n treatments?: string\r\n concerns?: string\r\n }[]\r\n}\r\n/** 情報照会時以外で必要なプロパティ */\r\ninterface Confirmation {\r\n child: Child\r\n childOrig?: ChildOriginal\r\n displayType?: never\r\n /** アレルギー項目を非表示にする場合true */\r\n isHideAllergy?: boolean\r\n categoryMst?: GetCategoryMstDto[]\r\n categoryMap?: {[key:string]: GetCategoryMstDto}\r\n medicalHistoryCategory?: GetCategoryMstDto[]\r\n diseaseCategory?: GetCategoryMstDto[]\r\n vaccinationCategory?: GetCategoryMstDto[]\r\n symptomCategory?: GetCategoryMstDto[]\r\n modifyChildId?: never\r\n showModifyLink?: never\r\n}\r\n/** 情報照会時に必要なプロパティ */\r\ninterface Reference {\r\n child: ChildReference\r\n childOrig?: ChildOriginal\r\n /** 利用終了はこちらを表示する場合true */\r\n isShowUseEnd?: boolean\r\n displayType: 'reference'\r\n categoryMst?: GetCategoryMstDto[]\r\n categoryMap?: {[key:string]: GetCategoryMstDto}\r\n medicalHistoryCategory?: GetCategoryMstDto[]\r\n diseaseCategory?: GetCategoryMstDto[]\r\n vaccinationCategory?: GetCategoryMstDto[]\r\n symptomCategory?: GetCategoryMstDto[]\r\n modifyChildId?:string //ChildがchildIdを保持していないため、別途用意している\r\n showModifyLink?: boolean\r\n}\r\n\r\ntype ChildProps = Confirmation | Reference\r\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nconst ChildContentAttribute = styled(Grid)({\r\n padding: '0 0 0 3rem',\r\n})\r\n\r\n/** 会員情報機能のお子さま情報コンテンツ部分 */\r\nexport const ChildContent = (props: ChildProps) => {\r\n const { categoryMap, child, childOrig, modifyChildId } = props\r\n const hideLink = props?.showModifyLink == null || !props.showModifyLink\r\n const unSetLabel = translate('system.childContent.label.notSet')\r\n \r\n return (\r\n \r\n {/* 基本 */}\r\n \r\n {modifyChildId \r\n ? \r\n : \r\n }\r\n
    \r\n \r\n {translate('system.childContent.label.childName')}\r\n {child.name}\r\n {translate('system.childContent.label.childNameKana')}\r\n {child.kana}\r\n {translate('system.childContent.label.birthday')}\r\n {formatYmd(child.birthday)}\r\n {categoryMap?.brothersSistersFlag && {categoryMap?.brothersSistersFlag.name}}\r\n {categoryMap?.brothersSistersFlag && {getYesNoLabel(child.brothersSistersFlag)}}\r\n {categoryMap?.multipleBirthsFlag && {categoryMap?.multipleBirthsFlag.name}}\r\n {categoryMap?.multipleBirthsFlag && {getCoveredLabel(child.multipleBirthsFlag)}}\r\n {categoryMap?.childrenGender && {categoryMap.childrenGender.name}}\r\n {categoryMap?.childrenGender && {getGenderLabel(child.gender)}}\r\n {categoryMap?.childrenBloodType && {categoryMap.childrenBloodType.name}}\r\n {categoryMap?.childrenBloodType && {getBloodTypeLabel(child.bloodType)}}\r\n {categoryMap?.maternalHandbookNo && {translate('system.childContent.label.maternalHandbookNo')}}\r\n {categoryMap?.maternalHandbookNo && {child.maternalHandbookNo}}\r\n \r\n
    \r\n
    \r\n \r\n {/* 通常利用施設 */}\r\n \r\n \r\n {/* かかりつけ医 */}\r\n \r\n \r\n {/* 常時服用している薬 */}\r\n \r\n \r\n {props.displayType === 'reference' ? (\r\n categoryMap?.allergyFlag && \r\n \r\n
    \r\n \r\n {categoryMap.allergyFlag.name}\r\n {getYesNoLabel(props.child.allergyFlag)}\r\n \r\n
    \r\n
    \r\n ) : (\r\n <>\r\n {!props.isHideAllergy && categoryMap?.allergy == null && (\r\n \r\n \r\n
    \r\n \r\n {translate('system.userContent.text.exempt')}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n )}\r\n {/* アレルギー1~3 */}\r\n {props.displayType === 'reference' &&\r\n ['allergy1', 'allergy2', 'allergy3'].map((title, index) => {\r\n const allergy = props.child.allergies[index]\r\n const causes = categoryMap != null ? categoryMap[`allergyCauses${index + 1}`] : null\r\n const symptoms = categoryMap != null ? categoryMap[`allergySymptoms${index + 1}`] : null\r\n const treatments = categoryMap != null ? categoryMap[`allergyTreatments${index + 1}`] : null\r\n const concerns = categoryMap != null ? categoryMap[`allergyConcerns${index + 1}`] : null\r\n return (\r\n (causes || symptoms || treatments || concerns) &&\r\n \r\n \r\n
    \r\n \r\n {causes && {causes.name}}\r\n {causes && {allergy.causes || unSetLabel}}\r\n {symptoms && {symptoms.name}}\r\n {symptoms && {allergy.symptoms || unSetLabel}}\r\n {treatments && {treatments.name}}\r\n {treatments && {allergy.treatments || unSetLabel}}\r\n {concerns && {concerns.name}}\r\n {concerns && {allergy.concerns || unSetLabel}}\r\n \r\n
    \r\n
    \r\n )\r\n })}\r\n \r\n {/* アレルギー */}\r\n \r\n \r\n {/* 熱性けいれん */}\r\n \r\n\r\n {/* 既往症 */}\r\n \r\n {/* 食事 */}\r\n \r\n {/* 病気 */}\r\n \r\n {/* 症状 */}\r\n \r\n {/* 予防接種 */}\r\n \r\n {/* 体質・くせ */}\r\n \r\n {/* 入院歴 */}\r\n \r\n {/* 検査歴 */}\r\n \r\n {/* 治療歴 */}\r\n \r\n \r\n {/* そのほか */}\r\n {props.displayType === 'reference' && props.isShowUseEnd &&\r\n \r\n \r\n
    \r\n \r\n \r\n {translateNode(\r\n 'system.childContent.text.useEnd',\r\n \r\n {translate('system.childContent.text.here')}\r\n \r\n )}\r\n \r\n \r\n
    \r\n
    \r\n }\r\n
    \r\n )\r\n}\r\n","// 会員情報機能で共通するユーザー(保護者)に関する表示部分を定義\r\n// 情報照会、変更内容確認で共有\r\n//\r\n\r\nimport { Stack, styled } from '@mui/material'\r\nimport React, { Fragment, ReactNode } from 'react'\r\nimport { getCoveredLabel } from '../../../../containers/common/codeMaster'\r\nimport { yesNo } from '../../../../containers/common/constant/classification'\r\nimport { translate } from '../../../../i18n'\r\nimport { formatYmd } from '../../../../utils/dateUtil'\r\nimport { GContainer, GItem, LabelGItemBase, RightGItem, ValueGItemBase } from '../grids'\r\nimport { Link } from '../link'\r\nimport { SubTitle } from '../subTitle'\r\n\r\ninterface User {\r\n // 基本\r\n name: string\r\n kana: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber?: string\r\n residenceCategory: string\r\n residenceCategoryName: string\r\n relationship?: string\r\n\r\n /** 緊急連絡先1~3 */\r\n emergencyContacts: {\r\n name?: string\r\n kana?: string\r\n relationship?: string\r\n company?: string\r\n tel?: string\r\n email?: string\r\n }[]\r\n}\r\n\r\ninterface UserReference extends User {\r\n // 減免\r\n reductionInfos: {\r\n reductionId: string\r\n coveredFlag: string\r\n reductionHistoryFlag: string\r\n reductionName: string\r\n reductionStartDate?: Date\r\n reductionEndDate?: Date\r\n }[]\r\n}\r\n\r\n/** 情報照会時以外で必要なプロパティ */\r\ninterface Confirmation {\r\n user: User\r\n displayType?: never\r\n}\r\n/** 情報照会時に必要なプロパティ */\r\ninterface Reference {\r\n user: UserReference\r\n displayType: 'reference'\r\n onClickReductionHistories: (id: string) => void\r\n}\r\n\r\ntype UserProps = Confirmation | Reference\r\n\r\nconst LabelGItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueGItem = (props: { children: ReactNode }) => {props.children}\r\nconst AttributeGContainer = styled(GContainer)({\r\n padding: '0 0 0 3rem',\r\n})\r\n\r\n/** 会員情報機能のユーザー(保護者)情報コンテンツ部分 */\r\nexport const UserContent = (props: UserProps) => {\r\n const unSetLabel = translate('system.userContent.label.notSet')\r\n\r\n return (\r\n \r\n {/* 基本 */}\r\n \r\n \r\n
    \r\n \r\n {translate('system.userContent.label.userName')}\r\n {props.user.name}\r\n {translate('system.userContent.label.userNameKana')}\r\n {props.user.kana}\r\n {translate('system.userContent.label.postalCode')}\r\n {props.user.postalCode}\r\n {translate('system.userContent.label.prefecturesAndMunicipalities')}\r\n {props.user.address1}\r\n {translate('system.userContent.label.address')}\r\n {props.user.address2}\r\n {translate('system.userContent.label.buildingNameRoomNumber')}\r\n {props.user.buildingNameRoomNumber}\r\n {translate('system.userContent.label.residenceCategory')}\r\n {props.user.residenceCategoryName}\r\n {translate('system.userContent.label.relationship')}\r\n {props.user.relationship}\r\n \r\n
    \r\n
    \r\n {/* 緊急連絡先1~3 */}\r\n {['emergencyContact1', 'emergencyContact2', 'emergencyContact3'].map((title, index) => {\r\n const contact = props.user.emergencyContacts[index]\r\n return (\r\n \r\n \r\n
    \r\n \r\n {translate('system.userContent.label.userName')}\r\n {contact.name || unSetLabel}\r\n {translate('system.userContent.label.userNameKana')}\r\n {contact.kana || unSetLabel}\r\n {translate('system.userContent.label.relationship')}\r\n {contact.relationship || unSetLabel}\r\n {translate('system.userContent.label.company')}\r\n {contact.company || unSetLabel}\r\n {translate('system.userContent.label.tel')}\r\n {contact.tel || unSetLabel}\r\n {translate('system.userContent.label.email')}\r\n {contact.email || unSetLabel}\r\n \r\n
    \r\n
    \r\n )\r\n })}\r\n\r\n {/* 減免 */}\r\n \r\n \r\n {props.displayType === 'reference' ? (\r\n
    \r\n \r\n {props.user.reductionInfos.map((v, index) => {\r\n return (\r\n \r\n {v.reductionName}\r\n \r\n {getCoveredLabel(v.coveredFlag)}\r\n
    \r\n {v.coveredFlag === yesNo.yes && (v.reductionStartDate || v.reductionEndDate) && (\r\n <>\r\n ({v.reductionStartDate && formatYmd(v.reductionStartDate)}~\r\n {v.reductionEndDate && formatYmd(v.reductionEndDate)})\r\n \r\n )}\r\n
    \r\n
    \r\n {v.reductionHistoryFlag === yesNo.yes && (\r\n \r\n props.onClickReductionHistories(v.reductionId)}>{`${translate(\r\n 'system.button.detail'\r\n )}>`}\r\n \r\n )}\r\n
    \r\n )\r\n })}\r\n
    \r\n
    \r\n ) : (\r\n \r\n {translate('system.userContent.text.exempt')}\r\n \r\n )}\r\n
    \r\n
    \r\n )\r\n}\r\n","import { Stack, styled } from '@mui/material'\nimport React, { Fragment, ReactNode, useCallback } from 'react'\nimport { getReductionsStatusLabel } from '../../../containers/common/codeMaster'\nimport { translate } from '../../../i18n'\nimport { formatYmd } from '../../../utils/dateUtil'\nimport { ButtonOutlinedS } from '../common/buttons/buttonOutlinedS'\nimport { Dialog } from '../common/dialog'\nimport { GContainer, LabelGItemBase, ValueGItemBase } from '../common/grids'\nimport { SubTitle } from '../common/subTitle'\n\ninterface ReductionsDialogProps {\n isOpen: boolean\n onClose: () => void\n reductionName: string\n reductionInfos?: {\n status: string\n reductionStartDate?: Date\n reductionEndDate?: Date\n }[]\n}\n\nconst LabeGlItem = (props: { children?: ReactNode }) => {props.children}\nconst ValueGItem = (props: { children: ReactNode }) => {props.children}\n\nconst AttributeGContainer = styled(GContainer)({\n padding: '0 0 0 2rem',\n})\n\nexport const ReductionsDialog = (props: ReductionsDialogProps) => {\n const close = useCallback(() => {\n props.onClose()\n }, [])\n\n return (\n {translate('system.button.close')}}\n maxWidth=\"xs\"\n fullWidth\n >\n \n \n \n {props.reductionInfos &&\n props.reductionInfos.map((v, index) => {\n return (\n \n {getReductionsStatusLabel(v.status)}\n \n {(v.reductionStartDate || v.reductionEndDate) && (\n <>\n {v.reductionStartDate && formatYmd(v.reductionStartDate)}~\n {v.reductionEndDate && formatYmd(v.reductionEndDate)}\n \n )}\n \n \n )\n })}\n \n \n \n )\n}\n","import { Stack } from '@mui/material'\r\nimport { myPageUrl } from '../../containers/common/constant/appUrl'\r\nimport { OperationId } from '../../containers/common/constant/operationLog'\r\nimport { tabValue, useAction } from '../../containers/member/memberService'\r\nimport { getClassificationValueLabels, translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { GContainer, GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\r\nimport { SelectNoBind } from '../components/common/inputs/selectNoBind'\r\nimport { Link } from '../components/common/link'\r\nimport { ChildContent } from '../components/common/member/childContent'\r\nimport { UserContent } from '../components/common/member/userContent'\r\nimport { TabBar } from '../components/common/tabBar'\r\nimport { ReductionsDialog } from '../components/member/reductionsDialog'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\n\r\nexport const Member = () => {\r\n const {\r\n isVerifiedAll,\r\n activeTabValue,\r\n activeChildId,\r\n childs,\r\n user,\r\n child,\r\n isOpenReductionsHistory,\r\n reductionHistoryState,\r\n changeTab,\r\n changeChild,\r\n goModify,\r\n goAddChild,\r\n onClickReductionHistories,\r\n onCloseReductionsHistory,\r\n sysCtrl,\r\n category,\r\n categoryMap,\r\n medicalHistoryCategory,\r\n diseaseCategory,\r\n vaccinationCategory,\r\n symptomCategory\r\n } = useAction()\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n \r\n {activeTabValue === tabValue.child && childs && (\r\n \r\n \r\n {translate('member.label.selectionChild')} \r\n \r\n \r\n \r\n \r\n {isVerifiedAll && (\r\n <>\r\n \r\n \r\n \r\n + {translate('member.text.addChild')}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n {activeTabValue === tabValue.user\r\n ? user && (\r\n \r\n )\r\n : child && (\r\n 1\r\n && sysCtrl.childUseEndAcceptFlag === yesNo.yes\r\n }\r\n displayType=\"reference\"\r\n categoryMap={categoryMap}\r\n categoryMst={category}\r\n medicalHistoryCategory={medicalHistoryCategory}\r\n diseaseCategory={diseaseCategory}\r\n vaccinationCategory={vaccinationCategory}\r\n symptomCategory={symptomCategory}\r\n modifyChildId={activeChildId}\r\n showModifyLink={isVerifiedAll}\r\n />\r\n )\r\n }\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {activeTabValue === tabValue.user && isVerifiedAll && (\r\n \r\n {translate('member.button.modify')}\r\n \r\n )}\r\n \r\n {translate('member.button.backToMypage')}\r\n \r\n \r\n {reductionHistoryState && (\r\n \r\n )}\r\n
    \r\n )\r\n}\r\n","import { Stack, styled } from '@mui/material'\r\nimport { getBloodTypes, getCovereds, getGenders, getYesNos } from '../../containers/common/codeMaster'\r\nimport { useAction } from '../../containers/memberAddChild/memberAddChildService'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\r\nimport { DatePicker } from '../components/common/inputs/datePicker'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\n\r\nconst ChildContentAttribute = styled(GContainer)({\r\n padding: '0 0 0 3rem',\r\n})\r\n\r\nexport const MemberAddChild = () => {\r\n const { formMethods, onSubmit, childBirthdayLimitDate, categoryMap} = useAction()\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {/* 基本 */}\r\n \r\n
    \r\n \r\n \r\n \r\n *\r\n {translate('memberAddChild.label.name')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('memberAddChild.label.kana')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('memberAddChild.label.birthday')}\r\n \r\n \r\n \r\n \r\n \r\n {categoryMap?.brothersSistersFlag && \r\n \r\n *\r\n {categoryMap.brothersSistersFlag.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.multipleBirthsFlag && \r\n \r\n *\r\n {categoryMap.multipleBirthsFlag.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.childrenGender && \r\n \r\n *\r\n {categoryMap.childrenGender.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.childrenBloodType && \r\n \r\n *\r\n {categoryMap.childrenBloodType.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.maternalHandbookNo && \r\n \r\n *\r\n {translate('memberAddChild.label.maternalHandbookNo')}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n {translate('memberAddChild.button.confirmation')}\r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router'\r\nimport { datePropsToNumber, numberPropsToDate } from '../../utils/objectUtil'\r\nimport { getCategories } from '../common/category'\r\nimport { memberAddConfirmationChildUrl } from '../common/constant/appUrl'\r\nimport { selectMemberAddChildEntry, setMemberAddChild } from '../common/store/slices/memberAddChild'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n /**\r\n * 登録完了後遷移先。\r\n * 指定があれば登録完了後に指定画面へ遷移\r\n */\r\n completionTo?: Location\r\n}\r\n\r\ninterface Inputs {\r\n name: string\r\n kana: string\r\n birthday: Date\r\n brothersSistersFlag: string\r\n multipleBirthsFlag: string\r\n gender: string\r\n bloodType: string\r\n maternalHandbookNo: string\r\n}\r\n\r\nexport const useAction = () => {\r\n /** 使用する項目 */\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const currentHistory = useHistory()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const isKeep = !!currentHistory.location.state?.isKeep\r\n const completionTo = currentHistory.location.state?.completionTo\r\n\r\n const childBirthdayLimitDate = getNow() // 誕生日の入力上限値\r\n\r\n const addEntry = useSelector(selectMemberAddChildEntry)\r\n const formMethods = useForm({\r\n defaultValues: {\r\n ...(isKeep && addEntry && numberPropsToDate(addEntry, ['birthday'])),\r\n },\r\n })\r\n\r\n const load = useCallback(\r\n () => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS})\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n }),\r\n isHiddenMain: true,\r\n })\r\n )\r\n },\r\n []\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n load()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000060 })\r\n\r\n dispatch(setMemberAddChild(datePropsToNumber(data)))\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n currentHistory.replace({ ...currentHistory.location, state: { isKeep: true, completionTo } })\r\n history.push(memberAddConfirmationChildUrl.url(), { completionTo })\r\n },\r\n [dispatch, currentHistory, history, completionTo, addOperationLog]\r\n )\r\n\r\n return {\r\n formMethods,\r\n onSubmit,\r\n childBirthdayLimitDate,\r\n categoryMap\r\n }\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePostChild } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { translate } from '../../i18n'\r\nimport { toApiYmd } from '../../utils/dateUtil'\r\nimport { castNonNullable } from '../../utils/typeUtil'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getLatestAddOperationDatetime, useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport {\r\n MemberAddChildEntry,\r\n clearMemberAddChild,\r\n selectMemberAddChildEntry,\r\n} from '../common/store/slices/memberAddChild'\r\nimport { tabValue } from '../member/memberService'\r\nimport { getCategories } from '../common/category'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\n\r\ninterface LocationState {\r\n /**\r\n * 登録完了後遷移先。\r\n * 指定があれば登録完了後に指定画面へ遷移\r\n */\r\n completionTo?: Location\r\n}\r\n\r\nexport const useAction = () => {\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const currentHistory = useHistory()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const completionTo = currentHistory.location.state?.completionTo\r\n\r\n const addEntry = useSelector(selectMemberAddChildEntry)\r\n\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS})\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n })\r\n )\r\n )\r\n \r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const decide = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n const operationLogDatetime = castNonNullable(getLatestAddOperationDatetime())\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // entryは必ず設定されている\r\n if (addEntry) {\r\n const resp = await postChild(addEntry, operationLogDatetime)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberAddConfirmationChild.success.completionMessage')))\r\n if (completionTo) {\r\n history.push(completionTo)\r\n } else {\r\n history.push(memberUrl.url(), { tabValue: tabValue.child })\r\n }\r\n dispatch(clearMemberAddChild())\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [dispatch, addEntry, errorHandle, history, completionTo, addOperationLog])\r\n\r\n return {\r\n child: addEntry && toChild(addEntry),\r\n childrenResultCode,\r\n decide,\r\n categoryMap\r\n }\r\n}\r\n\r\nconst toChild = (entry: MemberAddChildEntry) => {\r\n const { name, kana, birthday, brothersSistersFlag, multipleBirthsFlag, gender, bloodType, maternalHandbookNo } = entry\r\n return {\r\n name,\r\n kana,\r\n birthday,\r\n brothersSistersFlag,\r\n multipleBirthsFlag,\r\n gender,\r\n bloodType,\r\n maternalHandbookNo,\r\n }\r\n}\r\n\r\nconst postChild = (entry: MemberAddChildEntry, operationLogDatetime: string) => {\r\n return executePostChild({\r\n name: entry.name,\r\n kana: entry.kana,\r\n birthday: toApiYmd(entry.birthday),\r\n brothersSistersFlag: entry.brothersSistersFlag,\r\n multipleBirthsFlag: entry.multipleBirthsFlag,\r\n gender: entry.gender,\r\n bloodType: entry.bloodType,\r\n maternalHandbookNo: entry.maternalHandbookNo,\r\n operationLogDatetime,\r\n })\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport { useAction } from '../../containers/memberAddConfirmationChild/memberAddConfirmationChildService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { ChildContent } from '../components/common/member/childContent'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\n\r\nexport const MemberAddConfirmationChild = () => {\r\n const { child, childrenResultCode, decide, categoryMap } = useAction()\r\n if (child == null) {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!childrenResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberAddConfirmationChild.button.decision')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { datePropsToNumber, numberPropsToDate, undefinedPropsToOptional } from '../../utils/objectUtil'\r\nimport { getChild } from '../common/child'\r\nimport { getCategories } from '../common/category'\r\nimport { memberModifyConfirmationChildUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n selectMemberModifyChildEntry,\r\n setMemberModifyChild,\r\n setMemberModifyUpdateDatetime,\r\n} from '../common/store/slices/memberModify'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n}\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\nexport interface Inputs {\r\n name: string\r\n kana: string\r\n birthday: Date\r\n brothersSistersFlag: string\r\n multipleBirthsFlag: string\r\n gender: string\r\n bloodType: string\r\n maternalHandbookNo: string\r\n}\r\n\r\nexport const useAction = () => {\r\n /** 使用する項目 */\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n 'allergy'\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { childId } = useParams()\r\n const [interviewPermitCount, setInterviewPermitCount] = useState(0)\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n const isKeep = !!history.location.state?.isKeep\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const childBirthdayLimitDate = getNow() // 誕生日の入力上限値\r\n\r\n const modifyEntry = useSelector(selectMemberModifyChildEntry)\r\n const formMethods = useForm({\r\n defaultValues: {\r\n ...(isKeep && modifyEntry && numberPropsToDate(modifyEntry, ['birthday'])),\r\n },\r\n })\r\n \r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes, childId }] })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS})\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n \r\n if (!(isKeep && modifyEntry)) {\r\n const { updateDatetime, interviewPermitCount, ...initialInputs } = await getInitialInputs(childId)\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...initialInputs,\r\n })\r\n setInterviewPermitCount(interviewPermitCount)\r\n dispatch(setMemberModifyUpdateDatetime(updateDatetime))\r\n }\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000058 })\r\n \r\n dispatch(setMemberModifyChild(datePropsToNumber({ ...data, childId})))\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { isKeep: true } })\r\n history.push(memberModifyConfirmationChildUrl.url())\r\n },\r\n [addOperationLog]\r\n )\r\n\r\n return {\r\n formMethods,\r\n onSubmit,\r\n childBirthdayLimitDate,\r\n interviewPermitCount,\r\n categoryMap\r\n }\r\n}\r\n\r\nconst getInitialInputs = async (childId: string) => {\r\n const child = await getChild(childId)\r\n const {\r\n name,\r\n kana,\r\n birthday,\r\n brothersSistersFlag,\r\n multipleBirthsFlag,\r\n gender,\r\n bloodType,\r\n maternalHandbookNo,\r\n interviewPermitCount,\r\n updateDatetime,\r\n } = child\r\n\r\n return undefinedPropsToOptional({\r\n name,\r\n kana,\r\n birthday,\r\n brothersSistersFlag,\r\n multipleBirthsFlag,\r\n gender,\r\n bloodType,\r\n maternalHandbookNo,\r\n interviewPermitCount,\r\n updateDatetime,\r\n })\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { GItem, GItemContainer } from '../components/common/grids'\r\nimport { getBloodTypes, getCovereds, getGenders, getYesNos } from '../../containers/common/codeMaster'\r\nimport { useAction } from '../../containers/memberModifyChild/memberModifyChildService'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { DatePicker } from '../components/common/inputs/datePicker'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\n\r\nconst ChildContentAttribute = styled(Grid)({\r\n padding: '0 0 0 3rem',\r\n})\r\n\r\nexport const MemberModifyChild = () => {\r\n const { formMethods, onSubmit, childBirthdayLimitDate, interviewPermitCount, categoryMap } = useAction()\r\n\r\n let isDisabledBirthday = false\r\n if (interviewPermitCount && interviewPermitCount > 0) {\r\n isDisabledBirthday = true\r\n }\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {/* 基本 */}\r\n \r\n
    \r\n \r\n \r\n \r\n *\r\n {translate('memberModifyChild.label.name')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('memberModifyChild.label.kana')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('memberModifyChild.label.birthday')}\r\n \r\n \r\n \r\n \r\n \r\n {categoryMap?.brothersSistersFlag && \r\n \r\n *\r\n {categoryMap.brothersSistersFlag.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.multipleBirthsFlag && \r\n \r\n *\r\n {categoryMap.multipleBirthsFlag.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.childrenGender && \r\n \r\n *\r\n {categoryMap.childrenGender.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.childrenBloodType && \r\n \r\n *\r\n {categoryMap.childrenBloodType.name}\r\n \r\n \r\n \r\n \r\n }\r\n {categoryMap?.maternalHandbookNo && \r\n \r\n *\r\n {translate('memberModifyChild.label.maternalHandbookNo')}\r\n \r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n {/* アレルギー */}\r\n {categoryMap?.allergy == null && <>\r\n \r\n
    \r\n \r\n \r\n {translate('memberModifyUser.text.exempt')}\r\n \r\n \r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n {translate('memberModifyChild.button.confirmation')}\r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { Fragment } from 'react'\r\nimport { useFormContext, useWatch } from 'react-hook-form'\r\nimport { yesNo, direction, fieldType, Flag } from '../../../../containers/common/constant/classification'\r\nimport { AddQuestion, GetCategoryMstDto, Option, SpecifyMaster } from '../../../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GContainer, GItem } from '../../common/grids'\r\nimport { RadioButtonGroup } from '../../common/inputs/radioButtonGroup'\r\nimport { TextBox } from '../../common/inputs/textBox'\r\nimport { CheckBox } from '../../common/inputs/checkBox'\r\nimport { AttentionLabel } from '../../common/attentionLabel'\r\n\r\ninterface FlexibleCheckBoxesUnitProps {\r\n categoryMst: GetCategoryMstDto\r\n existFlagName?: string\r\n indentOff?: boolean\r\n}\r\n\r\nexport const FlexibleCheckBoxesUnit = (props: FlexibleCheckBoxesUnitProps) => {\r\n const { existFlagName, categoryMst, indentOff} = props\r\n const methods = useFormContext()\r\n const existFlag = useWatch({ name: existFlagName ?? '', control: methods.control })\r\n const xsOutside = indentOff ? 0 : 0.3\r\n const xsInside = indentOff ? 12 : 11.7\r\n return (\r\n <>\r\n {existFlagName && categoryMst.checkExistence === yesNo.yes &&\r\n \r\n \r\n \r\n }\r\n {\r\n (categoryMst.checkExistence === Flag.OFF || existFlag === Flag.ON) && categoryMst?.options && (\r\n \r\n \r\n \r\n {categoryMst.options.map((opt, i) =>\r\n \r\n {categoryMst.direction === direction.horizontal ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n )}\r\n \r\n \r\n )\r\n }\r\n {\r\n (categoryMst.checkExistence === Flag.OFF || existFlag === Flag.ON) && categoryMst?.masterData && (\r\n \r\n \r\n \r\n {categoryMst.masterData.map((opt, i) =>\r\n \r\n {categoryMst.direction === direction.horizontal ? (\r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n )}\r\n \r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n\r\ninterface OptionFormProps {\r\n name: string\r\n option: Option\r\n}\r\n\r\n/** 選択肢 */\r\nexport const OptionForm = (props: OptionFormProps) => {\r\n const { name, option } = props\r\n \r\n const methods = useFormContext()\r\n const flagValue = useWatch({ name: `${name}.flag`, control: methods.control })\r\n \r\n return (\r\n <>\r\n \r\n {option.optionName}\r\n \r\n \r\n \r\n \r\n {flagValue === yesNo.yes && option.addQuestions && option.addQuestions.map((addQuestion) =>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\ninterface MasterDataFormProps {\r\n name: string\r\n masterData: SpecifyMaster\r\n}\r\n\r\n/** 選択肢 */\r\nexport const MasterDataForm = (props: MasterDataFormProps) => {\r\n const { name, masterData } = props\r\n \r\n const methods = useFormContext()\r\n const flagValue = useWatch({ name: `${name}.flag`, control: methods.control })\r\n \r\n return (\r\n <>\r\n \r\n {masterData.name}\r\n \r\n \r\n \r\n \r\n {flagValue === yesNo.yes && masterData.addQuestions && masterData.addQuestions.map((addQuestion) =>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\ninterface AddQuestionUnitProps {\r\n topName: string\r\n addQuestion: AddQuestion\r\n}\r\n\r\nexport const AddQuestionUnit = (props: AddQuestionUnitProps) => {\r\n const { topName, addQuestion } = props\r\n \r\n const render = () => {\r\n switch(addQuestion?.fieldType){\r\n case fieldType.radio:\r\n const buttonValueLabels = addQuestion.addQuestionOptions?.map(op => ({\r\n label: op.optionText,\r\n value: op.optionValue,\r\n })) ?? []\r\n \r\n return(\r\n \r\n )\r\n case fieldType.checkBox:\r\n return null // 未実装\r\n \r\n case fieldType.text:\r\n return (\r\n \r\n )\r\n \r\n default:\r\n return null\r\n }\r\n }\r\n \r\n return (\r\n <>\r\n \r\n {addQuestion.required === yesNo.yes && * }\r\n {addQuestion.questionText}\r\n \r\n \r\n {render()} \r\n \r\n \r\n )\r\n}\r\n","import {\n executeGet,\n executePut,\n} from '../common/apiCaller'\nimport {\n GetChildrenAllergyDto,\n PutChildrenAllergyInputDto,\n} from '../dto/childrenAllergyDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-allergy'\n\nexport const executeGetChildrenAllergy = (id: string) => {\n return executeGet(apiName, `${apiPath}/${id}`)\n}\n\nexport const executePutChildrenAllergy = (id: string, input: PutChildrenAllergyInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}\n","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { Child, getChild } from '../common/child'\r\nimport { getCategories } from '../common/category'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { Flag, yesNo } from '../common/constant/classification'\r\nimport { GetCategoryMstDto, Option } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GetChildrenAllergyDto } from '../../dataAccess/webApi/dto/childrenAllergyDto'\r\nimport { executeGetChildrenAllergy, executePutChildrenAllergy } from '../../dataAccess/webApi/dao/childrenAllergyDao'\r\nimport { tabValue } from '../member/memberService'\r\nimport { translate } from '../../i18n'\r\n\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 入力フォームの項目の定義 */\r\nexport interface AllergyForm {\r\n code: string\r\n flag: string\r\n addAnswer?: AddAnswerForm\r\n}\r\n\r\nexport interface AddAnswerForm {\r\n symptoms?: string | null\r\n treatments?: string | null\r\n concerns?: string | null\r\n useAllergyMedicine?: string | null\r\n allergyItemName?: string | null\r\n}\r\n\r\nexport interface Inputs {\r\n childId: string\r\n childrenUpdateDatetime: string | null\r\n allergyFlag: string | null\r\n allergy?: AllergyForm[] | null\r\n}\r\n\r\nconst FORM_DEFAULT_VALUES: any = {\r\n childrenUpdateDatetime: null,\r\n allergyFlag: null,\r\n allergy: null\r\n}\r\n\r\nconst CATEGORY_KEY = 'allergy'\r\nconst DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { childId } = useParams()\r\n /** カテゴリー情報 */\r\n const [categoryMst, setCategoryMst] = useState()\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const formMethods = useForm({\r\n defaultValues: { childId, ...FORM_DEFAULT_VALUES}\r\n })\r\n \r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes, childId }] })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n allergyResp\r\n ] = await Promise.all([\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: [CATEGORY_KEY]}),\r\n getChild(childId),\r\n executeGetChildrenAllergy(childId)\r\n ])\r\n \r\n setCategoryMst(category)\r\n const allergy = allergyResp.result\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child, allergy, category),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId: data.childId }],\r\n })\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const allergy = getRegistAllergy(data)\r\n const inputData = {\r\n allergyFlag: data.allergyFlag,\r\n childrenUpdateDatetime: data.childrenUpdateDatetime ?? \"\",\r\n allergy: allergy\r\n }\r\n \r\n const resp = await executePutChildrenAllergy(data.childId, inputData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyConfirmationChild.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId: data.childId })\r\n }\r\n \r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog])\r\n\r\n return {\r\n CATEGORY_KEY,\r\n categoryMst,\r\n childrenResultCode,\r\n formMethods,\r\n onSubmit,\r\n }\r\n}\r\n\r\nconst getInitialInputs = (child: Child, allergy: GetChildrenAllergyDto[], categoryMst: GetCategoryMstDto[]) => {\r\n const inputs = {\r\n childrenUpdateDatetime: child.updateDatetime,\r\n allergyFlag: child.allergyFlag,\r\n allergy: getAllergyForms(allergy, categoryMst)\r\n }\r\n return inputs\r\n}\r\n\r\nexport const getAllergyForms = (allergy: GetChildrenAllergyDto[], categoryMst: GetCategoryMstDto[])=> {\r\n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_KEY)\r\n if (targetCategory?.options == null) {\r\n return undefined\r\n }\r\n \r\n const allergyForm: AllergyForm[] = []\r\n targetCategory.options.forEach((opt: Option) => {\r\n let matchedAllergy\r\n if (allergy != null) {\r\n matchedAllergy = allergy.find((a) => a.code === opt.code)\r\n }\r\n \r\n if (matchedAllergy == null) {\r\n allergyForm.push({\r\n code: opt.code,\r\n flag: Flag.OFF,\r\n addAnswer: {}\r\n })\r\n } else {\r\n allergyForm.push({\r\n code: opt.code,\r\n flag: Flag.ON,\r\n addAnswer: {\r\n allergyItemName: matchedAllergy.allergyItemName,\r\n symptoms: matchedAllergy.symptoms,\r\n treatments: matchedAllergy.treatments,\r\n concerns: matchedAllergy.concerns,\r\n useAllergyMedicine: matchedAllergy.useAllergyMedicine\r\n }\r\n })\r\n }\r\n })\r\n \r\n return allergyForm\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用のアレルギー情報を取得\r\n * @param data 入力値\r\n * @returns お子さま情報登録APIのINPUT用のアレルギー情報\r\n */\r\nexport const getRegistAllergy = (data: Inputs) => {\r\n if (data.allergyFlag !== Flag.ON) {\r\n return undefined\r\n }\r\n \r\n let result: \r\n {\r\n code: string\r\n allergyItemName?: string | null\r\n symptoms: string | null\r\n treatments: string | null\r\n concerns: string | null\r\n useAllergyMedicine: string | null\r\n }[] = []\r\n \r\n if (data.allergy != null) {\r\n result = data.allergy\r\n .filter((value) => value.flag === Flag.ON)\r\n .map((value) => {\r\n return {\r\n code: value.code,\r\n allergyItemName: value.addAnswer?.allergyItemName ?? null,\r\n symptoms: value.addAnswer?.symptoms ?? null,\r\n treatments: value.addAnswer?.treatments ?? null,\r\n concerns: value.addAnswer?.concerns ?? null,\r\n useAllergyMedicine: value.addAnswer?.useAllergyMedicine ?? null,\r\n }\r\n })\r\n }\r\n \r\n if (result.length === 0) {\r\n return undefined\r\n }\r\n \r\n return result\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport React from 'react'\r\n// import { useEffect } from 'react'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { FlexibleCheckBoxesUnit } from '../components/common/memberModifyChild/flexibleCheckBoxesUnit'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { useAction } from '../../containers/memberModifyChildAllergy/memberModifyChildAllergyService'\r\nimport { translate } from '../../i18n'\r\n\r\nexport const MemberModifyChildAllergy = () => {\r\n const { CATEGORY_KEY, categoryMst, childrenResultCode, formMethods, onSubmit} = useAction()\r\n\r\n // useEffect(() => {\r\n // const subscription = formMethods.watch((values, { name, type }) => {\r\n // if (name && type === 'change') {\r\n // console.log(values)\r\n // }\r\n // })\r\n // return () => subscription.unsubscribe()\r\n // // eslint-disable-next-line react-hooks/exhaustive-deps\r\n // }, [])\r\n\r\n let targetCategory\r\n if (categoryMst) {\r\n targetCategory = categoryMst.find((mst) => mst.category === CATEGORY_KEY)\r\n }\r\n if (!targetCategory) return ()\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!childrenResultCode && (\r\n \r\n )}\r\n\r\n \r\n \r\n {translate('memberModifyConfirmationChild.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { getCategories } from '../common/category'\r\nimport { Child, getChild } from '../common/child'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { tabValue } from '../member/memberService'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { PutChildrenDetailInputDto } from '../../dataAccess/webApi/dto/childrenDto'\r\nimport { executePutChildrenDetail } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { translate } from '../../i18n'\r\n\r\n/** カテゴリーキー */\r\nconst CATEGORY_KEYS = ['familyHospital','familyHospitalTel']\r\n\r\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\r\nconst DEFAULT_PROJECT_ID = '0'\r\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\r\nconst DEFAULT_FACILITY_ID = '0'\r\n\r\n/** URLパラメータ */\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** かかりつけ医の入力フォームの項目の定義 */\r\nexport interface Inputs {\r\n familyHospital?: string | null\r\n familyHospitalTel?: string | null\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n // URLパラメータ取得\r\n const { childId } = useParams()\r\n // カテゴリーマスタ\r\n const [categoryMst, setCategoryMst] = useState()\r\n // お子さま詳細更新日時\r\n const [updateDatetime, setUpdateDatetime] = useState()\r\n // // リザルトコード\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n // オペレーションログ\r\n const { addOperationLog } = useOperationLog()\r\n\r\n // 入力フォーム初期値設定\r\n const formMethods = useForm({\r\n defaultValues: {}\r\n })\r\n\r\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\r\n useLayoutEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\r\n })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n ] = await Promise.all([\r\n // カテゴリーマスタ取得\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS}),\r\n // お子さま情報取得\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n ])\r\n \r\n // カテゴリーマスタ設定\r\n setCategoryMst(category)\r\n // お子さま情報設定\r\n setUpdateDatetime(child.detailUpdateDatetime ?? '')\r\n // 入力フォームに設定\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 確定処理\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 登録情報を設定\r\n const regData = getRegistFamilyHospital(data, updateDatetime)\r\n // 登録実行\r\n const resp = await executePutChildrenDetail(childId, regData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyChildFamilyHospital.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog, updateDatetime]\r\n )\r\n\r\n return {\r\n CATEGORY_KEYS,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode\r\n }\r\n}\r\n\r\n/**\r\n * 入力フォームの初期値設定\r\n */\r\nconst getInitialInputs = (child: Child) => {\r\n return {\r\n familyHospital: child.familyHospital,\r\n familyHospitalTel: child.familyHospitalTel ?? '',\r\n }\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用のかかりつけ医情報を取得\r\n * @param data 入力値\r\n * @param updateDatetime 更新前更新日時\r\n * @returns お子さま情報登録APIのINPUT用のかかりつけ医情報\r\n */\r\nconst getRegistFamilyHospital = (data: Inputs, updateDatetime?: string): PutChildrenDetailInputDto => {\r\n // 共通情報\r\n const commonInfo = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n updateDatetime: updateDatetime ?? '',\r\n }\r\n\r\n return undefinedPropsToNull({\r\n ...commonInfo,\r\n familyHospital: blankToNull(data.familyHospital),\r\n familyHospitalTel: blankToNull(data.familyHospitalTel),\r\n })\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TelTextBox } from '../components/common/inputs/telTextBox'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { translate } from '../../i18n'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { useAction } from '../../containers/memberModifyChildFamilyHospital/memberModifyChildFamilyHospitalService'\r\n\r\nexport const MemberModifyChildFamilyHospital = () => {\r\n const {\r\n CATEGORY_KEYS,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode\r\n } = useAction()\r\n \r\n const categories = categoryMst?.filter((mst) => CATEGORY_KEYS.includes(mst.category))\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {!!categories?.length ?\r\n (<>\r\n \r\n {categories && \r\n categories.map((obj) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n )\r\n :\r\n (<>\r\n {translate('memberModifyChildFamilyHospital.error.noCategoryMst')}\r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n !!childrenResultCode && (\r\n \r\n )\r\n \r\n }\r\n \r\n \r\n {translate('memberModifyChildFamilyHospital.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\ninterface InputFormProps {\r\n categoryMst: GetCategoryMstDto,\r\n facilitiesTypeList?: {value: string, label: string}[]\r\n}\r\n\r\n/** 各項目の入力フォーム */\r\nconst InputForm = (props: InputFormProps) => {\r\n const { categoryMst } = props\r\n \r\n const render = () => {\r\n switch(categoryMst.category) {\r\n case \"familyHospitalTel\":\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n default:\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n return (render())\r\n}\r\n","// テキストフォームコントロール\r\n//\r\n\r\nimport Visibility from '@mui/icons-material/Visibility'\r\nimport VisibilityOff from '@mui/icons-material/VisibilityOff'\r\nimport { IconButton, InputAdornment, Grid, styled, FormHelperText } from '@mui/material'\r\nimport React, { ChangeEvent, FocusEvent, KeyboardEvent, useCallback, useMemo, useState } from 'react'\r\nimport { Control, Validate, useController } from 'react-hook-form'\r\nimport {\r\n emailValidator,\r\n katakanaValidator,\r\n passwordValidator,\r\n postalCodeValidator,\r\n requiredValidator,\r\n} from '../../../../containers/common/validator'\r\nimport { translate } from '../../../../i18n'\r\nimport { formatPostalCode } from '../../../../utils/itemFormatUtil'\r\nimport { getValueByNameStr } from '../../../../utils/objectUtil'\r\nimport { FlexboxMiddle, Separator } from '../flexboxes'\r\nimport { TextBoxBaseStyled } from './textBoxBaseStyled'\r\n\r\ntype TextType = 'postalCode' | 'email' | 'katakana' | 'oneTimeCode' | 'password'\r\n\r\ninterface PasswordRule {\r\n minimumLength: number\r\n requireNumbers: boolean\r\n requireUppercase: boolean\r\n requireLowercase: boolean\r\n requireSymbols: boolean\r\n temporaryPasswordValidityDays: number\r\n}\r\n\r\ninterface TextBoxProps {\r\n /** 入力値を紐づける(バインドする)インプットオブジェクトのプロパティ名 */\r\n name: string\r\n /** 項目の名称。必須エラーなどのエラーメッセージで使用 */\r\n label: string\r\n /** 入力必須とする場合true */\r\n required?: boolean\r\n // /** 非活性いいいいいい、lする場合true\r\n disabled?: boolean\r\n /** 最大入力文字数 */\r\n maxLength?: number\r\n /** width: 100% にする場合true */\r\n fullWidth?: boolean\r\n /** プレースホルダ */\r\n placeholder?: string\r\n /** 入力欄左に表示するアイコン */\r\n startIcon?: React.ReactNode\r\n /** 複数行入力する場合true */\r\n multiline?: boolean\r\n /** 複数行入力する場合の表示行数 */\r\n rows?: number\r\n /**\r\n * ReactHookFormのコントロールオブジェクト\r\n * 通常は省略する。\r\n * ただし、入力コントロールがFormタグの子孫にならない場合に指定する必要がある。\r\n */\r\n control?: Control\r\n /**\r\n * テキストのタイプに応じて入力値のバリデーションチェックを行います\r\n */\r\n textType?: TextType\r\n /** autocomplete属性 */\r\n autoComplete?: string\r\n /** バリデーションチェックは必須チェックのみ行うかどうか */\r\n requiredOnly?: boolean\r\n /** パスワード動的バリデーションメッセージ */\r\n passwordValidationMsg?: string\r\n /** パスワードルール */\r\n passwordRule?: PasswordRule\r\n /** テキストボックス後ろのテキスト */\r\n afterText?: string\r\n /** inputタグの標準属性 */\r\n type?: string\r\n min?: number\r\n max?: number\r\n}\r\n\r\nconst ErrorText = styled(FormHelperText)({\r\n color: '#c53030',\r\n marginLeft: '14px',\r\n})\r\n\r\nconst getValidators = (label: string, required?: boolean, textType?: TextType, requiredOnly?: boolean, passwordValidationMsg?: string, passwordRule?: PasswordRule) => {\r\n const validator: Record> = {}\r\n if (required) {\r\n validator.required = requiredValidator(label)\r\n }\r\n \r\n if (requiredOnly) {\r\n return validator\r\n }\r\n\r\n switch (textType) {\r\n case 'postalCode':\r\n validator.postalCode = postalCodeValidator()\r\n break\r\n case 'email':\r\n validator.email = emailValidator()\r\n break\r\n case 'katakana':\r\n validator.katakana = katakanaValidator()\r\n break\r\n case 'password':\r\n validator.password = passwordValidator(\r\n passwordValidationMsg ?? translate('system.error.validPassword'),\r\n passwordRule ?? {\r\n minimumLength: 8,\r\n requireNumbers: true,\r\n requireUppercase: true,\r\n requireLowercase: true,\r\n requireSymbols: true,\r\n temporaryPasswordValidityDays: 8,\r\n })\r\n break\r\n default:\r\n break\r\n }\r\n return validator\r\n}\r\n\r\nconst formatters: Record string> = {\r\n postalCode: (value) => formatPostalCode(value),\r\n}\r\n\r\n/**\r\n * プロパティtextTypeに対応するinputタグのtype属性値のマップ。\r\n * このマップに存在しない場合は、type属性の指定なし。\r\n * 数値のみ項目に tel を指定しているのは、numberの使い勝手が非常に悪い為、敢えて tel を指定しています。\r\n * 参考:https://qiita.com/Avocado/items/2148d3af400823f91ea5\r\n */\r\nconst textTypeToInputType: Record = {\r\n postalCode: 'tel',\r\n email: 'email',\r\n oneTimeCode: 'tel',\r\n password: 'password',\r\n}\r\n\r\n/** テキストフォームコントロール */\r\nexport const TextBoxAfterText = (props: TextBoxProps) => {\r\n const { name, label, placeholder, required, maxLength, startIcon, control, textType, disabled, requiredOnly, afterText, ...through } = props\r\n\r\n const [inputType, setInputType] = useState(textType && textTypeToInputType[textType])\r\n\r\n const switchPasswordVisible = useCallback(() => {\r\n setInputType((old) => {\r\n if (old === textTypeToInputType.password) {\r\n return 'text'\r\n } else {\r\n return textTypeToInputType.password\r\n }\r\n })\r\n }, [])\r\n\r\n /**\r\n * password入力ではトリム処理は行わない\r\n * @param value 文字列\r\n * @returns 各行で末尾スペース(半角全角)を除去した文字列\r\n */\r\n const rtrimSpaceByLine = useCallback(\r\n (value: string) => {\r\n if (textType === 'password') {\r\n return value\r\n }\r\n return value.replaceAll(/[  ]+$/gm, '')\r\n },\r\n [textType]\r\n )\r\n\r\n const validate = useMemo(\r\n () => getValidators(label, required, textType, requiredOnly),\r\n [label, required, textType, requiredOnly]\r\n );\r\n\r\n const {\r\n field: { ref, onBlur, onChange, ...ctrlProps },\r\n formState: { errors },\r\n } = useController({\r\n name,\r\n rules: {\r\n ...(maxLength != null && {\r\n maxLength: {\r\n value: maxLength,\r\n message: translate('system.error.charactersCountOver'),\r\n }\r\n }),\r\n validate,\r\n },\r\n defaultValue: '',\r\n control,\r\n })\r\n const onChangeFormat = useCallback(\r\n (event: ChangeEvent | string) => {\r\n let value = typeof event === 'string' ? event : event.target.value\r\n const formatter = formatters[textType ?? '']\r\n if (formatter) {\r\n value = formatter(value)\r\n }\r\n onChange(value)\r\n },\r\n [onChange, textType]\r\n )\r\n const onBlurTrimEnd = useCallback(\r\n (event: FocusEvent) => {\r\n const rtrimedValue = rtrimSpaceByLine(event.target.value)\r\n onChangeFormat(rtrimedValue)\r\n onBlur()\r\n },\r\n [onBlur, onChangeFormat, rtrimSpaceByLine]\r\n )\r\n const error = getValueByNameStr(errors, name)\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n if (!through.multiline && event.key === 'Enter') {\r\n // Enterでサブミットされた場合い末尾トリムを実施\r\n const rtrimedValue = rtrimSpaceByLine(ctrlProps.value)\r\n if (rtrimedValue !== ctrlProps.value) {\r\n onChangeFormat(rtrimedValue)\r\n }\r\n }\r\n }}\r\n maxLength={maxLength}\r\n inputProps={{\r\n maxLength,\r\n }}\r\n InputProps={{\r\n ...(startIcon && {\r\n startAdornment: {startIcon},\r\n }),\r\n ...(textType === 'password' && {\r\n endAdornment: (\r\n \r\n \r\n {inputType === textTypeToInputType.password ? : }\r\n \r\n \r\n ),\r\n }),\r\n }}\r\n // *を表示する為にlabelプロパティにのみrequired適用 ※ブラウザ固有必須動作をさせないため\r\n // https://stackoverflow.com/questions/52067514/material-ui-replicating-the-required-text-field-error-message/52067539\r\n InputLabelProps={{ required }}\r\n inputRef={ref}\r\n error={!!error}\r\n disabled={disabled}\r\n placeholder={placeholder}\r\n />\r\n \r\n {afterText && afterText}\r\n \r\n \r\n \r\n {error && {error.message}}\r\n \r\n \r\n )\r\n}\r\n","import { executeGet, executePut } from '../common/apiCaller'\nimport {\n GetChildrenFebrileSeizureDto,\n PutChildrenFebrileSeizureInputDto,\n} from '../dto/childrenFebrileSeizureDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-febrile-seizure'\n\n// 予防接種情報取得\nexport const executeGetChildrenFebrileSeizure = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\n// 予防接種情報登録\nexport const executePutChildrenFebrileSeizure = (id: string, input: PutChildrenFebrileSeizureInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm, useWatch } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { Child, getChild } from '../common/child'\r\nimport { getCategories } from '../common/category'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { Flag, yesNo } from '../common/constant/classification'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { tabValue } from '../member/memberService'\r\nimport { translate } from '../../i18n'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GetChildrenFebrileSeizureDto } from '../../dataAccess/webApi/dto/childrenFebrileSeizureDto'\r\nimport {\r\n executeGetChildrenFebrileSeizure,\r\n executePutChildrenFebrileSeizure\r\n} from '../../dataAccess/webApi/dao/childrenFebrileSeizureDao'\r\n\r\n/** カテゴリーキー */\r\nconst CATEGORY_KEY = 'febrileSeizure'\r\n/** サブカテゴリーキー */\r\nconst SUB_CATEGORIES = [\r\n 'febrileSeizure.firstSeizureAge',\r\n 'febrileSeizure.lastSeizureAge',\r\n 'febrileSeizure.count',\r\n 'febrileSeizure.useMedicine',\r\n 'febrileSeizure.noteUser',\r\n]\r\n/** 存在フラグ名 */\r\nconst EXIST_FLAG_NAME = 'febrileSeizureFlag'\r\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\r\nconst DEFAULT_PROJECT_ID = '0'\r\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\r\nconst DEFAULT_FACILITY_ID = '0'\r\n\r\n/** URLパラメータ */\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 熱性けいれんの入力フォームの項目の定義 */\r\nexport interface Inputs {\r\n febrileSeizureFlag: string | null\r\n febrileSeizure?: {\r\n firstSeizureAge?: number | null\r\n lastSeizureAge?: number | null\r\n count?: number | null\r\n useMedicine?: string | null\r\n noteUser?: string | null\r\n }\r\n}\r\n\r\n/** 入力フォームの初期値 */\r\nconst FORM_DEFAULT_VALUES: Inputs = {\r\n febrileSeizureFlag: Flag.OFF,\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n // URLパラメータ取得\r\n const { childId } = useParams()\r\n // カテゴリーマスタ\r\n const [categoryMst, setCategoryMst] = useState()\r\n // お子さま詳細更新日時\r\n const [detailUpdateDatetime, setDetailUpdateDatetime] = useState()\r\n // 熱性けいれん情報更新日時\r\n const [febrileSeizureUpdateDatetime, setFebrileSeizureUpdateDatetime] = useState()\r\n // リザルトコード\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n // オペレーションログ\r\n const { addOperationLog } = useOperationLog()\r\n\r\n // 入力フォーム初期値設定\r\n const formMethods = useForm({\r\n defaultValues: FORM_DEFAULT_VALUES\r\n })\r\n\r\n // 入力値監視(なしあり)\r\n const existFlag = useWatch({ name: EXIST_FLAG_NAME, control: formMethods.control })\r\n \r\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\r\n useLayoutEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\r\n })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n febrileSeizureResp\r\n ] = await Promise.all([\r\n // カテゴリーマスタ取得\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: [CATEGORY_KEY, ...SUB_CATEGORIES]}),\r\n // お子さま情報取得\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n // 熱性けいれん情報取得\r\n executeGetChildrenFebrileSeizure(childId, DEFAULT_FACILITY_ID)\r\n ])\r\n\r\n // カテゴリーマスタ設定\r\n setCategoryMst(category)\r\n // お子さま情報設定\r\n setDetailUpdateDatetime(child.detailUpdateDatetime ?? '')\r\n // 熱性けいれん情報更新日時\r\n setFebrileSeizureUpdateDatetime(febrileSeizureResp?.result[0]?.updateDatetime ?? '')\r\n // 入力フォームに設定\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child, febrileSeizureResp.result),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 確定処理\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n\r\n if (!validation(data, formMethods)) {\r\n // バリデーションチェックエラー\r\n return\r\n }\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 登録情報を設定\r\n const regData = getRegistFebrileSeizure(data, detailUpdateDatetime, febrileSeizureUpdateDatetime)\r\n // 登録実行\r\n const resp = await executePutChildrenFebrileSeizure(childId, regData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyChildFebrileSeizure.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog, detailUpdateDatetime, febrileSeizureUpdateDatetime]\r\n )\r\n\r\n // 情報返却\r\n return {\r\n CATEGORY_KEY,\r\n SUB_CATEGORIES,\r\n EXIST_FLAG_NAME,\r\n formMethods,\r\n existFlag,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode,\r\n }\r\n}\r\n\r\n/**\r\n * 入力フォームの初期値設定\r\n */\r\nconst getInitialInputs = (\r\n child: Child,\r\n childrenFebrileSeizure: GetChildrenFebrileSeizureDto[]\r\n) => {\r\n const inputs = {\r\n febrileSeizureFlag: child.febrileSeizureFlag ?? Flag.OFF,\r\n febrileSeizure: {\r\n ...childrenFebrileSeizure[0]\r\n }\r\n }\r\n\r\n return inputs\r\n}\r\n\r\n/**\r\n * バリデーションチェック\r\n */\r\nconst validation = (data: Inputs, formMethods: any) => {\r\n let result = true\r\n\r\n // なしの場合はチェックしない\r\n if (data.febrileSeizureFlag !== Flag.ON) {\r\n return result\r\n }\r\n\r\n if (data.febrileSeizure) {\r\n const { firstSeizureAge, lastSeizureAge, count } = data.febrileSeizure\r\n\r\n // 数値チェック(inputタイプをnumberにするとmaxlengthが効かなかったのでこちらでチェック)\r\n if (firstSeizureAge && !String(firstSeizureAge).match(/^[0-9]*$/)) {\r\n formMethods.setError(`febrileSeizure.firstSeizureAge`, {\r\n message: translate('system.error.onlyHalfWidthNumbers')\r\n })\r\n result = false\r\n }\r\n if (lastSeizureAge && !String(lastSeizureAge).match(/^[0-9]*$/)) {\r\n formMethods.setError(`febrileSeizure.lastSeizureAge`, {\r\n message: translate('system.error.onlyHalfWidthNumbers')\r\n })\r\n result = false\r\n }\r\n if (count && !String(count).match(/^[0-9]*$/)) {\r\n formMethods.setError(`febrileSeizure.count`, {\r\n message: translate('system.error.onlyHalfWidthNumbers')\r\n })\r\n result = false\r\n }\r\n }\r\n \r\n return result\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の熱性けいれん情報を取得\r\n * @param data 入力値\r\n * @param detailUpdateDatetime 更新前更新日時\r\n * @returns お子さま情報登録APIのINPUT用の熱性けいれん情報\r\n */\r\nconst getRegistFebrileSeizure = (data: Inputs, detailUpdateDatetime?: string, febrileSeizureUpdateDatetime?: string) => {\r\n // 共通情報\r\n const commonInfo = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n detailUpdateDatetime: detailUpdateDatetime ?? '',\r\n }\r\n\r\n // 熱性けいれん情報\r\n if (data.febrileSeizureFlag !== Flag.ON) {\r\n // なし\r\n return undefinedPropsToNull({\r\n ...commonInfo,\r\n febrileSeizureFlag: data.febrileSeizureFlag ?? Flag.OFF,\r\n })\r\n } else {\r\n // あり\r\n const { febrileSeizureFlag, febrileSeizure } = data\r\n\r\n // 熱性けいれん情報編集\r\n let regFebrileSeizure\r\n if (febrileSeizure) {\r\n const { firstSeizureAge, lastSeizureAge, count, ...obj } = febrileSeizure\r\n regFebrileSeizure = {\r\n updateDatetime : febrileSeizureUpdateDatetime ? '' : null,\r\n firstSeizureAge: firstSeizureAge ? Number(firstSeizureAge) : null,\r\n lastSeizureAge: lastSeizureAge ? Number(lastSeizureAge) : null,\r\n count: count ? Number(count) : null,\r\n ...obj,\r\n }\r\n }\r\n\r\n return undefinedPropsToNull({\r\n ...commonInfo,\r\n febrileSeizureFlag: febrileSeizureFlag ?? Flag.OFF,\r\n febrileSeizure: regFebrileSeizure\r\n })\r\n }\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { TextBoxAfterText } from '../components/common/inputs/textBoxAfterText'\r\nimport { translate } from '../../i18n'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { useAction } from '../../containers/memberModifyChildFebrileSeizure/memberModifyChildFebrileSeizureService'\r\n\r\nexport const MemberModifyChildFebrileSeizure = () => {\r\n const {\r\n CATEGORY_KEY,\r\n SUB_CATEGORIES,\r\n EXIST_FLAG_NAME,\r\n formMethods,\r\n existFlag,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode,\r\n } = useAction()\r\n \r\n const febrileSeizureCategory = categoryMst?.find((value) => value.category === CATEGORY_KEY)\r\n const subCategories = categoryMst?.filter((mst) => SUB_CATEGORIES.includes(mst.category))\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {febrileSeizureCategory ?\r\n (<>\r\n \r\n {febrileSeizureCategory.checkExistence && febrileSeizureCategory.checkTextNo && febrileSeizureCategory.checkTextYes &&\r\n \r\n \r\n {febrileSeizureCategory.required === yesNo.yes && (\r\n *\r\n )}\r\n {febrileSeizureCategory.altCategoryName ?? febrileSeizureCategory.name}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n {(subCategories && (febrileSeizureCategory.checkExistence === yesNo.no || existFlag === yesNo.yes)) && (\r\n subCategories.map((obj) => {\r\n return (\r\n \r\n )\r\n })\r\n )}\r\n )\r\n :\r\n (<>\r\n {translate('memberModifyChildFebrileSeizure.error.noCategoryMst')}\r\n )\r\n }\r\n \r\n \r\n \r\n {!!childrenResultCode && (\r\n \r\n )}\r\n \r\n \r\n {translate('memberModifyChildFebrileSeizure.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\ninterface InputFormProps {\r\n categoryMst: GetCategoryMstDto\r\n}\r\n\r\n/** 各項目の入力フォーム */\r\nconst InputForm = (props: InputFormProps) => {\r\n const { categoryMst } = props\r\n\r\n const render = () => {\r\n const afterText = categoryMst.category === \"febrileSeizure.count\" ?\r\n translate('memberModifyChildFebrileSeizure.label.time')\r\n : translate('memberModifyChildFebrileSeizure.label.age');\r\n\r\n switch(categoryMst.category) {\r\n case \"febrileSeizure.firstSeizureAge\":\r\n case \"febrileSeizure.lastSeizureAge\":\r\n case \"febrileSeizure.count\":\r\n /* 初回/最終発症年齢 発症回数 */\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && (\r\n *\r\n )}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n\r\n case \"febrileSeizure.useMedicine\":\r\n /* 抗けいれん薬の使用 */\r\n if (categoryMst.options == null || categoryMst.options.length === 0) return null\r\n \r\n const labelData = categoryMst.options.map(op => ({ label: op.optionName, value: op.code }))\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && (\r\n *\r\n )}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n case \"febrileSeizure.noteUser\":\r\n /* 備考(※施設入力用は表示しない) */\r\n return (\r\n \r\n \r\n \r\n \r\n
    \r\n {categoryMst.required === yesNo.yes && (\r\n *\r\n )}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n
    \r\n
    \r\n {categoryMst.maxLength != null ? `(${categoryMst.maxLength}字以内)` : ''}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n \r\n default:\r\n return null\r\n }\r\n }\r\n \r\n return (render())\r\n}\r\n","import { styled } from '@mui/system'\r\nimport { ButtonOutlinedWarningBase } from './buttonOutlinedWarningBase'\r\n\r\n/**\r\n * warningカラーのボタンコントロールSサイズ。\r\n */\r\nexport const ButtonOutlinedWarningS = styled(ButtonOutlinedWarningBase)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeM,\r\n padding: '0 10px',\r\n borderWidth: 3,\r\n borderRadius: 8,\r\n}))\r\n","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useFieldArray, useForm, useWatch } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { getCategories } from '../common/category'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { tabValue } from '../member/memberService'\r\nimport { translate } from '../../i18n'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GetChildrenHospitalAdmissionDto } from '../../dataAccess/webApi/dto/childrenHospitalAdmissionDto'\r\nimport {\r\n executeGetChildrenHospitalAdmission,\r\n executePutChildrenHospitalAdmission\r\n} from '../../dataAccess/webApi/dao/childrenHospitalAdmissionDao'\r\n\r\n/** カテゴリーキー */\r\nconst CATEGORY_KEY = 'hospitalAdmission'\r\n/** サブカテゴリーキー */\r\nconst SUB_CATEGORIES = [\r\n 'hospitalAdmission.admissionAge',\r\n 'hospitalAdmission.reason'\r\n]\r\n/** 市民用事業ID(市民用の項目は事業ID'0') */\r\nconst DEFAULT_PROJECT_ID = '0'\r\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\r\nconst DEFAULT_FACILITY_ID = '0'\r\n\r\n/** URLパラメータ */\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 入院情報の入力フォームの項目の定義 */\r\nexport interface Inputs {\r\n hospitalAdmission?: HospitalAdmissionForm[]\r\n}[]\r\n\r\n/** 入力フォームの項目の定義 */\r\nexport interface HospitalAdmissionForm {\r\n seq?: number | null\r\n admissionAge?: number | null\r\n admissionMonth?: number | null\r\n reason?: string | null\r\n deleted?: boolean\r\n}\r\n\r\n/** 入力フォームの初期値 */\r\nconst FORM_DEFAULT_VALUES: Inputs = {\r\n hospitalAdmission: [],\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n // URLパラメータ取得\r\n const { childId } = useParams()\r\n // カテゴリーマスタ\r\n const [categoryMst, setCategoryMst] = useState()\r\n // リザルトコード\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n // オペレーションログ\r\n const { addOperationLog } = useOperationLog()\r\n\r\n // 入力フォーム初期値設定\r\n const formMethods = useForm({\r\n defaultValues: FORM_DEFAULT_VALUES,\r\n })\r\n const hospitalAdmissions = useWatch({ name: CATEGORY_KEY, control: formMethods.control })\r\n const { fields, append } = useFieldArray({\r\n control: formMethods.control,\r\n name: CATEGORY_KEY\r\n })\r\n\r\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\r\n useLayoutEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\r\n })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n // child,\r\n hospitalAdmissionResp\r\n ] = await Promise.all([\r\n // カテゴリーマスタ取得\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: [CATEGORY_KEY, ...SUB_CATEGORIES]}),\r\n // 入院情報情報取得\r\n executeGetChildrenHospitalAdmission(childId, DEFAULT_FACILITY_ID)\r\n ])\r\n\r\n // カテゴリーマスタ設定\r\n setCategoryMst(category)\r\n // 入力フォームに設定\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(hospitalAdmissionResp.result),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 確定処理\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 登録情報を設定\r\n const regData = getRegistHospitalAdmission(data)\r\n // 登録実行\r\n const resp = await executePutChildrenHospitalAdmission(childId, regData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyChildHospitalAdmission.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog]\r\n )\r\n\r\n const onFieldRemove = (i: number) => {\r\n formMethods.setValue(`${CATEGORY_KEY}.${i}.deleted`, true)\r\n }\r\n \r\n const onFieldAppend = () => {append({})}\r\n \r\n // 情報返却\r\n return {\r\n CATEGORY_KEY,\r\n SUB_CATEGORIES,\r\n formMethods,\r\n fields,\r\n hospitalAdmissions,\r\n categoryMst,\r\n onFieldAppend,\r\n onFieldRemove,\r\n onSubmit,\r\n childrenResultCode,\r\n }\r\n}\r\n\r\n/**\r\n * 入力フォームの初期値設定\r\n */\r\nconst getInitialInputs = (childrenHospitalAdmission: GetChildrenHospitalAdmissionDto[]) => {\r\n const inputs = {\r\n hospitalAdmission: childrenHospitalAdmission\r\n }\r\n\r\n return inputs\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の入院情報を取得\r\n * @param data 入力値\r\n * @returns お子さま情報登録APIのINPUT用の入院情報\r\n */\r\nexport const getRegistHospitalAdmission = (data: Inputs) => {\r\n \r\n const base = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n }\r\n \r\n if (data.hospitalAdmission == null || data.hospitalAdmission.length === 0) return {...base, hospitalAdmission: []}\r\n \r\n const targetData = data.hospitalAdmission.filter(e => !e.deleted && (e.admissionAge != null || e.admissionMonth != null || e.reason?.trim()))\r\n \r\n // 年齢、月齢のいずれかのみnullなら0とする\r\n targetData.forEach(e => {\r\n if (e.admissionAge == null && e.admissionMonth != null) {\r\n e.admissionAge = 0\r\n } else if (e.admissionAge != null && e.admissionMonth == null) {\r\n e.admissionMonth = 0\r\n }\r\n if (e.admissionAge != null) e.admissionAge = Number(e.admissionAge)\r\n if (e.admissionMonth != null) e.admissionMonth = Number(e.admissionMonth)\r\n })\r\n \r\n const comparer = (a: HospitalAdmissionForm , b: HospitalAdmissionForm) => {\r\n // 年齢、月齢のいずれかのみnullのデータはない\r\n // nullを含む比較\r\n if (a.admissionAge == null && b.admissionAge == null) {\r\n return 0\r\n } else if (a.admissionAge == null) {\r\n return 1\r\n } else if (b.admissionAge == null) {\r\n return -1\r\n }\r\n \r\n if (a.admissionAge !== b.admissionAge) {\r\n return a.admissionAge - b.admissionAge\r\n } else {\r\n return (a.admissionMonth ?? 0) - (b?.admissionMonth ?? 0) // nullはないはずだけど型エラーになるのでnull対応\r\n }\r\n }\r\n \r\n targetData.sort(comparer)\r\n \r\n const hospitalAdmission = targetData.map((item, i) =>{\r\n return {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n seq: i + 1,\r\n admissionAge: item.admissionAge,\r\n admissionMonth: item.admissionMonth,\r\n reason: item.reason\r\n }\r\n })\r\n \r\n return {...base, hospitalAdmission}\r\n}","import { Divider, FormHelperText, Grid, Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { useFormContext } from 'react-hook-form'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedWarningS } from '../components/common/buttons/buttonOutlinedWarningS'\r\nimport { ButtonS } from '../components/common/buttons/buttonS'\r\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { NumberBox } from '../components/common/inputs/numberBox'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/memberModifyChildHospitalAdmission/memberModifyChildHospitalAdmissionService'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { translate } from '../../i18n'\r\nimport { getValueByNameStr } from '../../utils/objectUtil'\r\n\r\nexport const MemberModifyChildHospitalAdmission = () => {\r\n const {\r\n CATEGORY_KEY,\r\n SUB_CATEGORIES,\r\n formMethods,\r\n fields,\r\n hospitalAdmissions,\r\n categoryMst,\r\n onFieldAppend,\r\n onFieldRemove,\r\n onSubmit,\r\n childrenResultCode,\r\n } = useAction()\r\n\r\n let targetCategory: GetCategoryMstDto | undefined\r\n if (categoryMst) {\r\n targetCategory = categoryMst.find((mst) => mst.category === CATEGORY_KEY)\r\n }\r\n if (!targetCategory) return ()\r\n \r\n const hospitalAdmissionCategory = categoryMst?.find((value) => value.category === CATEGORY_KEY)\r\n const subCategories = categoryMst?.filter((mst) => SUB_CATEGORIES.includes(mst.category))\r\n \r\n if (!hospitalAdmissionCategory || !subCategories || subCategories.length === 0) return ()\r\n \r\n const subCategoryMap: {[key:string]: GetCategoryMstDto} = {}\r\n subCategories?.forEach(e => subCategoryMap[e.category.substring(CATEGORY_KEY.length + 1)] = e)\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n fields != null && fields.map((e, i) => {\r\n if (hospitalAdmissions != null && hospitalAdmissions[i] != null && hospitalAdmissions[i]?.deleted) return null\r\n return ( onFieldRemove(i)} />)\r\n })\r\n }\r\n \r\n 追加\r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!childrenResultCode && (\r\n \r\n )}\r\n\r\n \r\n \r\n {translate('memberModifyChildHospitalAdmission.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\ninterface InputFormProps {\r\n subCategoryMap: {[key:string]: GetCategoryMstDto}\r\n topName: string\r\n onRemove: () => void\r\n}\r\n\r\nconst ErrorText = styled(FormHelperText)({\r\n color: '#c53030',\r\n marginLeft: '14px',\r\n})\r\n\r\nconst AdmissionDivider = styled(Divider)(() => ({\r\n marginBottom: \"8px\",\r\n marginTop: \"8px\",\r\n}))\r\n\r\nconst ShortNumberBox = styled(NumberBox)(() => ({\r\n width: \"32px\",\r\n}))\r\n/** 各項目の入力フォーム */\r\nconst InputForm = (props: InputFormProps) => {\r\n const {subCategoryMap, topName, onRemove } = props\r\n const {admissionAge, reason} = subCategoryMap\r\n \r\n const { formState: { errors } } = useFormContext()\r\n const admissionAgeError = getValueByNameStr(errors, `${topName}.admissionAge`)\r\n const admissionMonthError = getValueByNameStr(errors, `${topName}.admissionMonth`)\r\n const render = () => {\r\n return (\r\n <>\r\n {admissionAge != null && \r\n \r\n {admissionAge.required === yesNo.yes && (\r\n *\r\n )}\r\n {admissionAge.altCategoryName ?? admissionAge.name}\r\n \r\n \r\n \r\n {translate('memberModifyChildHospitalAdmission.label.age')}\r\n \r\n {translate('memberModifyChildHospitalAdmission.label.month')}\r\n \r\n \r\n {admissionAgeError && {admissionAgeError.message}}\r\n {admissionMonthError && {admissionMonthError.message}}\r\n \r\n }\r\n \r\n {reason != null && \r\n \r\n \r\n \r\n
    \r\n {reason.required === yesNo.yes && (\r\n *\r\n )}\r\n {reason.name}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    }\r\n \r\n \r\n 削除\r\n \r\n {}\r\n \r\n )\r\n }\r\n \r\n return (render())\r\n}","import {\n executeGet,\n executePut,\n} from '../common/apiCaller'\nimport {\n GetChildrenMedicalHistoryDto,\n PutChildrenMedicalHistoryInputDto,\n} from '../dto/childrenMedicalHistoryDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-medical-history'\n\nexport const executeGetChildrenMedicalHistory = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\nexport const executePutChildrenMedicalHistory = (id: string, input: PutChildrenMedicalHistoryInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { Child, getChild } from '../common/child'\r\nimport { getCategorySpecifyMasters, SpecifyMasterType } from '../common/category'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { Flag, yesNo } from '../common/constant/classification'\r\nimport { GetCategoryMstDto, SpecifyMaster } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GetChildrenMedicalHistoryDto } from '../../dataAccess/webApi/dto/childrenMedicalHistoryDto'\r\nimport { executeGetChildrenMedicalHistory, executePutChildrenMedicalHistory } from '../../dataAccess/webApi/dao/childrenMedicalHistoryDao'\r\nimport { tabValue } from '../member/memberService'\r\nimport { translate } from '../../i18n'\r\n\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 入力フォームの項目の定義 */\r\nexport interface MedicalHistoryForm {\r\n medicalHistoryId: number\r\n flag: string\r\n addAnswer?: {[key: string]: any } \r\n}\r\n\r\nexport interface Inputs {\r\n childId: string\r\n detailUpdateDatetime: string | null\r\n medicalHistoryFlag: string | null\r\n medicalHistory?: MedicalHistoryForm[] | null\r\n}\r\n\r\nconst FORM_DEFAULT_VALUES: any = {\r\n detailUpdateDatetime: null,\r\n medicalHistoryFlag: null,\r\n medicalHistory: null\r\n}\r\n\r\nconst CATEGORY_KEY = 'medicalHistory'\r\nconst DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業設ID'0'\r\nconst DEFAULT_FACILITY_ID = '0' // 市民用のデータは施設ID'0'で作成する\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { childId } = useParams()\r\n /** カテゴリー情報 */\r\n const [categoryMst, setCategoryMst] = useState()\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const formMethods = useForm({\r\n defaultValues: { childId, ...FORM_DEFAULT_VALUES}\r\n })\r\n \r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes, childId }] })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n medicalHistoryResp\r\n ] = await Promise.all([\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: CATEGORY_KEY, masterType: SpecifyMasterType.MEDICAL_HISTORY}),\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n executeGetChildrenMedicalHistory(childId, DEFAULT_FACILITY_ID)\r\n ])\r\n \r\n setCategoryMst(category)\r\n const medicalHistory = medicalHistoryResp.result\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child, medicalHistory, category),\r\n })\r\n formMethods.resetField(\"medicalHistoryFlag\")\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId: data.childId }],\r\n })\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const medicalHistory = getRegistMedicalHistory(data)\r\n const inputData = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n medicalHistoryFlag: data.medicalHistoryFlag,\r\n detailUpdateDatetime: data.detailUpdateDatetime ?? \"\",\r\n medicalHistory: medicalHistory\r\n }\r\n \r\n const resp = await executePutChildrenMedicalHistory(data.childId, inputData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyConfirmationChild.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId: data.childId })\r\n }\r\n \r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog])\r\n\r\n return {\r\n CATEGORY_KEY,\r\n categoryMst,\r\n childrenResultCode,\r\n formMethods,\r\n onSubmit,\r\n }\r\n}\r\n\r\nconst getInitialInputs = (child: Child, medicalHistory: GetChildrenMedicalHistoryDto[], categoryMst: GetCategoryMstDto[]) => {\r\n const inputs = {\r\n detailUpdateDatetime: child.detailUpdateDatetime,\r\n medicalHistoryFlag: child.medicalHistoryFlag,\r\n medicalHistory: getMedicalHistoryForms(medicalHistory, categoryMst)\r\n }\r\n return inputs\r\n}\r\n\r\nexport const getMedicalHistoryForms = (medicalHistory: GetChildrenMedicalHistoryDto[], categoryMst: GetCategoryMstDto[])=> {\r\n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_KEY)\r\n if (targetCategory?.masterData == null) {\r\n return undefined\r\n }\r\n \r\n const medicalHistoryForm: MedicalHistoryForm[] = []\r\n targetCategory.masterData.forEach((opt: SpecifyMaster) => {\r\n let matchedMedicalHistory\r\n if (medicalHistory != null) {\r\n matchedMedicalHistory = medicalHistory.find((mh) => mh.medicalHistoryId === opt.id)\r\n }\r\n \r\n if (matchedMedicalHistory == null) {\r\n medicalHistoryForm.push({\r\n medicalHistoryId: opt.id,\r\n flag: Flag.OFF,\r\n addAnswer: {}\r\n })\r\n } else {\r\n medicalHistoryForm.push({\r\n medicalHistoryId: opt.id,\r\n flag: Flag.ON,\r\n addAnswer: matchedMedicalHistory.addAnswer != null\r\n ? matchedMedicalHistory.addAnswer\r\n : {}\r\n })\r\n }\r\n })\r\n \r\n return medicalHistoryForm\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の既往症情報を取得\r\n * @param data 入力値\r\n * @returns お子さま情報登録APIのINPUT用の既往症情報\r\n */\r\nexport const getRegistMedicalHistory = (data: Inputs) => {\r\n if (data.medicalHistoryFlag !== Flag.ON) {\r\n return undefined\r\n }\r\n \r\n let result: \r\n {\r\n medicalHistoryId: number\r\n addAnswer?: string | null\r\n }[] = []\r\n \r\n if (data.medicalHistory != null) {\r\n result = data.medicalHistory\r\n .filter((value) => value.flag === Flag.ON)\r\n .map((value) => {\r\n return {\r\n medicalHistoryId: value.medicalHistoryId,\r\n addAnswer: value.addAnswer != null && Object.keys(value.addAnswer).length\r\n ? JSON.stringify(value.addAnswer)\r\n : null,\r\n }\r\n })\r\n }\r\n \r\n if (result.length === 0) {\r\n return undefined\r\n }\r\n \r\n return result\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport React from 'react'\r\n// import { useEffect } from 'react'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { FlexibleCheckBoxesUnit } from '../components/common/memberModifyChild/flexibleCheckBoxesUnit'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { useAction } from '../../containers/memberModifyChildMedicalHistory/memberModifyChildMedicalHistoryService'\r\nimport { translate } from '../../i18n'\r\n\r\nexport const MemberModifyChildMedicalHistory = () => {\r\n const { CATEGORY_KEY, categoryMst, childrenResultCode, formMethods, onSubmit} = useAction()\r\n\r\n // useEffect(() => {\r\n // const subscription = formMethods.watch((values, { name, type }) => {\r\n // if (name && type === 'change') {\r\n // console.log(values)\r\n // }\r\n // })\r\n // return () => subscription.unsubscribe()\r\n // // eslint-disable-next-line react-hooks/exhaustive-deps\r\n // }, [])\r\n\r\n let targetCategory\r\n if (categoryMst) {\r\n targetCategory = categoryMst.find((mst) => mst.category === CATEGORY_KEY)\r\n }\r\n if (!targetCategory) return ()\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!childrenResultCode && (\r\n \r\n )}\r\n\r\n \r\n \r\n {translate('memberModifyConfirmationChild.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { getCategories } from '../common/category'\r\nimport { Child, getChild } from '../common/child'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { DecodeMstCategory } from '../common/constant/decodeMst'\r\nimport { getDecodeMstByCategories } from '../common/decodeMst'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { tabValue } from '../member/memberService'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { PutChildrenDetailInputDto } from '../../dataAccess/webApi/dto/childrenDto'\r\nimport { executePutChildrenDetail } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { fromApiYm, toApiYm } from '../../utils/dateUtil'\r\nimport { translate } from '../../i18n'\r\n\r\n/** カテゴリーキー */\r\nconst CATEGORY_KEYS = ['normallyUsedFacilitiesType', 'normallyUsedFacilities', 'normallyUsedFacilitiesTel', 'normallyUsedFacilitiesAdmission', 'normallyUsedFacilitiesUsageTime']\r\n\r\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\r\nconst DEFAULT_PROJECT_ID = '0'\r\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\r\nconst DEFAULT_FACILITY_ID = '0'\r\n\r\n/** URLパラメータ */\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 通常利用施設の入力フォームの項目の定義 */\r\nexport interface Inputs {\r\n normallyUsedFacilitiesType?: string | null\r\n normallyUsedFacilities?: string | null\r\n normallyUsedFacilitiesTel?: string | null\r\n normallyUsedFacilitiesAdmission?: Date | null\r\n normallyUsedFacilitiesStartTime?: string | null\r\n normallyUsedFacilitiesEndTime?: string | null\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n // URLパラメータ取得\r\n const { childId } = useParams()\r\n // カテゴリーマスタ\r\n const [categoryMst, setCategoryMst] = useState()\r\n \r\n // 施設種別リスト\r\n const [facilitiesTypeList, setFacilitiesTypeList] = useState<{value: string, label: string}[]>()\r\n\r\n // お子さま詳細更新日時\r\n const [updateDatetime, setUpdateDatetime] = useState()\r\n // // リザルトコード\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n // オペレーションログ\r\n const { addOperationLog } = useOperationLog()\r\n\r\n // 入力フォーム初期値設定\r\n const formMethods = useForm({\r\n defaultValues: {}\r\n })\r\n\r\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\r\n useLayoutEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\r\n })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n decodeMst\r\n ] = await Promise.all([\r\n // カテゴリーマスタ取得\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS}),\r\n // お子さま情報取得\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n // デコードマスタ取得\r\n getDecodeMstByCategories([\r\n DecodeMstCategory.NORMALLY_USED_FACILITIES_TYPE,\r\n ]),\r\n ])\r\n \r\n const facilitiesTypeList = \r\n decodeMst[DecodeMstCategory.NORMALLY_USED_FACILITIES_TYPE]\r\n ?.map(e => ({ value: e.code, label: e.name}))\r\n ?? []\r\n setFacilitiesTypeList(facilitiesTypeList)\r\n // カテゴリーマスタ設定\r\n setCategoryMst(category)\r\n // お子さま情報設定\r\n setUpdateDatetime(child.detailUpdateDatetime ?? '')\r\n // 入力フォームに設定\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 確定処理\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 登録情報を設定\r\n const regData = getRegistNormallyUsedFacility(data, updateDatetime)\r\n // 登録実行\r\n const resp = await executePutChildrenDetail(childId, regData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyChildNormallyUsedFacility.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog, updateDatetime]\r\n )\r\n\r\n // 情報返却\r\n return {\r\n CATEGORY_KEYS,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode,\r\n facilitiesTypeList\r\n }\r\n}\r\n\r\n/**\r\n * 入力フォームの初期値設定\r\n */\r\nconst getInitialInputs = (child: Child) => {\r\n return {\r\n normallyUsedFacilitiesType: child.normallyUsedFacilitiesType,\r\n normallyUsedFacilities: child.normallyUsedFacilities,\r\n normallyUsedFacilitiesAdmission: child.normallyUsedFacilitiesAdmission\r\n ? fromApiYm(child.normallyUsedFacilitiesAdmission.slice(0, 4) + '-' + child.normallyUsedFacilitiesAdmission.slice(4))\r\n : null,\r\n normallyUsedFacilitiesTel: child.normallyUsedFacilitiesTel ?? '',\r\n normallyUsedFacilitiesStartTime: child.normallyUsedFacilitiesStartTime,\r\n normallyUsedFacilitiesEndTime: child.normallyUsedFacilitiesEndTime,\r\n }\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の通常利用施設情報を取得\r\n * @param data 入力値\r\n * @param updateDatetime 更新前更新日時\r\n * @returns お子さま情報登録APIのINPUT用の通常利用施設情報\r\n */\r\nconst getRegistNormallyUsedFacility = (data: Inputs, updateDatetime?: string): PutChildrenDetailInputDto => {\r\n // 共通情報\r\n const commonInfo = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n updateDatetime: updateDatetime ?? '',\r\n }\r\n\r\n const facilitiesAdmissionString = data?.normallyUsedFacilitiesAdmission\r\n ? toApiYm(data.normallyUsedFacilitiesAdmission)?.replaceAll('-', '')\r\n : null\r\n\r\n return undefinedPropsToNull({\r\n ...commonInfo,\r\n normallyUsedFacilities: blankToNull(data.normallyUsedFacilities),\r\n normallyUsedFacilitiesType: blankToNull(data.normallyUsedFacilitiesType),\r\n normallyUsedFacilitiesTel: blankToNull(data.normallyUsedFacilitiesTel),\r\n normallyUsedFacilitiesAdmission: facilitiesAdmissionString,\r\n normallyUsedFacilitiesStartTime: blankToNull(data.normallyUsedFacilitiesStartTime),\r\n normallyUsedFacilitiesEndTime: blankToNull(data.normallyUsedFacilitiesEndTime),\r\n })\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport { GItem, GItemContainer, MiddleGItem, CenterMiddleGItem } from '../components/common/grids'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { DatePicker, INPUT_TYPE } from '../components/common/inputs/datePicker'\r\nimport { Select } from '../components/common/inputs/select'\r\nimport { TelTextBox } from '../components/common/inputs/telTextBox'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { TimePicker } from '../components/common/inputs/timePicker'\r\nimport { translate } from '../../i18n'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { useAction } from '../../containers/memberModifyChildNormallyUsedFacility/memberModifyChildNormallyUsedFacilityService'\r\n\r\nexport const MemberModifyChildNormallyUsedFacility = () => {\r\n const {\r\n CATEGORY_KEYS,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n facilitiesTypeList,\r\n childrenResultCode\r\n } = useAction()\r\n \r\n const categories = categoryMst?.filter((mst) => CATEGORY_KEYS.includes(mst.category))\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {!!categories?.length ?\r\n (<>\r\n \r\n {categories && \r\n categories.map((obj) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n )\r\n :\r\n (<>\r\n {translate('memberModifyChildNormallyUsedFacility.error.noCategoryMst')}\r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n !!childrenResultCode && (\r\n \r\n )\r\n \r\n }\r\n \r\n \r\n {translate('memberModifyChildNormallyUsedFacility.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\ninterface InputFormProps {\r\n categoryMst: GetCategoryMstDto,\r\n facilitiesTypeList?: {value: string, label: string}[]\r\n}\r\n\r\n/** 各項目の入力フォーム */\r\nconst InputForm = (props: InputFormProps) => {\r\n const { categoryMst, facilitiesTypeList } = props\r\n\r\n const render = () => {\r\n switch(categoryMst.category) {\r\n case \"normallyUsedFacilitiesType\":\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n case \"normallyUsedFacilitiesTel\":\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n case \"normallyUsedFacilitiesUsageTime\":\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n case \"normallyUsedFacilitiesAdmission\":\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n default:\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n return (render())\r\n}\r\n","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { getCategories } from '../common/category'\r\nimport { Child, getChild } from '../common/child'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { tabValue } from '../member/memberService'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { PutChildrenDetailInputDto } from '../../dataAccess/webApi/dto/childrenDto'\r\nimport { executePutChildrenDetail } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { translate } from '../../i18n'\r\n\r\n/** カテゴリーキー */\r\nconst CATEGORY_KEYS = ['usuallyMedicines','usuallyMedicinesMemo']\r\n\r\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\r\nconst DEFAULT_PROJECT_ID = '0'\r\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\r\nconst DEFAULT_FACILITY_ID = '0'\r\n\r\n/** URLパラメータ */\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 常用している薬の入力フォームの項目の定義 */\r\nexport interface Inputs {\r\n usuallyMedicines?: string | null\r\n usuallyMedicinesMemo?: string | null\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n // URLパラメータ取得\r\n const { childId } = useParams()\r\n // カテゴリーマスタ\r\n const [categoryMst, setCategoryMst] = useState()\r\n // お子さま詳細更新日時\r\n const [updateDatetime, setUpdateDatetime] = useState()\r\n // // リザルトコード\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n // オペレーションログ\r\n const { addOperationLog } = useOperationLog()\r\n\r\n // 入力フォーム初期値設定\r\n const formMethods = useForm({\r\n defaultValues: {}\r\n })\r\n\r\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\r\n useLayoutEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\r\n })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n ] = await Promise.all([\r\n // カテゴリーマスタ取得\r\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS}),\r\n // お子さま情報取得\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n ])\r\n \r\n // カテゴリーマスタ設定\r\n setCategoryMst(category)\r\n // お子さま情報設定\r\n setUpdateDatetime(child.detailUpdateDatetime ?? '')\r\n // 入力フォームに設定\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 確定処理\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 登録情報を設定\r\n const regData = getRegistUsuallyMedicines(data, updateDatetime)\r\n // 登録実行\r\n const resp = await executePutChildrenDetail(childId, regData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyChildUsuallyMedicines.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog, updateDatetime]\r\n )\r\n\r\n // 情報返却\r\n return {\r\n CATEGORY_KEYS,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode,\r\n }\r\n}\r\n\r\n/**\r\n * 入力フォームの初期値設定\r\n */\r\nconst getInitialInputs = (child: Child) => {\r\n return {\r\n usuallyMedicines: child.usuallyMedicines,\r\n usuallyMedicinesMemo: child.usuallyMedicinesMemo,\r\n }\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の常用している薬情報を取得\r\n * @param data 入力値\r\n * @param updateDatetime 更新前更新日時\r\n * @returns お子さま情報登録APIのINPUT用の常用している薬情報\r\n */\r\nconst getRegistUsuallyMedicines = (data: Inputs, updateDatetime?: string): PutChildrenDetailInputDto => {\r\n // 共通情報\r\n const commonInfo = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n updateDatetime: updateDatetime ?? '',\r\n }\r\n\r\n return undefinedPropsToNull({\r\n ...commonInfo,\r\n usuallyMedicines: blankToNull(data.usuallyMedicines),\r\n usuallyMedicinesMemo: blankToNull(data.usuallyMedicinesMemo),\r\n })\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { translate } from '../../i18n'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { useAction } from '../../containers/memberModifyChildUsuallyMedicines/memberModifyChildUsuallyMedicinesService'\r\n\r\nexport const MemberModifyChildUsuallyMedicines = () => {\r\n const {\r\n CATEGORY_KEYS,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode\r\n } = useAction()\r\n \r\n const categories = categoryMst?.filter((mst) => CATEGORY_KEYS.includes(mst.category))\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {!!categories?.length ?\r\n (<>\r\n \r\n {categories && \r\n categories.map((obj) => {\r\n return (\r\n \r\n )\r\n })\r\n }\r\n )\r\n :\r\n (<>\r\n {translate('memberModifyChildUsuallyMedicines.error.noCategoryMst')}\r\n )\r\n }\r\n \r\n \r\n \r\n {\r\n !!childrenResultCode && (\r\n \r\n )\r\n \r\n }\r\n \r\n \r\n {translate('memberModifyChildUsuallyMedicines.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\ninterface InputFormProps {\r\n categoryMst: GetCategoryMstDto,\r\n}\r\n\r\n/** 各項目の入力フォーム */\r\nconst InputForm = (props: InputFormProps) => {\r\n const { categoryMst } = props\r\n\r\n\r\n const render = () => {\r\n switch(categoryMst.category) {\r\n case \"usuallyMedicines\":\r\n \r\n const label = categoryMst.altCategoryName ?? categoryMst.name\r\n const radioWidth_xs = label ? 7 : 12\r\n const radioWidth_sm = label ? 10 : 12\r\n \r\n return (\r\n \r\n \r\n {!!label &&\r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {label}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n )\r\n \r\n default:\r\n return (\r\n \r\n \r\n {categoryMst.required === yesNo.yes && *}\r\n {categoryMst.altCategoryName ?? categoryMst.name}\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n return (render())\r\n}\r\n","import {\n executeGet,\n executePut,\n} from '../common/apiCaller'\nimport {\n GetChildrenDiseaseDto,\n PutChildrenDiseaseInputDto,\n} from '../dto/childrenDiseaseDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-disease'\n\nexport const executeGetChildrenDisease = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\nexport const executePutChildrenDisease = (id: string, input: PutChildrenDiseaseInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { Child, getChild } from '../common/child'\r\nimport { getCategorySpecifyMasters, SpecifyMasterType } from '../common/category'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { Flag, yesNo } from '../common/constant/classification'\r\nimport { GetCategoryMstDto, SpecifyMaster } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GetChildrenDiseaseDto } from '../../dataAccess/webApi/dto/childrenDiseaseDto'\r\nimport { executeGetChildrenDisease, executePutChildrenDisease } from '../../dataAccess/webApi/dao/childrenDiseaseDao'\r\nimport { tabValue } from '../member/memberService'\r\nimport { translate } from '../../i18n'\r\n\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 入力フォームの項目の定義 */\r\nexport interface DiseaseForm {\r\n diseaseId: number\r\n flag: string\r\n addAnswer?: {[key: string]: any } \r\n}\r\n\r\nexport interface Inputs {\r\n childId: string\r\n detailUpdateDatetime: string | null\r\n diseaseFlag: string | null\r\n disease?: DiseaseForm[] | null\r\n}\r\n\r\nconst FORM_DEFAULT_VALUES: any = {\r\n detailUpdateDatetime: null,\r\n diseaseFlag: null,\r\n disease: null\r\n}\r\n\r\nconst CATEGORY_KEY = 'disease'\r\nconst DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業設ID'0'\r\nconst DEFAULT_FACILITY_ID = '0' // 市民用のデータは施設ID'0'で作成する\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { childId } = useParams()\r\n /** カテゴリー情報 */\r\n const [categoryMst, setCategoryMst] = useState()\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const formMethods = useForm({\r\n defaultValues: { childId, ...FORM_DEFAULT_VALUES}\r\n })\r\n \r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes, childId }] })\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n diseaseResp\r\n ] = await Promise.all([\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: CATEGORY_KEY, masterType: SpecifyMasterType.DISEASE}),\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n executeGetChildrenDisease(childId, DEFAULT_FACILITY_ID)\r\n ])\r\n setCategoryMst(category)\r\n const disease = diseaseResp.result\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child, disease, category),\r\n })\r\n formMethods.resetField(\"diseaseFlag\")\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId: data.childId }],\r\n })\r\n \r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const disease = getRegistDisease(data)\r\n const inputData = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n diseaseFlag: data.diseaseFlag,\r\n detailUpdateDatetime: data.detailUpdateDatetime ?? \"\",\r\n disease: disease\r\n }\r\n \r\n const resp = await executePutChildrenDisease(data.childId, inputData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyConfirmationChild.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId: data.childId })\r\n }\r\n \r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog])\r\n\r\n return {\r\n CATEGORY_KEY,\r\n categoryMst,\r\n childrenResultCode,\r\n formMethods,\r\n onSubmit,\r\n }\r\n}\r\n\r\nconst getInitialInputs = (child: Child, disease: GetChildrenDiseaseDto[], categoryMst: GetCategoryMstDto[]) => {\r\n const inputs = {\r\n detailUpdateDatetime: child.detailUpdateDatetime,\r\n diseaseFlag: child.diseaseFlag,\r\n disease: getDiseaseForms(disease, categoryMst)\r\n }\r\n return inputs\r\n}\r\n\r\nexport const getDiseaseForms = (disease: GetChildrenDiseaseDto[], categoryMst: GetCategoryMstDto[])=> {\r\n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_KEY)\r\n if (targetCategory?.masterData == null) {\r\n return undefined\r\n }\r\n \r\n const diseaseForm: DiseaseForm[] = []\r\n targetCategory.masterData.forEach((opt: SpecifyMaster) => {\r\n let matchedDisease\r\n if (disease != null) {\r\n matchedDisease = disease.find((mh) => mh.diseaseId === opt.id)\r\n }\r\n \r\n if (matchedDisease == null) {\r\n diseaseForm.push({\r\n diseaseId: opt.id,\r\n flag: Flag.OFF,\r\n addAnswer: {}\r\n })\r\n } else {\r\n diseaseForm.push({\r\n diseaseId: opt.id,\r\n flag: Flag.ON,\r\n addAnswer: matchedDisease.addAnswer != null\r\n ? matchedDisease.addAnswer\r\n : {}\r\n })\r\n }\r\n })\r\n \r\n return diseaseForm\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の病気情報を取得\r\n * @param data 入力値\r\n * @returns お子さま情報登録APIのINPUT用の病気情報\r\n */\r\nexport const getRegistDisease = (data: Inputs) => {\r\n if (data.diseaseFlag !== Flag.ON) {\r\n return undefined\r\n }\r\n \r\n let result: \r\n {\r\n diseaseId: number\r\n addAnswer?: string | null\r\n }[] = []\r\n \r\n if (data.disease != null) {\r\n result = data.disease\r\n .filter((value) => value.flag === Flag.ON)\r\n .map((value) => {\r\n return {\r\n diseaseId: value.diseaseId,\r\n addAnswer: value.addAnswer != null && Object.keys(value.addAnswer).length\r\n ? JSON.stringify(value.addAnswer)\r\n : null,\r\n }\r\n })\r\n }\r\n \r\n if (result.length === 0) {\r\n return undefined\r\n }\r\n \r\n return result\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport React from 'react'\r\n// import { useEffect } from 'react'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { FlexibleCheckBoxesUnit } from '../components/common/memberModifyChild/flexibleCheckBoxesUnit'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { useAction } from '../../containers/memberModifyChildDisease/memberModifyChildDiseaseService'\r\nimport { translate } from '../../i18n'\r\n\r\nexport const MemberModifyChildDisease = () => {\r\n const { CATEGORY_KEY, categoryMst, childrenResultCode, formMethods, onSubmit} = useAction()\r\n let targetCategory\r\n if (categoryMst) {\r\n targetCategory = categoryMst.find((mst) => mst.category === CATEGORY_KEY)\r\n }\r\n if (!targetCategory) return ()\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!childrenResultCode && (\r\n \r\n )}\r\n\r\n \r\n \r\n {translate('memberModifyConfirmationChild.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}","import { executeGet, executePut } from '../common/apiCaller'\nimport {\n GetChildrenVaccinationDto,\n PutChildrenVaccinationInputDto,\n} from '../dto/childrenVaccinationDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-vaccination'\n\n// 予防接種情報取得\nexport const executeGetChildrenVaccination = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\n// 予防接種情報登録\nexport const executePutChildrenVaccination = (id: string, input: PutChildrenVaccinationInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { Child, getChild } from '../common/child'\r\nimport { getCategorySpecifyMasters, SpecifyMasterType } from '../common/category'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { Flag, yesNo } from '../common/constant/classification'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { tabValue } from '../member/memberService'\r\nimport { translate } from '../../i18n'\r\nimport { toApiYmd } from '../../utils/dateUtil'\r\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\r\nimport { GetCategoryMstDto, SpecifyMaster } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { GetChildrenVaccinationDto } from '../../dataAccess/webApi/dto/childrenVaccinationDto'\r\nimport {\r\n executeGetChildrenVaccination,\r\n executePutChildrenVaccination\r\n} from '../../dataAccess/webApi/dao/childrenVaccinationDao'\r\n\r\n/** カテゴリーキー */\r\nconst CATEGORY_KEY = 'vaccination'\r\n/** 存在フラグ名 */\r\nconst EXIST_FLAG_NAME = 'vaccinationFlag'\r\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\r\nconst DEFAULT_PROJECT_ID = '0'\r\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\r\nconst DEFAULT_FACILITY_ID = '0'\r\n\r\n/** URLパラメータ */\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\n/** 入力フォームの項目の定義 */\r\nexport interface Inputs {\r\n vaccinationFlag: string | null\r\n vaccination?: VaccinationForm[]\r\n}\r\n\r\n/** 予防接種情報入力フォームの項目の定義 */\r\nexport interface VaccinationForm {\r\n vaccinationId: number\r\n flag: string\r\n count?: string | null\r\n vaccinationDate?: Date | null\r\n note?: string | null\r\n}\r\n\r\n/** 入力フォームの初期値 */\r\nconst FORM_DEFAULT_VALUES: Inputs = {\r\n vaccinationFlag: Flag.OFF,\r\n vaccination: []\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const history = useHistory()\r\n const dispatch = useDispatch()\r\n\r\n // URLパラメータ取得\r\n const { childId } = useParams()\r\n // カテゴリーマスタ\r\n const [categoryMst, setCategoryMst] = useState()\r\n // お子さま詳細更新日時\r\n const [detailUpdateDatetime, setDetailUpdateDatetime] = useState()\r\n // リザルトコード\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n // オペレーションログ\r\n const { addOperationLog } = useOperationLog()\r\n\r\n // 入力フォーム初期値設定\r\n const formMethods = useForm({\r\n defaultValues: FORM_DEFAULT_VALUES\r\n })\r\n \r\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\r\n useLayoutEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\r\n })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [\r\n category, \r\n child,\r\n vaccinationResp\r\n ] = await Promise.all([\r\n // カテゴリーマスタ取得\r\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: CATEGORY_KEY, masterType: SpecifyMasterType.VACCINATION}),\r\n // お子さま情報取得\r\n getChild(childId, DEFAULT_FACILITY_ID),\r\n // 予防接種情報取得\r\n executeGetChildrenVaccination(childId, DEFAULT_FACILITY_ID)\r\n ])\r\n\r\n // カテゴリーマスタ設定\r\n setCategoryMst(category)\r\n // お子さま情報設定\r\n setDetailUpdateDatetime(child.detailUpdateDatetime ?? '')\r\n // 入力フォームに設定\r\n const vaccination = vaccinationResp.result\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...getInitialInputs(child, vaccination, category),\r\n })\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // 確定処理\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000037 })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // 登録する予防接種情報を設定\r\n const regVaccinationData = getRegistVaccination(data)\r\n // 登録情報設定\r\n const regData = {\r\n facilityId: DEFAULT_FACILITY_ID,\r\n detailUpdateDatetime: detailUpdateDatetime ?? '',\r\n vaccinationFlag: data.vaccinationFlag ?? Flag.OFF,\r\n vaccination: regVaccinationData ?? [],\r\n }\r\n // 登録実行\r\n const resp = await executePutChildrenVaccination(childId, regData)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyChildVaccination.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n },\r\n [addOperationLog, detailUpdateDatetime]\r\n )\r\n\r\n // 情報返却\r\n return {\r\n CATEGORY_KEY,\r\n EXIST_FLAG_NAME,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode,\r\n }\r\n}\r\n\r\n/**\r\n * 入力フォームの初期値設定\r\n */\r\nconst getInitialInputs = (\r\n child: Child,\r\n childrenVaccination: GetChildrenVaccinationDto[],\r\n categoryMst: GetCategoryMstDto[]\r\n) => {\r\n const inputs = {\r\n vaccinationFlag: child.vaccinationFlag ?? Flag.OFF,\r\n vaccination: getVaccinationFormInputs(childrenVaccination, categoryMst)\r\n }\r\n\r\n return inputs\r\n}\r\n\r\n/**\r\n * お子さま情報から予防接種情報項目の初期値を設定\r\n * @param user お子さま情報\r\n * @param categoryMst カテゴリー情報\r\n * @returns 予防接種情報項目の入力フォームの初期値\r\n */\r\nconst getVaccinationFormInputs = (\r\n childrenVaccination: GetChildrenVaccinationDto[],\r\n categoryMst: GetCategoryMstDto[]\r\n)=> {\r\n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_KEY)\r\n if (targetCategory?.masterData == null) {\r\n return undefined\r\n }\r\n\r\n const vaccinationForm: VaccinationForm[] = []\r\n targetCategory.masterData.forEach((opt: SpecifyMaster) => {\r\n let matchedVaccination\r\n if (childrenVaccination) {\r\n matchedVaccination = childrenVaccination.find((v) => v.vaccinationId === opt.id)\r\n }\r\n \r\n if (matchedVaccination == null) {\r\n vaccinationForm.push({\r\n vaccinationId: opt.id,\r\n flag: Flag.OFF,\r\n })\r\n } else {\r\n vaccinationForm.push({\r\n vaccinationId: opt.id,\r\n flag: Flag.ON,\r\n count: matchedVaccination.count ?? undefined,\r\n vaccinationDate: matchedVaccination.vaccinationDate ? new Date(matchedVaccination.vaccinationDate) : undefined,\r\n note: matchedVaccination.note ?? undefined\r\n })\r\n }\r\n })\r\n \r\n return vaccinationForm\r\n}\r\n\r\n/**\r\n * お子さま情報登録APIのINPUT用の予防接種情報を取得\r\n * @param data 入力値\r\n * @returns お子さま情報登録APIのINPUT用の予防接種情報\r\n */\r\nconst getRegistVaccination = (data: Inputs) => {\r\n if (data.vaccinationFlag !== Flag.ON) {\r\n return undefined\r\n }\r\n \r\n let result: \r\n {\r\n vaccinationId: number\r\n count: string | null\r\n vaccinationDate: string | null\r\n note: string | null\r\n }[] = []\r\n \r\n if (data.vaccination != null) {\r\n result = data.vaccination\r\n .filter((value) => value.flag === Flag.ON)\r\n .map((value) => {\r\n return undefinedPropsToNull({\r\n vaccinationId: value.vaccinationId,\r\n count: value.count ?? null,\r\n vaccinationDate: value.vaccinationDate ? toApiYmd(value.vaccinationDate) : null,\r\n note: value.note ?? null,\r\n })\r\n })\r\n }\r\n \r\n if (result.length === 0) {\r\n return undefined\r\n }\r\n \r\n return result\r\n}","import { Grid, Stack } from '@mui/material'\r\nimport { useFormContext, useWatch } from 'react-hook-form'\r\nimport { GContainer, GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { CheckBox } from '../components/common/inputs/checkBox'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { Select } from '../components/common/inputs/select'\r\nimport { DatePicker } from '../components/common/inputs/datePicker'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { translate } from '../../i18n'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { GetCategoryMstDto, AddQuestion } from '../../dataAccess/webApi/dto/categoryMstDto'\r\nimport { useAction } from '../../containers/memberModifyChildVaccination/memberModifyChildVaccinationService'\r\n\r\nexport const MemberModifyChildVaccination = () => {\r\n const {\r\n CATEGORY_KEY,\r\n EXIST_FLAG_NAME,\r\n formMethods,\r\n categoryMst,\r\n onSubmit,\r\n childrenResultCode,\r\n } = useAction()\r\n\r\n const targetCategory = categoryMst?.find((value) => value.category === CATEGORY_KEY)\r\n \r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {targetCategory ?\r\n (<>\r\n \r\n \r\n )\r\n :\r\n (<>\r\n {translate('memberModifyChildVaccination.error.noCategoryMst')}\r\n )\r\n }\r\n \r\n \r\n \r\n {!!childrenResultCode && (\r\n \r\n )}\r\n \r\n \r\n {translate('memberModifyChildVaccination.button.decision')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\n// 入力フォームプロパティ\r\ninterface InputFormProps {\r\n categoryMst: GetCategoryMstDto\r\n existFlagName?: string\r\n}\r\n\r\n// 入力フォーム\r\nconst InputForm = (props: InputFormProps) => {\r\n const { existFlagName, categoryMst } = props\r\n const methods = useFormContext()\r\n const existFlag = useWatch({ name: existFlagName ?? '', control: methods.control })\r\n\r\n return (\r\n <>\r\n {existFlagName && categoryMst.checkExistence && categoryMst.checkTextNo && categoryMst.checkTextYes &&\r\n \r\n {categoryMst.name}\r\n \r\n \r\n \r\n \r\n }\r\n {(categoryMst.checkExistence === yesNo.no || existFlag === yesNo.yes) && categoryMst?.masterData && (\r\n categoryMst.masterData.map((opt, index) => {\r\n return (\r\n \r\n \r\n \r\n \r\n {opt.name}\r\n \r\n {opt.addQuestions && \r\n \r\n }\r\n \r\n \r\n )\r\n })\r\n )}\r\n \r\n )\r\n}\r\n\r\n// 追加質問フォームプロパティ\r\ninterface AddQuestionUnitProps {\r\n topName: string\r\n items: AddQuestion[]\r\n}\r\n\r\n// 追加質問フォーム\r\nconst AddQuestionUnit = (props: AddQuestionUnitProps) => {\r\n const { topName, items } = props\r\n \r\n const methods = useFormContext()\r\n const topFlagValue = useWatch({ name: `${topName}.flag`, control: methods.control })\r\n return (\r\n <>\r\n {topFlagValue === yesNo.yes && (\r\n items.map((item) => {\r\n const render = () => {\r\n switch(item?.fieldName){\r\n case \"count\":\r\n const options = item.addQuestionOptions?.map(op => ({\r\n value: op.optionValue,\r\n label: op.optionText,\r\n }));\r\n if (options == null) return null\r\n \r\n const listData = [{value: \"\", label: \"未選択\"}, ...options]\r\n return(\r\n \r\n {item.questionText}\r\n \r\n \r\n \r\n \r\n )\r\n \r\n case \"vaccinationDate\":\r\n return(\r\n \r\n \r\n {item.required === yesNo.yes && (\r\n *\r\n )}\r\n {item.questionText}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n case \"note\":\r\n return(\r\n \r\n \r\n {item.required === yesNo.yes && (\r\n *\r\n )}\r\n {item.maxLength != null ? `(${item.maxLength}字以内)` : ''}\r\n \r\n \r\n \r\n \r\n \r\n )\r\n \r\n default:\r\n return null\r\n }\r\n }\r\n \r\n return (\r\n
    \r\n {render()}\r\n
    \r\n )\r\n \r\n })\r\n )}\r\n \r\n )\r\n}\r\n","import { executeGet, executePut } from '../common/apiCaller'\nimport {\n GetChildrenEatingDto,\n PutChildrenEatingInputDto,\n} from '../dto/childrenEatingDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-eating'\n\n// 食事情報取得\nexport const executeGetChildrenEating = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\n// 食事情報登録\nexport const executePutChildrenEating = (id: string, input: PutChildrenEatingInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch } from 'react-redux'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { Child, getChild } from '../common/child'\nimport { getCategories } from '../common/category'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { Flag, yesNo } from '../common/constant/classification'\nimport { memberUrl } from '../common/constant/appUrl'\nimport { tabValue } from '../member/memberService'\nimport { translate } from '../../i18n'\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\nimport { GetCategoryMstDto, Option} from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { GetChildrenEatingDto, PutChildrenEatingInputDto, EatingStyleForGetChildDto, EatingStyleForPutChildDto } from '../../dataAccess/webApi/dto/childrenEatingDto'\nimport {\n executeGetChildrenEating,\n executePutChildrenEating\n} from '../../dataAccess/webApi/dao/childrenEatingDao'\n\n/** カテゴリーキー */\nconst CATEGORY_KEY = ['howToNurse', 'howToNurseNote', 'babyFoodStartEnd', 'babyFoodStage','babyFoodShape','babyFoodRice','milk', 'favoriteFood', 'hatedFood', 'allergyFreeFood', 'eatingNote', 'eatingStyle']\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\nconst DEFAULT_PROJECT_ID = '0'\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\nconst DEFAULT_FACILITY_ID = '0'\n\n/** URLパラメータ */\ninterface UrlParams {\n childId: string\n}\n\n/** 食事の入力フォームの項目の定義 */\nexport interface Inputs {\n eating?: {\n howToNurse?: string | null\n howToNurseNote?: string | null\n babyFoodStart?: number | null\n babyFoodEnd?: number | null\n babyFoodStage?: string | null\n babyFoodShape?: string | null\n babyFoodRice?: string | null\n milk?: string | null\n favoriteFood?: string | null\n hatedFood?: string | null\n allergyFreeFood?: string | null\n eatingNote?: string | null\n updateDatetime?: string | null\n }\n eatingStyle?: EatingStyleForm[]\n}\n\n/** 入力フォームの初期値 */\nconst FORM_DEFAULT_VALUES: Inputs = {\n eatingStyle: undefined\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const history = useHistory()\n const dispatch = useDispatch()\n\n // URLパラメータ取得\n const { childId } = useParams()\n // カテゴリーマスタ\n const [categoryMst, setCategoryMst] = useState()\n // 食事情報更新日時\n const [eatingUpdateDatetime, setEatingUpdateDatetime] = useState()\n // リザルトコード\n const [childrenResultCode, setChildrenResultCode] = useState()\n // オペレーションログ\n const { addOperationLog } = useOperationLog()\n\n // 入力フォーム初期値設定\n const formMethods = useForm({\n defaultValues: FORM_DEFAULT_VALUES\n })\n \n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\n useLayoutEffect(() => {\n addOperationLog({\n operationId: OperationId.OP_00000001,\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\n })\n \n dispatch(\n showLoading(\n errorHandle(async () => {\n const [\n category, \n child,\n eatingResp\n ] = await Promise.all([\n // カテゴリーマスタ取得\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEY}),\n // お子さま情報取得\n getChild(childId, DEFAULT_FACILITY_ID),\n // 食事情報取得\n executeGetChildrenEating(childId, DEFAULT_FACILITY_ID)\n ])\n // カテゴリーマスタ設定\n setCategoryMst(category)\n // 食事情報更新日時\n setEatingUpdateDatetime(eatingResp?.result?.eating?.updateDatetime ?? '')\n // 入力フォームに設定\n formMethods.reset({\n ...formMethods.getValues(),\n ...getInitialInputs(child, eatingResp.result, category),\n })\n })\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // 確定処理\n const onSubmit = useCallback(\n (data: Inputs) => {\n addOperationLog({ operationId: OperationId.OP_00000037 })\n\n if (!validation(data, formMethods)) {\n // バリデーションチェックエラー\n return\n }\n\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n // 登録情報を設定\n const regData = getRegistEating(data, eatingUpdateDatetime)\n \n // 登録実行\n const resp = await executePutChildrenEating(childId, regData)\n if (resp.resultCode) {\n // 失敗時\n setChildrenResultCode(resp.resultCode)\n } else {\n // 成功時\n dispatch(notifyMessage(translate('memberModifyChildEating.success.completionMessage')))\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\n }\n }),\n isHiddenMain: false,\n })\n )\n },\n [addOperationLog, eatingUpdateDatetime]\n )\n\n // 情報返却\n return {\n CATEGORY_KEY,\n formMethods,\n categoryMst,\n onSubmit,\n childrenResultCode,\n }\n}\n\n/**\n * 入力フォームの初期値設定\n */\nconst getInitialInputs = (\n child: Child,\n childrenEating: GetChildrenEatingDto,\n categoryMst: GetCategoryMstDto[]\n) => {\n const inputs = {\n eating: {\n ...childrenEating.eating\n },\n eatingStyle: getEatingStyleForms(childrenEating.eatingStyle ?? [], categoryMst)\n }\n\n return inputs\n}\n\n/**\n * バリデーションチェック\n */\nconst validation = (data: Inputs, formMethods: any) => {\n let result = true\n\n if (data.eating) {\n const { babyFoodStart, babyFoodEnd } = data.eating\n\n // 数値チェック(inputタイプをnumberにするとmaxlengthが効かなかったのでこちらでチェック)\n if (babyFoodStart && !String(babyFoodStart).match(/^[0-9]*$/)) {\n formMethods.setError(`eating.babyFoodStart`, {\n message: translate('system.error.onlyHalfWidthNumbers')\n })\n result = false\n }\n if (babyFoodEnd && !String(babyFoodEnd).match(/^[0-9]*$/)) {\n formMethods.setError(`eating.babyFoodEnd`, {\n message: translate('system.error.onlyHalfWidthNumbers')\n })\n result = false\n }\n }\n \n return result\n}\n\n/**\n * お子さま情報登録APIのINPUT用の食事情報を取得\n * @param data 入力値\n * @param eatingUpdateDatetime 更新前更新日時\n * @returns お子さま情報登録APIのINPUT用の食事情報\n */\nconst getRegistEating = (data: Inputs, eatingUpdateDatetime?: string): PutChildrenEatingInputDto => {\n // 共通情報\n const commonInfo = {\n facilityId: DEFAULT_FACILITY_ID,\n };\n\n // 食事情報編集\n let regEating: PutChildrenEatingInputDto[\"eating\"] = {}\n let regEatingStyle: PutChildrenEatingInputDto[\"eatingStyle\"] = undefined\n\n if (data.eating) {\n const { babyFoodStart, babyFoodEnd, ...obj } = data.eating\n\n regEating = {\n updateDatetime : eatingUpdateDatetime ? '' : null,\n babyFoodStart: babyFoodStart ? Number(babyFoodStart) : null,\n babyFoodEnd: babyFoodEnd ? Number(babyFoodEnd) : null,\n ...obj,\n };\n }\n if (data.eatingStyle) {\n regEatingStyle = getRegistEatingStyle(data)\n }\n\n return {\n ...commonInfo,\n eating: undefinedPropsToNull(regEating),\n eatingStyle: regEatingStyle,\n }\n}\n\n/** 入力フォームの項目の定義 */\nexport interface EatingStyleForm {\n code: string\n flag: string\n addAnswer?: {[key: string]: any } \n}\n\nexport const getEatingStyleForms = (eatingStyle: EatingStyleForGetChildDto[], categoryMst: GetCategoryMstDto[])=> {\n const targetCategory = categoryMst.find((value) => value.category === 'eatingStyle')\n if (targetCategory?.options == null) {\n return undefined\n }\n \n const eatingStyleForm: EatingStyleForm[] = []\n targetCategory.options.forEach((opt: Option) => {\n let matchedEatingStyle\n if (eatingStyle != null) {\n matchedEatingStyle = eatingStyle.find((mh) => mh.code === opt.code)\n }\n \n if (matchedEatingStyle == null) {\n eatingStyleForm.push({\n code: opt.code,\n flag: Flag.OFF,\n addAnswer: {}\n })\n } else {\n eatingStyleForm.push({\n code: opt.code,\n flag: Flag.ON,\n addAnswer: matchedEatingStyle.addAnswer != null\n ? matchedEatingStyle.addAnswer\n : {}\n })\n }\n })\n \n return eatingStyleForm\n}\n\n/**\n * お子さま情報登録APIのINPUT用の既往症情報を取得\n * @param data 入力値\n * @returns お子さま情報登録APIのINPUT用の既往症情報\n */\nexport const getRegistEatingStyle = (data: Inputs): EatingStyleForPutChildDto[] | undefined => {\n \n let result: \n {\n code: string\n addAnswer?: string | null\n }[] = []\n \n if (data.eatingStyle != null) {\n result = data.eatingStyle\n .filter((value) => value.flag === Flag.ON)\n .map((value) => {\n return {\n code: value.code,\n addAnswer: value.addAnswer != null && Object.keys(value.addAnswer).length\n ? JSON.stringify(value.addAnswer)\n : null,\n }\n })\n }\n \n if (result.length === 0) {\n return undefined\n }\n \n return result\n}","import { Grid, Stack, Typography} from '@mui/material'\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\nimport { SubTitle } from '../components/common/subTitle'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { Form } from '../components/common/inputs/form'\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { TextBoxAfterText } from '../components/common/inputs/textBoxAfterText'\nimport { FlexibleCheckBoxesUnit } from '../components/common/memberModifyChild/flexibleCheckBoxesUnit'\nimport { translate } from '../../i18n'\nimport { yesNo } from '../../containers/common/constant/classification'\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { useAction } from '../../containers/memberModifyChildEating/memberModifyChildEatingService'\n\nexport const MemberModifyChildEating = () => {\n const {\n CATEGORY_KEY,\n formMethods,\n categoryMst,\n onSubmit,\n childrenResultCode,\n } = useAction()\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_KEY.includes(value.category))\n \n return (\n
    \n \n \n \n \n \n {targetCategories != null && targetCategories.length > 0 ?\n (<>\n \n {\n targetCategories.map((mst) => {\n switch(mst?.category){\n case \"eatingStyle\":\n return (\n \n {mst.name}\n \n \n \n \n )\n default:\n return (\n \n )\n }\n })\n }\n )\n :\n (<>\n {translate('memberModifyChildEating.error.noCategoryMst')}\n )\n }\n \n \n \n {!!childrenResultCode && (\n \n )}\n \n \n {translate('memberModifyChildEating.button.decision')}\n \n \n \n \n
    \n )\n}\n\ninterface InputFormProps {\n categoryMst: GetCategoryMstDto\n}\n\n/** 各項目の入力フォーム */\nconst InputForm = (props: InputFormProps) => {\n const { categoryMst } = props\n\n const render = () => {\n\n switch(categoryMst.category) {\n case \"babyFoodStartEnd\":\n return (\n \n \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.name}\n \n \n \n \n \n \n \n \n ~\n \n \n \n \n \n \n \n \n )\n\n case \"howToNurse\":\n case \"babyFoodStage\":\n case \"babyFoodShape\":\n case \"babyFoodRice\":\n case \"milk\":\n if (categoryMst.options == null || categoryMst.options.length === 0) return null\n \n const labelData = categoryMst.options.map(op => ({ label: op.optionName, value: op.code }))\n return (\n \n \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.name}\n \n \n \n \n \n )\n \n case \"howToNurseNote\":\n case \"favoriteFood\":\n case \"hatedFood\": \n case \"allergyFreeFood\":\n return (\n \n \n \n \n
    \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.name}\n
    \n
    \n
    \n
    \n \n \n \n
    \n )\n \n case \"eatingNote\":\n return (\n \n \n \n \n
    \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.name}\n
    \n
    \n
    \n
    \n \n \n \n
    \n )\n \n default:\n return null\n }\n }\n \n return (render())\n}\n","import {\n executeGet,\n executePut,\n} from '../common/apiCaller'\nimport {\n GetChildrenSymptomDto,\n PutChildrenSymptomInputDto,\n} from '../dto/childrenSymptomDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-symptom'\n\nexport const executeGetChildrenSymptom = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\nexport const executePutChildrenSymptom = (id: string, input: PutChildrenSymptomInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch } from 'react-redux'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { Child, getChild } from '../common/child'\nimport { getCategorySpecifyMasters, SpecifyMasterType } from '../common/category'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\nimport { useOperationLog } from '../common/operationLog'\nimport { memberUrl } from '../common/constant/appUrl'\nimport { OperationId } from '../common/constant/operationLog'\nimport { Flag, yesNo } from '../common/constant/classification'\nimport { GetCategoryMstDto, SpecifyMaster } from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { GetChildrenSymptomDto } from '../../dataAccess/webApi/dto/childrenSymptomDto'\nimport { executeGetChildrenSymptom, executePutChildrenSymptom } from '../../dataAccess/webApi/dao/childrenSymptomDao'\nimport { tabValue } from '../member/memberService'\nimport { translate } from '../../i18n'\n\ninterface UrlParams {\n childId: string\n}\n\n/** 入力フォームの項目の定義 */\nexport interface SymptomForm {\n symptomId: number\n flag: string\n addAnswer?: {[key: string]: any } \n}\n\nexport interface Inputs {\n childId: string\n detailUpdateDatetime: string | null\n symptomFlag: string | null\n symptom?: SymptomForm[] | null\n}\n\nconst FORM_DEFAULT_VALUES: any = {\n detailUpdateDatetime: null,\n symptomFlag: null,\n symptom: null\n}\n\nconst CATEGORY_KEY = 'symptom'\nconst DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業設ID'0'\nconst DEFAULT_FACILITY_ID = '0' // 市民用のデータは施設ID'0'で作成する\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const history = useHistory()\n const { childId } = useParams()\n /** カテゴリー情報 */\n const [categoryMst, setCategoryMst] = useState()\n const [childrenResultCode, setChildrenResultCode] = useState()\n const { addOperationLog } = useOperationLog()\n\n const formMethods = useForm({\n defaultValues: { childId, ...FORM_DEFAULT_VALUES}\n })\n \n // ちらつき防止のためにuseLayoutEffect使用\n useLayoutEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes, childId }] })\n \n dispatch(\n showLoading(\n errorHandle(async () => {\n const [\n category, \n child,\n symptomResp\n ] = await Promise.all([\n getCategorySpecifyMasters({projectId: DEFAULT_PROJECT_ID, category: CATEGORY_KEY, masterType: SpecifyMasterType.SYMPTOM}),\n getChild(childId, DEFAULT_FACILITY_ID),\n executeGetChildrenSymptom(childId, DEFAULT_FACILITY_ID)\n ])\n \n setCategoryMst(category)\n const symptom = symptomResp.result\n formMethods.reset({\n ...formMethods.getValues(),\n ...getInitialInputs(child, symptom, category),\n })\n })\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const onSubmit = useCallback(\n (data: Inputs) => {\n addOperationLog({\n operationId: OperationId.OP_00000037,\n accessData: [{ userIdRegFlag: yesNo.yes, childId: data.childId }],\n })\n \n dispatch(\n showLoading({\n process: errorHandle(async () => {\n const symptom = getRegistSymptom(data)\n const inputData = {\n facilityId: DEFAULT_FACILITY_ID,\n symptomFlag: data.symptomFlag,\n detailUpdateDatetime: data.detailUpdateDatetime ?? \"\",\n symptom: symptom\n }\n \n const resp = await executePutChildrenSymptom(data.childId, inputData)\n if (resp.resultCode) {\n // 失敗時\n setChildrenResultCode(resp.resultCode)\n } else {\n // 成功時\n dispatch(notifyMessage(translate('memberModifyConfirmationChild.success.completionMessage')))\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId: data.childId })\n }\n \n }),\n isHiddenMain: false,\n })\n )\n }, [addOperationLog])\n\n return {\n CATEGORY_KEY,\n categoryMst,\n childrenResultCode,\n formMethods,\n onSubmit,\n }\n}\n\nconst getInitialInputs = (child: Child, symptom: GetChildrenSymptomDto[], categoryMst: GetCategoryMstDto[]) => {\n const inputs = {\n detailUpdateDatetime: child.detailUpdateDatetime,\n symptomFlag: child.symptomFlag,\n symptom: getSymptomForms(symptom, categoryMst)\n }\n return inputs\n}\n\nexport const getSymptomForms = (symptom: GetChildrenSymptomDto[], categoryMst: GetCategoryMstDto[])=> {\n const targetCategory = categoryMst.find((value) => value.category === CATEGORY_KEY)\n if (targetCategory?.masterData == null) {\n return undefined\n }\n \n const symptomForm: SymptomForm[] = []\n targetCategory.masterData.forEach((opt: SpecifyMaster) => {\n let matchedSymptom\n if (symptom != null) {\n matchedSymptom = symptom.find((mh) => mh.symptomId === opt.id)\n }\n \n if (matchedSymptom == null) {\n symptomForm.push({\n symptomId: opt.id,\n flag: Flag.OFF,\n addAnswer: {}\n })\n } else {\n symptomForm.push({\n symptomId: opt.id,\n flag: Flag.ON,\n addAnswer: matchedSymptom.addAnswer != null\n ? matchedSymptom.addAnswer\n : {}\n })\n }\n })\n \n return symptomForm\n}\n\n/**\n * お子さま情報登録APIのINPUT用の既往症情報を取得\n * @param data 入力値\n * @returns お子さま情報登録APIのINPUT用の既往症情報\n */\nexport const getRegistSymptom = (data: Inputs) => {\n if (data.symptomFlag !== Flag.ON) {\n return undefined\n }\n \n let result: \n {\n symptomId: number\n addAnswer?: string | null\n }[] = []\n \n if (data.symptom != null) {\n result = data.symptom\n .filter((value) => value.flag === Flag.ON)\n .map((value) => {\n return {\n symptomId: value.symptomId,\n addAnswer: value.addAnswer != null && Object.keys(value.addAnswer).length\n ? JSON.stringify(value.addAnswer)\n : null,\n }\n })\n }\n \n if (result.length === 0) {\n return undefined\n }\n \n return result\n}","import { Grid, Stack } from '@mui/material'\nimport React from 'react'\n// import { useEffect } from 'react'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { Form } from '../components/common/inputs/form'\nimport { FlexibleCheckBoxesUnit } from '../components/common/memberModifyChild/flexibleCheckBoxesUnit'\nimport { SubTitle } from '../components/common/subTitle'\nimport { useAction } from '../../containers/memberModifyChildSymptom/memberModifyChildSymptomService'\nimport { translate } from '../../i18n'\n\nexport const MemberModifyChildSymptom = () => {\n const { CATEGORY_KEY, categoryMst, childrenResultCode, formMethods, onSubmit} = useAction()\n\n // useEffect(() => {\n // const subscription = formMethods.watch((values, { name, type }) => {\n // if (name && type === 'change') {\n // console.log(values)\n // }\n // })\n // return () => subscription.unsubscribe()\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [])\n\n let targetCategory\n if (categoryMst) {\n targetCategory = categoryMst.find((mst) => mst.category === CATEGORY_KEY)\n }\n if (!targetCategory) return ()\n \n return (\n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n {!!childrenResultCode && (\n \n )}\n\n \n \n {translate('memberModifyConfirmationChild.button.decision')}\n \n \n \n \n
    \n )\n}","import { executeGet, executePut } from '../common/apiCaller'\nimport {\n GetChildrenPredispositionDto,\n PutChildrenPredispositionInputDto,\n} from '../dto/childrenPredispositionDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-predisposition'\n\n// 予防接種情報取得\nexport const executeGetChildrenPredisposition = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\n// 予防接種情報登録\nexport const executePutChildrenPredisposition = (id: string, input: PutChildrenPredispositionInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch } from 'react-redux'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { Child, getChild } from '../common/child'\nimport { getCategories } from '../common/category'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { Flag, yesNo } from '../common/constant/classification'\nimport { memberUrl } from '../common/constant/appUrl'\nimport { tabValue } from '../member/memberService'\nimport { translate } from '../../i18n'\nimport { GetCategoryMstDto, Option} from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { GetChildrenPredispositionDto, PredispositionForGetChildDto, PredispositionForPutChildDto } from '../../dataAccess/webApi/dto/childrenPredispositionDto'\nimport {\n executeGetChildrenPredisposition,\n executePutChildrenPredisposition\n} from '../../dataAccess/webApi/dao/childrenPredispositionDao'\n\n/** カテゴリーキー */\nconst CATEGORY_KEY = ['predisposition']\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\nconst DEFAULT_PROJECT_ID = '0'\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\nconst DEFAULT_FACILITY_ID = '0'\n\n/** URLパラメータ */\ninterface UrlParams {\n childId: string\n}\n\n/** 体質の入力フォームの項目の定義 */\nexport interface Inputs {\n predisposition?: PredispositionForm[]\n}\n\n/** 入力フォームの初期値 */\nconst FORM_DEFAULT_VALUES: Inputs = {\n predisposition: undefined\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const history = useHistory()\n const dispatch = useDispatch()\n\n // URLパラメータ取得\n const { childId } = useParams()\n // カテゴリーマスタ\n const [categoryMst, setCategoryMst] = useState()\n // リザルトコード\n const [childrenResultCode, setChildrenResultCode] = useState()\n // オペレーションログ\n const { addOperationLog } = useOperationLog()\n\n // 入力フォーム初期値設定\n const formMethods = useForm({\n defaultValues: FORM_DEFAULT_VALUES\n })\n \n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\n useLayoutEffect(() => {\n addOperationLog({\n operationId: OperationId.OP_00000001,\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\n })\n \n dispatch(\n showLoading(\n errorHandle(async () => {\n const [\n category, \n child,\n predispositionResp\n ] = await Promise.all([\n // カテゴリーマスタ取得\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEY}),\n // お子さま情報取得\n getChild(childId, DEFAULT_FACILITY_ID),\n // 食事情報取得\n executeGetChildrenPredisposition(childId, DEFAULT_FACILITY_ID)\n ])\n // カテゴリーマスタ設定\n setCategoryMst(category)\n // 入力フォームに設定\n formMethods.reset({\n ...formMethods.getValues(),\n ...getInitialInputs(child, predispositionResp.result, category),\n })\n formMethods.resetField(\"predisposition\")\n })\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // 確定処理\n const onSubmit = useCallback(\n (data: Inputs) => {\n addOperationLog({ operationId: OperationId.OP_00000037 })\n\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n // 登録情報を設定\n const predisposition = getRegistPredisposition(data)\n const regData = {\n facilityId: DEFAULT_FACILITY_ID,\n predisposition: predisposition\n }\n // 登録実行\n const resp = await executePutChildrenPredisposition(childId, regData)\n if (resp.resultCode) {\n // 失敗時\n setChildrenResultCode(resp.resultCode)\n } else {\n // 成功時\n dispatch(notifyMessage(translate('memberModifyChildPredisposition.success.completionMessage')))\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\n }\n }),\n isHiddenMain: false,\n })\n )\n },\n [addOperationLog]\n )\n\n // 情報返却\n return {\n CATEGORY_KEY,\n formMethods,\n categoryMst,\n onSubmit,\n childrenResultCode,\n }\n}\n\n/**\n * 入力フォームの初期値設定\n */\nconst getInitialInputs = (\n child: Child,\n childrenPredisposition: GetChildrenPredispositionDto,\n categoryMst: GetCategoryMstDto[]\n) => {\n const inputs = {\n predisposition: getPredispositionForms(childrenPredisposition.predisposition ?? [], categoryMst)\n }\n\n return inputs\n}\n\n/** 入力フォームの項目の定義 */\nexport interface PredispositionForm {\n code: string\n flag: string\n addAnswer?: {[key: string]: any } \n}\n\nexport const getPredispositionForms = (predisposition: PredispositionForGetChildDto[], categoryMst: GetCategoryMstDto[])=> {\n const targetCategory = categoryMst.find((value) => value.category === 'predisposition')\n if (targetCategory?.options == null) {\n return undefined\n }\n \n const predispositionForm: PredispositionForm[] = []\n targetCategory.options.forEach((opt: Option) => {\n let matchedPredisposition\n if (predisposition != null) {\n matchedPredisposition = predisposition.find((mh) => mh.code === opt.code)\n }\n \n if (matchedPredisposition == null) {\n predispositionForm.push({\n code: opt.code,\n flag: Flag.OFF,\n addAnswer: {}\n })\n } else {\n predispositionForm.push({\n code: opt.code,\n flag: Flag.ON,\n addAnswer: matchedPredisposition.addAnswer != null\n ? matchedPredisposition.addAnswer\n : {}\n })\n }\n })\n \n return predispositionForm\n}\n\n/**\n * お子さま情報登録APIのINPUT用の既往症情報を取得\n * @param data 入力値\n * @returns お子さま情報登録APIのINPUT用の既往症情報\n */\nexport const getRegistPredisposition = (data: Inputs): PredispositionForPutChildDto[] | undefined => {\n \n let result: \n {\n code: string\n addAnswer?: string | null\n }[] = []\n \n if (data.predisposition != null) {\n result = data.predisposition\n .filter((value) => value.flag === Flag.ON)\n .map((value) => {\n return {\n code: value.code,\n addAnswer: value.addAnswer != null && Object.keys(value.addAnswer).length\n ? JSON.stringify(value.addAnswer)\n : null,\n }\n })\n }\n \n if (result.length === 0) {\n return undefined\n }\n \n return result\n}","import { Grid, Stack } from '@mui/material'\nimport { GItem } from '../components/common/grids'\nimport { SubTitle } from '../components/common/subTitle'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { Form } from '../components/common/inputs/form'\nimport { FlexibleCheckBoxesUnit } from '../components/common/memberModifyChild/flexibleCheckBoxesUnit'\nimport { translate } from '../../i18n'\nimport { useAction } from '../../containers/memberModifyChildPredisposition/memberModifyChildPredispositionService'\n\nexport const MemberModifyChildPredisposition = () => {\n const {\n CATEGORY_KEY,\n formMethods,\n categoryMst,\n onSubmit,\n childrenResultCode,\n } = useAction()\n \n const targetCategories = categoryMst?.filter((value) => CATEGORY_KEY.includes(value.category))\n return (\n
    \n \n \n \n \n \n {targetCategories != null && targetCategories.length > 0 ?\n (<>\n \n {\n targetCategories.map((mst) => {\n switch(mst?.category){\n case \"predisposition\":\n return (\n \n \n \n )\n default:\n return null\n }\n })\n }\n )\n :\n (<>\n {translate('memberModifyChildPredisposition.error.noCategoryMst')}\n )\n }\n \n \n \n {!!childrenResultCode && (\n \n )}\n \n \n {translate('memberModifyChildPredisposition.button.decision')}\n \n \n \n \n
    \n )\n}\n","import { useCallback, useLayoutEffect, useState } from 'react'\nimport { useFieldArray, useForm, useWatch } from 'react-hook-form'\nimport { useDispatch } from 'react-redux'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { getCategories } from '../common/category'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { yesNo } from '../common/constant/classification'\nimport { memberUrl } from '../common/constant/appUrl'\nimport { tabValue } from '../member/memberService'\nimport { translate } from '../../i18n'\nimport { toApiYmd } from '../../utils/dateUtil'\nimport { GetCategoryMstDto, Option } from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { GetChildrenDiseaseTestDto } from '../../dataAccess/webApi/dto/childrenDiseaseTestDto'\nimport {\n executeGetChildrenDiseaseTest,\n executePutChildrenDiseaseTest\n} from '../../dataAccess/webApi/dao/childrenDiseaseTestDao'\n\n/** カテゴリーキー */\nconst CATEGORY_KEY = 'diseaseTest'\n/** サブカテゴリーキー */\nconst SUB_CATEGORIES = [\n 'diseaseTest.testName',\n 'diseaseTest.testDate',\n 'diseaseTest.testResult'\n]\n/** 市民用事業ID(市民用の項目は事業ID'0') */\nconst DEFAULT_PROJECT_ID = '0'\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\nconst DEFAULT_FACILITY_ID = '0'\n\n/** URLパラメータ */\ninterface UrlParams {\n childId: string\n}\n\n/** 検査情報の入力フォームの項目の定義 */\nexport interface Inputs {\n diseaseTest?: DiseaseTestForm[]\n}[]\n\n/** 入力フォームの項目の定義 */\nexport interface DiseaseTestForm {\n seq?: number | null\n code: string\n testName?: string | null\n testDate?: Date | null\n testResult?: string | null\n deleted?: boolean\n}\n\n/** 入力フォームの初期値 */\nconst FORM_DEFAULT_VALUES: Inputs = {\n diseaseTest: [],\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const history = useHistory()\n const dispatch = useDispatch()\n\n // URLパラメータ取得\n const { childId } = useParams()\n // カテゴリーマスタ\n const [categoryMst, setCategoryMst] = useState()\n // リザルトコード\n const [childrenResultCode, setChildrenResultCode] = useState()\n // オペレーションログ\n const { addOperationLog } = useOperationLog()\n\n // 入力フォーム初期値設定\n const formMethods = useForm({\n defaultValues: FORM_DEFAULT_VALUES,\n })\n const diseaseTests = useWatch({ name: CATEGORY_KEY, control: formMethods.control })\n const { fields, append } = useFieldArray({\n control: formMethods.control,\n name: CATEGORY_KEY\n })\n\n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\n useLayoutEffect(() => {\n addOperationLog({\n operationId: OperationId.OP_00000001,\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\n })\n \n dispatch(\n showLoading(\n errorHandle(async () => {\n const [\n category, \n // child,\n diseaseTestResp\n ] = await Promise.all([\n // カテゴリーマスタ取得\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: [CATEGORY_KEY, ...SUB_CATEGORIES]}),\n // 検査情報情報取得\n executeGetChildrenDiseaseTest(childId, DEFAULT_FACILITY_ID)\n ])\n\n // カテゴリーマスタ設定\n setCategoryMst(category)\n // 入力フォームに設定\n formMethods.reset({\n ...formMethods.getValues(),\n ...getInitialInputs(diseaseTestResp.result),\n })\n \n const diseaseTestCategory = category?.find((value) => value.category === CATEGORY_KEY)\n // diseaseTestCategory.options が変更されたときに、対応する testName を設定\n diseaseTestCategory?.options?.forEach((opt: Option, index: number) => {\n formMethods.setValue(`${CATEGORY_KEY}.${index}.testName`, opt.optionName);\n formMethods.setValue(`${CATEGORY_KEY}.${index}.code`, opt.code);\n });\n \n })\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // 確定処理\n const onSubmit = useCallback(\n (data: Inputs) => {\n addOperationLog({ operationId: OperationId.OP_00000037 })\n\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n // 登録情報を設定\n const regData = getRegistDiseaseTest(data)\n // 登録実行\n const resp = await executePutChildrenDiseaseTest(childId, regData)\n if (resp.resultCode) {\n // 失敗時\n setChildrenResultCode(resp.resultCode)\n } else {\n // 成功時\n dispatch(notifyMessage(translate('memberModifyChildDiseaseTest.success.completionMessage')))\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\n }\n }),\n isHiddenMain: false,\n })\n )\n },\n [addOperationLog]\n )\n\n const onFieldRemove = (i: number) => {\n formMethods.setValue(`${CATEGORY_KEY}.${i}.deleted`, true)\n }\n \n const onFieldAppend = () => {append({})}\n \n // 情報返却\n return {\n CATEGORY_KEY,\n SUB_CATEGORIES,\n formMethods,\n fields,\n diseaseTests,\n categoryMst,\n onFieldAppend,\n onFieldRemove,\n onSubmit,\n childrenResultCode,\n }\n}\n\n/**\n * 入力フォームの初期値設定\n */\nconst getInitialInputs = (childrenDiseaseTest: GetChildrenDiseaseTestDto[]) => {\n const inputs = {\n diseaseTest: convertDiseaseTest(childrenDiseaseTest)\n }\n\n return inputs\n}\n\n/**\n * 入力フォームのtestDateがDate型のためtestDateをDate型へ変換\n */\nconst convertDiseaseTest = (diseaseTest: GetChildrenDiseaseTestDto[]): DiseaseTestForm[] => {\n const diseaseTestForm: DiseaseTestForm[] = []\n diseaseTest.map((value) => {\n diseaseTestForm.push({\n ...value,\n testDate: value.testDate ? new Date(value.testDate) : null,\n })\n })\n return diseaseTestForm\n}\n\n/**\n * お子さま情報登録APIのINPUT用の検査情報を取得\n * @param data 入力値\n * @returns お子さま情報登録APIのINPUT用の検査情報\n */\nexport const getRegistDiseaseTest = (data: Inputs) => {\n \n const base = {\n facilityId: DEFAULT_FACILITY_ID,\n }\n \n if (data.diseaseTest == null || data.diseaseTest.length === 0) return {...base, diseaseTest: []}\n \n const targetData = data.diseaseTest.filter(e => !e.deleted && (e.testName?.trim() || e.testDate != null || e.testResult != null ))\n \n const diseaseTest = targetData.map((item, i) =>{\n return {\n facilityId: DEFAULT_FACILITY_ID,\n seq: i + 1,\n code: item.code ?? '99',\n testName: item.testName,\n testDate: item.testDate ? toApiYmd(item.testDate) : null,\n testResult: item.testResult\n }\n })\n \n return {...base, diseaseTest}\n}","import { Divider, Grid, Stack, styled } from '@mui/material'\nimport React from 'react'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { ButtonOutlinedWarningS } from '../components/common/buttons/buttonOutlinedWarningS'\nimport { ButtonS } from '../components/common/buttons/buttonS'\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { Form } from '../components/common/inputs/form'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { SubTitle } from '../components/common/subTitle'\nimport { yesNo } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/memberModifyChildDiseaseTest/memberModifyChildDiseaseTestService'\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { translate } from '../../i18n'\nimport { DatePicker } from '../components/common/inputs/datePicker'\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\n\n\nexport const MemberModifyChildDiseaseTest = () => {\n const {\n CATEGORY_KEY,\n SUB_CATEGORIES,\n formMethods,\n fields,\n diseaseTests,\n categoryMst,\n onFieldAppend,\n onFieldRemove,\n onSubmit,\n childrenResultCode,\n } = useAction()\n\n let targetCategory: GetCategoryMstDto | undefined\n if (categoryMst) {\n targetCategory = categoryMst.find((mst) => mst.category === CATEGORY_KEY)\n }\n if (!targetCategory) return ()\n \n const diseaseTestCategory = categoryMst?.find((value) => value.category === CATEGORY_KEY)\n const subCategories = categoryMst?.filter((mst) => SUB_CATEGORIES.includes(mst.category))\n \n if (!diseaseTestCategory || !subCategories || subCategories.length === 0) return ()\n \n const subCategoryMap: {[key:string]: GetCategoryMstDto} = {}\n subCategories?.forEach(e => subCategoryMap[e.category.substring(CATEGORY_KEY.length + 1)] = e)\n const {testDate ,testResult} = subCategoryMap\n const labelData = testResult?.options?.map(op => ({ label: op.optionName, value: op.code })) ?? []\n return (\n
    \n \n \n \n \n \n \n \n \n \n { diseaseTestCategory?.options && \n diseaseTestCategory.options.map((opt, index) => {\n \n return (\n <>\n {opt.optionName}\n \n {testDate != null && \n \n \n \n
    \n {testDate.required === yesNo.yes && (\n *\n )}\n {testDate.name}\n
    \n
    \n
    \n
    \n \n \n \n
    }\n {testResult?.options != null && testResult.options.length !== 0 && \n \n \n \n
    \n {testResult.required === yesNo.yes && (\n *\n )}\n {testResult.name}\n
    \n
    \n
    \n
    \n \n \n \n
    }\n \n {}\n \n )\n })\n }\n {\n fields != null && fields.map((e, i) => {\n if (diseaseTests != null && diseaseTests[i] != null && diseaseTests[i]?.deleted || (diseaseTestCategory?.options != null && i < diseaseTestCategory?.options?.length)) return null\n return ( onFieldRemove(i)} />)\n })\n }\n \n 追加\n \n
    \n
    \n \n
    \n\n {!!childrenResultCode && (\n \n )}\n\n \n \n {translate('memberModifyChildDiseaseTest.button.decision')}\n \n \n \n
    \n
    \n )\n}\n\ninterface InputFormProps {\n subCategoryMap: {[key:string]: GetCategoryMstDto}\n topName: string\n onRemove: () => void\n}\n\n\nconst AdmissionDivider = styled(Divider)(() => ({\n marginBottom: \"8px\",\n marginTop: \"8px\",\n}))\n\n/** 各項目の入力フォーム */\nconst InputForm = (props: InputFormProps) => {\n const {subCategoryMap, topName, onRemove } = props\n const {testName, testDate, testResult} = subCategoryMap\n const labelData = testResult?.options?.map(op => ({ label: op.optionName, value: op.code })) ?? []\n const render = () => {\n return (\n <>\n {testName != null && \n \n \n \n
    \n {testName.required === yesNo.yes && (\n *\n )}\n {testName.name}\n
    \n
    \n
    \n
    \n \n \n \n
    }\n \n {testDate != null && \n \n \n \n
    \n {testDate.required === yesNo.yes && (\n *\n )}\n {testDate.name}\n
    \n
    \n
    \n
    \n \n \n \n
    }\n \n {testResult?.options != null && testResult.options.length !== 0 && \n \n \n \n
    \n {testResult.required === yesNo.yes && (\n *\n )}\n {testResult.name}\n
    \n
    \n
    \n
    \n \n \n \n
    }\n \n \n 削除\n \n {}\n \n )\n }\n \n return (render())\n}","import { executeGet, executePut } from '../common/apiCaller'\nimport {\n GetChildrenTreatmentDto,\n PutChildrenTreatmentInputDto,\n} from '../dto/childrenTreatmentDto'\n\nconst apiName = 'public'\nconst apiPath = '/children-treatment'\n\n// 治療情報取得\nexport const executeGetChildrenTreatment = (id: string, facilityId: string) => {\n return executeGet(apiName, `${apiPath}/${id}`, { facilityId })\n}\n\n// 治療情報登録\nexport const executePutChildrenTreatment = (id: string, input: PutChildrenTreatmentInputDto) => {\n return executePut(apiName, `${apiPath}/${id}`, input)\n}","import { useCallback, useLayoutEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch } from 'react-redux'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { getCategories } from '../common/category'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading, notifyMessage } from '../common/store/slices/application'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { toApiYmd } from '../../utils/dateUtil'\nimport { yesNo } from '../common/constant/classification'\nimport { memberUrl } from '../common/constant/appUrl'\nimport { tabValue } from '../member/memberService'\nimport { translate } from '../../i18n'\nimport { undefinedPropsToNull } from '../../utils/objectUtil'\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { GetChildrenTreatmentDto } from '../../dataAccess/webApi/dto/childrenTreatmentDto'\nimport {\n executeGetChildrenTreatment,\n executePutChildrenTreatment\n} from '../../dataAccess/webApi/dao/childrenTreatmentDao'\n\n/** カテゴリーキー */\nconst CATEGORY_KEY = 'treatment'\n/** サブカテゴリーキー */\nconst SUB_CATEGORIES = [\n 'treatment.restLevel',\n 'treatment.appearanceDate',\n 'treatment.domesticInfection',\n 'treatment.progress',\n 'treatment.medicinePrescription',\n 'treatment.medicinePrescriptionNote',\n 'treatment.medicineOtc',\n 'treatment.medicineOtcNote',\n 'treatment.prevalentDisease',\n 'treatment.prevalentDiseaseNote',\n]\n/** 市民用事業ID(市民用の項目は事業設ID'0') */\nconst DEFAULT_PROJECT_ID = '0'\n/** 市民用施設ID(市民用のデータは施設ID'0'で作成する) */\nconst DEFAULT_FACILITY_ID = '0'\n\n/** URLパラメータ */\ninterface UrlParams {\n childId: string\n}\n\n/** 治療の入力フォームの項目の定義 */\nexport interface Inputs {\n treatment?: {\n restLevel?: string | null\n appearanceDate?: Date | null\n domesticInfection?: string | null\n progress?: string | null\n medicinePrescription?: string | null\n medicinePrescriptionNote?: string | null\n medicineOtc?: string | null\n medicineOtcNote?: string | null\n prevalentDisease?: string | null\n prevalentDiseaseNote?: string | null\n }\n}\n\n/** 入力フォームの初期値 */\nconst FORM_DEFAULT_VALUES: Inputs = {\n treatment: {}\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const history = useHistory()\n const dispatch = useDispatch()\n\n // URLパラメータ取得\n const { childId } = useParams()\n // カテゴリーマスタ\n const [categoryMst, setCategoryMst] = useState()\n // 治療情報更新日時\n const [treatmentUpdateDatetime, setTreatmentUpdateDatetime] = useState()\n // リザルトコード\n const [childrenResultCode, setChildrenResultCode] = useState()\n // オペレーションログ\n const { addOperationLog } = useOperationLog()\n\n // 入力フォーム初期値設定\n const formMethods = useForm({\n defaultValues: FORM_DEFAULT_VALUES\n })\n \n // 初期処理(ちらつき防止のためにuseLayoutEffect使用)\n useLayoutEffect(() => {\n addOperationLog({\n operationId: OperationId.OP_00000001,\n accessData: [{ userIdRegFlag: yesNo.yes, childId }]\n })\n \n dispatch(\n showLoading(\n errorHandle(async () => {\n const [\n category, \n treatmentResp\n ] = await Promise.all([\n // カテゴリーマスタ取得\n getCategories({projectId: DEFAULT_PROJECT_ID, categories: SUB_CATEGORIES}),\n // 治療情報取得\n executeGetChildrenTreatment(childId, DEFAULT_FACILITY_ID)\n ])\n // カテゴリーマスタ設定\n setCategoryMst(category)\n // 治療情報更新日時\n setTreatmentUpdateDatetime(treatmentResp?.result[0]?.updateDatetime ?? '')\n // 入力フォームに設定\n formMethods.reset({\n ...formMethods.getValues(),\n ...getInitialInputs(treatmentResp.result),\n })\n })\n )\n )\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n // 確定処理\n const onSubmit = useCallback(\n (data: Inputs) => {\n addOperationLog({ operationId: OperationId.OP_00000037 })\n\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n // 登録情報を設定\n const regData = getRegistTreatment(data, treatmentUpdateDatetime)\n console.log('regData',regData)\n // 登録実行\n const resp = await executePutChildrenTreatment(childId, regData)\n if (resp.resultCode) {\n // 失敗時\n setChildrenResultCode(resp.resultCode)\n } else {\n // 成功時\n dispatch(notifyMessage(translate('memberModifyChildTreatment.success.completionMessage')))\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId })\n }\n }),\n isHiddenMain: false,\n })\n )\n },\n [addOperationLog, treatmentUpdateDatetime]\n )\n\n // 情報返却\n return {\n CATEGORY_KEY,\n SUB_CATEGORIES,\n formMethods,\n categoryMst,\n onSubmit,\n childrenResultCode,\n }\n}\n\n/**\n * 入力フォームの初期値設定\n */\nconst getInitialInputs = (\n childrenTreatment: GetChildrenTreatmentDto[]\n) => {\n const convertedTreatment = convertTreatment(childrenTreatment)\n const inputs = { treatment: convertedTreatment }\n return inputs\n}\n\n/**\n * 入力フォームのappearanceDateがDate型のためappearanceDateをDate型へ変換\n */\nconst convertTreatment = (treatment: GetChildrenTreatmentDto[]): Inputs[\"treatment\"] => {\n const treatmentForm: Inputs[\"treatment\"][] = []\n treatment.map((value) => {\n treatmentForm.push({\n ...value,\n appearanceDate: value.appearanceDate ? new Date(value.appearanceDate) : null,\n })\n })\n return treatmentForm[0]\n}\n\n/**\n * お子さま情報登録APIのINPUT用の治療情報を取得\n * @param data 入力値\n * @returns お子さま情報登録APIのINPUT用の治療情報\n */\nconst getRegistTreatment = (data: Inputs, treatmentUpdateDatetime?: string) => {\n // 共通情報\n const commonInfo = {\n facilityId: DEFAULT_FACILITY_ID,\n }\n\n // 治療情報\n const { treatment } = data\n // 治療情報編集\n let regTreatment\n if (treatment) {\n const { appearanceDate, ...obj } = treatment\n regTreatment = {\n updateDatetime : treatmentUpdateDatetime ? '' : null,\n appearanceDate: appearanceDate ? toApiYmd(appearanceDate) : null,\n ...obj,\n }\n } else{\n regTreatment = {}\n }\n return undefinedPropsToNull({\n ...commonInfo,\n treatment: regTreatment\n })\n \n}","import { Grid, Stack } from '@mui/material'\nimport { GItem, GItemContainer, MiddleGItem } from '../components/common/grids'\nimport { SubTitle } from '../components/common/subTitle'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { Form } from '../components/common/inputs/form'\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { DatePicker } from '../components/common/inputs/datePicker'\nimport { translate } from '../../i18n'\nimport { yesNo } from '../../containers/common/constant/classification'\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\nimport { useAction } from '../../containers/memberModifyChildTreatment/memberModifyChildTreatmentService'\n\nexport const MemberModifyChildTreatment = () => {\n const {\n SUB_CATEGORIES,\n formMethods,\n categoryMst,\n onSubmit,\n childrenResultCode,\n } = useAction()\n \n //const treatmentCategory = categoryMst?.find((value) => value.category === CATEGORY_KEY)\n const subCategories = categoryMst?.filter((mst) => SUB_CATEGORIES.includes(mst.category))\n\n return (\n
    \n \n \n \n \n \n {subCategories != null && subCategories.length > 0 ?\n (<>\n \n {subCategories && \n subCategories.map((obj) => {\n return (\n \n )\n })\n }\n )\n :\n (<>\n {translate('memberModifyChildTreatment.error.noCategoryMst')}\n )\n }\n \n \n \n {!!childrenResultCode && (\n \n )}\n \n \n {translate('memberModifyChildTreatment.button.decision')}\n \n \n \n \n
    \n )\n}\n\ninterface InputFormProps {\n categoryMst: GetCategoryMstDto\n}\n\n/** 各項目の入力フォーム */\nconst InputForm = (props: InputFormProps) => {\n const { categoryMst } = props\n\n const render = () => {\n\n switch(categoryMst.category) {\n case \"treatment.appearanceDate\":\n /* 日付 */\n if (categoryMst.options == null || categoryMst.options.length === 0) return null\n \n return (\n \n \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.altCategoryName ?? categoryMst.name}\n \n \n \n \n \n )\n \n case \"treatment.restLevel\":\n case \"treatment.domesticInfection\":\n case \"treatment.medicinePrescription\":\n case \"treatment.medicineOtc\":\n case \"treatment.prevalentDisease\":\n /* ラジオボタン */\n if (categoryMst.options == null || categoryMst.options.length === 0) return null\n \n const labelData = categoryMst.options.map(op => ({ label: op.optionName, value: op.code }))\n return (\n \n \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.altCategoryName ?? categoryMst.name}\n \n \n \n \n \n )\n \n case \"treatment.progress\":\n case \"treatment.medicinePrescriptionNote\":\n case \"treatment.medicineOtcNote\":\n case \"treatment.prevalentDiseaseNote\":\n /* テキストボックス */\n return (\n \n \n \n \n
    \n {categoryMst.required === yesNo.yes && (\n *\n )}\n {categoryMst.altCategoryName ?? categoryMst.name}\n
    \n
    \n {categoryMst.maxLength != null ? `(${categoryMst.maxLength}字以内)` : ''}\n
    \n
    \n
    \n
    \n \n \n \n
    \n )\n \n default:\n return null\n }\n }\n \n return (render())\n}\n","import { useCallback, useState, useEffect } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePutChild } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { translate } from '../../i18n'\r\nimport { toApiYmd } from '../../utils/dateUtil'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport {\r\n clearMemberModify,\r\n MemberModifyChildEntry,\r\n selectMemberModifyChildEntry,\r\n selectMemberModifyUpdateDatetime,\r\n} from '../common/store/slices/memberModify'\r\nimport { tabValue } from '../member/memberService'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { getCategories } from '../common/category'\r\nimport { GetCategoryMstDto } from '../../dataAccess/webApi/dto/categoryMstDto'\r\n\r\nexport const useAction = () => {\r\n /** 使用する項目 */\r\n const CATEGORY_KEYS = [\r\n 'childrenGender',\r\n 'childrenBloodType',\r\n 'maternalHandbookNo',\r\n 'brothersSistersFlag',\r\n 'multipleBirthsFlag',\r\n 'allergy',\r\n ]\r\n const DEFAULT_PROJECT_ID = '0' // 市民用の項目は事業ID'0'\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const modifyEntry = useSelector(selectMemberModifyChildEntry)\r\n const updateDatetime = useSelector(selectMemberModifyUpdateDatetime)\r\n\r\n const [childrenResultCode, setChildrenResultCode] = useState()\r\n /** カテゴリーマスタをオブジェクト形式で保持する */\r\n const [categoryMap, setCategoryMap] = useState<{[key:string]: GetCategoryMstDto}>({})\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n \r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const category = await getCategories({projectId: DEFAULT_PROJECT_ID, categories: CATEGORY_KEYS})\r\n const tmpMap: {[key:string]: GetCategoryMstDto} = {}\r\n category?.forEach(e => tmpMap[e.category] = e)\r\n setCategoryMap(tmpMap)\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n \r\n const decide = useCallback(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000037,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId: modifyEntry?.childId }],\r\n })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // entry, updateDatetimeは必ず設定されている\r\n if (modifyEntry && updateDatetime) {\r\n const resp = await putChild(modifyEntry, updateDatetime)\r\n if (resp.resultCode) {\r\n // 失敗時\r\n setChildrenResultCode(resp.resultCode)\r\n } else {\r\n // 成功時\r\n dispatch(notifyMessage(translate('memberModifyConfirmationChild.success.completionMessage')))\r\n history.push(memberUrl.url(), { tabValue: tabValue.child, childId: modifyEntry.childId })\r\n dispatch(clearMemberModify())\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog])\r\n\r\n return {\r\n child: modifyEntry && toChild(modifyEntry),\r\n childrenResultCode,\r\n decide,\r\n categoryMap\r\n }\r\n}\r\n\r\nconst toChild = (entry: MemberModifyChildEntry) => {\r\n const { name, kana, birthday, brothersSistersFlag, multipleBirthsFlag, gender, bloodType, maternalHandbookNo } = entry\r\n return {\r\n name,\r\n kana,\r\n birthday,\r\n brothersSistersFlag,\r\n multipleBirthsFlag,\r\n gender,\r\n bloodType,\r\n maternalHandbookNo,\r\n }\r\n}\r\n\r\nconst putChild = (entry: MemberModifyChildEntry, updateDatetime: string) => {\r\n return executePutChild(entry.childId, {\r\n name: entry.name,\r\n kana: entry.kana,\r\n birthday: toApiYmd(entry.birthday),\r\n brothersSistersFlag: entry.brothersSistersFlag,\r\n multipleBirthsFlag: entry.multipleBirthsFlag,\r\n gender: entry.gender,\r\n bloodType: entry.bloodType,\r\n maternalHandbookNo: entry.maternalHandbookNo,\r\n \r\n updateDatetime,\r\n })\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport React from 'react'\r\nimport { useAction } from '../../containers/memberModifyConfirmationChild/memberModifyConfirmationChildService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ChildContent } from '../components/common/member/childContent'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\n\r\nexport const MemberModifyConfirmationChild = () => {\r\n const { child, childrenResultCode, decide, categoryMap } = useAction()\r\n if (child == null) {\r\n return \r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {!!childrenResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('memberModifyConfirmationChild.button.decision')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executePutUser } from '../../dataAccess/webApi/dao/userDao'\r\nimport { translate } from '../../i18n'\r\nimport { blankToNull } from '../../utils/stringUtil'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport {\r\n MemberModifyUserEntry,\r\n clearMemberModify,\r\n selectMemberModifyUpdateDatetime,\r\n selectMemberModifyUserEntry,\r\n} from '../common/store/slices/memberModify'\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const [usersResultCode, setUsersResultCode] = useState()\r\n // ログイン必須の画面なので必ずNonNullable\r\n const modifyEntry = useSelector(selectMemberModifyUserEntry)\r\n const updateDatetime = useSelector(selectMemberModifyUpdateDatetime)\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const decide = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000037, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n // entry, updateDatetimeは必ず設定されている\r\n if (modifyEntry && updateDatetime) {\r\n const response = await putUser(modifyEntry, updateDatetime)\r\n if (response.resultCode) {\r\n // 登録失敗時\r\n setUsersResultCode(response.resultCode)\r\n } else {\r\n dispatch(notifyMessage(translate('memberModifyConfirmationUser.success.completionMessage')))\r\n history.push(memberUrl.url())\r\n dispatch(clearMemberModify())\r\n }\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [addOperationLog, dispatch, errorHandle, history, modifyEntry, updateDatetime])\r\n\r\n return {\r\n user: modifyEntry && toUser(modifyEntry),\r\n usersResultCode,\r\n decide,\r\n }\r\n}\r\n\r\nconst toUser = (entry: MemberModifyUserEntry) => {\r\n const emergencyContacts = [\r\n {\r\n name: entry.emergencyContactName1,\r\n kana: entry.emergencyContactKana1,\r\n relationship: entry.emergencyContactRelationship1,\r\n company: entry.emergencyContactCompany1,\r\n tel: entry.emergencyContactTel1,\r\n email: entry.emergencyContactEmail1,\r\n },\r\n {\r\n name: entry.emergencyContactName2,\r\n kana: entry.emergencyContactKana2,\r\n relationship: entry.emergencyContactRelationship2,\r\n company: entry.emergencyContactCompany2,\r\n tel: entry.emergencyContactTel2,\r\n email: entry.emergencyContactEmail2,\r\n },\r\n {\r\n name: entry.emergencyContactName3,\r\n kana: entry.emergencyContactKana3,\r\n relationship: entry.emergencyContactRelationship3,\r\n company: entry.emergencyContactCompany3,\r\n tel: entry.emergencyContactTel3,\r\n email: entry.emergencyContactEmail3,\r\n },\r\n ]\r\n\r\n const {\r\n name,\r\n kana,\r\n postalCode,\r\n address1,\r\n address2,\r\n buildingNameRoomNumber,\r\n relationship,\r\n residenceCategory,\r\n residenceCategoryName,\r\n } = entry\r\n return {\r\n name,\r\n kana,\r\n postalCode,\r\n address1,\r\n address2,\r\n buildingNameRoomNumber,\r\n residenceCategory,\r\n residenceCategoryName,\r\n relationship,\r\n\r\n emergencyContacts,\r\n }\r\n}\r\n\r\nconst putUser = (entry: MemberModifyUserEntry, updateDatetime: string) => {\r\n return executePutUser({\r\n name: entry.name,\r\n kana: entry.kana,\r\n postalCode: entry.postalCode,\r\n address1: entry.address1,\r\n address2: entry.address2,\r\n buildingNameRoomNumber: blankToNull(entry.buildingNameRoomNumber),\r\n residenceCategory: entry.residenceCategory,\r\n relationship: blankToNull(entry.relationship),\r\n\r\n emergencyContactName1: blankToNull(entry.emergencyContactName1),\r\n emergencyContactKana1: blankToNull(entry.emergencyContactKana1),\r\n emergencyContactRelationship1: blankToNull(entry.emergencyContactRelationship1),\r\n emergencyContactCompany1: blankToNull(entry.emergencyContactCompany1),\r\n emergencyContactTel1: blankToNull(entry.emergencyContactTel1),\r\n emergencyContactEmail1: blankToNull(entry.emergencyContactEmail1),\r\n\r\n emergencyContactName2: blankToNull(entry.emergencyContactName2),\r\n emergencyContactKana2: blankToNull(entry.emergencyContactKana2),\r\n emergencyContactRelationship2: blankToNull(entry.emergencyContactRelationship2),\r\n emergencyContactCompany2: blankToNull(entry.emergencyContactCompany2),\r\n emergencyContactTel2: blankToNull(entry.emergencyContactTel2),\r\n emergencyContactEmail2: blankToNull(entry.emergencyContactEmail2),\r\n\r\n emergencyContactName3: blankToNull(entry.emergencyContactName3),\r\n emergencyContactKana3: blankToNull(entry.emergencyContactKana3),\r\n emergencyContactRelationship3: blankToNull(entry.emergencyContactRelationship3),\r\n emergencyContactCompany3: blankToNull(entry.emergencyContactCompany3),\r\n emergencyContactTel3: blankToNull(entry.emergencyContactTel3),\r\n emergencyContactEmail3: blankToNull(entry.emergencyContactEmail3),\r\n\r\n updateDatetime,\r\n })\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport React from 'react'\r\nimport { useAction } from '../../containers/memberModifyConfirmationUser/memberModifyConfirmationUserService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { UserContent } from '../components/common/member/userContent'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\n\r\nexport const MemberModifyConfirmationUser = () => {\r\n const { user, usersResultCode, decide } = useAction()\r\n if (user == null) {\r\n return \r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!!usersResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {translate('memberModifyConfirmationUser.button.decision')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useLayoutEffect, useState, useEffect } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { undefinedPropsToOptional } from '../../utils/objectUtil'\r\nimport { setFormValueClearError } from '../../utils/reactUtil'\r\nimport { memberModifyConfirmationUserUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { getAddressStringByPostalCode } from '../common/location'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport {\r\n selectMemberModifyUserEntry,\r\n setMemberModifyUpdateDatetime,\r\n setMemberModifyUser,\r\n} from '../common/store/slices/memberModify'\r\nimport { getUser } from '../common/user'\r\nimport { GetResidenceCategoryMstDto } from '../../dataAccess/webApi/dto/residenceCategoryMstDto'\r\nimport { getResidenceCategoriesAndMstData } from '../common/residenceCategoryMst'\r\n\r\ninterface LocationState {\r\n /** 取得・入力済み情報から復元を試みる場合true */\r\n isKeep: boolean\r\n}\r\n\r\ninterface Inputs {\r\n name: string\r\n kana: string\r\n postalCode: string\r\n address1: string\r\n address2: string\r\n buildingNameRoomNumber: string\r\n residenceCategory: string\r\n relationship: string\r\n\r\n emergencyContactName1: string\r\n emergencyContactKana1: string\r\n emergencyContactRelationship1: string\r\n emergencyContactCompany1: string\r\n emergencyContactTel1: string\r\n emergencyContactEmail1: string\r\n\r\n emergencyContactName2: string\r\n emergencyContactKana2: string\r\n emergencyContactRelationship2: string\r\n emergencyContactCompany2: string\r\n emergencyContactTel2: string\r\n emergencyContactEmail2: string\r\n\r\n emergencyContactName3: string\r\n emergencyContactKana3: string\r\n emergencyContactRelationship3: string\r\n emergencyContactCompany3: string\r\n emergencyContactTel3: string\r\n emergencyContactEmail3: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n const [interviewPermitCount, setInterviewPermitCount] = useState(0)\r\n const [residenceCategoryMst, setResidenceCategoryMst] = useState()\r\n const [residenceCategories, setResidenceCategories] = useState<{ value: string; label: string }[]>([])\r\n const [isDisabledAddress1, setIsDisabledAddress1] = useState(true)\r\n const isKeep = !!history.location.state?.isKeep\r\n\r\n // ログイン必須の画面なので必ずNonNullable\r\n const modifyEntry = useSelector(selectMemberModifyUserEntry)\r\n\r\n const formMethods = useForm({\r\n defaultValues: {\r\n ...(isKeep && modifyEntry),\r\n },\r\n })\r\n\r\n let isDisabledResidenceCategory = false\r\n if ((isKeep && modifyEntry?.isDisabledResidenceCategory) || interviewPermitCount > 0) {\r\n isDisabledResidenceCategory = true\r\n }\r\n\r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001, accessData: [{ userIdRegFlag: yesNo.yes }] })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n \r\n const residenceCategoriesAndMstData = await getResidenceCategoriesAndMstData()\r\n setResidenceCategoryMst(residenceCategoriesAndMstData.mstData)\r\n setResidenceCategories(residenceCategoriesAndMstData.categories)\r\n \r\n if (!(isKeep && modifyEntry)) {\r\n const { \r\n updateDatetime,\r\n interviewPermitCount,\r\n ...initialInputs\r\n } = await getInitialInputs()\r\n formMethods.reset({\r\n ...formMethods.getValues(),\r\n ...initialInputs,\r\n })\r\n dispatch(setMemberModifyUpdateDatetime(updateDatetime))\r\n setInterviewPermitCount(interviewPermitCount)\r\n }\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n \r\n const setResidenceCategory = useCallback((address1: string) => {\r\n if (\r\n !isDisabledResidenceCategory \r\n && residenceCategoryMst?.triggerKeywordSetInitialValue\r\n && address1.includes(residenceCategoryMst.triggerKeywordSetInitialValue)\r\n ) {\r\n setFormValueClearError(formMethods, 'residenceCategory', residenceCategoryMst.initialValue)\r\n }\r\n }, [isDisabledResidenceCategory, residenceCategoryMst, formMethods])\r\n\r\n useEffect(() => {\r\n const subscription = formMethods.watch((values, { name, type }) => {\r\n if (name === 'address1' && type === 'change') {\r\n if (values.address1) {\r\n setResidenceCategory(values.address1)\r\n }\r\n }\r\n })\r\n return () => subscription.unsubscribe()\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [setResidenceCategory])\r\n\r\n const onSubmit = useCallback(\r\n (data: Inputs) => {\r\n addOperationLog({ operationId: OperationId.OP_00000058 })\r\n \r\n const matchValueLabels = residenceCategories.filter((element) => {\r\n return data.residenceCategory === element.value\r\n })\r\n const residenceCategoryName = matchValueLabels[0].label\r\n\r\n dispatch(setMemberModifyUser({...data, residenceCategoryName, isDisabledResidenceCategory}))\r\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\r\n history.replace({ ...history.location, state: { isKeep: true } })\r\n history.push(memberModifyConfirmationUserUrl.url())\r\n },\r\n [addOperationLog, residenceCategories, isDisabledResidenceCategory]\r\n )\r\n\r\n const autoCompleteAddress = useCallback(async () => {\r\n const { postalCode } = formMethods.getValues()\r\n try {\r\n const address = await getAddressStringByPostalCode(postalCode)\r\n if (address) {\r\n formMethods.setValue('address1', address)\r\n setResidenceCategory(address)\r\n setIsDisabledAddress1(true)\r\n } else {\r\n setIsDisabledAddress1(false) }\r\n } catch {\r\n // 取得できなかった場合は何もしない\r\n }\r\n }, [setResidenceCategory])\r\n \r\n return {\r\n formMethods,\r\n interviewPermitCount,\r\n autoCompleteAddress,\r\n onSubmit,\r\n isDisabledResidenceCategory,\r\n residenceCategories,\r\n isDisabledAddress1,\r\n residenceCategoryMst,\r\n }\r\n}\r\n\r\nconst getInitialInputs = async () => {\r\n const user = await getUser()\r\n const {\r\n name,\r\n kana,\r\n tel,\r\n email,\r\n postalCode,\r\n address1,\r\n address2,\r\n buildingNameRoomNumber,\r\n residenceCategory,\r\n relationship,\r\n emergencyContacts: [emergencyContact1, emergencyContact2, emergencyContact3],\r\n interviewPermitCount,\r\n updateDatetime,\r\n } = user\r\n // formMethods.resetで propaty: undefined が含まれると\r\n // 対象コントロールの値が undefined となりエラーが発生してしまう\r\n // その為、undefinedPropsToOptionalでundefinedを含む型を持つプロパティを\r\n // オプショナルに変換する。※値がundefinedのプロパティは除去されたオブジェクトになる\r\n return undefinedPropsToOptional({\r\n name,\r\n kana,\r\n tel,\r\n email,\r\n postalCode,\r\n address1,\r\n address2,\r\n buildingNameRoomNumber,\r\n residenceCategory,\r\n relationship,\r\n\r\n emergencyContactName1: emergencyContact1.name,\r\n emergencyContactKana1: emergencyContact1.kana,\r\n emergencyContactRelationship1: emergencyContact1.relationship,\r\n emergencyContactCompany1: emergencyContact1.company,\r\n emergencyContactTel1: emergencyContact1.tel,\r\n emergencyContactEmail1: emergencyContact1.email,\r\n\r\n emergencyContactName2: emergencyContact2.name,\r\n emergencyContactKana2: emergencyContact2.kana,\r\n emergencyContactRelationship2: emergencyContact2.relationship,\r\n emergencyContactCompany2: emergencyContact2.company,\r\n emergencyContactTel2: emergencyContact2.tel,\r\n emergencyContactEmail2: emergencyContact2.email,\r\n\r\n emergencyContactName3: emergencyContact3.name,\r\n emergencyContactKana3: emergencyContact3.kana,\r\n emergencyContactRelationship3: emergencyContact3.relationship,\r\n emergencyContactCompany3: emergencyContact3.company,\r\n emergencyContactTel3: emergencyContact3.tel,\r\n emergencyContactEmail3: emergencyContact3.email,\r\n\r\n updateDatetime,\r\n interviewPermitCount,\r\n })\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material'\r\nimport React, { Fragment } from 'react'\r\nimport { useAction } from '../../containers/memberModifyUser/memberModifyUserService'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\r\nimport { FlexboxRowTop, Separator } from '../components/common/flexboxes'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { RadioButtonGroup } from '../components/common/inputs/radioButtonGroup'\r\nimport { TelTextBox } from '../components/common/inputs/telTextBox'\r\nimport { TextBox } from '../components/common/inputs/textBox'\r\nimport { SubTitle } from '../components/common/subTitle'\r\n\r\nconst UserContentAttribute = styled(Grid)({\r\n padding: '0 0 0 3rem',\r\n})\r\n\r\nexport const MemberModifyUser = () => {\r\n const {\r\n formMethods,\r\n autoCompleteAddress,\r\n onSubmit,\r\n isDisabledResidenceCategory,\r\n residenceCategories,\r\n isDisabledAddress1 ,\r\n residenceCategoryMst,\r\n } = useAction()\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {/* 基本 */}\r\n \r\n
    \r\n \r\n \r\n \r\n *\r\n {translate('memberModifyUser.label.name')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n *\r\n {translate('memberModifyUser.label.kana')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n *\r\n {translate('memberModifyUser.label.postalCode')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('memberModifyUser.button.autoComplete')}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n *\r\n {translate('memberModifyUser.label.prefecturesAndMunicipalities')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n *\r\n {translate('memberModifyUser.label.address')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberModifyUser.label.buildingNameRoomNumber')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *\r\n {translate('memberModifyUser.label.residenceCategory')}\r\n \r\n \r\n \r\n \r\n
    \r\n {residenceCategoryMst?.descriptionForResidenceCategory &&\r\n {residenceCategoryMst.descriptionForResidenceCategory}\r\n }\r\n
    \r\n
    \r\n \r\n \r\n {translate('memberModifyUser.label.relationship')}\r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {/* 緊急連絡先1~3 */}\r\n {['1', '2', '3'].map((suffix) => (\r\n \r\n \r\n
    \r\n \r\n \r\n \r\n {translate('memberModifyUser.label.name')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberModifyUser.label.kana')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberModifyUser.label.relationship')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberModifyUser.label.company')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberModifyUser.label.tel')}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {translate('memberModifyUser.label.email')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n ))}\r\n {/* 減免 */}\r\n \r\n
    \r\n \r\n \r\n {translate('memberModifyUser.text.exempt')}\r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n \r\n \r\n {translate('memberModifyUser.button.confirmation')}\r\n \r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { SelectChangeEvent } from '@mui/material'\r\nimport { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { executeGetInterviewedFacilities } from '../../dataAccess/webApi/dao/interviewedFacilitiesDao'\r\nimport { GetInterviewedFacilitiesDto } from '../../dataAccess/webApi/dto/interviewedFacilitiesDto'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { NullPropsToUndefinedType } from '../../utils/typeUtil'\r\nimport { ChildrenChoice, getChildrenChoices } from '../common/child'\r\nimport { facilityDetailUrl, facilityDetailAvailabilityUrl } from '../common/constant/appUrl'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { facilityReservationSelectionCreateUrl } from '../../containers/common/constant/appUrl'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\n\r\ninterface LocationState {\r\n /** アクティブなお子さまID */\r\n childId?: string\r\n}\r\n\r\ninterface PageState {\r\n activeChildId?: string\r\n myFacilities?: NullPropsToUndefinedType[]\r\n childs: ChildrenChoice[]\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const locationState = history.location.state\r\n const [state, setState] = useState({\r\n activeChildId: locationState?.childId,\r\n childs: [],\r\n })\r\n\r\n const load = useCallback(\r\n (isInitialize: boolean, loadedChilds: { value: string; label: string }[], activeChildId?: string) => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n const childs = isInitialize ? await getChildrenChoices() : loadedChilds\r\n const childId = activeChildId ?? childs[0]?.value\r\n const myFacilities = await getMyFacilities(childId)\r\n setState({\r\n activeChildId: childId,\r\n childs,\r\n myFacilities,\r\n })\r\n }),\r\n isHiddenMain: isInitialize,\r\n })\r\n )\r\n },\r\n []\r\n )\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n load(true, state.childs, state.activeChildId)\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n useEffect(() => {\r\n // 戻るで表示した際にアクティブな選択を復元する為に履歴に保管\r\n history.replace({ ...history.location, state: { childId: state.activeChildId } })\r\n }, [state.activeChildId])\r\n\r\n const changeChild = useCallback(\r\n (event: SelectChangeEvent) => {\r\n addOperationLog({ operationId: OperationId.OP_00000028 })\r\n\r\n load(false, state.childs, event.target.value)\r\n },\r\n [state.childs, addOperationLog]\r\n )\r\n\r\n const onClickFacilityName = useCallback(\r\n (facilityId?: string) => {\r\n addOperationLog({ operationId: OperationId.OP_00000027 })\r\n\r\n if (facilityId) {\r\n // この画面では施設カードに施設IDを設定しているのでnullはあり得ない\r\n history.push(facilityDetailUrl.url(facilityId))\r\n }\r\n },\r\n [addOperationLog]\r\n )\r\n\r\n const callTel = useCallback((tel: string) => (document.location.href = `tel:${tel}`), [])\r\n\r\n // 空き状況(利用する)へ遷移\r\n const goFacilityReservationSelection = useCallback(\r\n (facilityId: string, activeChildId: string) => {\r\n addOperationLog({ operationId: OperationId.OP_00000040 })\r\n history.push(facilityReservationSelectionCreateUrl.url(facilityId, activeChildId))\r\n },\r\n [addOperationLog, history]\r\n )\r\n\r\n // 空き状況へ遷移\r\n const goFacilityDetailAvailability = useCallback(\r\n (facilityId: string, activeChildId: string) => {\r\n addOperationLog({ operationId: OperationId.OP_00000041 })\r\n history.push(facilityDetailAvailabilityUrl.url(facilityId, activeChildId))\r\n },\r\n [addOperationLog, history]\r\n )\r\n\r\n return {\r\n ...state,\r\n changeChild,\r\n onClickFacilityName,\r\n callTel,\r\n goFacilityReservationSelection,\r\n goFacilityDetailAvailability,\r\n }\r\n}\r\n\r\nconst getMyFacilities = async (childId: string) => {\r\n const response = await executeGetInterviewedFacilities({ childId })\r\n return response.result.map((v) => nullPropsToUndefined(v))\r\n}\r\n","import { GetInterviewedFacilitiesInputDto, GetInterviewedFacilitiesDto } from '../dto/interviewedFacilitiesDto'\r\nimport { executeGet } from '../common/apiCaller'\r\n\r\nconst apiName = 'citizen'\r\nconst apiPath = '/interviewed-facilities'\r\n\r\nexport const executeGetInterviewedFacilities = (input: GetInterviewedFacilitiesInputDto) => {\r\n return executeGet(apiName, apiPath, input)\r\n}\r\n","import { Stack, styled } from '@mui/material'\nimport React from 'react'\nimport { rootUrl } from '../../containers/common/constant/appUrl'\nimport { yesNo } from '../../containers/common/constant/classification'\nimport { useAction } from '../../containers/myFacility/myFacilityService'\nimport { translate } from '../../i18n'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\nimport { ButtonS } from '../components/common/buttons/buttonS'\nimport { FacilityCard } from '../components/common/facilityCard'\nimport { GContainer, GItem, MiddleGItem } from '../components/common/grids'\nimport { ReserveStatusCheckIcon } from '../components/common/icons/reserveStatusCheckIcon'\nimport { TelIcon } from '../components/common/icons/telIcon'\nimport { SelectNoBind } from '../components/common/inputs/selectNoBind'\n\nconst NoResultMessageCard = styled('div')({\n padding: '20px 0',\n textAlign: 'center',\n})\n\nexport const MyFacility = () => {\n const {\n activeChildId,\n myFacilities,\n childs,\n changeChild,\n onClickFacilityName,\n callTel,\n goFacilityReservationSelection,\n goFacilityDetailAvailability,\n } = useAction()\n if (myFacilities == null || activeChildId == null) {\n return null\n }\n return (\n \n \n \n \n \n {translate('usageHistory.label.selectionChild')}:\n \n \n \n\n \n \n {myFacilities.length ? (\n myFacilities.map((facility) => (\n \n {facility.reservationAcceptFlag === yesNo.yes ? (\n }\n onClick={() => goFacilityReservationSelection(facility.facilityId, activeChildId)}\n >\n {translate('myFacility.button.webReservation')}\n \n ) : facility.notLoginCalendarDisplayFlag === yesNo.yes ? (\n }\n onClick={() => goFacilityDetailAvailability(facility.facilityId, activeChildId)}\n >\n {translate('myFacility.button.availabilityCheck')}\n \n ) : (\n } onClick={() => callTel(facility.tel)}>\n {translate('myFacility.button.telReservation')}\n \n )}\n \n ))\n ) : (\n {translate('myFacility.text.noFacility')}\n )}\n \n \n \n \n \n \n \n {translate('system.button.backToHome')}\n \n \n )\n}\n","import { useLayoutEffect, useState, useCallback } from 'react'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { selectLoginUser } from '../common/store/slices/authority'\r\nimport { getUser } from '../common/user'\r\nimport { accountUrl, memberUrl, myFacilityUrl, usageHistoryUrl } from '../../containers/common/constant/appUrl'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { OperationId } from '../common/constant/operationLog'\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { addOperationLog } = useOperationLog()\r\n\r\n const [userName, setUserName] = useState()\r\n\r\n const loginUser = useSelector(selectLoginUser)\r\n\r\n // ちらつき防止のためにuseLayoutEffect使用\r\n useLayoutEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n setUserName(await getUserName())\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n // アカウント情報へ遷移\r\n const goAccount = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000038 })\r\n history.push(accountUrl.url())\r\n }, [addOperationLog, history])\r\n\r\n // 会員情報へ遷移\r\n const goMember = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000039 })\r\n history.push(memberUrl.url())\r\n }, [addOperationLog, history])\r\n\r\n // My施設へ遷移\r\n const goMyFacility = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000019 })\r\n history.push(myFacilityUrl.url())\r\n }, [addOperationLog, history])\r\n\r\n // 利用履歴へ遷移\r\n const goUsageHistory = useCallback(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000021 })\r\n history.push(usageHistoryUrl.url())\r\n }, [addOperationLog, history])\r\n\r\n return {\r\n loginId: loginUser?.loginId,\r\n userName,\r\n goAccount,\r\n goMember,\r\n goMyFacility,\r\n goUsageHistory,\r\n }\r\n}\r\n\r\nconst getUserName = async () => {\r\n const user = await getUser()\r\n return user.name\r\n}\r\n","import { Grid, Stack, styled } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { rootUrl } from '../../containers/common/constant/appUrl'\r\nimport { useAction } from '../../containers/mypage/mypageService'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { InlineFlexbox } from '../components/common/flexboxes'\r\nimport { CenterItem, CenterMiddleItem, LabelItemBase, ValueItemBase } from '../components/common/gridItems'\r\nimport { AccountIcon } from '../components/common/icons/accountIcon'\r\n\r\nconst ItemIcon = styled(InlineFlexbox)(({ theme }) => ({\r\n color: theme.palette.primary.main,\r\n backgroundColor: theme.palette.grayLight.main,\r\n borderRadius: 65,\r\n fontSize: '13rem',\r\n}))\r\n\r\nconst UserContainer = styled(Grid)({\r\n width: 'auto',\r\n})\r\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nexport const Mypage = () => {\r\n const { loginId, userName, goAccount, goMember, goMyFacility, goUsageHistory } = useAction()\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('mypage.label.loginId')}\r\n {loginId}\r\n {translate('mypage.label.fullName')}\r\n {userName}\r\n \r\n \r\n \r\n \r\n {translate('mypage.button.account')}\r\n \r\n \r\n \r\n \r\n {translate('mypage.button.member')}\r\n \r\n \r\n \r\n \r\n {translate('mypage.button.myFacility')}\r\n \r\n \r\n \r\n \r\n {translate('mypage.button.usageHistory')}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n )\r\n}\r\n","import { useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading } from '../common/store/slices/application'\nimport { clearFacilitySearchResult, setFacilitySearchCondition } from '../common/store/slices/facilitySearch'\nimport {\n executePostGuideText, guideTextId,\n} from '../../dataAccess/webApi/dao/guideTextDao'\nimport { GuideTextData } from '../../dataAccess/webApi/dto/guideTextDto'\nimport { datePropsToNumber, nullPropsToUndefined } from '../../utils/objectUtil'\nimport { facilitySearchConditionUrl, facilitySearchResultUrl } from '../common/constant/appUrl'\nimport { useHistory } from 'react-router-dom'\nimport { splitRemoveBlank } from '../../utils/stringUtil'\nimport { selectFacilitySearchSettingMsts, selectProjectMsts, setFacilitySearchSettingMsts, setProjectMsts } from '../common/store/slices/facilitySearchSetting'\nimport { getFacilitySearchSettingMsts, getProjectMsts } from '../home/homeService'\n\ninterface FacilitySearchSettingMsts {\n projectCategoryId: string\n projectCategoryName: string\n intermediateDisplayFlag: string\n searchConditionDisplayFlag: string\n ageSearchFlag: string | null\n projectSearchFlag: string | null\n facilityCategorySearchFlag: string | null\n areaSearchFlag: string | null\n reservationSearchFlag: string | null\n otherSearchFlag: string | null\n useReasonSearchFlag: string | null\n information: string | null\n createUser: string\n createDatetime: string\n updateUser: string\n updateDatetime: string\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const facilitySearchSettingMsts = useSelector(selectFacilitySearchSettingMsts)\n const projectMsts = useSelector(selectProjectMsts)\n const history = useHistory()\n\n const [guideText, setGuideText] = useState()\n const [bottomGuideText, setBottomGuideText] = useState()\n\n useEffect(() => {\n const initialize = async () => {\n {\n const guideText = await getContactCommonGuideText()\n setGuideText(guideText)\n }\n\n {\n const bottomGuide = await getContactCommonBottomGuideText()\n setBottomGuideText(bottomGuide)\n }\n\n {\n const facilitySearchSettingMstsRes = await getFacilitySearchSettingMsts()\n dispatch(setFacilitySearchSettingMsts(facilitySearchSettingMstsRes))\n }\n\n {\n const projectMstsRes = await getProjectMsts()\n dispatch(setProjectMsts(projectMstsRes))\n }\n }\n dispatch(showLoading(errorHandle(initialize)))\n }, [])\n\n const handleClick = (facilitySearchSettingMst: FacilitySearchSettingMsts) => {\n const projectIds = projectMsts?.filter((projectMst: any) => projectMst.projectCategoryId === facilitySearchSettingMst.projectCategoryId).map((projectMst: any) => projectMst.projectId)\n\n if (facilitySearchSettingMst.searchConditionDisplayFlag === '0') {\n dispatch(\n setFacilitySearchCondition(\n nullPropsToUndefined(\n datePropsToNumber({\n // 空の場合全件検索してしまうため、空の場合は存在しないIDを直接指定\n projectIds: projectIds?.length ? splitRemoveBlank(',', projectIds?.join(',')) : ['0'],\n })\n )\n )\n )\n\n dispatch(clearFacilitySearchResult())\n // 戻るで表示した際に取得・入力済み情報から復元を試みる為に履歴に保管\n history.replace({\n ...history.location,\n state: {\n isKeep: true,\n projectIds: [],\n },\n })\n history.push(facilitySearchResultUrl.url())\n } else {\n history.push({\n pathname: facilitySearchConditionUrl.url(facilitySearchSettingMst.projectCategoryId),\n state: { projectIds },\n }) \n }\n }\n\n return {\n guideText,\n bottomGuideText,\n facilitySearchSettingMsts,\n handleClick,\n }\n}\n\n/**\n * 案内文を取得して返す\n * @return {Array} - linkSettingsのリスト\n */\nconst getContactCommonGuideText = async () => {\n const response = await executePostGuideText(guideTextId.projectTopCommonGuideText)\n return response.result\n}\n\n/**\n * 案内文下段を取得して返す\n * @return {Array} - linkSettingsのリスト\n */\nconst getContactCommonBottomGuideText = async () => {\n const guideTextId = 6\n const response = await executePostGuideText(guideTextId)\n return response.result\n}\n","import { Grid, Stack, styled } from '@mui/material'\nimport { useAction } from '../../containers/facilitySearchSettingMasterSelection/facilitySearchSettingMasterSelectionService'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { Card } from '../components/common/card'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\nimport { rootUrl } from '../../containers/common/constant/appUrl'\nimport { translate } from '../../i18n'\n\nconst ContentBox = styled('div')({\n padding: '0 16px',\n})\n\nconst InformationField = styled('div')({\n whiteSpace: 'pre-wrap',\n wordBreak: 'break-word',\n})\n\nconst GridWrapper = styled('div')(({ theme }) => ({\n [theme.breakpoints.up('md')]: {\n marginTop: '4em',\n },\n}))\n\nconst OffsetCard = styled(Card)({\n marginTop: '12px',\n})\n\nexport const FacilitySearchSettingMasterSelection = () => {\n const { guideText, bottomGuideText, facilitySearchSettingMsts, handleClick } =\n useAction()\n\n return (\n \n \n {guideText?.guideTextContent}\n \n\n \n \n \n \n
    \n \n {facilitySearchSettingMsts?.map(\n (facilitySearchSettingMst) => (\n \n <>\n \n handleClick(facilitySearchSettingMst)\n }\n >\n {facilitySearchSettingMst.projectCategoryName}\n \n {facilitySearchSettingMst.information ? (\n \n \n \n {facilitySearchSettingMst.information}\n \n \n \n ) : null}\n \n \n )\n )}\n \n
    \n
    \n
    \n
    \n
    \n\n \n {bottomGuideText?.guideTextContent}\n \n\n \n {translate('system.button.backToHome')}\n \n
    \n )\n}\n","import { FormControlLabel, Radio, RadioGroup, styled, SelectChangeEvent } from '@mui/material'\r\nimport React from 'react'\r\n\r\ninterface RadioButtonNoBindProps {\r\n /** name属性 */\r\n name?: string\r\n /** 選択状態の選択肢の値 */\r\n value?: string\r\n /** 横に並べて表示する場合true */\r\n row?: boolean\r\n /** 選択肢の値と表示文言配列 */\r\n buttonValueLabels: { value: string; label: string }[]\r\n /** 選択が変更された時に呼び出される関数 */\r\n onChange?: (event: SelectChangeEvent, child: React.ReactNode) => void\r\n}\r\n\r\nconst Root = styled(RadioGroup)(() => ({\r\n '& .MuiRadio-root': {\r\n padding: '0 9px',\r\n },\r\n}))\r\n\r\n/** ラジオボタンフォームコントロール*/\r\n/** react-hook-formを使って入力値の紐づけを実施しないバージョン*/\r\nexport const RadioButtonGroupNoBind = (props: RadioButtonNoBindProps) => {\r\n const { name, value, buttonValueLabels, onChange, ...through } = props\r\n\r\n return (\r\n \r\n {buttonValueLabels.map(({ value, label }) => (\r\n }\r\n />\r\n ))}\r\n \r\n )\r\n}\r\n\r\n","import { Grid, Stack } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { getLotteryReservationStatusLabel } from '../../../../containers/common/codeMaster'\r\nimport { facilityLotteryReservationDetailUrl } from '../../../../containers/common/constant/appUrl'\r\nimport { translate } from '../../../../i18n'\r\nimport { formatHmtoHmOver, formatYmdWeek } from '../../../../utils/dateUtil'\r\nimport { Card } from '../card'\r\nimport { LabelGItemBase, RightGItem, ValueGItemBase } from '../grids'\r\nimport { Link } from '../link'\r\nimport { OperationId } from '../../../../containers/common/constant/operationLog'\r\n\r\ninterface LotteryReservationCardProps {\r\n lotteryReservationNo: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date \r\n childName: string\r\n facilityName: string\r\n status: string\r\n}\r\n\r\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nexport const LotteryReservationCard: React.FC = (props: LotteryReservationCardProps) => {\r\n return (\r\n \r\n \r\n {translate('system.reservationCard.label.reservationDatetime')}\r\n \r\n \r\n
    {formatYmdWeek(props.usageDate)}
    \r\n
    {formatHmtoHmOver({ from: props.useFromDatetime, to: props.useToDatetime }, props.usageDate)}
    \r\n
    \r\n
    \r\n {translate('system.reservationCard.label.facilityName')}\r\n {props.facilityName}\r\n {translate('system.reservationCard.label.childName')}\r\n {props.childName}\r\n {translate('system.reservationCard.label.status')}\r\n {getLotteryReservationStatusLabel(props.status)}\r\n\r\n \r\n \r\n {`${translate('system.reservationCard.text.reservationDetail')}>`}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { Grid, Stack } from '@mui/material'\r\nimport React, { ReactNode } from 'react'\r\nimport { getInterviewStatusLabel, getPermitFlagLabel } from '../../../containers/common/codeMaster'\r\nimport { interviewReservationDetailUrl } from '../../../containers/common/constant/appUrl'\r\nimport { interviewStatus, permitFlag } from '../../../containers/common/constant/classification'\r\nimport { translate } from '../../../i18n'\r\nimport { formatHmtoHmOver, formatYmdWeek } from '../../../utils/dateUtil'\r\nimport { Card } from '../common/card'\r\nimport { LabelItemBase, RightItem, ValueItemBase } from '../common/gridItems'\r\nimport { Link } from '../common/link'\r\nimport { OperationId } from '../../../containers/common/constant/operationLog'\r\n\r\ninterface InterviewCardProps {\r\n interviewNo: string\r\n interviewDate?: Date\r\n interviewStartDatetime?: Date\r\n interviewEndDatetime?: Date\r\n facilityName: string\r\n childName: string\r\n status: string\r\n permitFlag: string\r\n}\r\n\r\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\r\n\r\nexport const InterviewCard = (props: InterviewCardProps) => {\r\n return (\r\n \r\n \r\n {translate('reservationStatusList.label.interviewDatetime')}\r\n \r\n {props.status !== interviewStatus.notFixed ? (\r\n \r\n
    {props.interviewDate && formatYmdWeek(props.interviewDate)}
    \r\n {props.interviewDate && props.interviewStartDatetime && props.interviewEndDatetime && (\r\n
    \r\n {formatHmtoHmOver(\r\n { from: props.interviewStartDatetime, to: props.interviewEndDatetime },\r\n props.interviewDate\r\n )}\r\n
    \r\n )}\r\n
    \r\n ) : (\r\n translate('reservationStatusList.text.notFixed')\r\n )}\r\n
    \r\n {translate('reservationStatusList.label.facilityName')}\r\n {props.facilityName}\r\n {translate('reservationStatusList.label.childName')}\r\n {props.childName}\r\n {translate('reservationStatusList.label.status')}\r\n {props.permitFlag === permitFlag.shelved || \r\n props.permitFlag === permitFlag.updatedAnnually ? (\r\n {getPermitFlagLabel(props.permitFlag)}\r\n ) : (\r\n {getInterviewStatusLabel(props.status)}\r\n )}\r\n\r\n \r\n \r\n {`${translate('reservationStatusList.text.reservationDetail')}>`}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n}\r\n","import { Grid, Button, CircularProgress } from '@mui/material'\nimport { ReactNode, useState } from 'react'\nimport { translate } from '../../../i18n'\n// import { formatYmdWeek, formatYm } from '../../../utils/dateUtil'\nimport { Card } from '../common/card'\nimport { LabelItemBase, RightItem, ValueItemBase } from '../common/gridItems'\n// import { OperationId } from '../../../containers/common/constant/operationLog'\nimport {\n executeGetDownloadPdfUrl,\n} from '../../../dataAccess/webApi/dao/acceptNoticeDao'\nimport { downloadFile } from '../../../utils/reactUtil'\n\ninterface BatchResult {\n batchId: string\n reservationType: number\n reservationDate: string\n facilityId: string\n userId: string\n childId: string\n usageDates: string\n facilityName: string\n childName: string\n}\n\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\nconst ValueItem = (props: { children: ReactNode }) => {props.children}\n\nexport const AcceptNoticeCard = (props: BatchResult) => {\n const [isDownLoading, setIsDownLoading] = useState(false)\n\n console.log('props:', props)\n\n const {\n reservationDate,\n facilityName,\n childName,\n reservationType,\n usageDates,\n batchId,\n facilityId,\n childId,\n } = props\n\n const joinedUsageDates = usageDates\n .split(',')\n .map(date => parseInt(date.split('-')[2]))\n .join(' / ');\n\n const desiredUsageMonth = usageDates\n .split(',')[0]\n .split('-')\n .slice(0, 2)\n .join('/'); \n\n const handleClick = async () => {\n setIsDownLoading(true)\n\n const input = {\n batchId,\n facilityId,\n childId,\n reservationDate,\n }\n\n const resPdfUrl = await executeGetDownloadPdfUrl(input)\n downloadFile(resPdfUrl.result.url)\n\n setIsDownLoading(false)\n }\n\n return (\n \n \n {/* 申込日 */}\n {translate('reservationStatusList.label.acceptNoticeDatetime')}\n {reservationDate.replace(/-/g, '/')}\n\n {/* 施設名 */}\n {translate('reservationStatusList.label.facilityName')}\n {facilityName}\n\n {/* お子さま氏名 */}\n {translate('reservationStatusList.label.childName')}\n {childName}\n\n {/* 申込方法 */}\n {translate('reservationStatusList.label.reservationMethod')}\n {reservationType === 1 ? '通常申込' : '抽選予約'}\n\n {/* 利用希望月 */}\n {translate('reservationStatusList.label.desiredUsageMonth')}\n {desiredUsageMonth}\n\n {/* 利用希望日 */}\n {translate('reservationStatusList.label.desiredUsageDay')}\n {joinedUsageDates}\n\n \n {isDownLoading && <>ダウンロード中...}\n \n \n \n \n )\n}\n","import React from 'react'\r\nimport { Grid, Stack, styled } from '@mui/material'\r\nimport { rootUrl, usageHistoryUrl } from '../../containers/common/constant/appUrl'\r\nimport { getReservationStatusSearchConditions } from '../../containers/common/codeMaster'\r\nimport { tabValue, useAction } from '../../containers/reservationStatusList/reservationStatusListService'\r\nimport { getClassificationValueLabels, translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { MiddleItem } from '../components/common/gridItems'\r\nimport { RadioButtonGroupNoBind } from '../components/common/inputs/radioButtonGroupNoBind'\r\nimport { SelectNoBind } from '../components/common/inputs/selectNoBind'\r\nimport { Link } from '../components/common/link'\r\nimport { ReservationCard } from '../components/common/reservation/reservationCard'\r\nimport { LotteryReservationCard } from '../components/common/lotteryReservation/lotteryReservationCard'\r\nimport { TabBar } from '../components/common/tabBar'\r\nimport { InterviewCard } from '../components/reservationStatusList/interviewCard'\r\nimport { AcceptNoticeCard } from '../components/acceptNotice/acceptNoticeCard'\r\n\r\nconst SeparateString = '/'\r\n\r\nconst NoResultMessageCard = styled('div')({\r\n padding: '20px 0',\r\n textAlign: 'center',\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const ReservationStatusList: React.FC = () => {\r\n const {\r\n activeChildId,\r\n activeTabValue,\r\n activeStatusSearchCondition,\r\n reservations,\r\n lotteryReservations,\r\n interviews,\r\n batchResults,\r\n childs,\r\n tabs,\r\n projects,\r\n acceptNoticeStatus,\r\n changeChild,\r\n changeTab,\r\n statusSearchConditionChangeHandle\r\n } = useAction();\r\n\r\n let contents\r\n if (reservations) {\r\n contents = reservations.map((reservation) => )\r\n } else if (interviews) {\r\n contents = interviews.map((interview) => )\r\n } else if (lotteryReservations){\r\n contents = lotteryReservations.map((reservation) => )\r\n } else if (batchResults) {\r\n contents = batchResults.map((batchResult) => )\r\n }\r\n \r\n /** タブ名称ラベル、タブ内0件メッセージ表示内容を設定 */\r\n // このサイト内 全事業マスタの全履歴内に施設申込方法(0:面談申込 1:事前申込)の設定状況により表示を切り替える\r\n const interviewMethodAllZero = projects.filter(project => project.interviewMethodFlag === '1').length > 0 ? false : true\r\n\r\n // タブ名称ラベル\r\n const tabNameString = getClassificationValueLabels(\r\n 'reservationStatusList.classification.tabValue',\r\n tabs\r\n )\r\n\r\n const repTabName: {value: string; label: string;}[] = []\r\n for (const user of tabNameString) {\r\n if ((acceptNoticeStatus === '1' || acceptNoticeStatus === '2') && user.value === '4') {\r\n continue\r\n }\r\n\r\n if(user.value === '3') {\r\n const strRepValues = user.label.split(SeparateString)\r\n const strValue = interviewMethodAllZero ? strRepValues[0] : strRepValues[1]\r\n const repUser: {value: string; label: string;} = user\r\n \r\n // repUser = user\r\n repUser.label = strValue\r\n repTabName.push(repUser);\r\n } else {\r\n repTabName.push(user);\r\n }\r\n }\r\n\r\n // タブ内0件メッセージ\r\n const getNoDataMessage = () => {\r\n let noDataMessageKey: string;\r\n\r\n if (activeTabValue === tabValue.reservation) {\r\n noDataMessageKey = 'reservationStatusList.text.noReservation';\r\n } else if (activeTabValue === tabValue.interview) {\r\n if (interviewMethodAllZero) {\r\n noDataMessageKey = 'reservationStatusList.text.noInterview';\r\n } else {\r\n noDataMessageKey = 'reservationStatusList.text.noInterviewAdvance';\r\n }\r\n } else if (activeTabValue === tabValue.lotteryReservation) {\r\n noDataMessageKey = 'reservationStatusList.text.noLotteryReservation';\r\n } else if (activeTabValue === tabValue.acceptNotice) {\r\n noDataMessageKey = 'reservationStatusList.text.noAcceptNotice';\r\n } else {\r\n noDataMessageKey = 'reservationStatusList.text.noData';\r\n }\r\n\r\n return translate(noDataMessageKey);\r\n }\r\n\r\n if (contents == null) {\r\n return null\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {/** お子様選択 */}\r\n {translate('reservationStatusList.label.selectionChild')}\r\n \r\n \r\n \r\n {/* 予約状況確認画面へのリンク */}\r\n \r\n \r\n {translate('reservationStatusList.label.usageHistoryCheck')}\r\n \r\n \r\n {/** タブ選択 */}\r\n \r\n \r\n \r\n {/** 検索項目 */}\r\n {activeTabValue === tabValue.reservation && (\r\n \r\n \r\n \r\n )}\r\n {/** 予約カード */}\r\n \r\n \r\n {contents.length ? (\r\n {contents}\r\n ) : (\r\n \r\n {getNoDataMessage()}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n )\r\n}\r\n","import { useEffect } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { ValueType } from '../../utils/typeUtil'\r\nimport { getHttpStatusCodeLabel } from '../common/codeMaster'\r\nimport { httpStatusCode } from '../common/constant/classification'\r\nimport { reset } from '../common/store/slices/application'\r\nimport { detectLoginStatus } from '../common/store/slices/authority'\r\n\r\nexport const useAction = (statusCode?: ValueType) => {\r\n const dispatch = useDispatch()\r\n useEffect(() => {\r\n dispatch(reset({ isKeepAuthority: true }))\r\n dispatch(detectLoginStatus())\r\n }, [])\r\n const statusLabel = getHttpStatusCodeLabel(statusCode)\r\n const subTitleContent = [statusCode, statusLabel].filter((v) => v).join(' ')\r\n\r\n return {\r\n subTitleContent,\r\n }\r\n}\r\n","import { Box, Grid, Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { rootUrl } from '../../containers/common/constant/appUrl'\r\nimport { httpStatusCode } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/systemError/systemErrorService'\r\nimport { translate } from '../../i18n'\r\nimport { ValueType } from '../../utils/typeUtil'\r\nimport { Link } from '../components/common/link'\r\nimport { PageTitle } from '../components/common/pageTitle'\r\n\r\ninterface SystemErrorProps {\r\n statusCode?: ValueType\r\n}\r\n\r\nconst ErrorContentItem = styled(Grid)({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const SystemError = (props: SystemErrorProps) => {\r\n const { subTitleContent } = useAction(props.statusCode)\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {subTitleContent && `(${subTitleContent})`}\r\n \r\n \r\n {translate('systemError.text.content')}\r\n \r\n \r\n {/* クライアントコードを最新化させるためにリロードを伴った遷移をさせる */}\r\n {translate('system.text.backToHome')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { useCallback } from 'react'\r\nimport { translate } from '../../../../i18n'\r\nimport { ButtonOutlinedResponsive } from './buttonOutlinedResponsive'\r\n\r\ninterface WindowCloseButtonProps {\r\n className?: string\r\n}\r\n\r\n/**\r\n * ウィンドウを閉じるボタン\r\n */\r\nexport const WindowCloseButton = (props: WindowCloseButtonProps) => {\r\n const closeWindow = useCallback(() => {\r\n window.close()\r\n }, [])\r\n\r\n return (\r\n \r\n {translate('system.button.close')}\r\n \r\n )\r\n}\r\n","import { useHistory } from 'react-router-dom'\nimport { useAction } from '../../containers/termsOfUse/termsOfUseService'\nimport { Stack, styled } from '@mui/material'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { WindowCloseButton } from '../components/common/buttons/windowCloseButton'\nimport { SubTitle } from '../components/common/subTitle'\n\nconst Content = styled('div')({\n whiteSpace: 'pre-wrap',\n})\n\nexport const TermsOfService = () => {\n const { termsOfService } = useAction();\n const history = useHistory()\n \n const isOpenedNewTab = history.length === 1;\n\n return (\n \n \n {termsOfService}\n \n {isOpenedNewTab ? : }\n \n \n );\n}","import { useSelector } from 'react-redux'\nimport { selectSystemControl } from '../../containers/common/store/slices/systemControl'\n\nexport const useAction = () => {\n const termsOfService = useSelector(selectSystemControl).termsOfService\n \n return { termsOfService }\n}","import { Box, Grid, Stack, styled } from '@mui/material'\r\nimport React from 'react'\r\nimport { rootUrl } from '../../containers/common/constant/appUrl'\r\nimport { translate } from '../../i18n'\r\nimport { Link } from '../components/common/link'\r\nimport { PageTitle } from '../components/common/pageTitle'\r\n\r\nconst ErrorContentItem = styled(Grid)({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const TransitionInconsistency = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {translate('transitionInconsistency.text.content')}\r\n \r\n \r\n {translate('system.text.backToHome')}\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import { styled } from '@mui/material'\r\nimport { rootUrl } from '../../containers/common/constant/appUrl'\r\nimport { useAction } from '../../containers/underMaintenance/underMaintenanceService'\r\nimport { translate } from '../../i18n'\r\nimport { AttentionLabel } from '../components/common/attentionLabel'\r\nimport { CenterGItem, GContainer, GItemContainer } from '../components/common/grids'\r\nimport { Link } from '../components/common/link'\r\nimport { TitleLabel } from '../components/common/titleLabel'\r\n\r\nconst MessageItem = styled(CenterGItem)({\r\n whiteSpace: 'pre-wrap',\r\n textAlign: 'center',\r\n})\r\n\r\nexport const UnderMaintenance = () => {\r\n const { maintenanceMessage } = useAction()\r\n if (maintenanceMessage == null) {\r\n return null\r\n }\r\n return (\r\n \r\n \r\n {maintenanceMessage.title ?? translate('underMaintenance.title.underMaintenance')}\r\n \r\n \r\n \r\n {maintenanceMessage.maintenanceDatetimeTitle ?? translate('underMaintenance.title.maintenanceDatetime')}\r\n \r\n \r\n {maintenanceMessage.maintenanceDatetime}\r\n \r\n \r\n {maintenanceMessage.message ?? translate('underMaintenance.text.message')}\r\n \r\n {/* クライアントコードを最新化させるためにリロードを伴った遷移をさせる */}\r\n {translate('system.text.backToHome')}\r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory } from 'react-router-dom'\r\nimport { getNow } from '../../utils/dateUtil'\r\nimport { errorUrls, rootUrl } from '../common/constant/appUrl'\r\nimport { maintenanceMessagePath } from '../common/constant/processEnv'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { showLoading } from '../common/store/slices/application'\r\n\r\ninterface LocationState {\r\n /** メンテナンスメッセージが無ければHOMEへ遷移 */\r\n isHomeTransition?: boolean\r\n}\r\n\r\ninterface MaintenanceMessage {\r\n title?: string\r\n maintenanceDatetimeTitle?: string\r\n maintenanceDatetime: string\r\n message?: string\r\n}\r\n\r\n/** メンテナンスメッセージ再取得間隔(ms) */\r\nconst pollingTime = 10 * 60 * 1000\r\n\r\nconst isMaintenanceMessage = (obj: any): obj is MaintenanceMessage =>\r\n obj != null && 'maintenanceDatetime' in obj && typeof obj.maintenanceDatetime === 'string'\r\n\r\nexport const useAction = () => {\r\n const history = useHistory()\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n\r\n const [identifier, setIdentifier] = useState(getNow())\r\n const [maintenanceMessage, setmaintenanceMessage] = useState()\r\n\r\n const isHomeTransition = !!history.location.state?.isHomeTransition\r\n\r\n const goUnknownError = useCallback(() => {\r\n history.replace(errorUrls.unknown.url())\r\n }, [])\r\n const goHome = useCallback(() => {\r\n // クライアントコードを最新化させるためにリロードを伴った遷移をさせる\r\n window.location.href = rootUrl.url()\r\n }, [])\r\n\r\n const loadMessage = useCallback(async (messageUrl: string, isHomeTransition: boolean) => {\r\n try {\r\n // キャッシュするとS3を変更しても取得しにいかない為 no-cache を付ける\r\n const response = await fetch(messageUrl, { cache: 'no-cache' })\r\n const messageObj = await response.json()\r\n if (isMaintenanceMessage(messageObj)) {\r\n setmaintenanceMessage(messageObj)\r\n }\r\n } catch (e) {\r\n // メンテナンスメッセージファイルが配置されていない場合は、\r\n // メンテナンス開始されていない状態とみなす\r\n console.error('メンテナンスメッセージ取得失敗', { e, isHomeTransition })\r\n if (isHomeTransition) {\r\n // メンテナンスメッセージ再取得で\r\n // メンテナンスメッセージファイルが無ければメンテナンス解除とし\r\n // HOMEへ遷移させる\r\n goHome()\r\n } else {\r\n // メンテナンスメッセージ再取得以外で\r\n // メンテナンスメッセージファイルが無ければ予期せぬエラーなので\r\n // システムエラーページへ遷移させる\r\n goUnknownError()\r\n }\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n const messageUrl = maintenanceMessagePath\r\n if (!messageUrl) {\r\n console.error('メンテナンスメッセージパス設定無し')\r\n goUnknownError()\r\n return\r\n }\r\n let timeoutId: number | undefined\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n if (!messageUrl) {\r\n // 型ガード\r\n return\r\n }\r\n await loadMessage(messageUrl, isHomeTransition)\r\n timeoutId = window.setTimeout(() => setIdentifier(getNow()), pollingTime)\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n return () => {\r\n clearTimeout(timeoutId)\r\n }\r\n }, [identifier])\r\n\r\n useEffect(() => {\r\n history.replace({ ...history.location, state: { isHomeTransition: true } })\r\n }, [])\r\n\r\n return {\r\n maintenanceMessage,\r\n }\r\n}\r\n","type Key = string | number | symbol\n\n/**\n * 指定のキーを元にグループ化\n *\n * @param array\n * @param key\n * @returns\n */\nexport const groupBy = >(array: T[], key: keyof T): Record => {\n return array.reduce((result: Record, currentValue: T) => {\n const groupKey = currentValue[key] as unknown as string\n\n if (!result[groupKey]) {\n result[groupKey] = []\n }\n\n result[groupKey].push(currentValue)\n\n return result\n }, {})\n}\n","import { executePost, executePut } from '../common/apiCaller'\nimport {\n PostIssuableFacilityIdsDto,\n PostIssuableFacilityIdsInputDto,\n PostCreatePdfDto,\n PostCreatePdfInputDto,\n PostDownloadPdfUrlDto,\n PostDownloadPdfUrlInputDto,\n PutCertificateDetailInputDto,\n} from '../dto/certificateDto'\n\nconst apiName = 'public'\nconst apiPath = '/certificate'\n\nexport const executePostCreateCertificatePdf = (input: PostCreatePdfInputDto) => {\n return executePost(apiName, `${apiPath}/create`, input)\n}\nexport const executePostDownloadCertificatePdfUrl = (input: PostDownloadPdfUrlInputDto) => {\n return executePost(apiName, `${apiPath}/pdf`, input)\n}\nexport const executePutCertificateDetail = (input: PutCertificateDetailInputDto) => {\n return executePut(apiName, `${apiPath}/detail`, input)\n}\nexport const executePostIssuableFacilityIds = (input: PostIssuableFacilityIdsInputDto) => {\n return executePost(apiName, `${apiPath}/issuable-facility-ids`, input)\n}\n","export const STATUS_CODE = {\n OK: 0\n} as const\nexport type STATUS_CODE = (typeof STATUS_CODE)[keyof typeof STATUS_CODE]\n","import { useCallback, useState } from 'react'\nimport { useDispatch } from 'react-redux'\nimport {\n executePostCreateCertificatePdf,\n executePostDownloadCertificatePdfUrl,\n executePutCertificateDetail,\n} from '../../dataAccess/webApi/dao/certificateDao'\nimport { PutCertificateDetailInputDto } from '../../dataAccess/webApi/dto/certificateDto'\nimport { downloadFile } from '../../utils/reactUtil'\nimport { STATUS_CODE } from '../common/constant/statusCode'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading } from '../common/store/slices/application'\nimport { Load, PageState, tabValue } from '../usageHistory/usageHistoryService'\n\ntype UseProvisionCertificateIssuanceReturn = {\n provisionCertificateIssuanceShowFlag: boolean\n onClickIssueProvisionCertificateIssuance: () => void\n provisionCertificateIssuanceHandler: () => void\n cancelHandler: () => void\n certificateResultCode: number | null\n certificateResultResponseData: CertificateResultResponseData\n resetCertificateResultResponse: () => void\n}\n\ntype UseProvisionCertificateIssuanceArg = {\n childId: string\n usageFromDate: string\n state: PageState\n facilityIds: string[]\n load: Load\n}\n\ntype UseProvisionCertificateIssuance = (\n arg: UseProvisionCertificateIssuanceArg\n) => UseProvisionCertificateIssuanceReturn\n\ntype CertificateResultResponseData = {\n facilityId: string\n facilityName: string\n} | null\n\nexport const useProvisionCertificateIssuance: UseProvisionCertificateIssuance = ({\n childId,\n usageFromDate,\n state,\n facilityIds,\n load,\n}) => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n\n const [provisionCertificateIssuance, setProvisionCertificateIssuance] = useState<\n PutCertificateDetailInputDto | undefined\n >(undefined)\n const [provisionCertificateIssuanceShowFlag, setProvisionCertificateIssuanceShowFlag] = useState(false)\n const [certificateResultCode, setCertificateResultCode] = useState(null)\n const [certificateResultResponseData, setCertificateResultResponseData] =\n useState(null)\n\n const onClickIssueProvisionCertificateIssuance = useCallback(() => {\n setProvisionCertificateIssuance({\n childId,\n usageFromDate,\n facilityIds,\n })\n\n setProvisionCertificateIssuanceShowFlag(true)\n }, [childId, usageFromDate, facilityIds])\n\n const provisionCertificateIssuanceHandler = useCallback(() => {\n if (!provisionCertificateIssuance) return\n setProvisionCertificateIssuanceShowFlag(false)\n resetCertificateResultResponse()\n\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n // NOTE: 1. 登録処理\n const resProvisionCertificateIssuanceCreateDetail = await executePutCertificateDetail(\n provisionCertificateIssuance\n )\n\n if (resProvisionCertificateIssuanceCreateDetail?.resultCode !== STATUS_CODE.OK) {\n setCertificateResultCode(resProvisionCertificateIssuanceCreateDetail.resultCode)\n\n if (resProvisionCertificateIssuanceCreateDetail.result) {\n setCertificateResultResponseData(resProvisionCertificateIssuanceCreateDetail.result)\n }\n\n return\n }\n\n // NOTE: 2. PDF作成処理\n const resCreatePdf = await executePostCreateCertificatePdf(provisionCertificateIssuance)\n\n if (resCreatePdf.resultCode !== STATUS_CODE.OK) {\n throw new Error('データの作成に失敗しました。')\n }\n\n // NOTE: 3. PDFダウンロード処理\n const downloadPdfUrlInput = {\n downloadFile: resCreatePdf.result.createCertificates,\n }\n const resDownloadPdfUrl = await executePostDownloadCertificatePdfUrl(downloadPdfUrlInput)\n\n downloadFile(resDownloadPdfUrl.result.url)\n load(\n false, \n state.activeYyyymm, \n state.childs, \n state.activeStatusSearchCondition, \n tabValue.reservation,\n [],\n state.activeChildId\n )\n }),\n isHiddenMain: false,\n })\n )\n }, [\n dispatch,\n errorHandle,\n provisionCertificateIssuance,\n load,\n state.activeYyyymm,\n state.childs,\n state.activeStatusSearchCondition,\n state.activeChildId,\n ])\n\n const cancelHandler = useCallback(() => {\n setProvisionCertificateIssuance(undefined)\n setProvisionCertificateIssuanceShowFlag(false)\n }, [])\n\n const resetCertificateResultResponse = useCallback(() => {\n setCertificateResultCode(null)\n setCertificateResultResponseData(null)\n }, [setCertificateResultCode, setCertificateResultResponseData])\n\n return {\n provisionCertificateIssuanceShowFlag,\n onClickIssueProvisionCertificateIssuance,\n provisionCertificateIssuanceHandler,\n cancelHandler,\n certificateResultCode,\n certificateResultResponseData,\n resetCertificateResultResponse,\n }\n}\n","import { SelectChangeEvent } from '@mui/material'\nimport { addMonths, isAfter, isSameMonth, parse, startOfMonth, subMonths } from 'date-fns'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory } from 'react-router-dom'\nimport { useForm } from 'react-hook-form'\nimport { executeGetUsageRecords } from '../../dataAccess/webApi/dao/usageRecordsDao'\nimport { GetUsageRecordsDto } from '../../dataAccess/webApi/dto/usageRecordsDto'\nimport { groupBy } from '../../utils/arrayUtil'\nimport { formatHyphenYmd, fromApiYmd, fromApiYmdHms, getNow, toApiYm, formatDate } from '../../utils/dateUtil'\nimport { nullPropsToUndefined, undefinedPropsToNull } from '../../utils/objectUtil'\nimport { formatLocaleTimeAmountHm } from '../../utils/timeUtil'\nimport { ChildrenChoice, getChildrenChoices } from '../common/child'\nimport { \n usageHistoryStatusSearchCondition, \n yesNo, \n LotteryReservationStatus, \n lotteryReservationStauts\n} from '../common/constant/classification'\nimport { PROVISION_CERTIFICATE_USER_REISSUE_STATUS } from '../common/constant/commonConstant'\nimport { OperationId } from '../common/constant/operationLog'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { useOperationLog } from '../common/operationLog'\nimport { showLoading } from '../common/store/slices/application'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\nimport { useProvisionCertificateIssuance } from '../provisionCertificateIssuance/useProvisionCertificateIssuance'\nimport { executePostIssuableFacilityIds } from '../../dataAccess/webApi/dao/certificateDao'\nimport { executePostFacilityIdsHaveUnsettledAndConfirmReservations } from '../../dataAccess/webApi/dao/reservationsDao'\nimport { useControl } from '../common/useControl'\nimport { executeGetLotteryReservationHistroies } from '../../dataAccess/webApi/dao/lotteryReservationsDao'\nimport { GetLotteryReservationsDto } from '../../dataAccess/webApi/dto/lotteryReservationsDto'\n\ntype GetUsageHistoriesReturnType = Awaited>\n\n// タブの選択値\nexport const tabValue = {\n reservation: '1',\n lotteryReservation: '2'\n} as const;\ntype TabValue = typeof tabValue [keyof typeof tabValue];\n\ninterface LocationState {\n // アクティブな年月の値 \n yyyymm?: Date\n // アクティブなお子さまID\n childId?: string\n // アクティブな利用予約の検索条件\n statusSearchCondition?: string\n // アクティブなタブの値\n tabValue?: TabValue\n // アクティブなタブの値\n lotteryStatuses?: LotteryReservationStatus[]\n}\n\ntype UsageHistory = Omit & {\n usageDate: Date\n useFromDatetime: Date\n useToDatetime: Date\n usageMinute?: string\n}\n\ntype LotteryHistory =Omit & {\n usageDate: Date\n useFromDatetime: Date\n useToDatetime: Date\n}\n\nexport interface PageState {\n activeYyyymm: Date\n activeStatusSearchCondition: string\n childs: ChildrenChoice[]\n shouldShowDownloadCertificate: boolean\n facilityIds: string[]\n activeTabValue: TabValue\n activeStatuses: LotteryReservationStatus[]\n activeChildId?: string\n usageHistories?: UsageHistory[]\n lotteryHistories?: LotteryHistory[]\n tabs: typeof tabValue[keyof typeof tabValue][]\n}\n\nexport type Load = (\n isInitialize: boolean,\n activeYyyymm: Date,\n loadedChilds: { value: string; label: string }[],\n activeStatusSearchCondition: string,\n activeTabValue: TabValue,\n activeStatuses: LotteryReservationStatus[],\n activeChildId?: string,\n) => void\n\ninterface Inputs {\n statusSearchCondition: string[]\n}\n\nexport const useAction = () => {\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const { addOperationLog } = useOperationLog()\n const history = useHistory()\n const sysCtrl = useSelector(selectSystemControl)\n const formMethods = useForm()\n\n const locationState = history.location.state\n\n const [state, setState] = useState({\n activeYyyymm: locationState?.yyyymm ?? startOfMonth(getNow()),\n activeChildId: locationState?.childId,\n activeStatusSearchCondition: locationState?.statusSearchCondition ?? usageHistoryStatusSearchCondition.usedOnly,\n childs: [],\n shouldShowDownloadCertificate: false,\n facilityIds: [],\n activeTabValue: locationState?.tabValue ?? tabValue.reservation,\n activeStatuses: locationState?.lotteryStatuses?? [lotteryReservationStauts.WIN, lotteryReservationStauts.LOSE],\n tabs: []\n })\n\n const { getControl } = useControl({})\n\n const load = useCallback(\n (\n isInitialize, \n activeYyyymm, \n loadedChilds, \n activeStatusSearchCondition,\n activeTabValue,\n activeStatuses,\n activeChildId\n ) => {\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n await getControl()\n\n let callGetUsageHistroies\n let callGetLotteryHistories\n\n switch (activeTabValue) {\n case (tabValue.reservation):\n callGetUsageHistroies = getUsageHistories(activeYyyymm, activeStatusSearchCondition, activeChildId)\n break\n case (tabValue.lotteryReservation):\n callGetLotteryHistories = getLotteryHistories(activeYyyymm, activeStatuses, activeChildId)\n break\n default:\n console.log('wrong tab selection');\n }\n\n const provisionCertificateUserReissueStatus = sysCtrl.provisionCertificateUserReissueStatus\n const [childs, usageHistories, lotteryHistories] = await Promise.all([\n isInitialize ? getChildrenChoices() : loadedChilds,\n callGetUsageHistroies,\n callGetLotteryHistories\n ])\n\n let facilityIds: string[] = [];\n let shouldShowDownloadCertificate = false;\n\n\n if (activeTabValue === tabValue.reservation) {\n const filteredUsageHistories = usageHistories?.filter(\n (usageHistory) => usageHistory.certificateFlag === yesNo.yes\n )\n\n if (filteredUsageHistories) {\n // 発行可能施設\n facilityIds = await getIssuableFacilityId(\n filteredUsageHistories,\n activeChildId,\n activeYyyymm,\n provisionCertificateUserReissueStatus\n )\n\n // 発行ボタン表示フラグ\n shouldShowDownloadCertificate = getShouldShowDownloadCertificate(\n filteredUsageHistories,\n provisionCertificateUserReissueStatus,\n facilityIds\n ) \n }\n }\n\n const tabs: typeof tabValue[keyof typeof tabValue][] = Object.values(tabValue).filter(value => {\n return value !== tabValue.lotteryReservation || (sysCtrl.lotteryDisplayFlag === yesNo.yes && sysCtrl.lotteryFlag === yesNo.yes);\n });\n\n setState({\n activeChildId,\n activeYyyymm,\n usageHistories,\n childs,\n activeStatusSearchCondition,\n shouldShowDownloadCertificate,\n facilityIds,\n activeTabValue,\n activeStatuses,\n lotteryHistories,\n tabs\n })\n }),\n isHiddenMain: isInitialize,\n })\n )\n },\n [dispatch, errorHandle, getControl, sysCtrl.provisionCertificateUserReissueStatus]\n )\n\n const {\n provisionCertificateIssuanceShowFlag,\n onClickIssueProvisionCertificateIssuance,\n provisionCertificateIssuanceHandler,\n cancelHandler,\n certificateResultCode,\n certificateResultResponseData,\n resetCertificateResultResponse,\n } = useProvisionCertificateIssuance({\n childId: state.activeChildId ?? '',\n usageFromDate: formatHyphenYmd(state.activeYyyymm),\n facilityIds: state.facilityIds,\n state,\n load,\n })\n\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000001 })\n\n load(\n true, \n state.activeYyyymm, \n state.childs, \n state.activeStatusSearchCondition, \n state.activeTabValue,\n state.activeStatuses,\n state.activeChildId\n )\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n useEffect(() => {\n // 戻るで表示した際にアクティブな選択を復元する為に履歴に保管\n history.replace({\n ...history.location,\n state: {\n yyyymm: state.activeYyyymm,\n childId: state.activeChildId,\n statusSearchCondition: state.activeStatusSearchCondition,\n tabValue: state.activeTabValue,\n lotteryStatuses: state.activeStatuses\n },\n })\n }, [\n state.activeChildId, \n state.activeYyyymm, \n state.activeStatusSearchCondition,\n state.activeTabValue,\n state.activeStatuses\n ])\n\n useEffect(() => {\n resetCertificateResultResponse()\n }, [state, resetCertificateResultResponse])\n\n const changeChild = useCallback(\n (event: SelectChangeEvent) => {\n addOperationLog({ operationId: OperationId.OP_00000028 })\n\n load(\n false, \n state.activeYyyymm, \n state.childs, \n state.activeStatusSearchCondition, \n state.activeTabValue,\n state.activeStatuses,\n event.target.value\n )\n },\n [state.activeYyyymm, state.childs, state.activeStatusSearchCondition, addOperationLog]\n )\n\n const changeMonth = useCallback(\n (value: Date) => {\n load(\n false, \n value, \n state.childs, \n state.activeStatusSearchCondition, \n state.activeTabValue,\n state.activeStatuses,\n state.activeChildId\n )\n },\n [state]\n )\n\n const previousMonth = useCallback(() => {\n changeMonth(subMonths(state.activeYyyymm, 1))\n }, [state])\n\n const nextMonth = useCallback(() => {\n changeMonth(addMonths(state.activeYyyymm, 1))\n }, [state])\n\n const statusSearchConditionChangeHandle = useCallback(\n (event: SelectChangeEvent) => {\n load(\n false, \n state.activeYyyymm, \n state.childs, \n event.target.value, \n state.activeTabValue,\n state.activeStatuses,\n state.activeChildId\n )\n },\n [state]\n )\n\n const changeTab = useCallback(\n (value: TabValue) => {\n switch (value) {\n case (tabValue.reservation):\n addOperationLog({ operationId: OperationId.OP_00000042 })\n break\n case (tabValue.lotteryReservation):\n addOperationLog({ operationId: OperationId.OP_00000169 })\n break\n default:\n console.log('wrong tab selection');\n }\n\n load(\n false, \n state.activeYyyymm, \n state.childs, \n state.activeStatusSearchCondition, \n value,\n state.activeStatuses,\n state.activeChildId\n )\n },\n [state, addOperationLog]\n )\n\n const changeLotteryStatus = useCallback((values: string[]) => {\n if (state.activeTabValue === tabValue.reservation) return;\n\n load(\n false, \n state.activeYyyymm, \n state.childs, \n state.activeStatusSearchCondition, \n state.activeTabValue,\n values as LotteryReservationStatus[],\n state.activeChildId\n )\n }, [state])\n\n const dateChecker = useCallback(() => {\n const results: boolean[] = []\n\n // NOTE: 選択している月が過去月か\n const now = getNow()\n const startOfCurrentMonth = new Date(now.getFullYear(), now.getMonth())\n results.push(state.activeYyyymm < startOfCurrentMonth)\n\n /**\n * NOTE: 提供証明書出力可能年月が設定されているか\n * 設定されている場合は表示年月と比較をする\n *\n * @example 提供証明書出力可能年月 > 表示年月 = false\n * 提供証明書出力可能年月 =< 表示年月 = true\n */\n if (sysCtrl.issuableDate) {\n const issuableDate = parse(sysCtrl.issuableDate, 'yyyy/MM', new Date())\n results.push(isAfter(state.activeYyyymm, issuableDate) || isSameMonth(issuableDate, state.activeYyyymm))\n }\n\n return results.every((result) => result)\n }, [state.activeYyyymm, sysCtrl])\n\n return {\n ...state,\n changeChild,\n previousMonth,\n nextMonth,\n statusSearchConditionChangeHandle,\n provisionCertificateIssuanceShowFlag,\n onClickIssueProvisionCertificateIssuance,\n provisionCertificateIssuanceHandler,\n cancelHandler,\n certificateResultCode,\n certificateResultResponseData,\n provisionCertificateFeatureStatus: sysCtrl.provisionCertificateFeatureStatus,\n paymentStatusFlag: sysCtrl.paymentStatusFlag,\n provisionCertificatePaymentStatusFlag: sysCtrl.provisionCertificatePaymentStatusFlag,\n dateChecker,\n changeTab,\n changeLotteryStatus,\n control: formMethods.control\n }\n}\n\nconst getUsageHistories = async (yyyymm: Date, activeStatusSearchCondition: string, childId?: string) => {\n const response = await executeGetUsageRecords({\n ...undefinedPropsToNull({ yyyymm: toApiYm(yyyymm), childId }),\n ...(activeStatusSearchCondition === usageHistoryStatusSearchCondition.usedOnly && { usedOnlyGetFlag: yesNo.yes }),\n })\n\n return response.result.map((usage) => {\n const { usageDate, useFromDatetime, useToDatetime, usageMinute, ...other } = usage\n return nullPropsToUndefined({\n ...other,\n usageDate: fromApiYmd(usageDate),\n useFromDatetime: fromApiYmdHms(useFromDatetime),\n useToDatetime: fromApiYmdHms(useToDatetime),\n usageMinute: formatLocaleTimeAmountHm(usageMinute),\n })\n })\n}\n\nconst getLotteryHistories = async (targetYearMonth: Date, statuses?: LotteryReservationStatus[], childId?: string) => {\n const response = await executeGetLotteryReservationHistroies({\n targetYearMonth: formatDate(targetYearMonth, 'yyyy-MM'), \n statuses, \n childId\n });\n return response.result.map((reservation) => {\n const { usageDate, useFromDatetime, useToDatetime, ...other } = reservation\n return nullPropsToUndefined({\n ...other,\n usageDate: fromApiYmd(usageDate),\n useFromDatetime: fromApiYmdHms(useFromDatetime),\n useToDatetime: fromApiYmdHms(useToDatetime),\n })\n })\n}\n\n/**\n * 発行可能な施設IDを返す\n *\n * @param usageHistories GetUsageHistoriesReturnType\n * @param activeChildId string | null\n * @param activeYyyymm Date\n * @param provisionCertificateUserReissueStatus PROVISION_CERTIFICATE_USER_REISSUE_STATUS\n * @returns string[]\n */\nconst getIssuableFacilityId = async (\n usageHistories: GetUsageHistoriesReturnType,\n activeChildId: string | undefined,\n activeYyyymm: Date,\n provisionCertificateUserReissueStatus: PROVISION_CERTIFICATE_USER_REISSUE_STATUS\n) => {\n const facilityIds =\n Array.from(\n new Set(\n usageHistories\n ?.filter(\n (usageHistory) =>\n usageHistory.certificateFlag === yesNo.yes && usageHistory.issueCertificateFlag === yesNo.yes\n )\n .map((usageHistory) => usageHistory.facilityId)\n )\n ) ?? []\n const filteredFacilityIds: string[] = []\n const facilityIdsHaveUnsettledAndConfirmReservations: string[] = []\n\n if (activeChildId) {\n const targetDate = formatHyphenYmd(activeYyyymm)\n\n if (\n facilityIds.length > 0 &&\n (provisionCertificateUserReissueStatus === PROVISION_CERTIFICATE_USER_REISSUE_STATUS.REISSUE_ALLOWED ||\n provisionCertificateUserReissueStatus === PROVISION_CERTIFICATE_USER_REISSUE_STATUS.REISSUE_DISABLED)\n ) {\n const issuableFacilityIdsRes = await executePostIssuableFacilityIds({\n usageFromDate: targetDate,\n childId: activeChildId,\n facilityIds,\n })\n\n filteredFacilityIds.push(\n ...facilityIds.filter((facilityId) => {\n const length = issuableFacilityIdsRes.result.facilityIds.filter((item) => item === facilityId).length\n\n return provisionCertificateUserReissueStatus === PROVISION_CERTIFICATE_USER_REISSUE_STATUS.REISSUE_ALLOWED\n ? length >= 0 && length <= 1\n : length === 0\n })\n )\n } else filteredFacilityIds.push(...facilityIds)\n\n // NOTE: 未確定・確定済みの予約が存在する施設IDを取得\n const facilityIdsHaveUnsettledAndConfirmReservationsRes =\n await executePostFacilityIdsHaveUnsettledAndConfirmReservations({\n targetDate,\n childId: activeChildId,\n })\n facilityIdsHaveUnsettledAndConfirmReservations.push(\n ...facilityIdsHaveUnsettledAndConfirmReservationsRes.result.facilityIds\n )\n }\n\n // NOTE: 未確定・確定済みの予約が存在しない施設IDのみ返す\n return filteredFacilityIds.filter(\n (facilityId) => !facilityIdsHaveUnsettledAndConfirmReservations.includes(facilityId)\n )\n}\n\n/**\n * 提供証明書発行ボタン表示フラグを返す\n *\n * @param usageHistories GetUsageHistoriesReturnType\n * @param provisionCertificateUserReissueStatus PROVISION_CERTIFICATE_USER_REISSUE_STATUS\n * @param facilityIds string[]\n * @returns boolean\n */\nconst getShouldShowDownloadCertificate = (\n usageHistories: GetUsageHistoriesReturnType,\n provisionCertificateUserReissueStatus: PROVISION_CERTIFICATE_USER_REISSUE_STATUS,\n facilityIds: string[]\n) => {\n const usageHistoriesGroupByFacilityId = groupBy(usageHistories, 'facilityId')\n const shouldShowDownloadCertificateResult: boolean[] = []\n Object.keys(usageHistoriesGroupByFacilityId).forEach((facilityId) => {\n const targetUsageHistories = usageHistoriesGroupByFacilityId[facilityId]\n\n shouldShowDownloadCertificateResult.push(\n provisionCertificateUserReissueStatus === PROVISION_CERTIFICATE_USER_REISSUE_STATUS.DIFFERENCE_ALLOWED\n ? targetUsageHistories.some((usageHistory) => usageHistory.issueCertificateFlag === yesNo.yes)\n : targetUsageHistories.every((usageHistory) => usageHistory.issueCertificateFlag === yesNo.yes)\n )\n })\n\n return (\n usageHistories\n .filter(\n (usageHistory) => usageHistory.certificateFlag === yesNo.yes && usageHistory.issueCertificateFlag === yesNo.yes\n )\n .map((usageHistory) => usageHistory.facilityId).length > 0 &&\n shouldShowDownloadCertificateResult.some((result) => result) &&\n facilityIds.length > 0\n )\n}\n","import { FC } from 'react'\nimport { Dialog, DialogContent } from '../common/dialog'\nimport { Stack, styled } from '@mui/material'\nimport { translate } from '../../../i18n'\nimport { TitleLabel } from '../common/titleLabel'\nimport { FlexboxCenter } from '../common/flexboxes'\nimport { ButtonS } from '../common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../common/buttons/buttonOutlinedS'\n\ntype DownloadDialogProps = {\n title: string\n isOpen: boolean\n onClose: () => void\n onSubmit: () => void\n}\n\nconst ButtonWrap = styled('div')({\n display: 'grid',\n gridAutoFlow: 'column',\n columnGap: '12px',\n paddingLeft: '1rem',\n paddingRight: '1rem',\n})\nconst StyledDialogContent = styled(DialogContent)({\n paddingLeft: 8,\n paddingRight: 8,\n})\nconst StyledTitle = styled(TitleLabel)({\n paddingLeft: '1rem',\n paddingRight: '1rem',\n})\n\nexport const DownloadDialog: FC = ({ title, isOpen, onClose, onSubmit }) => {\n return (\n \n {translate('usageHistory.dialog.button.no')}\n {translate('usageHistory.dialog.button.yes')}\n \n }\n contentComponent={StyledDialogContent}\n >\n \n \n {title}\n \n \n \n )\n}\n","import { Grid, Stack, styled, Typography } from '@mui/material'\r\nimport { getUsageHistoryStatusSearchConditions } from '../../containers/common/codeMaster'\r\nimport { reservationStatusListUrl, rootUrl } from '../../containers/common/constant/appUrl'\r\nimport { OperationId } from '../../containers/common/constant/operationLog'\r\nimport {\r\n paymentStatus,\r\n provisionCertificateFeatureStatus,\r\n usageHistoryStatusSearchCondition,\r\n yesNo,\r\n} from '../../containers/common/constant/classification'\r\nimport { tabValue, useAction } from '../../containers/usageHistory/usageHistoryService'\r\nimport { getClassificationValueLabels, translate } from '../../i18n'\r\nimport { formatLocaleYm } from '../../utils/dateUtil'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonM } from '../components/common/buttons/buttonM'\r\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\nimport { CenterMiddleItem, LeftItem, MiddleItem, RightItem } from '../components/common/gridItems'\r\nimport { RadioButtonGroupNoBind } from '../components/common/inputs/radioButtonGroupNoBind'\r\nimport { SelectNoBind } from '../components/common/inputs/selectNoBind'\r\nimport { Link } from '../components/common/link'\r\nimport { UsageHistoryCard } from '../components/common/reservation/usageHistoryCard'\r\nimport { DownloadDialog } from '../components/provisionCertificateIssuance/downloadDialog'\r\nimport { TabBar } from '../components/common/tabBar'\r\nimport { LotteryReservationCard } from '../components/common/lotteryReservation/lotteryReservationCard'\r\nimport { CheckBoxSelections } from '../components/common/inputs/checkBoxSelections'\r\n\r\nconst NoResultMessageCard = styled('div')({\r\n padding: '20px 0',\r\n textAlign: 'center',\r\n})\r\n\r\nconst StyledTypography = styled(Typography)({\r\n paddingLeft: '1rem',\r\n paddingRight: '1rem',\r\n})\r\n\r\nconst MonthControl = (props: { yyyymm?: Date; previousMonth: () => void; nextMonth: () => void }) => {\r\n return (\r\n <>\r\n \r\n {`<${translate('usageHistory.text.previousMonth')}`}\r\n \r\n \r\n {props.yyyymm && formatLocaleYm(props.yyyymm)}\r\n \r\n \r\n {`${translate('usageHistory.text.nextMonth')}>`}\r\n \r\n \r\n )\r\n}\r\n\r\nexport const UsageHistory = () => {\r\n const {\r\n activeYyyymm,\r\n activeChildId,\r\n usageHistories,\r\n childs,\r\n activeStatusSearchCondition,\r\n tabs,\r\n changeChild,\r\n previousMonth,\r\n nextMonth,\r\n statusSearchConditionChangeHandle,\r\n provisionCertificateIssuanceShowFlag,\r\n onClickIssueProvisionCertificateIssuance,\r\n provisionCertificateIssuanceHandler,\r\n cancelHandler,\r\n certificateResultCode,\r\n certificateResultResponseData,\r\n provisionCertificateFeatureStatus: provisionCertificateFeatureStatusInCtrl,\r\n paymentStatusFlag,\r\n provisionCertificatePaymentStatusFlag,\r\n dateChecker,\r\n shouldShowDownloadCertificate,\r\n activeTabValue,\r\n activeStatuses,\r\n lotteryHistories,\r\n changeTab,\r\n changeLotteryStatus,\r\n control\r\n } = useAction()\r\n\r\n if (usageHistories === undefined && lotteryHistories === undefined) {\r\n return null\r\n }\r\n\r\n let message = ''\r\n let contents\r\n let showBottomArrows = true\r\n let searchContents = <>\r\n switch (activeTabValue) {\r\n case (tabValue.reservation):\r\n message = 'usageHistory.text.noUsageHistory'\r\n contents = usageHistories?.map((histroy) => )\r\n searchContents = (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {\r\n activeChildId && // お子様選択時\r\n usageHistories &&\r\n activeStatusSearchCondition === usageHistoryStatusSearchCondition.usedOnly && // 利用済みのみ選択時\r\n usageHistories.filter((usageHistory) => usageHistory.certificateFlag === yesNo.yes).length > 0 && // 提供証明書発行の対象となる施設の利用履歴が存在するとき\r\n provisionCertificateFeatureStatusInCtrl === provisionCertificateFeatureStatus.all && // 提供証明書機能を施設管理者と利用者で利用する場合\r\n (paymentStatusFlag === yesNo.no ||\r\n provisionCertificatePaymentStatusFlag === yesNo.no ||\r\n usageHistories\r\n .filter((usageHistory) => usageHistory.certificateFlag === yesNo.yes)\r\n .every((history) => history.paymentStatus === paymentStatus.collected)) &&\r\n dateChecker() &&\r\n shouldShowDownloadCertificate && (\r\n \r\n {translate('usageHistory.button.certificateIssued')}\r\n \r\n )}\r\n \r\n \r\n {!!certificateResultCode && (\r\n \r\n )}\r\n \r\n )\r\n break\r\n case (tabValue.lotteryReservation):\r\n message = 'usageHistory.text.noLotteryHistory'\r\n contents = lotteryHistories?.map((histroy) => )\r\n searchContents = (\r\n \r\n )\r\n break\r\n default:\r\n console.log('wrong tab selection');\r\n }\r\n\r\n if (!contents || contents.length === 0) {\r\n contents = {translate(message)}\r\n showBottomArrows = false\r\n }\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {/** お子様選択 */}\r\n {translate('usageHistory.label.selectionChild')}\r\n \r\n \r\n \r\n {/* 予約状況確認画面へのリンク */}\r\n \r\n \r\n {translate('usageHistory.label.reserveStatusCheck')}\r\n \r\n \r\n {/** タブ選択 */}\r\n {\r\n tabs.length > 1 && (\r\n \r\n void}\r\n />\r\n \r\n )\r\n }\r\n {/** 検索項目 */}\r\n \r\n {searchContents}\r\n \r\n {/** 年月選択 */}\r\n \r\n {/** 予約カード */}\r\n \r\n \r\n {contents}\r\n \r\n \r\n {showBottomArrows && }\r\n \r\n \r\n \r\n \r\n \r\n {translate('system.button.backToHome')}\r\n \r\n \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useDispatch } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\nimport { executeGetFacility } from '../../dataAccess/webApi/dao/facilitiesDao'\r\nimport { executeGetUsageRecord } from '../../dataAccess/webApi/dao/usageRecordsDao'\r\nimport { GetUseReasonDto } from '../../dataAccess/webApi/dto/useReasonDto'\r\nimport { fromApiYmd, fromApiYmdHms, toApiYmd, toApiHm } from '../../utils/dateUtil'\r\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\r\nimport { formatLocaleTimeAmountHm } from '../../utils/timeUtil'\r\nimport { facilityReservationSelectionCreateUrl } from '../common/constant/appUrl'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { showLoading } from '../common/store/slices/application'\r\nimport { getUseReason } from '../common/useReason'\r\nimport { openWindow } from '../../utils/reactUtil'\r\nimport { getUrlPathname, QueryParams } from '../common/transition'\r\nimport { ReceptViewUrlQueryParams } from '../receiptView/receiptViewService'\r\nimport { receiptViewUrl } from '../common/constant/appUrl'\r\nimport { GOING_DATETIME_DISPLAY_METHODS } from '../common/constant/projectMst'\r\n\r\ninterface UrlParams {\r\n reservationNo: string\r\n}\r\n\r\ninterface UsageDetail {\r\n facilityId: string\r\n facilityName: string\r\n usageDate: Date\r\n useFromDatetime: Date\r\n useToDatetime: Date\r\n goingToFacilityTime?: string\r\n goingHomeTime?: string\r\n status: string\r\n usageMinute?: string\r\n name: string\r\n kana: string\r\n tel: string\r\n email: string\r\n\r\n childId: string\r\n childName: string\r\n childKana: string\r\n\r\n useReasonCategory?: string\r\n useReasonDetailCategory?: string\r\n useReasonDetailDescription?: string\r\n lunchFlag: string\r\n snackFlag: string\r\n citizenNote?: string\r\n lunchCount?: number\r\n snackCount?: number\r\n\r\n amount?: number\r\n usageFee?: number\r\n useCouponFee?: number\r\n extentionFee?: number\r\n nightlyFee?: number\r\n lunchFee?: number\r\n snackFee?: number\r\n otherFee1?: number\r\n otherFee2?: number\r\n otherFee3?: number\r\n reduction?: number\r\n otherFeeDisplayName1?: string\r\n otherFeeDisplayName2?: string\r\n otherFeeDisplayName3?: string\r\n actualUpdateDatetime?: string\r\n usageReceiptViewMethod: string\r\n\r\n reservationCancelDatetime?: Date\r\n}\r\n\r\ninterface FacilityInfo {\r\n lunchAcceptFlag: string\r\n snackAcceptFlag: string\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { reservationNo } = useParams()\r\n const { addOperationLog, attachAccessData } = useOperationLog()\r\n\r\n const [usageDetail, setUsageDetail] = useState()\r\n const [facilityInfo, setFacilityInfo] = useState()\r\n const [useReason, setUseReason] = useState()\r\n\r\n useEffect(() => {\r\n addOperationLog({ operationId: OperationId.OP_00000001 })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n const [result, useReasonMst] = await Promise.all([\r\n getUsageDetail(reservationNo),\r\n getUseReason(),\r\n ])\r\n attachAccessData({\r\n accessData: [\r\n {\r\n userIdRegFlag: yesNo.yes,\r\n childId: result.childId,\r\n usageDate: toApiYmd(result.usageDate),\r\n reservationNo,\r\n },\r\n ],\r\n })\r\n setUsageDetail(result)\r\n setUseReason(useReasonMst)\r\n \r\n const facility = await getFacilityInfo(result.facilityId, toApiYmd(result.usageDate))\r\n setFacilityInfo(facility)\r\n })\r\n )\r\n )\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const goReservation = useCallback(\r\n () =>\r\n usageDetail &&\r\n history.push(facilityReservationSelectionCreateUrl.url(usageDetail.facilityId, usageDetail.childId)),\r\n [usageDetail]\r\n )\r\n\r\n const goReceiptView = useCallback(() => {\r\n if (!usageDetail || !reservationNo) return\r\n const props = nullPropsToUndefined({\r\n reservationNo,\r\n facilityId: usageDetail.facilityId\r\n })\r\n\r\n openWindow(\r\n getUrlPathname>(\r\n receiptViewUrl.routerPath,\r\n props\r\n )\r\n )\r\n console.log(usageDetail, openWindow, props);\r\n }, [usageDetail, reservationNo])\r\n\r\n return {\r\n usageDetail,\r\n facilityInfo,\r\n goReservation,\r\n useReason,\r\n goReceiptView,\r\n }\r\n}\r\n\r\nconst getUsageDetail = async (reservationNo: string) => {\r\n const response = await executeGetUsageRecord(reservationNo)\r\n const {\r\n usageDate,\r\n useFromDatetime,\r\n useToDatetime,\r\n goingToFacilityDatetime,\r\n goingHomeDatetime,\r\n reservationCancelDatetime,\r\n usageMinute,\r\n goingDatetimeDisplayMethods,\r\n ...other\r\n } = response.result\r\n\r\n return nullPropsToUndefined({\r\n ...other,\r\n usageDate: fromApiYmd(usageDate),\r\n useFromDatetime: fromApiYmdHms(useFromDatetime),\r\n useToDatetime: fromApiYmdHms(useToDatetime),\r\n goingToFacilityTime:\r\n goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY\r\n ? toApiHm(fromApiYmdHms(goingToFacilityDatetime))\r\n : null,\r\n goingHomeTime:\r\n goingDatetimeDisplayMethods === GOING_DATETIME_DISPLAY_METHODS.USED_ALL_FACILITY\r\n ? toApiHm(fromApiYmdHms(goingHomeDatetime))\r\n : null,\r\n reservationCancelDatetime: fromApiYmdHms(reservationCancelDatetime),\r\n usageMinute: formatLocaleTimeAmountHm(usageMinute),\r\n })\r\n}\r\n\r\nconst getFacilityInfo = async (facilityId: string, usageDate: string) => {\r\n const response = await executeGetFacility(facilityId, { targetDate: usageDate })\r\n const { lunchAcceptFlag, snackAcceptFlag } = response.result\r\n return { lunchAcceptFlag, snackAcceptFlag }\r\n}\r\n","import { Box, Stack } from '@mui/material'\r\nimport { ReactNode } from 'react'\r\nimport {\r\n getUsageRecordApiStatusLabel,\r\n getYesNoLabel,\r\n} from '../../containers/common/codeMaster'\r\nimport { purposeOfUse as purposeOfUseValue, usageRecordApiStatus, yesNo } from '../../containers/common/constant/classification'\r\nimport { useAction } from '../../containers/usageHistoryDetail/usageHistoryDetailService'\r\nimport { translate } from '../../i18n'\r\nimport { formatHmtoHmOver, formatYmdWeek, toApiHms } from '../../utils/dateUtil'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { ButtonOutlinedWarningL } from '../components/common/buttons/buttonOutlinedWarningL'\r\nimport { ButtonL } from '../components/common/buttons/buttonL'\r\nimport { GContainer, GItem, LabelGItemBase, RowSpacerGItem, ValueGItemBase } from '../components/common/grids'\r\nimport { formatNumberYenString } from '../../utils/stringUtil'\r\n\r\nimport { InfoCard } from '../components/common/infoCard'\r\n\r\n/** 利用済状態 */\r\nconst STATUS_USED = '1'\r\nconst USAGE_RECEIPT_VIEW_METHOD_ALL = '3'\r\n\r\nconst LabelItem = (props: { children?: ReactNode }) => {props.children}\r\nconst ValueItem = (props: { children: ReactNode, hideColon?: boolean }) => {props.children}\r\n\r\nconst getYesNoValue = (acceptFlag: string, count: number | undefined) => {\r\n let value\r\n\r\n if (count == null) {\r\n value = acceptFlag\r\n } else {\r\n if (count === 0) {\r\n value = yesNo.no\r\n } else if (count > 0) {\r\n value = yesNo.yes\r\n } else {\r\n value = yesNo.no\r\n }\r\n }\r\n return value\r\n}\r\n\r\nexport const UsageHistoryDetail = () => {\r\n const {\r\n usageDetail,\r\n facilityInfo,\r\n goReservation,\r\n useReason,\r\n goReceiptView,\r\n } = useAction();\r\n\r\n if (usageDetail == null) {\r\n return null\r\n }\r\n let usageMinute\r\n if (usageDetail.usageMinute) {\r\n usageMinute = (\r\n <>\r\n {translate('usageHistoryDetail.label.couponUsageMinute')}\r\n {usageDetail.usageMinute}\r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {translate('usageHistoryDetail.label.facilityName')}\r\n {usageDetail.facilityName}\r\n {translate('usageHistoryDetail.label.usageDatetime')}\r\n \r\n \r\n
    {formatYmdWeek(usageDetail.usageDate)}
    \r\n
    \r\n {formatHmtoHmOver(\r\n { from: usageDetail.useFromDatetime, to: usageDetail.useToDatetime },\r\n usageDetail.usageDate\r\n )}\r\n
    \r\n
    \r\n
    \r\n\r\n {usageDetail.goingToFacilityTime && usageDetail.goingHomeTime && (\r\n <>\r\n {translate('usageHistoryDetail.label.goingToFacilityTime')}\r\n {usageDetail.goingToFacilityTime}\r\n {translate('usageHistoryDetail.label.goingHomeTime')}\r\n {usageDetail.goingHomeTime}\r\n \r\n )}\r\n\r\n {translate('usageHistoryDetail.label.status')}\r\n {getUsageRecordApiStatusLabel(usageDetail.status)}\r\n {usageMinute}\r\n {usageDetail.amount != null && (\r\n <>\r\n {translate('usageHistoryDetail.label.amount')}\r\n {formatNumberYenString(usageDetail.amount)}\r\n \r\n )}\r\n \r\n\r\n {translate('usageHistoryDetail.label.userName')}\r\n {usageDetail.name}\r\n {translate('usageHistoryDetail.label.userNameKana')}\r\n {usageDetail.kana}\r\n {translate('usageHistoryDetail.label.tel')}\r\n {usageDetail.tel}\r\n {translate('usageHistoryDetail.label.email')}\r\n {usageDetail.email}\r\n \r\n\r\n {translate('usageHistoryDetail.label.childName')}\r\n {usageDetail.childName}\r\n {translate('usageHistoryDetail.label.childNameKana')}\r\n {usageDetail.childKana}\r\n \r\n {/* 利用目的の表示 */}\r\n {usageDetail.useReasonCategory && (\r\n <>\r\n {translate('usageHistoryDetail.label.useReasonCategory')}\r\n \r\n {\r\n usageDetail.useReasonCategory === purposeOfUseValue.irregular && useReason?.displayNameForCitizenIrregular ||\r\n usageDetail.useReasonCategory === purposeOfUseValue.emergency && useReason?.displayNameForCitizenEmg ||\r\n usageDetail.useReasonCategory === purposeOfUseValue.refresh && useReason?.displayNameForCitizenRefresh\r\n }\r\n \r\n \r\n )}\r\n \r\n {/* 詳細事由の表示:以下の三つのコンポーネントのうちいずれかが表示される(もしくは一つも表示されない) */}\r\n {usageDetail.useReasonDetailCategory && (\r\n usageDetail.useReasonCategory === purposeOfUseValue.irregular && useReason?.detailsIrregular && (\r\n <>\r\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\r\n \r\n {useReason?.detailsIrregular[Number(usageDetail.useReasonDetailCategory) - 1].name}\r\n \r\n \r\n ) || \r\n usageDetail.useReasonCategory === purposeOfUseValue.emergency && useReason?.detailsEmg && (\r\n <>\r\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\r\n \r\n {useReason?.detailsEmg[Number(usageDetail.useReasonDetailCategory) - 1].name}\r\n \r\n \r\n ) || \r\n usageDetail.useReasonCategory === purposeOfUseValue.refresh && useReason?.detailsRefresh && (\r\n <>\r\n {translate('system.reservationDetailGItems.label.useReasonDetail')}\r\n \r\n {useReason?.detailsRefresh[Number(usageDetail.useReasonDetailCategory) - 1].name}\r\n \r\n \r\n )\r\n )}\r\n \r\n {/* 詳細事由の入力欄の内容を表示 */}\r\n {usageDetail.useReasonDetailDescription && (\r\n <>\r\n \r\n \r\n {usageDetail.useReasonDetailDescription}\r\n \r\n \r\n )}\r\n \r\n {facilityInfo?.lunchAcceptFlag === yesNo.yes && (\r\n <>\r\n {translate('usageHistoryDetail.label.lunch')}\r\n {getYesNoLabel(getYesNoValue(usageDetail.lunchFlag, usageDetail.lunchCount))}\r\n \r\n )}\r\n {facilityInfo?.snackAcceptFlag === yesNo.yes && (\r\n <>\r\n {translate('usageHistoryDetail.label.snack')}\r\n {getYesNoLabel(getYesNoValue(usageDetail.snackFlag, usageDetail.snackCount))}\r\n \r\n )}\r\n {translate('usageHistoryDetail.label.note')}\r\n {usageDetail.citizenNote}\r\n {usageDetail.status === usageRecordApiStatus.canceled && usageDetail?.reservationCancelDatetime && (\r\n <>\r\n \r\n {translate('usageHistoryDetail.label.reservationCancelDatetime')}\r\n \r\n \r\n
    {formatYmdWeek(usageDetail.reservationCancelDatetime)}
    \r\n
    {toApiHms(usageDetail.reservationCancelDatetime)}
    \r\n
    \r\n
    \r\n \r\n )}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n {translate('usageHistoryDetail.button.reservation')}\r\n \r\n {\r\n usageDetail.status === STATUS_USED\r\n && usageDetail.usageReceiptViewMethod === USAGE_RECEIPT_VIEW_METHOD_ALL\r\n && (\r\n \r\n 領収証を発行\r\n \r\n )\r\n }\r\n \r\n \r\n
    \r\n )\r\n}\r\n","import { Stack, styled, Table, TableBody, TableCell, TableHead, TableRow, Typography } from '@mui/material'\r\nimport { Box } from '@mui/system'\r\n// import { yokohamaCityTemporaryChildcareReservationServiceUrl } from '../../containers/common/constant/externalUrl'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport { GContainer, GItem } from '../components/common/grids'\r\nimport { Link } from '../components/common/link'\r\nimport { SubTitle } from '../components/common/subTitle'\r\nimport { selectSystemControl } from '../../containers/common/store/slices/systemControl'\r\nimport { useSelector } from 'react-redux'\r\nconst AttributeGContainer = styled(GContainer)({\r\n padding: '1rem 2rem 2rem 3rem',\r\n})\r\nconst PageTitleNoBoder = styled(Box)(({ theme }) => ({\r\n fontSize: theme.typography.font.sizeL2,\r\n letterSpacing: '0.2em',\r\n color: theme.palette.secondary.main,\r\n}))\r\nconst TableCellBace = styled(TableCell)(({ theme }) => ({\r\n borderTop: '0.5px solid' + theme.palette.grayDark.dark,\r\n borderRight: '0.5px solid' + theme.palette.grayDark.dark,\r\n borderLeft: '0.5px solid' + theme.palette.grayDark.dark,\r\n borderBottom: '0.5px solid' + theme.palette.grayDark.dark,\r\n}))\r\nconst HeaderTableCell = styled(TableCellBace)(({ theme }) => ({\r\n backgroundColor: theme.palette.primary.main,\r\n color: theme.palette.white.main,\r\n}))\r\n\r\nconst BodyTableCell = styled(TableCellBace)({\r\n maxWidth: '250px',\r\n})\r\nconst BodyTableCellS = styled(TableCellBace)({\r\n maxWidth: '10px',\r\n})\r\nconst TextLeft = styled(Typography)({\r\n textAlign: 'left',\r\n})\r\nconst TextLink = styled(Link)({\r\n textAlign: 'left',\r\n})\r\nconst TextCenter = styled(Typography)({\r\n textAlign: 'center',\r\n})\r\n\r\nconst list = [\r\n {\r\n no: '1.1.1',\r\n criterion: '非テキストコンテンツに関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n {\r\n no: '1.2.1',\r\n criterion: '音声のみ及び映像のみ (収録済) に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '1.2.2',\r\n criterion: 'キャプション (収録済) に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '1.2.3',\r\n criterion: '音声解説、又はメディアに対する代替 (収録済) に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '1.2.4',\r\n criterion: 'キャプション (ライブ) に関する達成基準',\r\n grade: 'AA',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '1.2.5',\r\n criterion: '音声解説 (収録済) に関する達成基準',\r\n grade: 'AA',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '1.3.1 ',\r\n criterion: '情報及び関係性に関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '1.3.2', criterion: '意味のある順序に関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n {\r\n no: '1.3.3',\r\n criterion: '感覚的な特徴に関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '1.4.1', criterion: '色の使用に関する達成基準', grade: 'A', apply: '〇', suitable: '×', note: '一部非対応' },\r\n {\r\n no: '1.4.2',\r\n criterion: '音声の制御に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '1.4.3 ',\r\n criterion: 'コントラスト (最低限) に関する達成基準',\r\n grade: 'AA',\r\n apply: '〇',\r\n suitable: '〇',\r\n note: '',\r\n },\r\n {\r\n no: '1.4.4',\r\n criterion: 'テキストのサイズ変更に関する達成基準',\r\n grade: 'AA',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '1.4.5 ', criterion: '文字画像に関する達成基準', grade: 'AA', apply: '〇', suitable: '△', note: '' },\r\n { no: '2.1.1 ', criterion: 'キーボードに関する達成基準', grade: 'A', apply: '〇', suitable: '×', note: '一部非対応' },\r\n {\r\n no: '2.1.2',\r\n criterion: 'キーボードトラップなしに関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n {\r\n no: '2.2.1 ',\r\n criterion: 'タイミング調整可能に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '2.2.2',\r\n criterion: '一時停止、停止、非表示に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n {\r\n no: '2.3.1',\r\n criterion: '3 回の閃光、又は閾値以下に関する達成基準',\r\n grade: 'A',\r\n apply: 'ー',\r\n suitable: '〇',\r\n note: '該当するコンテンツ無し',\r\n },\r\n { no: '2.4.1', criterion: 'ブロックスキップに関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n { no: '2.4.2', criterion: 'ページタイトルに関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n {\r\n no: '2.4.3',\r\n criterion: 'フォーカス順序に関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n {\r\n no: '2.4.4 ',\r\n criterion: 'リンクの目的 (コンテキスト内) に関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '〇',\r\n note: '',\r\n },\r\n { no: '2.4.5', criterion: '複数の手段に関する達成基準', grade: 'AA', apply: '〇', suitable: '×', note: '一部非対応' },\r\n {\r\n no: '2.4.6',\r\n criterion: '見出し及びラベルに関する達成基準',\r\n grade: 'AA',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '2.4.7 ', criterion: 'フォーカスの可視化に関する達成基準', grade: 'AA', apply: '〇', suitable: '〇', note: '' },\r\n { no: '3.1.1', criterion: 'ページの言語に関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n { no: '3.1.2', criterion: '一部分の言語に関する達成基準', grade: 'AA', apply: '〇', suitable: '〇', note: '' },\r\n { no: '3.2.1', criterion: 'フォーカス時に関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n { no: '3.2.2', criterion: '入力時に関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n {\r\n no: '3.2.3',\r\n criterion: '一貫したナビゲーション に関する達成基準',\r\n grade: 'AA',\r\n apply: '〇',\r\n suitable: '〇',\r\n note: '',\r\n },\r\n {\r\n no: '3.2.4',\r\n criterion: '一貫した識別性に関する達成基準',\r\n grade: 'AA',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '3.3.1 ', criterion: 'エラーの特定に関する達成基準', grade: 'A', apply: '〇', suitable: '〇', note: '' },\r\n {\r\n no: '3.3.2',\r\n criterion: 'ラベル又は説明に関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '3.3.3', criterion: 'エラー修正の提案に関する達成基準', grade: 'AA', apply: '〇', suitable: '〇', note: '' },\r\n {\r\n no: '3.3.4',\r\n criterion: 'エラー回避 (法的、金融、データ) に関する達成基準',\r\n grade: 'AA',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n { no: '4.1.1', criterion: '構文解析に関する達成基準', grade: 'A', apply: '〇', suitable: '×', note: '一部非対応' },\r\n {\r\n no: '4.1.2',\r\n criterion: '名前 (name) ・役割 (role) 及び値 (value) に関する達成基準',\r\n grade: 'A',\r\n apply: '〇',\r\n suitable: '×',\r\n note: '一部非対応',\r\n },\r\n]\r\nexport const WebAccessibilityPolicy = () => {\r\n const sysCtrl = useSelector(selectSystemControl)\r\n // console.log(\"sysCtrl\", sysCtrl)\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n ウェブアクセシビリティ方針 \r\n \r\n \r\n {\r\n // '横浜市一時預かりWEB予約システムでは、ウェブアクセシビリティー向上のため、日本工業規格JIS X 8341-3:2016 のウェブコンテンツのアクセシビリティ達成等級 AAに準拠することを目指します。'\r\n '' + sysCtrl.serviceTitle + 'では、ウェブアクセシビリティー向上のため、日本工業規格JIS X 8341-3:2016 のウェブコンテンツのアクセシビリティ達成等級 AAに準拠することを目指します。'\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n {'横浜市一時預かりWEB予約システム'}\r\n \r\n {`(${yokohamaCityTemporaryChildcareReservationServiceUrl})`}\r\n \r\n */}\r\n {sysCtrl.serviceTitle}\r\n {false && /* 今は非表示 */\r\n \r\n {`(${sysCtrl.serviceUrlForUser})`}\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n {'日本工業規格 JIS X 8341-3:2016のウェブアクセシビリティ達成等級AA を満たすことを目標とします。'}\r\n \r\n \r\n \r\n \r\n {'2022年12月'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {'細分箇条'}\r\n \r\n \r\n {'基準'}\r\n \r\n \r\n {'等級'}\r\n \r\n \r\n {'適用'}\r\n \r\n \r\n {'適合'}\r\n \r\n \r\n {'備考'}\r\n \r\n \r\n \r\n \r\n {list.map((row, index) => (\r\n \r\n \r\n {row.no}\r\n \r\n \r\n {row.criterion}\r\n \r\n \r\n {row.grade}\r\n \r\n \r\n {row.apply}\r\n \r\n \r\n {row.suitable}\r\n \r\n \r\n {row.note}\r\n \r\n \r\n ))}\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n \r\n {'記号の種類'}\r\n {'適用欄○:「適用」、-:「非適用」'}\r\n {'適合欄○:「適合」、×:「非適合」'}\r\n \r\n {'※達成基準項目に該当するコンテンツが無い場合(非適用)は適合「○」となります。'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","import { useCallback, useEffect, useState } from 'react'\r\nimport { useForm } from 'react-hook-form'\r\nimport { useDispatch, useSelector } from 'react-redux'\r\nimport { useHistory, useParams } from 'react-router-dom'\r\n// import { executeGetGuideText } from '../../dataAccess/webApi/dao/controlDao'\r\nimport { translate } from '../../i18n'\r\nimport { memberUrl } from '../common/constant/appUrl'\r\n// import { guidTextMstId, yesNo } from '../common/constant/classification'\r\nimport { yesNo } from '../common/constant/classification'\r\nimport { OperationId } from '../common/constant/operationLog'\r\nimport { useErrorHandle } from '../common/error/errorHandler'\r\nimport { useOperationLog } from '../common/operationLog'\r\nimport { notifyMessage, showLoading } from '../common/store/slices/application'\r\nimport { selectSystemControl } from '../common/store/slices/systemControl'\r\nimport { castNonNullable } from '../../utils/typeUtil'\r\nimport { tabValue } from '../member/memberService'\r\nimport { executeDeleteChild } from '../../dataAccess/webApi/dao/childrenDao'\r\nimport { getChild, Child } from '../common/child'\r\n\r\ninterface UrlParams {\r\n childId: string\r\n}\r\n\r\ninterface Inputs {\r\n isConfirmation: string\r\n}\r\n\r\ninterface PageState {\r\n // useEndGuideText: string\r\n child: Child\r\n deleteResultCode?: number\r\n}\r\n\r\nexport const useAction = () => {\r\n const errorHandle = useErrorHandle()\r\n const dispatch = useDispatch()\r\n const history = useHistory()\r\n const { childId } = useParams()\r\n const { addOperationLog } = useOperationLog()\r\n const sysCtrl = useSelector(selectSystemControl)\r\n\r\n const [state, setState] = useState()\r\n\r\n const formMethods = useForm()\r\n\r\n useEffect(() => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000001,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }],\r\n })\r\n\r\n dispatch(\r\n showLoading(\r\n errorHandle(async () => {\r\n // const [guideText, child] = await Promise.all([\r\n const [child] = await Promise.all([\r\n // executeGetGuideText(guidTextMstId.childUseEnd),\r\n getChild(childId),\r\n ])\r\n setState({\r\n // useEndGuideText: guideText.result.guideTextContent,\r\n child,\r\n })\r\n })\r\n )\r\n )\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [])\r\n\r\n const onSubmit = useCallback(async () => {\r\n dispatch(\r\n showLoading({\r\n process: errorHandle(async () => {\r\n addOperationLog({\r\n operationId: OperationId.OP_00000160,\r\n accessData: [{ userIdRegFlag: yesNo.yes, childId }],\r\n })\r\n\r\n const response = await executeDeleteChild(childId)\r\n if (response.resultCode) {\r\n // 利用終了失敗時\r\n setState((old) => ({ ...castNonNullable(old), deleteResultCode: response.resultCode }))\r\n } else {\r\n // 利用終了成功時\r\n dispatch(notifyMessage(translate('childUseEnd.success.completionMessage')))\r\n\r\n history.push(memberUrl.url(), { tabValue: tabValue.child })\r\n }\r\n }),\r\n isHiddenMain: false,\r\n })\r\n )\r\n }, [dispatch, errorHandle, history, addOperationLog, childId])\r\n\r\n return {\r\n sysCtrl,\r\n formMethods,\r\n onSubmit,\r\n state,\r\n }\r\n}\r\n","import { Stack, styled } from '@mui/material'\r\nimport { useAction } from '../../containers/childUseEnd/childUseEndService'\r\nimport { yesNo } from '../../containers/common/constant/classification'\r\nimport { translate } from '../../i18n'\r\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\r\nimport { ButtonErrorL } from '../components/common/buttons/ButtonErrorL'\r\nimport { BackButton } from '../components/common/buttons/backButton'\r\nimport {\r\n CenterGItem,\r\n GContainer,\r\n GItem,\r\n LabelGItemBase,\r\n ValueGItemBase,\r\n} from '../components/common/grids'\r\nimport { CheckBox } from '../components/common/inputs/checkBox'\r\nimport { Form } from '../components/common/inputs/form'\r\nimport { TransitionCheck } from '../components/common/transitionCheck'\r\nimport { ErrorMessageCard } from '../components/common/errorMessageCard'\r\n\r\nconst GuideTextBox = styled('div')({\r\n whiteSpace: 'pre-wrap',\r\n})\r\n\r\nexport const ChildUseEnd = () => {\r\n const { sysCtrl, formMethods, onSubmit, state } = useAction()\r\n if (sysCtrl.childUseEndAcceptFlag !== yesNo.yes) {\r\n return \r\n }\r\n if (state == null) {\r\n // 読み込み中\r\n return null\r\n }\r\n // const { useEndGuideText, child, deleteResultCode } = state\r\n const { child, deleteResultCode } = state\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n {translate('childUseEnd.title.childName')}\r\n {child.name}\r\n \r\n {translate('childUseEnd.title.about')}\r\n \r\n {/* {useEndGuideText} */}\r\n {sysCtrl.descriptionForChildUseEnd}\r\n \r\n \r\n \r\n {translate('childUseEnd.checkbox.isConfirmation')}\r\n \r\n \r\n \r\n {!!deleteResultCode && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {translate('childUseEnd.button.forward')}\r\n \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n","import { FC } from 'react'\nimport { styled, TableCell, TableRow } from '@mui/material'\nimport { formatNumberComma } from '../../../../utils/stringUtil'\nimport { InputInfoType } from '../../../../containers/receiptView/receiptViewService'\n\ntype DefaultFeeList = {\n receiptData: InputInfoType\n}\n\nconst TableCellLeft = styled(TableCell)({\n borderBottom: 'none',\n textAlign: 'left',\n fontSize: '12px',\n minWidth: '70px',\n margin: 0,\n padding: '2px 0px',\n})\n\nconst TableCellRight = styled(TableCell)({\n borderBottom: 'none',\n textAlign: 'right',\n fontSize: '12px',\n minWidth: '70px',\n margin: 0,\n padding: '2px 0px',\n})\n\nexport const DefaultFeeList: FC = ({ receiptData }) => {\n const cells = []\n let cell\n if (receiptData.usageFee !== 0) {\n cell = (\n \n 一時保育利用料\n {formatNumberComma(receiptData.usageFee)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.useCouponFee !== 0) {\n cell = (\n \n はじめてのおあずかり券\n -{formatNumberComma(receiptData.useCouponFee)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.extentionFee !== 0) {\n cell = (\n \n 時間外料金\n {formatNumberComma(receiptData.extentionFee)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.nightlyFee !== 0) {\n cell = (\n \n 夜間料金\n {formatNumberComma(receiptData.nightlyFee)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.lunchFee !== 0) {\n cell = (\n \n 給食代\n {formatNumberComma(receiptData.lunchFee)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.snackFee !== 0) {\n cell = (\n \n おやつ代\n {formatNumberComma(receiptData.snackFee)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.otherFee1 !== 0) {\n cell = (\n \n {receiptData.otherFeeDisplayName1}\n {formatNumberComma(receiptData.otherFee1)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.otherFee2 !== 0) {\n cell = (\n \n {receiptData.otherFeeDisplayName2}\n {formatNumberComma(receiptData.otherFee2)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.otherFee3 !== 0) {\n cell = (\n \n {receiptData.otherFeeDisplayName3}\n {formatNumberComma(receiptData.otherFee3)}円\n \n )\n cells.push(cell)\n }\n if (receiptData.reduction !== 0) {\n cell = (\n \n 減額\n -{formatNumberComma(receiptData.reduction)}円\n \n )\n cells.push(cell)\n }\n return <>{cells}\n}","import { FC } from 'react'\nimport { Box, styled, Table, TableCell, TableRow } from '@mui/material'\nimport { DefaultFeeList } from './defaultFeeList'\nimport { InputInfoType } from '../../../../containers/receiptView/receiptViewService'\nimport {\n CenterGItem,\n GContainer,\n GItem,\n LeftGItem,\n RightGItem\n} from '../../common/grids'\nimport {\n formatYmd,\n fromApiYmd,\n getNow,\n isValidApiYmd\n} from '../../../../utils/dateUtil'\nimport { formatNumberComma } from '../../../../utils/stringUtil'\n\nconst FacilityTableCell = styled(TableCell)({\n borderBottom: 'none',\n textAlign: 'left',\n fontSize: '12px',\n minWidth: '70px',\n margin: 0,\n padding: '2px 0px',\n})\n\nconst TableCellLeft = styled(TableCell)({\n borderBottom: 'none',\n textAlign: 'left',\n fontSize: '12px',\n minWidth: '70px',\n margin: 0,\n padding: '2px 0px',\n})\n\nconst TableCellRight = styled(TableCell)({\n borderBottom: 'none',\n textAlign: 'right',\n fontSize: '12px',\n minWidth: '70px',\n margin: 0,\n padding: '2px 0px',\n})\n\nconst AmountTextItem = styled(CenterGItem)({\n borderBottom: '1px solid',\n marginBottom: '10px',\n marginTop: '0px',\n padding: '2px 0px',\n fontSize: '21px',\n})\n\nconst RecepttemplateBox = styled(Box)({\n height: '50%',\n})\n\nconst TitleItem = styled(CenterGItem)({\n fontSize: '24px',\n marginBottom: '5px',\n marginTop: '30px',\n})\n\nconst FeeTableGItem = styled(CenterGItem)({\n fontSize: '13px',\n})\n\nconst AddressNameItem = styled(LeftGItem)({\n fontSize: '19px',\n})\n\ntype DefaultReceiptProp = {\n receiptData: InputInfoType\n}\n\nexport const DefaultReceipt: FC = ({ receiptData }) => {\n const textMb = 3\n \n return (\n \n \n \n \n \n \n 領収証\n \n \n {receiptData.actualUpdateDatetime && (\n \n \n No. {receiptData.reservationNo}\n \n \n )}\n \n \n {receiptData.parentName} 様\n \n\n \n 発行日 {formatYmd(getNow())}\n \n \n \n \n \n \n \n 金額 {formatNumberComma(receiptData.amount)} 円\n \n\n \n \n \n <内訳>\n \n {isValidApiYmd(receiptData.usageDate) ? formatYmd(fromApiYmd(receiptData.usageDate)) : ''}\n {' '}\n {receiptData.childName} 様利用分\n \n \n \n
    \n
    \n
    \n
    \n \n \n \n \n \n \n 施設名\n {receiptData.facilityName}\n \n \n 事業名\n\n {receiptData.projectName}\n \n \n 施設住所\n \n {receiptData.address1}\n {receiptData.address2}\n
    \n {receiptData.buildingNameRoomNo}{' '}\n
    \n
    \n \n 電話番号\n {receiptData.tel}\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n )\n}","import { FC } from 'react'\nimport { Stack, styled } from '@mui/material'\nimport { GItem } from '../components/common/grids'\nimport { DefaultReceipt } from '../components/receipt/default/defaultReceipt'\nimport { useAction } from '../../containers/receiptView/receiptViewService'\n\nconst ReceiptItem = styled(GItem)({\n width: '210mm',\n marginTop: '-55px',\n})\n\nexport const ReceiptView: FC = () => {\n const { printData, receiptData, isDefaultLayout } = useAction()\n \n return (\n \n \n {\n printData && isDefaultLayout \n ? \n : <>\n }\n \n \n )\n}","import { useEffect, useState } from 'react'\nimport { useQueryParams } from '../common/transition'\nimport { executeGetUsageRecord } from '../../dataAccess/webApi/dao/usageRecordsDao'\nimport { executeGetFacility } from '../../dataAccess/webApi/dao/facilitiesDao'\nimport { fromApiYmdHms, fromApiYmd, toApiYmd } from '../../utils/dateUtil'\nimport { nullPropsToUndefined } from '../../utils/objectUtil'\nimport { formatLocaleTimeAmountHm } from '../../utils/timeUtil'\nimport { NoResultError } from '../../dataAccess/webApi/common/apiCaller'\nimport { useHistory } from 'react-router-dom'\nimport {\n errorUrls,\n} from '../common/constant/appUrl'\nimport { httpStatusCode } from '../common/constant/classification'\n\nexport type ReceptViewUrlQueryParams = {\n /** 受付no */\n reservationNo: string\n /** 施設ID */\n facilityId: string\n}\n\nexport type InputInfoType = {\n parentName: string\n childName: string\n amount: number\n usageFee: number\n useCouponFee: number\n extentionFee: number\n nightlyFee: number\n lunchFee: number\n snackFee: number\n otherFee1: number\n otherFee2: number\n otherFee3: number\n reduction: number\n reservationNo: string\n facilityName: string\n address1: string\n address2: string\n buildingNameRoomNo: string\n tel: string\n usageDate: string\n projectName: string\n otherFeeDisplayName1: string\n otherFeeDisplayName2: string\n otherFeeDisplayName3: string\n actualUpdateDatetime: string\n}\n\nexport const useAction = () => {\n const {\n reservationNo,\n facilityId\n } = useQueryParams()\n const history = useHistory()\n\n const [printData, setPrintData] = useState(false)\n const [receiptData, setReceiptData] = useState({\n parentName: '',\n childName: '',\n amount: 0,\n usageFee: 0,\n useCouponFee: 0,\n extentionFee: 0,\n nightlyFee: 0,\n lunchFee: 0,\n snackFee: 0,\n otherFee1: 0,\n otherFee2: 0,\n otherFee3: 0,\n reduction: 0,\n reservationNo: '',\n facilityName: '',\n address1: '',\n address2: '',\n buildingNameRoomNo: '',\n tel: '',\n usageDate: '',\n projectName: '',\n otherFeeDisplayName1: '',\n otherFeeDisplayName2: '',\n otherFeeDisplayName3: '',\n actualUpdateDatetime: '',\n })\n const [isDefaultLayout, setIsDefaultLayout] = useState(true)\n \n useEffect(() => {\n initialize()\n .catch((error) => {\n throw error\n })\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n \n /** 初期化処理 */\n const initialize = async () => {\n try {\n const receiptViewData = await getUsageDetail(reservationNo);\n const usageDate = toApiYmd(receiptViewData.usageDate)\n const data = await getFacility(facilityId, usageDate)\n \n //事業マスタ詳細の取得\n setReceiptData({\n parentName: receiptViewData.name ?? '',\n childName: receiptViewData.childName ?? '',\n amount: receiptViewData.amount ?? 0,\n usageFee: receiptViewData.usageFee ?? 0,\n useCouponFee: receiptViewData.useCouponFee ?? 0,\n extentionFee: receiptViewData.extentionFee ?? 0,\n nightlyFee: receiptViewData.nightlyFee ?? 0,\n lunchFee: receiptViewData.lunchFee ?? 0,\n snackFee: receiptViewData.snackFee ?? 0,\n otherFee1: receiptViewData.otherFee1 ?? 0,\n otherFee2: receiptViewData.otherFee2 ?? 0,\n otherFee3: receiptViewData.otherFee3 ?? 0,\n reduction: receiptViewData.reduction ?? 0,\n reservationNo,\n facilityName: data.facilityName ?? '',\n address1: data.address1 ?? '',\n address2: data.address2 ?? '',\n buildingNameRoomNo: data.buildingNameRoomNo ?? '',\n tel: data.tel ?? '',\n usageDate,\n projectName: data.projectName ?? '',\n otherFeeDisplayName1: receiptViewData.otherFeeDisplayName1 ?? 'その他',\n otherFeeDisplayName2: receiptViewData.otherFeeDisplayName2 ?? 'その他',\n otherFeeDisplayName3: receiptViewData.otherFeeDisplayName3 ?? 'その他',\n actualUpdateDatetime: receiptViewData.actualUpdateDatetime ?? '',\n })\n\n /**\n * TODO: 独自レイアウト作成機能追加時にこちらのフラグを変更して領収書のレイアウトを切り替える\n */\n if (false) {\n setIsDefaultLayout(false)\n }\n \n setPrintData(true)\n } catch (e) {\n if (e instanceof NoResultError) {\n history.push(errorUrls[httpStatusCode.notFound].routerPath)\n return null\n } else {\n throw e\n }\n }\n }\n\n const getUsageDetail = async (reservationNo: string) => {\n const response = await executeGetUsageRecord(reservationNo)\n const { usageDate, useFromDatetime, useToDatetime, reservationCancelDatetime, usageMinute, ...other } =\n response.result\n return nullPropsToUndefined({\n ...other,\n usageDate: fromApiYmd(usageDate),\n useFromDatetime: fromApiYmdHms(useFromDatetime),\n useToDatetime: fromApiYmdHms(useToDatetime),\n reservationCancelDatetime: fromApiYmdHms(reservationCancelDatetime),\n usageMinute: formatLocaleTimeAmountHm(usageMinute),\n })\n }\n \n //施設情報取得\n const getFacility = async (\n facilityId: string, usageDate: string | undefined\n ) => {\n const response = await executeGetFacility(\n facilityId,\n ...(usageDate ? [{ targetDate: usageDate }] : [])\n )\n return response.result\n }\n \n return {\n printData,\n receiptData,\n isDefaultLayout\n }\n}\n","import { useCallback, useEffect, useState } from 'react'\nimport { useSelector, useDispatch } from 'react-redux'\nimport { useHistory } from 'react-router'\nimport { useQueryParams } from '../common/transition'\nimport { reset } from '../common/store/slices/application'\nimport { selectIsLoggedIn, setIsOTPAuthenticated } from '../common/store/slices/authority'\nimport { rootUrl, accountCreateFormUrl } from '../common/constant/appUrl'\nimport { \n saveSsoLinkRedirectTo,\n saveSsoLoginRedirectTo,\n loadDeleteSsoLinkRedirectTo,\n loadDeleteSsoLoginRedirectTo,\n} from '../common/sessionStore'\nimport { federatedSignIn, signOut, getAuthenticatedUser } from '../../utils/authUtil'\nimport { authIdProviderName } from '../common/constant/processEnv'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\nimport { yesNo } from '../common/constant/classification'\nimport { executeGetAccountIsSsoFirstLogin } from '../../dataAccess/webApi/dao/accountDao'\nimport { executeGetSessionSettingMst } from '../../dataAccess/webApi/dao/sessionSettingMstDao'\nimport { executeGetAccountOtp, executePutAccountAuthentication, executePutAccountOtp } from '../../dataAccess/webApi/dao/accountDao'\nimport { translate } from '../../i18n'\n\ninterface UrlParams {\n /** SAML連携エラー時にリダイレクトされたときに設定されているパラメータ */\n error_description?: string\n /** SAML連携エラー時にリダイレクトされたときに設定されているパラメータ */\n error?: string\n\n /**\n * ログイン後遷移するパス\n */\n loginRedirectTo?: string\n /**\n * SSO連携後に遷移するパス(既にログイン中であることが前提)\n */\n linkRedirectTo?: string\n /**\n * ※この画面に遷移してきたときは、loginRedirectToとlinkRedirectToのどちらかが設定されていることが前提\n * ※未ログイン時に応援サイトのアカウントでログインしたい(SSO未連携の場合は初回連携も実施)場合はloginRedirectToが設定されている\n * ※既にログイン済みでSSOの初回連携を実施したい場合はlinkRedirectToが設定されている\n * 遷移先の値の保持について\n *  ①遷移元画面からloginRedirectToとlinkRedirectToのどちらかが設定された状態でこの画面に遷移してくる\n *  ②フェデレーションサインイン実行しIDP側へリダイレクトしてしまう前に遷移先情報を一旦sessionStoreへ値を退避する\n *  ③IDP側でログイン状態になると、再度この画面にリダイレクトしてくるのでsessionStoreから退避していた遷移先の情報を取得・削除する\n */\n}\n\ninterface DialogParam {\n isOpen: boolean\n buttonLabel: string,\n onClose: () => void,\n message?: string,\n isButtonOutlined: boolean,\n}\n\nconst DIALOG_PARAM_DEFAULT_VALUE: DialogParam = {\n isOpen: false,\n buttonLabel: translate('system.button.close'),\n onClose: () => {},\n isButtonOutlined: true,\n}\n\ninterface SsoLinkedParams {\n id: string\n name: string\n street: string\n houseNumber: string\n city: string\n state: string\n postalCode: string\n email: string\n phone: string\n}\n\nexport const useAction = () => {\n const dispatch = useDispatch()\n const history = useHistory()\n const isLoggedIn = useSelector(selectIsLoggedIn)\n\n const { ssoUseFlag, ssoUseName, serviceTitle } = useSelector(selectSystemControl)\n \n const queryParams = useQueryParams()\n \n const [dialog, setDialog] = useState(DIALOG_PARAM_DEFAULT_VALUE)\n\n useEffect(() => {\n initialize()\n }, [])\n \n const initialize = useCallback( async () => {\n // 遷移パラメータから取得\n const { loginRedirectTo, linkRedirectTo } = queryParams\n // sessionStoreに保存していた遷移先情報を取得&sessionStoreから遷移先情報を削除\n const loadedLoginTo = loadDeleteSsoLoginRedirectTo()\n const loadedLinkTo = loadDeleteSsoLinkRedirectTo()\n\n // フェデレーションサインイン実行前、もしくはフェデレーションサインイン成功の場合\n if (!queryParams.error) {\n \n // 未ログイン状態、もしくはログイン済でもSSO連携する場合は、フェデレーションサインインを実行\n if (loginRedirectTo || linkRedirectTo ) {\n\n if (ssoUseFlag === yesNo.yes && authIdProviderName) {\n\n // sessionStoreに遷移先を保存\n if (loginRedirectTo) {\n saveSsoLoginRedirectTo(loginRedirectTo)\n } else if(linkRedirectTo) {\n saveSsoLinkRedirectTo(linkRedirectTo)\n }\n // フェデレーションサインイン実行\n federatedSignIn(authIdProviderName)\n }\n \n // フェデレーションサインイン成功した後の場合\n } else {\n // 遷移先 \n // const redirectTo = loadedLoginTo ?? loadedLinkTo ?? rootUrl.url()\n const { isSsoFirstLogin, loginUser } = await getIsSsoFirstLogin()\n \n // ログイン中のSSO連携ではない場合、かつ初回連携ではない場合はそのまま遷移\n // if (!loadedLinkTo) {\n // if (!isSsoFirstLogin) {\n // history.replace(redirectTo)\n // return\n // }\n // }\n\n // ログイン中のSSO連携の場合、または初回連携の場合はポップアップに完了メッセージを表示\n if (isSsoFirstLogin) {\n setDialog({\n isOpen: true,\n message: translate('sso.success.completionMessage', ssoUseName ?? '', loginUser.email ?? ''),\n onClose: () => {},\n buttonLabel: translate('system.button.close'),\n isButtonOutlined: true,\n })\n }\n\n const sessionSetting = await executeGetSessionSettingMst()\n const user = await getAuthenticatedUser(true)\n const userId = user.attributes.sub\n\n switch (sessionSetting.result.mfaType) {\n case '0':\n await executePutAccountAuthentication({ userId, loginFlag: '1' })\n history.push('/')\n dispatch(setIsOTPAuthenticated(true))\n break\n case '1':\n await executePutAccountOtp({ userId })\n history.push('/otp')\n break\n case '2':\n const response = await executeGetAccountOtp()\n const userInfo = response.result\n if (userInfo.lastOtpLoginDatetime && sessionSetting.result.mfaPeriod) {\n if (idDatePassed(userInfo.lastOtpLoginDatetime, sessionSetting.result.mfaPeriod?.toString())) {\n await executePutAccountOtp({ userId })\n history.push('/otp')\n } else {\n dispatch(setIsOTPAuthenticated(true))\n history.push('/')\n }\n }\n break\n }\n }\n \n // フェデレーションサインインを実行してエラーになった場合\n } else {\n\n // SSO連携時にloginRedirectToがパラメータに設定されている場合は、SSO失敗時にログアウトする\n if (loadedLoginTo && isLoggedIn) {\n await logout()\n }\n \n const errorDescription = queryParams.error_description\n // アカウント作成画面に渡すユーザの連携情報\n let ssoLinkedParams: SsoLinkedParams\n // エラーダイアログに表示するメッセージ\n let message = translate('system.error.unexpectedError')\n // エラーダイアログに表示するボタンの文言\n let buttonLabel = translate('system.button.close')\n // エラーダイアログに表示するボタンの見た目\n let isButtonOutlined = true\n \n // 遷移先 \n let redirectTo = loadedLoginTo ?? loadedLinkTo ?? rootUrl.url()\n \n if (errorDescription != null && errorDescription.includes('USER_NOT_FOUND:')) {\n \n const itemsJson = unescape(errorDescription).split('USER_NOT_FOUND:')[1].slice(0, -2)\n ssoLinkedParams = JSON.parse(itemsJson)\n \n // SSO連携情報をアカウント作成画面に受け渡す\n if (loadedLoginTo) {\n message = translate('sso.error.userNotFoundMessage', ssoUseName ?? '', ssoLinkedParams.email, serviceTitle ?? '')\n buttonLabel = translate('sso.button.accountCreate')\n isButtonOutlined = false\n redirectTo = accountCreateFormUrl.url()\n } else {\n message = translate('sso.error.errorMessage', ssoUseName ?? '', ssoLinkedParams.email ?? '')\n }\n }\n \n setDialog({\n isOpen: true,\n message: message,\n onClose: () => {onCloseErrorDialog(redirectTo, {ssoLinkedParams: ssoLinkedParams})},\n buttonLabel: buttonLabel,\n isButtonOutlined: isButtonOutlined,\n })\n }\n \n }, [queryParams, ssoUseFlag, ssoUseName, serviceTitle, isLoggedIn])\n \n const onCloseErrorDialog = useCallback((redirectTo: string, ssoLinkedParams?: {ssoLinkedParams: SsoLinkedParams}) => {\n setDialog(DIALOG_PARAM_DEFAULT_VALUE)\n history.replace(redirectTo, ssoLinkedParams)\n \n }, [queryParams])\n \n const getIsSsoFirstLogin = useCallback( async () => {\n const res = await executeGetAccountIsSsoFirstLogin()\n return res.result\n }, [])\n\n const logout = useCallback( async () => {\n await signOut()\n dispatch(reset({ isKeepAuthority: false }))\n }, [dispatch])\n\n const idDatePassed = (\n lastOtpLoginDatetimeString: string,\n mfaPeriodString: string\n ) => {\n const lastOtpLoginDatetime = new Date(lastOtpLoginDatetimeString)\n\n const today = new Date()\n\n const mfaPeriod = parseInt(mfaPeriodString, 10)\n\n const pastDate = new Date(today.getTime() - mfaPeriod * 24 * 60 * 60 * 1000)\n\n return lastOtpLoginDatetime <= pastDate\n }\n\n return {\n dialog\n }\n}\n\n","import { Dialog } from '../components/common/dialog'\nimport { ButtonS } from '../components/common/buttons/buttonS'\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\nimport { useAction } from '../../containers/sso/ssoService'\nimport { styled } from '@mui/material'\n\nconst DialogContentText = styled('div')({\n whiteSpace: 'pre-line',\n textAlign: 'center',\n})\n\nexport const Sso = () => {\n const {\n dialog\n } = useAction()\n \n return (\n {dialog.buttonLabel}\n : {dialog.buttonLabel}\n }\n maxWidth={dialog.isButtonOutlined ? 'xs' : 'sm'}\n fullWidth\n >\n \n {dialog.message}\n \n \n )\n}","import { useCallback, useEffect, useState } from 'react'\nimport { useSelector } from 'react-redux'\nimport { useHistory } from 'react-router'\nimport { memberUrl, rootUrl } from '../common/constant/appUrl'\nimport { selectIsLoggedIn } from '../common/store/slices/authority'\nimport {\n executePostGuideText,\n guideTextId,\n} from '../../dataAccess/webApi/dao/guideTextDao'\n\ninterface DialogParam {\n isOpen: boolean\n onClose: () => void\n onClick: () => void\n message?: string\n}\n\nconst DIALOG_PARAM_DEFAULT_VALUE: DialogParam = {\n isOpen: false,\n onClose: () => {},\n onClick: () => {},\n}\n\nexport const useAction = () => {\n const history = useHistory()\n const isLoggedIn = useSelector(selectIsLoggedIn)\n\n const [dialog, setDialog] = useState(DIALOG_PARAM_DEFAULT_VALUE)\n\n useEffect(() => {\n initialize()\n }, [])\n\n const initialize = useCallback(async () => {\n const { guideTextContent } = await getEmailVerifiedGuideText()\n\n if (!guideTextContent) {\n history.replace(rootUrl.url())\n }\n\n setDialog({\n isOpen: true,\n message: guideTextContent || '',\n onClose: () => {\n handleClose()\n },\n onClick: () => {\n handleClickMember()\n }\n })\n }, [isLoggedIn])\n\n const handleClose = useCallback(async () => {\n setDialog(DIALOG_PARAM_DEFAULT_VALUE)\n history.replace(rootUrl.url())\n }, [])\n\n const handleClickMember = useCallback(async() => {\n setDialog(DIALOG_PARAM_DEFAULT_VALUE)\n history.push(memberUrl.url())\n }, [])\n\n const getEmailVerifiedGuideText = useCallback(async () => {\n const response = await executePostGuideText(\n guideTextId.emailVerifiedGuideText\n )\n return response.result\n }, [])\n\n return {\n dialog,\n }\n}\n","import { styled } from '@mui/material'\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\nimport { Dialog } from '../components/common/dialog'\nimport { useAction } from '../../containers/emailVerified/emailVerifiedService'\nimport { translate } from '../../i18n'\n\nconst DialogContentText = styled('div')({\n whiteSpace: 'pre-line',\n})\n\nconst ButtonBox = styled('div')({\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: '8px',\n gap: '8px',\n})\n\nexport const EmailVerification = () => {\n const { dialog } = useAction()\n\n return (\n \n {dialog.message}\n \n \n {translate('mypage.button.member')}\n \n \n {translate('system.button.close')}\n \n \n \n )\n}\n","import { useCallback, useEffect, useState } from 'react'\nimport { useForm } from 'react-hook-form'\nimport { useDispatch, useSelector, batch } from 'react-redux'\nimport { \n useLocation,\n // useHistory,\n} from 'react-router-dom'\nimport { \n notifyMessage,\n showLoading,\n} from '../common/store/slices/application'\nimport { selectSystemControl } from '../common/store/slices/systemControl'\nimport {\n selectIsLoggedIn,\n selectIsOTPAuthenticated,\n selectIsVerifiedEmail,\n selectIsVerifiedTel,\n setIsOTPAuthenticated,\n} from '../common/store/slices/authority'\nimport { setLoginForm } from '../common/store/slices/login'\nimport {\n executeGetAccountOtp,\n executePutAccountAuthentication,\n executePutAccountOtp,\n} from '../../dataAccess/webApi/dao/accountDao'\nimport { getAuthenticatedUser } from '../../utils/authUtil'\nimport { translate } from '../../i18n'\n\ninterface LocationState {\n from: Location\n}\ninterface Inputs {\n otp: string\n}\n\ninterface AuthLog {\n userId: string\n emailVerifiedFlag: string\n telVerifiedFlag: string\n otp: string | null\n lastOtpLoginDatetime: string | null\n loginFlag: string\n}\n\nconst ERROR_MESSAGE = {\n MISMATCH: '入力されたワンタイムパスワードは正しくありません。',\n EXPIRATION_PERIOD:\n 'ワンタイムパスワードの有効期限が切れています。ログイン画面に戻り、最初からやり直してください。',\n}\n\n/**\n * ログイン画面フォームアクション\n */\nexport const useAction = () => {\n const dispatch = useDispatch()\n const location = useLocation()\n const isLoggedIn = useSelector(selectIsLoggedIn)\n const isVerifiedEmail = useSelector(selectIsVerifiedEmail)\n const isVerifiedTel = useSelector(selectIsVerifiedTel)\n const { ssoUseFlag, ssoUseName, smsSubscriptionFlag, phoneCertificationFlag } = useSelector(selectSystemControl)\n const isOTPAuthenticated = useSelector(selectIsOTPAuthenticated)\n const [authLog, setAuthLog] = useState()\n \n const formMethods = useForm()\n\n const from = location.state?.from\n\n const initialize = useCallback(async () => {\n const authLogRes = await executeGetAccountOtp()\n setAuthLog(authLogRes.result)\n }, [])\n\n useEffect(() => {\n initialize()\n }, [])\n\n const resendCode = async () => {\n batch(() => {\n dispatch(showLoading(async () => {\n await executePutAccountOtp({ userId: authLog?.userId ?? '' })\n }))\n dispatch(notifyMessage(translate('system.success.sendOneTimePassword')))\n })\n }\n\n const isWithinOneHour = (generateDatetime: string) => {\n const now = new Date()\n const targetDate = new Date(generateDatetime)\n const diffInMilliseconds = now.getTime() - targetDate.getTime()\n\n const oneHourInMilliseconds = 60 * 60 * 1000\n\n return (\n diffInMilliseconds <= oneHourInMilliseconds && diffInMilliseconds >= 0\n )\n }\n\n const validateOtp = (otp: string, generateDatetime: string) => {\n if (otp !== formMethods.watch(\"otp\")) {\n dispatch(setLoginForm({\n error: ERROR_MESSAGE.MISMATCH\n }))\n return false\n }\n if (!isWithinOneHour(generateDatetime)) {\n dispatch(setLoginForm({\n error: ERROR_MESSAGE.EXPIRATION_PERIOD\n }))\n return false\n }\n return true\n }\n\n /**\n * フォーム送信イベント処理\n * @param data フォーム入力値\n */\n const onSubmit = useCallback(\n async () => {\n dispatch(\n // ログインリクエスト中にローディングアイコンを表示する\n showLoading(\n (async () => {\n try {\n const response = await executeGetAccountOtp(true)\n const user = response.result\n const isOTPValid = validateOtp(user.otp ?? '', user.generateDatetime ?? '')\n if (isOTPValid) {\n const loginUser = await getAuthenticatedUser()\n const loginUserId = loginUser.attributes.sub\n const loginFlag = '1'\n await executePutAccountAuthentication({ userId: loginUserId, loginFlag })\n dispatch(setIsOTPAuthenticated(true))\n } \n } catch (error) {\n console.log(error)\n // エラーメッセージ表示\n dispatch(setLoginForm({\n error: error instanceof Error ? error.message : String(error)\n }))\n dispatch(setIsOTPAuthenticated(false))\n }\n })\n )\n )\n },\n []\n )\n\n return {\n isLoggedIn,\n formMethods,\n onSubmit,\n isVerifiedEmail,\n isVerifiedTel,\n from,\n ssoUseFlag,\n ssoUseName,\n smsSubscriptionFlag,\n phoneCertificationFlag,\n isOTPAuthenticated,\n resendCode,\n }\n}\n","import {\n useSelector,\n useDispatch,\n} from 'react-redux'\nimport { Grid, styled } from '@mui/material'\nimport { Redirect } from 'react-router'\nimport { useHistory } from 'react-router-dom'\nimport {\n rootUrl,\n loginUrl,\n} from '../../containers/common/constant/appUrl'\nimport { useAction } from '../../containers/otp/otpService'\nimport { GContainer, GItem, GItemContainer } from '../components/common/grids'\nimport { translate } from '../../i18n'\nimport { Form } from '../components/common/inputs/form'\nimport { TextBox } from '../components/common/inputs/textBox'\nimport { ButtonM } from '../components/common/buttons/buttonM'\nimport { ElevatedCard } from '../components/common/elevatedCard'\nimport { AttentionLabel } from '../components/common/attentionLabel'\nimport {\n selectLoginError,\n} from '../../containers/common/store/slices/login'\nimport { ButtonOutlinedBase } from '../components/common/buttons/buttonOutlinedBase'\nimport {\n setLogin,\n} from '../../containers/common/store/slices/authority'\n\n// メッセージコンテナ\nconst NoticeGContainer = styled(GItemContainer)({\n justifyContent: 'center',\n paddingBottom: 20,\n})\n\n// 説明文コンテナ\nconst DescriptionContainer = styled('p')({\n whiteSpace: 'pre-wrap',\n})\n\n// メインコンテンツコンテナ\nconst CustomDivContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '600px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n// メインコンテンツのサブコンテナ\nconst CustomDivSubContainer = styled('div')(({ theme }) => ({\n margin: '10px auto',\n [theme.breakpoints.up('sm')]: {\n width: '500px',\n },\n [theme.breakpoints.down('sm')]: {\n width: '100%',\n },\n}))\n\n// カスタムカラーボタンM\nconst CustomColorButtonM = styled(ButtonM)(({ theme }) => ({\n color: '#000',\n backgroundColor: '#FFDB2C',\n borderColor: '#FFDB2C',\n '&:hover': {\n backgroundColor: '#f0cc1d',\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: '#f0cc1d',\n },\n },\n '&:active': {\n boxShadow: theme.shadows[8],\n },\n}))\n\n// ログイン画面に戻るボタン\nconst BackToLoginButton = styled(ButtonOutlinedBase)(({ theme }) => ({\n color: theme.palette.primary.main,\n border: 'solid',\n fontSize: theme.typography.font.sizeM,\n}))\n\n/**\n * OTP画面UIコンポーネント\n */\nexport const OTP = () => {\n const {\n formMethods,\n onSubmit,\n from,\n isOTPAuthenticated,\n resendCode,\n} = useAction()\n const error = useSelector(selectLoginError)\n const history = useHistory()\n const dispatch = useDispatch()\n\n console.log('from:', from)\n\n if (isOTPAuthenticated) {\n return \n }\n\n return (\n \n
    \n \n {/* 左余白 */}\n \n\n {/* メインコンテンツ */}\n \n \n\n {/* タイトル */}\n \n \n {/* 説明 */}\n \n \n {translate('otp.text.description')}\n \n \n \n {/* エラーメッセージ表示 */}\n {error &&\n \n \n \n {translate(error)}\n \n \n \n }\n \n {/* ワンタイムパスワード */}\n \n {translate('otp.label.otp')}\n \n \n \n {/* ログインボタン */}\n \n \n {translate('otp.button.submit')}\n \n \n\n {/* ワンタイムパスワード再送信ボタン */}\n \n \n {translate('otp.button.resend')}\n \n \n\n {/* ログインに戻るボタン */}\n \n {\n dispatch(setLogin())\n history.push(loginUrl.url())\n }}\n >\n {translate('otp.button.back')}\n \n \n\n \n \n \n \n\n {/* 右余白 */}\n \n \n
    \n
    \n )\n}\n","import { useCallback, useEffect, useState } from 'react'\nimport { useDispatch, useSelector } from 'react-redux'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { showLoading } from '../common/store/slices/application'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { executeGetTodayConditionInputDetail } from '../../dataAccess/webApi/dao/reservationsDao'\nimport { ApiResponse } from '../../dataAccess/webApi/common/apiCaller'\nimport { FieldPath, useForm } from 'react-hook-form'\nimport { GetTodayConditionInputDetailDto, PutTodayConditionInputDto } from '../../dataAccess/webApi/dto/reservationsDto'\nimport { getDecodeMstValue } from '../common/getDecodeMstValue'\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto'\nimport {\n reservationBrestFeedingDetail,\n reservationEatingMethod,\n todayConditionAmountOfFood,\n todayConditionBelongings,\n todayConditionDefecationTiming,\n todayConditionEscortType,\n todayConditionInputNapType,\n yesNo,\n} from '../common/constant/classification'\nimport { getClassificationValueLabels } from '../../i18n'\nimport {\n selectInput,\n setInput,\n setReservationInfo,\n setTodayConditionInputFieldsInfo,\n} from '../common/store/slices/facilityReserveTodayConditionInput'\nimport { facilityReservationTodayConditionInputConfirmationUrl } from '../common/constant/appUrl'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\n\ninterface UrlParams {\n reservationNo: string\n}\n\nexport interface Inputs {\n /** 体温整数部分(登園前) */\n morningBodyTemperatureIntPart: number | null\n /** 体温小数部分(登園前) */\n morningBodyTemperatureFracPart: number | null\n /** 測定時刻(今朝の体温) */\n morningBodyTemperatureMeasurementTime: string | null\n /** 体温整数部分(朝) */\n afterComingAmBodyTemperatureIntPart: number | null\n /** 体温小数部分(朝) */\n afterComingAmBodyTemperatureFracPart: number | null\n /** 体温整数部分(夕) */\n afterComingPmBodyTemperatureIntPart: number | null\n /** 体温小数部分(夕) */\n afterComingPmBodyTemperatureFracPart: number | null\n /** 咳 */\n cough: string | null\n /** 備考(咳) */\n coughNote: string | null\n /** 鼻水 */\n runnyNose: string | null\n /** 備考(鼻水) */\n runnyNoseNote: string | null\n /** 湿疹 */\n eczema: string | null\n /** 軟膏名 */\n eczemaName: string | null\n /** アレルギー */\n allergy: string | null\n /** 備考(アレルギー) */\n allergyNote: string | null\n /** 食物アレルギー */\n foodAllergy: string | null\n /** 備考(食物アレルギー) */\n foodAllergyNote: string | null\n /** 薬 */\n medicine: string | null\n /** 備考(薬) */\n medicineName: string | null\n /** 機嫌 */\n mood: string | null\n /** 備考(機嫌) */\n moodNote: string | null\n /** 病気 */\n disease: string | null\n /** 1か月以内にかかった病気 */\n diseaseWithinMonth: string | null\n /** 備考(病気) */\n diseaseNote: string | null\n /** 予防接種 */\n vaccine: string | null\n /** 予防接種時期 */\n vaccineMonthsAgo: number | null\n /** 備考(予防接種) */\n vaccineNote: string | null\n /** 病院受診 */\n hospitalVisit: string | null\n /** 病院受診時期 */\n hospitalVisitMonthsAgo: number | null\n /** 備考(病院受診) */\n hospitalVisitNote: string | null\n /** 感染症 */\n infection: string | null\n /** 備考(感染症) */\n infectionNote: string | null\n /** 本日の体調に関する注意点 */\n todayConditionPoint: string | null\n /** 備考(本日の体調) */\n todayConditionPointNote: string | null\n /** 散歩 */\n stroll: string | null\n /** 昨夜の睡眠 */\n lastNightSleep: string | null\n /** 昨夜の就寝時刻 */\n lastNightFromTime: string | null\n /** 今朝の起床時刻 */\n lastNightToTime: string | null\n /** お昼寝 */\n nap: string | null\n /** お昼寝の種類 */\n napType: string | null\n /** 午前睡眠開始時刻 */\n napAmFromTime: string | null\n /** 午前睡眠終了時刻 */\n napAmToTime: string | null\n /** 午後睡眠開始時刻 */\n napPmFromTime: string | null\n /** 午後睡眠終了時刻 */\n napPmToTime: string | null\n /** 排便タイミング */\n defecationTiming: string | null\n /** 排便時刻 */\n defecationHours: number | null\n /** 排便日 */\n defecationDaysAgo: number | null\n /** 排便の状態 */\n defecationCondition: string | null\n /** 食事 */\n meal: string | null\n /** 食事時刻 */\n mealTime: string | null\n /** 栄養方法 */\n eatingMethod: string | null\n /** 朝食 */\n breakfast: string | null\n /** 朝食時刻 */\n breakfastTime: string | null\n /** 朝食食事内容 */\n breakfastWhat: string | null\n /** 昼食 */\n lunch: string | null\n /** 朝食時刻 */\n lunchTime: string | null\n /** 朝食食事内容 */\n lunchWhat: string | null\n /** おやつ */\n snack: string | null\n /** おやつ時刻 */\n snackTime: string | null\n /** 栄養方法詳細 */\n eatingMethodDetail: string | null\n /** ミルク量 */\n milkAmount: number | null\n /** ミルク接種時刻 */\n milkTime: string | null\n /** 母乳接種時刻 */\n breastMilkTime: string | null\n /** 送迎者種類 */\n escortType: string | null\n /** 送迎者1氏名 */\n escort1Name: string | null\n /** 送迎者1続柄 */\n escort1Relationship: string | null\n /** 送迎者1電話番号 */\n escort1Tel: string | null\n /** 送迎者2氏名 */\n escort2Name: string | null\n /** 送迎者2続柄 */\n escort2Relationship: string | null\n /** 送迎者2電話番号 */\n escort2Tel: string | null\n /** 持ち物 */\n belongings: string[] | null\n /** ミルク回数 */\n belongingsMilkCount: number | null\n /** ミルクを溶かすお湯の量 */\n belongingsMilkDissolveHotWater: number | null\n /** 持ち物(その他) */\n belongingsOther: string | null\n /** 備考 */\n note: string | null\n}\n\nexport type facilityReservationTodayConditionInputKey = FieldPath\n\nexport interface TodayConditionInputDecodeMst {\n napType: PostDecodeMstDto[]\n defecationTiming: PostDecodeMstDto[]\n defecationCondition: PostDecodeMstDto[]\n eatingMethod: PostDecodeMstDto[]\n amountOfFood: PostDecodeMstDto[]\n brestFeedingDetail: PostDecodeMstDto[]\n escortType: PostDecodeMstDto[]\n belongings: PostDecodeMstDto[]\n}\n\nconst TODAY_CONDITION_INPUT_DECODE_MST_LIST = {\n /** お昼寝の種類 */\n napType: 'nap_type',\n // 排便タイミング\n defecationTiming: 'defecation_timing',\n // 便の状態\n defecationCondition: 'defecation_condition',\n // 栄養方法\n eatingMethod: 'eating_method',\n // 食事量\n amountOfFood: 'amount_of_food',\n // 栄養方法詳細\n brestFeedingDetail: 'brest_feeding_detail',\n // 送迎者種類\n escortType: 'escort_type',\n // 持ち物\n belongings: 'belongings',\n}\n\nexport const useAction = () => {\n const history = useHistory()\n const { reservationNo } = useParams()\n\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n\n const { addOperationLog } = useOperationLog()\n\n const [todayConditionInputDetail, setTodayConditionInputDetail] = useState(\n null\n )\n const [todayConditionInputDecodeMst, setTodayConditionInputDecodeMst] = useState(\n null\n )\n const [isCough, setIsCough] = useState(false)\n const [isRunnyNose, setIsRunnyNose] = useState(false)\n const [isEczema, setIsEczema] = useState(false)\n const [isAllergy, setIsAllergy] = useState(false)\n const [isFoodAllergy, setIsFoodAllergy] = useState(false)\n const [isMedicine, setIsMedicine] = useState(false)\n const [isMood, setIsMood] = useState(false)\n const [isDisease, setIsDisease] = useState(false)\n const [isVaccine, setIsVaccine] = useState(false)\n const [isHospitalVisit, setIsHospitalVisit] = useState(false)\n const [isInfection, setIsInfection] = useState(false)\n const [isTodayConditionPoint, setIsTodayConditionPoint] = useState(false)\n const [isStroll, setIsStroll] = useState(false)\n const [isLastNightSleep, setIsLastNightSleep] = useState(false)\n const [isNap, setIsNap] = useState(false)\n const [napType, setNapType] = useState(null)\n const [defecationTiming, setDefecationTiming] = useState(null)\n const [isMeal, setIsMeal] = useState(false)\n const [eatingMethod, setEatingMethod] = useState(null)\n const [breakfast, setBreakfast] = useState(null)\n const [lunch, setLunch] = useState(null)\n const [snack, setSnack] = useState(null)\n const [eatingMethodDetail, setEatingMethodDetail] = useState(null)\n const [escortType, setEscortType] = useState(null)\n const [belongings, setBelongings] = useState(null)\n const [isShowNoChange, setIsShowNoChange] = useState(false)\n const [initPutTodayConditionInputDto, setInitPutTodayConditionInputDto] = useState(\n null\n )\n\n const formMethods = useForm()\n const inputState = useSelector(selectInput)\n\n // 健康チェック入力では選択肢を「はい、いいえ」のラベルで表示するため言語ファイルからラベル情報を取得\n const yesNos = getClassificationValueLabels(\n 'facilityReservationTodayConditionInput.form.common.yesNo',\n Object.values(yesNo)\n ).sort((a, b) => parseInt(b.value) - parseInt(a.value));\n\n // 初期化処理\n const initialize = useCallback(async () => {\n // 当日入力に必要な情報を取得する\n const todayConditionInputDetailRes: ApiResponse =\n await executeGetTodayConditionInputDetail(reservationNo)\n const todayConditionInputDetail = todayConditionInputDetailRes.result\n\n if (todayConditionInputDetail) {\n const editInitPutTodayConditionInputDto = _responseDtoToInputData(todayConditionInputDetail)\n setInitPutTodayConditionInputDto(editInitPutTodayConditionInputDto)\n if (inputState) {\n _inputStateToInputData(inputState)\n }\n setTodayConditionInputDetail(todayConditionInputDetail)\n }\n\n // 入力時の選択肢として必要な情報をdecode_mstから取得する\n const getDecodeMstValues: TodayConditionInputDecodeMst = await getDecodeMstValue(\n TODAY_CONDITION_INPUT_DECODE_MST_LIST\n )\n if (getDecodeMstValues) {\n setTodayConditionInputDecodeMst(getDecodeMstValues)\n }\n }, [reservationNo, inputState])\n\n // 初回レンダリング時の処理\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000193 })\n\n dispatch(showLoading(errorHandle(() => initialize())))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n\n // 入力フォームの値が更新されたことを検知するためのサブスクリプションを定義\n const subscription = formMethods.watch((values, { name }) => {\n if (name === 'cough') {\n setIsCough(values.cough === '1')\n }\n if (name === 'runnyNose') {\n setIsRunnyNose(values.runnyNose === '1')\n }\n if (name === 'eczema') {\n setIsEczema(values.eczema === '1')\n // 必須チェックの時にnullだと都合が悪いので空文字を設定する\n if (!formMethods.getValues('eczemaName')) {\n formMethods.setValue('eczemaName', '')\n }\n }\n if (name === 'allergy') {\n setIsAllergy(values.allergy === '1')\n }\n if (name === 'foodAllergy') {\n setIsFoodAllergy(values.foodAllergy === '1')\n }\n if (name === 'medicine') {\n setIsMedicine(values.medicine === '1')\n // 必須チェックの時にnullだと都合が悪いので空文字を設定する\n if (!formMethods.getValues('medicineName')) {\n formMethods.setValue('medicineName', '')\n }\n }\n if (name === 'mood') {\n setIsMood(values.mood === '1')\n }\n if (name === 'disease') {\n setIsDisease(values.disease === '1')\n }\n if (name === 'vaccine') {\n setIsVaccine(values.vaccine === '1')\n }\n if (name === 'hospitalVisit') {\n setIsHospitalVisit(values.hospitalVisit === '1')\n }\n if (name === 'infection') {\n setIsInfection(values.infection === '1')\n }\n if (name === 'todayConditionPoint') {\n setIsTodayConditionPoint(values.todayConditionPoint === '1')\n }\n if (name === 'stroll') {\n setIsStroll(values.stroll === '1')\n }\n if (name === 'lastNightSleep') {\n setIsLastNightSleep(values.lastNightSleep === '1')\n }\n if (name === 'nap') {\n setIsNap(values.nap === '1')\n }\n if (name === 'napType') {\n setNapType(values.napType ? values.napType : null)\n }\n if (name === 'defecationTiming') {\n setDefecationTiming(values.defecationTiming ? values.defecationTiming : null)\n }\n if (name === 'meal') {\n setIsMeal(values.meal === '1')\n }\n if (name === 'eatingMethod') {\n setEatingMethod(values.eatingMethod ? values.eatingMethod : null)\n }\n if (name === 'breakfast') {\n setBreakfast(values.breakfast ? values.breakfast : null)\n // 必須チェックの時にnullだと都合が悪いので空文字を設定する\n if (!formMethods.getValues('breakfastWhat')) {\n formMethods.setValue('breakfastWhat', '')\n }\n }\n if (name === 'lunch') {\n setLunch(values.lunch ? values.lunch : null)\n // 必須チェックの時にnullだと都合が悪いので空文字を設定する\n if (!formMethods.getValues('lunchWhat')) {\n formMethods.setValue('lunchWhat', '')\n }\n }\n if (name === 'snack') {\n setSnack(values.snack ? values.snack : null)\n }\n if (name === 'eatingMethodDetail') {\n setEatingMethodDetail(values.eatingMethodDetail ? values.eatingMethodDetail : null)\n }\n if (name === 'escortType') {\n setEscortType(values.escortType ? values.escortType : null)\n }\n if (name === 'belongings') {\n setBelongings(values.belongings ? values.belongings.join(',') : '')\n if (\n values.belongings &&\n values.belongings.includes(todayConditionBelongings.other) &&\n !formMethods.getValues('belongingsOther')\n ) {\n formMethods.setValue('belongingsOther', '')\n }\n }\n })\n return () => subscription.unsubscribe()\n }, [])\n\n // フォームのボタン押下\n const onSubmit = useCallback(\n (data: Inputs) => {\n const putTodayConditionInputDto = _inputDataToRequstDto(todayConditionInputDetail, data)\n // 初期表示から値の変更があるかチェックする\n // Inputsをそのまま比較すると、一度設定したが親要素の選択値によって非表示になった項目の値がそのまま残っていて上手く比較できないため\n // requestBodyに変換した値を比較する\n if (todayConditionInputDetail && putTodayConditionInputDto && _inputDataDiffCheck(putTodayConditionInputDto)) {\n // 差分がある場合は確認画面に遷移する\n dispatch(setReservationInfo(todayConditionInputDetail.reservationInfo))\n dispatch(setTodayConditionInputFieldsInfo(todayConditionInputDetail.todayConditionInputFieldsInfo))\n dispatch(setInput(putTodayConditionInputDto))\n history.push(facilityReservationTodayConditionInputConfirmationUrl.url(reservationNo))\n } else {\n // 差分がない場合は差分がない旨を通知するダイアログを開く\n setIsShowNoChange(true)\n return\n }\n },\n [\n formMethods,\n todayConditionInputDetail,\n initPutTodayConditionInputDto,\n isCough,\n isRunnyNose,\n isEczema,\n isAllergy,\n isFoodAllergy,\n isMedicine,\n isMood,\n isDisease,\n isVaccine,\n isHospitalVisit,\n isInfection,\n isTodayConditionPoint,\n isStroll,\n isLastNightSleep,\n isNap,\n napType,\n defecationTiming,\n isMeal,\n eatingMethod,\n breakfast,\n lunch,\n snack,\n eatingMethodDetail,\n escortType,\n belongings,\n ]\n )\n\n // 入力フォームの内容をリクエストボディに変換する\n const _inputDataToRequstDto = (\n todayConditionInputDetailData: GetTodayConditionInputDetailDto | null,\n data: Inputs | null\n ): PutTodayConditionInputDto | null => {\n if (!data) {\n return null\n }\n\n const requestBody: PutTodayConditionInputDto = {\n // =====きょうの様子セクション===============\n // 体温(登園前)\n morningBodyTemperature:\n data.morningBodyTemperatureIntPart\n ? Number(`${data.morningBodyTemperatureIntPart}.${data.morningBodyTemperatureFracPart == null || isNaN(data.morningBodyTemperatureFracPart) ? 0 : data.morningBodyTemperatureFracPart}`)\n : null,\n // 測定時刻(登園前)\n morningBodyTemperatureMeasurementTime: data.morningBodyTemperatureMeasurementTime\n ? String(data.morningBodyTemperatureMeasurementTime)\n : null,\n // 体温(午前)\n afterComingAmBodyTemperature:\n data.afterComingAmBodyTemperatureIntPart\n ? Number(`${data.afterComingAmBodyTemperatureIntPart}.${data.afterComingAmBodyTemperatureFracPart == null || isNaN(data.afterComingAmBodyTemperatureFracPart) ? 0 : data.afterComingAmBodyTemperatureFracPart}`)\n : null,\n // 体温(午後)\n afterComingPmBodyTemperature:\n data.afterComingPmBodyTemperatureIntPart\n ? Number(`${data.afterComingPmBodyTemperatureIntPart}.${data.afterComingPmBodyTemperatureFracPart == null || isNaN(data.afterComingPmBodyTemperatureFracPart) ? 0 : data.afterComingPmBodyTemperatureFracPart}`)\n : null,\n // 咳\n cough: data.cough ? data.cough : null,\n // 備考(咳)\n coughNote: data.cough === '1' ? data.coughNote : null,\n // 鼻水\n runnyNose: data.runnyNose ? data.runnyNose : null,\n // 備考(鼻水)\n runnyNoseNote: data.runnyNose === '1' ? data.runnyNoseNote : null,\n // 湿疹\n eczema: data.eczema ? data.eczema : null,\n // 軟膏名\n eczemaName: data.eczema === '1' ? data.eczemaName : null,\n // アレルギー\n allergy: data.allergy ? data.allergy : null,\n // 備考(アレルギー)\n allergyNote: data.allergy === '1' ? data.allergyNote : null,\n // 食物アレルギー\n foodAllergy: data.foodAllergy ? data.foodAllergy : null,\n // 備考(食物アレルギー)\n foodAllergyNote: data.foodAllergy === '1' ? data.foodAllergyNote : null,\n // 薬\n medicine: data.medicine ? data.medicine : null,\n // 備考(薬)\n medicineName: data.medicine === '1' ? data.medicineName : null,\n // 機嫌\n mood: data.mood ? data.mood : null,\n // 備考(機嫌)\n moodNote: data.mood === '1' ? data.moodNote : null,\n // 病気\n disease: data.disease ? data.disease : null,\n // 1か月以内にかかった病気\n diseaseWithinMonth: data.disease === '1' ? (data.diseaseWithinMonth === '1' ? '1' : '0') : null,\n // 備考(病気)\n diseaseNote: data.disease === '1' ? data.diseaseNote : null,\n // 予防接種\n vaccine: data.vaccine ? data.vaccine : null,\n // 予防接種時期\n vaccineMonthsAgo: data.vaccine === '1' ? data.vaccineMonthsAgo : null,\n // 備考(予防接種)\n vaccineNote: data.vaccine === '1' ? data.vaccineNote : null,\n // 病院受診\n hospitalVisit: data.hospitalVisit ? data.hospitalVisit : null,\n // 病院受診時期\n hospitalVisitMonthsAgo: data.hospitalVisit === '1' ? data.hospitalVisitMonthsAgo : null,\n // 備考(病院受診)\n hospitalVisitNote: data.hospitalVisit === '1' ? data.hospitalVisitNote : null,\n // 感染症\n infection: data.infection ? data.infection : null,\n // 備考(感染症)\n infectionNote: data.infection === '1' ? data.infectionNote : null,\n // 本日の体調に関する注意点\n todayConditionPoint: data.todayConditionPoint ? data.todayConditionPoint : null,\n // 備考(本日の体調)\n todayConditionPointNote: data.todayConditionPoint === '1' ? data.todayConditionPointNote : null,\n // 散歩\n stroll: data.stroll ? data.stroll : null,\n\n // =====睡眠セクション===============\n // 昨夜の睡眠\n lastNightSleep: data.lastNightSleep ? data.lastNightSleep : null,\n // 昨夜の就寝時刻\n lastNightFromTime: data.lastNightFromTime ? data.lastNightFromTime : null,\n // 今朝の起床時刻\n lastNightToTime: data.lastNightToTime ? data.lastNightToTime : null,\n // お昼寝\n nap: data.nap ? data.nap : null,\n // お昼寝の種類\n napType: isNap ? data.napType : null,\n // 午前睡眠開始時刻\n napAmFromTime:\n data.nap === '1' &&\n (data.napType === todayConditionInputNapType.amOnly || data.napType === todayConditionInputNapType.both)\n ? data.napAmFromTime\n : null,\n // 午前睡眠終了時刻\n napAmToTime:\n data.nap === '1' &&\n (data.napType === todayConditionInputNapType.amOnly || data.napType === todayConditionInputNapType.both)\n ? data.napAmToTime\n : null,\n // 午後睡眠開始時刻\n napPmFromTime:\n data.nap === '1' &&\n (data.napType === todayConditionInputNapType.pmOnly || data.napType === todayConditionInputNapType.both)\n ? data.napPmFromTime\n : null,\n // 午後睡眠終了時刻\n napPmToTime:\n data.nap === '1' &&\n (data.napType === todayConditionInputNapType.pmOnly || data.napType === todayConditionInputNapType.both)\n ? data.napPmToTime\n : null,\n\n // =====排便セクション===============\n // 排便タイミング\n defecationTiming: data.defecationTiming ? data.defecationTiming : null,\n // 排便時刻\n defecationHours: data.defecationTiming === todayConditionDefecationTiming.yesterday ? data.defecationHours : null,\n // 排便日\n defecationDaysAgo:\n data.defecationTiming === todayConditionDefecationTiming.twoDaysAgoOrLater ? data.defecationDaysAgo : null,\n // 排便の状態\n defecationCondition: data.defecationCondition ? data.defecationCondition : null,\n\n // =====食事セクション===============\n // 食事\n meal: data.meal ? data.meal : null,\n // 食事時刻\n mealTime: isMeal ? data.mealTime : null,\n // 栄養方法\n eatingMethod: data.eatingMethod ? data.eatingMethod : null,\n // 朝食\n breakfast:\n data.eatingMethod && data.eatingMethod !== reservationEatingMethod.brestFeeding ? data.breakfast : null,\n // 朝食時刻\n breakfastTime:\n data.eatingMethod &&\n data.eatingMethod !== reservationEatingMethod.brestFeeding &&\n data.breakfast &&\n data.breakfast !== todayConditionAmountOfFood.none\n ? data.breakfastTime\n : null,\n // 朝食食事内容\n breakfastWhat:\n data.eatingMethod &&\n data.eatingMethod !== reservationEatingMethod.brestFeeding &&\n data.breakfast &&\n data.breakfast !== todayConditionAmountOfFood.none\n ? data.breakfastWhat\n : null,\n // 昼食\n lunch: data.eatingMethod && data.eatingMethod !== reservationEatingMethod.brestFeeding ? data.lunch : null,\n // 昼食時刻\n lunchTime:\n data.eatingMethod &&\n data.eatingMethod !== reservationEatingMethod.brestFeeding &&\n data.lunch &&\n data.lunch !== todayConditionAmountOfFood.none\n ? data.lunchTime\n : null,\n // 昼食食事内容\n lunchWhat:\n data.eatingMethod &&\n data.eatingMethod !== reservationEatingMethod.brestFeeding &&\n data.lunch &&\n data.lunch !== todayConditionAmountOfFood.none\n ? data.lunchWhat\n : null,\n // おやつ\n snack: data.eatingMethod && data.eatingMethod !== reservationEatingMethod.brestFeeding ? data.snack : null,\n // おやつ時刻\n snackTime:\n data.eatingMethod &&\n data.eatingMethod !== reservationEatingMethod.brestFeeding &&\n data.snack &&\n data.snack === '1'\n ? data.snackTime\n : null,\n // 栄養方法詳細\n eatingMethodDetail: data.eatingMethod === reservationEatingMethod.brestFeeding ? data.eatingMethodDetail : null,\n // ミルク量\n milkAmount:\n data.eatingMethod === reservationEatingMethod.brestFeeding &&\n data.eatingMethodDetail &&\n data.eatingMethodDetail !== reservationBrestFeedingDetail.breastMilk\n ? data.milkAmount\n : null,\n // ミルク接種時刻\n milkTime:\n data.eatingMethod === reservationEatingMethod.brestFeeding &&\n data.eatingMethodDetail &&\n data.eatingMethodDetail !== reservationBrestFeedingDetail.breastMilk\n ? data.milkTime\n : null,\n // 母乳接種時刻\n breastMilkTime:\n data.eatingMethod === reservationEatingMethod.brestFeeding &&\n data.eatingMethodDetail &&\n data.eatingMethodDetail !== reservationBrestFeedingDetail.formula\n ? data.breastMilkTime\n : null,\n\n // =====その他セクション===============\n // 送迎者種類\n escortType: data.escortType ? data.escortType : null,\n // 送迎者1氏名\n escort1Name:\n data.escortType && data.escortType === todayConditionEscortType.transportationByAgent ? data.escort1Name : null,\n // 送迎者1続柄\n escort1Relationship:\n data.escortType && data.escortType === todayConditionEscortType.transportationByAgent\n ? data.escort1Relationship\n : null,\n // 送迎者1電話番号\n escort1Tel:\n data.escortType && data.escortType === todayConditionEscortType.transportationByAgent ? data.escort1Tel : null,\n // 送迎者2氏名\n escort2Name:\n data.escortType && data.escortType === todayConditionEscortType.transportationByAgent ? data.escort2Name : null,\n // 送迎者2続柄\n escort2Relationship:\n data.escortType && data.escortType === todayConditionEscortType.transportationByAgent\n ? data.escort2Relationship\n : null,\n // 送迎者2電話番号\n escort2Tel:\n data.escortType && data.escortType === todayConditionEscortType.transportationByAgent ? data.escort2Tel : null,\n // 持ち物\n belongings: data.belongings && data.belongings.length > 0 ? data.belongings.join(',') : null,\n // ミルク回数\n belongingsMilkCount:\n data.belongings && data.belongings.includes(todayConditionBelongings.milk) ? data.belongingsMilkCount : null,\n // ミルクを溶かすお湯の量\n belongingsMilkDissolveHotWater:\n data.belongings && data.belongings.includes(todayConditionBelongings.milk)\n ? data.belongingsMilkDissolveHotWater\n : null,\n // 持ち物(その他)\n belongingsOther:\n data.belongings && data.belongings.includes(todayConditionBelongings.other) ? data.belongingsOther : null,\n // 備考\n note: data.note,\n\n // =====排他制御用===============\n // 更新日時\n updateDateTime: todayConditionInputDetailData\n ? todayConditionInputDetailData.todayConditionInputInfo.updateDateTime\n : null,\n }\n\n return requestBody\n }\n\n // レスポンスボディの内容を入力フォームに変換(設定)する\n const _responseDtoToInputData = (\n getTodayConditionInputDetailDto: GetTodayConditionInputDetailDto\n ): PutTodayConditionInputDto | null => {\n const { todayConditionInputInfo } = getTodayConditionInputDetailDto\n\n // フォームの初期値を設定する\n //体温(登園前)\n let morningBodyTemperatureIntPart = null\n let morningBodyTemperatureFracPart = null\n if (todayConditionInputInfo.morningBodyTemperature) {\n const [intPart, FracPart] = String(todayConditionInputInfo.morningBodyTemperature).split('.')\n morningBodyTemperatureIntPart = Number(intPart)\n morningBodyTemperatureFracPart = FracPart ? Number(FracPart) : 0\n }\n formMethods.setValue('morningBodyTemperatureIntPart', morningBodyTemperatureIntPart)\n formMethods.setValue('morningBodyTemperatureFracPart', morningBodyTemperatureFracPart)\n formMethods.setValue(\n 'morningBodyTemperatureMeasurementTime',\n todayConditionInputInfo.morningBodyTemperatureMeasurementTime\n )\n //体温(午前)\n let afterComingAmBodyTemperatureIntPart = null\n let afterComingAmBodyTemperatureFracPart = null\n if (todayConditionInputInfo.afterComingAmBodyTemperature) {\n const [intPart, FracPart] = String(todayConditionInputInfo.afterComingAmBodyTemperature).split('.')\n afterComingAmBodyTemperatureIntPart = Number(intPart)\n afterComingAmBodyTemperatureFracPart = FracPart ? Number(FracPart) : 0\n }\n formMethods.setValue('afterComingAmBodyTemperatureIntPart', afterComingAmBodyTemperatureIntPart)\n formMethods.setValue('afterComingAmBodyTemperatureFracPart', afterComingAmBodyTemperatureFracPart)\n //体温(午後)\n let afterComingPmBodyTemperatureIntPart = null\n let afterComingPmBodyTemperatureFracPart = null\n if (todayConditionInputInfo.afterComingPmBodyTemperature) {\n const [intPart, FracPart] = String(todayConditionInputInfo.afterComingPmBodyTemperature).split('.')\n afterComingPmBodyTemperatureIntPart = Number(intPart)\n afterComingPmBodyTemperatureFracPart = FracPart ? Number(FracPart) : 0\n }\n formMethods.setValue('afterComingPmBodyTemperatureIntPart', afterComingPmBodyTemperatureIntPart)\n formMethods.setValue('afterComingPmBodyTemperatureFracPart', afterComingPmBodyTemperatureFracPart)\n formMethods.setValue('cough', todayConditionInputInfo.cough)\n formMethods.setValue('coughNote', todayConditionInputInfo.coughNote)\n formMethods.setValue('runnyNose', todayConditionInputInfo.runnyNose)\n formMethods.setValue('runnyNoseNote', todayConditionInputInfo.runnyNoseNote)\n formMethods.setValue('eczema', todayConditionInputInfo.eczema)\n formMethods.setValue('eczemaName', todayConditionInputInfo.eczemaName)\n formMethods.setValue('allergy', todayConditionInputInfo.allergy)\n formMethods.setValue('allergyNote', todayConditionInputInfo.allergyNote)\n formMethods.setValue('foodAllergy', todayConditionInputInfo.foodAllergy)\n formMethods.setValue('foodAllergyNote', todayConditionInputInfo.foodAllergyNote)\n formMethods.setValue('medicine', todayConditionInputInfo.medicine)\n formMethods.setValue('medicineName', todayConditionInputInfo.medicineName)\n formMethods.setValue('mood', todayConditionInputInfo.mood)\n formMethods.setValue('moodNote', todayConditionInputInfo.moodNote)\n formMethods.setValue('disease', todayConditionInputInfo.disease)\n formMethods.setValue('diseaseWithinMonth', todayConditionInputInfo.diseaseWithinMonth)\n formMethods.setValue('diseaseNote', todayConditionInputInfo.diseaseNote)\n formMethods.setValue('vaccine', todayConditionInputInfo.vaccine)\n formMethods.setValue('vaccineMonthsAgo', todayConditionInputInfo.vaccineMonthsAgo)\n formMethods.setValue('vaccineNote', todayConditionInputInfo.vaccineNote)\n formMethods.setValue('hospitalVisit', todayConditionInputInfo.hospitalVisit)\n formMethods.setValue('hospitalVisitMonthsAgo', todayConditionInputInfo.hospitalVisitMonthsAgo)\n formMethods.setValue('hospitalVisitNote', todayConditionInputInfo.hospitalVisitNote)\n formMethods.setValue('infection', todayConditionInputInfo.infection)\n formMethods.setValue('infectionNote', todayConditionInputInfo.infectionNote)\n formMethods.setValue('todayConditionPoint', todayConditionInputInfo.todayConditionPoint)\n formMethods.setValue('todayConditionPointNote', todayConditionInputInfo.todayConditionPointNote)\n formMethods.setValue('stroll', todayConditionInputInfo.stroll)\n formMethods.setValue('lastNightSleep', todayConditionInputInfo.lastNightSleep)\n formMethods.setValue('lastNightFromTime', todayConditionInputInfo.lastNightFromTime)\n formMethods.setValue('lastNightToTime', todayConditionInputInfo.lastNightToTime)\n formMethods.setValue('nap', todayConditionInputInfo.nap)\n formMethods.setValue('napType', todayConditionInputInfo.napType)\n formMethods.setValue('napAmFromTime', todayConditionInputInfo.napAmFromTime)\n formMethods.setValue('napAmToTime', todayConditionInputInfo.napAmToTime)\n formMethods.setValue('napPmFromTime', todayConditionInputInfo.napPmFromTime)\n formMethods.setValue('napPmToTime', todayConditionInputInfo.napPmToTime)\n formMethods.setValue('defecationTiming', todayConditionInputInfo.defecationTiming)\n formMethods.setValue('defecationHours', todayConditionInputInfo.defecationHours)\n formMethods.setValue('defecationDaysAgo', todayConditionInputInfo.defecationDaysAgo)\n formMethods.setValue('defecationCondition', todayConditionInputInfo.defecationCondition)\n formMethods.setValue('meal', todayConditionInputInfo.meal)\n formMethods.setValue('mealTime', todayConditionInputInfo.mealTime)\n formMethods.setValue('eatingMethod', todayConditionInputInfo.eatingMethod)\n formMethods.setValue('breakfast', todayConditionInputInfo.breakfast)\n formMethods.setValue('breakfastTime', todayConditionInputInfo.breakfastTime)\n formMethods.setValue('breakfastWhat', todayConditionInputInfo.breakfastWhat)\n formMethods.setValue('lunch', todayConditionInputInfo.lunch)\n formMethods.setValue('lunchTime', todayConditionInputInfo.lunchTime)\n formMethods.setValue('lunchWhat', todayConditionInputInfo.lunchWhat)\n formMethods.setValue('snack', todayConditionInputInfo.snack)\n formMethods.setValue('snackTime', todayConditionInputInfo.snackTime)\n formMethods.setValue('eatingMethodDetail', todayConditionInputInfo.eatingMethodDetail)\n formMethods.setValue('milkAmount', todayConditionInputInfo.milkAmount)\n formMethods.setValue('milkTime', todayConditionInputInfo.milkTime)\n formMethods.setValue('breastMilkTime', todayConditionInputInfo.breastMilkTime)\n formMethods.setValue('escortType', todayConditionInputInfo.escortType)\n formMethods.setValue('escort1Name', todayConditionInputInfo.escort1Name)\n formMethods.setValue('escort1Relationship', todayConditionInputInfo.escort1Relationship)\n formMethods.setValue('escort1Tel', todayConditionInputInfo.escort1Tel ? todayConditionInputInfo.escort1Tel : '')\n formMethods.setValue('escort2Name', todayConditionInputInfo.escort2Name)\n formMethods.setValue('escort2Relationship', todayConditionInputInfo.escort2Relationship)\n formMethods.setValue('escort2Tel', todayConditionInputInfo.escort2Tel ? todayConditionInputInfo.escort2Tel : '')\n formMethods.setValue(\n 'belongings',\n todayConditionInputInfo.belongings ? todayConditionInputInfo.belongings.split(',') : []\n )\n formMethods.setValue('belongingsMilkCount', todayConditionInputInfo.belongingsMilkCount)\n formMethods.setValue('belongingsMilkDissolveHotWater', todayConditionInputInfo.belongingsMilkDissolveHotWater)\n formMethods.setValue('belongingsOther', todayConditionInputInfo.belongingsOther)\n formMethods.setValue('note', todayConditionInputInfo.note)\n\n const editInitPutTodayConditionInputDto = _inputDataToRequstDto(todayConditionInputDetail, {\n morningBodyTemperatureIntPart: morningBodyTemperatureIntPart,\n morningBodyTemperatureFracPart: morningBodyTemperatureFracPart,\n morningBodyTemperatureMeasurementTime: todayConditionInputInfo.morningBodyTemperatureMeasurementTime,\n afterComingAmBodyTemperatureIntPart: afterComingAmBodyTemperatureIntPart,\n afterComingAmBodyTemperatureFracPart: afterComingAmBodyTemperatureFracPart,\n afterComingPmBodyTemperatureIntPart: afterComingPmBodyTemperatureIntPart,\n afterComingPmBodyTemperatureFracPart: afterComingPmBodyTemperatureFracPart,\n cough: todayConditionInputInfo.cough,\n coughNote: todayConditionInputInfo.coughNote,\n runnyNose: todayConditionInputInfo.runnyNose,\n runnyNoseNote: todayConditionInputInfo.runnyNoseNote,\n eczema: todayConditionInputInfo.eczema,\n eczemaName: todayConditionInputInfo.eczemaName,\n allergy: todayConditionInputInfo.allergy,\n allergyNote: todayConditionInputInfo.allergyNote,\n foodAllergy: todayConditionInputInfo.foodAllergy,\n foodAllergyNote: todayConditionInputInfo.foodAllergyNote,\n medicine: todayConditionInputInfo.medicine,\n medicineName: todayConditionInputInfo.medicineName,\n mood: todayConditionInputInfo.mood,\n moodNote: todayConditionInputInfo.moodNote,\n disease: todayConditionInputInfo.disease,\n diseaseWithinMonth: todayConditionInputInfo.diseaseWithinMonth,\n diseaseNote: todayConditionInputInfo.diseaseNote,\n vaccine: todayConditionInputInfo.vaccine,\n vaccineMonthsAgo: todayConditionInputInfo.vaccineMonthsAgo,\n vaccineNote: todayConditionInputInfo.vaccineNote,\n hospitalVisit: todayConditionInputInfo.hospitalVisit,\n hospitalVisitMonthsAgo: todayConditionInputInfo.hospitalVisitMonthsAgo,\n hospitalVisitNote: todayConditionInputInfo.hospitalVisitNote,\n infection: todayConditionInputInfo.infection,\n infectionNote: todayConditionInputInfo.infectionNote,\n todayConditionPoint: todayConditionInputInfo.todayConditionPoint,\n todayConditionPointNote: todayConditionInputInfo.todayConditionPointNote,\n stroll: todayConditionInputInfo.stroll,\n lastNightSleep: todayConditionInputInfo.lastNightSleep,\n lastNightFromTime: todayConditionInputInfo.lastNightFromTime,\n lastNightToTime: todayConditionInputInfo.lastNightToTime,\n nap: todayConditionInputInfo.nap,\n napType: todayConditionInputInfo.napType,\n napAmFromTime: todayConditionInputInfo.napAmFromTime,\n napAmToTime: todayConditionInputInfo.napAmToTime,\n napPmFromTime: todayConditionInputInfo.napPmFromTime,\n napPmToTime: todayConditionInputInfo.napPmToTime,\n defecationTiming: todayConditionInputInfo.defecationTiming,\n defecationHours: todayConditionInputInfo.defecationHours,\n defecationDaysAgo: todayConditionInputInfo.defecationDaysAgo,\n defecationCondition: todayConditionInputInfo.defecationCondition,\n meal: todayConditionInputInfo.meal,\n mealTime: todayConditionInputInfo.mealTime,\n eatingMethod: todayConditionInputInfo.eatingMethod,\n breakfast: todayConditionInputInfo.breakfast,\n breakfastTime: todayConditionInputInfo.breakfastTime,\n breakfastWhat: todayConditionInputInfo.breakfastWhat,\n lunch: todayConditionInputInfo.lunch,\n lunchTime: todayConditionInputInfo.lunchTime,\n lunchWhat: todayConditionInputInfo.lunchWhat,\n snack: todayConditionInputInfo.snack,\n snackTime: todayConditionInputInfo.snackTime,\n eatingMethodDetail: todayConditionInputInfo.eatingMethodDetail,\n milkAmount: todayConditionInputInfo.milkAmount,\n milkTime: todayConditionInputInfo.milkTime,\n breastMilkTime: todayConditionInputInfo.breastMilkTime,\n escortType: todayConditionInputInfo.escortType,\n escort1Name: todayConditionInputInfo.escort1Name,\n escort1Relationship: todayConditionInputInfo.escort1Relationship,\n escort1Tel: todayConditionInputInfo.escort1Tel,\n escort2Name: todayConditionInputInfo.escort2Name,\n escort2Relationship: todayConditionInputInfo.escort2Relationship,\n escort2Tel: todayConditionInputInfo.escort2Tel,\n belongings: todayConditionInputInfo.belongings ? todayConditionInputInfo.belongings.split(',') : [],\n belongingsMilkCount: todayConditionInputInfo.belongingsMilkCount,\n belongingsMilkDissolveHotWater: todayConditionInputInfo.belongingsMilkDissolveHotWater,\n belongingsOther: todayConditionInputInfo.belongingsOther,\n note: todayConditionInputInfo.note,\n })\n return editInitPutTodayConditionInputDto\n }\n\n // 入力フォームの内容と初期表示の内容に差があるかを判定する\n const _inputDataDiffCheck = (data: PutTodayConditionInputDto | null): boolean => {\n if (!data || !initPutTodayConditionInputDto) {\n return false\n }\n\n // Inputs の全てのキーを取得して比較\n const keys = Object.keys(data) as (keyof PutTodayConditionInputDto)[]\n\n // フィールドごとに値を比較して、異なる場合は true を返す\n for (const key of keys) {\n if (key === 'updateDateTime') {\n return false\n }\n if (JSON.stringify(data[key]) !== JSON.stringify(initPutTodayConditionInputDto[key])) {\n return true\n }\n }\n\n // 全てのフィールドが一致する場合は false を返す\n return false\n }\n\n // recoil管理のstateの内容を入力フォームに変換(設定)する\n const _inputStateToInputData = (inputState: PutTodayConditionInputDto) => {\n // フォームの初期値を設定する\n //体温(登園前)\n let morningBodyTemperatureIntPart = null\n let morningBodyTemperatureFracPart = null\n if (inputState.morningBodyTemperature) {\n const [intPart, FracPart] = String(inputState.morningBodyTemperature).split('.')\n morningBodyTemperatureIntPart = Number(intPart)\n morningBodyTemperatureFracPart = Number(FracPart)\n }\n formMethods.setValue('morningBodyTemperatureIntPart', morningBodyTemperatureIntPart)\n formMethods.setValue('morningBodyTemperatureFracPart', morningBodyTemperatureFracPart)\n formMethods.setValue('morningBodyTemperatureMeasurementTime', inputState.morningBodyTemperatureMeasurementTime)\n //体温(朝)\n let afterComingAmBodyTemperatureIntPart = null\n let afterComingAmBodyTemperatureFracPart = null\n if (inputState.afterComingAmBodyTemperature) {\n const [intPart, FracPart] = String(inputState.afterComingAmBodyTemperature).split('.')\n afterComingAmBodyTemperatureIntPart = Number(intPart)\n afterComingAmBodyTemperatureFracPart = Number(FracPart)\n }\n formMethods.setValue('afterComingAmBodyTemperatureIntPart', afterComingAmBodyTemperatureIntPart)\n formMethods.setValue('afterComingAmBodyTemperatureFracPart', afterComingAmBodyTemperatureFracPart)\n //体温(夕)\n let afterComingPmBodyTemperatureIntPart = null\n let afterComingPmBodyTemperatureFracPart = null\n if (inputState.afterComingPmBodyTemperature) {\n const [intPart, FracPart] = String(inputState.afterComingPmBodyTemperature).split('.')\n afterComingPmBodyTemperatureIntPart = Number(intPart)\n afterComingPmBodyTemperatureFracPart = Number(FracPart)\n }\n formMethods.setValue('afterComingPmBodyTemperatureIntPart', afterComingPmBodyTemperatureIntPart)\n formMethods.setValue('afterComingPmBodyTemperatureFracPart', afterComingPmBodyTemperatureFracPart)\n formMethods.setValue('cough', inputState.cough)\n formMethods.setValue('coughNote', inputState.coughNote)\n formMethods.setValue('runnyNose', inputState.runnyNose)\n formMethods.setValue('runnyNoseNote', inputState.runnyNoseNote)\n formMethods.setValue('eczema', inputState.eczema)\n formMethods.setValue('eczemaName', inputState.eczemaName)\n formMethods.setValue('allergy', inputState.allergy)\n formMethods.setValue('allergyNote', inputState.allergyNote)\n formMethods.setValue('foodAllergy', inputState.foodAllergy)\n formMethods.setValue('foodAllergyNote', inputState.foodAllergyNote)\n formMethods.setValue('medicine', inputState.medicine)\n formMethods.setValue('medicineName', inputState.medicineName)\n formMethods.setValue('mood', inputState.mood)\n formMethods.setValue('moodNote', inputState.moodNote)\n formMethods.setValue('disease', inputState.disease)\n formMethods.setValue('diseaseWithinMonth', inputState.diseaseWithinMonth)\n formMethods.setValue('diseaseNote', inputState.diseaseNote)\n formMethods.setValue('vaccine', inputState.vaccine)\n formMethods.setValue('vaccineMonthsAgo', inputState.vaccineMonthsAgo)\n formMethods.setValue('vaccineNote', inputState.vaccineNote)\n formMethods.setValue('hospitalVisit', inputState.hospitalVisit)\n formMethods.setValue('hospitalVisitMonthsAgo', inputState.hospitalVisitMonthsAgo)\n formMethods.setValue('hospitalVisitNote', inputState.hospitalVisitNote)\n formMethods.setValue('infection', inputState.infection)\n formMethods.setValue('infectionNote', inputState.infectionNote)\n formMethods.setValue('todayConditionPoint', inputState.todayConditionPoint)\n formMethods.setValue('todayConditionPointNote', inputState.todayConditionPointNote)\n formMethods.setValue('stroll', inputState.stroll)\n formMethods.setValue('lastNightSleep', inputState.lastNightSleep)\n formMethods.setValue('lastNightFromTime', inputState.lastNightFromTime)\n formMethods.setValue('lastNightToTime', inputState.lastNightToTime)\n formMethods.setValue('nap', inputState.nap)\n formMethods.setValue('napType', inputState.napType)\n formMethods.setValue('napAmFromTime', inputState.napAmFromTime)\n formMethods.setValue('napAmToTime', inputState.napAmToTime)\n formMethods.setValue('napPmFromTime', inputState.napPmFromTime)\n formMethods.setValue('napPmToTime', inputState.napPmToTime)\n formMethods.setValue('defecationTiming', inputState.defecationTiming)\n formMethods.setValue('defecationHours', inputState.defecationHours)\n formMethods.setValue('defecationDaysAgo', inputState.defecationDaysAgo)\n formMethods.setValue('defecationCondition', inputState.defecationCondition)\n formMethods.setValue('meal', inputState.meal)\n formMethods.setValue('mealTime', inputState.mealTime)\n formMethods.setValue('eatingMethod', inputState.eatingMethod)\n formMethods.setValue('breakfast', inputState.breakfast)\n formMethods.setValue('breakfastTime', inputState.breakfastTime)\n formMethods.setValue('breakfastWhat', inputState.breakfastWhat)\n formMethods.setValue('lunch', inputState.lunch)\n formMethods.setValue('lunchTime', inputState.lunchTime)\n formMethods.setValue('lunchWhat', inputState.lunchWhat)\n formMethods.setValue('snack', inputState.snack)\n formMethods.setValue('snackTime', inputState.snackTime)\n formMethods.setValue('eatingMethodDetail', inputState.eatingMethodDetail)\n formMethods.setValue('milkAmount', inputState.milkAmount)\n formMethods.setValue('milkTime', inputState.milkTime)\n formMethods.setValue('breastMilkTime', inputState.breastMilkTime)\n formMethods.setValue('escortType', inputState.escortType)\n formMethods.setValue('escort1Name', inputState.escort1Name)\n formMethods.setValue('escort1Relationship', inputState.escort1Relationship)\n formMethods.setValue('escort1Tel', inputState.escort1Tel ? inputState.escort1Tel : '')\n formMethods.setValue('escort2Name', inputState.escort2Name)\n formMethods.setValue('escort2Relationship', inputState.escort2Relationship)\n formMethods.setValue('escort2Tel', inputState.escort2Tel ? inputState.escort2Tel : '')\n formMethods.setValue('belongings', inputState.belongings ? inputState.belongings.split(',') : [])\n formMethods.setValue('belongingsMilkCount', inputState.belongingsMilkCount)\n formMethods.setValue('belongingsMilkDissolveHotWater', inputState.belongingsMilkDissolveHotWater)\n formMethods.setValue('belongingsOther', inputState.belongingsOther)\n formMethods.setValue('note', inputState.note)\n }\n return {\n history,\n reservationNo,\n todayConditionInputDetail,\n todayConditionInputDecodeMst,\n formMethods,\n isCough,\n isRunnyNose,\n isEczema,\n isAllergy,\n isFoodAllergy,\n isMedicine,\n isMood,\n isDisease,\n isVaccine,\n isHospitalVisit,\n isInfection,\n isTodayConditionPoint,\n isStroll,\n isLastNightSleep,\n isNap,\n napType,\n defecationTiming,\n isMeal,\n eatingMethod,\n breakfast,\n lunch,\n snack,\n eatingMethodDetail,\n escortType,\n belongings,\n onSubmit,\n isShowNoChange,\n setIsShowNoChange,\n yesNos,\n }\n}\n\n//------------------------------------------------------------------------------------------\n","import { useEffect, useState } from \"react\"\nimport { Control, useFormState, useWatch } from \"react-hook-form\"\nimport { FormHelperText } from \"@mui/material\";\nimport { Inputs, facilityReservationTodayConditionInputKey } from \"../../../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService\";\nimport { getValueByNameStr } from \"../../../../utils/objectUtil\";\nimport { GContainer, GItem } from \"../../common/grids\";\nimport FieldTitle from \"../../facilityReservationForm/fields/common/fieldTitle\";\nimport { NumberBox } from \"../../common/inputs/numberBox\";\nimport { translate } from \"../../../../i18n\";\n\nconst PADDING = '0 8px'\n\ninterface TodayInputDecimalTypeFieldProps {\n name: string\n title: string\n intLabel: string\n fracLabel: string\n unit: string\n required: boolean\n control: Control\n intMax?: number\n intMin?: number\n intPlaceholder?: number\n fracMac?: number\n fracMin?: number\n fracPlaceholder?: number\n isSubField?: boolean\n mt?: number\n}\n\nconst TodayInputDecimalTypeField = (props: TodayInputDecimalTypeFieldProps) => {\n const { \n name, \n title,\n intLabel,\n fracLabel,\n unit,\n required, \n control,\n intMax,\n intMin,\n intPlaceholder,\n fracMac,\n fracMin,\n fracPlaceholder,\n isSubField,\n } = props\n const [ isIntegerRequired, setIsIntegerRequired ] = useState(required)\n \n const inteName = `${name}IntPart`\n const fracName = `${name}FracPart`\n\n const { errors } = useFormState({ control });\n const watchFractional = useWatch({\n name: fracName as facilityReservationTodayConditionInputKey,\n control\n })\n \n const integerError = getValueByNameStr(errors, inteName as facilityReservationTodayConditionInputKey)\n const fractionalError = getValueByNameStr(errors, fracName as facilityReservationTodayConditionInputKey)\n \n useEffect(() => {\n if ( required ) return;\n if ( watchFractional ) {\n setIsIntegerRequired(true)\n return\n }\n if (!required) {\n setIsIntegerRequired(false)\n }\n }, [watchFractional])\n\n return (\n \n \n \n = 100)? 1.5: 1}>\n \n \n \n .\n \n = 100)? 1.5: 1}>\n \n \n \n {translate(unit)}\n \n \n {integerError && {integerError.message}}\n {fractionalError && 少数部分は{fractionalError.message}}\n \n )\n\n}\n\nexport default TodayInputDecimalTypeField;\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport { Divider, Stack, Typography } from '@mui/material'\nimport { Inputs } from '../../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService'\nimport { Control } from 'react-hook-form'\nimport { GetTodayConditionInputDetailDto } from '../../../dataAccess/webApi/dto/reservationsDto'\nimport { GContainer, GItem } from '../common/grids'\nimport { TitleLabel } from '../common/titleLabel'\nimport { AttentionLabel } from '../common/attentionLabel'\nimport { NumberBox } from '../common/inputs/numberBox'\nimport { TextBox } from '../common/inputs/textBox'\nimport { RadioButtonGroup } from '../common/inputs/radioButtonGroup'\nimport { CheckBox } from '../common/inputs/checkBox'\nimport { TimePicker } from '../common/inputs/timePicker'\nimport { todayConditionInputFieldUsage, yesNo } from '../../../containers/common/constant/classification'\nimport { translate } from '../../../i18n'\nimport TodayInputDecimalTypeField from './common/todayInputDecimalTypeField'\n\nconst SectionText = styled(Typography)(() => ({\n fontSize: '21px',\n marginTop: '10px',\n}))\n\nconst BlackDivider = styled(Divider)(() => ({\n borderColor: '#000',\n marginBottom: '20px',\n}))\n\ntype TodayConditionSecProps = {\n control: Control\n todayConditionInputFieldsInfo: GetTodayConditionInputDetailDto['todayConditionInputFieldsInfo']\n isCough: boolean\n isRunnyNose: boolean\n isEczema: boolean\n isAllergy: boolean\n isFoodAllergy: boolean\n isMedicine: boolean\n isMood: boolean\n isDisease: boolean\n isVaccine: boolean\n isHospitalVisit: boolean\n isInfection: boolean\n isTodayConditionPoint: boolean\n yesNos: {\n value: string\n label: string\n }[]\n}\n\n// きょうの様子セクション\nconst TodayConditionSec: React.FC = (props) => {\n const {\n control,\n todayConditionInputFieldsInfo,\n isCough,\n isRunnyNose,\n isEczema,\n isAllergy,\n isFoodAllergy,\n isMedicine,\n isMood,\n isDisease,\n isVaccine,\n isHospitalVisit,\n isInfection,\n isTodayConditionPoint,\n yesNos,\n } = props\n\n return (\n \n {/* セクションタイトル部分 */}\n \n \n {translate('facilityReservationTodayConditionInput.section.todayCondition')}\n \n \n \n {/* フォーム部分 */}\n \n {/* きょうの様子 > 体温(登園前) */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.morningBodyTemperature !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 体温(登園前) */}\n \n\n {/* 計測時刻(登園前) */}\n \n \n {todayConditionInputFieldsInfo.morningBodyTemperature === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.morningBodyTemperatureMeasurementTime')}\n \n \n \n \n \n \n \n \n \n \n )}\n\n {/* きょうの様子 > 体温(午前) */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.afterComingBodyTemperature !== todayConditionInputFieldUsage.noUse && (\n \n )}\n\n {/* きょうの様子 > 体温(午後) */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.afterComingBodyTemperature !== todayConditionInputFieldUsage.noUse && (\n \n )}\n\n {/* きょうの様子 > 咳 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.cough !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 咳をしていますか */}\n \n \n {todayConditionInputFieldsInfo.cough === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.cough')}\n \n \n \n \n \n \n \n\n {/* 咳に関する備考 */}\n {isCough && (\n \n {translate('facilityReservationTodayConditionInput.form.label.coughNote')}\n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 鼻水 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.runnyNose !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 鼻水がでていますか */}\n \n \n {todayConditionInputFieldsInfo.runnyNose === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.runnyNose')}\n \n \n \n \n \n \n \n\n {/* 鼻水に関する備考 */}\n {isRunnyNose && (\n \n \n {translate('facilityReservationTodayConditionInput.form.label.runnyNoseNote')}\n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 湿疹 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.eczema !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 湿疹がでていますか */}\n \n \n {todayConditionInputFieldsInfo.eczema === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.eczema')}\n \n \n \n \n \n \n \n\n {/* 使用している軟膏名 */}\n {isEczema && (\n \n \n {todayConditionInputFieldsInfo.eczema === todayConditionInputFieldUsage.necessary && isEczema && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.eczemaName')}\n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > アレルギー */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.allergy !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* アレルギーがありますか */}\n \n \n {todayConditionInputFieldsInfo.allergy === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.allergy')}\n \n \n \n \n \n \n \n\n {/* アレルギーに関する備考 */}\n {isAllergy && (\n \n {translate('facilityReservationTodayConditionInput.form.label.allergyNote')}\n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 食物アレルギー */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.foodAllergy !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 食物アレルギーがありますか */}\n \n \n {todayConditionInputFieldsInfo.foodAllergy === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.foodAllergy')}\n \n \n \n \n \n \n \n\n {/* 食物アレルギーに関する備考 */}\n {isFoodAllergy && (\n \n \n {translate('facilityReservationTodayConditionInput.form.label.foodAllergyNote')}\n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 薬 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.medicine !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 薬を飲んでいますか */}\n \n \n {todayConditionInputFieldsInfo.medicine === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.medicine')}\n \n \n \n \n \n \n \n\n {/* 服用している薬名 */}\n {isMedicine && (\n \n {todayConditionInputFieldsInfo.medicine === todayConditionInputFieldUsage.necessary && isMedicine && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.medicineName')}\n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 機嫌 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.mood !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 機嫌は良いですか */}\n \n \n {todayConditionInputFieldsInfo.mood === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.mood')}\n \n \n \n \n \n \n \n\n {/* 機嫌に関する備考 */}\n {isMood && (\n \n {translate('facilityReservationTodayConditionInput.form.label.moodNote')}\n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 病気 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.disease !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* いままで病気にかかったことはありますか */}\n \n \n {todayConditionInputFieldsInfo.disease === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.disease')}\n \n \n \n \n \n \n \n\n {isDisease && (\n <>\n {/* 1か月以内にかかった病気ですか */}\n \n \n {todayConditionInputFieldsInfo.disease === todayConditionInputFieldUsage.necessary &&\n isDisease && *}\n {translate('facilityReservationTodayConditionInput.form.label.diseaseWithinMonth.field')}\n \n \n \n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.diseaseWithinMonth.chackBoxYes'\n )}\n \n \n \n \n\n {/* 病気に関する備考 */}\n \n \n {translate('facilityReservationTodayConditionInput.form.label.diseaseNote')}\n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 予防接種 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.vaccine !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 予防接種を受けましたか */}\n \n \n {todayConditionInputFieldsInfo.vaccine === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.vaccine')}\n \n \n \n \n \n \n \n\n {isVaccine && (\n <>\n {/* 予防接種をいつ受けましたか */}\n \n \n {todayConditionInputFieldsInfo.vaccine === todayConditionInputFieldUsage.necessary &&\n isVaccine && *}\n {translate('facilityReservationTodayConditionInput.form.label.vaccineMonthsAgo.field')}\n \n \n \n \n \n \n \n \n {translate('facilityReservationTodayConditionInput.form.label.vaccineMonthsAgo.unit')}\n \n \n \n \n \n\n {/* 予防接種に関する備考 */}\n \n \n {translate('facilityReservationTodayConditionInput.form.label.vaccineNote')}\n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 病院受診 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.hospitalVisit !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 病院を受診しましたか */}\n \n \n {todayConditionInputFieldsInfo.hospitalVisit === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.hospitalVisit')}\n \n \n \n \n \n \n \n\n {isHospitalVisit && (\n <>\n {/* 病院をいつ受診しましたか */}\n \n \n {todayConditionInputFieldsInfo.hospitalVisit === todayConditionInputFieldUsage.necessary &&\n isHospitalVisit && *}\n {translate('facilityReservationTodayConditionInput.form.label.hospitalVisitMonthsAgo.field')}\n \n \n \n \n \n \n \n \n {translate('facilityReservationTodayConditionInput.form.label.hospitalVisitMonthsAgo.unit')}\n \n \n \n \n \n\n {/* 病院受診に関する備考 */}\n \n \n {translate('facilityReservationTodayConditionInput.form.label.hospitalVisitNote')}\n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 感染症 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.infection !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 感染症に関する該当事項に該当しますか */}\n \n \n {todayConditionInputFieldsInfo.infection === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.infection')}\n \n \n \n \n \n \n \n\n {/* 感染症に関する備考 */}\n {isInfection && (\n <>\n \n \n {translate('facilityReservationTodayConditionInput.form.label.infectionNote')}\n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 本日の体調に関する注意点 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.todayConditionPoint !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 本日の体調で気になることはありますか */}\n \n \n {todayConditionInputFieldsInfo.todayConditionPoint === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.todayConditionPoint')}\n \n \n \n \n \n \n \n\n {/* 本日の体調に関する備考 */}\n {isTodayConditionPoint && (\n <>\n \n \n {translate('facilityReservationTodayConditionInput.form.label.todayConditionPointNote')}\n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* きょうの様子 > 散歩 */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.stroll !== todayConditionInputFieldUsage.noUse && (\n \n {/* 保育園で散歩に連れて行くことは可能ですか */}\n \n {todayConditionInputFieldsInfo.stroll === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.stroll')}\n \n \n \n \n \n \n \n )}\n \n \n )\n}\n\nexport default TodayConditionSec\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport { Divider, Stack, Typography } from '@mui/material'\nimport { Inputs } from '../../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService'\nimport { Control } from 'react-hook-form'\nimport { GetTodayConditionInputDetailDto } from '../../../dataAccess/webApi/dto/reservationsDto'\nimport { GContainer, GItem } from '../common/grids'\nimport { TitleLabel } from '../common/titleLabel'\nimport { AttentionLabel } from '../common/attentionLabel'\nimport { RadioButtonGroup } from '../common/inputs/radioButtonGroup'\nimport { TimePicker } from '../common/inputs/timePicker'\nimport { Select } from '../common/inputs/select'\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto'\nimport {\n todayConditionInputFieldUsage,\n todayConditionInputNapType,\n} from '../../../containers/common/constant/classification'\nimport { translate } from '../../../i18n'\n\nconst SectionText = styled(Typography)(() => ({\n fontSize: '21px',\n marginTop: '10px',\n}))\n\nconst BlackDivider = styled(Divider)(() => ({\n borderColor: '#000',\n marginBottom: '20px',\n}))\n\ntype SleepSecProps = {\n control: Control\n todayConditionInputFieldsInfo: GetTodayConditionInputDetailDto['todayConditionInputFieldsInfo']\n napTypeDecodeMst: PostDecodeMstDto[]\n isNap: boolean\n napType: string | null\n yesNos: {\n value: string\n label: string\n }[]\n}\n\n// 睡眠セクション\nconst SleepSec: React.FC = (props) => {\n const { control, todayConditionInputFieldsInfo, napTypeDecodeMst, isNap, napType, yesNos } = props\n\n // お昼寝の種類用の選択肢オプションを編集\n const napTypeValueLabels = napTypeDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n return (\n \n {/* セクションタイトル部分 */}\n \n \n {translate('facilityReservationTodayConditionInput.section.sleep')}\n \n \n \n {/* フォーム部分 */}\n \n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.lastNightSleep !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 昨夜はよく眠りましたか */}\n \n \n {todayConditionInputFieldsInfo.lastNightSleep === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.lastNightSleep')}\n \n \n \n \n \n \n \n\n {/* 昨夜の就寝時刻 */}\n \n \n {todayConditionInputFieldsInfo.lastNightSleep === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.lastNightFromTime')}\n \n \n \n \n \n \n \n \n \n\n {/* 今朝の起床時刻 */}\n \n \n {todayConditionInputFieldsInfo.lastNightSleep === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.lastNightToTime')}\n \n \n \n \n \n \n \n \n \n \n )}\n\n {todayConditionInputFieldsInfo && todayConditionInputFieldsInfo.nap !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 普段お昼寝をしますか */}\n \n \n {todayConditionInputFieldsInfo.nap === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.nap')}\n \n \n \n \n \n \n \n\n {isNap && (\n <>\n {/* お昼寝の種類 */}\n \n \n {todayConditionInputFieldsInfo.nap === todayConditionInputFieldUsage.necessary && isNap && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.napType')}\n \n \n \n \n \n \n \n \n )}\n\n {isNap &&\n (napType === todayConditionInputNapType.amOnly || napType === todayConditionInputNapType.both) && (\n <>\n {/* 午前睡眠開始時刻 */}\n \n \n {todayConditionInputFieldsInfo.nap === todayConditionInputFieldUsage.necessary &&\n isNap &&\n (napType === todayConditionInputNapType.amOnly ||\n napType === todayConditionInputNapType.both) && *}\n {translate('facilityReservationTodayConditionInput.form.label.napAmFromTime')}\n \n \n \n \n \n \n \n {/* 午前睡眠終了時刻 */}\n \n \n {todayConditionInputFieldsInfo.nap === todayConditionInputFieldUsage.necessary &&\n isNap &&\n (napType === todayConditionInputNapType.amOnly ||\n napType === todayConditionInputNapType.both) && *}\n {translate('facilityReservationTodayConditionInput.form.label.napAmToTime')}\n \n \n \n \n \n \n \n \n )}\n\n {isNap &&\n (napType === todayConditionInputNapType.pmOnly || napType === todayConditionInputNapType.both) && (\n <>\n {/* 午後睡眠開始時刻 */}\n \n \n {todayConditionInputFieldsInfo.nap === todayConditionInputFieldUsage.necessary &&\n isNap &&\n (napType === todayConditionInputNapType.pmOnly ||\n napType === todayConditionInputNapType.both) && *}\n {translate('facilityReservationTodayConditionInput.form.label.napPmFromTime')}\n \n \n \n \n \n \n \n\n {/* 午後睡眠終了時刻 */}\n \n \n {todayConditionInputFieldsInfo.nap === todayConditionInputFieldUsage.necessary &&\n isNap &&\n (napType === todayConditionInputNapType.pmOnly ||\n napType === todayConditionInputNapType.both) && *}\n {translate('facilityReservationTodayConditionInput.form.label.napPmToTime')}\n \n\n \n \n \n \n \n \n \n )}\n \n )}\n \n \n )\n}\n\nexport default SleepSec\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport { Divider, Stack, Typography } from '@mui/material'\nimport { Inputs } from '../../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService'\nimport { Control } from 'react-hook-form'\nimport { GetTodayConditionInputDetailDto } from '../../../dataAccess/webApi/dto/reservationsDto'\nimport { GContainer, GItem } from '../common/grids'\nimport { TitleLabel } from '../common/titleLabel'\nimport { AttentionLabel } from '../common/attentionLabel'\nimport { Select } from '../common/inputs/select'\nimport { NumberBox } from '../common/inputs/numberBox'\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto'\nimport {\n todayConditionInputFieldUsage,\n todayConditionDefecationTiming,\n} from '../../../containers/common/constant/classification'\nimport { translate } from '../../../i18n'\n\nconst SectionText = styled(Typography)(() => ({\n fontSize: '21px',\n marginTop: '10px',\n}))\n\nconst BlackDivider = styled(Divider)(() => ({\n borderColor: '#000',\n marginBottom: '20px',\n}))\n\ntype DefecationSecProps = {\n control: Control\n todayConditionInputFieldsInfo: GetTodayConditionInputDetailDto['todayConditionInputFieldsInfo']\n defecationTimingDecodeMst: PostDecodeMstDto[]\n defecationConditionDecodeMst: PostDecodeMstDto[]\n defecationTiming: string | null\n}\n\n// 排便セクション\nconst DefecationSec: React.FC = (props) => {\n const {\n control,\n todayConditionInputFieldsInfo,\n defecationTimingDecodeMst,\n defecationConditionDecodeMst,\n defecationTiming,\n } = props\n\n // 排便タイミング用の選択肢オプションを編集\n const defecationTimingValueLabels = defecationTimingDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n // 便の状態用の選択肢オプションを編集\n const defecationConditionValueLabels = defecationConditionDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n return (\n \n {/* セクションタイトル部分 */}\n \n \n {translate('facilityReservationTodayConditionInput.section.defecation')}\n \n \n \n {/* フォーム部分 */}\n \n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.defecation !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* いつ排便をしましたか */}\n \n \n {todayConditionInputFieldsInfo.defecation === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.defecationTiming')}\n \n \n \n \n \n \n \n\n {/* 排便時刻 */}\n {defecationTiming === todayConditionDefecationTiming.yesterday && (\n \n \n {todayConditionInputFieldsInfo.defecation === todayConditionInputFieldUsage.necessary &&\n defecationTiming === todayConditionDefecationTiming.yesterday && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.defecationHours.field')}\n \n \n \n \n \n \n \n \n {translate('facilityReservationTodayConditionInput.form.label.defecationHours.unit')}\n \n \n \n \n \n )}\n\n {/* 排便日 */}\n {defecationTiming === todayConditionDefecationTiming.twoDaysAgoOrLater && (\n \n \n {todayConditionInputFieldsInfo.defecation === todayConditionInputFieldUsage.necessary &&\n defecationTiming === todayConditionDefecationTiming.twoDaysAgoOrLater && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.defecationDaysAgo.field')}\n \n \n \n \n \n \n \n \n {translate('facilityReservationTodayConditionInput.form.label.defecationDaysAgo.unit')}\n \n \n \n \n \n )}\n\n {/* 便の状態 */}\n \n \n {todayConditionInputFieldsInfo.defecation === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.defecationCondition')}\n \n \n \n \n \n \n \n \n )}\n \n \n )\n}\n\nexport default DefecationSec\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport { Divider, Stack, Typography } from '@mui/material'\nimport { Inputs } from '../../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService'\nimport { Control } from 'react-hook-form'\nimport { GetTodayConditionInputDetailDto } from '../../../dataAccess/webApi/dto/reservationsDto'\nimport { GContainer, GItem } from '../common/grids'\nimport { TitleLabel } from '../common/titleLabel'\nimport { AttentionLabel } from '../common/attentionLabel'\nimport { Select } from '../common/inputs/select'\nimport { NumberBox } from '../common/inputs/numberBox'\nimport { TimePicker } from '../common/inputs/timePicker'\nimport { TextBox } from '../common/inputs/textBox'\nimport { RadioButtonGroup } from '../common/inputs/radioButtonGroup'\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto'\nimport {\n reservationBrestFeedingDetail,\n reservationEatingMethod,\n todayConditionAmountOfFood,\n todayConditionInputFieldUsage,\n} from '../../../containers/common/constant/classification'\nimport { translate } from '../../../i18n'\n\nconst SectionText = styled(Typography)(() => ({\n fontSize: '21px',\n marginTop: '10px',\n}))\n\nconst BlackDivider = styled(Divider)(() => ({\n borderColor: '#000',\n marginBottom: '20px',\n}))\n\ntype MealSecProps = {\n control: Control\n todayConditionInputFieldsInfo: GetTodayConditionInputDetailDto['todayConditionInputFieldsInfo']\n eatingMethodDecodeMst: PostDecodeMstDto[]\n amountOfFoodDecodeMst: PostDecodeMstDto[]\n brestFeedingDetailDecodeMst: PostDecodeMstDto[]\n isMeal: boolean\n eatingMethod: string | null\n breakfast: string | null\n lunch: string | null\n snack: string | null\n eatingMethodDetail: string | null\n yesNos: {\n value: string\n label: string\n }[]\n}\n\n// 食事セクション\nconst MealSec: React.FC = (props) => {\n const {\n control,\n todayConditionInputFieldsInfo,\n eatingMethodDecodeMst,\n amountOfFoodDecodeMst,\n brestFeedingDetailDecodeMst,\n isMeal,\n eatingMethod,\n breakfast,\n lunch,\n snack,\n eatingMethodDetail,\n yesNos,\n } = props\n\n // 栄養方法用の選択肢オプションを編集\n const eatingMethodValueLabels = eatingMethodDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n // 食事量用の選択肢オプションを編集\n const amountOfFoodValueLabels = amountOfFoodDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n // 栄養方法詳細用の選択肢オプションを編集\n const brestFeedingDetailValueLabels = brestFeedingDetailDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n return (\n \n {/* セクションタイトル部分 */}\n \n \n {translate('facilityReservationTodayConditionInput.section.meal')}\n \n \n \n {/* フォーム部分 */}\n \n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.meal !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 登園前に食事をしましたか */}\n \n \n {todayConditionInputFieldsInfo.meal === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.meal')}\n \n \n \n \n \n \n \n\n {/* 食事時刻 */}\n {isMeal && (\n \n \n {todayConditionInputFieldsInfo.meal === todayConditionInputFieldUsage.necessary && isMeal && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.mealTime')}\n \n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.mealDetail !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 栄養方法 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.eatingMethod')}\n \n \n \n \n \n \n \n\n {/* 朝食を食べましたか */}\n {eatingMethod && eatingMethod !== reservationEatingMethod.brestFeeding && (\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding && *}\n {translate('facilityReservationTodayConditionInput.form.label.breakfast')}\n \n \n \n \n \n \n \n )}\n\n {eatingMethod &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n breakfast &&\n breakfast !== todayConditionAmountOfFood.none && (\n <>\n {/* 朝食時刻 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n breakfast !== null &&\n breakfast !== todayConditionAmountOfFood.none && *}\n {translate('facilityReservationTodayConditionInput.form.label.breakfastTime')}\n \n \n \n \n \n \n \n \n \n\n {/* 朝食は何を食べましたか */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n breakfast !== null &&\n breakfast !== todayConditionAmountOfFood.none && *}\n {translate('facilityReservationTodayConditionInput.form.label.breakfastWhat')}\n \n \n \n \n \n \n \n \n )}\n\n {/* 昼食を食べましたか */}\n {eatingMethod && eatingMethod !== reservationEatingMethod.brestFeeding && (\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding && *}\n {translate('facilityReservationTodayConditionInput.form.label.lunch')}\n \n \n \n \n \n \n \n )}\n\n {eatingMethod &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n lunch &&\n lunch !== todayConditionAmountOfFood.none && (\n <>\n {/* 昼食時刻 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n lunch !== null &&\n lunch !== todayConditionAmountOfFood.none && *}\n {translate('facilityReservationTodayConditionInput.form.label.lunchTime')}\n \n \n \n \n \n \n \n \n \n\n {/* 昼食は何を食べましたか */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n lunch !== null &&\n lunch !== todayConditionAmountOfFood.none && *}\n {translate('facilityReservationTodayConditionInput.form.label.lunchWhat')}\n \n \n \n \n \n \n \n \n )}\n\n {/* おやつは食べましたか */}\n {eatingMethod && eatingMethod !== reservationEatingMethod.brestFeeding && (\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding && *}\n {translate('facilityReservationTodayConditionInput.form.label.snack')}\n \n \n \n \n \n \n \n )}\n\n {eatingMethod && eatingMethod !== reservationEatingMethod.brestFeeding && snack === '1' && (\n <>\n {/* おやつ時刻 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod !== null &&\n eatingMethod !== reservationEatingMethod.brestFeeding &&\n snack === '1' && *}\n {translate('facilityReservationTodayConditionInput.form.label.snackTime')}\n \n \n \n \n \n \n \n \n \n \n )}\n\n {/* 栄養方法詳細 */}\n {eatingMethod === reservationEatingMethod.brestFeeding && (\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod === reservationEatingMethod.brestFeeding && *}\n {translate('facilityReservationTodayConditionInput.form.label.eatingMethodDetail')}\n \n \n \n \n \n \n \n )}\n\n {eatingMethod === reservationEatingMethod.brestFeeding &&\n eatingMethodDetail &&\n eatingMethodDetail !== reservationBrestFeedingDetail.breastMilk && (\n <>\n {/* ミルク量 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod === reservationEatingMethod.brestFeeding &&\n eatingMethodDetail !== null &&\n eatingMethodDetail !== reservationBrestFeedingDetail.breastMilk && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.milkAmount.field')}\n \n \n \n \n \n \n \n \n {translate('facilityReservationTodayConditionInput.form.label.milkAmount.unit')}\n \n \n \n \n \n\n {/* ミルク接種時刻 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod === reservationEatingMethod.brestFeeding &&\n eatingMethodDetail !== null &&\n eatingMethodDetail !== reservationBrestFeedingDetail.breastMilk && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.milkTime')}\n \n \n \n \n \n \n \n \n \n \n )}\n\n {eatingMethod === reservationEatingMethod.brestFeeding &&\n eatingMethodDetail &&\n eatingMethodDetail !== reservationBrestFeedingDetail.formula && (\n <>\n {/* 母乳接種時刻 */}\n \n \n {todayConditionInputFieldsInfo.mealDetail === todayConditionInputFieldUsage.necessary &&\n eatingMethod === reservationEatingMethod.brestFeeding &&\n eatingMethodDetail !== null &&\n eatingMethodDetail !== reservationBrestFeedingDetail.formula && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.breastMilkTime')}\n \n \n \n \n \n \n \n \n \n \n )}\n \n )}\n \n \n )\n}\n\nexport default MealSec\n","import React from 'react'\nimport styled from '@emotion/styled'\nimport { Divider, Stack, Typography } from '@mui/material'\nimport { Inputs } from '../../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService'\nimport { Control } from 'react-hook-form'\nimport { GetTodayConditionInputDetailDto } from '../../../dataAccess/webApi/dto/reservationsDto'\nimport { GContainer, GItem } from '../common/grids'\nimport { TitleLabel } from '../common/titleLabel'\nimport { AttentionLabel } from '../common/attentionLabel'\nimport { NumberBox } from '../common/inputs/numberBox'\nimport { TextBox } from '../common/inputs/textBox'\nimport { CheckBoxSelections } from '../common/inputs/checkBoxSelections'\nimport { PostDecodeMstDto } from '../../../dataAccess/webApi/dto/decodeMstDto'\nimport {\n todayConditionBelongings,\n todayConditionEscortType,\n todayConditionInputFieldUsage,\n} from '../../../containers/common/constant/classification'\nimport { translate } from '../../../i18n'\nimport { Select } from '../common/inputs/select'\nimport { TelTextBox } from '../common/inputs/telTextBox'\n\nconst SectionText = styled(Typography)(() => ({\n fontSize: '21px',\n marginTop: '10px',\n}))\n\nconst BlackDivider = styled(Divider)(() => ({\n borderColor: '#000',\n marginBottom: '20px',\n}))\n\ntype OtherSecProps = {\n control: Control\n todayConditionInputFieldsInfo: GetTodayConditionInputDetailDto['todayConditionInputFieldsInfo']\n escortTypeDecodeMst: PostDecodeMstDto[]\n escortType: string | null\n belongingsDecodeMst: PostDecodeMstDto[]\n belongings: string | null\n}\n\n// その他セクション\nconst OtherSec: React.FC = (props) => {\n const { control, todayConditionInputFieldsInfo, escortTypeDecodeMst, escortType, belongingsDecodeMst, belongings } =\n props\n\n // 送迎者用の選択肢オプションを編集\n const escortTypeValueLabels = escortTypeDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n // 持ち物用の選択肢オプションを編集\n const belongingsValueLabels = belongingsDecodeMst.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n\n return (\n \n {/* セクションタイトル部分 */}\n \n \n {translate('facilityReservationTodayConditionInput.section.other')}\n \n \n \n {/* フォーム部分 */}\n \n {todayConditionInputFieldsInfo &&\n todayConditionInputFieldsInfo.escort !== todayConditionInputFieldUsage.noUse && (\n <>\n {/* 送迎者 */}\n \n \n {todayConditionInputFieldsInfo.escort === todayConditionInputFieldUsage.necessary && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.escortType')}\n \n \n \n \n \n \n \n\n {/* 氏名(送迎者1) */}\n {escortType === todayConditionEscortType.transportationByAgent && (\n \n \n {todayConditionInputFieldsInfo.escort === todayConditionInputFieldUsage.necessary &&\n escortType === todayConditionEscortType.transportationByAgent && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.escort1Name')}\n \n \n \n \n \n \n \n )}\n\n {/* お子さまから見た続柄(送迎者1)*/}\n {escortType === todayConditionEscortType.transportationByAgent && (\n \n \n {todayConditionInputFieldsInfo.escort === todayConditionInputFieldUsage.necessary &&\n escortType === todayConditionEscortType.transportationByAgent && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.escort1Relationship')}\n \n \n \n \n \n \n \n )}\n\n {/* 電話番号(送迎者1)*/}\n {escortType === todayConditionEscortType.transportationByAgent && (\n \n \n {todayConditionInputFieldsInfo.escort === todayConditionInputFieldUsage.necessary &&\n escortType === todayConditionEscortType.transportationByAgent && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.escort1Tel')}\n \n \n \n \n \n \n \n )}\n\n {/* 氏名(送迎者2)*/}\n {escortType === todayConditionEscortType.transportationByAgent && (\n \n {translate('facilityReservationTodayConditionInput.form.label.escort2Name')}\n \n \n \n \n \n \n )}\n\n {/* お子さまから見た続柄(送迎者2)*/}\n {escortType === todayConditionEscortType.transportationByAgent && (\n \n \n {translate('facilityReservationTodayConditionInput.form.label.escort2Relationship')}\n \n \n \n \n \n \n \n )}\n\n {/* 電話番号(送迎者2)*/}\n {escortType === todayConditionEscortType.transportationByAgent && (\n \n {translate('facilityReservationTodayConditionInput.form.label.escort2Tel')}\n \n \n \n \n \n \n )}\n\n {/* 持ち物 */}\n \n {translate('facilityReservationTodayConditionInput.form.label.belongings')}\n \n \n \n \n \n \n\n {belongings && belongings.split(',').includes(todayConditionBelongings.milk) && (\n <>\n {/* 何回分のミルクを持たせましたか */}\n \n \n {todayConditionInputFieldsInfo.belongings === todayConditionInputFieldUsage.necessary &&\n belongings !== null &&\n belongings.split(',').includes(todayConditionBelongings.milk) && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.belongingsMilkCount.field')}\n \n \n \n \n \n \n \n \n {translate('facilityReservationTodayConditionInput.form.label.belongingsMilkCount.unit')}\n \n \n \n \n \n\n {/* どれくらいのお湯でミルクを溶かしますか */}\n \n \n {todayConditionInputFieldsInfo.belongings === todayConditionInputFieldUsage.necessary &&\n belongings !== null &&\n belongings.split(',').includes(todayConditionBelongings.milk) && (\n *\n )}\n {translate(\n 'facilityReservationTodayConditionInput.form.label.belongingsMilkDissolveHotWater.field'\n )}\n \n \n \n \n \n \n \n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.belongingsMilkDissolveHotWater.unit'\n )}\n \n \n \n \n \n \n )}\n\n {belongings && belongings.split(',').includes(todayConditionBelongings.other) && (\n <>\n {/* 持ち物(その他) */}\n \n \n {todayConditionInputFieldsInfo.belongings === todayConditionInputFieldUsage.necessary &&\n belongings !== null &&\n belongings.split(',').includes(todayConditionBelongings.other) && (\n *\n )}\n {translate('facilityReservationTodayConditionInput.form.label.belongingsOther')}\n \n \n \n \n \n \n \n \n )}\n \n )}\n\n {/* 備考 */}\n \n {translate('facilityReservationTodayConditionInput.form.label.note')}\n \n \n \n \n \n \n \n \n )\n}\n\nexport default OtherSec\n","import React from 'react'\nimport { GetTodayConditionInputDetailDto } from '../../../dataAccess/webApi/dto/reservationsDto'\nimport { GContainer, RowSpacerGItem } from '../common/grids'\nimport { InfoCard } from '../common/infoCard'\nimport { LabelGItem, ValueGItem } from '../common/reservationDetail/reservationDetailParts'\nimport { translate } from '../../../i18n'\nimport { formatHm, formatYmdWeek, formatYmd } from '../../../utils/dateUtil'\n\ntype ReservationInfoAreaProps = {\n reservationInfo: GetTodayConditionInputDetailDto['reservationInfo']\n}\n\n// その他セクション\nconst ReservationInfoArea: React.FC = (props) => {\n const { reservationInfo } = props\n\n return (\n \n \n {/* 施設名 */}\n {translate('facilityReservationTodayConditionInput.view.facilityName')}\n {reservationInfo.facilityName}\n\n \n\n {/* ご利用目的 */}\n {reservationInfo.displayNameForCitizenIrregular && (\n <>\n {translate('facilityReservationTodayConditionInput.view.useReason')}\n {reservationInfo.displayNameForCitizenIrregular}\n \n )}\n {/* 利用日 */}\n {translate('facilityReservationTodayConditionInput.view.usageDate')}\n {formatYmdWeek(new Date(reservationInfo.usageDate))}\n {/* 利用時間 */}\n {translate('facilityReservationTodayConditionInput.view.usageDateTime')}\n {`${formatHm(new Date(reservationInfo.useFromDatetime))}~${formatHm(new Date(reservationInfo.useToDatetime))}`}\n\n \n\n {/* 保護者 */}\n {translate('facilityReservationTodayConditionInput.view.userName')}\n {reservationInfo.userName}\n {/* フリガナ */}\n {translate('facilityReservationTodayConditionInput.view.userKana')}\n {reservationInfo.userKana}\n {/* お子さま */}\n {translate('facilityReservationTodayConditionInput.view.childName')}\n {reservationInfo.childName}\n {/* フリガナ */}\n {translate('facilityReservationTodayConditionInput.view.childKana')}\n {reservationInfo.childKana}\n {/* 生年月日 */}\n {translate('facilityReservationTodayConditionInput.view.childBirthday')}\n {formatYmd(new Date(reservationInfo.childBirthday))}\n \n \n )\n}\n\nexport default ReservationInfoArea\n","import { Stack } from '@mui/material'\nimport {\n Inputs,\n useAction,\n} from '../../containers/facilityReservationTodayConditionInput/facilityReservationTodayConditionInputService'\nimport { GContainer, GItem } from '../components/common/grids'\nimport { Form } from '../components/common/inputs/form'\nimport { Control } from 'react-hook-form'\nimport styled from '@emotion/styled'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { Dialog } from '../components/common/dialog'\nimport { ButtonOutlinedS } from '../components/common/buttons/buttonOutlinedS'\nimport TodayConditionSec from '../components/facilityReservationTodayConditionInput/todayConditionSec'\nimport SleepSec from '../components/facilityReservationTodayConditionInput/sleepSec'\nimport DefecationSec from '../components/facilityReservationTodayConditionInput/defecationSec'\nimport MealSec from '../components/facilityReservationTodayConditionInput/mealSec'\nimport OtherSec from '../components/facilityReservationTodayConditionInput/otherSec'\nimport ReservationInfoArea from '../components/facilityReservationTodayConditionInput/reservationInfoArea'\nimport { translate } from '../../i18n'\nimport { StepBar } from '../components/common/stepBar'\n\nconst MessageBox = styled('div')({\n whiteSpace: 'pre-wrap',\n})\n\nexport const FacilityReservationTodayConditionInput = () => {\n const {\n // history,\n // reservationNo,\n todayConditionInputDetail,\n todayConditionInputDecodeMst,\n formMethods,\n isCough,\n isRunnyNose,\n isEczema,\n isAllergy,\n isFoodAllergy,\n isMedicine,\n isMood,\n isDisease,\n isVaccine,\n isHospitalVisit,\n isInfection,\n isTodayConditionPoint,\n // isStroll,\n // isLastNightSleep,\n isNap,\n napType,\n defecationTiming,\n isMeal,\n eatingMethod,\n breakfast,\n lunch,\n snack,\n eatingMethodDetail,\n escortType,\n belongings,\n onSubmit,\n isShowNoChange,\n setIsShowNoChange,\n yesNos,\n } = useAction()\n\n const reservationInfo = todayConditionInputDetail?.reservationInfo\n const todayConditionInputFieldsInfo = todayConditionInputDetail?.todayConditionInputFieldsInfo\n const control: Control = formMethods.control\n\n // きょうの様子セクションを表示するかの状態を保持するフラグ\n const isViewTodayConditionSec =\n todayConditionInputFieldsInfo &&\n (todayConditionInputFieldsInfo.morningBodyTemperature !== '0' ||\n todayConditionInputFieldsInfo.afterComingBodyTemperature !== '0' ||\n todayConditionInputFieldsInfo.cough !== '0' ||\n todayConditionInputFieldsInfo.runnyNose !== '0' ||\n todayConditionInputFieldsInfo.eczema !== '0' ||\n todayConditionInputFieldsInfo.allergy !== '0' ||\n todayConditionInputFieldsInfo.foodAllergy !== '0' ||\n todayConditionInputFieldsInfo.medicine !== '0' ||\n todayConditionInputFieldsInfo.mood !== '0' ||\n todayConditionInputFieldsInfo.disease !== '0' ||\n todayConditionInputFieldsInfo.vaccine !== '0' ||\n todayConditionInputFieldsInfo.hospitalVisit !== '0' ||\n todayConditionInputFieldsInfo.infection !== '0' ||\n todayConditionInputFieldsInfo.todayConditionPoint !== '0' ||\n todayConditionInputFieldsInfo.stroll !== '0')\n\n // 睡眠セクションを表示するかの状態を保持するフラグ\n const isViewSleepSec =\n todayConditionInputFieldsInfo &&\n (todayConditionInputFieldsInfo.lastNightSleep !== '0' || todayConditionInputFieldsInfo.nap !== '0')\n\n // 排便セクションを表示するかの状態を保持するフラグ\n const isViewDefecationSec = todayConditionInputFieldsInfo && todayConditionInputFieldsInfo.defecation !== '0'\n\n // 食事セクションを表示するかの状態を保持するフラグ\n const isViewMealSec =\n todayConditionInputFieldsInfo &&\n (todayConditionInputFieldsInfo.meal !== '0' || todayConditionInputFieldsInfo.mealDetail !== '0')\n\n return (\n <>\n
    \n \n \n \n \n {/* ==========予約情報の表示エリア========== */}\n {reservationInfo && }\n\n {/* ==========きょうの様子セクション========== */}\n {todayConditionInputFieldsInfo && isViewTodayConditionSec && (\n \n )}\n\n {/* ==========睡眠セクション========== */}\n {todayConditionInputFieldsInfo && todayConditionInputDecodeMst && isViewSleepSec && (\n \n )}\n\n {/* ==========排便セクション========== */}\n {todayConditionInputFieldsInfo && todayConditionInputDecodeMst && isViewDefecationSec && (\n \n )}\n\n {/* ==========食事セクション========== */}\n {todayConditionInputFieldsInfo && todayConditionInputDecodeMst && isViewMealSec && (\n \n )}\n\n {/* ==========その他セクション========== */}\n {todayConditionInputFieldsInfo &&\n todayConditionInputDecodeMst &&\n todayConditionInputDecodeMst.belongings &&\n todayConditionInputDecodeMst.escortType && (\n \n )}\n \n \n\n {/* 画面下部ボタングループ */}\n \n \n {translate('facilityReservationTodayConditionInput.button.submit')}\n \n \n \n \n
    \n\n {/* 変更なしダイアログ */}\n {\n setIsShowNoChange(false)\n }}\n buttons={\n <>\n {\n setIsShowNoChange(false)\n }}\n >\n {translate('facilityReservationTodayConditionInput.button.close')}\n \n \n }\n >\n \n {translate('facilityReservationTodayConditionInput.text.noChange')}\n \n \n \n \n )\n}\n","import { useDispatch, useSelector } from 'react-redux'\nimport {\n clearInput,\n clearReservationInfo,\n clearTodayConditionInputFieldsInfo,\n selectInput,\n selectReservationInfo,\n selectTodayConditionInputFieldsInfo,\n} from '../common/store/slices/facilityReserveTodayConditionInput'\nimport { useCallback, useEffect, useState } from 'react'\nimport { useErrorHandle } from '../common/error/errorHandler'\nimport { showLoading } from '../common/store/slices/application'\nimport { executePutTodayConditionInput } from '../../dataAccess/webApi/dao/reservationsDao'\nimport { useHistory, useParams } from 'react-router-dom'\nimport { facilityReservationTodayConditionInputCompletionUrl } from '../common/constant/appUrl'\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto'\nimport { getDecodeMstValue } from '../common/getDecodeMstValue'\nimport { useOperationLog } from '../common/operationLog'\nimport { OperationId } from '../common/constant/operationLog'\nimport { yesNo } from '../common/constant/classification'\n\ninterface UrlParams {\n reservationNo: string\n}\n\nexport interface TodayConditionInputDecodeMst {\n napType: PostDecodeMstDto[]\n defecationTiming: PostDecodeMstDto[]\n defecationCondition: PostDecodeMstDto[]\n eatingMethod: PostDecodeMstDto[]\n amountOfFood: PostDecodeMstDto[]\n brestFeedingDetail: PostDecodeMstDto[]\n escortType: PostDecodeMstDto[]\n belongings: PostDecodeMstDto[]\n}\n\nconst TODAY_CONDITION_INPUT_DECODE_MST_LIST = {\n /** お昼寝の種類 */\n napType: 'nap_type',\n // 排便タイミング\n defecationTiming: 'defecation_timing',\n // 便の状態\n defecationCondition: 'defecation_condition',\n // 栄養方法\n eatingMethod: 'eating_method',\n // 食事量\n amountOfFood: 'amount_of_food',\n // 栄養方法詳細\n brestFeedingDetail: 'brest_feeding_detail',\n // 送迎者種類\n escortType: 'escort_type',\n // 持ち物\n belongings: 'belongings',\n}\n\nexport const useAction = () => {\n const history = useHistory()\n const { reservationNo } = useParams()\n\n const reservationInfo = useSelector(selectReservationInfo)\n const todayConditionInputFieldsInfo = useSelector(selectTodayConditionInputFieldsInfo)\n const input = useSelector(selectInput)\n const errorHandle = useErrorHandle()\n const dispatch = useDispatch()\n const { addOperationLog, attachAccessData } = useOperationLog()\n\n const [todayConditionInputDecodeMst, setTodayConditionInputDecodeMst] = useState(\n null\n )\n const [regResultCode, setRegResultCode] = useState()\n\n // 初期化処理\n const initialize = useCallback(\n async () => {\n // 必要な情報をdecode_mstから取得する\n const getDecodeMstValues: TodayConditionInputDecodeMst = await getDecodeMstValue(\n TODAY_CONDITION_INPUT_DECODE_MST_LIST\n )\n if (getDecodeMstValues) {\n setTodayConditionInputDecodeMst(getDecodeMstValues)\n }\n },\n [reservationNo]\n )\n\n // 初回レンダリング時の処理\n useEffect(() => {\n addOperationLog({ operationId: OperationId.OP_00000194 })\n\n dispatch(showLoading(errorHandle(() => initialize())))\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [])\n\n const decide = useCallback(() => {\n if (input) {\n dispatch(\n showLoading({\n process: errorHandle(async () => {\n // オペレーションログの追加\n if (input?.updateDateTime) {\n addOperationLog({ operationId: OperationId.OP_00000196 })\n } else {\n addOperationLog({ operationId: OperationId.OP_00000195 })\n }\n attachAccessData({\n accessData: [\n {\n userIdRegFlag: yesNo.yes,\n childId: reservationInfo?.childId,\n usageDate: reservationInfo?.usageDate,\n reservationNo,\n },\n ],\n })\n\n // 更新処理の実行\n const response = await executePutTodayConditionInput(reservationNo, input)\n if (response.resultCode) {\n // 登録失敗時\n setRegResultCode(response.resultCode)\n } else {\n // 登録成功時\n // 完了画面に遷移する\n dispatch(clearReservationInfo)\n dispatch(clearTodayConditionInputFieldsInfo)\n dispatch(clearInput)\n history.push(facilityReservationTodayConditionInputCompletionUrl.url(reservationNo))\n }\n }),\n isHiddenMain: false,\n })\n )\n }\n }, [input])\n\n return {\n todayConditionInputDecodeMst,\n reservationInfo,\n todayConditionInputFieldsInfo,\n input,\n regResultCode,\n decide,\n }\n}\n\n//------------------------------------------------------------------------------------------\n","import {\n Stack,\n // Typography\n} from '@mui/material'\nimport { useAction } from '../../containers/facilityReservationTodayConditionInputConfirmation/facilityReservationTodayConditionInputConfirmationService'\nimport { GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { BackButton } from '../components/common/buttons/backButton'\nimport { getClassificationLabel, translate } from '../../i18n'\nimport { StepBar } from '../components/common/stepBar'\nimport { InfoCard } from '../components/common/infoCard'\nimport { LabelGItem, ValueGItem } from '../components/common/reservationDetail/reservationDetailParts'\nimport { PostDecodeMstDto } from '../../dataAccess/webApi/dto/decodeMstDto'\nimport { todayConditionInputFieldUsage } from '../../containers/common/constant/classification'\n// import styled from '@emotion/styled'\n\n// const SectionText = styled(Typography)(() => ({\n// fontSize: '21px',\n// marginTop: '10px',\n// }))\n\nexport const FacilityReservationTodayConditionInputConfirmation = () => {\n const { todayConditionInputDecodeMst, reservationInfo, todayConditionInputFieldsInfo, input, regResultCode, decide } =\n useAction()\n\n const getValueLabels = (decodeItems: PostDecodeMstDto[]): { value: string; label: string }[] => {\n return decodeItems.map((item) => {\n return {\n value: item.code,\n label: item.name,\n }\n })\n }\n\n const napTypeValueLabels = todayConditionInputDecodeMst ? getValueLabels(todayConditionInputDecodeMst.napType) : null\n const defecationTimingValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.defecationTiming)\n : null\n const defecationConditionValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.defecationCondition)\n : null\n const eatingMethodValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.eatingMethod)\n : null\n const amountOfFoodValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.amountOfFood)\n : null\n const brestFeedingDetailValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.brestFeedingDetail)\n : null\n const escortTypeValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.escortType)\n : null\n const belongingsValueLabels = todayConditionInputDecodeMst\n ? getValueLabels(todayConditionInputDecodeMst.belongings)\n : null\n\n console.log(regResultCode)\n\n const getLabelByValue = (valueLabels: { value: string; label: string }[] | null, value: string): string => {\n if (!valueLabels) {\n return ''\n }\n const valueLabel = valueLabels.find((valueLabel) => valueLabel.value === value)\n return valueLabel ? valueLabel.label : ''\n }\n\n const getYesNoLabel = (value: string) => {\n return getClassificationLabel('facilityReservationTodayConditionInput.form.common.yesNo', value)\n }\n\n return (\n <>\n \n \n \n \n \n {reservationInfo && (\n \n \n {/* 施設名 */}\n {translate('facilityReservationTodayConditionInput.view.facilityName')}\n {reservationInfo.facilityName}\n\n \n\n {/* ご利用目的 */}\n {translate('facilityReservationTodayConditionInput.view.useReason')}\n {reservationInfo.displayNameForCitizenIrregular}\n {/* 利用日 */}\n {translate('facilityReservationTodayConditionInput.view.usageDate')}\n {reservationInfo.usageDate}\n {/* 利用時間 */}\n {translate('facilityReservationTodayConditionInput.view.usageDateTime')}\n {`${reservationInfo.useFromDatetime}~${reservationInfo.useToDatetime}`}\n\n \n\n {/* 保護者 */}\n {translate('facilityReservationTodayConditionInput.view.userName')}\n {reservationInfo.userName}\n {/* フリガナ */}\n {translate('facilityReservationTodayConditionInput.view.userKana')}\n {reservationInfo.userKana}\n {/* お子さま */}\n {translate('facilityReservationTodayConditionInput.view.childName')}\n {reservationInfo.childName}\n {/* フリガナ */}\n {translate('facilityReservationTodayConditionInput.view.childKana')}\n {reservationInfo.childKana}\n {/* 生年月日 */}\n {translate('facilityReservationTodayConditionInput.view.childBirthday')}\n {reservationInfo.childBirthday}\n \n \n )}\n {input && (\n \n \n {/* 体温(登園前) */}\n {todayConditionInputFieldsInfo?.morningBodyTemperature !== todayConditionInputFieldUsage.noUse &&\n input.morningBodyTemperature && (\n <>\n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.morningBodyTemperature.field'\n )}\n \n {input.morningBodyTemperature}\n \n )}\n {/* 計測時刻(登園前) */}\n {todayConditionInputFieldsInfo?.morningBodyTemperature !== todayConditionInputFieldUsage.noUse &&\n input.morningBodyTemperature && (\n <>\n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.morningBodyTemperatureMeasurementTime'\n )}\n \n {input.morningBodyTemperatureMeasurementTime}\n \n )}\n {/* 体温(朝) */}\n {todayConditionInputFieldsInfo?.afterComingBodyTemperature !==\n todayConditionInputFieldUsage.noUse &&\n input.afterComingAmBodyTemperature && (\n <>\n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.afterComingAmBodyTemperature.field'\n )}\n \n {input.afterComingAmBodyTemperature}\n \n )}\n {/* 体温(夕) */}\n {todayConditionInputFieldsInfo?.afterComingBodyTemperature !==\n todayConditionInputFieldUsage.noUse &&\n input.afterComingPmBodyTemperature && (\n <>\n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.afterComingPmBodyTemperature.field'\n )}\n \n {input.afterComingPmBodyTemperature}\n \n )}\n {/* 咳をしていますか */}\n {todayConditionInputFieldsInfo?.cough !== todayConditionInputFieldUsage.noUse && input.cough && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.cough')}\n {getYesNoLabel(input.cough)}\n \n )}\n {/* 咳に関する備考 */}\n {todayConditionInputFieldsInfo?.cough !== todayConditionInputFieldUsage.noUse &&\n input.coughNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.coughNote')}\n \n {input.coughNote}\n \n )}\n {/* 鼻水がでていますか */}\n {todayConditionInputFieldsInfo?.runnyNose !== todayConditionInputFieldUsage.noUse &&\n input.runnyNose && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.runnyNose')}\n \n {getYesNoLabel(input.runnyNose)}\n \n )}\n {/* 鼻水に関する備考 */}\n {todayConditionInputFieldsInfo?.runnyNose !== todayConditionInputFieldUsage.noUse &&\n input.runnyNoseNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.runnyNoseNote')}\n \n {input.runnyNoseNote}\n \n )}\n {/* 湿疹がでていますか */}\n {todayConditionInputFieldsInfo?.eczema !== todayConditionInputFieldUsage.noUse && input.eczema && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.eczema')}\n {getYesNoLabel(input.eczema)}\n \n )}\n {/* 使用している軟膏名 */}\n {todayConditionInputFieldsInfo?.eczema !== todayConditionInputFieldUsage.noUse &&\n input.eczemaName && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.eczemaName')}\n \n {input.eczemaName}\n \n )}\n {/* アレルギーがありますか */}\n {todayConditionInputFieldsInfo?.allergy !== todayConditionInputFieldUsage.noUse &&\n input.allergy && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.allergy')}\n \n {getYesNoLabel(input.allergy)}\n \n )}\n {/* アレルギーに関する備考 */}\n {todayConditionInputFieldsInfo?.allergy !== todayConditionInputFieldUsage.noUse &&\n input.allergyNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.allergyNote')}\n \n {input.allergyNote}\n \n )}\n {/* 食物アレルギーがありますか */}\n {todayConditionInputFieldsInfo?.foodAllergy !== todayConditionInputFieldUsage.noUse &&\n input.foodAllergy && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.foodAllergy')}\n \n {getYesNoLabel(input.foodAllergy)}\n \n )}\n {/* 食物アレルギーに関する備考 */}\n {todayConditionInputFieldsInfo?.foodAllergy !== todayConditionInputFieldUsage.noUse &&\n input.foodAllergyNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.foodAllergyNote')}\n \n {input.foodAllergyNote}\n \n )}\n {/* 薬を飲んでいますか */}\n {todayConditionInputFieldsInfo?.medicine !== todayConditionInputFieldUsage.noUse &&\n input.medicine && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.medicine')}\n \n {getYesNoLabel(input.medicine)}\n \n )}\n {/* 服用している薬名 */}\n {todayConditionInputFieldsInfo?.medicine !== todayConditionInputFieldUsage.noUse &&\n input.medicineName && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.medicineName')}\n \n {input.medicineName}\n \n )}\n {/* 機嫌は良いですか */}\n {todayConditionInputFieldsInfo?.mood !== todayConditionInputFieldUsage.noUse && input.mood && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.mood')}\n {getYesNoLabel(input.mood)}\n \n )}\n {/* 機嫌に関する備考 */}\n {todayConditionInputFieldsInfo?.mood !== todayConditionInputFieldUsage.noUse && input.moodNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.moodNote')}\n \n {input.moodNote}\n \n )}\n {/* いままで病気にかかったことはありますか */}\n {todayConditionInputFieldsInfo?.disease !== todayConditionInputFieldUsage.noUse &&\n input.disease && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.disease')}\n \n {getYesNoLabel(input.disease)}\n \n )}\n {/* 1か月以内にかかった病気ですか */}\n {todayConditionInputFieldsInfo?.disease !== todayConditionInputFieldUsage.noUse &&\n input.diseaseWithinMonth && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.diseaseWithinMonth.field')}\n \n {getYesNoLabel(input.diseaseWithinMonth)}\n \n )}\n {/* 病気に関する備考 */}\n {todayConditionInputFieldsInfo?.disease !== todayConditionInputFieldUsage.noUse &&\n input.diseaseNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.diseaseNote')}\n \n {input.diseaseNote}\n \n )}\n {/* 予防接種を受けましたか */}\n {todayConditionInputFieldsInfo?.vaccine !== todayConditionInputFieldUsage.noUse &&\n input.vaccine && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.vaccine')}\n \n {getYesNoLabel(input.vaccine)}\n \n )}\n {/* 予防接種をいつ受けましたか */}\n {todayConditionInputFieldsInfo?.vaccine !== todayConditionInputFieldUsage.noUse &&\n input.vaccineMonthsAgo && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.vaccineMonthsAgo.field')}\n \n {`${input.vaccineMonthsAgo}${translate(\n 'facilityReservationTodayConditionInput.form.label.vaccineMonthsAgo.unit'\n )}`}\n \n )}\n {/* 予防接種に関する備考 */}\n {todayConditionInputFieldsInfo?.vaccine !== todayConditionInputFieldUsage.noUse &&\n input.vaccineNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.vaccineNote')}\n \n {input.vaccineNote}\n \n )}\n {/* 病院を受診しましたか */}\n {todayConditionInputFieldsInfo?.hospitalVisit !== todayConditionInputFieldUsage.noUse &&\n input.hospitalVisit && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.hospitalVisit')}\n \n {getYesNoLabel(input.hospitalVisit)}\n \n )}\n {/* 病院をいつ受診しましたか */}\n {todayConditionInputFieldsInfo?.hospitalVisit !== todayConditionInputFieldUsage.noUse &&\n input.hospitalVisitMonthsAgo && (\n <>\n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.hospitalVisitMonthsAgo.field'\n )}\n \n {`${input.hospitalVisitMonthsAgo}${translate(\n 'facilityReservationTodayConditionInput.form.label.hospitalVisitMonthsAgo.unit'\n )}`}\n \n )}\n {/* 病院受診に関する備考 */}\n {todayConditionInputFieldsInfo?.hospitalVisit !== todayConditionInputFieldUsage.noUse &&\n input.hospitalVisitNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.hospitalVisitNote')}\n \n {input.hospitalVisitNote}\n \n )}\n {/* 感染症に関する該当事項に該当しますか */}\n {todayConditionInputFieldsInfo?.infection !== todayConditionInputFieldUsage.noUse &&\n input.infection && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.infection')}\n \n {getYesNoLabel(input.infection)}\n \n )}\n {/* 感染症に関する備考 */}\n {todayConditionInputFieldsInfo?.infection !== todayConditionInputFieldUsage.noUse &&\n input.infectionNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.infectionNote')}\n \n {input.infectionNote}\n \n )}\n {/* 本日の体調で気になることはありますか */}\n {todayConditionInputFieldsInfo?.todayConditionPoint !== todayConditionInputFieldUsage.noUse &&\n input.todayConditionPoint && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.todayConditionPoint')}\n \n {getYesNoLabel(input.todayConditionPoint)}\n \n )}\n {/* 本日の体調に関する備考 */}\n {todayConditionInputFieldsInfo?.todayConditionPoint !== todayConditionInputFieldUsage.noUse &&\n input.todayConditionPointNote && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.todayConditionPointNote')}\n \n {input.todayConditionPointNote}\n \n )}\n {/* 保育園で散歩に連れて行くことは可能ですか */}\n {todayConditionInputFieldsInfo?.stroll !== todayConditionInputFieldUsage.noUse && input.stroll && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.stroll')}\n {getYesNoLabel(input.stroll)}\n \n )}\n \n\n {/* 昨夜はよく眠りましたか */}\n {todayConditionInputFieldsInfo?.lastNightSleep !== todayConditionInputFieldUsage.noUse &&\n input.lastNightSleep && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.lastNightSleep')}\n \n {getYesNoLabel(input.lastNightSleep)}\n \n )}\n {/* 昨夜の就寝時刻 */}\n {todayConditionInputFieldsInfo?.lastNightSleep !== todayConditionInputFieldUsage.noUse &&\n input.lastNightFromTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.lastNightFromTime')}\n \n {input.lastNightFromTime}\n \n )}\n {/* 今朝の起床時刻 */}\n {todayConditionInputFieldsInfo?.lastNightSleep !== todayConditionInputFieldUsage.noUse &&\n input.lastNightToTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.lastNightToTime')}\n \n {input.lastNightToTime}\n \n )}\n {/* 普段お昼寝をしますか */}\n {todayConditionInputFieldsInfo?.nap !== todayConditionInputFieldUsage.noUse && input.nap && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.nap')}\n {getYesNoLabel(input.nap)}\n \n )}\n {/* お昼寝の種類 */}\n {todayConditionInputFieldsInfo?.nap !== todayConditionInputFieldUsage.noUse && input.napType && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.napType')}\n \n {getLabelByValue(napTypeValueLabels, input.napType)}\n \n )}\n {/* 午前睡眠開始時刻 */}\n {todayConditionInputFieldsInfo?.nap !== todayConditionInputFieldUsage.noUse &&\n input.napAmFromTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.napAmFromTime')}\n \n {input.napAmFromTime}\n \n )}\n {/* 午前睡眠終了時刻 */}\n {todayConditionInputFieldsInfo?.nap !== todayConditionInputFieldUsage.noUse &&\n input.napAmToTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.napAmToTime')}\n \n {input.napAmToTime}\n \n )}\n {/* 午後睡眠開始時刻 */}\n {todayConditionInputFieldsInfo?.nap !== todayConditionInputFieldUsage.noUse &&\n input.napPmFromTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.napPmFromTime')}\n \n {input.napPmFromTime}\n \n )}\n {/* 午後睡眠終了時刻 */}\n {todayConditionInputFieldsInfo?.nap !== todayConditionInputFieldUsage.noUse &&\n input.napPmToTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.napPmToTime')}\n \n {input.napPmToTime}\n \n )}\n \n\n {/* いつ排便をしましたか */}\n {todayConditionInputFieldsInfo?.defecation !== todayConditionInputFieldUsage.noUse &&\n input.defecationTiming && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.defecationTiming')}\n \n \n {getLabelByValue(defecationTimingValueLabels, input.defecationTiming)}\n \n \n )}\n {/* 排便時刻 */}\n {todayConditionInputFieldsInfo?.defecation !== todayConditionInputFieldUsage.noUse &&\n input.defecationHours && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.defecationHours.field')}\n \n {`${input.defecationHours}${translate(\n 'facilityReservationTodayConditionInput.form.label.defecationHours.unit'\n )}`}\n \n )}\n {/* 排便日 */}\n {todayConditionInputFieldsInfo?.defecation !== todayConditionInputFieldUsage.noUse &&\n input.defecationDaysAgo && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.defecationDaysAgo.field')}\n \n {`${input.defecationDaysAgo}${translate(\n 'facilityReservationTodayConditionInput.form.label.defecationDaysAgo.unit'\n )}`}\n \n )}\n {/* 便の状態 */}\n {todayConditionInputFieldsInfo?.defecation !== todayConditionInputFieldUsage.noUse &&\n input.defecationCondition && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.defecationCondition')}\n \n \n {getLabelByValue(defecationConditionValueLabels, input.defecationCondition)}\n \n \n )}\n \n\n {/* 食事 */}\n {todayConditionInputFieldsInfo?.meal !== todayConditionInputFieldUsage.noUse && input.meal && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.meal')}\n {getYesNoLabel(input.meal)}\n \n )}\n {/* 食事時刻 */}\n {todayConditionInputFieldsInfo?.meal !== todayConditionInputFieldUsage.noUse && input.mealTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.mealTime')}\n \n {input.mealTime}\n \n )}\n {/* 栄養方法 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.eatingMethod && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.eatingMethod')}\n \n {getLabelByValue(eatingMethodValueLabels, input.eatingMethod)}\n \n )}\n {/* 朝食を食べましたか */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.breakfast && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.breakfast')}\n \n {getLabelByValue(amountOfFoodValueLabels, input.breakfast)}\n \n )}\n {/* 朝食時刻 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.breakfastTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.breakfastTime')}\n \n {input.breakfastTime}\n \n )}\n {/* 朝食は何を食べましたか */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.breakfastWhat && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.breakfastWhat')}\n \n {input.breakfastWhat}\n \n )}\n {/* 昼食を食べましたか */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.lunch && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.lunch')}\n \n {getLabelByValue(amountOfFoodValueLabels, input.lunch)}\n \n )}\n {/* 昼食時刻 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.lunchTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.lunchTime')}\n \n {input.lunchTime}\n \n )}\n {/* 昼食は何を食べましたか */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.lunchWhat && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.lunchWhat')}\n \n {input.lunchWhat}\n \n )}\n {/* おやつは食べましたか */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.snack && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.snack')}\n \n {getYesNoLabel(input.snack)}\n \n )}\n {/* おやつ時刻 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.snackTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.snackTime')}\n \n {input.snackTime}\n \n )}\n {/* 栄養方法詳細 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.eatingMethodDetail && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.eatingMethodDetail')}\n \n \n {getLabelByValue(brestFeedingDetailValueLabels, input.eatingMethodDetail)}\n \n \n )}\n {/* ミルク量 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.milkAmount && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.milkAmount.field')}\n \n {input.milkAmount}\n \n )}\n {/* ミルク接種時刻 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.milkTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.milkTime')}\n \n {input.milkTime}\n \n )}\n {/* 母乳接種時刻 */}\n {todayConditionInputFieldsInfo?.mealDetail !== todayConditionInputFieldUsage.noUse &&\n input.breastMilkTime && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.breastMilkTime')}\n \n {input.breastMilkTime}\n \n )}\n \n\n {/* 送迎者種類 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escortType && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escortType')}\n \n {getLabelByValue(escortTypeValueLabels, input.escortType)}\n \n )}\n {/* 送迎者2氏名 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escort1Name && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escort1Name')}\n \n {input.escort1Name}\n \n )}\n {/* 送迎者2続柄 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escort1Relationship && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escort1Relationship')}\n \n {input.escort1Relationship}\n \n )}\n {/* 送迎者2電話番号 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escort1Tel && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escort1Tel')}\n \n {input.escort1Tel}\n \n )}\n {/* 送迎者2氏名 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escort2Name && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escort2Name')}\n \n {input.escort2Name}\n \n )}\n {/* 送迎者2続柄 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escort2Relationship && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escort2Relationship')}\n \n {input.escort2Relationship}\n \n )}\n {/* 送迎者2電話番号 */}\n {todayConditionInputFieldsInfo?.escort !== todayConditionInputFieldUsage.noUse &&\n input.escort2Tel && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.escort2Tel')}\n \n {input.escort2Tel}\n \n )}\n {/* 持ち物 */}\n {input.belongings && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.belongings')}\n \n \n {input.belongings\n .split(',')\n .map((item) => getLabelByValue(belongingsValueLabels, item))\n .join(',')}\n \n \n )}\n {/* 何回分のミルクを持たせましたか */}\n {input.belongingsMilkCount && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.belongingsMilkCount.field')}\n \n {input.belongingsMilkCount}\n \n )}\n {/* どれくらいのお湯でミルクを溶かしますか */}\n {input.belongingsMilkDissolveHotWater && (\n <>\n \n {translate(\n 'facilityReservationTodayConditionInput.form.label.belongingsMilkDissolveHotWater.field'\n )}\n \n {input.belongingsMilkDissolveHotWater}\n \n )}\n {/* 持ち物(その他) */}\n {input.belongingsOther && (\n <>\n \n {translate('facilityReservationTodayConditionInput.form.label.belongingsOther')}\n \n {input.belongingsOther}\n \n )}\n {/* 備考 */}\n {input.note && (\n <>\n {translate('facilityReservationTodayConditionInput.form.label.note')}\n {input.note}\n \n )}\n \n \n )}\n \n \n \n\n {/* 画面下部ボタングループ */}\n \n \n {input ? (input.updateDateTime ? '更新' : '登録') : ''}\n \n \n \n \n \n )\n}\n","import {\n Box,\n Stack,\n // Typography\n} from '@mui/material'\nimport { useAction } from '../../containers/facilityReservationTodayConditionInputCompletion/facilityReservationTodayConditionInputCompletionService'\nimport { CenterGItem, GContainer, GItem, RowSpacerGItem } from '../components/common/grids'\nimport { BottomButtonGroup } from '../components/common/bottomButtonGroup'\nimport { ButtonL } from '../components/common/buttons/buttonL'\nimport { translate } from '../../i18n'\nimport { StepBar } from '../components/common/stepBar'\nimport styled from '@emotion/styled'\nimport { CompletionMessageLabel } from '../components/common/completionMessageLabel'\nimport { ButtonOutlinedResponsive } from '../components/common/buttons/buttonOutlinedResponsive'\nimport {\n facilityReservationTodayConditionInputUrl,\n reservationStatusListUrl,\n rootUrl,\n} from '../../containers/common/constant/appUrl'\n\nconst StatementGItem = styled(GItem)({\n display: 'flex',\n justifyContent: 'center',\n margin: '38px',\n})\n\n// const AnnotationBox = styled('div')({\n// whiteSpace: 'pre-wrap',\n// display: 'flex',\n// justifyContent: 'center',\n// })\n\nexport const FacilityReservationTodayConditionInputCompletion = () => {\n const { reservationNo } = useAction()\n\n return (\n \n \n \n \n \n\n \n \n \n {'入力完了'}\n \n\n \n \n \n {'健康チェックの入力が完了しました。'}\n {'ご協力いただきありがとうございます。'}\n \n \n \n \n \n \n \n \n \n \n \n {'健康チェックの再入力'}\n \n \n {translate('facilityReservationCompletion.button.reserveStatusCheck')}\n \n {translate('system.button.backToHome')}\n \n \n )\n}\n","import { useParams } from 'react-router-dom'\n\ninterface UrlParams {\n reservationNo: string\n}\n\nexport const useAction = () => {\n const { reservationNo } = useParams()\n\n return {\n reservationNo,\n }\n}\n\n//------------------------------------------------------------------------------------------\n","// コミット用コメント\nimport { memo } from 'react'\nimport { Amplify } from '@aws-amplify/core'\nimport { Stack, Toolbar } from '@mui/material'\nimport { Analytics, Auth } from 'aws-amplify'\nimport { Route, Switch } from 'react-router'\nimport awsmobile from './aws-exports'\nimport { useAction } from './containers/app/appService'\nimport {\n accountChangeVerificationUrl,\n accountConfirmationlUrl,\n accountCreateCompletionUrl,\n accountCreateConfirmationUrl,\n accountCreateFormUrl,\n accountEmailChangeUrl,\n accountTelChangeUrl,\n accountUnsubscribeUrl,\n accountUrl,\n contactUrl,\n couponUrl,\n errorUrls,\n facilityDetailAvailabilityUrl,\n facilityDetailUrl,\n facilityReservationCompletionUrl,\n facilityReservationConfirmationUrl,\n facilityReservationDeleteConfirmationUrl,\n facilityReservationDeleteUrl,\n facilityReservationDetailUrl,\n facilityReservationFormUrl,\n facilityReservationSelectionCreateUrl,\n facilityReservationSelectionUpdateUrl,\n facilitySearchConditionUrl,\n facilitySearchResultUrl,\n faqUrl,\n homeUrl,\n identityEmailVerificationUrl,\n identityVerificationUrl,\n informationDetailUrl,\n informationUrl,\n interviewReservationCompletionUrl,\n interviewReservationConfirmationUrl,\n interviewReservationDetailUrl,\n interviewReservationFormUrl,\n interviewReservationSelectionCreateUrl,\n interviewReservationSelectionUpdateUrl,\n interviewReservationDeleteUrl,\n interviewReservationDeleteConfirmationUrl,\n loginUrl,\n forgotPasswordUrl,\n resetPasswordUrl,\n newPasswordUrl,\n manualUrl,\n memberAddChildUrl,\n memberAddConfirmationChildUrl,\n memberModifyChildUrl,\n memberModifyChildAllergyUrl,\n memberModifyChildFamilyHospitalUrl,\n memberModifyChildFebrileSeizureUrl,\n memberModifyChildHospitalAdmissionUrl,\n memberModifyChildMedicalHistoryUrl,\n memberModifyChildNormallyUsedFacilityUrl,\n memberModifyChildUsuallyMedicinesUrl,\n memberModifyChildDiseaseUrl,\n memberModifyChildVaccinationUrl,\n memberModifyChildEatingUrl,\n memberModifyChildSymptomUrl,\n memberModifyChildPredispositionUrl,\n memberModifyChildDiseaseTestUrl,\n memberModifyChildTreatmentUrl,\n memberModifyConfirmationChildUrl,\n memberModifyConfirmationUserUrl,\n memberModifyUserUrl,\n memberUrl,\n myFacilityUrl,\n myPageUrl,\n facilitySearchSettingMasterSelectionUrl,\n reservationStatusListUrl,\n rootUrl,\n termsOfServiceUrl,\n usageHistoryDetailUrl,\n usageHistoryUrl,\n webAccessibilityPolicyUrl,\n childUseEndUrl,\n ssoUrl,\n receiptViewUrl,\n emailVerifiedUrl,\n otpUrl,\n facilityReservationTodayConditionInputUrl,\n facilityReservationTodayConditionInputConfirmationUrl,\n facilityReservationTodayConditionInputCompletionUrl,\n facilityLotteryReservationFormUrl,\n facilityLotteryReservationConfirmationUrl,\n facilityLotteryReservationCompletionUrl,\n facilityLotteryReservationDetailUrl,\n facilityLotteryReservationCancelUrl,\n facilityLotteryReservationCancelConfirmationUrl,\n facilityLotteryReservationSelectionUpdateUrl\n} from './containers/common/constant/appUrl'\nimport { httpStatusCode } from './containers/common/constant/classification'\nimport { AppFooter } from './views/components/common/appFooter'\nimport { AppHeader } from './views/components/common/appHeader'\nimport { AppMain } from './views/components/common/appMain'\nimport { AuthenticatedGuard } from './views/components/common/authenticatedGuard'\nimport { LoadingProgress } from './views/components/common/loadingProgress'\nimport { ToastNotification } from './views/components/common/toastNotification'\nimport { Account } from './views/pages/account'\nimport { AccountChangeVerification } from './views/pages/accountChangeVerification'\nimport { AccountConfirmation } from './views/pages/accountConfirmation'\nimport { AccountCreateCompletion } from './views/pages/accountCreateCompletion'\nimport { AccountCreateConfirmation } from './views/pages/accountCreateConfirmation'\nimport { AccountCreateForm } from './views/pages/accountCreateForm'\nimport { AccountEmailChange } from './views/pages/accountEmailChange'\nimport { AccountTelChange } from './views/pages/accountTelChange'\nimport { AccountUnsubscribe } from './views/pages/accountUnsubscribe'\nimport { Contact } from './views/pages/contact'\nimport { Coupon } from './views/pages/coupon'\nimport { FacilityDetail } from './views/pages/facilityDetail'\nimport { FacilityDetailAvailability } from './views/pages/facilityDetailAvailability'\nimport { FacilityReservationCompletion } from './views/pages/facilityReservationCompletion'\nimport { FacilityReservationConfirmation } from './views/pages/facilityReservationConfirmation'\nimport { FacilityReservationDelete } from './views/pages/facilityReservationDelete'\nimport { FacilityReservationDeleteConfirmation } from './views/pages/facilityReservationDeleteConfirmation'\nimport { FacilityReservationDetail } from './views/pages/facilityReservationDetail'\nimport { FacilityReservationForm } from './views/pages/facilityReservationForm'\nimport { FacilityReservationSelection } from './views/pages/facilityReservationSelection'\nimport { FacilitySearchCondition } from './views/pages/facilitySearchCondition'\nimport { FacilitySearchResult } from './views/pages/facilitySearchResult'\nimport { FacilityLotteryReservationForm } from './views/pages/facilityLotteryReservationForm'\nimport { FacilityLotteryReservationConfirmation } from './views/pages/facilityLotteryReservationConfirmation'\nimport { FacilityLotteryReservationCompletion } from './views/pages/facilityLotteryReservationCompletion'\nimport { FacilityLotteryReservationDetail } from './views/pages/facilityLotteryReservationDetail'\nimport { FacilityLotteryReservationCancel } from './views/pages/facilityLotteryReservationCancel'\nimport { FacilityLotteryReservationCancelConfirmation } from './views/pages/facilityLotteryReservationCancelConfirmation'\nimport { FacilityLotteryReservationUpdateSelection } from './views/pages/facilityLotteryReservationUpdateSelection'\nimport { Faq } from './views/pages/faq'\nimport { Home } from './views/pages/home'\nimport { IdentityEmailVerification } from './views/pages/identityEmailVerification'\nimport { IdentityVerification } from './views/pages/identityVerification'\nimport { Information } from './views/pages/information'\nimport { InformationDetail } from './views/pages/informationDetail'\nimport { InterviewReservationCompletion } from './views/pages/interviewReservationCompletion'\nimport { InterviewReservationConfirmation } from './views/pages/interviewReservationConfirmation'\nimport { InterviewReservationDetail } from './views/pages/interviewReservationDetail'\nimport { InterviewReservationForm } from './views/pages/interviewReservationForm'\nimport { InterviewReservationSelection } from './views/pages/interviewReservationSelection'\nimport { InterviewReservationDelete } from './views/pages/interviewReservationDelete'\nimport { InterviewReservationDeleteConfirmation } from './views/pages/interviewReservationDeleteConfirmation'\nimport { Login } from './views/pages/login'\nimport { ForgotPassword } from './views/pages/forgotPassword'\nimport { ResetPassword } from './views/pages/resetPassword'\nimport { NewPassword } from './views/pages/newPassword'\nimport { Manual } from './views/pages/manual'\nimport { Member } from './views/pages/member'\nimport { MemberAddChild } from './views/pages/memberAddChild'\nimport { MemberAddConfirmationChild } from './views/pages/memberAddConfirmationChild'\nimport { MemberModifyChild } from './views/pages/memberModifyChild'\nimport { MemberModifyChildAllergy } from './views/pages/memberModifyChildAllergy'\nimport { MemberModifyChildFamilyHospital } from './views/pages/memberModifyChildFamilyHospital'\nimport { MemberModifyChildFebrileSeizure } from './views/pages/memberModifyChildFebrileSeizure'\nimport { MemberModifyChildHospitalAdmission } from './views/pages/memberModifyChildHospitalAdmission'\nimport { MemberModifyChildMedicalHistory } from './views/pages/memberModifyChildMedicalHistory'\nimport { MemberModifyChildNormallyUsedFacility } from './views/pages/memberModifyChildNormallyUsedFacility'\nimport { MemberModifyChildUsuallyMedicines } from './views/pages/memberModifyChildUsuallyMedicines'\nimport { MemberModifyChildDisease } from './views/pages/memberModifyChildDisease'\nimport { MemberModifyChildVaccination } from './views/pages/memberModifyChildVaccination'\nimport { MemberModifyChildEating } from './views/pages/memberModifyChildEating'\nimport { MemberModifyChildSymptom } from './views/pages/memberModifyChildSymptom'\nimport { MemberModifyChildPredisposition } from './views/pages/memberModifyChildPredisposition'\nimport { MemberModifyChildDiseaseTest } from './views/pages/memberModifyChildDiseaseTest'\nimport { MemberModifyChildTreatment } from './views/pages/memberModifyChildTreatment'\nimport { MemberModifyConfirmationChild } from './views/pages/memberModifyConfirmationChild'\nimport { MemberModifyConfirmationUser } from './views/pages/memberModifyConfirmationUser'\nimport { MemberModifyUser } from './views/pages/memberModifyUser'\nimport { MyFacility } from './views/pages/myFacility'\nimport { Mypage } from './views/pages/mypage'\nimport { FacilitySearchSettingMasterSelection } from './views/pages/facilitySearchSettingMasterSelection'\nimport { ReservationStatusList } from './views/pages/reservationStatusList'\nimport { SystemError } from './views/pages/systemError'\nimport { TermsOfService } from './views/pages/termsOfService'\nimport { TransitionInconsistency } from './views/pages/transitionInconsistency'\nimport { UnderMaintenance } from './views/pages/underMaintenance'\nimport { UsageHistory } from './views/pages/usageHistory'\nimport { UsageHistoryDetail } from './views/pages/usageHistoryDetail'\nimport { WebAccessibilityPolicy } from './views/pages/webAccessibilityPolicy'\nimport { ChildUseEnd } from './views/pages/childUseEnd'\nimport { ReceiptView } from './views/pages/receiptView'\nimport { Sso } from './views/pages/sso'\nimport {\n amplifyConfOauthDomain,\n amplifyConfOauthSignOut,\n amplifyConfOauthSignIn,\n} from './containers/common/constant/processEnv'\nimport { EmailVerification } from './views/pages/emailVerified'\nimport { OTP } from './views/pages/otp'\nimport { FacilityReservationTodayConditionInput } from './views/pages/facilityReservationTodayConditionInput'\nimport { FacilityReservationTodayConditionInputConfirmation } from './views/pages/facilityReservationTodayConditionInputConfirmation'\nimport { FacilityReservationTodayConditionInputCompletion } from './views/pages/facilityReservationTodayConditionInputCompletion'\n\nAmplify.configure(awsmobile)\n// Amplify.configure側で設定すると oauth2/token が2回発生し1回エラー、2回ともエラーになる\n// 同事象について以下サイトに記載があり、Auth.configureでoauth設定\n// 参考:\n// ・https://comytom.com/anarticle/c1ef3f1a-5197-4080-bfc2-17f2fc5a7074\n// ・https://github.com/aws-amplify/amplify-js/issues/11012\nif (amplifyConfOauthDomain && amplifyConfOauthSignIn && amplifyConfOauthSignOut) {\n Auth.configure({\n ...awsmobile,\n oauth: {\n domain: amplifyConfOauthDomain,\n scope: ['email', 'openid', 'phone', 'profile', 'aws.cognito.signin.user.admin'],\n redirectSignIn: amplifyConfOauthSignIn,\n redirectSignOut: amplifyConfOauthSignOut,\n responseType: 'code',\n },\n })\n}\n\nAnalytics.autoTrack('pageView', {\n enable: true,\n type: 'SPA',\n /**\n * Page View Trackingで登録するurl文字列。\n * URLPathParamが異なるだけなら同じ画面と扱う。\n * よって、params部分は除去した文字列を返す。\n *\n * @returns url文字列\n */\n getUrl: () => {\n const locationPath = window.location.pathname\n return locationPath.split('/', 2).join('/')\n },\n})\n\nexport const App = () => {\n const { isInitializedLoggedIn, underMaintenanceRouteMatch, receiptViewRouteMatch } = useAction()\n const isUnderMaintenanceRoute = underMaintenanceRouteMatch?.isExact\n const isReceiptViewRoute = receiptViewRouteMatch?.isExact\n\n return (\n \n )\n}\ninterface AppContentProps {\n isInitializedLoggedIn: boolean\n isUnderMaintenanceRoute: boolean\n isReceiptViewRoute: boolean\n}\nconst AppContent = memo(function AppContent(props: AppContentProps) {\n const { isInitializedLoggedIn, isUnderMaintenanceRoute, isReceiptViewRoute } = props\n const isShowHeaderFooter = !isReceiptViewRoute\n\n return isInitializedLoggedIn ? (\n \n \n \n {isShowHeaderFooter && }\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {isShowHeaderFooter && !isUnderMaintenanceRoute && }\n \n ) : (\n <>\n )\n})\n","import { useEffect } from 'react'\r\nimport { useLocation } from 'react-router'\r\n\r\nexport const ScrollToTop = () => {\r\n const { pathname } = useLocation()\r\n useEffect(() => {\r\n window.scrollTo(0, 0)\r\n }, [pathname])\r\n return null\r\n}\r\n","import React from 'react'\nimport { CssBaseline, ThemeProvider } from '@mui/material'\nimport ReactDOM from 'react-dom'\nimport { Provider } from 'react-redux'\nimport { BrowserRouter } from 'react-router-dom'\nimport './index.css'\nimport theme from './theme'\nimport { store } from './containers/common/store'\nimport { App } from './app'\nimport { ScrollToTop } from './views/components/common/scrollToTop'\n\nReactDOM.render(\n \n \n \n \n \n \n \n \n \n \n ,\n document.getElementById('root')\n)\n"],"sourceRoot":""}