{"version":3,"file":"js/application-9ed0b85ca50151898957.js","sources":["webpack:///webpack/bootstrap","webpack:///./app/assets/images/icons/icon_bugyou.png","webpack:///./app/assets/images/icons/icon_dcf.png","webpack:///./app/assets/images/icons/icon_document.png","webpack:///./app/assets/images/icons/icon_ebitda.png","webpack:///./app/assets/images/icons/icon_freee.png","webpack:///./app/assets/images/icons/icon_navi.png","webpack:///./app/assets/images/icons/icon_per.png","webpack:///./app/assets/images/icons/icon_souzoku.png","webpack:///./app/assets/images/icons/icon_time.png","webpack:///./app/assets/images/icons/icon_yayoi.png","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/ocr/analysis.js","webpack:///./app/javascript/ocr/hif.js","webpack:///./app/javascript/packs sync ^\\.\\/.*$","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/packs/components/CheckboxField/CheckboxField.tsx","webpack:///./app/javascript/packs/components/ColorPicker/ColorPicker.tsx","webpack:///./app/javascript/packs/components/ConditionalInput/ConditionalInput.tsx","webpack:///./app/javascript/packs/components/FileUploader/FileUploader.tsx","webpack:///./app/javascript/packs/components/InputField/InputField.tsx","webpack:///./app/javascript/packs/components/MessageModal/MessageModal.tsx","webpack:///./app/javascript/packs/components/NumberInput/NumberInput.tsx","webpack:///./app/javascript/packs/components/PageSelector/PageSelector.tsx","webpack:///./app/javascript/packs/components/PdfViewer/PdfViewer.tsx","webpack:///./app/javascript/packs/components/RadioGroup/RadioGroup.tsx","webpack:///./app/javascript/packs/components/SelectField/SelectField.tsx","webpack:///./app/javascript/packs/components/Subject/bs/BsContainer.tsx","webpack:///./app/javascript/packs/components/Subject/bs/assets/AssetsContainer.tsx","webpack:///./app/javascript/packs/components/Subject/bs/assets/CurrentAssets.tsx","webpack:///./app/javascript/packs/components/Subject/bs/liabilities/AccountsPayable.tsx","webpack:///./app/javascript/packs/components/Subject/bs/liabilities/InterestBearingDebt.tsx","webpack:///./app/javascript/packs/components/Subject/bs/liabilities/LiabilitiesContainer.tsx","webpack:///./app/javascript/packs/components/Subject/bs/net_assets/NetAssets.tsx","webpack:///./app/javascript/packs/components/Subject/bs/net_assets/NetAssetsContainer.tsx","webpack:///./app/javascript/packs/components/Subject/pl/PlContainer.tsx","webpack:///./app/javascript/packs/components/Subject/pl/ProfitAndLossStatement.tsx","webpack:///./app/javascript/packs/components/Subject/sga/Sga.tsx","webpack:///./app/javascript/packs/components/Subject/sga/SgaContainer.tsx","webpack:///./app/javascript/packs/components/SubjectInput/SubjectInput.tsx","webpack:///./app/javascript/packs/components/SubjectRow/SubjectRow.tsx","webpack:///./app/javascript/packs/components/Tooltip/Tooltip.tsx","webpack:///./app/javascript/packs/components/Valuation/Valuation.tsx","webpack:///./app/javascript/packs/components/ValuationCheckBox/ValuationCheckBox.tsx","webpack:///./app/javascript/packs/pages/companies/CompanyIpAddress.tsx","webpack:///./app/javascript/packs/pages/company_medical_report_options/CompanyMedicalReportOptions.tsx","webpack:///./app/javascript/packs/pages/company_medical_report_options/previews/CompanyMedicalReportPreview.tsx","webpack:///./app/javascript/packs/pages/company_medical_report_options/previews/ResultPagePreview.tsx","webpack:///./app/javascript/packs/pages/company_medical_report_options/previews/SubjectPagePreview.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportComments.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDetails.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDownloadButton.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportIndustriesStep.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportPptxStep.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportProfile.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportSubjectsStep.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportTableRow.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuation.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationButton.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationResult.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationsStep.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReports.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/api.ts","webpack:///./app/javascript/packs/pages/company_medical_reports/company_medical_reports/hooks.ts","webpack:///./app/javascript/packs/pages/company_medical_reports/industries/IndustriesForm.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/ocr/OcrResult.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/ocr/OcrResultRow.tsx","webpack:///./app/javascript/packs/pages/company_medical_reports/ocr/api.ts","webpack:///./app/javascript/packs/pages/company_medical_reports/ocr/hooks.ts","webpack:///./app/javascript/packs/pages/company_medical_reports/valuation/ValuationForm.tsx","webpack:///./app/javascript/packs/pages/crawl/CrawlingResult.tsx","webpack:///./app/javascript/packs/pages/crawl/Result.tsx","webpack:///./app/javascript/packs/pages/crawl/data/use-filter.js","webpack:///./app/javascript/packs/pages/crawl/pagination.scss?791f","webpack:///./app/javascript/packs/pages/debug/components/result.tsx","webpack:///./app/javascript/packs/pages/debug/components/result_row.scss?0191","webpack:///./app/javascript/packs/pages/debug/components/result_row.tsx","webpack:///./app/javascript/packs/pages/dictionaries/index.ts","webpack:///./app/javascript/packs/pages/formula/AssetReport.tsx","webpack:///./app/javascript/packs/pages/formula/valuation_form.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuation.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationCalculation.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationCalculations.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationIndex.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationOutput.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationResults.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationSimilarities.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationSubjects.tsx","webpack:///./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuations.tsx","webpack:///./app/javascript/packs/pages/inheritance/ocr/OcrResult.tsx","webpack:///./app/javascript/packs/pages/inheritance/ocr/OcrResultRow.tsx","webpack:///./app/javascript/packs/pages/inheritance/similarities/SimimilaritiesForm.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/concern/InheritanceSubject.ts","webpack:///./app/javascript/packs/pages/inheritance/subjects/concern/SubjectInput.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/CorporateTaxReturn.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/CtContainer.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/SubjectsInputForm.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/SubjectsInputForm.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/BsContainer.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/assets/AssetsContainer.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/assets/CurrentAssets.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/liabilities/InterestBearingDebt.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/liabilities/LiabilitiesContainer.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssets.tsx","webpack:///./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssetsContainer.tsx","webpack:///./app/javascript/packs/pages/inheritance/valuation/ValuationForm.tsx","webpack:///./app/javascript/packs/pages/ocr/components/analyze_fs_result.tsx","webpack:///./app/javascript/packs/pages/ocr/components/analyze_result.tsx","webpack:///./app/javascript/packs/pages/ocr/components/convert_result.tsx","webpack:///./app/javascript/packs/pages/ocr/components/convert_row.tsx","webpack:///./app/javascript/packs/pages/ocr/components/result_row.scss?36df","webpack:///./app/javascript/packs/pages/ocr/components/result_row.tsx","webpack:///./app/javascript/packs/pages/ocr/view_pdf.ts","webpack:///./app/javascript/packs/pages/reports/formula/FormulaForm.tsx","webpack:///./app/javascript/packs/pages/reports/formula/FormulaWaccSelector.tsx","webpack:///./app/javascript/packs/pages/reports/formula/api.ts","webpack:///./app/javascript/packs/pages/reports/formula/hooks.ts","webpack:///./app/javascript/packs/pages/reports/ocr/OcrResult.tsx","webpack:///./app/javascript/packs/pages/reports/ocr/OcrResultRow.tsx","webpack:///./app/javascript/packs/pages/reports/ocr/api.ts","webpack:///./app/javascript/packs/pages/reports/ocr/hooks.ts","webpack:///./app/javascript/packs/pages/reports/report/ReportCalculation.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportCalculationButton.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportCalculationsStep.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportDetails.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportDownloadButton.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportGenPptxStep.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportIndex.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportSimilaritiesStep.tsx","webpack:///./app/javascript/packs/pages/reports/report/ReportSubjectsStep.tsx","webpack:///./app/javascript/packs/pages/reports/report/Reports.tsx","webpack:///./app/javascript/packs/pages/reports/report/api.ts","webpack:///./app/javascript/packs/pages/reports/report/hooks.ts","webpack:///./app/javascript/packs/pages/reports/similar_companies/SimilarCompanies.tsx","webpack:///./app/javascript/packs/pages/reports/similar_companies/api.ts","webpack:///./app/javascript/packs/pages/reports/similar_companies/hooks.ts","webpack:///./app/javascript/packs/pages/subjects/SubjectsInputForm.tsx","webpack:///./app/javascript/packs/pages/subjects/SubjectsUploadForm.tsx","webpack:///./app/javascript/packs/pages/subjects/api.ts","webpack:///./app/javascript/packs/pages/subjects/hooks.ts","webpack:///./app/javascript/packs/pages/users/UsersAccountOption.tsx","webpack:///./app/javascript/packs/pages/users/UsersCompanyMedicalReportOption.tsx","webpack:///./app/javascript/packs/pages/users/UsersFunctions.tsx","webpack:///./app/javascript/packs/pages/users/UsersSlideImageUploader.tsx","webpack:///./app/javascript/packs/pages/users/UsersValuationReportOption.tsx","webpack:///./app/javascript/packs/pages/users/api.ts","webpack:///./app/javascript/packs/pages/valuation_report_options/ValuationReportOptions.tsx","webpack:///./app/javascript/packs/pages/valuation_report_options/previews/ApproachPagePreview.tsx","webpack:///./app/javascript/packs/pages/valuation_report_options/previews/HeaderPagePreview.tsx","webpack:///./app/javascript/packs/pages/valuation_report_options/previews/SummaryPagePreview.tsx","webpack:///./app/javascript/packs/pages/valuation_report_options/previews/TopPagePreview.tsx","webpack:///./app/javascript/packs/pages/valuation_report_options/previews/ValuationReportPreview.tsx","webpack:///./app/javascript/packs/pages/words/index.ts","webpack:///./app/javascript/packs/pages/words/words.ts","webpack:///./app/javascript/packs/server_rendering.js","webpack:///./app/javascript/packs/utils/common.ts","webpack:///./app/javascript/packs/utils/constant.ts","webpack:///./app/javascript/packs/utils/schema.ts","webpack:///./app/javascript/stylesheets/application.css","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/createSuper.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/createSuper.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime/helpers/objectSpread2.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/@babel/runtime/helpers/taggedTemplateLiteral.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack:///./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack:///./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack:///./node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","webpack:///./node_modules/@emotion/react/dist/emotion-element-43c6fea0.browser.esm.js","webpack:///./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack:///./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack:///./node_modules/@emotion/serialize/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack:///./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack:///./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack:///./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack:///./node_modules/@emotion/weak-memoize/dist/emotion-weak-memoize.esm.js","webpack:///./node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","webpack:///./node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack:///./node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js","webpack:///./node_modules/@floating-ui/utils/dom/floating-ui.utils.dom.esm.js","webpack:///./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack:///./node_modules/@fortawesome/free-solid-svg-icons/index.es.js","webpack:///./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack:///./node_modules/@hookform/error-message/dist/index.esm.js","webpack:///./node_modules/@icons/material/CheckIcon.js","webpack:///./node_modules/@icons/material/UnfoldMoreHorizontalIcon.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@seznam/compose-react-refs/composeRefs.js","webpack:///./node_modules/@vtaits/use-lazy-ref/dist/use-lazy-ref.js","webpack:///./node_modules/axios/index.js","webpack:///./node_modules/axios/lib/adapters/xhr.js","webpack:///./node_modules/axios/lib/axios.js","webpack:///./node_modules/axios/lib/cancel/Cancel.js","webpack:///./node_modules/axios/lib/cancel/CancelToken.js","webpack:///./node_modules/axios/lib/cancel/isCancel.js","webpack:///./node_modules/axios/lib/core/Axios.js","webpack:///./node_modules/axios/lib/core/InterceptorManager.js","webpack:///./node_modules/axios/lib/core/buildFullPath.js","webpack:///./node_modules/axios/lib/core/createError.js","webpack:///./node_modules/axios/lib/core/dispatchRequest.js","webpack:///./node_modules/axios/lib/core/enhanceError.js","webpack:///./node_modules/axios/lib/core/mergeConfig.js","webpack:///./node_modules/axios/lib/core/settle.js","webpack:///./node_modules/axios/lib/core/transformData.js","webpack:///./node_modules/axios/lib/defaults.js","webpack:///./node_modules/axios/lib/helpers/bind.js","webpack:///./node_modules/axios/lib/helpers/buildURL.js","webpack:///./node_modules/axios/lib/helpers/combineURLs.js","webpack:///./node_modules/axios/lib/helpers/cookies.js","webpack:///./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack:///./node_modules/axios/lib/helpers/isAxiosError.js","webpack:///./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack:///./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack:///./node_modules/axios/lib/helpers/parseHeaders.js","webpack:///./node_modules/axios/lib/helpers/spread.js","webpack:///./node_modules/axios/lib/utils.js","webpack:///./node_modules/dequal/lite/index.mjs","webpack:///./node_modules/dom-to-image/src/dom-to-image.js","webpack:///./node_modules/exenv/index.js","webpack:///./node_modules/filepond-plugin-file-validate-size/dist/filepond-plugin-file-validate-size.js","webpack:///./node_modules/filepond-plugin-file-validate-type/dist/filepond-plugin-file-validate-type.js","webpack:///./node_modules/filepond/dist/filepond.js","webpack:///./node_modules/filepond/dist/filepond.min.css","webpack:///./node_modules/goober/dist/goober.esm.js","webpack:///./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack:///./node_modules/lodash-es/_DataView.js","webpack:///./node_modules/lodash-es/_Hash.js","webpack:///./node_modules/lodash-es/_ListCache.js","webpack:///./node_modules/lodash-es/_Map.js","webpack:///./node_modules/lodash-es/_MapCache.js","webpack:///./node_modules/lodash-es/_Promise.js","webpack:///./node_modules/lodash-es/_Set.js","webpack:///./node_modules/lodash-es/_SetCache.js","webpack:///./node_modules/lodash-es/_Stack.js","webpack:///./node_modules/lodash-es/_Symbol.js","webpack:///./node_modules/lodash-es/_Uint8Array.js","webpack:///./node_modules/lodash-es/_WeakMap.js","webpack:///./node_modules/lodash-es/_apply.js","webpack:///./node_modules/lodash-es/_arrayEach.js","webpack:///./node_modules/lodash-es/_arrayFilter.js","webpack:///./node_modules/lodash-es/_arrayLikeKeys.js","webpack:///./node_modules/lodash-es/_arrayMap.js","webpack:///./node_modules/lodash-es/_arrayPush.js","webpack:///./node_modules/lodash-es/_arraySome.js","webpack:///./node_modules/lodash-es/_assignMergeValue.js","webpack:///./node_modules/lodash-es/_assignValue.js","webpack:///./node_modules/lodash-es/_assocIndexOf.js","webpack:///./node_modules/lodash-es/_baseAssignValue.js","webpack:///./node_modules/lodash-es/_baseCreate.js","webpack:///./node_modules/lodash-es/_baseEach.js","webpack:///./node_modules/lodash-es/_baseFor.js","webpack:///./node_modules/lodash-es/_baseForOwn.js","webpack:///./node_modules/lodash-es/_baseGet.js","webpack:///./node_modules/lodash-es/_baseGetAllKeys.js","webpack:///./node_modules/lodash-es/_baseGetTag.js","webpack:///./node_modules/lodash-es/_baseHasIn.js","webpack:///./node_modules/lodash-es/_baseIsArguments.js","webpack:///./node_modules/lodash-es/_baseIsEqual.js","webpack:///./node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///./node_modules/lodash-es/_baseIsMatch.js","webpack:///./node_modules/lodash-es/_baseIsNative.js","webpack:///./node_modules/lodash-es/_baseIsTypedArray.js","webpack:///./node_modules/lodash-es/_baseIteratee.js","webpack:///./node_modules/lodash-es/_baseKeys.js","webpack:///./node_modules/lodash-es/_baseKeysIn.js","webpack:///./node_modules/lodash-es/_baseMap.js","webpack:///./node_modules/lodash-es/_baseMatches.js","webpack:///./node_modules/lodash-es/_baseMatchesProperty.js","webpack:///./node_modules/lodash-es/_baseMerge.js","webpack:///./node_modules/lodash-es/_baseMergeDeep.js","webpack:///./node_modules/lodash-es/_baseProperty.js","webpack:///./node_modules/lodash-es/_basePropertyDeep.js","webpack:///./node_modules/lodash-es/_baseRest.js","webpack:///./node_modules/lodash-es/_baseSetToString.js","webpack:///./node_modules/lodash-es/_baseTimes.js","webpack:///./node_modules/lodash-es/_baseToString.js","webpack:///./node_modules/lodash-es/_baseTrim.js","webpack:///./node_modules/lodash-es/_baseUnary.js","webpack:///./node_modules/lodash-es/_cacheHas.js","webpack:///./node_modules/lodash-es/_castFunction.js","webpack:///./node_modules/lodash-es/_castPath.js","webpack:///./node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///./node_modules/lodash-es/_cloneBuffer.js","webpack:///./node_modules/lodash-es/_cloneTypedArray.js","webpack:///./node_modules/lodash-es/_copyArray.js","webpack:///./node_modules/lodash-es/_copyObject.js","webpack:///./node_modules/lodash-es/_coreJsData.js","webpack:///./node_modules/lodash-es/_createAssigner.js","webpack:///./node_modules/lodash-es/_createBaseEach.js","webpack:///./node_modules/lodash-es/_createBaseFor.js","webpack:///./node_modules/lodash-es/_defineProperty.js","webpack:///./node_modules/lodash-es/_equalArrays.js","webpack:///./node_modules/lodash-es/_equalByTag.js","webpack:///./node_modules/lodash-es/_equalObjects.js","webpack:///./node_modules/lodash-es/_freeGlobal.js","webpack:///./node_modules/lodash-es/_getAllKeys.js","webpack:///./node_modules/lodash-es/_getMapData.js","webpack:///./node_modules/lodash-es/_getMatchData.js","webpack:///./node_modules/lodash-es/_getNative.js","webpack:///./node_modules/lodash-es/_getPrototype.js","webpack:///./node_modules/lodash-es/_getRawTag.js","webpack:///./node_modules/lodash-es/_getSymbols.js","webpack:///./node_modules/lodash-es/_getTag.js","webpack:///./node_modules/lodash-es/_getValue.js","webpack:///./node_modules/lodash-es/_hasPath.js","webpack:///./node_modules/lodash-es/_hashClear.js","webpack:///./node_modules/lodash-es/_hashDelete.js","webpack:///./node_modules/lodash-es/_hashGet.js","webpack:///./node_modules/lodash-es/_hashHas.js","webpack:///./node_modules/lodash-es/_hashSet.js","webpack:///./node_modules/lodash-es/_initCloneObject.js","webpack:///./node_modules/lodash-es/_isIndex.js","webpack:///./node_modules/lodash-es/_isIterateeCall.js","webpack:///./node_modules/lodash-es/_isKey.js","webpack:///./node_modules/lodash-es/_isKeyable.js","webpack:///./node_modules/lodash-es/_isMasked.js","webpack:///./node_modules/lodash-es/_isPrototype.js","webpack:///./node_modules/lodash-es/_isStrictComparable.js","webpack:///./node_modules/lodash-es/_listCacheClear.js","webpack:///./node_modules/lodash-es/_listCacheDelete.js","webpack:///./node_modules/lodash-es/_listCacheGet.js","webpack:///./node_modules/lodash-es/_listCacheHas.js","webpack:///./node_modules/lodash-es/_listCacheSet.js","webpack:///./node_modules/lodash-es/_mapCacheClear.js","webpack:///./node_modules/lodash-es/_mapCacheDelete.js","webpack:///./node_modules/lodash-es/_mapCacheGet.js","webpack:///./node_modules/lodash-es/_mapCacheHas.js","webpack:///./node_modules/lodash-es/_mapCacheSet.js","webpack:///./node_modules/lodash-es/_mapToArray.js","webpack:///./node_modules/lodash-es/_matchesStrictComparable.js","webpack:///./node_modules/lodash-es/_memoizeCapped.js","webpack:///./node_modules/lodash-es/_nativeCreate.js","webpack:///./node_modules/lodash-es/_nativeKeys.js","webpack:///./node_modules/lodash-es/_nativeKeysIn.js","webpack:///./node_modules/lodash-es/_nodeUtil.js","webpack:///./node_modules/lodash-es/_objectToString.js","webpack:///./node_modules/lodash-es/_overArg.js","webpack:///./node_modules/lodash-es/_overRest.js","webpack:///./node_modules/lodash-es/_root.js","webpack:///./node_modules/lodash-es/_safeGet.js","webpack:///./node_modules/lodash-es/_setCacheAdd.js","webpack:///./node_modules/lodash-es/_setCacheHas.js","webpack:///./node_modules/lodash-es/_setToArray.js","webpack:///./node_modules/lodash-es/_setToString.js","webpack:///./node_modules/lodash-es/_shortOut.js","webpack:///./node_modules/lodash-es/_stackClear.js","webpack:///./node_modules/lodash-es/_stackDelete.js","webpack:///./node_modules/lodash-es/_stackGet.js","webpack:///./node_modules/lodash-es/_stackHas.js","webpack:///./node_modules/lodash-es/_stackSet.js","webpack:///./node_modules/lodash-es/_stringToPath.js","webpack:///./node_modules/lodash-es/_toKey.js","webpack:///./node_modules/lodash-es/_toSource.js","webpack:///./node_modules/lodash-es/_trimmedEndIndex.js","webpack:///./node_modules/lodash-es/constant.js","webpack:///./node_modules/lodash-es/debounce.js","webpack:///./node_modules/lodash-es/each.js","webpack:///./node_modules/lodash-es/eq.js","webpack:///./node_modules/lodash-es/forEach.js","webpack:///./node_modules/lodash-es/get.js","webpack:///./node_modules/lodash-es/hasIn.js","webpack:///./node_modules/lodash-es/identity.js","webpack:///./node_modules/lodash-es/isArguments.js","webpack:///./node_modules/lodash-es/isArray.js","webpack:///./node_modules/lodash-es/isArrayLike.js","webpack:///./node_modules/lodash-es/isArrayLikeObject.js","webpack:///./node_modules/lodash-es/isBuffer.js","webpack:///./node_modules/lodash-es/isFunction.js","webpack:///./node_modules/lodash-es/isLength.js","webpack:///./node_modules/lodash-es/isObject.js","webpack:///./node_modules/lodash-es/isObjectLike.js","webpack:///./node_modules/lodash-es/isPlainObject.js","webpack:///./node_modules/lodash-es/isSymbol.js","webpack:///./node_modules/lodash-es/isTypedArray.js","webpack:///./node_modules/lodash-es/isUndefined.js","webpack:///./node_modules/lodash-es/keys.js","webpack:///./node_modules/lodash-es/keysIn.js","webpack:///./node_modules/lodash-es/map.js","webpack:///./node_modules/lodash-es/memoize.js","webpack:///./node_modules/lodash-es/merge.js","webpack:///./node_modules/lodash-es/now.js","webpack:///./node_modules/lodash-es/property.js","webpack:///./node_modules/lodash-es/stubArray.js","webpack:///./node_modules/lodash-es/stubFalse.js","webpack:///./node_modules/lodash-es/throttle.js","webpack:///./node_modules/lodash-es/toNumber.js","webpack:///./node_modules/lodash-es/toPlainObject.js","webpack:///./node_modules/lodash-es/toString.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/forOwn.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/map.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/material-colors/dist/colors.es2015.js","webpack:///./node_modules/memoize-one/dist/memoize-one.esm.js","webpack:///./node_modules/object-assign/index.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/prop-types/index.js","webpack:///./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-color/es/components/alpha/Alpha.js","webpack:///./node_modules/react-color/es/components/alpha/AlphaPointer.js","webpack:///./node_modules/react-color/es/components/block/Block.js","webpack:///./node_modules/react-color/es/components/block/BlockSwatches.js","webpack:///./node_modules/react-color/es/components/chrome/Chrome.js","webpack:///./node_modules/react-color/es/components/chrome/ChromeFields.js","webpack:///./node_modules/react-color/es/components/chrome/ChromePointer.js","webpack:///./node_modules/react-color/es/components/chrome/ChromePointerCircle.js","webpack:///./node_modules/react-color/es/components/circle/Circle.js","webpack:///./node_modules/react-color/es/components/circle/CircleSwatch.js","webpack:///./node_modules/react-color/es/components/common/Alpha.js","webpack:///./node_modules/react-color/es/components/common/Checkboard.js","webpack:///./node_modules/react-color/es/components/common/ColorWrap.js","webpack:///./node_modules/react-color/es/components/common/EditableInput.js","webpack:///./node_modules/react-color/es/components/common/Hue.js","webpack:///./node_modules/react-color/es/components/common/Raised.js","webpack:///./node_modules/react-color/es/components/common/Saturation.js","webpack:///./node_modules/react-color/es/components/common/Swatch.js","webpack:///./node_modules/react-color/es/components/common/index.js","webpack:///./node_modules/react-color/es/components/compact/Compact.js","webpack:///./node_modules/react-color/es/components/compact/CompactColor.js","webpack:///./node_modules/react-color/es/components/compact/CompactFields.js","webpack:///./node_modules/react-color/es/components/github/Github.js","webpack:///./node_modules/react-color/es/components/github/GithubSwatch.js","webpack:///./node_modules/react-color/es/components/google/Google.js","webpack:///./node_modules/react-color/es/components/google/GoogleFields.js","webpack:///./node_modules/react-color/es/components/google/GooglePointer.js","webpack:///./node_modules/react-color/es/components/google/GooglePointerCircle.js","webpack:///./node_modules/react-color/es/components/hue/Hue.js","webpack:///./node_modules/react-color/es/components/hue/HuePointer.js","webpack:///./node_modules/react-color/es/components/material/Material.js","webpack:///./node_modules/react-color/es/components/photoshop/Photoshop.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopButton.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopFields.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopPointer.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopPointerCircle.js","webpack:///./node_modules/react-color/es/components/photoshop/PhotoshopPreviews.js","webpack:///./node_modules/react-color/es/components/sketch/Sketch.js","webpack:///./node_modules/react-color/es/components/sketch/SketchFields.js","webpack:///./node_modules/react-color/es/components/sketch/SketchPresetColors.js","webpack:///./node_modules/react-color/es/components/slider/Slider.js","webpack:///./node_modules/react-color/es/components/slider/SliderPointer.js","webpack:///./node_modules/react-color/es/components/slider/SliderSwatch.js","webpack:///./node_modules/react-color/es/components/slider/SliderSwatches.js","webpack:///./node_modules/react-color/es/components/swatches/Swatches.js","webpack:///./node_modules/react-color/es/components/swatches/SwatchesColor.js","webpack:///./node_modules/react-color/es/components/swatches/SwatchesGroup.js","webpack:///./node_modules/react-color/es/components/twitter/Twitter.js","webpack:///./node_modules/react-color/es/helpers/alpha.js","webpack:///./node_modules/react-color/es/helpers/checkboard.js","webpack:///./node_modules/react-color/es/helpers/color.js","webpack:///./node_modules/react-color/es/helpers/hue.js","webpack:///./node_modules/react-color/es/helpers/interaction.js","webpack:///./node_modules/react-color/es/helpers/saturation.js","webpack:///./node_modules/react-color/es/index.js","webpack:///./node_modules/react-color/node_modules/prop-types/checkPropTypes.js","webpack:///./node_modules/react-color/node_modules/prop-types/factoryWithTypeCheckers.js","webpack:///./node_modules/react-color/node_modules/prop-types/index.js","webpack:///./node_modules/react-color/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:///./node_modules/react-color/node_modules/prop-types/lib/has.js","webpack:///./node_modules/react-dom/cjs/react-dom-server.browser.development.js","webpack:///./node_modules/react-dom/cjs/react-dom.development.js","webpack:///./node_modules/react-dom/index.js","webpack:///./node_modules/react-dom/server.browser.js","webpack:///./node_modules/react-filepond/dist/react-filepond.js","webpack:///./node_modules/react-hook-form/dist/index.esm.mjs","webpack:///./node_modules/react-hot-toast/dist/index.js","webpack:///./node_modules/react-is/cjs/react-is.development.js","webpack:///./node_modules/react-is/index.js","webpack:///./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack:///./node_modules/react-loader-spinner/dist/index.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Audio.js","webpack:///./node_modules/react-loader-spinner/dist/loader/BallTriangle.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Bars.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Circles.js","webpack:///./node_modules/react-loader-spinner/dist/loader/CradleLoader.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Grid.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Hearts.js","webpack:///./node_modules/react-loader-spinner/dist/loader/MutatingDots.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Oval.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Plane.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Puff.js","webpack:///./node_modules/react-loader-spinner/dist/loader/RevolvingDot.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Rings.js","webpack:///./node_modules/react-loader-spinner/dist/loader/TailSpin.js","webpack:///./node_modules/react-loader-spinner/dist/loader/ThreeDots.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Triangle.js","webpack:///./node_modules/react-loader-spinner/dist/loader/Watch.js","webpack:///./node_modules/react-loader-spinner/dist/loader/index.js","webpack:///./node_modules/react-modal-hook/dist/index.es.js","webpack:///./node_modules/react-modal/lib/components/Modal.js","webpack:///./node_modules/react-modal/lib/components/ModalPortal.js","webpack:///./node_modules/react-modal/lib/helpers/ariaAppHider.js","webpack:///./node_modules/react-modal/lib/helpers/bodyTrap.js","webpack:///./node_modules/react-modal/lib/helpers/classList.js","webpack:///./node_modules/react-modal/lib/helpers/focusManager.js","webpack:///./node_modules/react-modal/lib/helpers/portalOpenInstances.js","webpack:///./node_modules/react-modal/lib/helpers/safeHTMLElement.js","webpack:///./node_modules/react-modal/lib/helpers/scopeTab.js","webpack:///./node_modules/react-modal/lib/helpers/tabbable.js","webpack:///./node_modules/react-modal/lib/index.js","webpack:///./node_modules/react-number-format/dist/react-number-format.es.js","webpack:///./node_modules/react-paginate/dist/react-paginate.js","webpack:///./node_modules/react-select-async-paginate/dist/esm/index.js","webpack:///./node_modules/react-select/dist/Select-49a62830.esm.js","webpack:///./node_modules/react-select/dist/index-a301f526.esm.js","webpack:///./node_modules/react-select/dist/react-select.esm.js","webpack:///./node_modules/react-select/dist/useStateManager-7e1e8489.esm.js","webpack:///./node_modules/react-tiny-popover/dist/ArrowContainer.js","webpack:///./node_modules/react-tiny-popover/dist/Popover.js","webpack:///./node_modules/react-tiny-popover/dist/PopoverPortal.js","webpack:///./node_modules/react-tiny-popover/dist/useArrowContainer.js","webpack:///./node_modules/react-tiny-popover/dist/useElementRef.js","webpack:///./node_modules/react-tiny-popover/dist/useMemoizedArray.js","webpack:///./node_modules/react-tiny-popover/dist/usePopover.js","webpack:///./node_modules/react-tiny-popover/dist/util.js","webpack:///./node_modules/react/cjs/react-jsx-runtime.development.js","webpack:///./node_modules/react/cjs/react.development.js","webpack:///./node_modules/react/index.js","webpack:///./node_modules/react/jsx-runtime.js","webpack:///./node_modules/react_ujs/react_ujs/index.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/detect.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/native.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/pjax.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinks.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js","webpack:///./node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js","webpack:///./node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js","webpack:///./node_modules/reactcss/lib/autoprefix.js","webpack:///./node_modules/reactcss/lib/components/active.js","webpack:///./node_modules/reactcss/lib/components/hover.js","webpack:///./node_modules/reactcss/lib/flattenNames.js","webpack:///./node_modules/reactcss/lib/index.js","webpack:///./node_modules/reactcss/lib/loop.js","webpack:///./node_modules/reactcss/lib/mergeClasses.js","webpack:///./node_modules/scheduler/cjs/scheduler-tracing.development.js","webpack:///./node_modules/scheduler/cjs/scheduler.development.js","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/scheduler/tracing.js","webpack:///./node_modules/setimmediate/setImmediate.js","webpack:///./node_modules/sleep-promise/build/esm.mjs","webpack:///./node_modules/stylis/dist/stylis.mjs","webpack:///./node_modules/swr/dist/index.esm.js","webpack:///./node_modules/timers-browserify/main.js","webpack:///./node_modules/tinycolor2/tinycolor.js","webpack:///./node_modules/use-is-mounted-ref/dist/use-is-mounted-ref.es.js","webpack:///./node_modules/use-isomorphic-layout-effect/dist/use-isomorphic-layout-effect.browser.esm.js","webpack:///./node_modules/warning/warning.js","webpack:///(webpack)/buildin/amd-options.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/zod/lib/index.mjs"],"sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./app/javascript/packs/application.js\");\n","module.exports = __webpack_public_path__ + \"media/icons/icon_bugyou-6c88b1ac.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_dcf-fdd1bac5.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_document-47c818fc.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_ebitda-376f0355.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_freee-58bfd325.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_navi-137af941.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_per-05275ffd.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_souzoku-c0c6ad08.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_time-d6ddf6db.png\";","module.exports = __webpack_public_path__ + \"media/icons/icon_yayoi-040ea6c7.png\";","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = \"./app/javascript/channels sync recursive _channel\\\\.js$\";","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\n// eslint-disable-next-line no-undef\nconst channels = require.context('.', true, /_channel\\.js$/);\nchannels.keys().forEach(channels);\n","// TODO:Reactに以下の処理を移す\n// リロードによるスキャンチケットの二重カウント対策\n// /ocr/analysis/id/result URLの書き換え\nconst loc = location.toString();\nif (loc.includes('analysis') && loc.includes('result')) {\n if (window.performance) {\n if (performance.navigation.type === 0) {\n const url = new URL(location);\n url.toString();\n url.searchParams.set('success', 'true');\n history.pushState(null, null, url.href);\n }\n }\n}\n","// TODO:Reactに以下の処理を移す\n// リロードによるスキャンチケットの二重カウント対策\n// /ocr/hif/id/convert URLの書き換え\nconst loc = location.toString();\nif (loc.includes('hif') && loc.includes('convert')) {\n if (window.performance) {\n if (performance.navigation.type === 0) {\n const url = new URL(location);\n url.toString();\n url.searchParams.set('success', 'true');\n history.pushState(null, null, url.href);\n }\n }\n}\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // 商業登記簿謄本\n const uploadArea = document.getElementById('uploadArea');\n if (uploadArea !== null) {\n uploadArea.addEventListener('dragover', (event) => {\n event.preventDefault();\n event.target.classList.add('drag');\n });\n\n uploadArea.addEventListener('dragleave', (event) => {\n event.target.classList.remove('drag');\n });\n\n // 追加のdropイベント\n uploadArea.addEventListener('drop', (event) => {\n event.preventDefault();\n var input = document.querySelectorAll('input[name=\"files[]\"]');\n input[0].files = makeFileList(input, event);\n var reset_ul = document.querySelector('#file_list');\n reset_ul.innerHTML = '';\n makeTitle(reset_ul);\n\n var num = 0;\n Array.from(input[0].files).forEach(function (item) {\n var ul = document.querySelector('#file_list');\n var li = createLi();\n var text = document.createTextNode(item.name);\n var space = document.createTextNode(' ');\n const deleteButton = createButton(num);\n li.appendChild(text);\n li.appendChild(space);\n li.appendChild(deleteButton);\n ul.appendChild(li);\n num = num + 1;\n });\n });\n\n // ファイルが選択されたら実行\n document\n .getElementById('upload_file')\n .addEventListener('change', function () {\n var reset_ul = document.querySelector('#file_list');\n reset_ul.innerHTML = '';\n makeTitle(reset_ul);\n\n var input = document.querySelectorAll('input[name=\"files[]\"]');\n\n var num = 0;\n Array.from(input[0].files).forEach(function (item) {\n var ul = document.querySelector('#file_list');\n var li = createLi();\n var text = document.createTextNode(item.name);\n var space = document.createTextNode(' ');\n const deleteButton = createButton(num);\n li.appendChild(text);\n li.appendChild(space);\n li.appendChild(deleteButton);\n ul.appendChild(li);\n num = num + 1;\n });\n });\n\n // ファイル削除\n document\n .getElementById('file_list')\n .addEventListener('click', function (e) {\n // id取得\n var file_id = e.path[0].id;\n var input = document.querySelectorAll('input[name=\"files[]\"]');\n\n // 削除後の配列作成\n var new_files = createNewFiles(file_id, input);\n\n // FileList再作成\n input[0].files = createNewFileList(new_files);\n\n // リストの表示\n var reset_ul = document.querySelector('#file_list');\n reset_ul.innerHTML = '';\n makeTitle(reset_ul);\n var num = 0;\n Array.from(input[0].files).forEach(function (item) {\n var ul = document.querySelector('#file_list');\n var li = createLi();\n var text = document.createTextNode(item.name);\n var space = document.createTextNode(' ');\n const deleteButton = createButton(num);\n li.appendChild(text);\n li.appendChild(space);\n li.appendChild(deleteButton);\n ul.appendChild(li);\n num = num + 1;\n });\n });\n uploadAnimation();\n }\n\n // 債権譲渡謄本\n const creditUploadArea = document.getElementById('credit_upload_area');\n if (creditUploadArea !== null) {\n creditUploadArea.addEventListener('dragover', (event) => {\n event.preventDefault();\n event.target.classList.add('drag');\n });\n\n creditUploadArea.addEventListener('dragleave', (event) => {\n event.target.classList.remove('drag');\n });\n\n // 追加のdropイベント\n creditUploadArea.addEventListener('drop', (event) => {\n event.preventDefault();\n var input = document.querySelectorAll('input[name=\"credit_files[]\"]');\n input[0].files = makeFileList(input, event);\n var reset_ul = document.querySelector('#credit_file_list');\n reset_ul.innerHTML = '';\n makeTitle(reset_ul);\n var num = 0;\n\n Array.from(input[0].files).forEach(function (item) {\n var ul = document.querySelector('#credit_file_list');\n var li = createLi();\n var text = document.createTextNode(item.name);\n var space = document.createTextNode(' ');\n const deleteButton = createButton(num);\n li.appendChild(text);\n li.appendChild(space);\n li.appendChild(deleteButton);\n ul.appendChild(li);\n num = num + 1;\n });\n });\n\n // ファイルが選択されたら実行\n document\n .getElementById('upload_credit_file')\n .addEventListener('change', function () {\n var reset_ul = document.querySelector('#credit_file_list');\n reset_ul.innerHTML = '';\n makeTitle(reset_ul);\n\n var input = document.querySelectorAll('input[name=\"credit_files[]\"]');\n\n var num = 0;\n Array.from(input[0].files).forEach(function (item) {\n var ul = document.querySelector('#credit_file_list');\n var li = createLi();\n var text = document.createTextNode(item.name);\n var space = document.createTextNode(' ');\n const deleteButton = createButton(num);\n li.appendChild(text);\n li.appendChild(space);\n li.appendChild(deleteButton);\n ul.appendChild(li);\n num = num + 1;\n });\n });\n\n // ファイル削除\n document\n .getElementById('credit_file_list')\n .addEventListener('click', function (e) {\n // id取得\n var file_id = e.path[0].id;\n var input = document.querySelectorAll('input[name=\"credit_files[]\"]');\n\n // 削除後の配列作成\n var new_files = createNewFiles(file_id, input);\n\n // FileList再作成\n input[0].files = createNewFileList(new_files);\n\n // リストの表示\n var reset_ul = document.querySelector('#credit_file_list');\n reset_ul.innerHTML = '';\n makeTitle(reset_ul);\n var num = 0;\n Array.from(input[0].files).forEach(function (item) {\n var ul = document.querySelector('#credit_file_list');\n var li = createLi();\n var text = document.createTextNode(item.name);\n var space = document.createTextNode(' ');\n const deleteButton = createButton(num);\n li.appendChild(text);\n li.appendChild(space);\n li.appendChild(deleteButton);\n ul.appendChild(li);\n num = num + 1;\n });\n });\n uploadAnimation();\n }\n});\n\n// アップロードアニメーション\nconst uploadAnimation = () => {\n document.getElementById('up-btn').addEventListener('click', function (error) {\n console.error('error =', error);\n var loadRap = document.getElementById('load-rap');\n loadRap.classList.add('hidden');\n var loadingdIcon = document.getElementById('loading-icon');\n loadingdIcon.classList.remove('hidden');\n });\n};\n\nfunction makeTitle(reset_ul) {\n var title = document.createTextNode('アップロードファイル:');\n var p = document.createElement('p');\n p.appendChild(title);\n reset_ul.appendChild(p);\n}\n\nfunction createLi() {\n var li = document.createElement('li');\n li.classList.add('list-disc', 'pt-1');\n return li;\n}\n\nfunction makeFileList(input, event) {\n // 選択済みファイル\n var file_length = input[0].files.length;\n var selected_files = Array.from(input[0].files).slice(0, file_length);\n // ファイル追加\n var add_file_length = event.dataTransfer.files.length;\n var add_files = Array.from(event.dataTransfer.files).slice(\n 0,\n add_file_length,\n );\n var new_files = selected_files.concat(add_files);\n\n // FileList再作成\n let list = new DataTransfer();\n new_files.forEach(function (item) {\n list.items.add(item);\n });\n return list.files;\n}\n\nfunction createNewFiles(file_id, input) {\n // 削除後の配列作成\n var file_length = input[0].files.length;\n var front_files = Array.from(input[0].files).slice(0, file_id);\n var start_point = Number(file_id) + 1;\n var back_files = Array.from(input[0].files).slice(start_point, file_length);\n var new_files = front_files.concat(back_files);\n return new_files;\n}\n\nfunction createNewFileList(new_files) {\n // FileList再作成\n let list = new DataTransfer();\n new_files.forEach(function (item) {\n list.items.add(item);\n });\n return list.files;\n}\n\nfunction createButton(num) {\n const deleteButton = document.createElement('input');\n deleteButton.type = 'button';\n deleteButton.value = '削除';\n deleteButton.classList.add(\n 'text-xs',\n 'rounded-md',\n 'px-2',\n 'py-1',\n 'hover:text-white',\n 'bg-gray-100',\n 'hover:bg-black',\n );\n deleteButton.id = num;\n return deleteButton;\n}\n","var map = {\n\t\"./application\": \"./app/javascript/packs/application.js\",\n\t\"./application.js\": \"./app/javascript/packs/application.js\",\n\t\"./components/CheckboxField/CheckboxField\": \"./app/javascript/packs/components/CheckboxField/CheckboxField.tsx\",\n\t\"./components/CheckboxField/CheckboxField.tsx\": \"./app/javascript/packs/components/CheckboxField/CheckboxField.tsx\",\n\t\"./components/ColorPicker/ColorPicker\": \"./app/javascript/packs/components/ColorPicker/ColorPicker.tsx\",\n\t\"./components/ColorPicker/ColorPicker.tsx\": \"./app/javascript/packs/components/ColorPicker/ColorPicker.tsx\",\n\t\"./components/ConditionalInput/ConditionalInput\": \"./app/javascript/packs/components/ConditionalInput/ConditionalInput.tsx\",\n\t\"./components/ConditionalInput/ConditionalInput.tsx\": \"./app/javascript/packs/components/ConditionalInput/ConditionalInput.tsx\",\n\t\"./components/ConditionalInput/types\": \"./app/javascript/packs/components/ConditionalInput/types.ts\",\n\t\"./components/ConditionalInput/types.ts\": \"./app/javascript/packs/components/ConditionalInput/types.ts\",\n\t\"./components/FileUploader/FileUploader\": \"./app/javascript/packs/components/FileUploader/FileUploader.tsx\",\n\t\"./components/FileUploader/FileUploader.tsx\": \"./app/javascript/packs/components/FileUploader/FileUploader.tsx\",\n\t\"./components/FileUploader/types\": \"./app/javascript/packs/components/FileUploader/types.ts\",\n\t\"./components/FileUploader/types.ts\": \"./app/javascript/packs/components/FileUploader/types.ts\",\n\t\"./components/InputField/InputField\": \"./app/javascript/packs/components/InputField/InputField.tsx\",\n\t\"./components/InputField/InputField.tsx\": \"./app/javascript/packs/components/InputField/InputField.tsx\",\n\t\"./components/MessageModal/MessageModal\": \"./app/javascript/packs/components/MessageModal/MessageModal.tsx\",\n\t\"./components/MessageModal/MessageModal.tsx\": \"./app/javascript/packs/components/MessageModal/MessageModal.tsx\",\n\t\"./components/MessageModal/types\": \"./app/javascript/packs/components/MessageModal/types.ts\",\n\t\"./components/MessageModal/types.ts\": \"./app/javascript/packs/components/MessageModal/types.ts\",\n\t\"./components/NumberInput/NumberInput\": \"./app/javascript/packs/components/NumberInput/NumberInput.tsx\",\n\t\"./components/NumberInput/NumberInput.tsx\": \"./app/javascript/packs/components/NumberInput/NumberInput.tsx\",\n\t\"./components/NumberInput/types\": \"./app/javascript/packs/components/NumberInput/types.ts\",\n\t\"./components/NumberInput/types.ts\": \"./app/javascript/packs/components/NumberInput/types.ts\",\n\t\"./components/PageSelector/PageSelector\": \"./app/javascript/packs/components/PageSelector/PageSelector.tsx\",\n\t\"./components/PageSelector/PageSelector.tsx\": \"./app/javascript/packs/components/PageSelector/PageSelector.tsx\",\n\t\"./components/PageSelector/types\": \"./app/javascript/packs/components/PageSelector/types.ts\",\n\t\"./components/PageSelector/types.ts\": \"./app/javascript/packs/components/PageSelector/types.ts\",\n\t\"./components/PdfViewer/PdfViewer\": \"./app/javascript/packs/components/PdfViewer/PdfViewer.tsx\",\n\t\"./components/PdfViewer/PdfViewer.tsx\": \"./app/javascript/packs/components/PdfViewer/PdfViewer.tsx\",\n\t\"./components/RadioGroup/RadioGroup\": \"./app/javascript/packs/components/RadioGroup/RadioGroup.tsx\",\n\t\"./components/RadioGroup/RadioGroup.tsx\": \"./app/javascript/packs/components/RadioGroup/RadioGroup.tsx\",\n\t\"./components/SelectField/SelectField\": \"./app/javascript/packs/components/SelectField/SelectField.tsx\",\n\t\"./components/SelectField/SelectField.tsx\": \"./app/javascript/packs/components/SelectField/SelectField.tsx\",\n\t\"./components/Subject/bs/BsContainer\": \"./app/javascript/packs/components/Subject/bs/BsContainer.tsx\",\n\t\"./components/Subject/bs/BsContainer.tsx\": \"./app/javascript/packs/components/Subject/bs/BsContainer.tsx\",\n\t\"./components/Subject/bs/assets/AssetsContainer\": \"./app/javascript/packs/components/Subject/bs/assets/AssetsContainer.tsx\",\n\t\"./components/Subject/bs/assets/AssetsContainer.tsx\": \"./app/javascript/packs/components/Subject/bs/assets/AssetsContainer.tsx\",\n\t\"./components/Subject/bs/assets/CurrentAssets\": \"./app/javascript/packs/components/Subject/bs/assets/CurrentAssets.tsx\",\n\t\"./components/Subject/bs/assets/CurrentAssets.tsx\": \"./app/javascript/packs/components/Subject/bs/assets/CurrentAssets.tsx\",\n\t\"./components/Subject/bs/liabilities/AccountsPayable\": \"./app/javascript/packs/components/Subject/bs/liabilities/AccountsPayable.tsx\",\n\t\"./components/Subject/bs/liabilities/AccountsPayable.tsx\": \"./app/javascript/packs/components/Subject/bs/liabilities/AccountsPayable.tsx\",\n\t\"./components/Subject/bs/liabilities/InterestBearingDebt\": \"./app/javascript/packs/components/Subject/bs/liabilities/InterestBearingDebt.tsx\",\n\t\"./components/Subject/bs/liabilities/InterestBearingDebt.tsx\": \"./app/javascript/packs/components/Subject/bs/liabilities/InterestBearingDebt.tsx\",\n\t\"./components/Subject/bs/liabilities/LiabilitiesContainer\": \"./app/javascript/packs/components/Subject/bs/liabilities/LiabilitiesContainer.tsx\",\n\t\"./components/Subject/bs/liabilities/LiabilitiesContainer.tsx\": \"./app/javascript/packs/components/Subject/bs/liabilities/LiabilitiesContainer.tsx\",\n\t\"./components/Subject/bs/net_assets/NetAssets\": \"./app/javascript/packs/components/Subject/bs/net_assets/NetAssets.tsx\",\n\t\"./components/Subject/bs/net_assets/NetAssets.tsx\": \"./app/javascript/packs/components/Subject/bs/net_assets/NetAssets.tsx\",\n\t\"./components/Subject/bs/net_assets/NetAssetsContainer\": \"./app/javascript/packs/components/Subject/bs/net_assets/NetAssetsContainer.tsx\",\n\t\"./components/Subject/bs/net_assets/NetAssetsContainer.tsx\": \"./app/javascript/packs/components/Subject/bs/net_assets/NetAssetsContainer.tsx\",\n\t\"./components/Subject/pl/PlContainer\": \"./app/javascript/packs/components/Subject/pl/PlContainer.tsx\",\n\t\"./components/Subject/pl/PlContainer.tsx\": \"./app/javascript/packs/components/Subject/pl/PlContainer.tsx\",\n\t\"./components/Subject/pl/ProfitAndLossStatement\": \"./app/javascript/packs/components/Subject/pl/ProfitAndLossStatement.tsx\",\n\t\"./components/Subject/pl/ProfitAndLossStatement.tsx\": \"./app/javascript/packs/components/Subject/pl/ProfitAndLossStatement.tsx\",\n\t\"./components/Subject/sga/Sga\": \"./app/javascript/packs/components/Subject/sga/Sga.tsx\",\n\t\"./components/Subject/sga/Sga.tsx\": \"./app/javascript/packs/components/Subject/sga/Sga.tsx\",\n\t\"./components/Subject/sga/SgaContainer\": \"./app/javascript/packs/components/Subject/sga/SgaContainer.tsx\",\n\t\"./components/Subject/sga/SgaContainer.tsx\": \"./app/javascript/packs/components/Subject/sga/SgaContainer.tsx\",\n\t\"./components/Subject/types\": \"./app/javascript/packs/components/Subject/types.ts\",\n\t\"./components/Subject/types.ts\": \"./app/javascript/packs/components/Subject/types.ts\",\n\t\"./components/SubjectInput/SubjectInput\": \"./app/javascript/packs/components/SubjectInput/SubjectInput.tsx\",\n\t\"./components/SubjectInput/SubjectInput.tsx\": \"./app/javascript/packs/components/SubjectInput/SubjectInput.tsx\",\n\t\"./components/SubjectInput/types\": \"./app/javascript/packs/components/SubjectInput/types.ts\",\n\t\"./components/SubjectInput/types.ts\": \"./app/javascript/packs/components/SubjectInput/types.ts\",\n\t\"./components/SubjectRow/SubjectRow\": \"./app/javascript/packs/components/SubjectRow/SubjectRow.tsx\",\n\t\"./components/SubjectRow/SubjectRow.tsx\": \"./app/javascript/packs/components/SubjectRow/SubjectRow.tsx\",\n\t\"./components/SubjectRow/types\": \"./app/javascript/packs/components/SubjectRow/types.ts\",\n\t\"./components/SubjectRow/types.ts\": \"./app/javascript/packs/components/SubjectRow/types.ts\",\n\t\"./components/Tooltip/Tooltip\": \"./app/javascript/packs/components/Tooltip/Tooltip.tsx\",\n\t\"./components/Tooltip/Tooltip.tsx\": \"./app/javascript/packs/components/Tooltip/Tooltip.tsx\",\n\t\"./components/Tooltip/types\": \"./app/javascript/packs/components/Tooltip/types.tsx\",\n\t\"./components/Tooltip/types.tsx\": \"./app/javascript/packs/components/Tooltip/types.tsx\",\n\t\"./components/Valuation/Valuation\": \"./app/javascript/packs/components/Valuation/Valuation.tsx\",\n\t\"./components/Valuation/Valuation.tsx\": \"./app/javascript/packs/components/Valuation/Valuation.tsx\",\n\t\"./components/ValuationCheckBox/ValuationCheckBox\": \"./app/javascript/packs/components/ValuationCheckBox/ValuationCheckBox.tsx\",\n\t\"./components/ValuationCheckBox/ValuationCheckBox.tsx\": \"./app/javascript/packs/components/ValuationCheckBox/ValuationCheckBox.tsx\",\n\t\"./components/ValuationCheckBox/types\": \"./app/javascript/packs/components/ValuationCheckBox/types.tsx\",\n\t\"./components/ValuationCheckBox/types.tsx\": \"./app/javascript/packs/components/ValuationCheckBox/types.tsx\",\n\t\"./pages/companies/CompanyIpAddress\": \"./app/javascript/packs/pages/companies/CompanyIpAddress.tsx\",\n\t\"./pages/companies/CompanyIpAddress.tsx\": \"./app/javascript/packs/pages/companies/CompanyIpAddress.tsx\",\n\t\"./pages/company_medical_report_options/CompanyMedicalReportOptions\": \"./app/javascript/packs/pages/company_medical_report_options/CompanyMedicalReportOptions.tsx\",\n\t\"./pages/company_medical_report_options/CompanyMedicalReportOptions.tsx\": \"./app/javascript/packs/pages/company_medical_report_options/CompanyMedicalReportOptions.tsx\",\n\t\"./pages/company_medical_report_options/previews/CompanyMedicalReportPreview\": \"./app/javascript/packs/pages/company_medical_report_options/previews/CompanyMedicalReportPreview.tsx\",\n\t\"./pages/company_medical_report_options/previews/CompanyMedicalReportPreview.tsx\": \"./app/javascript/packs/pages/company_medical_report_options/previews/CompanyMedicalReportPreview.tsx\",\n\t\"./pages/company_medical_report_options/previews/ResultPagePreview\": \"./app/javascript/packs/pages/company_medical_report_options/previews/ResultPagePreview.tsx\",\n\t\"./pages/company_medical_report_options/previews/ResultPagePreview.tsx\": \"./app/javascript/packs/pages/company_medical_report_options/previews/ResultPagePreview.tsx\",\n\t\"./pages/company_medical_report_options/previews/SubjectPagePreview\": \"./app/javascript/packs/pages/company_medical_report_options/previews/SubjectPagePreview.tsx\",\n\t\"./pages/company_medical_report_options/previews/SubjectPagePreview.tsx\": \"./app/javascript/packs/pages/company_medical_report_options/previews/SubjectPagePreview.tsx\",\n\t\"./pages/company_medical_report_options/types\": \"./app/javascript/packs/pages/company_medical_report_options/types.ts\",\n\t\"./pages/company_medical_report_options/types.ts\": \"./app/javascript/packs/pages/company_medical_report_options/types.ts\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportComments\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportComments.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportComments.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportComments.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDetails\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDetails.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDetails.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDetails.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDownloadButton\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDownloadButton.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDownloadButton.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportDownloadButton.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportIndustriesStep\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportIndustriesStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportIndustriesStep.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportIndustriesStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportPptxStep\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportPptxStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportPptxStep.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportPptxStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportProfile\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportProfile.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportProfile.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportProfile.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportSubjectsStep\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportSubjectsStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportSubjectsStep.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportSubjectsStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportTableRow\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportTableRow.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportTableRow.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportTableRow.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuation\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuation.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuation.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuation.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationButton\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationButton.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationButton.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationButton.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationResult\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationResult.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationResult.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationResult.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationsStep\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationsStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationsStep.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReportValuationsStep.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReports\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReports.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/CompanyMedicalReports.tsx\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/CompanyMedicalReports.tsx\",\n\t\"./pages/company_medical_reports/company_medical_reports/api\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/api.ts\",\n\t\"./pages/company_medical_reports/company_medical_reports/api.ts\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/api.ts\",\n\t\"./pages/company_medical_reports/company_medical_reports/hooks\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/hooks.ts\",\n\t\"./pages/company_medical_reports/company_medical_reports/hooks.ts\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/hooks.ts\",\n\t\"./pages/company_medical_reports/company_medical_reports/types\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/types.ts\",\n\t\"./pages/company_medical_reports/company_medical_reports/types.ts\": \"./app/javascript/packs/pages/company_medical_reports/company_medical_reports/types.ts\",\n\t\"./pages/company_medical_reports/industries/IndustriesForm\": \"./app/javascript/packs/pages/company_medical_reports/industries/IndustriesForm.tsx\",\n\t\"./pages/company_medical_reports/industries/IndustriesForm.tsx\": \"./app/javascript/packs/pages/company_medical_reports/industries/IndustriesForm.tsx\",\n\t\"./pages/company_medical_reports/industries/types\": \"./app/javascript/packs/pages/company_medical_reports/industries/types.ts\",\n\t\"./pages/company_medical_reports/industries/types.ts\": \"./app/javascript/packs/pages/company_medical_reports/industries/types.ts\",\n\t\"./pages/company_medical_reports/ocr/OcrResult\": \"./app/javascript/packs/pages/company_medical_reports/ocr/OcrResult.tsx\",\n\t\"./pages/company_medical_reports/ocr/OcrResult.tsx\": \"./app/javascript/packs/pages/company_medical_reports/ocr/OcrResult.tsx\",\n\t\"./pages/company_medical_reports/ocr/OcrResultRow\": \"./app/javascript/packs/pages/company_medical_reports/ocr/OcrResultRow.tsx\",\n\t\"./pages/company_medical_reports/ocr/OcrResultRow.tsx\": \"./app/javascript/packs/pages/company_medical_reports/ocr/OcrResultRow.tsx\",\n\t\"./pages/company_medical_reports/ocr/api\": \"./app/javascript/packs/pages/company_medical_reports/ocr/api.ts\",\n\t\"./pages/company_medical_reports/ocr/api.ts\": \"./app/javascript/packs/pages/company_medical_reports/ocr/api.ts\",\n\t\"./pages/company_medical_reports/ocr/hooks\": \"./app/javascript/packs/pages/company_medical_reports/ocr/hooks.ts\",\n\t\"./pages/company_medical_reports/ocr/hooks.ts\": \"./app/javascript/packs/pages/company_medical_reports/ocr/hooks.ts\",\n\t\"./pages/company_medical_reports/ocr/types\": \"./app/javascript/packs/pages/company_medical_reports/ocr/types.ts\",\n\t\"./pages/company_medical_reports/ocr/types.ts\": \"./app/javascript/packs/pages/company_medical_reports/ocr/types.ts\",\n\t\"./pages/company_medical_reports/valuation/ValuationForm\": \"./app/javascript/packs/pages/company_medical_reports/valuation/ValuationForm.tsx\",\n\t\"./pages/company_medical_reports/valuation/ValuationForm.tsx\": \"./app/javascript/packs/pages/company_medical_reports/valuation/ValuationForm.tsx\",\n\t\"./pages/crawl/CrawlingResult\": \"./app/javascript/packs/pages/crawl/CrawlingResult.tsx\",\n\t\"./pages/crawl/CrawlingResult.tsx\": \"./app/javascript/packs/pages/crawl/CrawlingResult.tsx\",\n\t\"./pages/crawl/Result\": \"./app/javascript/packs/pages/crawl/Result.tsx\",\n\t\"./pages/crawl/Result.tsx\": \"./app/javascript/packs/pages/crawl/Result.tsx\",\n\t\"./pages/crawl/data/use-filter\": \"./app/javascript/packs/pages/crawl/data/use-filter.js\",\n\t\"./pages/crawl/data/use-filter.js\": \"./app/javascript/packs/pages/crawl/data/use-filter.js\",\n\t\"./pages/crawl/pagination\": \"./app/javascript/packs/pages/crawl/pagination.scss\",\n\t\"./pages/crawl/pagination.scss\": \"./app/javascript/packs/pages/crawl/pagination.scss\",\n\t\"./pages/debug/components/result\": \"./app/javascript/packs/pages/debug/components/result.tsx\",\n\t\"./pages/debug/components/result.tsx\": \"./app/javascript/packs/pages/debug/components/result.tsx\",\n\t\"./pages/debug/components/result_row\": \"./app/javascript/packs/pages/debug/components/result_row.tsx\",\n\t\"./pages/debug/components/result_row.scss\": \"./app/javascript/packs/pages/debug/components/result_row.scss\",\n\t\"./pages/debug/components/result_row.tsx\": \"./app/javascript/packs/pages/debug/components/result_row.tsx\",\n\t\"./pages/dictionaries\": \"./app/javascript/packs/pages/dictionaries/index.ts\",\n\t\"./pages/dictionaries/\": \"./app/javascript/packs/pages/dictionaries/index.ts\",\n\t\"./pages/dictionaries/index\": \"./app/javascript/packs/pages/dictionaries/index.ts\",\n\t\"./pages/dictionaries/index.ts\": \"./app/javascript/packs/pages/dictionaries/index.ts\",\n\t\"./pages/formula/AssetReport\": \"./app/javascript/packs/pages/formula/AssetReport.tsx\",\n\t\"./pages/formula/AssetReport.tsx\": \"./app/javascript/packs/pages/formula/AssetReport.tsx\",\n\t\"./pages/formula/valuation_form\": \"./app/javascript/packs/pages/formula/valuation_form.tsx\",\n\t\"./pages/formula/valuation_form.tsx\": \"./app/javascript/packs/pages/formula/valuation_form.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuation\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuation.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuation.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuation.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationCalculation\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationCalculation.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationCalculation.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationCalculation.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationCalculations\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationCalculations.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationCalculations.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationCalculations.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationIndex\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationIndex.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationIndex.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationIndex.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationOutput\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationOutput.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationOutput.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationOutput.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationResults\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationResults.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationResults.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationResults.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationSimilarities\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationSimilarities.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationSimilarities.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationSimilarities.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationSubjects\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationSubjects.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuationSubjects.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuationSubjects.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuations\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuations.tsx\",\n\t\"./pages/inheritance/inheritance/InheritanceValuations.tsx\": \"./app/javascript/packs/pages/inheritance/inheritance/InheritanceValuations.tsx\",\n\t\"./pages/inheritance/ocr/OcrResult\": \"./app/javascript/packs/pages/inheritance/ocr/OcrResult.tsx\",\n\t\"./pages/inheritance/ocr/OcrResult.tsx\": \"./app/javascript/packs/pages/inheritance/ocr/OcrResult.tsx\",\n\t\"./pages/inheritance/ocr/OcrResultRow\": \"./app/javascript/packs/pages/inheritance/ocr/OcrResultRow.tsx\",\n\t\"./pages/inheritance/ocr/OcrResultRow.tsx\": \"./app/javascript/packs/pages/inheritance/ocr/OcrResultRow.tsx\",\n\t\"./pages/inheritance/similarities/SimimilaritiesForm\": \"./app/javascript/packs/pages/inheritance/similarities/SimimilaritiesForm.tsx\",\n\t\"./pages/inheritance/similarities/SimimilaritiesForm.tsx\": \"./app/javascript/packs/pages/inheritance/similarities/SimimilaritiesForm.tsx\",\n\t\"./pages/inheritance/subjects/concern/InheritanceSubject\": \"./app/javascript/packs/pages/inheritance/subjects/concern/InheritanceSubject.ts\",\n\t\"./pages/inheritance/subjects/concern/InheritanceSubject.ts\": \"./app/javascript/packs/pages/inheritance/subjects/concern/InheritanceSubject.ts\",\n\t\"./pages/inheritance/subjects/concern/SubjectInput\": \"./app/javascript/packs/pages/inheritance/subjects/concern/SubjectInput.tsx\",\n\t\"./pages/inheritance/subjects/concern/SubjectInput.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/concern/SubjectInput.tsx\",\n\t\"./pages/inheritance/subjects/corporate_tax_return/CorporateTaxReturn\": \"./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/CorporateTaxReturn.tsx\",\n\t\"./pages/inheritance/subjects/corporate_tax_return/CorporateTaxReturn.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/CorporateTaxReturn.tsx\",\n\t\"./pages/inheritance/subjects/corporate_tax_return/CtContainer\": \"./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/CtContainer.tsx\",\n\t\"./pages/inheritance/subjects/corporate_tax_return/CtContainer.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/CtContainer.tsx\",\n\t\"./pages/inheritance/subjects/corporate_tax_return/SubjectsInputForm\": \"./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/SubjectsInputForm.tsx\",\n\t\"./pages/inheritance/subjects/corporate_tax_return/SubjectsInputForm.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/corporate_tax_return/SubjectsInputForm.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/SubjectsInputForm\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/SubjectsInputForm.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/SubjectsInputForm.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/SubjectsInputForm.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/BsContainer\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/BsContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/BsContainer.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/BsContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/assets/AssetsContainer\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/assets/AssetsContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/assets/AssetsContainer.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/assets/AssetsContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/assets/CurrentAssets\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/assets/CurrentAssets.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/assets/CurrentAssets.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/assets/CurrentAssets.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/liabilities/InterestBearingDebt\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/liabilities/InterestBearingDebt.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/liabilities/InterestBearingDebt.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/liabilities/InterestBearingDebt.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/liabilities/LiabilitiesContainer\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/liabilities/LiabilitiesContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/liabilities/LiabilitiesContainer.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/liabilities/LiabilitiesContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssets\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssets.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssets.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssets.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssetsContainer\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssetsContainer.tsx\",\n\t\"./pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssetsContainer.tsx\": \"./app/javascript/packs/pages/inheritance/subjects/financial_statement/bs/net_assets/NetAssetsContainer.tsx\",\n\t\"./pages/inheritance/types/props\": \"./app/javascript/packs/pages/inheritance/types/props.ts\",\n\t\"./pages/inheritance/types/props.ts\": \"./app/javascript/packs/pages/inheritance/types/props.ts\",\n\t\"./pages/inheritance/valuation/ValuationForm\": \"./app/javascript/packs/pages/inheritance/valuation/ValuationForm.tsx\",\n\t\"./pages/inheritance/valuation/ValuationForm.tsx\": \"./app/javascript/packs/pages/inheritance/valuation/ValuationForm.tsx\",\n\t\"./pages/ocr/components/analyze_fs_result\": \"./app/javascript/packs/pages/ocr/components/analyze_fs_result.tsx\",\n\t\"./pages/ocr/components/analyze_fs_result.tsx\": \"./app/javascript/packs/pages/ocr/components/analyze_fs_result.tsx\",\n\t\"./pages/ocr/components/analyze_result\": \"./app/javascript/packs/pages/ocr/components/analyze_result.tsx\",\n\t\"./pages/ocr/components/analyze_result.tsx\": \"./app/javascript/packs/pages/ocr/components/analyze_result.tsx\",\n\t\"./pages/ocr/components/convert_result\": \"./app/javascript/packs/pages/ocr/components/convert_result.tsx\",\n\t\"./pages/ocr/components/convert_result.tsx\": \"./app/javascript/packs/pages/ocr/components/convert_result.tsx\",\n\t\"./pages/ocr/components/convert_row\": \"./app/javascript/packs/pages/ocr/components/convert_row.tsx\",\n\t\"./pages/ocr/components/convert_row.tsx\": \"./app/javascript/packs/pages/ocr/components/convert_row.tsx\",\n\t\"./pages/ocr/components/result_row\": \"./app/javascript/packs/pages/ocr/components/result_row.tsx\",\n\t\"./pages/ocr/components/result_row.scss\": \"./app/javascript/packs/pages/ocr/components/result_row.scss\",\n\t\"./pages/ocr/components/result_row.tsx\": \"./app/javascript/packs/pages/ocr/components/result_row.tsx\",\n\t\"./pages/ocr/view_pdf\": \"./app/javascript/packs/pages/ocr/view_pdf.ts\",\n\t\"./pages/ocr/view_pdf.ts\": \"./app/javascript/packs/pages/ocr/view_pdf.ts\",\n\t\"./pages/reports/formula/FormulaForm\": \"./app/javascript/packs/pages/reports/formula/FormulaForm.tsx\",\n\t\"./pages/reports/formula/FormulaForm.tsx\": \"./app/javascript/packs/pages/reports/formula/FormulaForm.tsx\",\n\t\"./pages/reports/formula/FormulaWaccSelector\": \"./app/javascript/packs/pages/reports/formula/FormulaWaccSelector.tsx\",\n\t\"./pages/reports/formula/FormulaWaccSelector.tsx\": \"./app/javascript/packs/pages/reports/formula/FormulaWaccSelector.tsx\",\n\t\"./pages/reports/formula/api\": \"./app/javascript/packs/pages/reports/formula/api.ts\",\n\t\"./pages/reports/formula/api.ts\": \"./app/javascript/packs/pages/reports/formula/api.ts\",\n\t\"./pages/reports/formula/hooks\": \"./app/javascript/packs/pages/reports/formula/hooks.ts\",\n\t\"./pages/reports/formula/hooks.ts\": \"./app/javascript/packs/pages/reports/formula/hooks.ts\",\n\t\"./pages/reports/formula/types\": \"./app/javascript/packs/pages/reports/formula/types.ts\",\n\t\"./pages/reports/formula/types.ts\": \"./app/javascript/packs/pages/reports/formula/types.ts\",\n\t\"./pages/reports/ocr/OcrResult\": \"./app/javascript/packs/pages/reports/ocr/OcrResult.tsx\",\n\t\"./pages/reports/ocr/OcrResult.tsx\": \"./app/javascript/packs/pages/reports/ocr/OcrResult.tsx\",\n\t\"./pages/reports/ocr/OcrResultRow\": \"./app/javascript/packs/pages/reports/ocr/OcrResultRow.tsx\",\n\t\"./pages/reports/ocr/OcrResultRow.tsx\": \"./app/javascript/packs/pages/reports/ocr/OcrResultRow.tsx\",\n\t\"./pages/reports/ocr/api\": \"./app/javascript/packs/pages/reports/ocr/api.ts\",\n\t\"./pages/reports/ocr/api.ts\": \"./app/javascript/packs/pages/reports/ocr/api.ts\",\n\t\"./pages/reports/ocr/hooks\": \"./app/javascript/packs/pages/reports/ocr/hooks.ts\",\n\t\"./pages/reports/ocr/hooks.ts\": \"./app/javascript/packs/pages/reports/ocr/hooks.ts\",\n\t\"./pages/reports/ocr/types\": \"./app/javascript/packs/pages/reports/ocr/types.ts\",\n\t\"./pages/reports/ocr/types.ts\": \"./app/javascript/packs/pages/reports/ocr/types.ts\",\n\t\"./pages/reports/report/ReportCalculation\": \"./app/javascript/packs/pages/reports/report/ReportCalculation.tsx\",\n\t\"./pages/reports/report/ReportCalculation.tsx\": \"./app/javascript/packs/pages/reports/report/ReportCalculation.tsx\",\n\t\"./pages/reports/report/ReportCalculationButton\": \"./app/javascript/packs/pages/reports/report/ReportCalculationButton.tsx\",\n\t\"./pages/reports/report/ReportCalculationButton.tsx\": \"./app/javascript/packs/pages/reports/report/ReportCalculationButton.tsx\",\n\t\"./pages/reports/report/ReportCalculationsStep\": \"./app/javascript/packs/pages/reports/report/ReportCalculationsStep.tsx\",\n\t\"./pages/reports/report/ReportCalculationsStep.tsx\": \"./app/javascript/packs/pages/reports/report/ReportCalculationsStep.tsx\",\n\t\"./pages/reports/report/ReportDetails\": \"./app/javascript/packs/pages/reports/report/ReportDetails.tsx\",\n\t\"./pages/reports/report/ReportDetails.tsx\": \"./app/javascript/packs/pages/reports/report/ReportDetails.tsx\",\n\t\"./pages/reports/report/ReportDownloadButton\": \"./app/javascript/packs/pages/reports/report/ReportDownloadButton.tsx\",\n\t\"./pages/reports/report/ReportDownloadButton.tsx\": \"./app/javascript/packs/pages/reports/report/ReportDownloadButton.tsx\",\n\t\"./pages/reports/report/ReportGenPptxStep\": \"./app/javascript/packs/pages/reports/report/ReportGenPptxStep.tsx\",\n\t\"./pages/reports/report/ReportGenPptxStep.tsx\": \"./app/javascript/packs/pages/reports/report/ReportGenPptxStep.tsx\",\n\t\"./pages/reports/report/ReportIndex\": \"./app/javascript/packs/pages/reports/report/ReportIndex.tsx\",\n\t\"./pages/reports/report/ReportIndex.tsx\": \"./app/javascript/packs/pages/reports/report/ReportIndex.tsx\",\n\t\"./pages/reports/report/ReportSimilaritiesStep\": \"./app/javascript/packs/pages/reports/report/ReportSimilaritiesStep.tsx\",\n\t\"./pages/reports/report/ReportSimilaritiesStep.tsx\": \"./app/javascript/packs/pages/reports/report/ReportSimilaritiesStep.tsx\",\n\t\"./pages/reports/report/ReportSubjectsStep\": \"./app/javascript/packs/pages/reports/report/ReportSubjectsStep.tsx\",\n\t\"./pages/reports/report/ReportSubjectsStep.tsx\": \"./app/javascript/packs/pages/reports/report/ReportSubjectsStep.tsx\",\n\t\"./pages/reports/report/Reports\": \"./app/javascript/packs/pages/reports/report/Reports.tsx\",\n\t\"./pages/reports/report/Reports.tsx\": \"./app/javascript/packs/pages/reports/report/Reports.tsx\",\n\t\"./pages/reports/report/api\": \"./app/javascript/packs/pages/reports/report/api.ts\",\n\t\"./pages/reports/report/api.ts\": \"./app/javascript/packs/pages/reports/report/api.ts\",\n\t\"./pages/reports/report/hooks\": \"./app/javascript/packs/pages/reports/report/hooks.ts\",\n\t\"./pages/reports/report/hooks.ts\": \"./app/javascript/packs/pages/reports/report/hooks.ts\",\n\t\"./pages/reports/report/types\": \"./app/javascript/packs/pages/reports/report/types.ts\",\n\t\"./pages/reports/report/types.ts\": \"./app/javascript/packs/pages/reports/report/types.ts\",\n\t\"./pages/reports/similar_companies/SimilarCompanies\": \"./app/javascript/packs/pages/reports/similar_companies/SimilarCompanies.tsx\",\n\t\"./pages/reports/similar_companies/SimilarCompanies.tsx\": \"./app/javascript/packs/pages/reports/similar_companies/SimilarCompanies.tsx\",\n\t\"./pages/reports/similar_companies/api\": \"./app/javascript/packs/pages/reports/similar_companies/api.ts\",\n\t\"./pages/reports/similar_companies/api.ts\": \"./app/javascript/packs/pages/reports/similar_companies/api.ts\",\n\t\"./pages/reports/similar_companies/hooks\": \"./app/javascript/packs/pages/reports/similar_companies/hooks.ts\",\n\t\"./pages/reports/similar_companies/hooks.ts\": \"./app/javascript/packs/pages/reports/similar_companies/hooks.ts\",\n\t\"./pages/reports/similar_companies/types\": \"./app/javascript/packs/pages/reports/similar_companies/types.ts\",\n\t\"./pages/reports/similar_companies/types.ts\": \"./app/javascript/packs/pages/reports/similar_companies/types.ts\",\n\t\"./pages/subjects/SubjectsInputForm\": \"./app/javascript/packs/pages/subjects/SubjectsInputForm.tsx\",\n\t\"./pages/subjects/SubjectsInputForm.tsx\": \"./app/javascript/packs/pages/subjects/SubjectsInputForm.tsx\",\n\t\"./pages/subjects/SubjectsUploadForm\": \"./app/javascript/packs/pages/subjects/SubjectsUploadForm.tsx\",\n\t\"./pages/subjects/SubjectsUploadForm.tsx\": \"./app/javascript/packs/pages/subjects/SubjectsUploadForm.tsx\",\n\t\"./pages/subjects/api\": \"./app/javascript/packs/pages/subjects/api.ts\",\n\t\"./pages/subjects/api.ts\": \"./app/javascript/packs/pages/subjects/api.ts\",\n\t\"./pages/subjects/hooks\": \"./app/javascript/packs/pages/subjects/hooks.ts\",\n\t\"./pages/subjects/hooks.ts\": \"./app/javascript/packs/pages/subjects/hooks.ts\",\n\t\"./pages/subjects/types\": \"./app/javascript/packs/pages/subjects/types.ts\",\n\t\"./pages/subjects/types.ts\": \"./app/javascript/packs/pages/subjects/types.ts\",\n\t\"./pages/users/UsersAccountOption\": \"./app/javascript/packs/pages/users/UsersAccountOption.tsx\",\n\t\"./pages/users/UsersAccountOption.tsx\": \"./app/javascript/packs/pages/users/UsersAccountOption.tsx\",\n\t\"./pages/users/UsersCompanyMedicalReportOption\": \"./app/javascript/packs/pages/users/UsersCompanyMedicalReportOption.tsx\",\n\t\"./pages/users/UsersCompanyMedicalReportOption.tsx\": \"./app/javascript/packs/pages/users/UsersCompanyMedicalReportOption.tsx\",\n\t\"./pages/users/UsersFunctions\": \"./app/javascript/packs/pages/users/UsersFunctions.tsx\",\n\t\"./pages/users/UsersFunctions.tsx\": \"./app/javascript/packs/pages/users/UsersFunctions.tsx\",\n\t\"./pages/users/UsersSlideImageUploader\": \"./app/javascript/packs/pages/users/UsersSlideImageUploader.tsx\",\n\t\"./pages/users/UsersSlideImageUploader.tsx\": \"./app/javascript/packs/pages/users/UsersSlideImageUploader.tsx\",\n\t\"./pages/users/UsersValuationReportOption\": \"./app/javascript/packs/pages/users/UsersValuationReportOption.tsx\",\n\t\"./pages/users/UsersValuationReportOption.tsx\": \"./app/javascript/packs/pages/users/UsersValuationReportOption.tsx\",\n\t\"./pages/users/api\": \"./app/javascript/packs/pages/users/api.ts\",\n\t\"./pages/users/api.ts\": \"./app/javascript/packs/pages/users/api.ts\",\n\t\"./pages/users/types\": \"./app/javascript/packs/pages/users/types.ts\",\n\t\"./pages/users/types.ts\": \"./app/javascript/packs/pages/users/types.ts\",\n\t\"./pages/valuation_report_options/ValuationReportOptions\": \"./app/javascript/packs/pages/valuation_report_options/ValuationReportOptions.tsx\",\n\t\"./pages/valuation_report_options/ValuationReportOptions.tsx\": \"./app/javascript/packs/pages/valuation_report_options/ValuationReportOptions.tsx\",\n\t\"./pages/valuation_report_options/previews/ApproachPagePreview\": \"./app/javascript/packs/pages/valuation_report_options/previews/ApproachPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/ApproachPagePreview.tsx\": \"./app/javascript/packs/pages/valuation_report_options/previews/ApproachPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/HeaderPagePreview\": \"./app/javascript/packs/pages/valuation_report_options/previews/HeaderPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/HeaderPagePreview.tsx\": \"./app/javascript/packs/pages/valuation_report_options/previews/HeaderPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/SummaryPagePreview\": \"./app/javascript/packs/pages/valuation_report_options/previews/SummaryPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/SummaryPagePreview.tsx\": \"./app/javascript/packs/pages/valuation_report_options/previews/SummaryPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/TopPagePreview\": \"./app/javascript/packs/pages/valuation_report_options/previews/TopPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/TopPagePreview.tsx\": \"./app/javascript/packs/pages/valuation_report_options/previews/TopPagePreview.tsx\",\n\t\"./pages/valuation_report_options/previews/ValuationReportPreview\": \"./app/javascript/packs/pages/valuation_report_options/previews/ValuationReportPreview.tsx\",\n\t\"./pages/valuation_report_options/previews/ValuationReportPreview.tsx\": \"./app/javascript/packs/pages/valuation_report_options/previews/ValuationReportPreview.tsx\",\n\t\"./pages/valuation_report_options/types\": \"./app/javascript/packs/pages/valuation_report_options/types.ts\",\n\t\"./pages/valuation_report_options/types.ts\": \"./app/javascript/packs/pages/valuation_report_options/types.ts\",\n\t\"./pages/words\": \"./app/javascript/packs/pages/words/index.ts\",\n\t\"./pages/words/\": \"./app/javascript/packs/pages/words/index.ts\",\n\t\"./pages/words/index\": \"./app/javascript/packs/pages/words/index.ts\",\n\t\"./pages/words/index.ts\": \"./app/javascript/packs/pages/words/index.ts\",\n\t\"./pages/words/words\": \"./app/javascript/packs/pages/words/words.ts\",\n\t\"./pages/words/words.ts\": \"./app/javascript/packs/pages/words/words.ts\",\n\t\"./server_rendering\": \"./app/javascript/packs/server_rendering.js\",\n\t\"./server_rendering.js\": \"./app/javascript/packs/server_rendering.js\",\n\t\"./utils/common\": \"./app/javascript/packs/utils/common.ts\",\n\t\"./utils/common.ts\": \"./app/javascript/packs/utils/common.ts\",\n\t\"./utils/constant\": \"./app/javascript/packs/utils/constant.ts\",\n\t\"./utils/constant.ts\": \"./app/javascript/packs/utils/constant.ts\",\n\t\"./utils/schema\": \"./app/javascript/packs/utils/schema.ts\",\n\t\"./utils/schema.ts\": \"./app/javascript/packs/utils/schema.ts\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./app/javascript/packs sync recursive ^\\\\.\\\\/.*$\";","import Rails from '@rails/ujs';\nimport * as ActiveStorage from '@rails/activestorage';\nimport 'channels';\nimport '../stylesheets/application.css';\nimport '../ocr/analysis.js';\nimport '../ocr/hif.js';\n\nRails.start();\nActiveStorage.start();\n\n// Support component names relative to this directory:\n// eslint-disable-next-line no-undef\nvar componentRequireContext = require.context('packs', true);\n// eslint-disable-next-line no-undef\nvar ReactRailsUJS = require('react_ujs');\n// eslint-disable-next-line react-hooks/rules-of-hooks\nReactRailsUJS.useContext(componentRequireContext);\n","import React, { ChangeEventHandler } from 'react';\ntype CheckboxFieldProps = {\n name: string;\n label: string;\n checked: boolean;\n onChange: ChangeEventHandler;\n};\n\nexport const CheckboxField: React.FC = ({\n name,\n label,\n checked,\n onChange,\n}) => (\n
\n
\n \n
\n
\n \n
\n
\n);\n","import React, { useState } from 'react';\nimport { ChromePicker } from 'react-color';\n\nexport const ColorPicker: React.FC<{\n color: string;\n onColorChange: (color: string) => void;\n name: string;\n label: string;\n}> = ({ color, onColorChange, label, name }) => {\n const [isOpen, setIsOpen] = useState(false);\n\n return (\n
\n setIsOpen(true)}\n style={{ backgroundColor: color }}\n className=\"cursor-pointer border border-8 border-gray-100 hover:border-blue-600 w-12 rounded-full py-6 rounded-sm\"\n >
\n {color && (\n \n )}\n
{label}
\n
{color}
\n {isOpen && (\n
\n
setIsOpen(false)} className=\"inset-0 fixed\" />\n onColorChange(c.hex)}\n disableAlpha\n />\n
\n )}\n
\n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { ConditionalInputProps } from './types';\nconst DEFAULT_MAX_LENGTH = 30;\n\nexport const ConditionalInput: React.FC = (props) => {\n const { defaultOptions, placeholder, modelAttribute } = props;\n const [selectedOption, setSelectedOption] = useState('');\n const [textInput, setTextInput] = useState(false);\n const [inputValue, setInputValue] = useState('');\n\n const handleOptionsChange = useCallback((event) => {\n setSelectedOption(event.target.value);\n }, []);\n const handleInputChange = useCallback((event) => {\n setInputValue(event.target.value);\n }, []);\n const showSelectOptions = useCallback(() => {\n setTextInput(!selectedOption);\n setSelectedOption(defaultOptions[0]);\n }, [defaultOptions, selectedOption]);\n\n useEffect(() => {\n setTextInput(selectedOption === '表紙名を入力する');\n }, [selectedOption]);\n\n const renderInput = () => (\n
\n \n \n ※オプションから選択する\n

\n
\n );\n\n const renderSelect = () => (\n \n {defaultOptions.map((option, index) => (\n \n ))}\n \n );\n\n return textInput ? renderInput() : renderSelect();\n};\n","import React, { useCallback, useState } from 'react';\nimport axios from 'axios';\nimport { FilePond, registerPlugin } from 'react-filepond';\nimport FilePondPluginFileValidateType from 'filepond-plugin-file-validate-type';\nimport FilePondPluginFileValidateSize from 'filepond-plugin-file-validate-size';\nimport 'filepond/dist/filepond.min.css';\nimport { FileUploaderProps } from './types';\nconst CHUNK_SIZE = 1000000;\nconst MAX_FILE_SIZE = '60MB';\n\nregisterPlugin(FilePondPluginFileValidateType, FilePondPluginFileValidateSize);\n\nexport const FileUploader: React.FC = (props) => {\n const { phase, ocr_files_path } = props;\n const [files, setFiles] = useState([]);\n const [uploadUuid, setUploadUuid] = useState('');\n const [alert, setAlert] = useState(false);\n const [uploaded, setUploaded] = useState(false);\n const [loading, setLoading] = useState(false);\n const csrfToken = document?.querySelector?.(\n 'meta[name=\"csrf-token\"]',\n // @ts-ignore\n )?.content;\n const uploadOcrFile = useCallback(() => {\n setAlert(false);\n setLoading(true);\n axios\n .post(`${ocr_files_path}/upload/?upload_uuid=${uploadUuid}`, null, {\n headers: {\n 'X-CSRF-Token': csrfToken,\n },\n })\n .then((response) => {\n setLoading(false);\n console.debug(response);\n const fileId = response.data.ocr_file_id;\n window.location.href = `${ocr_files_path}/${fileId}?phase=${phase}`;\n })\n .catch((error) => {\n setLoading(false);\n setAlert(true);\n console.error(error);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [ocr_files_path, phase, uploadUuid]);\n\n return (\n <>\n
\n
\n
\n

\n 決算書PDFをOCR解析\n

\n
\n
\n

\n ※ 決算書のPDF、JPEGなどを下記にアップロードしてください\n

\n
\n \n {\n // @ts-ignore\n setFiles(fileItems);\n }}\n onprocessfiles={() => {\n console.debug('chunk upload finished');\n setUploaded(true);\n }}\n server={{\n process: {\n url: ocr_files_path,\n method: 'POST',\n headers: {\n 'X-CSRF-Token': csrfToken,\n },\n onload: (response) => {\n console.debug(response);\n setUploadUuid(response.responseText);\n return response.responseText;\n },\n },\n patch: {\n url: `${ocr_files_path}/`,\n method: 'PATCH',\n headers: {\n 'X-CSRF-Token': csrfToken,\n },\n ondata: (formData: string) => {\n console.debug(formData);\n return formData;\n },\n },\n revert: {\n url: `${ocr_files_path}/${uploadUuid}`,\n method: 'DELETE',\n headers: {\n 'X-CSRF-Token': csrfToken,\n },\n // @ts-ignore\n onload: (response) => {\n console.debug(response);\n setUploaded(false);\n },\n },\n }}\n />\n
\n {alert ? (\n <>\n
\n
\n

\n アップロードに失敗しました。再度お試しください。\n

\n
\n
\n \n ) : (\n <>\n )}\n
\n {uploaded && 0 < files.length ? (\n <>\n \n アップロードする\n {loading ? (\n <>\n \n
\n
\n \n ) : (\n <>\n \n \n \n \n )}\n \n \n ) : (\n <>\n )}\n \n \n \n \n );\n};\n","import React, { ChangeEventHandler } from 'react';\n\ntype InputFieldProps = {\n name: string;\n label?: string;\n value: string;\n checked?: boolean;\n type?: 'text';\n onChange: ChangeEventHandler;\n required?: boolean;\n};\n\nexport const InputField: React.FC = ({\n name,\n value,\n onChange,\n label,\n type = 'text',\n required = false,\n}) => (\n <>\n \n
\n
\n \n
\n
\n \n);\n","import React, { useCallback, useEffect } from 'react';\nimport Modal from 'react-modal';\nimport { useModal } from 'react-modal-hook';\nimport { MessageModalProps } from './types';\n\nconst modalStyle = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '-50%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nexport const MessageModal: React.FC = (props) => {\n const {\n setModal,\n modalType,\n modalDom,\n modalMessage,\n errorMessages,\n setModalCheck,\n url,\n reqAction,\n } = props;\n\n const MessagesList = useCallback(() => {\n return (\n
    \n {errorMessages?.map((message: string, idx: number) => (\n \n {message}\n \n ))}\n
\n );\n }, [errorMessages]);\n\n const Message = useCallback(() => {\n return
{modalMessage}
;\n }, [modalMessage]);\n\n const Confirm = useCallback(() => {\n return (\n <>\n

\n 一度削除すると、今後もとに戻すことはできません。それでもよろしいですか?\n

\n \n \n 削除する\n \n \n \n );\n }, [reqAction, url]);\n\n const closeModal = useCallback(\n (_callback: () => void) => {\n if (typeof setModalCheck !== 'undefined') {\n setModalCheck(false);\n }\n return _callback();\n },\n [setModalCheck],\n );\n\n const [showModal, hideModal] = useModal(\n () => (\n \n {(() => {\n switch (modalType) {\n case 'message_list':\n return ;\n case 'message':\n return ;\n case 'confirm':\n return ;\n default:\n break;\n }\n })()}\n
\n closeModal(hideModal)}\n >\n 閉じる\n \n
\n
\n ),\n [modalMessage, errorMessages],\n );\n\n useEffect((): void => {\n if (setModal) {\n Modal.setAppElement(modalDom);\n showModal();\n }\n }, [modalDom, modalMessage, showModal, setModal]);\n\n return <>;\n};\n","import React, { useCallback, useState } from 'react';\nimport NumberFormat from 'react-number-format';\nimport { NumberInputProps } from './types';\n\nexport const NumberInput = (props: NumberInputProps) => {\n const { defaultValue, inputName, placeholder } = props;\n const [inputValue, setInputValue] = useState(defaultValue);\n const [rawValue, setRawValue] = useState('');\n\n const handleValueChange = useCallback(\n (values: { formattedValue: string; value: string; floatValue: number }) => {\n const { value } = values;\n setInputValue(values.floatValue);\n setRawValue(value);\n },\n [],\n );\n\n return (\n <>\n \n \n \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport ReactPaginate from 'react-paginate';\nimport { PdfViewer } from '../PdfViewer/PdfViewer';\nimport { PageSelectorProps, pageProps } from './types';\nconst PER_PAGE_COUNT = 20;\nconst commonClassName =\n 'cursor-pointer hover:bg-blue-500 hover:border-blue-500 hover:text-white rounded-md relative z-10 border border-solid border-gray-400 bg-white text-gray-600 inline-flex items-center rounded-sm py-2 px-4 text-sm transition duration-200 ease-in-out';\n\nexport const PageSelector: React.FC = (props) => {\n const { pages, phase } = props;\n const [currentOcrPages, setCurrentOcrPages] = useState([]);\n const [selectedPages, setSelectedPages] = useState([]);\n const [pageCount, setPageCount] = useState(0);\n const [itemOffset, setItemOffset] = useState(0);\n\n const isSelected = useCallback(\n (pageId: string) => {\n return selectedPages.some((page) => page.page_id === pageId);\n },\n [selectedPages],\n );\n\n const handlePageClick = useCallback(\n (event) => {\n const newOffset = (event.selected * PER_PAGE_COUNT) % pages.length;\n const endOffset =\n ((event.selected * PER_PAGE_COUNT) % pages.length) + PER_PAGE_COUNT;\n setItemOffset(newOffset);\n // @ts-ignore\n setCurrentOcrPages(pages.slice(newOffset, endOffset));\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [pages],\n );\n\n const handleSelectChange = useCallback(\n (page: pageProps) => (event: React.ChangeEvent) => {\n const selectedOptionValue = event.target.value;\n const [documentType] = selectedOptionValue.split(',');\n const updatedSelectedPages = [...selectedPages].filter(\n (selectedPage) => selectedPage.page_id !== page.page_id,\n );\n if (documentType !== 'not_selected') {\n const selectedPage = { ...page, document_type: documentType };\n updatedSelectedPages.push(selectedPage);\n }\n setSelectedPages(updatedSelectedPages);\n },\n [selectedPages],\n );\n\n useEffect(() => {\n const endOffset = itemOffset + PER_PAGE_COUNT;\n // @ts-ignore\n setCurrentOcrPages(pages.slice(itemOffset, endOffset));\n setPageCount(Math.ceil(pages.length / PER_PAGE_COUNT));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setPageData = useCallback(() => {\n const pageData = selectedPages.map((_, index) => {\n return `\"${selectedPages[index].document_type},${selectedPages[index].page_id}\"`;\n });\n return `[${pageData}]`;\n }, [selectedPages]);\n\n return (\n <>\n
\n {currentOcrPages.map((page: pageProps) => (\n \n
\n \n \n \n \n \n \n \n \n \n \n
\n
\n ))}\n
\n {pages.length > 20 && (\n
\n \"\n previousLabel=\"< Prev\"\n pageRangeDisplayed={5}\n marginPagesDisplayed={2}\n />\n
\n )}\n \n );\n};\n","import React, { useCallback, useState } from 'react';\n\nexport const PdfViewer: React.FC<{ thumbnail: string; isSelected: boolean }> = (\n props,\n) => {\n const { thumbnail, isSelected } = props;\n const [isOpen, setIsOpen] = useState(false);\n const handleModal = useCallback(() => {\n setIsOpen(!isOpen);\n }, [isOpen]);\n return (\n <>\n
\n \n {isSelected && (\n \n \n \n \n \n )}\n \n \n \n
\n {isOpen && (\n \n
\n \n
\n \n )}\n \n );\n};\n","import React, { ChangeEventHandler } from 'react';\ntype RadioGroupProps = {\n name: string;\n value: boolean | string;\n label: string;\n options: { value: boolean | string; label: string }[];\n onChange: ChangeEventHandler;\n};\n\nexport const RadioGroup: React.FC = (props) => {\n const { name, value, onChange, options, label } = props;\n\n return (\n <>\n
\n \n {label}\n \n
\n {options.map((option, _i) => (\n // @ts-ignore\n
\n \n \n
\n ))}\n
\n
\n \n );\n};\n","import React, { ChangeEventHandler } from 'react';\n\ntype SelectFieldProps = {\n name: string;\n label?: string;\n value: string;\n checked?: boolean;\n type?: 'text' | 'date';\n onChange: ChangeEventHandler;\n options?: string[];\n required?: boolean;\n};\n\n// 選択フィールド用のコンポーネント\nexport const SelectField: React.FC = (props) => {\n const { name, value, onChange, options, label } = props;\n\n return (\n <>\n \n \n \n {options?.map((option, _) => (\n \n ))}\n \n \n );\n};\n","import React from 'react';\nimport { AssetsContainer } from './assets/AssetsContainer';\nimport { LiabilitiesContainer } from './liabilities/LiabilitiesContainer';\nimport { SubjectProps, Subjects } from '../types';\n\ninterface BsContainerProps extends SubjectProps {\n subject: Subjects;\n phase: string;\n}\n/**\n * 貸借対照表\n * 資産の部(左)AssetsContainer\n * 負債の部(右上)LiabilitiesContainer\n * 純資産の部(右下) LiabilitiesContainer -> NetAssetsContainer\n */\nexport const BsContainer: React.FC = (props) => {\n const { getValues, setValue, subject, control, phase } = props;\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","import React from 'react';\nimport { CurrentAssets } from './CurrentAssets';\nimport { SubjectProps } from '../../types';\n\ninterface AssetsContainerProps extends SubjectProps {\n phase: string;\n}\n\nexport const AssetsContainer: React.FC = (\n props: AssetsContainerProps,\n) => {\n const { getValues, setValue, phase, control } = props;\n return (\n <>\n {phase == '1' ? (\n \n ) : (\n <>\n )}\n \n );\n};\n","import React, { useState } from 'react';\nimport { SubjectRow } from '../../../SubjectRow/SubjectRow';\nimport { SubjectProps } from '../../types';\n\nexport const CurrentAssets: React.FC = (props) => {\n const { getValues, setValue, control } = props;\n const [debtLikeItems, setDebtLikeItems] = useState(false);\n return (\n <>\n
\n
\n
\n 科目\n
\n
\n 金額\n
\n
\n \n
\n
売上債権
\n
\n
\n \n \n \n
\n
棚卸資産
\n
\n
\n \n \n \n \n
\n
固定資産
\n
\n
\n \n
\n
非事業用資産
\n
\n
\n \n \n \n \n
\n setDebtLikeItems(!debtLikeItems)}\n className=\"cursor-pointer col-span-7 text-left pl-2 pt-1 text-blue-600\"\n >\n デットライクアイテム▼\n
\n
\n
\n {debtLikeItems && (\n <>\n \n \n \n \n \n \n )}\n \n \n \n );\n};\n","import React from 'react';\nimport { SubjectRow } from '../../../SubjectRow/SubjectRow';\nimport { SubjectProps } from '../../types';\n\ntype AccountsPayableProps = SubjectProps;\n\nexport const AccountsPayable: React.FC = (props) => {\n const { getValues, setValue, control } = props;\n return (\n <>\n
\n
仕入債務
\n
\n
\n \n \n \n \n );\n};\n","import React from 'react';\nimport { SubjectRow } from '../../../SubjectRow/SubjectRow';\nimport { NetAssetsContainer } from '../net_assets/NetAssetsContainer';\nimport { SubjectProps, Subjects } from '../../types';\n\ninterface InterestBearingDebtProps extends SubjectProps {\n subject: Subjects;\n phase: string;\n}\n\nexport const InterestBearingDebt: React.FC = (\n props: InterestBearingDebtProps,\n) => {\n const { subject, getValues, setValue, phase, control } = props;\n return (\n <>\n {phase == '1' ? (\n <>\n
\n
\n
\n
\n \n ) : (\n <>\n )}\n
\n
有利子負債
\n
\n
\n \n \n \n \n \n \n {phase == '1' ? (\n \n ) : (\n <>\n )}\n \n );\n};\n","import React from 'react';\nimport { AccountsPayable } from './AccountsPayable';\nimport { InterestBearingDebt } from './InterestBearingDebt';\nimport { SubjectProps, Subjects } from '../../types';\n\ninterface LiabilitiesContainerProps extends SubjectProps {\n subject: Subjects;\n phase: string;\n}\n\nexport const LiabilitiesContainer: React.FC = (\n props: LiabilitiesContainerProps,\n) => {\n const { subject, getValues, setValue, phase, control } = props;\n return (\n
\n
\n
\n 科目\n
\n
\n 金額\n
\n
\n {phase == '1' ? (\n <>\n \n \n ) : (\n <>\n )}\n \n
\n );\n};\n","import React from 'react';\nimport { SubjectRow } from '../../../SubjectRow/SubjectRow';\nimport { SubjectProps } from '../../types';\n\nexport const NetAssets: React.FC = (props) => {\n const { getValues, setValue, control } = props;\n return (\n <>\n
\n

\n 純資産の部\n

\n
\n
\n
\n 科目\n
\n
\n 金額\n
\n
\n \n \n \n \n \n );\n};\n","import React from 'react';\nimport { NetAssets } from './NetAssets';\nimport { SubjectProps, Subjects } from '../../types';\n\ninterface NetAssetsContainerProps extends SubjectProps {\n subject: Subjects;\n}\nexport const NetAssetsContainer: React.FC = (\n props: NetAssetsContainerProps,\n) => {\n const { getValues, setValue, control } = props;\n return (\n \n );\n};\n","import React from 'react';\nimport { ProfitAndLossStatement } from './ProfitAndLossStatement';\nimport { SubjectProps } from '../types';\n\ninterface PlContainerProps extends SubjectProps {\n phase: string;\n}\n\nexport const PlContainer: React.FC = (\n props: PlContainerProps,\n) => {\n const { getValues, setValue, phase, control } = props;\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","import React from 'react';\nimport { SubjectRow } from '../../SubjectRow/SubjectRow';\nimport { SubjectProps } from '../types';\ninterface ProfitAndLossStatementProps extends SubjectProps {\n phase: string;\n}\n\nexport const ProfitAndLossStatement: React.FC = (\n props: ProfitAndLossStatementProps,\n) => {\n const { getValues, setValue, phase, control } = props;\n return (\n
\n \n \n \n \n {phase == '1' ? (\n <>\n
\n
営業外費用
\n
\n
\n \n \n \n ) : (\n <>\n )}\n
\n );\n};\n","import React from 'react';\nimport { SubjectRow } from '../../SubjectRow/SubjectRow';\nimport { SubjectProps } from '../types';\n\nexport const Sga: React.FC = (props: SubjectProps) => {\n const { getValues, setValue, control, reportType } = props;\n return (\n <>\n
\n
\n
\n
\n
\n 販売費及び一般管理費内訳書\n
\n
\n

\n 科目\n

\n
\n
\n

\n 金額\n

\n
\n \n {reportType === 'company_medical_reports' ? (\n <>\n \n \n \n \n \n \n \n \n \n ) : (\n <>\n )}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n 製造原価報告書\n
\n
\n

\n 科目\n

\n
\n
\n

\n 金額\n

\n
\n \n
\n
\n
\n
\n \n );\n};\n","import React from 'react';\nimport { Sga } from './Sga';\nimport { SubjectProps } from '../types';\n\nexport const SgaContainer: React.FC = (props: SubjectProps) => {\n const { getValues, setValue, control, reportType = 'reports' } = props;\n return (\n \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport NumberFormat from 'react-number-format';\nimport { ErrorMessage } from '@hookform/error-message';\nimport { inputProps } from './types';\n\nexport const SubjectInput: React.FC = (props) => {\n const { subject, setValue, defaultValue, _callback, errors } = props;\n const [inputValue, setInputValue] = useState(defaultValue);\n\n const setSubjectValue = useCallback(\n (e) => {\n if (e.target.value === '') {\n // @ts-ignore\n setValue(subject, null);\n setInputValue(e.target.value);\n return;\n }\n // @ts-ignore\n setValue(subject, Number(e.target.value.replace(/,/g, '')));\n _callback\n ? _callback(subject, Number(e.target.value.replace(/,/g, '')))\n : '';\n setInputValue(e.target.value);\n },\n [_callback, setValue, subject],\n );\n\n useEffect(() => {\n // @ts-ignore\n setValue(subject, defaultValue);\n }, [defaultValue, setValue, subject]);\n\n return (\n <>\n setSubjectValue(e)}\n className=\"border text-right w-full p-2 h-8 shadow-sm focus:ring-indigo-500 focus:border-indigo-500 sm:text-sm border-gray-300 rounded-xs\"\n thousandsGroupStyle=\"thousand\"\n decimalSeparator=\".\"\n displayType=\"input\"\n type=\"text\"\n value={inputValue}\n thousandSeparator={true}\n allowNegative={true}\n decimalScale={2}\n />\n {errors && (\n (\n

{message}

\n )}\n />\n )}\n \n );\n};\n","import React from 'react';\nimport { Controller } from 'react-hook-form';\nimport { SubjectInput } from '../SubjectInput/SubjectInput';\nimport { Tooltip } from '../Tooltip/Tooltip';\nimport { SubjectRowProps } from './types';\n\nexport const SubjectRow: React.FC = (props) => {\n const {\n label,\n value,\n subject,\n control,\n getValues,\n setValue,\n _callback = null,\n indent = false,\n rules = { required: false },\n toolTipProps = { text: '', placement: 'bottom-6 -left-36' },\n } = props;\n return (\n
\n
\n {label}\n \n \n

?

\n \n
\n
\n
\n {value && (\n (\n \n )}\n />\n )}\n
\n
\n );\n};\n","import React, {\n PropsWithChildren,\n useCallback,\n useMemo,\n useState,\n} from 'react';\nimport { TooltipProps } from './types';\n\n/**\n * ツールチップ表示用コンポーネント\n * @param {TooltipProps} props\n * @returns Tooltip\n */\nexport const Tooltip: React.FC> = (props) => {\n const {\n baseStyles,\n buttonColor,\n tipText,\n tipTextAlign,\n tipTextColor,\n tipColor,\n tipWidth,\n tipPlacement,\n children,\n } = props;\n\n const [toolTip, setTooltip] = useState<{ visibility: 'visible' | 'hidden' }>({\n visibility: 'hidden',\n });\n const buttonStyles = useMemo(\n () => (baseStyles ? baseStyles : 'rounded-full w-6 h-6'),\n [baseStyles],\n );\n const buttonColorClasses = useMemo(\n () => (buttonColor ? buttonColor : 'bg-green-500 hover:bg-green-700'),\n [buttonColor],\n );\n const tipPlacementClasses = useMemo(\n () => (tipPlacement ? tipPlacement : 'bottom-6 left-0'),\n [tipPlacement],\n );\n const tipTextAlignClasses = useMemo(\n () => (tipTextAlign ? tipTextAlign : 'text-left'),\n [tipTextAlign],\n );\n const tipWidthClasses = useMemo(\n () => (tipWidth ? tipWidth : 'w-80'),\n [tipWidth],\n );\n const tipColorClass: string = useMemo(\n () => (tipColor ? tipColor : 'bg-green-500'),\n [tipColor],\n );\n const tipTextColorClass: string = useMemo(\n () => (tipTextColor ? tipTextColor : 'text-white'),\n [tipTextColor],\n );\n const tipContents: string = useMemo(\n () => (tipText ? tipText : ''),\n [tipText],\n );\n\n const onMouseOverHandler: () => void = useCallback(() => {\n setTooltip({ visibility: 'visible' });\n }, []);\n const onMouseLeaveHandler: () => void = useCallback(() => {\n setTooltip({ visibility: 'hidden' });\n }, []);\n\n return (\n <>\n \n \n {tipContents}\n
\n {children}\n \n \n );\n};\n","import React, { useMemo } from 'react';\nimport { MoneyFormatter } from '../../utils/common';\nimport { VALUTION_MAX_RATE, VALUTION_MIN_RATE } from '../../utils/constant';\nimport { ValuationResult } from '../../pages/company_medical_reports/company_medical_reports/types';\n\nexport const Valuation = ({\n valuation,\n valuationName,\n valuationResult,\n}: {\n valuation: number;\n valuationName: string;\n valuationResult: ValuationResult;\n}) => {\n const nonLiquidDiscount = useMemo((): number => {\n if (!valuationResult) return 0;\n if (valuationName === '相続税評価') return 0;\n if (!('breakdown' in valuationResult)) return 0;\n if (!valuationResult.breakdown[0].non_liquidity_discount) return 0;\n return Number(valuationResult.breakdown[0].non_liquidity_discount);\n }, [valuationName, valuationResult]);\n\n const formattedValuation = useMemo(() => {\n if (valuationName === '相続税評価') {\n return MoneyFormatter(Math.round(valuation));\n }\n const minValuation = MoneyFormatter(\n Math.round(valuation * VALUTION_MIN_RATE * (1 - nonLiquidDiscount)),\n );\n const maxValuation = MoneyFormatter(\n Math.round(valuation * VALUTION_MAX_RATE * (1 - nonLiquidDiscount)),\n );\n return `${minValuation} 〜 ${maxValuation}`;\n }, [valuation, valuationName, nonLiquidDiscount]);\n\n return (\n
\n {formattedValuation}\n
\n );\n};\n","import React from 'react';\nimport { useCallback, useState } from 'react';\nimport { MoneyFormatter } from '../../utils/common';\nimport { ValuationReportCalculationProps } from '../../pages/reports/report/types';\nimport { ValuationCheckboxProps } from './types';\nexport const ValuationCheckBox: React.FC = (props) => {\n const { valuations, inputName } = props;\n const [selectedOption, setSelectedOption] = useState(null);\n\n const handleChange = useCallback(\n (event) => {\n event.target.value === selectedOption\n ? setSelectedOption(null)\n : setSelectedOption(event.target.value);\n },\n [selectedOption],\n );\n\n const valuationResult = useCallback((valuation) => {\n return JSON.parse(valuation.result);\n }, []);\n\n return (\n <>\n {valuations.map(\n (valuation: ValuationReportCalculationProps, index: number) => (\n \n
\n
\n \n
\n
\n \n
\n
\n
\n ),\n )}\n \n );\n};\n","import React, { useCallback, useMemo, useState } from 'react';\nimport axios from 'axios';\nimport { Toaster } from 'react-hot-toast';\nimport { notify } from '../users/api';\nimport { InputField } from '../../components/InputField/InputField';\nimport { RadioGroup } from '../../components/RadioGroup/RadioGroup';\n\ntype CompanyProps = {\n company_id: number;\n company_name: string;\n ip_addresses: { address: string; mode: string }[];\n};\n\nexport const CompanyIpAddress: React.FC = (props) => {\n const { company_id, company_name, ip_addresses } = props;\n const token = useMemo(\n () =>\n document\n ?.getElementById('send_company_edit_form')\n ?.parentElement?.getElementsByTagName('input')[0].value,\n [],\n );\n const initializedIpAddresses = useMemo(\n () =>\n ip_addresses.map((ip) => ({\n ...ip,\n mode: ip.mode !== undefined ? ip.mode : 'allowed',\n })),\n [ip_addresses],\n );\n\n const [formState, setFormState] = useState({\n company_id,\n company_name,\n ip_addresses: initializedIpAddresses,\n });\n\n const twoFactorOptions = useMemo(\n () => [\n { value: 'allowed', label: 'はい' },\n { value: 'denied', label: 'いいえ' },\n ],\n [],\n );\n\n const updateFormState = useCallback((e) => {\n const { name, value } = e.target;\n if (name.startsWith('ip_address_')) {\n const index = parseInt(name.split('_')[2], 10);\n setFormState((prevState) => ({\n ...prevState,\n ip_addresses: prevState.ip_addresses.map((ip, i) =>\n i === index ? { ...ip, address: value } : ip,\n ),\n }));\n } else if (name.startsWith('mode_')) {\n const index = parseInt(name.split('_')[1], 10);\n setFormState((prevState) => ({\n ...prevState,\n ip_addresses: prevState.ip_addresses.map((ip, i) =>\n i === index ? { ...ip, mode: value } : ip,\n ),\n }));\n }\n }, []);\n\n const addNewIpAddress = useCallback(() => {\n setFormState((prevState) => ({\n ...prevState,\n ip_addresses: [\n ...prevState.ip_addresses,\n { address: '', mode: 'allowed' },\n ],\n }));\n }, []);\n\n const removeIpAddress = useCallback((indexToRemove) => {\n setFormState((prevState) => ({\n ...prevState,\n ip_addresses: prevState.ip_addresses.filter((_, index) => index !== indexToRemove),\n }));\n }, []);\n\n const submitCompanyInfo = useCallback(async () => {\n try {\n const submitFormState = {\n company_id: formState.company_id,\n company_name: formState.company_name,\n ip_addresses: formState.ip_addresses.filter(ip => ip.address !== ''),\n };\n const response = await axios.patch(\n `/companies/${submitFormState.company_id}`,\n submitFormState,\n {\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': token || '',\n },\n },\n );\n\n if (response.status === 200) {\n notify('success', '企業情報が更新されました。');\n } else {\n notify('failed', '企業情報の更新に失敗しました。');\n }\n } catch (error) {\n console.error(error);\n notify('failed', '企業情報の更新に失敗しました。');\n }\n }, [formState, token]);\n\n return (\n <>\n \n
\n
\n
\n
\n

\n 企業情報設定\n

\n

\n 企業情報を入力してください。\n

\n
\n
\n \n
\n {formState?.ip_addresses?.map((ip_address, i) => (\n
\n
\n
\n \n
\n
\n \n
\n
\n removeIpAddress(i)}\n >\n 削除\n
\n
\n
\n
\n ))}\n
\n
\n \n IPアドレスを追加\n
\n
\n
\n
\n \n 変更を保存\n
\n
\n
\n
\n \n );\n};\n","import React, { Dispatch, SetStateAction } from 'react';\nimport { CompanyMedicalReportPreview } from './previews/CompanyMedicalReportPreview';\nimport { CompanyMedicalReportPreviewProps } from './types';\nimport { CompanyMedicalReportOptionProps } from '../users/types';\nimport { ColorPicker } from '../../components/ColorPicker/ColorPicker';\n\nexport const CompanyMedicalReportOptions: React.FC<{\n company_medical_report_option: CompanyMedicalReportPreviewProps;\n chart_sample_img: string;\n rotation_sample_img: string;\n formState: CompanyMedicalReportOptionProps;\n setFormState: Dispatch>;\n}> = (props) => {\n const { chart_sample_img, rotation_sample_img, formState, setFormState } =\n props;\n\n return (\n <>\n

\n レポートカラー設定\n

\n
\n \n setFormState((prev) => ({ ...prev, tableHeaderColor: color }))\n }\n />\n \n setFormState((prev) => ({ ...prev, tableHeaderTextColor: color }))\n }\n />\n \n setFormState((prev) => ({ ...prev, tableCellColor: color }))\n }\n name=\"tableCellColor\"\n />\n \n setFormState((prev) => ({ ...prev, tableCellTextColor: color }))\n }\n label=\"テーブルセルテキスト\"\n name=\"tableCellTextColor\"\n />\n
\n \n \n );\n};\n","import React from 'react';\nimport { ResultPagePreview } from './ResultPagePreview';\nimport { SubjectPagePreview } from './SubjectPagePreview';\nimport { CompanyMedicalReportPreviewProps } from '../types';\n\nexport const CompanyMedicalReportPreview: React.FC<\n CompanyMedicalReportPreviewProps\n> = (props) => {\n const {\n tableHeaderColor,\n tableHeaderTextColor,\n tableCellColor,\n tableCellTextColor,\n chartSampleImg,\n rotationSampleImg,\n } = props;\n\n return (\n <>\n
\n
\n \n
\n
\n \n
\n
\n \n );\n};\n","import React from 'react';\nimport { CompanyMedicalReportPreviewProps } from '../types';\n\nexport const ResultPagePreview: React.FC = (\n props,\n) => {\n const {\n tableHeaderColor,\n tableHeaderTextColor,\n tableCellColor,\n tableCellTextColor,\n chartSampleImg,\n } = props;\n\n const valuationHeaders = ['アプローチ', '株式価値'];\n const valuationRows = [\n ['PER倍率法\\n純利益に基づく評価', '100万〜200万'],\n ['EV/EBITDA倍率法\\n営業利益に基づく評価', '100万〜200万'],\n ['DCF法\\n従来の収益に基づく評価', '100万〜200万'],\n [\n '簿価純資産法\\n純資産に基づく評価',\n '純資産 10万\\n*EBITDA1年 10万\\n*EBITDA2年 10万\\n*EBITDA3年 10万',\n ],\n ];\n\n const plHeaders = [\n '損益計算書',\n '今回の決算書',\n '対売上率',\n '業界平均',\n '上場平均',\n ];\n const plRows = [\n ['売上高', '-', '-', '-', '-'],\n ['売上原価', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['売上総利益', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['販売費及び一般管理費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['営業利益', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['支払利息', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['当期純利益', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['EBITDA(営業利益・減価償却費)', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ];\n\n const bsHeaders = [\n '貸借対照表',\n '今回の決算書',\n '対総資産率',\n '業界平均',\n '上場平均',\n ];\n const bsRows = [\n ['現金及び預金', '-', '-', '-', '-'],\n ['売上債権', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['棚卸資産', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['仕入債務', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['有利子負債', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['純資産', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['純資産(負債及び純資産)', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ];\n\n return (\n <>\n \n
\n
\n
\n

診断結果

\n
\n
\n
\n\n
\n

\n Summary\n

\n
    \n
  • \n ・株式価値評価結果は以下になります。EV/EBITDA倍率法、PER倍率法は、株式価値評価がマイナス評価になった為、採用せずとなっております。\n
  • \n
  • \n ・営業利益が+0円となるとEV/EBITDA倍率法に則った評価がプラス、当期純利益が+0円となるとPER倍率法に則った評価がプラスとなります。\n
  • \n
  • \n ・業界平均と比較して、営業利益が3.5%(約0円)下回っています。原価または販売費及び一般管理費の見直しをすることをお勧めします。\n
  • \n
\n
\n\n
\n
\n

株式算定

\n \n \n \n {valuationHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {valuationRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent.split('\\n').map((line, lineIndex) => (\n \n {line}\n {lineIndex < cellContent.split('\\n').length - 1 && (\n
\n )}\n
\n ))}\n \n ))}\n
\n ))}\n \n
\n
\n
\n \n
\n
\n
\n
\n

損益計算書分析(PL)

\n \n \n \n {plHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {plRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent}\n \n ))}\n \n ))}\n \n
\n
\n
\n
\n
\n

貸借対照表分析(BS)

\n \n \n \n {bsHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {bsRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent}\n \n ))}\n \n ))}\n \n
\n
\n
\n

\n ※業界平均は e-Stat、上場平均は EDINET の情報を加工・集計しております\n

\n \n \n );\n};\n","import React from 'react';\nimport { CompanyMedicalReportPreviewProps } from '../types';\n\nexport const SubjectPagePreview: React.FC = (\n props,\n) => {\n const {\n tableHeaderColor,\n tableHeaderTextColor,\n tableCellColor,\n tableCellTextColor,\n rotationSampleImg,\n } = props;\n\n const subjectHeaders = ['', '直前期'];\n const subjectRows = [\n ['売上債権', '-'],\n ['売掛金', '-'],\n ['受取手形', '-'],\n ['棚卸資産', '-'],\n ['商品', '-'],\n ['製品', '-'],\n ['仕掛品', '-'],\n ['仕入債務', '-'],\n ['買掛金', '-'],\n ['支払手形', '-'],\n ['有利子負債', '-'],\n ['短期借入金', '-'],\n ['長期借入金', '-'],\n ['社債', '-'],\n ['リース債務', '-'],\n ['非事業用資産', '-'],\n ['上場有価証券', '-'],\n ['保険積立金', '-'],\n ];\n\n const rotationHeaders = ['', '直前期'];\n const rotationRows = [\n ['ROA\\n当期純利益 ÷ 総資産', '0.0%'],\n ['ROI\\n当期純利益 ÷ (有利子負債 + 純資産)', '0.0%'],\n ['D/Eレシオ\\n有利子負債 ÷ 純資産', '0.0%'],\n ];\n\n const sgaHeaders = [\n '販売費及び一般管理費',\n '今回の決算書',\n '対販管費率',\n '業界平均',\n '業界平均との差',\n ];\n const sgaRows = [\n ['販売費及び一般管理費', '-', '-', '-', '-'],\n ['人件費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['広告宣伝費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['交際費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['地代家賃', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['減価償却費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['リース', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['水道光熱費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['通信費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ['外注費', '-', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ];\n\n const managementHeaders = ['', '御社', '業界平均', '上場平均'];\n const managementRows = [\n ['ROA\\n当期純利益 ÷ 総資産', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n [\n 'ROI\\n当期純利益 ÷ (有利子負債 + 純資産)',\n '0.0%',\n '49.3%~56.9%',\n '72.3%~76.9%',\n ],\n ['D/Eレシオ\\n有利子負債 ÷ 純資産', '0.0%', '49.3%~56.9%', '72.3%~76.9%'],\n ];\n\n return (\n <>\n \n
\n
\n

販売費及び一般管理費

\n \n \n \n {sgaHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {sgaRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent}\n \n ))}\n \n ))}\n \n
\n
\n
\n
\n
\n

科目内訳

\n \n \n \n {subjectHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {subjectRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent}\n \n ))}\n \n ))}\n \n
\n
\n
\n

回転期間

\n \n \n \n {rotationHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {rotationRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent.split('\\n').map((line, lineIndex) => (\n \n {line}\n {lineIndex < cellContent.split('\\n').length - 1 && (\n
\n )}\n
\n ))}\n \n ))}\n
\n ))}\n \n
\n \n
\n
\n
\n
\n

経営指標

\n \n \n \n {managementHeaders.map((header) => (\n \n {header}\n \n ))}\n \n \n \n {managementRows.map((rowContent, rowIndex) => (\n \n {rowContent.map((cellContent, cellIndex) => (\n \n {cellContent.split('\\n').map((line, lineIndex) => (\n \n {line}\n {lineIndex < cellContent.split('\\n').length - 1 && (\n
\n )}\n
\n ))}\n \n ))}\n
\n ))}\n \n
\n
\n
\n

\n ※業界平均は e-Stat、上場平均は EDINET の情報を加工・集計しております\n

\n \n \n );\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { CompanyMedicalReportProfilesProps, SectionsProps } from './types';\n\nconst AI_COMMENT_ROLES: { [k: string]: { [k: string]: string } } = {\n certified_public_accountant: {\n name: '公認会計士',\n },\n tax_accountant: {\n name: '税理士',\n },\n lawer: {\n name: '弁護士',\n },\n financial_consultant: {\n name: '財務コンサルタント',\n },\n management_consultant: {\n name: '経営コンサルタント',\n },\n merger_and_acqusition_advisor: {\n name: 'M&Aアドバイザー',\n },\n financial_advisor: {\n name: 'フィナンシャルアドバイザー',\n },\n banker: {\n name: '銀行員',\n },\n};\n\nexport const CompanyMedicalReportComments: React.FC<\n CompanyMedicalReportProfilesProps\n> = (props) => {\n const { sections, setSections, company_medical_report_id, report_comments } =\n props;\n const [selectedRole, setSelectedRole] = useState(\n Object.keys(AI_COMMENT_ROLES)[0],\n );\n\n const inputSection = useMemo(\n () => [\n {\n label: 'セクション名',\n inputName: 'section_name',\n },\n {\n label: '依頼文',\n inputName: 'message',\n },\n {\n label: 'フォーマット',\n inputName: 'format',\n },\n ],\n [],\n );\n\n const handleStateChange = useCallback(\n (section_index: number, sectionData: SectionsProps) => {\n setSections((prevSections) => {\n const sectionIndex = prevSections.findIndex(\n (section) => section.section_index === section_index,\n );\n if (sectionIndex === -1) {\n return prevSections;\n }\n const updatedSections = [...prevSections];\n updatedSections[sectionIndex] = sectionData;\n return updatedSections;\n });\n },\n [setSections],\n );\n\n const getFinancialComment = useCallback(\n async (section_index: number) => {\n handleStateChange(section_index, {\n ...sections[section_index],\n loading: true,\n });\n try {\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify({\n company_medical_report_id: company_medical_report_id,\n role: selectedRole,\n section: sections[section_index],\n }),\n };\n const response = await fetch('/api/open_ai', requestOptions);\n const data = await response.json();\n handleStateChange(section_index, {\n ...sections[section_index],\n chat_history: data.response.chat_history,\n content: data.response.content,\n trials: sections[section_index].trials + 1,\n loading: false,\n });\n } catch (err) {\n console.debug(err);\n handleStateChange(section_index, {\n ...sections[section_index],\n loading: false,\n });\n }\n },\n [selectedRole, sections, handleStateChange, company_medical_report_id],\n );\n\n useEffect(() => {\n if (report_comments) {\n const updatedSections = [...sections];\n report_comments.forEach((report_comment, index) => {\n updatedSections[index].content = report_comment.content;\n updatedSections[index].section_name = report_comment.section_name;\n updatedSections[index].category = report_comment.category;\n });\n setSections(updatedSections);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [report_comments]);\n\n return (\n
\n
\n
\n
\n \n 6.AIアドバイスの設定\n \n
\n
\n
\n ロール設定\n
\n
\n {\n setSelectedRole(e.target.value);\n }}\n >\n {Object.keys(AI_COMMENT_ROLES).map((key) => (\n \n ))}\n \n
\n
\n
\n {sections.map((section) => (\n \n
\n
\n \n ポイント{section.section_index + 1}の設定\n \n
\n {inputSection.map(({ label, inputName }, index) => (\n
\n
\n {label}\n
\n
\n {inputName !== 'format' ? (\n \n handleStateChange(section.section_index, {\n ...section,\n [inputName]: e.target.value,\n })\n }\n />\n ) : (\n \n handleStateChange(section.section_index, {\n ...section,\n [inputName]: e.target.value,\n })\n }\n >\n \n \n \n )}\n
\n
\n ))}\n
\n {section.loading ? (\n
\n 読み込み中\n
\n ) : (\n getFinancialComment(section.section_index)}\n className=\"cursor-pointer justify-center align-center rounded px-8 py-1 bg-blue-500 font-medium text-white hover:bg-blue-600 text-xs\"\n >\n 設定する\n
\n )}\n

\n リクエスト回数: {section.trials}回\n

\n
\n
\n \n ))}\n
\n
\n
\n
\n

\n あなたの会社へのAIアドバイス\n

\n
\n {sections.map((section) => (\n \n
\n

\n \n {`ポイント${section.section_index + 1}`}\n \n {section.section_name}\n

\n
\n {section.loading ? (\n
\n
\n
\n
\n
\n ) : (\n \n handleStateChange(section.section_index, {\n ...section,\n content: e.target.value,\n })\n }\n value={section.content}\n />\n )}\n
\n
\n
\n ))}\n
\n
\n \n );\n};\n","import React from 'react';\nimport { ModalProvider } from 'react-modal-hook';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { useCompanyMedicalReportDetails } from './hooks';\nimport { CompanyMedicalReportSubjectsStep } from './CompanyMedicalReportSubjectsStep';\nimport { CompanyMedicalReportIndustriesStep } from './CompanyMedicalReportIndustriesStep';\nimport { CompanyMedicalReportValuationsStep } from './CompanyMedicalReportValuationsStep';\nimport { CompanyMedicalReportPptxStep } from './CompanyMedicalReportPptxStep';\nimport { CompanyMedicalReportDetailsProps } from './types';\n\nexport const CompanyMedicalReportDetails: React.FC<\n CompanyMedicalReportDetailsProps\n> = (props) => {\n const { companyMedicalReport } = props;\n const { modalMessage, modalCheck } = useCompanyMedicalReportDetails();\n return (\n <>\n \n \n

\n {companyMedicalReport?.evaluation_company_name}\n

\n
\n
    \n \n \n \n \n
\n
\n \n \n
\n \n );\n};\n","import React, { useEffect } from 'react';\nimport Modal from 'react-modal';\nimport { useCompanyMedicalReportDownloadButton } from './hooks';\nimport { CompanyMedicalReportDownloadButtonProps } from './types';\n\nconst customStyles = {\n overlay: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255, 255, 255, 0.75)',\n },\n content: {\n position: 'absolute',\n top: '30%',\n left: '30%',\n right: '30%',\n bottom: 'auto',\n border: '1px solid #ccc',\n background: '#fff',\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n borderRadius: '4px',\n outline: 'none',\n padding: '20px',\n },\n};\n\nexport const CompanyMedicalReportDownloadButton: React.FC<\n CompanyMedicalReportDownloadButtonProps\n> = (props) => {\n const { reportId } = props;\n // @ts-ignore\n const token: string = document\n .getElementById('company_medical_report_proile')\n .parentElement.getElementsByTagName('input')[0].value;\n const {\n downloadPptxApi,\n modalIsOpen,\n pptxMessage,\n donwloadReport,\n addReportDownloadListener,\n } = useCompanyMedicalReportDownloadButton();\n useEffect(() => {\n Modal.setAppElement('#profile_page');\n addReportDownloadListener();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n reportId && token ? donwloadReport(reportId, token) : null\n }\n className=\"inline-flex justify-center pt-3 px-6 text-sm font-medium rounded text-white bg-blue-500 hover:bg-blue-600\"\n >\n \n \n \n \n \n \n ダウンロードする(.pptx)\n \n \n \n

{pptxMessage}

\n
\n
\n
\n
\n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useCompanyMedicalReportIndustriesStep } from './hooks';\nimport { CompanyMedicalReportProps } from './types';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\n\ntype CompanyMedicalReportIndustriesStepProps = {\n companyMedicalReport: CompanyMedicalReportProps;\n};\n\nexport const CompanyMedicalReportIndustriesStep: React.FC<\n CompanyMedicalReportIndustriesStepProps\n> = (props) => {\n const { companyMedicalReport } = props;\n const {\n reportSimilaritiesStepStyle,\n setReportSimilaritiesStepStyle,\n getSimilaritiesForm,\n } = useCompanyMedicalReportIndustriesStep(companyMedicalReport);\n useEffect(() => {\n if (companyMedicalReport.is_similar_industry_selected) {\n setReportSimilaritiesStepStyle({\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-green-300',\n checkedButton:\n 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center',\n actionButton:\n 'inline-flex items-center px-14 py-2 text-sm font-medium rounded text-white bg-green-500 hover:bg-green-600 cursor-pointer',\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
  • \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n

    STEP2

    \n \n \n \n

    \n 所要時間 約1分\n

    \n
    \n

    類似業種の選定

    \n

    \n 類似する業種の市場株価を算定結果に反映\n

    \n
    \n getSimilaritiesForm()}\n className={reportSimilaritiesStepStyle.actionButton}\n >\n 類似業種選定を行う\n
    \n
    \n
    \n
    \n
    \n \n
  • \n );\n};\n","import React, { useEffect } from 'react';\nimport { useCompanyMedicalReportPptxStep } from './hooks';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport { CompanyMedicalReportProps } from './types';\n\ntype CompanyMedicalReportPptxStepProps = {\n companyMedicalReport: CompanyMedicalReportProps;\n allValuationsCalculated: boolean;\n};\n\nexport const CompanyMedicalReportPptxStep: React.FC<\n CompanyMedicalReportPptxStepProps\n> = (props) => {\n const { companyMedicalReport, allValuationsCalculated } = props;\n const { reportGenPptxStepStyle, setReportGenPptxStep, getReportPptxForm } =\n useCompanyMedicalReportPptxStep(companyMedicalReport);\n\n useEffect(() => {\n if (!allValuationsCalculated) return;\n setReportGenPptxStep({\n checkButton:\n 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center ring-8 ring-white',\n step: 'text-lg text-green-400 font-semibold',\n name: 'pt-1.5 text-xl text-gray-700 font-bold',\n reportButton:\n 'cursor-pointer inline-flex items-center px-14 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500',\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
  • \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n

    STEP4

    \n \n \n \n

    \n 所要時間 約1分\n

    \n
    \n

    \n 決算書チェッカーの作成\n

    \n

    \n 算定結果をもとに決算書チェッカーをパワーポイント形式で書き出します\n

    \n
    \n getReportPptxForm()}\n className={reportGenPptxStepStyle.reportButton}\n >\n レポートを書き出す\n
    \n
    \n
    \n
    \n
    \n \n
  • \n );\n};\n","import React, { useCallback } from 'react';\nimport { Toaster } from 'react-hot-toast';\nimport { AsyncPaginate } from 'react-select-async-paginate';\nimport { CompanyMedicalReportComments } from './CompanyMedicalReportComments';\nimport { CompanyMedicalReportDownloadButton } from './CompanyMedicalReportDownloadButton';\nimport { CompanyMedicalReportProfileHooks } from './hooks';\nimport { loadOptions } from './api';\nimport { MoneyFormatter, transformDate } from '../../../utils/common';\nimport {\n CompanyMedicalReportProfileProps,\n CompanyMedicalReportSelectOptionValue,\n} from './types';\nimport {\n DcfSchema,\n EbitdaSchema,\n InheritanceSchema,\n PerSchema,\n} from '../../../utils/schema';\n\nconst VALUATIONS_SCHEMA = {\n dcf: DcfSchema,\n ebitda: EbitdaSchema,\n per: PerSchema,\n inheritance: InheritanceSchema,\n};\n\nexport const CompanyMedicalReportProfile = (\n props: CompanyMedicalReportProfileProps,\n) => {\n const { company_medical_report_profile_form, valuations } = props;\n const token = document\n ?.getElementById('company_medical_report_proile')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n\n const {\n formState,\n sections,\n selectedValues,\n handleSelectValuesChange,\n setSections,\n updateFormState,\n updateProfile,\n handleAddNewSelector,\n } = CompanyMedicalReportProfileHooks(\n company_medical_report_profile_form,\n // @ts-ignore\n token,\n );\n\n const FormatOptionLabel = React.memo(\n ({ option }: { option: CompanyMedicalReportSelectOptionValue }) => (\n
    \n
    \n {option?.evaluation_company_name}\n
    \n
    \n {option?.report_year}\n
    \n
    \n

    DCF

    \n

    {MoneyFormatter(option?.dcf)}

    \n
    \n
    \n

    EBITDA

    \n

    {MoneyFormatter(option?.ebitda)}

    \n
    \n
    \n

    PER

    \n

    {MoneyFormatter(option?.per)}

    \n
    \n
    \n

    相続税評価

    \n

    {MoneyFormatter(option?.inheritance)}

    \n
    \n
    \n ),\n );\n\n const showValuations = useCallback(\n (method_type: 'dcf' | 'ebitda' | 'per' | 'inheritance') => {\n if (method_type === 'inheritance') {\n try {\n const valuation_result = valuations[method_type].result;\n if (typeof valuation_result !== 'string') return null;\n const valuation = VALUATIONS_SCHEMA[method_type].parse(\n JSON.parse(valuation_result),\n );\n\n const result = Number(valuation.result.valuation);\n const inheritance_tax = valuation.result.inheritance_tax;\n if (\n !result ||\n typeof result !== 'number' ||\n !inheritance_tax ||\n typeof inheritance_tax !== 'number'\n )\n return null;\n return (\n <>\n
    \n
    \n

    \n 相続税法上の評価\n

    \n
    \n
    \n

    \n {MoneyFormatter(result)}\n

    \n
    \n
    \n \n );\n } catch (error) {\n console.error(error);\n return <>;\n }\n } else {\n try {\n const valuation_result = valuations[method_type].result;\n if (typeof valuation_result !== 'string') return null;\n const valuation = VALUATIONS_SCHEMA[method_type].parse(\n JSON.parse(valuation_result),\n );\n const result = Number(valuation.breakdown['0'].valuation);\n const non_liquidity_discount =\n valuation.breakdown['0'].non_liquidity_discount;\n if (\n !result ||\n typeof result !== 'number' ||\n !non_liquidity_discount ||\n typeof non_liquidity_discount !== 'number'\n )\n return null;\n const lowerValuation = Number(\n (result * 0.9 * (1.0 - non_liquidity_discount)).toFixed(0),\n );\n const upperValuation = Number(\n (result * 1.1 * (1.0 - non_liquidity_discount)).toFixed(0),\n );\n return (\n <>\n

    \n {MoneyFormatter(lowerValuation)} 〜\n {MoneyFormatter(upperValuation)}\n

    \n

    \n ※非流動性ディスカウント({non_liquidity_discount * 100}{' '}\n %)を適用しています。\n

    \n \n );\n } catch (error) {\n console.error(error);\n return <>;\n }\n }\n },\n [valuations],\n );\n\n return (\n <>\n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n 1.評価対象会社情報\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n \n updateFormState(\n 'evaluationCompanyBusiness',\n e.target.value,\n )\n }\n />\n
    \n
    \n
    \n
    \n \n 2.レポート作成会社情報\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n 3.レポート情報\n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n \n 4.算定結果\n \n
    \n
    \n
    \n
    \n
    \n

    \n DCF法の算定結果\n

    \n
    \n {showValuations('dcf')}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n EV/EBITDA法の算定結果\n

    \n
    \n {showValuations('ebitda')}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n PER倍率法の算定結果\n

    \n
    \n {showValuations('per')}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n

    \n 相続税法上の評価\n

    \n
    \n {showValuations('inheritance')}\n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n 5.別決算期のレポート選択\n \n
    \n
    \n {selectedValues.map((selectValue, index) => (\n
    \n \n
    \n ))}\n
    \n
    \n \n 追加\n
    \n
    \n
    \n \n
    \n \n 保存する\n
    \n \n
    \n
    \n
    \n
    \n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { Toaster } from 'react-hot-toast';\nimport { useCompanyMedicalReportSubjectsStep } from './hooks';\nimport { CompanyMedicalReportSubjectsStepProps } from './types';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\n\nexport const CompanyMedicalReportSubjectsStep: React.FC<\n CompanyMedicalReportSubjectsStepProps\n> = (props) => {\n const {\n companyMedicalReport,\n isOcrUploaded,\n isSubjectUploaded,\n hasBusinessPlan,\n } = props;\n const [hasUploadedPlan, setHasUploadedPlan] = useState(false);\n const [hasUploadedSubjects, setHasUploadedSubjects] = useState(false);\n\n const {\n downloadFile,\n uploadBusinessPlan,\n uploadSubjects,\n parseResult,\n checkSubjectsInputFormType,\n getSubjectsInputForm,\n } = useCompanyMedicalReportSubjectsStep(companyMedicalReport);\n\n const handleFileUpload = (\n event: React.ChangeEvent,\n file_name: 'valuation_plan' | 'subjects' = 'valuation_plan',\n ) => {\n if (event.target.files) {\n const file = event.target.files[0];\n if (file_name === 'valuation_plan') {\n uploadBusinessPlan(file, companyMedicalReport.id);\n setHasUploadedPlan(true);\n } else {\n uploadSubjects(file, companyMedicalReport.id);\n setHasUploadedSubjects(true);\n }\n event.target.value = '';\n }\n };\n\n useEffect(() => {\n hasBusinessPlan ? setHasUploadedPlan(true) : setHasUploadedPlan(false);\n isSubjectUploaded\n ? setHasUploadedSubjects(true)\n : setHasUploadedSubjects(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    STEP1

    \n \n \n \n

    \n 所要時間 約3分\n

    \n
    \n

    財務情報の入力

    \n

    \n 貸借対照表、損益計算書、販売費及び一般管理費内訳及び製造原価報告書の財務数値を入力をします。\n

    \n

    \n ※OCR解析で入力サポートすることもできます。\n

    \n\n
    \n
    \n
    推奨
    \n {isSubjectUploaded || isOcrUploaded ? (\n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n isOcrUploaded,\n // @ts-ignore\n parseResult(companyMedicalReport.ocr_upload_pages)[\n 'file_id'\n ],\n 1,\n ),\n )\n }\n className=\"mt-6 cursor-pointer outline-2 inline-flex items-center px-12 py-2.5 border text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 hover:text-white\"\n >\n 決算書情報を編集する\n
    \n ) : (\n <>\n \n getSubjectsInputForm(\n `/company_medical_reports/${companyMedicalReport.id}/subjects/new?phase=1`,\n )\n }\n className=\"mt-6 cursor-pointer inline-flex items-center px-12 py-2.5 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書情報を入力する\n
    \n \n )}\n
    \n
    \n\n {/*
    \n \n 任意\n
    \n \n handleFileUpload(e, 'subjects')}\n style={{ display: 'none' }}\n />\n 決算書をアップロードする\n
    \n \n downloadFile('subjects')}\n className=\"cursor-pointer text-blue-500 pt-1\"\n >\n 決算書テンプレートはこちら\n
    \n */}\n\n
    \n \n 任意\n
    \n \n handleFileUpload(e, 'valuation_plan')}\n style={{ display: 'none' }}\n />\n 事業計画をアップロードする\n
    \n \n downloadFile('valuation_plan')}\n className=\"cursor-pointer text-blue-500 pt-1\"\n >\n 事業計画テンプレートはこちら\n \n \n \n \n \n \n );\n};\n","import React, { useMemo } from 'react';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal'\nimport { useCompanyMedicalReports } from './hooks';\nimport { CompanyMedicalReportProps } from './types';\nconst VALUATIONS_COUNT = 4;\n\nexport const CompanyMedicalReportTableRow: React.FC<{\n company_medical_report: CompanyMedicalReportProps;\n}> = (props) => {\n const { company_medical_report } = props;\n const {\n showDeleteModal,\n showUpdatedTime,\n countValidResults,\n deleteReportId,\n modalCheck,\n setModalCheck\n } = useCompanyMedicalReports();\n\n const step1Color = useMemo(\n () =>\n company_medical_report.manual_file_id !== null ||\n company_medical_report.ocr_upload_pages !== null\n ? 'text-green-500'\n : 'text-gray-500',\n [\n company_medical_report.manual_file_id,\n company_medical_report.ocr_upload_pages,\n ],\n );\n const step2Color = useMemo(\n () =>\n company_medical_report.is_similar_industry_selected\n ? 'text-green-500'\n : 'text-gray-500',\n [company_medical_report.is_similar_industry_selected],\n );\n const step3Color = useMemo(\n () =>\n countValidResults(\n company_medical_report.company_medical_report_valuations,\n ) === VALUATIONS_COUNT\n ? 'text-green-500'\n : 'text-gray-500',\n [\n company_medical_report.company_medical_report_valuations,\n countValidResults,\n ],\n );\n const step4Color = useMemo(\n () =>\n (company_medical_report.manual_file_id !== null ||\n company_medical_report.ocr_upload_pages !== null) &&\n company_medical_report.is_similar_industry_selected &&\n countValidResults(\n company_medical_report.company_medical_report_valuations,\n ) === VALUATIONS_COUNT\n ? 'text-green-500'\n : 'text-gray-500',\n [\n company_medical_report.company_medical_report_valuations,\n company_medical_report.is_similar_industry_selected,\n company_medical_report.manual_file_id,\n company_medical_report.ocr_upload_pages,\n countValidResults,\n ],\n );\n const updatedTime = useMemo(\n () =>\n company_medical_report.updated_at !== null\n ? showUpdatedTime(company_medical_report.updated_at)\n : null,\n [company_medical_report.updated_at, showUpdatedTime],\n );\n\n return (\n \n \n \n {company_medical_report.evaluation_company_name}\n \n \n \n

    STEP1

    \n

    STEP2

    \n

    STEP3

    \n

    STEP4

    \n \n \n {updatedTime}\n \n \n
    \n \n Open options\n \n \n \n \n \n \n \n 会社を評価する\n \n \n 会社情報を編集する\n \n showDeleteModal(company_medical_report.id)}\n className=\"cursor-pointer text-gray-700 hover:text-red-700 block px-4 py-2 text-sm\"\n >\n 会社を削除する\n
    \n \n \n \n {deleteReportId !== 0 ? (\n \n ) : (\n <>\n )}\n \n );\n};\n","import React, { useCallback, useMemo } from 'react';\nimport { CompanyMedicalReportValuationResult } from './CompanyMedicalReportValuationResult';\nimport { CompanyMedicalReportValuationButton } from './CompanyMedicalReportValuationButton';\nimport DcfIcon from '../../../../../assets/images/icons/icon_dcf.png';\nimport EbitdaIcon from '../../../../../assets/images/icons/icon_ebitda.png';\nimport PerIcon from '../../../../../assets/images/icons/icon_per.png';\nimport InheritanceIcon from '../../../../../assets/images/icons/icon_souzoku.png';\n\nimport {\n CompanyMedicalReportValuationPartProps,\n CompanyMedicalReportvaluationProps,\n ValuationResult,\n} from './types';\nimport {\n DcfSchema,\n EbitdaSchema,\n InheritanceSchema,\n PerSchema,\n} from '../../../utils/schema';\n\nconst VALUATIONS = {\n dcf: {\n icon: DcfIcon,\n name: 'DCF法',\n schema: DcfSchema,\n },\n ebitda: {\n icon: EbitdaIcon,\n name: 'EV/EBITDA倍率法',\n schema: EbitdaSchema,\n },\n per: {\n icon: PerIcon,\n name: 'PER倍率法',\n schema: PerSchema,\n },\n inheritance: {\n icon: InheritanceIcon,\n name: '相続税法上の評価',\n schema: InheritanceSchema,\n },\n};\n\nexport const CompanyMedicalReportValuation: React.FC<\n CompanyMedicalReportValuationPartProps\n> = (props) => {\n const { valuation } = props;\n\n const parseValuationResult = useCallback(\n (valuationValue: CompanyMedicalReportvaluationProps): ValuationResult => {\n if (!valuationValue.result) return null;\n const valuationSchema = VALUATIONS[valuationValue.method_type]['schema'];\n if (!valuationSchema) return null;\n try {\n return valuationSchema.parse(JSON.parse(valuationValue.result));\n } catch (e) {\n console.debug('Schema Error', e);\n return null;\n }\n },\n [],\n );\n\n const validatedValuationResult = useMemo((): ValuationResult => {\n return parseValuationResult(valuation);\n }, [valuation, parseValuationResult]);\n\n const valuationConfig = useMemo(\n () => VALUATIONS[valuation.method_type],\n [valuation.method_type],\n );\n\n return (\n
    \n
    \n
    \n
    \n \n

    \n {valuationConfig.name}\n

    \n
    \n
    \n
    \n \n \n
    \n );\n};\n","import React, { useCallback, useMemo } from 'react';\nimport { transferLocation } from '../../../utils/common';\nimport { CompanyMedicalReportCalculationButtonProps } from './types';\n\nexport const CompanyMedicalReportValuationButton: React.FC<\n CompanyMedicalReportCalculationButtonProps\n> = (props) => {\n const {\n companyMedicalReport,\n valuation,\n valuationResult,\n isOcrUploaded,\n isSubjectUploaded,\n } = props;\n\n const handleClick = useCallback(\n (type: string) => {\n if (type !== 'calculate' && type !== 'confirm') return;\n const url =\n type === 'calculate'\n ? `/company_medical_reports/${companyMedicalReport.id}/valuations/${valuation.id}?method=${valuation.method_type}`\n : `/company_medical_reports/${companyMedicalReport.id}/valuation_results/${valuation.id}`;\n transferLocation(url);\n },\n [companyMedicalReport.id, valuation.id, valuation.method_type],\n );\n\n const zeroValuation = useMemo(() => {\n if (!valuationResult) return false;\n return (\n valuationResult &&\n parseFloat(String(valuationResult.result.valuation)) === 0\n );\n }, [valuationResult]);\n\n return (\n <>\n
    \n
    \n handleClick('calculate')}\n className=\"cursor-pointer inline-flex items-center px-4 py-1 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n {zeroValuation\n ? '再計算する'\n : isOcrUploaded || isSubjectUploaded\n ? '決算書から再計算'\n : '計算する'}\n
    \n
    \n \n
    \n
    \n {valuation.result ? (\n handleClick('confirm')}\n className=\"underline cursor-pointer inline-flex items-center px-12 py-2 text-sm leading-4 font-medium text-blue-600\"\n >\n 詳しく見る\n
    \n ) : (\n
    \n )}\n
    \n \n \n );\n};\n","import React from 'react';\nimport { Valuation } from '../../../components/Valuation/Valuation';\nimport { ValuationResult } from './types';\n\nexport const CompanyMedicalReportValuationResult = ({\n valuationResult,\n valuationName,\n}: {\n valuationResult: ValuationResult;\n valuationName: string;\n}) => {\n if (!valuationResult || !valuationResult.result)\n return (\n

    \n 未評価\n

    \n );\n const valuation = parseFloat(String(valuationResult.result.valuation));\n if (valuation === 0)\n return (\n
    \n 算定不可\n
    \n );\n return (\n \n );\n};\n","import React, { useCallback, useEffect, useMemo } from 'react';\nimport { useCompanyMedicalReportValuationStep } from './hooks';\nimport { CompanyMedicalReportValuation } from './CompanyMedicalReportValuation';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport {\n CompanyMedicalReportValuationsStepProps,\n CompanyMedicalReportvaluationProps,\n} from './types';\n\nexport const CompanyMedicalReportValuationsStep: React.FC<\n CompanyMedicalReportValuationsStepProps\n> = (props) => {\n const {\n companyMedicalReport,\n valuations,\n calculatedValuationsCount,\n allValuationsCalculated,\n batchValuationEnabled,\n } = props;\n const { reportGenPptxStepStyle, setReportGenPptxStep, postBatchValuation } =\n useCompanyMedicalReportValuationStep();\n const token = useMemo(\n () =>\n document\n ?.getElementById('batch_valuations')\n ?.parentElement?.getElementsByTagName('input')[0].value,\n [],\n );\n const handleBatchValuation = useCallback(() => {\n if (!batchValuationEnabled) return;\n postBatchValuation(token, companyMedicalReport.id);\n }, [\n batchValuationEnabled,\n postBatchValuation,\n token,\n companyMedicalReport.id,\n ]);\n\n useEffect(() => {\n if (!allValuationsCalculated) return;\n setReportGenPptxStep({\n checkedButton:\n 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center ring-8 ring-white',\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-green-300',\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    STEP3

    \n \n \n \n

    \n 所要時間 約1分\n

    \n
    \n
    \n

    株式価値の算定

    \n
    \n

    \n 会計・税務の視点からあなたの会社の価値を算定\n

    \n \n 一括算定を実行する\n
    \n
    \n
    \n
    \n {calculatedValuationsCount > 0 ? (\n valuations?.map(\n (valuation: CompanyMedicalReportvaluationProps, index) => (\n
    \n \n
    \n ),\n )\n ) : (\n <>\n )}\n
    \n
    \n
    \n
    \n \n );\n};\n","import React from 'react';\nimport { CompanyMedicalReportTableRow } from './CompanyMedicalReportTableRow';\nimport { ModalProvider } from 'react-modal-hook';\nimport { CompanyMedicalReportProps } from './types';\n\nexport const CompanyMedicalReports: React.FC<{\n company_medical_reports: CompanyMedicalReportProps[];\n}> = (props) => {\n const { company_medical_reports } = props;\n\n return (\n \n \n \n \n \n 対象会社名\n \n \n 進捗ステータス\n \n \n 最終更新日\n \n \n \n \n \n \n {company_medical_reports?.map(\n (company_medical_report: CompanyMedicalReportProps) => (\n \n ),\n )}\n \n
    \n
    \n );\n};\n","import axios from 'axios';\nimport type { GroupBase, OptionsOrGroups } from 'react-select';\nimport { sleep } from '../../../utils/common';\nimport {\n CompanyMedicalReportSelectOptions,\n OptionType,\n ProfileFormStateProps,\n SectionsProps,\n} from './types';\n\nexport const postBatchValuationRequest = (token: string, reportId: string) => {\n axios\n .post(\n `/company_medical_reports/${reportId}/batch_valuations`,\n {},\n {\n headers: {\n 'X-CSRF-Token': token,\n },\n },\n )\n .then((res) => {\n if (res.status === 200) {\n location.href = `/company_medical_reports/${reportId}`;\n }\n })\n .catch((err) => {\n console.log(err);\n });\n};\n\nexport const putProfileRequest = async (\n token: string,\n companyMedicalReportId: string,\n formData: ProfileFormStateProps,\n sections: SectionsProps[],\n selectReports: string[],\n) => {\n try {\n const response = await axios({\n method: 'put',\n url: `/company_medical_reports/${companyMedicalReportId}/profile`,\n data: {\n company_medical_report_profile_form: {\n evaluation_company_name: formData.evaluationCompanyName,\n evaluation_company_location: formData.evaluationCompanyLocation,\n evaluation_company_created_date:\n formData.evaluationCompanyCreatedDate,\n evaluation_company_president: formData.evaluationCompanyPresident,\n evaluation_company_shares_count:\n formData.evaluationCompanySharesCount,\n evaluation_company_employees: formData.evaluationCompanyEmployees,\n evaluation_company_business: formData.evaluationCompanyBusiness,\n maker_company_name: formData.makerCompanyName,\n maker_company_author: formData.makerCompanyAuthor,\n maker_company_email: formData.makerCompanyEmail,\n maker_company_location: formData.makerCompanyLocation,\n maker_company_phone_number: formData.makerCompanyPhoneNumber,\n report_creation_date: formData.reportCreationDate,\n report_submission_date: formData.reportSubmissionDate,\n section_index_0: sections[0],\n section_index_1: sections[1],\n section_index_2: sections[2],\n selected_reports: selectReports,\n },\n },\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': token,\n },\n });\n\n if (response.data.status === 200) {\n return 'success';\n } else {\n return 'failed';\n }\n } catch (error) {\n console.error(error);\n return error;\n }\n};\n\nexport const loadOptions = async (\n search: string,\n prevOptions: OptionsOrGroups>,\n) => {\n const currentPage = Math.floor(prevOptions.length / 10) + 1;\n await sleep(1000);\n try {\n const response = await axios.get('/company_medical_reports/index_json', {\n params: {\n page: currentPage,\n q: { evaluation_company_name_cont: search },\n },\n });\n const { data } = response;\n const reportOptions: OptionType[] = data.company_medical_reports.map(\n (item: CompanyMedicalReportSelectOptions) => ({\n value: item.id,\n evaluation_company_name: `${item.evaluation_company_name}`,\n report_year: item.report_year,\n dcf: item.dcf?.result?.valuation,\n per: item.per?.result?.valuation,\n ebitda: item.ebitda?.result?.valuation,\n inheritance: item.inheritance?.result?.valuation,\n }),\n );\n const hasMore = data.company_medical_reports.length === 10;\n return {\n options: reportOptions,\n hasMore,\n };\n } catch (error) {\n console.error('API request error:', error);\n return {\n options: [],\n hasMore: false,\n };\n }\n};\n","import { useCallback, useRef, useState } from 'react';\nimport toast from 'react-hot-toast';\nimport axios from 'axios';\nimport { postBatchValuationRequest, putProfileRequest } from './api';\nimport {\n CompanyMedicalReportProfileFormProps,\n CompanyMedicalReportProps,\n CompanyMedicalReportSelectOptions,\n CompanyMedicalReportvaluationProps,\n ProfileFormStateProps,\n SectionsProps,\n} from './types';\n\nexport const notify = (status: string, message: string) => {\n if (status === 'success') {\n toast(message, {\n style: {\n backgroundColor: '#ffffff',\n padding: '12px',\n borderRadius: '5px',\n },\n icon: '✅',\n });\n } else {\n toast(message, {\n style: {\n backgroundColor: '#ffffff',\n padding: '12px',\n borderRadius: '10px',\n },\n icon: '❌',\n });\n }\n};\n\nexport const useCompanyMedicalReports = () => {\n const [deleteReportId, setDeleteReportId] = useState(0);\n const [modalCheck, setModalCheck] = useState(false);\n\n /**\n * 削除確認モーダルを設定\n * @params report_id {number}\n * @return void\n **/\n const showDeleteModal = useCallback(\n (report_id: number): void => {\n setDeleteReportId(report_id);\n setModalCheck(!modalCheck);\n },\n [modalCheck, setDeleteReportId],\n );\n\n /**\n * レポート更新日を設定\n * @params update_time {string}\n * @return レポート更新日 {string}\n **/\n const showUpdatedTime = useCallback((update_time: string): string => {\n const reportUpdatedDate: Date = new Date(update_time);\n const reportUpdatedYear: number = reportUpdatedDate.getFullYear();\n const reportUpdatedMonth: number = reportUpdatedDate.getMonth() + 1;\n const reportUpdatedDay: number = reportUpdatedDate.getDate();\n return `${reportUpdatedYear}年${reportUpdatedMonth}月${reportUpdatedDay}日`;\n }, []);\n\n /**\n * レポート作成日を設定\n * @params update_time {string}\n * @return レポート作成日 {string}\n **/\n const showFinancialDate = useCallback((update_time: string): string => {\n const reportUpdatedDate: Date = new Date(update_time);\n const reportUpdatedYear: number = reportUpdatedDate.getFullYear();\n const reportUpdatedMonth: number = reportUpdatedDate.getMonth() + 1;\n return `${reportUpdatedYear}年${reportUpdatedMonth}月期`;\n }, []);\n\n /**\n * resultがnullでない数をカウント\n * @params company_medical_report_valuations {CompanyMedicalReportvaluationProps[]}\n * @return resultがnullでない数 {number}\n **/\n const countValidResults = useCallback(\n (\n company_medical_report_valuations: CompanyMedicalReportvaluationProps[],\n ): number => {\n return company_medical_report_valuations.reduce((count, valuation) => {\n if (valuation.result !== null) {\n return count + 1;\n }\n return count;\n }, 0);\n },\n [],\n );\n\n return {\n deleteReportId,\n modalCheck,\n setDeleteReportId,\n setModalCheck,\n showDeleteModal,\n showUpdatedTime,\n showFinancialDate,\n countValidResults,\n };\n};\n\nexport const useCompanyMedicalReportDetails = () => {\n const [modalMessage, setModalMessage] = useState('');\n const [modalCheck, setModalCheck] = useState(false);\n return {\n modalMessage,\n modalCheck,\n setModalMessage,\n setModalCheck,\n };\n};\n\nexport const useCompanyMedicalReportSubjectsStep = (\n // @ts-ignore\n report: valuationReportProps,\n) => {\n const parseResult = useCallback((pages) => {\n return pages ? JSON.parse(pages) : '';\n }, []);\n const checkSubjectsInputFormType = useCallback(\n (is_ocr: boolean, file_id: number, phase: number) => {\n return is_ocr\n ? `/company_medical_reports/${report.id}/ocr/file_results/${file_id}/edit?phase=${phase}`\n : `/company_medical_reports/${report.id}/subjects/edit?phase=${phase}`;\n },\n [report.id],\n );\n const getSubjectsInputForm = useCallback((subject_input_url) => {\n location.href = subject_input_url;\n }, []);\n const downloadFile = useCallback(\n async (file_name: 'valuation_plan' | 'subjects') => {\n const response = await axios.get(\n `/files/download?filename=${file_name}.xlsx&filetype=application/vnd.ms-excel`,\n { responseType: 'blob' },\n );\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', `${file_name}.xlsx`);\n document.body.appendChild(link);\n link.click();\n },\n [],\n );\n const uploadBusinessPlan = useCallback(\n async (file, company_medical_report_id) => {\n const csrfToken = document?.querySelector?.(\n 'meta[name=\"csrf-token\"]',\n // @ts-ignore\n )?.content;\n const formData = new FormData();\n formData.append('file', file);\n axios\n .post(\n `/business_plans?company_medical_report_id=${company_medical_report_id}`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n 'X-CSRF-Token': csrfToken,\n },\n },\n )\n .then((response) => {\n console.debug(response);\n notify(response.data.status, response.data.message);\n })\n .catch((error) => {\n console.error(error);\n notify(error.data.status, error.data.message);\n });\n },\n [],\n );\n const uploadSubjects = useCallback(\n async (file, company_medical_report_id) => {\n const csrfToken = document?.querySelector?.(\n 'meta[name=\"csrf-token\"]',\n // @ts-ignore\n )?.content;\n const formData = new FormData();\n formData.append('file', file);\n formData.append('file_type', 'template');\n axios\n .post(\n `/company_medical_reports/${company_medical_report_id}/subjects/upload_subjects`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n 'X-CSRF-Token': csrfToken,\n },\n },\n )\n .then((response) => {\n console.debug(response);\n notify(response.data.status, response.data.message);\n })\n .catch((error) => {\n console.error(error);\n notify(error.data.status, error.data.message);\n });\n },\n [],\n );\n return {\n parseResult,\n checkSubjectsInputFormType,\n getSubjectsInputForm,\n downloadFile,\n uploadBusinessPlan,\n uploadSubjects,\n };\n};\n\nexport const useCompanyMedicalReportIndustriesStep = (\n // @ts-ignore\n report: valuationReportProps,\n) => {\n const [reportSimilaritiesStepStyle, setReportSimilaritiesStepStyle] =\n useState({\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-200',\n checkedButton:\n 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center',\n actionButton:\n 'inline-flex items-center px-14 py-2 text-sm font-medium rounded text-white bg-green-500 hover:bg-green-600 cursor-pointer',\n });\n const getSimilaritiesForm = useCallback(() => {\n location.href = `/company_medical_reports/${report.id}/industries`;\n }, [report.id]);\n return {\n reportSimilaritiesStepStyle,\n setReportSimilaritiesStepStyle,\n getSimilaritiesForm,\n };\n};\n\nexport const useCompanyMedicalReportValuationStep = () => {\n const [reportGenPptxStepStyle, setReportGenPptxStep] = useState({\n checkedButton:\n 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center ring-8 ring-white',\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-200',\n });\n const postBatchValuation = useCallback((token, reportId) => {\n postBatchValuationRequest(token, reportId);\n }, []);\n return {\n reportGenPptxStepStyle,\n setReportGenPptxStep,\n postBatchValuation,\n };\n};\n\nexport const useCompanyMedicalReportPptxStep = (\n report: CompanyMedicalReportProps,\n) => {\n const [reportGenPptxStepStyle, setReportGenPptxStep] = useState({\n checkButton:\n 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center ring-8 ring-white',\n step: 'text-lg text-gray-400 font-semibold',\n name: 'pt-1.5 text-xl text-gray-400 font-bold',\n reportButton:\n 'pointer-events-none inline-flex items-center px-14 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500',\n });\n const getReportPptxForm = useCallback(() => {\n location.href = `/company_medical_reports/${report.id}/profile/edit`;\n }, [report.id]);\n return {\n reportGenPptxStepStyle,\n setReportGenPptxStep,\n getReportPptxForm,\n };\n};\n\nexport const useCompanyMedicalReportDownloadButton = () => {\n const [downloadPptxApi, setDownloadPptxApi] = useState('');\n const [pptxResults, setPptxResults] = useState('');\n const [getReportApi, setGetReportApi] = useState('');\n const [modalIsOpen, setIsOpen] = useState(false);\n const [pptxMessage, setPptxMessage] =\n useState('決算書チェッカーのダウンロード開始');\n const postResultRef = useRef('');\n postResultRef.current = pptxResults;\n\n const showProgressBar = useCallback((): void => {\n let progress = 0;\n const invervalSpeed = 10;\n const incrementSpeed = 0.3;\n const bar = document.getElementById('bar');\n const progressInterval = setInterval((): void => {\n progress += incrementSpeed;\n // @ts-ignore\n bar.style.width = progress + '%';\n if (progress >= 100) {\n clearInterval(progressInterval);\n }\n }, invervalSpeed);\n }, []);\n\n const donwloadReport = useCallback((reportId: number, token: string) => {\n setIsOpen(true);\n axios\n .post(`/company_medical_reports/${reportId}/pptx`, '', {\n headers: {\n 'X-CSRF-Token': token,\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n showProgressBar();\n setPptxMessage('決算書チェッカーダウンロード中');\n setPptxResults(res.data);\n setDownloadPptxApi(res.data.download_path);\n } else {\n console.log(res);\n }\n })\n .catch((err) => {\n console.log(err);\n }),\n [];\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const addReportDownloadListener = () => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data.name === 'submitSource') {\n // @ts-ignore\n event.source.postMessage(\n { name: 'download_pptx', value: postResultRef.current },\n // @ts-ignore\n '*',\n );\n } else if (event.data.name === 'done') {\n setIsOpen(false);\n } else if (event.data.name === 'failed') {\n setIsOpen(true);\n setPptxMessage(\n '決算書チェッカーのダウンロード中にエラーが発生しました。',\n );\n }\n },\n false,\n );\n };\n\n return {\n downloadPptxApi,\n setDownloadPptxApi,\n getReportApi,\n modalIsOpen,\n pptxMessage,\n setIsOpen,\n setPptxMessage,\n setGetReportApi,\n showProgressBar,\n donwloadReport,\n addReportDownloadListener,\n pptxResults,\n setPptxResults,\n };\n};\n\nexport const CompanyMedicalReportProfileHooks = (\n company_medical_report_profile_form: CompanyMedicalReportProfileFormProps,\n token: string,\n) => {\n const [formState, setFormState] = useState({\n evaluationCompanyName:\n company_medical_report_profile_form.evaluation_company_name,\n evaluationCompanyLocation:\n company_medical_report_profile_form.evaluation_company_location,\n evaluationCompanyEmployees:\n company_medical_report_profile_form.evaluation_company_employees,\n evaluationCompanyCreatedDate:\n company_medical_report_profile_form.evaluation_company_created_date,\n evaluationCompanyPresident:\n company_medical_report_profile_form.evaluation_company_president,\n evaluationCompanySharesCount:\n company_medical_report_profile_form.evaluation_company_shares_count,\n evaluationCompanyBusiness:\n company_medical_report_profile_form.evaluation_company_business,\n makerCompanyName: company_medical_report_profile_form.maker_company_name,\n makerCompanyAuthor:\n company_medical_report_profile_form.maker_company_author,\n makerCompanyEmail: company_medical_report_profile_form.maker_company_email,\n makerCompanyLocation:\n company_medical_report_profile_form.maker_company_location,\n makerCompanyPhoneNumber:\n company_medical_report_profile_form.maker_company_phone_number,\n reportCreationDate:\n company_medical_report_profile_form.report_creation_date,\n reportSubmissionDate:\n company_medical_report_profile_form.report_submission_date,\n });\n\n const [selectedValues, setSelectedValues] = useState<\n CompanyMedicalReportSelectOptions[]\n >(company_medical_report_profile_form.selected_reports);\n\n const [sections, setSections] = useState([\n {\n category: '',\n section_name: '',\n message: '',\n content: '',\n chat_history: [],\n section_index: 0,\n trials: 0,\n loading: false,\n format: 'bullet',\n },\n {\n category: '',\n section_name: '',\n message: '',\n content: '',\n chat_history: [],\n section_index: 1,\n trials: 0,\n loading: false,\n format: 'bullet',\n },\n {\n category: '',\n section_name: '',\n message: '',\n content: '',\n chat_history: [],\n section_index: 2,\n trials: 0,\n loading: false,\n format: 'bullet',\n },\n ]);\n\n const handleSelectValuesChange = useCallback(\n (index: number, value: CompanyMedicalReportSelectOptions[]) => {\n const newValues = [...selectedValues];\n // @ts-ignore\n newValues[index] = value;\n setSelectedValues(newValues);\n },\n [selectedValues],\n );\n\n const handleAddNewSelector = useCallback(() => {\n // @ts-ignore\n setSelectedValues((prevValues) => [...prevValues, []]);\n }, []);\n\n const updateFormState = useCallback((key: string, value: string | number) => {\n setFormState((prevState) => ({\n ...prevState,\n [key]: value,\n }));\n }, []);\n\n const updateProfile = useCallback(async () => {\n try {\n const response = await putProfileRequest(\n token,\n // @ts-ignore\n company_medical_report_profile_form.company_medical_report.id,\n formState,\n sections,\n selectedValues,\n );\n\n if (response === 'success') {\n notify('success', '保存に成功しました。');\n } else {\n notify('failed', '保存に失敗しました。');\n }\n } catch (error) {\n console.error(error);\n }\n }, [\n company_medical_report_profile_form.company_medical_report.id,\n formState,\n sections,\n selectedValues,\n token,\n ]);\n\n return {\n sections,\n formState,\n selectedValues,\n handleSelectValuesChange,\n setSelectedValues,\n handleAddNewSelector,\n updateFormState,\n updateProfile,\n setFormState,\n setSections,\n };\n};\n","import React, { useEffect } from 'react';\nimport axios from 'axios';\nimport { IndustriesFormProps } from './types';\n\nexport const IndustriesForm: React.FC = (props) => {\n const { reportId } = props;\n const token = document\n ?.getElementById('similarities_form')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitMaForm') {\n axios\n .put(\n `/company_medical_reports/${reportId}/industries`,\n {\n similar_type: 'industries',\n result: event.data,\n },\n {\n headers: {\n 'X-CSRF-Token': token,\n },\n },\n )\n .then((res) => {\n if (res.data.status === 'success') {\n console.debug(res);\n location.href = `/company_medical_reports/${reportId}`;\n } else {\n console.debug(res);\n }\n })\n .catch((err) => {\n console.debug(err);\n });\n } else if (\n event.data &&\n event.data.name === 'cancelMaForm' &&\n event.data.value === 'canceled'\n ) {\n location.href = `/company_medical_reports/${reportId}`;\n }\n },\n false,\n );\n }, [reportId, token]);\n return <>;\n};\n","import React, { useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useOcrResults } from './hooks';\nimport { OcrResultRow } from './OcrResultRow';\nimport { BsContainer } from '../../../components/Subject/bs/BsContainer';\nimport { PlContainer } from '../../../components/Subject/pl/PlContainer';\nimport { SgaContainer } from '../../../components/Subject/sga/SgaContainer';\nimport { OcrResultProp } from './types';\n\nexport const OcrResult: React.FC = (props) => {\n const { reportId, fileId, pageIds, phase } = props;\n const token = document\n ?.getElementById('ocr_result_form')\n ?.getElementsByTagName('input')[0].value;\n\n const { handleSubmit, getValues, setValue, control } = useForm({\n defaultValues: {\n subject: '',\n },\n criteriaMode: 'all',\n shouldFocusError: true,\n });\n const {\n subject,\n visibleFlg,\n loadingMessage,\n setTimerId,\n getStatus,\n onSubmit,\n } = useOcrResults({\n reportId,\n fileId,\n setValue,\n pageIds,\n getValues,\n // @ts-ignore\n token,\n });\n useEffect(() => {\n setTimerId(setInterval(getStatus, 3000));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n
    \n
    \n

    \n 解析元決算書ファイル\n

    \n {pageIds.map((value: string) => (\n \n ))}\n
    \n
    \n {\n // @ts-ignore\n 0 < subject?.length ? (\n
    \n
    \n {visibleFlg ? (\n <>\n
    \n
    \n

    \n PDFデータから自動で取り込む\n

    \n
    \n
    \n \n 算定に反映する\n \n
    \n
    \n

    \n データ取り込みが完了しました。取り込みデータを編集することができます。\n

    \n \n ) : (\n <>\n )}\n
    \n
    \n \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n ) : (\n
    \n

    \n {loadingMessage}\n

    \n

    \n ※\n 枚数が多い場合、時間がかかる可能性がございます。ご了承ください。\n

    \n

    \n
    \n )\n }\n
    \n
    \n \n );\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport axios from 'axios';\nimport { OcrResultRowProp } from './types';\n\nexport const OcrResultRow: React.FC = (props) => {\n const { reportId, pageId } = props;\n const [image, setImage] = useState('');\n // @ts-ignore\n const [timerId] = useState(0);\n const refTimerId = useRef(timerId);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n\n const setPdf = useCallback(() => {\n axios\n .get(`/company_medical_reports/${reportId}/ocr/file_pdfs/${pageId}`)\n .then((res) => {\n setImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [pageId, reportId]);\n\n useEffect(() => {\n // @ts-ignore\n setPdf();\n }, [setPdf]);\n\n return (\n
    \n
    \n \n
    \n
    \n );\n};\n","import { Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport axios, { AxiosError, AxiosResponse } from 'axios';\nimport { OcrPageProps, getPdfProps, ocrRequestProps } from './types';\nimport { Subjects } from '../../../components/Subject/types';\n\nexport const getPdf = (props: getPdfProps) => {\n const { reportId, pageId, setImage } = props;\n axios\n .get(`/company_medical_reports/${reportId}/ocr/file_pdfs/${pageId}`)\n .then((res) => {\n setImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n};\n\nexport const postFileSummary: (\n options: ocrRequestProps,\n path: string,\n) => Promise = (options, path) => {\n return axios(options)\n .then((res) => {\n if (res.data.status === 201) {\n location.href = path;\n }\n })\n .catch((err) => {\n console.log(err);\n });\n};\n\nexport const getFileSummary: (\n options: ocrRequestProps,\n _setValue: (arg: string, arg_second: Subjects) => void,\n _setSubject: (arg: Subjects[]) => void,\n _visibleDownloadButton: () => void,\n) => Promise = (\n options,\n _setValue,\n _setSubject,\n _visibleDownloadButton,\n) => {\n return axios(options)\n .then((res) => {\n if (res.status === 200) {\n _setValue('subject', res.data.subjects);\n _setSubject([res.data.subjects]);\n _visibleDownloadButton();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\nexport const getFileStatus: (\n options: ocrRequestProps,\n path: string,\n _callbackProps: {\n _pageIds: string[];\n _refTimerId: MutableRefObject;\n _getSummary: () => void;\n _setloadingMessage: Dispatch>;\n startTime: number;\n },\n) => Promise = (\n options,\n path,\n _callbackProps,\n) => {\n const { _pageIds, _refTimerId, _getSummary, _setloadingMessage, startTime } =\n _callbackProps;\n return axios(options)\n .then((res: AxiosResponse) => {\n if (res.status === 200) {\n if ((Date.now() - startTime) / 1000 > 120) {\n clearInterval(_refTimerId.current as number);\n _setloadingMessage('画像解析中にエラーが発生しました。');\n location.href = path;\n }\n const analyzedFile: OcrPageProps[] = res?.data.pages.filter(\n (page: OcrPageProps) =>\n page.status === 'success' || page.status === 'failed',\n );\n if (analyzedFile.length === _pageIds.length) {\n _getSummary();\n clearInterval(_refTimerId.current as number);\n }\n }\n })\n .catch((err: AxiosError) => {\n console.log(err);\n });\n };\n","import { useCallback, useRef, useState } from 'react';\nimport { getFileStatus, getFileSummary, getPdf, postFileSummary } from './api';\nimport {\n ocrRequestProps,\n requestDataProps,\n useOcrResultRowsProps,\n useOcrResultsProps,\n} from './types';\n\nexport const useOcrResults = (props: useOcrResultsProps) => {\n const { reportId, fileId, setValue, pageIds, getValues, token } = props;\n const startTime = Date.now();\n const [loadingMessage, setloadingMessage] =\n useState('画像を解析します');\n const [subject, setSubject] = useState([] as unknown);\n const [visibleFlg, setVisibleFlg] = useState(false);\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n refTimerId.current = timerId;\n\n const visibleDownloadButton = useCallback((): void => {\n const proressDoms: HTMLCollectionOf =\n document.getElementsByClassName('analyze_progress');\n const vFlg = !Array.from(proressDoms).some(\n (proressDom) => proressDom.textContent === 'ただいま解析中...',\n );\n if (vFlg) {\n setVisibleFlg(vFlg);\n }\n }, []);\n\n const getSummary = useCallback(async (): Promise => {\n const requestConfig: ocrRequestProps = {\n method: 'get',\n url: `/company_medical_reports/${reportId}/ocr/file_summaries/${fileId}/edit`,\n };\n await getFileSummary(\n requestConfig,\n // @ts-ignore\n setValue,\n setSubject,\n visibleDownloadButton,\n );\n }, [fileId, reportId, setValue, visibleDownloadButton]);\n\n const getStatus = useCallback(async (): Promise => {\n const requestConfig: ocrRequestProps = {\n method: 'get',\n url: `/company_medical_reports/${reportId}/ocr/file_statuses/${fileId}`,\n };\n await getFileStatus(requestConfig, `/company_medical_reports/${reportId}`, {\n _pageIds: pageIds,\n _refTimerId: refTimerId,\n _getSummary: getSummary,\n _setloadingMessage: setloadingMessage,\n startTime: startTime,\n });\n }, [fileId, getSummary, pageIds, reportId, startTime]);\n\n const updateFileSummary = useCallback((): void => {\n // @ts-ignore\n const requestData: requestDataProps = { subject: getValues('subject') };\n const requestConfig: ocrRequestProps = {\n method: 'put',\n data: requestData,\n url: `/company_medical_reports/${reportId}/ocr/file_summaries/${fileId}`,\n headers: {\n // @ts-ignore\n 'X-CSRF-Token': token,\n },\n };\n postFileSummary(requestConfig, `/company_medical_reports/${reportId}`);\n }, [fileId, getValues, reportId, token]);\n\n const onSubmit = (): void => {\n updateFileSummary();\n };\n\n return {\n refTimerId,\n subject,\n visibleFlg,\n startTime,\n loadingMessage,\n setTimerId,\n setloadingMessage,\n setVisibleFlg,\n setSubject,\n visibleDownloadButton,\n getSummary,\n getStatus,\n updateFileSummary,\n onSubmit,\n };\n};\n\nexport const useOcrResultRows = (props: useOcrResultRowsProps) => {\n const { reportId, pageId } = props;\n const [image, setImage] = useState('');\n const getPdfRequest = useCallback(() => {\n return getPdf({ reportId, pageId, setImage });\n }, [setImage, pageId, reportId]);\n return {\n image,\n setImage,\n getPdfRequest,\n };\n};\n","import React, { useEffect } from 'react';\nimport Modal from 'react-modal';\nimport { ModalProvider } from 'react-modal-hook';\nimport { useFormulaForm } from '../../reports/formula/hooks';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { FormulaWaccSelector } from '../../reports/formula/FormulaWaccSelector';\nimport { FormulaFormProps } from '../../reports/formula/types';\n\nexport const ValuationForm: React.FC = (props) => {\n const {\n userRole,\n resourceName,\n reportId,\n calculationId,\n industries,\n similarIndustry,\n similaritiesCompanies,\n } = props;\n\n const {\n responseValidatesMessages,\n modalCheck,\n postValuation,\n switchResourceValue,\n } = useFormulaForm(industries, similaritiesCompanies, similarIndustry);\n const token = document\n ?.getElementById('report_valuation_form')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n\n useEffect(() => {\n Modal.setAppElement('#formula_form');\n window.addEventListener(\n 'message',\n (event) =>\n postValuation(\n event,\n resourceName,\n `/company_medical_reports/${reportId}/valuations?id=${calculationId}&method=${resourceName}`,\n `/company_medical_reports/${reportId}/valuation_results/${calculationId}`,\n token,\n ),\n false,\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {similarIndustry ? (\n
    \n
    \n
    \n
    \n
    \n

    類似業種

    \n
    \n
    \n
    \n
    \n
    \n
    \n {similarIndustry?.name}\n
    \n
    \n
    \n
    \n {switchResourceValue(resourceName)?.name}\n
    \n
    \n {switchResourceValue(resourceName)?.value}\n
    \n
    \n {resourceName === 'dcf' ? (\n
    \n
    \n Unleverdβ 平均値\n
    \n
    \n {similarIndustry?.unlevered_beta}\n
    \n
    \n ) : (\n <>\n )}\n
    \n
    \n ) : (\n <>\n )}\n {resourceName === 'dcf' ? (\n \n ) : (\n <>\n )}\n \n
    \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport axios from 'axios';\nimport ReactPaginate from 'react-paginate';\nimport { useForm } from 'react-hook-form';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faExternalLinkAlt } from '@fortawesome/free-solid-svg-icons';\nimport { getAreas, getIndustries } from './data/use-filter';\nimport './pagination.scss';\n\ntype CrawlingResultProp = {\n listId: string;\n resourceName: string;\n};\n\ntype selectData = {\n area_id: string;\n industry_id: string;\n};\n\nconst CrawlingResult: React.FC = (\n props: CrawlingResultProp,\n) => {\n const [progress, setProgress] = useState('ただいまリスト準備中...');\n const [companies, setCompanies] = useState([]);\n const [currentCompanies, setCurrentCompanies] = useState(null);\n const [pageCount, setPageCount] = useState(0);\n const [itemOffset, setItemOffset] = useState(0);\n const { register, handleSubmit } = useForm();\n const industryResponse = getIndustries(props.listId, props.resourceName);\n const areaResponse = getAreas(props.listId, props.resourceName);\n const perPage = 25;\n\n // ページネーション作成\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const setPagination = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-shadow\n (companies) => {\n const endOffset = itemOffset + perPage;\n setCurrentCompanies(companies.slice(itemOffset, endOffset));\n setPageCount(Math.ceil(companies.length / perPage));\n },\n [itemOffset],\n );\n\n // 解析結果取得\n const getCompanies = useCallback(\n (params) => {\n axios\n .get(`/crawl/${props.resourceName}/${props.listId}/result`, {\n params: params,\n })\n .then((res) => {\n if (res.data.status == 'success') {\n setProgress('リストが完成しました。');\n setCompanies(res.data.body);\n setPagination(res.data.body);\n } else if (res.data.status == 'failed') {\n setProgress('条件に一致する企業は見つかりませんでした。');\n }\n })\n .catch((err) => {\n setProgress('条件に一致する企業は見つかりませんでした。');\n console.log(err);\n });\n },\n [props.listId, props.resourceName, setPagination],\n );\n\n useEffect(() => {\n getCompanies({ area_id: '', industry_id: '' });\n }, [getCompanies]);\n\n useEffect(() => {\n const endOffset = itemOffset + perPage;\n // @ts-ignore\n setCurrentCompanies(companies.slice(itemOffset, endOffset));\n setPageCount(Math.ceil(companies.length / perPage));\n }, [itemOffset, perPage, companies]);\n\n /**\n * ページ遷移\n */\n const handlePageClick = useCallback(\n (event) => {\n const newOffset = (event.selected * perPage) % companies.length;\n setItemOffset(newOffset);\n },\n [companies.length],\n );\n\n /**\n * 円形式に変換\n */\n const setJpCurrency = useCallback((sales: number) => {\n const jpSales = String(sales);\n const jpSalesLength = jpSales.length;\n const digits = ['', '万', '億', '兆'];\n let result = '';\n const results = [];\n for (let i = 0; i < Math.ceil(jpSalesLength / 4); i++) {\n results[i] = Number(\n jpSales.substring(jpSalesLength - i * 4, jpSalesLength - (i + 1) * 4),\n );\n if (results[i] != 0)\n result =\n String(results[i]).replace(/(\\d)(?=(\\d\\d\\d)+$)/g, '$1,') +\n digits[i] +\n result;\n }\n return result + '円';\n }, []);\n\n return (\n
    \n
    \n

    絞り込み検索

    \n
    \n
    \n \n \n \n {/* @ts-ignore */}\n {areaResponse.data?.body.area.map((value) => (\n \n ))}\n \n \n \n {/* @ts-ignore */}\n {industryResponse.data?.body.industries.map((value) => (\n \n ))}\n \n \n \n
    \n
    \n {/* @ts-ignore */}\n \"\n onPageChange={handlePageClick}\n pageRangeDisplayed={5}\n marginPagesDisplayed={2}\n pageCount={pageCount}\n previousLabel=\"<\"\n // @ts-ignore\n renderOnZeroPageCount={null}\n containerClassName=\"pagination\"\n pageClassName=\"page-item rounded-md\"\n pageLinkClassName=\"page-link rounded-md cursor-pointer\"\n activeClassName=\"active-page-item rounded-md\"\n activeLinkClassName=\"active rounded-md\"\n previousLinkClassName=\"page-item rounded-md\"\n nextLinkClassName=\"page-item rounded-md\"\n disabledClassName=\"disabled-button\"\n />\n
    \n
    \n {/* @ts-ignore */}\n {currentCompanies && currentCompanies.length > 0 ? (\n // @ts-ignore\n currentCompanies.map((company, _index) => (\n \n
    \n
    \n {company.prefecture ? (\n \n {company.prefecture}\n \n ) : (\n ''\n )}\n {company.ticker ? (\n \n ) : (\n ''\n )}\n {company.url ? (\n
    \n \n \n {/* @ts-ignore */}\n \n \n 会社サイト\n \n
    \n ) : (\n ''\n )}\n
    \n

    \n {company.name}\n

    \n
    \n {company.net_sales ? (\n

    \n 売上高: {setJpCurrency(company.net_sales)}\n

    \n ) : (\n

    売上高: -

    \n )}\n {company.net_assets ? (\n

    \n 資本金: {setJpCurrency(company.net_assets)}\n

    \n ) : (\n

    資本金: -

    \n )}\n
    \n
    \n {/* @ts-ignore eslint-disable-next-line @typescript-eslint/no-shadow */}\n {company.words.slice(0, 10).map((word, __index) => (\n \n {word}\n \n ))}\n
    \n
    \n
    \n ))\n ) : (\n
    {progress}
    \n )}\n
    \n \n );\n};\n\nexport default CrawlingResult;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport Loader from 'react-loader-spinner';\nimport axios from 'axios';\nimport CrawlingResult from './CrawlingResult';\n\ninterface CrawlProp {\n listId: string;\n resourceName: string;\n}\n\nconst Result: React.FC = (props: CrawlProp) => {\n const [progressMessage, setProgressMessage] =\n useState('ただいま取得中・・・');\n const [crawlingStatus, setCrawlingStatus] = useState(true);\n const [crawlingCount, setCrawlingCount] = useState(0);\n const countUp = useRef(crawlingCount);\n\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n\n useEffect(() => {\n countUp.current = crawlingCount;\n }, [crawlingCount]);\n\n const checkStatus = useCallback(() => {\n axios\n .get(`/crawl/${props.resourceName}/${props.listId}/status`)\n .then((res) => {\n if (res.data.status === 'success') {\n switch (res.data.body.status) {\n case 'active':\n setProgressMessage(res.data.body.message);\n setCrawlingCount(countUp.current + 1);\n setCrawlingStatus(true);\n clearInterval(refTimerId.current as number);\n break;\n case 'success':\n case 'failed':\n setProgressMessage(res.data.body.message);\n setCrawlingStatus(false);\n clearInterval(refTimerId.current as number);\n break;\n }\n } else if (res.data.status === 'failed') {\n setInterval(\n (location.href = `/crawl/${props.resourceName}/new`),\n 2000,\n );\n }\n })\n .catch((err) => {\n console.log(err);\n setProgressMessage('解析でエラーが発生しました。');\n clearInterval(refTimerId.current as number);\n setInterval((location.href = `/crawl/${props.resourceName}/new`), 2000);\n });\n }, [props.listId, props.resourceName]);\n\n useEffect(() => {\n if (crawlingStatus) {\n setTimerId(setInterval(checkStatus, 3000));\n }\n }, [checkStatus, crawlingCount, crawlingStatus]);\n\n return (\n
    \n {crawlingStatus === false ? (\n \n ) : (\n <>\n
    \n {/* @ts-ignore */}\n \n
    \n

    \n {progressMessage}\n

    \n \n )}\n
    \n );\n};\n\nexport default Result;\n","import useSWR from 'swr';\nimport axios from 'axios';\n\nconst fetcher = (url) => axios.get(url).then((res) => res.data);\n\nfunction getIndustries(list_id, resource) {\n // TODO: Hooksの使い方を間違えています\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { data, error } = useSWR(\n `/crawl/${resource}/${list_id}/industries`,\n fetcher,\n );\n const loading = !data && !error;\n return {\n loading,\n error,\n data,\n };\n}\n\nfunction getAreas(list_id, resource) {\n // TODO: Hooksの使い方を間違えています\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { data, error } = useSWR(\n `/crawl/${resource}/${list_id}/areas`,\n fetcher,\n );\n const loading = !data && !error;\n return {\n loading,\n error,\n data,\n };\n}\n\nexport { getIndustries, getAreas };\n","// extracted by mini-css-extract-plugin","import ReactDOM from 'react-dom';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport ResultRow from './result_row';\nimport './result_row.scss';\n\ninterface AnalyzeResultProp {\n fileId: string;\n resourceName: string;\n pageIds: Array;\n pngSrcs: Array;\n}\n\nconst AnalyzeResult: React.FC = (\n props: AnalyzeResultProp,\n) => {\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n const [visibleFlg, setVisibleFlg] = useState(false);\n\n // 解析が終わったらダウンロードボタンを表示\n const visibleDownloadButton = useCallback(() => {\n const prog = document.getElementsByClassName('analyze_progress');\n const vFlg = !Array.from(prog).some(\n (pro) => pro.textContent === 'ただいま補正中...',\n );\n\n if (vFlg) {\n setVisibleFlg(vFlg);\n clearInterval(refTimerId.current as number);\n }\n }, []);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n useEffect(() => {\n setTimerId(setInterval(visibleDownloadButton, 3000));\n }, [visibleDownloadButton]);\n\n return (\n
    \n
    \n {props.pngSrcs.map((value) => (\n // @ts-ignore\n \n ))}\n
    \n
    \n {visibleFlg ? (\n <>\n \n ダウンロードする(.zip)\n \n \n ) : null}\n
    \n
    \n );\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // 表示\n const result = document.getElementById('result');\n if (result !== null) {\n // @ts-ignore\n const ids = JSON.parse(result.getAttribute('data-ids'));\n const resource = result.getAttribute('data-resource');\n const fileid = result.getAttribute('data-fileid');\n // @ts-ignore\n const pngsrcs = JSON.parse(result.getAttribute('data-pngsrcs'));\n ReactDOM.render(\n ,\n result,\n );\n }\n});\n","// extracted by mini-css-extract-plugin","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport axios from 'axios';\n\ninterface ResultRowProp {\n pngSrcs: string;\n}\n\nconst ResultRow: React.FC = (props: ResultRowProp) => {\n const [pdfImage, setPdfImage] = useState('');\n const [pngImage, setPngImage] = useState('');\n const [progress, setProgress] = useState('ただいま補正中...');\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n\n // 補正前のPDF表示\n // TODO: ソースコードが重複しているのでまとめてください\n const setPdf = useCallback(() => {\n axios\n // @ts-ignore\n .get(`/debug/color_tone/${props.pngSrcs['page_id']}/page_pdf`)\n .then((res) => {\n setPdfImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [props.pngSrcs]);\n\n // 補正後のPNG表示\n const setPng = useCallback(() => {\n // @ts-ignore\n if (!props.pngSrcs['png_src']) {\n setProgress('補正が出来ませんでした。');\n }\n // @ts-ignore\n setPngImage(`data:application/png;base64,${props.pngSrcs['png_src']}`);\n setProgress('補正が完了しました。');\n }, [props.pngSrcs]);\n\n useEffect(() => {\n setPdf();\n setTimerId(setInterval(setPng, 3000));\n setPng();\n }, [setPdf, setPng]);\n\n return (\n
    \n
    \n

    \n 補正結果\n

    \n {progress === '補正が完了しました。' ? (\n \n ) : (\n
    {progress}
    \n )}\n
    \n\n
    \n \n
    \n
    \n );\n};\n\nexport default ResultRow;\n","// @ts-ignore\nwindow.toggleModal = function toggleModal(\n // @ts-ignore\n modal_id,\n // @ts-ignore\n dictionary_id,\n // @ts-ignore\n dictionary_name,\n) {\n // 削除ボタンの生成\n const open_delete_modal_btn = document.getElementById(\n 'open_delete_modal_btn',\n );\n if (open_delete_modal_btn) {\n open_delete_modal_btn.remove();\n }\n const delete_button =\n '削除';\n const button_div = document.getElementById('button_div');\n // @ts-ignore\n button_div.insertAdjacentHTML('afterbegin', delete_button);\n\n // 未使用\n // const delete_target_dictionary_name = document.getElementById(\n // 'delete_target_dictionary_name',\n // );\n\n // 辞書名の挿入\n // @ts-ignore\n document.getElementById('delete_target_dictionary_name').innerHTML =\n dictionary_name;\n\n // modalの表示\n // @ts-ignore\n document.getElementById(modal_id).classList.toggle('hidden');\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport axios from 'axios';\n\ntype AssetReportProps = {\n asset_report: {\n report: {\n evaluation_company_name: string;\n calculation_date: string;\n maker_company_name: string;\n maker_company_username: string;\n };\n asset: {\n result: {\n valuation: number;\n enterprise_value: number;\n business_value: number;\n goodwill: number;\n };\n breakdown: {\n '0': {\n op_income: number;\n depreciation: number;\n goodwill_years: number;\n net_assets: number;\n ebitda: number;\n goodwill: number;\n valuation: number;\n };\n };\n process: [string[]];\n validates: string[];\n message: string | null;\n };\n };\n};\n\nexport const AssetReport: React.FC = (\n props: AssetReportProps,\n) => {\n const { asset_report } = props;\n\n const [downloadPptxApi, setDownloadPptxApi] = useState('');\n\n // @ts-ignore\n const X_CSRF_TOKEN: string = document\n .getElementById('download_asset_report')\n .parentElement.getElementsByTagName('input')[0].value;\n\n const downloadCalculationStatementPptx = useCallback(() => {\n axios\n .post('/formula/asset/asset_report', '', {\n headers: {\n 'X-CSRF-Token': X_CSRF_TOKEN,\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n setDownloadPptxApi(res.data.download_url);\n } else {\n console.log(res);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n }, [X_CSRF_TOKEN]);\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitSource') {\n // @ts-ignore\n event.source.postMessage(\n { name: 'download_pptx', value: asset_report },\n // @ts-ignore\n '*',\n );\n }\n },\n true,\n );\n }, [asset_report]);\n\n return (\n
    \n \n \n \n \n \n \n \n レポートを書き出す(.pptx)\n \n \n
    \n );\n};\n","import ReactDOM from 'react-dom';\nimport React, { useEffect, useState } from 'react';\n\ninterface ValuationFormProp {\n industries: Array;\n form: HTMLFormElement;\n resourceName: string;\n}\n\nconst ValuationForm: React.FC = (\n props: ValuationFormProp,\n) => {\n const [jsonData, setJsonData] = useState('');\n\n useEffect(() => {\n // メッセージ受信イベント\n // microxでは、ma_maker_apiからiframeを取得する。\n // iframe内での処理はma_maker_apiで行われ、最終的にpostする部分で、こちらで受信する。\n // 具体的には、ma_maker_apiのiframeでreduxアクションが走る。(submitTempForm)\n // window.parent.postMessage({ name: \"submitMaForm\", value: value }, \"*\");\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitMaForm') {\n setJsonData(JSON.stringify(event.data));\n console.log(props.form);\n // # form.submitはrailsのヘルパー\n // props.form はシンプルなhtml formタグ\n // microdxのエンドポイントにPOST\n props.form.submit();\n } else if (\n event.data &&\n event.data.name === 'cancelMaForm' &&\n event.data.value === 'canceled'\n ) {\n location.href = '/homes/functions';\n }\n },\n false,\n );\n }, [props.form]);\n\n return (\n
    \n {props.industries.length > 0 ? (\n \n \n \n
    \n ) : null}\n \n \n );\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // @ts-ignore\n const props = window.jsProps || { industries: [] };\n const form = document.getElementById('valuation_form');\n if (form !== null) {\n const resourceName = form.getAttribute('resource');\n ReactDOM.render(\n ,\n form,\n );\n }\n});\n","import React from 'react';\n\nimport { InheritanceValuationSubjects } from './InheritanceValuationSubjects';\nimport { InheritanceValuationSimilarities } from './InheritanceValuationSimilarities';\nimport { InheritanceValuationCalculations } from './InheritanceValuationCalculations';\nimport { InheritanceValuationOutput } from './InheritanceValuationOutput';\nimport {\n InheritanceValuationProps,\n ValuationCalculation,\n} from '../types/props';\n\nexport const InheritanceValuation: React.FC<\n InheritanceValuationProps & {\n valuationCalculations: ValuationCalculation[];\n calculatedValuation: ValuationCalculation[];\n hasCalculatedValuation: boolean;\n corporateTaxFileIds: number[];\n }\n> = (\n props: InheritanceValuationProps & {\n valuationCalculations: ValuationCalculation[];\n calculatedValuation: ValuationCalculation[];\n hasCalculatedValuation: boolean;\n corporateTaxFileIds: number[];\n },\n) => {\n const {\n inheritanceValuation,\n valuationCalculations,\n calculatedValuation,\n hasCalculatedValuation,\n corporateTaxFileIds,\n } = props;\n\n return (\n <>\n
    \n

    \n {inheritanceValuation.evaluation_company_name}\n

    \n
      \n \n \n \n \n
    \n
    \n \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { ModalProvider } from 'react-modal-hook';\n\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { CalculationProps, ValuationCalculation } from '../types/props';\nimport { MoneyFormatter } from '../../../utils/common';\n\nexport const InheritanceValuationCalculation: React.FC<\n CalculationProps & { corporateTaxFileIds: number[]; calculationIndex: number }\n> = (\n props: CalculationProps & {\n corporateTaxFileIds: number[];\n calculationIndex: number;\n },\n) => {\n const { calculation, calculationIndex, corporateTaxFileIds } = props;\n\n const [calculationResults, setCalculationResults] = useState(\n null,\n );\n const [canUseOcrResult, setCanUseOcrResult] = useState(false);\n const [canUseManualSubjectInputResults, setUseManualSubjectInputResults] =\n useState(false);\n const [deleteValuationCalculation, setDeleteValuationCalculation] =\n useState(calculation);\n const [modalCheck, setModalCheck] = useState(false);\n\n // 会社の規模\n const [companySize, setCompanySize] = useState('');\n // 比準要素数1の会社\n const [ratioSemiElements, setRatioSemiElements] = useState(false);\n // 比準要素数0の会社\n const [ratioSemiElementsZero, setRatioSemiElementsZero] =\n useState(false);\n // 土地保有特定会社\n const [companySizeOwned, setCompanySizeOwned] = useState(false);\n // 開業前の会社\n const [beforeOpening, setBeforeOpening] = useState(false);\n // 休業中の会社\n const [closed, setClosed] = useState(false);\n // 株式等保有特定会社\n const [stockOwned, setStockOwned] = useState(false);\n // 開業後3年以上経過している\n const [yearProgress, setYearProgress] = useState(false);\n // 清算中の会社\n const [underLiquidation, setUnderLiquidation] = useState(true);\n // 原則的評価方式等 | 配当還元方式\n const [calcMethodAfter, setCalcMethodAfter] =\n useState('原則的評価方式等');\n // 同族株主等 | 同族株主等以外の株主\n // const [calcMethod, setCalcMethod] = useState('');\n // 納税義務者が役員である\n // const [isOfficer, setIsOfficer] = useState(false);\n // 納税義務者が中心的な同族株主である\n // const [isMainShareholders, setIsMainShareholders] = useState(false);\n // 納税義務者以外に中心的な同族株主(又は株主)がいる\n // const [isOtherShareholders, setIsOtherShareholders] = useState(false);\n // 一株当たりの株価\n const [stockPrice, setStockPrice] = useState('0');\n // 類似業種比準価格\n const [\n modificationRatioSemiMarketValue2,\n setModificationRatioSemiMarketValue2,\n ] = useState(0);\n // 純資産価格方式\n const [ratioSemiElementsNetAsset1, setRatioSemiElementsNetAsset1] =\n useState(0);\n // 配当還元方式\n const [stockPricePayBack, setStockPricePayBack] = useState(0);\n\n /**\n * 一株当たりの株価を設定\n * @param result {ValuationCalculation}\n * @param set_stock_price {callback}\n * @returns {void}\n */\n const checkValuationResults = useCallback((result, set_stock_price: void) => {\n if (result && result.result && result.result.result_selected !== null) {\n set_stock_price;\n }\n }, []);\n\n /**\n * 算定フォームに遷移\n * @param url {string}\n * @returns {void}\n */\n const getValuationForm = useCallback((url: string): void => {\n location.href = url;\n }, []);\n\n /**\n * 削除モーダルを表示\n * @param delete_calculation {ValuationCalculation}\n * @returns {void}\n */\n const setDeleteModal = useCallback(\n (delete_calculation: ValuationCalculation): void => {\n setDeleteValuationCalculation(delete_calculation);\n setModalCheck(!modalCheck);\n },\n [modalCheck],\n );\n\n /**\n * 算定結果から一株当たりの価格を設定\n * @param calculation_results {ValuationCalculation}\n * @returns {void}\n */\n const checkStockPrice = useCallback(\n (calculation_results): string => {\n if (stockPricePayBack !== null) {\n return Math.round(stockPricePayBack).toLocaleString();\n } else {\n return calculation_results['result']['stock_price'];\n }\n },\n [stockPricePayBack],\n );\n\n // const checkCalcMethod = useCallback((): string => {\n // if (calcMethod == calcMethodAfter) { return calcMethod }\n // if(!isOfficer && !isMainShareholders && isOtherShareholders) {\n // return calcMethod;\n // } else {\n // return calcMethodAfter;\n // }\n // }, [calcMethod, calcMethodAfter, isMainShareholders, isOfficer, isOtherShareholders])\n\n /**\n * @returns {string} 特定の対象会社の会社分類名\n */\n const checkCompanyTypes = useCallback((): string => {\n const companyTypes = [\n { name: '比準要素数1の会社', company_type: ratioSemiElements },\n { name: '比準要素数0の会社', company_type: ratioSemiElementsZero },\n { name: '土地保有特定会社', company_type: companySizeOwned },\n { name: '開業前の会社', company_type: beforeOpening },\n { name: '休業中の会社', company_type: closed },\n { name: '株式等保有特定会社', company_type: stockOwned },\n { name: '開業後3年未満の会社', company_type: yearProgress },\n { name: '清算中の会社', company_type: underLiquidation },\n ];\n const companyType: { name: string; company_type: boolean }[] =\n companyTypes.filter((company_type) => {\n return company_type.company_type === true;\n });\n return companyType[0].name;\n }, [\n beforeOpening,\n closed,\n companySizeOwned,\n ratioSemiElements,\n ratioSemiElementsZero,\n stockOwned,\n underLiquidation,\n yearProgress,\n ]);\n\n /**\n * @returns {string} 算定結果見出し\n */\n const judgeResults = useCallback((): string => {\n const companyFlag: boolean =\n !ratioSemiElements &&\n !companySizeOwned &&\n !beforeOpening &&\n !closed &&\n !stockOwned &&\n !yearProgress &&\n !underLiquidation;\n if (companyFlag) {\n return `一般の評価会社の株式:${calcMethodAfter} (会社規模:${companySize})`;\n } else {\n return `特定の評価会社の株式: ${checkCompanyTypes()}`;\n }\n }, [\n beforeOpening,\n calcMethodAfter,\n checkCompanyTypes,\n closed,\n companySize,\n companySizeOwned,\n ratioSemiElements,\n stockOwned,\n underLiquidation,\n yearProgress,\n ]);\n\n useEffect(() => {\n if (0 < corporateTaxFileIds.length) {\n setCanUseOcrResult(true);\n }\n if (calculation.results !== null) {\n const results = JSON.parse(calculation.results);\n setCalculationResults(results);\n setCalcMethodAfter(results['document']['page_1']['calc_method_after']);\n // setCalcMethod(results['document']['page_1']['calc_method']);\n // setIsOfficer(results['document']['page_1']['is_officer']);\n // setIsMainShareholders(results['document']['page_1']['is_main_shareholders']);\n // setIsOtherShareholders(results['document']['page_1']['is_other_shareholders']);\n setCompanySize(results['result']['company_size']);\n setRatioSemiElements(\n results['document']['page_3']['ratio_semi_elements'],\n );\n setRatioSemiElementsZero(\n results['document']['page_3']['ratio_semi_elements_0'],\n );\n setCompanySizeOwned(results['document']['page_3']['company_size_owned']);\n setBeforeOpening(results['document']['page_3']['before_opening']);\n setClosed(results['document']['page_3']['closed']);\n setStockOwned(results['document']['page_3']['stock_owned']);\n setYearProgress(results['document']['page_3']['year_progress']);\n setUnderLiquidation(results['document']['page_3']['under_liquidation']);\n setModificationRatioSemiMarketValue2(\n results['document']['page_4']['modification_ratio_semi_market_value_2'],\n );\n setRatioSemiElementsNetAsset1(\n results['document']['page_3']['ratio_semi_elements_net_asset_1'],\n );\n setStockPricePayBack(\n results['document']['page_7']['stock_price_pay_back'],\n );\n checkValuationResults(results, setStockPrice(checkStockPrice(results)));\n }\n }, [\n calculation.results,\n checkStockPrice,\n checkValuationResults,\n corporateTaxFileIds.length,\n ]);\n\n {\n /* 計算ボタン */\n }\n const setValuationButton = useCallback(\n (valuationType, useOcrResult) => {\n switch (true) {\n case stockPrice === '0':\n return (\n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/${valuationType}/calculation?ocr=true&calculation_id=${calculation.id}`,\n )\n : () =>\n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/${valuationType}/calculation?ocr=false&calculation_id=${calculation.id}`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-4 py-1 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 再計算を行う\n
    \n
    \n \n );\n default:\n return (\n <>\n {canUseOcrResult || canUseManualSubjectInputResults ? (\n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/${valuationType}/recalculation?ocr=true&calculation_id=${calculation.id}`,\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-3 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-green-600 border-green-600 hover:bg-green-600 hover:text-white\"\n >\n 税務情報から再計算\n
    \n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/${valuationType}/recalculation?ocr=false&calculation_id=${calculation.id}`,\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-6 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-green-600 border-green-600 hover:bg-green-600 hover:text-white\"\n >\n 手動で再計算\n
    \n \n \n ) : (\n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/${valuationType}/recalculation?ocr=false&calculation_id=${calculation.id}`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-12 py-1.5 border shadow-sm text-sm font-medium rounded text-green-600 hover:text-white bg-white-600 hover:bg-green-500 border-green-500\"\n >\n 手動で再計算する\n
    \n
    \n \n )}\n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/${valuationType}/result?calculation_id=${calculation.id}`,\n )\n }\n className=\"underline cursor-pointer inline-flex items-center py-2 text-sm leading-4 font-medium text-blue-500\"\n >\n 詳しく見る\n
    \n
    \n \n \n );\n }\n },\n [\n stockPrice,\n canUseOcrResult,\n canUseManualSubjectInputResults,\n getValuationForm,\n calculation,\n ],\n );\n\n return (\n \n
    \n
    \n {/* 算定header */}\n
    \n
    \n
    \n \n \n {calculationIndex + 1}\n \n 相続税法上の評価\n \n setDeleteModal(calculation)}\n className=\"cursor-pointer bg-white text-red-500 -mt-2 hover:bg-red-400 border border-red-400 text-red-400 hover:text-white text-xs px-2 py-0.5 rounded-sm inline-flex items-center\"\n >\n 削除\n
    \n
    \n
    \n
    \n\n {/* 算定結果TOP */}\n {calculation.results !== null ? (\n
    \n 1株当たりの価格 {MoneyFormatter(Number(stockPrice))}\n
    \n ) : (\n <>\n )}\n\n {/* 算定結果詳細 */}\n {calculationResults !== null ? (\n <>\n

    \n {judgeResults()}\n

    \n

    \n 類似業種比準価格:{' '}\n {Math.round(modificationRatioSemiMarketValue2).toLocaleString()}\n 円\n

    \n

    \n 純資産価格方式:{' '}\n {Math.round(ratioSemiElementsNetAsset1).toLocaleString()}円\n

    \n

    \n 配当還元方式: {Math.round(stockPricePayBack).toLocaleString()}円\n

    \n \n ) : (\n

    \n 会社規模、株主の状況に応じて相続税法上の類似比準方式、純資産方式又は特例評価の配当還元方式により株価を簡易的に算出して相続税の観点から診断を行います。\n

    \n )}\n\n {/* 計算ボタン */}\n {calculation.results !== null ? (\n setValuationButton('inheritance', canUseOcrResult)\n ) : (\n <>\n )}\n\n {/* 計算済みの場合の計算ボタン */}\n {calculation.results !== null ? (\n <>\n ) : (\n <>\n {canUseOcrResult || canUseManualSubjectInputResults ? (\n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/inheritance/calculation?ocr=true&calculation_id=${calculation.id}&calculation_count=${calculationIndex}`,\n )\n }\n className=\"cursor-pointer text-center inline-flex items-center px-6 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 税務情報結果から計算する\n
    \n
    \n
    \n ) : (\n <>\n )}\n
    \n
    \n \n getValuationForm(\n `/inheritances/${calculation.inheritance_valuation_id}/formula/inheritance/calculation?ocr=false&calculation_id=${calculation.id}`,\n )\n }\n className=\"cursor-pointer text-center inline-flex items-center px-14 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 手動計算する\n
    \n
    \n \n \n )}\n \n \n\n {deleteValuationCalculation !== null ||\n typeof deleteValuationCalculation !== 'undefined' ? (\n \n ) : (\n <>\n )}\n
    \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport axios from 'axios';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport { Popover } from 'react-tiny-popover';\n\nimport { InheritanceValuationCalculation } from './InheritanceValuationCalculation';\nimport {\n InheritanceValuationProps,\n ValuationCalculation,\n} from '../types/props';\n\nexport const InheritanceValuationCalculations: React.FC<\n InheritanceValuationProps & {\n valuationCalculations: ValuationCalculation[];\n calculatedValuation: ValuationCalculation[];\n hasCalculatedValuation: boolean;\n corporateTaxFileIds: number[];\n }\n> = (\n props: InheritanceValuationProps & {\n valuationCalculations: ValuationCalculation[];\n calculatedValuation: ValuationCalculation[];\n hasCalculatedValuation: boolean;\n corporateTaxFileIds: number[];\n },\n) => {\n const {\n inheritanceValuation,\n valuationCalculations,\n calculatedValuation,\n hasCalculatedValuation,\n corporateTaxFileIds,\n } = props;\n\n const [isOpen, setPopover] = useState(false);\n const [canUseOcrResult, setCanUseOcrResult] = useState(false);\n const form = document.getElementById('inheritance_valuation_form');\n\n const checkedButton = hasCalculatedValuation\n ? 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center ring-8 ring-white'\n : 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center ring-8 ring-white';\n\n const stepStyle = hasCalculatedValuation\n ? 'text-lg text-green-400 font-semibold'\n : 'text-lg text-gray-400 font-semibold';\n\n const valuaitonNameStyle = hasCalculatedValuation\n ? 'pt-1.5 text-xl text-gray-700 font-bold'\n : 'pt-1.5 text-xl text-gray-400 font-bold';\n\n const flowLineStyle = hasCalculatedValuation\n ? 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-green-300'\n : 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-200';\n\n const setSelectPopover = useCallback((): void => {\n setPopover(!isOpen);\n }, [isOpen]);\n\n const createCalculation = useCallback(\n (source_id: number, source: string): void => {\n axios\n .post(\n `/inheritances/${inheritanceValuation.id}/formula/inheritance/copy_calculation`,\n { source_id: source_id, source: source },\n {\n headers: {\n 'X-CSRF-Token':\n // @ts-ignore\n form.parentElement.getElementsByTagName('input')[0].value,\n },\n },\n )\n .then((res) => {\n if (res.data.status === 'success') {\n location.href = `/inheritances/${inheritanceValuation.id}/formula/inheritance/calculation?ocr=${res.data.ocr}&calculation_id=${res.data.calculation_id}`;\n }\n })\n .catch((err) => {\n console.log(err);\n });\n },\n // @ts-ignore\n [form.parentElement, inheritanceValuation.id],\n );\n\n const selectContent = useCallback(() => {\n return (\n <>\n
    \n {canUseOcrResult ? (\n {\n createCalculation(\n inheritanceValuation.id,\n 'inheritance_valuation',\n );\n }}\n className=\"cursor-pointer text-gray-500 hover:text-blue-600 ml-2 pt-1\"\n >\n STEP1の値を利用して算定を追加する\n
    \n ) : (\n {\n location.href = `/inheritances/${inheritanceValuation.id}/formula/inheritance/calculation?ocr=false`;\n }}\n className=\"cursor-pointer text-gray-500 hover:text-blue-600 ml-2 pt-1\"\n >\n 算定を追加する\n \n )}\n {calculatedValuation?.map(\n (calculation: ValuationCalculation, idx) => (\n {\n createCalculation(calculation.id, 'calculation');\n }}\n className=\"cursor-pointer text-gray-500 hover:text-blue-600 ml-2 pt-1\"\n >\n \n {idx + 1}\n \n の算定内容を複製する\n \n ),\n [],\n )}\n \n \n );\n }, [\n calculatedValuation,\n canUseOcrResult,\n createCalculation,\n inheritanceValuation.id,\n ]);\n\n useEffect(() => {\n if (0 < corporateTaxFileIds.length) {\n setCanUseOcrResult(true);\n }\n }, [corporateTaxFileIds, corporateTaxFileIds.length]);\n\n return (\n <>\n
  • \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n

    STEP3

    \n \n \n \n

    \n 所要時間 約3分\n

    \n
    \n

    相続税法上の算定

    \n

    \n 相続税法上の株価を簡易算定\n

    \n

    \n *算定は、5個まで可能です。\n

    \n
    \n {valuationCalculations?.map((calculation, idx) => (\n
    \n \n
    \n ))}\n\n {hasCalculatedValuation &&\n valuationCalculations.length < 5 ? (\n
    \n setSelectPopover()}\n positions={['bottom']}\n padding={10}\n content={selectContent()}\n >\n setSelectPopover()}\n className=\"cursor-pointer bg-gray-200 hover:bg-green-600 hover:text-white text-gray-400 font-bold py-2 px-2 rounded inline-flex items-center\"\n >\n + 算定を追加\n
    \n \n
    \n ) : (\n <>\n )}\n
    \n
    \n
    \n
    \n \n
  • \n \n );\n};\n","import React from 'react';\nimport { InheritanceValuations } from './InheritanceValuations';\nimport { InheritanceValuationsProps } from '../types/props';\n\nexport const InheritanceValuationIndex: React.FC = (\n props: InheritanceValuationsProps,\n) => {\n const { inheritanceValuations } = props;\n\n return (\n <>\n {0 < inheritanceValuations?.length ? (\n
    \n
    \n
    \n
    \n \n \n \n \n 対象会社名\n \n \n 課税時期\n \n \n 最終更新日\n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n ) : (\n
    \n 検索結果が見つかりませんでした。\n
    \n )}\n \n );\n};\n","import React, { useCallback } from 'react';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport { InheritanceValuationProps } from '../types/props';\n\nexport const InheritanceValuationOutput: React.FC<\n InheritanceValuationProps & { hasCalculatedValuation: boolean }\n> = (\n props: InheritanceValuationProps & { hasCalculatedValuation: boolean },\n) => {\n const { inheritanceValuation, hasCalculatedValuation } = props;\n\n const checkedButton: string = hasCalculatedValuation\n ? 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center ring-8 ring-white'\n : 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center ring-8 ring-white';\n\n const stepStyle: string = hasCalculatedValuation\n ? 'text-lg text-green-400 font-semibold'\n : 'text-lg text-gray-400 font-semibold';\n\n const genPdfNameStyle = hasCalculatedValuation\n ? 'pt-1.5 text-xl text-gray-700 font-bold'\n : 'pt-1.5 text-xl text-gray-400 font-bold';\n\n const getResultsUrl: () => void = useCallback(() => {\n location.href = `/inheritances/${inheritanceValuation.id}/result`;\n }, [inheritanceValuation.id]);\n\n return (\n
  • \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n

    STEP4

    \n \n \n \n

    \n 所要時間 約3分\n

    \n
    \n

    評価明細書の作成

    \n

    \n Step1からStep3の情報を元に取引相場のない株式(出資)の評価明細書を作成\n

    \n
    \n {hasCalculatedValuation ? (\n getResultsUrl()}\n className=\"cursor-pointer inline-flex items-center px-4 py-3 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 明細書を書き出す\n
    \n ) : (\n getResultsUrl()}\n className=\"pointer-events-none inline-flex items-center px-4 py-3 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 明細書を書き出す\n
    \n )}\n
    \n
    \n
    \n \n \n
  • \n );\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport axios from 'axios';\n\nimport {\n InheritanceValuationResultsProps,\n ValuationCalculation,\n} from '../types/props';\n\nexport const InheritanceValuationResults: React.FC<\n InheritanceValuationResultsProps\n> = (props: InheritanceValuationResultsProps) => {\n const { calculations, inheritanceValuationId } = props;\n\n const [downloadPdfApi, setDownloadPdfApi] = useState('');\n const [downloadPptxApi, setDownloadPptxApi] = useState('');\n const [pptxResults, setPptxResults] = useState('');\n const postResultRef = useRef('');\n postResultRef.current = pptxResults;\n\n // @ts-ignore\n const X_CSRF_TOKEN: string = document\n .getElementById('download_calculation_statement')\n .parentElement.getElementsByTagName('input')[0].value;\n\n const downloadCalculationStatementPdf: (\n calculation: ValuationCalculation,\n ) => void = useCallback(\n (calculation: ValuationCalculation) => {\n // iframeReloadのため、query=${Math.random()適用\n setDownloadPdfApi(\n `/inheritances/${inheritanceValuationId}/download?calculation_id=${\n calculation.id\n }&random=${Math.random()}`,\n );\n },\n [inheritanceValuationId],\n );\n\n const downloadCalculationStatementPptx = useCallback(\n (calculation: ValuationCalculation) => {\n // @ts-ignore\n setPptxResults(calculation.results);\n\n axios\n .post(`/inheritances/${inheritanceValuationId}/download_iframe`, '', {\n headers: {\n 'X-CSRF-Token': X_CSRF_TOKEN,\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n setDownloadPptxApi(res.data.download_url);\n } else {\n console.log(res);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n },\n [X_CSRF_TOKEN, inheritanceValuationId],\n );\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitSource') {\n // @ts-ignore\n event.source.postMessage(\n { name: 'download_pptx', value: postResultRef.current },\n // @ts-ignore\n '*',\n );\n }\n },\n true,\n );\n }, []);\n\n return (\n <>\n
    \n
    \n
    \n
    \n \n \n \n \n 計算明細書\n \n \n \n コメント\n \n \n \n \n \n\n \n {calculations?.map((calculation, index) => (\n \n \n \n \n \n \n ))}\n \n
    \n 計算明細書 {`${index}`}\n \n \n downloadCalculationStatementPptx(calculation)\n }\n className=\"inline-flex justify-center py-2 px-6 text-sm font-medium rounded-sm text-white bg-green-500 hover:bg-green-600\"\n >\n \n \n \n \n \n \n ダウンロードする(.pptx)\n \n \n downloadCalculationStatementPdf(calculation)\n }\n className=\"inline-flex justify-center py-2 px-6 text-sm font-medium rounded-sm text-white bg-yellow-400 hover:bg-yellow-500\"\n >\n \n \n \n \n \n \n ダウンロードする(.pdf)\n \n
    \n
    \n
    \n
    \n
    \n \n \n \n );\n};\n","import React, { useCallback } from 'react';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport { InheritanceValuationProps } from '../types/props';\n\nexport const InheritanceValuationSimilarities: React.FC<\n InheritanceValuationProps\n> = (props: InheritanceValuationProps) => {\n const { inheritanceValuation } = props;\n\n const getSimilaritiesForm = useCallback(() => {\n location.href = `/inheritances/${inheritanceValuation.id}/similarities/new`;\n }, [inheritanceValuation.id]);\n\n const flowLineStyle = inheritanceValuation.similarities_status\n ? 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-green-300'\n : 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-200';\n\n const checkedButton = inheritanceValuation.similarities_status\n ? 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center'\n : 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center';\n\n const stepStyle = inheritanceValuation.similarities_status\n ? 'text-lg text-green-400 font-semibold'\n : 'text-lg text-gray-400 font-semibold';\n\n const similaritiesNameStyle = inheritanceValuation.similarities_status\n ? 'pt-1.5 text-xl text-gray-700 font-bold'\n : 'pt-1.5 text-xl text-gray-400 font-bold';\n\n const actionButton = inheritanceValuation.similarities_status\n ? 'cursor-pointer inline-flex items-center px-12 py-2 text-sm font-medium rounded text-white bg-green-500'\n : 'cursor-pointer inline-flex items-center px-12 py-2 text-sm font-medium rounded text-white bg-gray-400 hover:bg-green-500';\n\n return (\n
  • \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n

    STEP2

    \n \n \n \n

    \n 所要時間 約3分\n

    \n
    \n

    類似業種の選定

    \n

    \n 類似業種比準価格の算定に使用する対象会社の業種を選定\n

    \n
    \n getSimilaritiesForm()}\n className={actionButton}\n >\n 類似業種を選択する\n
    \n
    \n
    \n
    \n
    \n \n
  • \n );\n};\n","import React, { useCallback } from 'react';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport { InheritanceValuationProps } from '../types/props';\n\nexport const InheritanceValuationSubjects: React.FC<\n InheritanceValuationProps\n> = (props: InheritanceValuationProps) => {\n const { inheritanceValuation } = props;\n\n const firstFsUploadPagesResult =\n inheritanceValuation.first_financial_statement_upload_pages\n ? JSON.parse(inheritanceValuation.first_financial_statement_upload_pages)\n : '';\n\n const firstCtUploadPagesResult =\n inheritanceValuation.first_corporate_tax_return_upload_pages\n ? JSON.parse(inheritanceValuation.first_corporate_tax_return_upload_pages)\n : '';\n const secondCtUploadPagesResult =\n inheritanceValuation.second_corporate_tax_return_upload_pages\n ? JSON.parse(\n inheritanceValuation.second_corporate_tax_return_upload_pages,\n )\n : '';\n const thirdCtUploadPagesResult =\n inheritanceValuation.third_corporate_tax_return_upload_pages\n ? JSON.parse(inheritanceValuation.third_corporate_tax_return_upload_pages)\n : '';\n\n const checkSubjectsInputFormType = useCallback(\n (\n is_ocr: number,\n file_id: number,\n phase: number,\n analysis_type: string,\n subject_type: string,\n ) => {\n if (is_ocr === 1) {\n const url = `/inheritances/${inheritanceValuation.id}/ocr/${analysis_type}/${file_id}/check?type=${subject_type}&phase=${phase}`;\n return url;\n } else {\n const url = `/inheritances/${inheritanceValuation.id}/subjects/edit?type=${subject_type}&phase=${phase}`;\n return url;\n }\n },\n [inheritanceValuation.id],\n );\n\n const getSubjectsInputForm = useCallback((subject_input_url) => {\n location.href = subject_input_url;\n }, []);\n\n return (\n <>\n
    \n \n\n
    \n
    \n \n \n \n \n \n
    \n\n
    \n
    \n
    \n

    STEP1

    \n \n \n \n

    \n 所要時間 約3分\n

    \n
    \n

    \n 財務税務情報の入力\n

    \n

    \n 過去3期分の法人税申告書及び直前期の決算書を入力する\n

    \n\n
    \n
    \n 直前期\n
    \n\n
    \n 推奨\n
    \n\n {inheritanceValuation.first_corporate_tax_return_upload_status ||\n inheritanceValuation.first_phase_corporate_tax_return_file_id ? (\n
    \n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n inheritanceValuation.first_corporate_tax_return_upload_status,\n firstCtUploadPagesResult['file_id'],\n 1,\n 'analysis_ct',\n 'tax',\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-green-600 border-green-600 hover:bg-green-600 hover:text-white\"\n >\n 法人税申告書情報を編集する\n
    \n
    \n ) : (\n
    \n \n getSubjectsInputForm(\n `/inheritances/${inheritanceValuation.id}/subjects/new?phase=1&type=tax`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 法人税申告書情報を入力する\n
    \n
    \n )}\n\n
    \n 推奨\n
    \n\n {inheritanceValuation.first_financial_statement_upload_status ||\n inheritanceValuation.first_phase_financial_statement_file_id ? (\n
    \n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n inheritanceValuation.first_financial_statement_upload_status,\n firstFsUploadPagesResult['file_id'],\n 1,\n 'analysis_fs',\n 'financial',\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-green-600 border-green-600 hover:bg-green-600 hover:text-white\"\n >\n 決算書情報を編集する\n
    \n
    \n ) : (\n
    \n \n getSubjectsInputForm(\n `/inheritances/${inheritanceValuation.id}/subjects/new?phase=1&type=financial`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書情報を入力する\n
    \n
    \n )}\n
    \n\n
    \n
    \n 直前々期\n
    \n
    \n 任意\n
    \n {inheritanceValuation.second_corporate_tax_return_upload_status ||\n inheritanceValuation.second_phase_corporate_tax_return_file_id ? (\n
    \n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n inheritanceValuation.second_corporate_tax_return_upload_status,\n secondCtUploadPagesResult['file_id'],\n 2,\n 'analysis_ct',\n 'tax',\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-green-600 border-green-600 hover:bg-green-600 hover:text-white\"\n >\n 法人税申告書情報を編集する\n
    \n
    \n ) : (\n
    \n \n getSubjectsInputForm(\n `/inheritances/${inheritanceValuation.id}/subjects/new?phase=2&type=tax`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 法人税申告書情報を入力する\n
    \n \n )}\n \n\n
    \n
    \n 直前々期の前期\n
    \n
    \n 任意\n
    \n {inheritanceValuation.third_corporate_tax_return_upload_status ||\n inheritanceValuation.third_phase_corporate_tax_return_file_id ? (\n
    \n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n inheritanceValuation.third_corporate_tax_return_upload_status,\n thirdCtUploadPagesResult['file_id'],\n 3,\n 'analysis_ct',\n 'tax',\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-green-600 border-green-600 hover:bg-green-600 hover:text-white\"\n >\n 法人税申告書情報を編集する\n
    \n
    \n ) : (\n
    \n \n getSubjectsInputForm(\n `/inheritances/${inheritanceValuation.id}/subjects/new?phase=3&type=tax`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 法人税申告書情報を入力する\n
    \n \n )}\n \n \n \n \n \n \n );\n};\n","import React, { useCallback, useState } from 'react';\n\n// TODO: react-dropdownに変更\nimport { Popover } from 'react-tiny-popover';\nimport { ModalProvider } from 'react-modal-hook';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { InheritanceValuationsProps } from '../types/props';\n\nexport const InheritanceValuations: React.FC = (\n props: InheritanceValuationsProps,\n) => {\n const { inheritanceValuations } = props;\n\n const [isOpen, setPopover] = useState(false);\n const [deleteInheritanceValuationId, setDeleteInheritanceValuationId] =\n useState(0);\n const [modalCheck, setModalCheck] = useState(false);\n const [inheritanceValuationId, setInheritanceValuationId] =\n useState(0);\n\n const setEditPopover = useCallback(\n (inheritance_valuation_id: number): void => {\n setInheritanceValuationId(inheritance_valuation_id);\n setPopover(!isOpen);\n },\n [isOpen],\n );\n\n const setDeleteModal = useCallback(\n (inheritance_valuation_id: number): void => {\n setDeleteInheritanceValuationId(inheritance_valuation_id);\n setModalCheck(!modalCheck);\n },\n [modalCheck, setDeleteInheritanceValuationId],\n );\n\n const setUpdatedTime = useCallback((update_time: string): string => {\n const inheritanceValuationsUpdatedDate: Date = new Date(update_time);\n const inheritanceValuationsUpdatedYear: number =\n inheritanceValuationsUpdatedDate.getFullYear();\n const inheritanceValuationsUpdatedMonth: number =\n inheritanceValuationsUpdatedDate.getMonth() + 1;\n const inheritanceValuationsUpdatedDay: number =\n inheritanceValuationsUpdatedDate.getDate();\n return `${inheritanceValuationsUpdatedYear}年${inheritanceValuationsUpdatedMonth}月${inheritanceValuationsUpdatedDay}日`;\n }, []);\n\n const setTaxDate = useCallback((tax_period: string): string => {\n const inheritanceValuationsTaxDate: Date = new Date(tax_period);\n const inheritanceValuationsTaxYear: number =\n inheritanceValuationsTaxDate.getFullYear();\n const inheritanceValuationsTaxMonth: number =\n inheritanceValuationsTaxDate.getMonth() + 1;\n return `${inheritanceValuationsTaxYear}年${inheritanceValuationsTaxMonth}月`;\n }, []);\n\n return (\n \n {inheritanceValuations?.map((inheritance_valuation) => (\n \n \n \n {inheritance_valuation.evaluation_company_name}\n \n \n \n {inheritance_valuation.evaluation_company_tax_period !== null\n ? setTaxDate(inheritance_valuation.evaluation_company_tax_period)\n : null}\n \n \n {inheritance_valuation.updated_at !== null\n ? setUpdatedTime(inheritance_valuation.updated_at)\n : null}\n \n \n \n 株価診断をする\n \n \n \n setEditPopover(inheritance_valuation.id)}\n positions={['right']}\n padding={10}\n content={\n
    \n \n 編集する\n \n setDeleteModal(inheritance_valuation.id)}\n className=\"cursor-pointer text-red-500 hover:text-red-600 ml-2 pt-1\"\n >\n 削除する\n
    \n \n }\n >\n setEditPopover(inheritance_valuation.id)}\n className=\"btn btn-circle btn-outline bg-gray-200 hover:bg-gray-100 rounded-full\"\n >\n \n \n \n \n \n \n \n \n \n \n \n ))}\n {deleteInheritanceValuationId !== 0 ? (\n \n ) : (\n <>\n )}\n
    \n );\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\n// @ts-ignore\nimport { Controller, useForm } from 'react-hook-form';\nimport axios from 'axios';\nimport { BsContainer } from '../subjects/financial_statement/bs/BsContainer';\nimport { OcrResultRow } from './OcrResultRow';\nimport { OcrPageProps, OcrResultProp } from '../types/props';\n\nexport const OcrResult: React.FC = React.memo(\n (props: OcrResultProp) => {\n const { inheritanceValuationId, fileId, pageIds, phase } = props;\n const [visibleFlg, setVisibleFlg] = useState(false);\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const [startTime] = useState(Date.now());\n const [loadingMessage, setloadingMessage] =\n useState('画像を解析します');\n const refTimerId = useRef(timerId);\n const [subject, setSubject] = useState([] as unknown);\n const form = document.getElementById('ocr_result_form');\n\n const { register, handleSubmit, getValues, setValue, control } =\n // @ts-ignore\n useForm({\n defaultValues: {\n subject: '',\n },\n });\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n\n const visibleDownloadButton = useCallback(() => {\n const prog = document.getElementsByClassName('analyze_progress');\n const vFlg = !Array.from(prog).some(\n (pro) => pro.textContent === 'ただいま解析中...',\n );\n if (vFlg) {\n setVisibleFlg(vFlg);\n }\n }, []);\n\n const getSummary = useCallback(() => {\n axios\n .get(\n `/inheritances/${inheritanceValuationId}/ocr/analysis_fs/${fileId}/file_summary.json`,\n )\n .then((res) => {\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n setValue('subject', res.data.subjects);\n setSubject([res.data.subjects]);\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n visibleDownloadButton();\n })\n .catch((err) => {\n console.log(err);\n });\n }, [fileId, inheritanceValuationId, setValue, visibleDownloadButton]);\n\n const getStatus = useCallback(() => {\n axios\n .get(\n `/inheritances/${inheritanceValuationId}/ocr/analysis_fs/${fileId}/file_status`,\n )\n .then((res) => {\n if ((Date.now() - startTime) / 1000 > 60) {\n clearInterval(refTimerId.current as number);\n setloadingMessage('画像解析中にエラーが発生しました。');\n location.href = `/inheritances/${inheritanceValuationId}`;\n }\n const analyzedFile: OcrPageProps[] = res.data.pages.filter(\n (page: OcrPageProps) =>\n page.status === 'success' || page.status === 'failed',\n );\n if (analyzedFile.length === pageIds.length) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n getSummary();\n clearInterval(refTimerId.current as number);\n }\n })\n .catch((err) => {\n console.log(err);\n clearInterval(refTimerId.current as number);\n });\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n }, [fileId, getSummary, pageIds.length, inheritanceValuationId, startTime]);\n\n useEffect(() => {\n // @ts-ignore\n setTimerId(setInterval(getStatus, 3000));\n }, [getStatus]);\n\n const updateFileSummary = useCallback(() => {\n // @ts-ignore\n const postData = { subject: getValues('subject') };\n axios\n .post(\n `/inheritances/${inheritanceValuationId}/ocr/analysis_fs/${fileId}/update_file_summary.json`,\n postData,\n {\n headers: {\n // @ts-ignore\n 'X-CSRF-Token': form.getElementsByTagName('input')[0].value,\n },\n },\n )\n .then((res) => {\n if (res.data.status === 201) {\n location.href = `/inheritances/${inheritanceValuationId}`;\n }\n })\n .catch((err) => {\n location.href = `/inheritances/${inheritanceValuationId}`;\n console.log(err);\n });\n }, [fileId, form, getValues, inheritanceValuationId]);\n\n // @ts-ignore\n const onSubmit = (data) => {\n updateFileSummary();\n };\n\n return (\n <>\n
    \n
    \n

    \n 解析元決算書ファイル\n

    \n {/* @ts-ignore */}\n {pageIds.map((value) => (\n \n ))}\n
    \n
    \n {\n // @ts-ignore\n 0 < subject?.length ? (\n
    \n
    \n {visibleFlg ? (\n <>\n
    \n
    \n

    \n PDFデータから自動で取り込む\n

    \n
    \n
    \n \n 算定に反映する\n \n
    \n
    \n

    \n データ取り込みが完了しました。取り込みデータを編集することができます。\n

    \n \n ) : (\n <>\n )}\n
    \n\n
    \n
    \n \n
    \n
    \n
    \n ) : (\n <>\n
    \n

    \n {loadingMessage}\n

    \n

    \n ※\n 枚数が多い場合、時間がかかる可能性がございます。ご了承ください。\n

    \n

    \n
    \n \n )\n }\n
    \n
    \n \n );\n },\n);\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport axios from 'axios';\n\ntype OcrResultRowProp = {\n inheritanceValuationId: string;\n pageId: string;\n};\n\nexport const OcrResultRow: React.FC = React.memo(\n (props: OcrResultRowProp) => {\n const { inheritanceValuationId, pageId } = props;\n\n const [image, setImage] = useState('');\n\n // @ts-ignore\n const [timerId] = useState(0);\n const refTimerId = useRef(timerId);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n\n // TODO: ソースコードが重複しているのでまとめてください\n const setPdf = useCallback(() => {\n axios\n .get(\n `/inheritances/${inheritanceValuationId}/ocr/analysis_fs/${pageId}/page_pdf`,\n )\n .then((res) => {\n setImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [pageId, inheritanceValuationId]);\n\n useEffect(() => {\n // @ts-ignore\n setPdf();\n }, [setPdf]);\n\n return (\n
    \n
    \n \n
    \n
    \n );\n },\n);\n","import React, { useEffect } from 'react';\nimport axios from 'axios';\n\ntype SimilaritiesFormProp = {\n inheritanceValuationId: number;\n};\n\nexport const SimimilaritiesForm: React.FC = (\n props: SimilaritiesFormProp,\n) => {\n const { inheritanceValuationId } = props;\n const form = document.getElementById('similarities_industry_form');\n\n useEffect(() => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitMaForm') {\n axios\n .post(\n `/inheritances/${inheritanceValuationId}/similarities`,\n event.data,\n {\n headers: {\n 'X-CSRF-Token':\n // @ts-ignore\n form.parentElement.getElementsByTagName('input')[0].value,\n },\n },\n )\n .then((res) => {\n if (res.status === 200) {\n location.href = `/inheritances/${inheritanceValuationId}`;\n } else {\n console.log(res);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n } else if (\n event.data &&\n event.data.name === 'cancelMaForm' &&\n event.data.value === 'canceled'\n ) {\n location.href = '/homes/functions';\n }\n },\n false,\n );\n }, [\n // @ts-ignore\n form.parentElement,\n inheritanceValuationId,\n ]);\n\n return <>;\n};\n","export const InheritanceSubject: { code: string; value: null | number }[] = [\n // 所得金額又は欠損金額\n { code: 'OT_CTTI', value: null },\n // 期末現在の発行済株式の総数又は出資の総額\n { code: 'OT_NOIS', value: null },\n // 当期利益又は当期欠損\n { code: 'OT_NOAIA', value: null },\n // 配当\n { code: 'OT_ADA', value: null },\n // 利益積立金額の計算に関する明細書 差引合計額\n { code: 'OT_IAA', value: null },\n // 資本金等の額の計算に関する明細書 差引合計額\n { code: 'NA_SE_CT', value: null },\n // 所得税額\n { code: 'OT_IT', value: null },\n // 当期控除額\n { code: 'OT_DTLCF', value: null },\n // 受取配当等の益金不算入額\n { code: 'OT_RDENI', value: null },\n];\n","import React, { useCallback } from 'react';\nimport NumberFormat from 'react-number-format';\nimport { inputProps } from '../../types/props';\n\nexport const SubjectInput: React.FC = React.memo(\n (props: inputProps) => {\n const { subject, setValue, className, defaultValue, _callback } = props;\n\n const checkDefaultValue = useCallback((v) => {\n return v === 0 ? null : v;\n }, []);\n\n const setSubjectValue = useCallback(\n (e) => {\n // @ts-ignore\n setValue(subject, Number(e.target.value.replace(/,/g, '')));\n _callback\n ? _callback(subject, Number(e.target.value.replace(/,/g, '')))\n : '';\n },\n [_callback, setValue, subject],\n );\n\n return (\n // @ts-ignore\n setSubjectValue(e)}\n thousandSeparator={true}\n allowNegative={true}\n decimalScale={2}\n className={className}\n />\n );\n },\n);\n","import React from 'react';\nimport { SubjectInput } from '../concern/SubjectInput';\n\nexport const CorporateTaxReturn: React.FC = (props) => {\n // @ts-ignore\n const { getValues, setValue, phase, Controller, control } = props;\n\n return (\n <>\n
    \n
    \n
    \n 別表一(一)\n
    \n
    所得金額又は欠損金額
    \n
    \n (\n \n )}\n name={'subject[0].code'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表二\n
    \n
    \n 期末現在の発行済株式の総数又は出資の総額\n
    \n
    \n (\n \n )}\n name={'subject[1].code'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表四\n
    \n
    当期利益又は当期欠損
    \n
    \n (\n \n )}\n name={'subject[2].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表四\n
    \n
    配当
    \n
    \n (\n \n )}\n name={'subject[3].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表五(一)\n
    \n
    \n 利益積立金額の計算に関する明細書 差引合計額\n
    \n
    \n (\n \n )}\n name={'subject[4].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表五(一)\n
    \n
    \n 資本金等の額の計算に関する明細書 差引合計額\n
    \n
    \n (\n \n )}\n name={'subject[5].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表六(一)\n
    \n
    \n 剰余金の配当、利益の配当、剰余金の分配及び金銭の分配\n 収入金額について課される所得税額\n
    \n
    \n (\n \n )}\n name={'subject[6].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表七(一)\n
    \n
    当期控除額 計
    \n
    \n (\n \n )}\n name={'subject[7].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n
    \n 別表八(一)\n
    \n
    \n 受取配当等の益金不算入額\n
    \n
    \n (\n \n )}\n name={'subject[8].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n
    \n \n );\n};\n","import React from 'react';\nimport { CorporateTaxReturn } from './CorporateTaxReturn';\n\nexport const CtContainer: React.FC = React.memo((props) => {\n // @ts-ignore\n const { register, getValues, setValue, phase, Controller, control } = props;\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n 法人税申告書(別表)\n
    \n
    \n

    \n 別表番号\n

    \n
    \n
    \n

    \n 科目\n

    \n
    \n
    \n

    \n 金額\n

    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n );\n});\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport axios from 'axios';\n\nimport { CtContainer } from './CtContainer';\nimport { InheritanceSubject } from '../concern/InheritanceSubject';\nimport { SubjectsInputFormProps } from '../../types/props';\n\nexport const SubjectsInputForm: React.FC = React.memo(\n (props: SubjectsInputFormProps) => {\n const { inheritanceValuationId, phase, method } = props;\n const [subject, setSubject] = useState<\n { code: string; value: null | number }[] | []\n >([]);\n const form = document.getElementById('subjects_form');\n\n const { register, handleSubmit, getValues, setValue, control } = useForm<\n { code: string; value: null | number }[]\n >({\n defaultValues: {\n // @ts-ignore\n subject: '',\n },\n });\n\n useEffect(() => {\n // @ts-ignore\n setValue('subject', InheritanceSubject);\n // @ts-ignore\n setSubject([InheritanceSubject]);\n }, [setValue]);\n\n const postSubjects = useCallback(() => {\n const requestData = {\n // @ts-ignore\n subject: getValues('subject'),\n datatype: 'inheritance_financial',\n phase: phase,\n type: 'corporate_tax_return',\n };\n const requestConfig = {\n method: method,\n url: `/inheritances/${inheritanceValuationId}/subjects.json`,\n data: requestData,\n headers: {\n // @ts-ignore\n 'X-CSRF-Token': form.getElementsByTagName('input')[0].value,\n },\n };\n axios(requestConfig)\n .then((res) => {\n if (res.status === 200) {\n location.href = `/inheritances/${inheritanceValuationId}`;\n }\n })\n .catch((err) => {\n location.href = `/inheritances/${inheritanceValuationId}`;\n console.log(err);\n });\n }, [form, getValues, inheritanceValuationId, method, phase]);\n\n // @ts-ignore\n const onSubmit = (data) => {\n postSubjects();\n };\n\n return (\n <>\n
    \n
    \n
    \n {\n // @ts-ignore\n 0 < subject?.length ? (\n
    \n
    \n
    \n \n 税務申告書情報を適用する\n \n
    \n {/*
    \n {\n location.href = `/inheritances/${inheritanceValuationId}/ocr/analysis_ct/new?phase=${phase}`;\n }}\n className=\"inline-block m-4 px-4 py-1 text-white bg-blue-500 hover:bg-blue-600 rounded-sm cursor-pointer\"\n >\n OCR取り込み(β版)\n \n
    */}\n
    \n
    \n
    \n \n
    \n
    \n
    \n \n 税務申告書情報を適用する\n \n
    \n
    \n ) : (\n <>\n )\n }\n
    \n
    \n \n );\n },\n);\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport axios from 'axios';\nimport { BsContainer } from './bs/BsContainer';\nimport { SubjectsInputFormProps } from '../../types/props';\n\nexport const SubjectsInputForm: React.FC = React.memo(\n (props: SubjectsInputFormProps) => {\n const { inheritanceValuationId, phase, subjectValue, method } = props;\n const [subject, setSubject] = useState();\n const form = document.getElementById('subjects_form');\n\n const { register, handleSubmit, getValues, setValue, control } =\n // @ts-ignore\n useForm({\n defaultValues: {\n subject: '',\n },\n });\n\n useEffect(() => {\n if (subjectValue) {\n // @ts-ignore\n setValue('subject', subjectValue);\n setSubject([subjectValue]);\n }\n }, [setValue, subjectValue]);\n\n const postSubjects = useCallback(() => {\n const requestData = {\n // @ts-ignore\n subject: getValues('subject'),\n datatype: 'merged',\n phase: phase,\n type: 'financial_statement',\n };\n const requestConfig = {\n method: method,\n url: `/inheritances/${inheritanceValuationId}/subjects.json`,\n data: requestData,\n headers: {\n // @ts-ignore\n 'X-CSRF-Token': form.getElementsByTagName('input')[0].value,\n },\n };\n axios(requestConfig)\n .then((res) => {\n if (res.status === 200) {\n location.href = `/inheritances/${inheritanceValuationId}`;\n }\n })\n .catch((err) => {\n location.href = `/inheritances/${inheritanceValuationId}`;\n console.log(err);\n });\n }, [form, getValues, inheritanceValuationId, method, phase]);\n\n const onSubmit = () => {\n postSubjects();\n };\n\n return (\n <>\n
    \n
    \n
    \n {\n // @ts-ignore\n 0 < subject?.length ? (\n
    \n
    \n
    \n \n 決算書情報を適用する\n \n
    \n
    \n {\n location.href = `/inheritances/${inheritanceValuationId}/ocr/analysis_fs/new?phase=${phase}`;\n }}\n className=\"inline-block m-4 px-4 py-1 text-white bg-blue-500 hover:bg-blue-600 rounded-sm cursor-pointer\"\n >\n OCR取り込み(β版)\n
    \n
    \n
    \n\n
    \n
    \n \n
    \n
    \n\n
    \n \n 決算書情報を適用する\n \n
    \n \n ) : (\n <>\n )\n }\n
    \n \n \n );\n },\n);\n","import React from 'react';\nimport { AssetsContainer } from './assets/AssetsContainer';\nimport { LiabilitiesContainer } from './liabilities/LiabilitiesContainer';\n// import { SubjectProps, Subjects } from '../../../../../report/types';\n\n// interface BsContainerProps extends SubjectProps {\n// subject: Subjects;\n// phase: string;\n// }\n\n/**\n * 貸借対照表\n * 資産の部(左)AssetsContainer\n * 負債の部(右上)LiabilitiesContainer\n * 純資産の部(右下) LiabilitiesContainer -> NetAssetsContainer\n */\n// @ts-ignore\nexport const BsContainer: React.FC = React.memo(\n // @ts-ignore\n (props: BsContainerProps) => {\n const { subject, Controller, register, getValues, setValue, control } =\n props;\n return (\n <>\n
    \n
    \n
    \n
    \n
    \n 貸借対照表\n
    \n
    \n

    \n 資産の部\n

    \n
    \n
    \n

    \n 負債の部\n

    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n );\n },\n);\n","import React from 'react';\nimport { CurrentAssets } from './CurrentAssets';\nimport { SubjectProps } from '../../../../types/props';\n\nexport const AssetsContainer: React.FC = React.memo(\n (props: SubjectProps) => {\n const { register, getValues, setValue, Controller, control } = props;\n return (\n <>\n \n \n );\n },\n);\n","import React from 'react';\nimport { SubjectRow } from '../../../../../../components/SubjectRow/SubjectRow';\n\n// @ts-ignore\nexport const CurrentAssets: React.FC = React.memo(\n // @ts-ignore\n (props: SubjectProps) => {\n const { getValues, setValue, control } = props;\n\n return (\n <>\n
    \n
    \n
    \n 科目\n
    \n
    \n 金額\n
    \n
    \n
    \n
    \n 固定資産\n
    \n
    \n
    \n
    \n 有形固定資産\n
    \n
    \n \n
    \n
    \n 投資その他の資産\n
    \n
    \n \n \n \n
    \n
    \n 資産の部合計\n
    \n \n
    \n
    \n \n );\n },\n);\n","import React from 'react';\nimport { NetAssetsContainer } from '../net_assets/NetAssetsContainer';\nimport { SubjectInput } from '../../../concern/SubjectInput';\nimport { SubjectProps, Subjects } from '../../../../types/props';\n\ninterface InterestBearingDebtProps extends SubjectProps {\n subject: Subjects;\n}\n\n// @ts-ignore\nexport const InterestBearingDebt: React.FC =\n // @ts-ignore\n React.memo((props: InterestBearingDebtProps) => {\n const { getValues, setValue, Controller, control } = props;\n\n return (\n <>\n
    \n
    \n 負債の部合計\n
    \n
    \n {/* @ts-ignore */}\n (\n \n )}\n name={'subject.liabilities_section.subjects[0].value'}\n control={control}\n fixedDecimalScale\n />\n
    \n
    \n \n \n );\n });\n","import React from 'react';\nimport { InterestBearingDebt } from './InterestBearingDebt';\n\n// @ts-ignore\nexport const LiabilitiesContainer: React.FC =\n // @ts-ignore\n React.memo((props: LiabilitiesContainerProps) => {\n const { subject, register, getValues, setValue, Controller, control } =\n props;\n return (\n <>\n
    \n
    \n
    \n 科目\n
    \n
    \n 金額\n
    \n
    \n \n
    \n \n );\n });\n","import React from 'react';\n\nexport const NetAssets: React.FC = React.memo(() => {\n return (\n <>\n
    \n

    \n 純資産の部\n

    \n
    \n \n );\n});\n","import React from 'react';\nimport { NetAssets } from './NetAssets';\n\nexport const NetAssetsContainer: React.FC = React.memo(() => {\n return (\n <>\n \n \n );\n});\n","import React, { useCallback, useEffect, useState } from 'react';\n\nimport axios from 'axios';\nimport { ModalProvider } from 'react-modal-hook';\n\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { ValuationFormProps } from '../types/props';\n\nexport const ValuationForm: React.FC = (\n props: ValuationFormProps,\n) => {\n const {\n resourceName,\n inheritacenValuationId,\n calculationId,\n selectedIndustries,\n } = props;\n\n const [modalCheck, setModalCheck] = useState(false);\n const [responseValidatesMessages, setResponseValidatesMessages] = useState<\n string[]\n >([]);\n const form = document.getElementById('inheritance_valuation_form');\n\n const postValuation = useCallback(\n (e) => {\n if (e.data && e.data.name === 'submitMaForm') {\n const postData = {\n results: e.data,\n calculation_id: calculationId,\n };\n axios\n .post(\n `/inheritances/${inheritacenValuationId}/formula/${resourceName}`,\n postData,\n {\n headers: {\n 'X-CSRF-Token':\n // @ts-ignore\n form.parentElement.getElementsByTagName('input')[0].value,\n },\n },\n )\n .then((res) => {\n if (res.status === 200 && res.data.status === 'success') {\n location.href = `/inheritances/${inheritacenValuationId}/formula/${resourceName}/check?calculation_id=${calculationId}`;\n } else {\n const validateItems = JSON.parse(res.data.results).validates;\n // @ts-ignore\n const validateMessages = validateItems.map((_) =>\n _.message.replace(_.key, _.name).replace('null', '未入力'),\n );\n setModalCheck(!modalCheck);\n setResponseValidatesMessages(validateMessages);\n }\n })\n .catch((err) => {\n console.log(err);\n location.href = `/inheritances/${inheritacenValuationId}`;\n });\n } else if (\n e.data &&\n e.data.name === 'cancelMaForm' &&\n e.data.value === 'canceled'\n ) {\n location.href = `/inheritances/${inheritacenValuationId}`;\n }\n },\n // @ts-ignore\n [\n calculationId,\n inheritacenValuationId,\n resourceName,\n // @ts-ignore\n form.parentElement,\n modalCheck,\n ],\n );\n\n useEffect((): void => {\n window.addEventListener('message', (event) => postValuation(event), false);\n }, [postValuation]);\n\n return (\n \n {/* 類似業種 */}\n {selectedIndustries ? (\n
    \n
    \n

    STEP2で選択した類似業種

    \n {/* \n 編集\n
    */}\n
    \n {/* @ts-ignore */}\n {selectedIndustries?.map((selected_industry: unknown) => (\n
    \n {/* @ts-ignore */}\n {selected_industry?.industry.name &&\n /* @ts-ignore */\n selected_industry?.industry.id && (\n

    \n {/* @ts-ignore */}\n {selected_industry?.industry?.name}(No.\n {/* @ts-ignore */}\n {selected_industry?.industry?.id})\n

    \n )}\n
    \n ))}\n \n ) : (\n <>\n )}\n\n
    \n \n
    \n
    \n );\n};\n","import ReactDOM from 'react-dom';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport ResultRow from './result_row';\nimport './result_row.scss';\n\ninterface AnalyzeResultProp {\n fileId: string;\n pageIds: Array;\n docTypes: Array;\n}\n\nconst AnalyzeResult: React.FC = (\n props: AnalyzeResultProp,\n) => {\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n const [visibleFlg, setVisibleFlg] = useState(false);\n\n // 解析が終わったらダウンロードボタンを表示\n const visibleDownloadButton = useCallback(() => {\n const prog = document.getElementsByClassName('analyze_progress');\n const vFlg = !Array.from(prog).some(\n (pro) => pro.textContent === 'ただいま解析中...',\n );\n\n if (vFlg) {\n setVisibleFlg(vFlg);\n clearInterval(refTimerId.current as number);\n }\n }, []);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n useEffect(() => {\n setTimerId(setInterval(visibleDownloadButton, 3000));\n }, [visibleDownloadButton]);\n\n return (\n
    \n
    \n {props.pageIds.map((value) => (\n \n ))}\n
    \n
    \n {visibleFlg ? (\n <>\n \n ダウンロードする(.xlsx)\n \n \n ) : null}\n
    \n
    \n );\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // 表示\n const result = document.getElementById('result');\n if (result !== null) {\n // @ts-ignore\n const ids = JSON.parse(result.getAttribute('data-ids'));\n // @ts-ignore\n const doc_types = JSON.parse(result.getAttribute('data-doc_types'));\n const fileid = result.getAttribute('data-fileid');\n ReactDOM.render(\n // @ts-ignore\n ,\n result,\n );\n }\n});\n","import ReactDOM from 'react-dom';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport ResultRow from './result_row';\nimport './result_row.scss';\n\ninterface AnalyzeResultProp {\n fileId: string;\n pageIds: Array;\n}\n\nconst AnalyzeResult: React.FC = (\n props: AnalyzeResultProp,\n) => {\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n const [visibleFlg, setVisibleFlg] = useState(false);\n\n // 解析が終わったらダウンロードボタンを表示\n const visibleDownloadButton = useCallback(() => {\n const prog = document.getElementsByClassName('analyze_progress');\n const vFlg = !Array.from(prog).some(\n (pro) => pro.textContent === 'ただいま解析中...',\n );\n\n if (vFlg) {\n setVisibleFlg(vFlg);\n clearInterval(refTimerId.current as number);\n }\n }, []);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n useEffect(() => {\n setTimerId(setInterval(visibleDownloadButton, 3000));\n }, [visibleDownloadButton]);\n\n return (\n
    \n
    \n {props.pageIds.map((value) => (\n \n ))}\n
    \n
    \n {visibleFlg ? (\n <>\n \n ダウンロードする(.xlxs)\n \n \n ) : null}\n
    \n
    \n );\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // 表示\n const result = document.getElementById('result');\n if (result !== null) {\n // @ts-ignore\n const ids = JSON.parse(result.getAttribute('data-ids'));\n // @ts-ignore\n const fileid = result.getAttribute('data-fileid');\n // @ts-ignore\n ReactDOM.render(, result);\n }\n});\n","import ReactDOM from 'react-dom';\nimport React from 'react';\nimport ResultRow from './convert_row';\nimport './result_row.scss';\n\ninterface AnalyzeResultProp {\n fileId: string;\n pageIds: Array;\n}\n\nconst AnalyzeResult: React.FC = (\n props: AnalyzeResultProp,\n) => {\n return (\n
    \n
    \n {props.pageIds.map((value) => (\n \n ))}\n
    \n
    \n );\n};\n\ndocument.addEventListener('DOMContentLoaded', () => {\n // 表示\n const result = document.getElementById('result');\n if (result !== null) {\n // @ts-ignore\n const ids = JSON.parse(result.getAttribute('data-ids'));\n // @ts-ignore\n const fileid = result.getAttribute('data-fileid');\n // @ts-ignore\n ReactDOM.render(, result);\n }\n});\n\nexport default ResultRow;\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport axios from 'axios';\nimport domtoimage from 'dom-to-image';\n\ninterface ResultRowProp {\n pageId: string;\n}\n\nconst ResultRow: React.FC = (props: ResultRowProp) => {\n const [image, setImage] = useState('');\n\n // eslint-disable-next-line unused-imports/no-unused-vars\n const [result, setResult] = useState([]);\n // eslint-disable-next-line unused-imports/no-unused-vars\n const [progress, setProgress] = useState('ただいま解析中...');\n\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n\n // TODO: ソースコードが重複しているのでまとめてください\n const tableToImage = useCallback(() => {\n const tableWrapper = document.getElementById(\n `result_table_${props.pageId}`,\n );\n // @ts-ignore\n const table = tableWrapper.getElementsByTagName('table')[0];\n if (table !== undefined) {\n domtoimage\n .toPng(table)\n .then(function (dataUrl) {\n // dataUrlが返ってくるのでImageを生成し生成した画像を読み込む\n const img = new Image();\n img.src = dataUrl;\n img.className = 'w-full';\n\n // 読み込みが終わったらimgを描画する\n img.onload = () => {\n // @ts-ignore\n tableWrapper.appendChild(img);\n table.remove();\n };\n })\n .catch((error) => {\n console.log(error);\n });\n }\n }, [props.pageId]);\n\n // 解析データ表示\n // TODO: ソースコードが重複しているのでまとめてください\n const setResultTable = useCallback(() => {\n axios\n .get(`/ocr/analysis/${props.pageId}/page_table_result`)\n .then((res) => {\n console.log(res.data);\n if (res.data.status === 'success') {\n clearInterval(refTimerId.current as number);\n\n setResult(res.data.body);\n\n // 解析データ無し\n if (res.data.body.length === 0) {\n setProgress('OCR変換が出来ませんでした。');\n }\n\n tableToImage();\n } else if (res.data.status === 'failed') {\n setProgress('OCR変換が出来ませんでした。');\n clearInterval(refTimerId.current as number);\n } else if (res.data.status === 'error') {\n setProgress('OCR変換でエラーが発生しました。');\n clearInterval(refTimerId.current as number);\n }\n })\n .catch((err) => {\n console.log(err);\n setProgress('OCR変換でエラーが発生しました。');\n clearInterval(refTimerId.current as number);\n });\n }, [props.pageId, tableToImage]);\n\n // PDF表示(初期表示のみ)\n // TODO: ソースコードが重複しているのでまとめてください\n const setPdf = useCallback(() => {\n axios\n .get(`/ocr/analysis/${props.pageId}/page_pdf`)\n .then((res) => {\n setImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [props.pageId]);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n useEffect(() => {\n setPdf();\n setTimerId(setInterval(setResultTable, 3000));\n setResultTable();\n }, [setPdf, setResultTable]);\n\n return (\n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default ResultRow;\n","// extracted by mini-css-extract-plugin","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport axios from 'axios';\nimport domtoimage from 'dom-to-image';\n\ninterface ResultRowProp {\n pageId: string;\n}\n\nconst ResultRow: React.FC = (props: ResultRowProp) => {\n const [image, setImage] = useState('');\n const [result, setResult] = useState([]);\n const [progress, setProgress] = useState('ただいま解析中...');\n\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n\n // PDF表示(初期表示のみ)\n // TODO: ソースコードが重複しているのでまとめてください\n const setPdf = useCallback(() => {\n axios\n .get(`/ocr/analysis/${props.pageId}/page_pdf`)\n .then((res) => {\n setImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n }, [props.pageId]);\n\n // TODO: ソースコードが重複しているのでまとめてください\n const tableToImage = useCallback(() => {\n const tableWrapper = document.getElementById(\n `result_table_${props.pageId}`,\n );\n // @ts-ignore\n const table = tableWrapper.getElementsByTagName('table')[0];\n if (table !== undefined) {\n domtoimage\n .toPng(table)\n // @ts-ignore\n .then(function (dataUrl) {\n // dataUrlが返ってくるのでImageを生成し生成した画像を読み込む\n const img = new Image();\n img.src = dataUrl;\n img.className = 'w-full';\n\n // 読み込みが終わったらimgを描画する\n img.onload = () => {\n // @ts-ignore\n tableWrapper.appendChild(img);\n table.remove();\n };\n })\n // @ts-ignore\n .catch((error) => {\n console.log(error);\n });\n }\n }, [props.pageId]);\n\n // 解析データ表示\n // TODO: ソースコードが重複しているのでまとめてください\n const setResultTable = useCallback(() => {\n axios\n .get(`/ocr/analysis/${props.pageId}/page_table_result`)\n .then((res) => {\n console.log(res.data);\n if (res.data.status === 'success') {\n clearInterval(refTimerId.current as number);\n\n setResult(res.data.body);\n\n // 解析データ無し\n if (res.data.body.length === 0) {\n setProgress('OCR解析が出来ませんでした。');\n }\n\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n tableToImage();\n } else if (res.data.status === 'failed') {\n setProgress('OCR解析が出来ませんでした。');\n clearInterval(refTimerId.current as number);\n } else if (res.data.status === 'error') {\n setProgress('OCR解析でエラーが発生しました。');\n clearInterval(refTimerId.current as number);\n }\n })\n .catch((err) => {\n console.log(err);\n setProgress('OCR解析でエラーが発生しました。');\n clearInterval(refTimerId.current as number);\n });\n }, [props.pageId, tableToImage]);\n\n useEffect(() => {\n refTimerId.current = timerId;\n }, [timerId]);\n useEffect(() => {\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n setPdf();\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n setTimerId(setInterval(setResultTable, 3000));\n // @ts-ignore\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n setResultTable();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n }, [setPdf, setResultTable]);\n\n return (\n
    \n
    \n \n
    \n
    \n

    \n OCR解析結果\n

    \n \n \n {result && result.length > 0 ? (\n result.map((row, index) => (\n \n {/* @ts-ignore */}\n {row.map((value, idx) => (\n \n {value}\n \n ))}\n \n ))\n ) : (\n \n \n \n )}\n \n
    \n {progress === 'ただいま解析中...' ? (\n
    \n

    \n
    \n ) : null}\n
    \n {progress}\n
    \n
    \n
    \n
    \n );\n};\n\nexport default ResultRow;\n","import axios from 'axios';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n const targets: HTMLCollection =\n document.getElementsByClassName('thumbnail_pdf');\n if (targets.length > 0) {\n const pdf = document.getElementById('pdf');\n const container = document.getElementById('pdf_viewer');\n\n // クリックでPDF表示\n for (let i = 0; i < targets.length; i++) {\n // @ts-ignore\n const page_id: string = targets[i].getAttribute('data-page_id');\n targets[i]\n .getElementsByClassName('open_pdf_view')[0]\n .addEventListener('click', () => {\n const spinner = document.getElementById('load_spinner');\n // @ts-ignore\n spinner.style.display = 'flex';\n // const target = e.target;\n\n axios\n .get(`/ocr/analysis/${page_id}/page_pdf`)\n .then((res) => {\n // @ts-ignore\n pdf.setAttribute(\n 'src',\n `data:application/pdf;base64,${res.data}`,\n );\n // @ts-ignore\n container.style.display = 'flex';\n // @ts-ignore\n spinner.style.display = 'none';\n })\n .catch((err) => {\n console.log(err);\n });\n });\n }\n\n // モーダル閉じる\n // @ts-ignore\n container.addEventListener('click', (e) => {\n e.stopPropagation();\n\n if (e.target == container) {\n // @ts-ignore\n pdf.removeAttribute('src');\n // @ts-ignore\n container.style.display = 'none';\n }\n });\n }\n});\n","import React, { useEffect } from 'react';\nimport Modal from 'react-modal';\nimport { ModalProvider } from 'react-modal-hook';\nimport { useFormulaForm } from './hooks';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { FormulaWaccSelector } from './FormulaWaccSelector';\nimport { CompanyProps, FormulaFormProps, IndustryProps } from './types';\n\nconst modalStyle = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '0%',\n width: '90%',\n transform: 'translate(-50%, -50%)',\n },\n};\n\nexport const FormulaForm: React.FC = (props) => {\n const {\n userRole,\n resourceName,\n reportId,\n calculationId,\n industries,\n similaritiesCompanies,\n } = props;\n\n const {\n companyValue,\n valueText,\n requestSimilaritiesCompanies,\n unlevererdBeta,\n responseValidatesMessages,\n showModal,\n closeMessage,\n modalCheck,\n setModal,\n showValuation,\n showAverage,\n showMedian,\n showDeRatioAverage,\n hasValuationData,\n isChecked,\n checkCompanies,\n updateRequestSimilaritiesCompanies,\n changeRequestIndustry,\n convertYen,\n operateValuationResource,\n validateTargetValue,\n checkSimilaritiesCompaniesCount,\n postValuation,\n } = useFormulaForm(industries, similaritiesCompanies);\n const token = document\n ?.getElementById('report_valuation_form')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n\n useEffect(() => {\n Modal.setAppElement('#formula_form');\n checkSimilaritiesCompaniesCount();\n operateValuationResource(resourceName);\n window.addEventListener(\n 'message',\n (event) =>\n // @ts-ignore\n postValuation(\n event,\n resourceName,\n `/reports/${reportId}/formula/${resourceName}/${calculationId}`,\n `/reports/${reportId}/formula/${resourceName}/${calculationId}/check`,\n token,\n ),\n false,\n );\n }, [\n similaritiesCompanies,\n postValuation,\n resourceName,\n requestSimilaritiesCompanies,\n checkSimilaritiesCompaniesCount,\n operateValuationResource,\n reportId,\n calculationId,\n token,\n ]);\n\n return (\n \n {!similaritiesCompanies && 0 < industries?.length ? (\n
    \n

    \n 類似業種リスト\n

    \n changeRequestIndustry(e)}\n name=\"industry\"\n id=\"industry_id\"\n className=\"rounded-sm mt-1\"\n >\n {industries?.map((industry: IndustryProps) => (\n \n {industry['name']}\n \n ))}\n \n
    \n ) : (\n <>\n )}\n {requestSimilaritiesCompanies ? (\n
    \n
    \n

    類似上場企業の選択

    \n setModal(true)}\n className=\"bg-transparent py-2 text-xs hover:bg-green-500 text-green-700 font-semibold hover:text-white px-2 bg-white border border-green-500 hover:border-transparent rounded\"\n >\n 編集\n
    \n
    \n {requestSimilaritiesCompanies?.map((company: CompanyProps) => (\n
    \n
    \n
    \n {company.company_name}\n
    \n {resourceName === 'dcf' ? (\n
    \n

    {showValuation(company, 'de_ratio')}

    \n
    \n ) : (\n
    \n )}\n
    \n

    {showValuation(company, companyValue)}

    \n
    \n
    \n
    \n ))}\n
    \n
    \n {valueText} 平均値\n
    \n {resourceName === 'dcf' ? (\n
    \n ) : (\n
    \n )}\n
    \n {showAverage(requestSimilaritiesCompanies, companyValue).toFixed(\n 2,\n )}\n
    \n
    \n
    \n
    \n {valueText} 中央値\n
    \n {resourceName === 'dcf' ? (\n
    \n ) : (\n
    \n )}\n
    \n {showMedian(requestSimilaritiesCompanies, companyValue)}\n
    \n
    \n {resourceName === 'dcf' ? (\n
    \n
    \n D/Eレシオ 平均値\n
    \n
    \n

    \n {showDeRatioAverage(requestSimilaritiesCompanies).toFixed(2)}\n

    \n
    \n
    \n
    \n ) : (\n <>\n )}\n \n ) : (\n <>\n )}\n\n {resourceName === 'dcf' ? (\n \n ) : (\n <>\n )}\n\n {showModal ? (\n \n
    \n \n \n \n \n \n コード\n \n \n 会社名\n \n \n 時価総額\n \n \n 業種\n \n \n PER\n \n \n EV/EBITDA\n \n \n Unlevered_beta\n \n \n leverered_beta\n \n \n D/Eレシオ\n \n \n \n \n {similaritiesCompanies?.map((company: CompanyProps) => (\n \n \n \n \n \n \n \n \n \n \n \n \n ))}\n \n
    \n {hasValuationData(company, resourceName) ? (\n checkCompanies(e)}\n checked={isChecked(JSON.stringify(company))}\n autoComplete=\"off\"\n className=\"focus:ring-indigo-500 h-4 w-4 text-indigo-600 border-gray-300 rounded\"\n />\n ) : (\n ''\n )}\n \n {company.ticker}\n \n {company.company_name}\n \n {company.capital !== null\n ? `${convertYen(company.capital)}円`\n : null}\n \n {company.industry}\n \n {validateTargetValue(company, 'per')}\n \n {validateTargetValue(company, 'ev_per_ebitda')}\n \n {validateTargetValue(company, 'unlevered_beta')}\n \n {validateTargetValue(company, 'levered_beta')}\n \n {validateTargetValue(company, 'de_ratio')}\n
    \n
    \n {closeMessage && (\n

    \n 一つ以上の類似企業を選択してください。\n

    \n )}\n
    \n setModal(false)}\n >\n 閉じる\n \n \n 反映する\n
    \n \n
    \n ) : (\n <>\n )}\n \n
    \n );\n};\n","import React, { useEffect } from 'react';\nimport Modal from 'react-modal';\nimport { useFormulaWaccSelector } from './hooks';\nimport { FormulaWaccSelectorProps } from './types';\nimport {\n EQUITY_RISK_PREMIUM,\n RISK_FREE_RATE,\n modalStyle,\n} from '../../../utils/constant';\n\nexport const FormulaWaccSelector: React.FC = (\n props,\n) => {\n const { averageUnleveredBeta, userRole } = props;\n const {\n showModal,\n dcfProps,\n riskFreeRate,\n equityRiskPremium,\n unleveredB,\n setUnleveredB,\n setSizeRiskPremium,\n setEquityRiskPremium,\n setRiskFreeRate,\n setModal,\n getEffectiveTaxRate,\n getlevererdβ,\n getEquityCost,\n getWacc,\n getStockRate,\n getDebtRate,\n getDebtCost,\n castNull,\n postCapmMessage,\n addValuationListener,\n } = useFormulaWaccSelector(averageUnleveredBeta);\n\n useEffect(() => {\n setUnleveredB(averageUnleveredBeta);\n }, [averageUnleveredBeta, setUnleveredB]);\n useEffect(() => {\n addValuationListener();\n }, [averageUnleveredBeta, addValuationListener]);\n\n return (\n <>\n
    \n
    \n

    WACC(割引率の計算)

    \n setModal(true)}\n className=\"cursor-pointer bg-transparent py-2 text-xs hover:bg-green-500 text-green-700 font-semibold hover:text-white px-2 bg-white border border-green-500 hover:border-transparent rounded\"\n >\n 編集\n
    \n
    \n
    \n

    実効税率

    \n {dcfProps &&

    {getEffectiveTaxRate()} %

    }\n
    \n\n
    \n

    Unlevererdβ 平均値

    \n {dcfProps &&

    {unleveredB?.toFixed(2)}

    }\n
    \n\n
    \n

    Levererdβ

    \n {dcfProps && (\n

    \n {Math.floor(getlevererdβ() * 100) / 100}\n

    \n )}\n
    \n\n
    \n

    リスクフリーレート

    \n {dcfProps && (\n

    \n {(castNull(riskFreeRate, RISK_FREE_RATE) * 100).toFixed(2)} %\n

    \n )}\n
    \n\n
    \n

    エクイティリスクプレミアム

    \n {dcfProps && (\n

    \n {(castNull(equityRiskPremium, EQUITY_RISK_PREMIUM) * 100).toFixed(\n 2,\n )}\n %\n

    \n )}\n
    \n\n
    \n

    株主資本コスト

    \n {dcfProps && (\n

    \n {Math.floor(getEquityCost() * 100 * 100) / 100} %\n

    \n )}\n
    \n\n
    \n

    税引後負債コスト

    \n {dcfProps && (\n

    \n {Math.ceil(castNull(getDebtCost(), 0) * 100 * 100) / 100} %\n

    \n )}\n
    \n\n
    \n

    負債比率

    \n {dcfProps && (\n

    \n {castNull(getDebtRate() * 100, 0).toFixed(2)} %\n

    \n )}\n
    \n\n
    \n

    株式比率

    \n {dcfProps && (\n

    \n {castNull(getStockRate() * 100, 0).toFixed(2)} %\n

    \n )}\n
    \n\n
    \n

    WACC

    \n {dcfProps && (\n

    \n {castNull(getWacc() * 100, 0).toFixed(2)} %\n

    \n )}\n
    \n {userRole === 1 ? (\n
    \n

    \n *株主資本コストはサイズリスクプレミアム適用前の数値を表示しています。\n

    \n
    \n ) : (\n <>\n )}\n \n\n {showModal ? (\n \n

    CAPMの設定

    \n
    \n
    \n

    Unlevererdβ

    \n setUnleveredB(Number(e.target.value))}\n >\n

    %

    \n
    \n\n
    \n

    リスクフリーレート

    \n setRiskFreeRate(Number(e.target.value) / 100)}\n >\n

    %

    \n
    \n\n
    \n

    エクイティリスクプレミアム

    \n \n setEquityRiskPremium(Number(e.target.value) / 100)\n }\n >\n

    %

    \n
    \n\n
    \n

    サイズリスクプレミアム

    \n \n setSizeRiskPremium(Number(e.target.value) / 100)\n }\n >\n

    %

    \n
    \n
    \n
    \n setModal(false)}\n >\n 閉じる\n \n \n 反映する\n
    \n \n
    \n ) : (\n <>\n )}\n \n );\n};\n","import axios from 'axios';\nimport { postCalculationProps, validateItemProps } from './types';\nexport const postCalculation: (\n options: postCalculationProps,\n path: string,\n _callbacks: {\n _setModalCheck: (arg: boolean) => void;\n _setResponseValidatesMessages: (arg: string[]) => void;\n },\n) => Promise = (options, path, _callbacks) => {\n const { _setModalCheck, _setResponseValidatesMessages } = _callbacks;\n return axios(options)\n .then((res) => {\n if (res.status === 200 && res.data.status === 'success') {\n location.href = path;\n } else {\n const validateItems: validateItemProps[] = JSON.parse(\n res.data.valuation_results,\n ).validates;\n const validateMessages: string[] = validateItems.map((item) =>\n item.message.replace(item.key, item.name).replace('null', '未入力'),\n );\n _setModalCheck(true);\n _setResponseValidatesMessages(validateMessages);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n};\n","import { useCallback, useRef, useState } from 'react';\nimport { postCalculation } from './api';\nimport {\n CompanyProps,\n DcfProps,\n IndustryProps,\n postCalculationProps,\n requestDataProps,\n} from './types';\nimport {\n EQUITY_RISK_PREMIUM,\n MAX_TAX_RATE,\n MIN_TAX_RATE,\n RISK_FREE_RATE,\n SIZE_RISK_PREMIUM,\n} from '../../../utils/constant';\n\nexport const useFormulaForm = (\n industries: IndustryProps[],\n similaritiesCompanies: CompanyProps[],\n similarIndustry?: IndustryProps,\n) => {\n const [showModal, setModal] = useState(false);\n const [closeMessage, setCloseMessage] = useState(false);\n const [modalCheck, setModalCheck] = useState(false);\n const [companyValue, setCompanyValue] = useState('per');\n const [responseValidatesMessages, setResponseValidatesMessages] = useState<\n string[]\n >([]);\n const [unlevererdBeta, setUnlevererdBeta] = useState(0);\n const [valueText, setValueText] = useState('per');\n const [requestIndustry, setRequestIndustry] = useState(\n industries?.[0]?.['industry_id'],\n );\n const [checkedSimilaritiesCompanies, setCheckedSimilaritiesCompanies] =\n useState([]);\n const [requestSimilaritiesCompanies, setRequestSimilaritiesCompanies] =\n useState(similaritiesCompanies);\n const selectedCompaniesRef = useRef([]);\n selectedCompaniesRef.current = requestSimilaritiesCompanies;\n\n /**\n * 算定に利用する類似企業の任意の値を表示\n * @params {company}\n * @return {number | string}\n */\n const showValuation = useCallback(\n (\n company: CompanyProps,\n targetValue: keyof CompanyProps,\n ): number | string => {\n if (!company[targetValue]) return '-';\n return Number(company[targetValue]).toFixed(2);\n },\n [],\n );\n\n /**\n * 類似企業内から算定アプローチが入力済みの企業を取得\n * @param similarities_companies {similarities_companies}\n * @param targetValue {string}\n * @return {Array}\n */\n const filterCompanies = useCallback(\n (\n similarities_companies: CompanyProps[],\n targetValue: keyof CompanyProps,\n ): Array => {\n return similarities_companies\n .filter((company: CompanyProps) => company[targetValue])\n .map((company: CompanyProps) => {\n return company[targetValue];\n });\n },\n [],\n );\n\n /**\n * 指定類似企業数値の値の合計値\n * @param companies {string}\n * @param targetValue {string}\n * @return sum {number}\n */\n const sumValuationApproach = useCallback(\n (companies: CompanyProps[], targetValue: keyof CompanyProps): number => {\n return companies?.reduce((sum: number, company: CompanyProps) => {\n return sum + Number(company[targetValue]);\n }, 0);\n },\n [],\n );\n\n /**\n * Valuation平均値\n * @param companies {string}\n * @param targetValue {string}\n * @return {number}\n */\n const showAverage = useCallback(\n (companies: CompanyProps[], targetValue: keyof CompanyProps): number => {\n const sumValuationResult: number = sumValuationApproach(\n companies,\n targetValue,\n );\n const validSimilarities = filterCompanies(companies, targetValue);\n return sumValuationResult / validSimilarities.length;\n },\n [filterCompanies, sumValuationApproach],\n );\n\n /**\n * Valuation中央値\n * @param companies {string}\n * @param targetValue {string}\n * @return {string}\n */\n const showMedian = useCallback(\n (companies: CompanyProps[], targetValue: keyof CompanyProps): string => {\n const filteredCompanies = filterCompanies(companies, targetValue);\n filteredCompanies.sort((a, b) => {\n return Number(a) - Number(b);\n });\n const half = Math.floor(filteredCompanies.length / 2);\n return filteredCompanies.length % 2\n ? Number(filteredCompanies[half]).toFixed(2)\n : (\n (Number(filteredCompanies[half - 1]) +\n Number(filteredCompanies[half])) /\n 2\n ).toFixed(2);\n },\n [filterCompanies],\n );\n\n /**\n * D/Eレシオ平均値\n * @param companies {string}\n * @return {number}\n */\n const showDeRatioAverage = useCallback(\n (companies: CompanyProps[]): number => {\n const sumValuationResult: number = sumValuationApproach(\n companies,\n 'de_ratio',\n );\n const validSimilarities = filterCompanies(companies, 'de_ratio');\n return sumValuationResult / validSimilarities.length;\n },\n [filterCompanies, sumValuationApproach],\n );\n\n /**\n * 類似企業の値を確認\n * @param companies {string}\n * @param resourceName {string}\n * @return {boolean}\n */\n const hasValuationData = useCallback(\n (\n company: CompanyProps,\n resourceName: 'dcf' | 'per' | 'ebitda',\n ): boolean => {\n switch (resourceName) {\n case 'dcf':\n return (\n company.unlevered_beta !== '' &&\n company.unlevered_beta !== null &&\n company.levered_beta !== '' &&\n company.levered_beta !== null &&\n company.de_ratio !== '' &&\n company.de_ratio !== null\n );\n case 'ebitda':\n return company.ev_per_ebitda !== '' && company.ev_per_ebitda !== null;\n case 'per':\n return company.per !== '' && company.per !== null;\n default:\n return true;\n }\n },\n [],\n );\n\n /**\n * 類似企業のチェックステータスを設定\n * @param company {string}\n * @return {boolean}\n */\n const isChecked = useCallback(\n (company: string): boolean => {\n const checkCompany = JSON.parse(company);\n const matchedCompany = checkedSimilaritiesCompanies?.filter(\n (selectedCompany: CompanyProps) =>\n selectedCompany.ticker === checkCompany.ticker,\n );\n return 0 < matchedCompany.length;\n },\n [checkedSimilaritiesCompanies],\n );\n\n /**\n * 選択済みの企業か確認\n * @params selectedCompanies {CompanyProps[]} 既に選択されている企業\n * @params changedCompany {CompanyProps} 選択した企業\n * @return {boolean}\n */\n const sortCompanies = useCallback(\n (\n selectedCompanies: CompanyProps[],\n changedCompany: CompanyProps,\n ): CompanyProps[] => {\n const sameCompany = selectedCompanies.filter(\n (prev_company: CompanyProps) =>\n prev_company.ticker === changedCompany.ticker,\n );\n\n if (0 < sameCompany.length) {\n const unChangedCompanies = selectedCompanies.filter(\n (prev_company: CompanyProps) =>\n prev_company.ticker !== changedCompany.ticker,\n );\n return [...unChangedCompanies];\n } else {\n return [...selectedCompanies, changedCompany];\n }\n },\n [],\n );\n\n /**\n * 類似企業のチェックステータスを設定\n * @params e\n * @return {boolean}\n */\n const checkCompanies = useCallback(\n (e): void => {\n const changedCompany: CompanyProps = JSON.parse(e.target.value);\n const sortedCompanies: CompanyProps[] = sortCompanies(\n checkedSimilaritiesCompanies,\n changedCompany,\n );\n setCheckedSimilaritiesCompanies(sortedCompanies);\n },\n [checkedSimilaritiesCompanies, sortCompanies],\n );\n\n /**\n * チェックされた類似企業が一つ以上あればモーダルを閉じる\n * @params {selectedCompanies} 既に選択されている企業\n * @params {changedCompany} 選択した企業\n * @return {void}\n */\n const updateRequestSimilaritiesCompanies = useCallback((): void => {\n if (0 > checkedSimilaritiesCompanies.length) {\n setCloseMessage(true);\n }\n setRequestSimilaritiesCompanies(checkedSimilaritiesCompanies);\n setUnlevererdBeta(showAverage(checkedSimilaritiesCompanies, companyValue));\n setModal(false);\n }, [checkedSimilaritiesCompanies, companyValue, showAverage]);\n\n /**\n * 選択した類似企業から算定に利用できる企業を作成\n * @params companies {CompanyProps[]}\n * @params resourceName {keyof CompanyProps}\n * @return companies {CompanyProps[]}\n */\n const filterRequestSimilaritiesCompanies = useCallback(\n (\n companies: CompanyProps[],\n resourceName: 'dcf' | 'per' | 'ebitda',\n ): CompanyProps[] => {\n const resultCompanies: CompanyProps[] = companies.filter(\n (company: CompanyProps) => {\n if (hasValuationData(company, resourceName)) {\n return company;\n }\n },\n );\n return resultCompanies;\n },\n [hasValuationData],\n );\n\n /**\n * 業種を利用する場合に業種IDを設定\n * @return void\n */\n const changeRequestIndustry = useCallback((e): void => {\n setRequestIndustry(e.target.value);\n }, []);\n\n /**\n * 円単位を変換\n * @return string\n */\n const convertYen = useCallback((val: number): string => {\n return Math.floor(Math.round(val)).toLocaleString();\n }, []);\n\n /**\n * 指定の指標のvalidation\n * @params company {CompanyProps}\n * @params targetValue {keyof CompanyProps}\n * @return string\n */\n const validateTargetValue = useCallback(\n (company: CompanyProps, targetValue: keyof CompanyProps): null | string => {\n if (!company[targetValue] || company[targetValue] === '') {\n return null;\n }\n return Number(company[targetValue]).toFixed(2);\n },\n [],\n );\n\n /**\n * 類似企業があれば関数を実行\n * @return void\n */\n const checkSimilaritiesCompaniesCount = useCallback((): void => {\n if (0 < similaritiesCompanies?.length) {\n setUnlevererdBeta(\n showAverage(requestSimilaritiesCompanies, companyValue),\n );\n }\n }, [\n companyValue,\n requestSimilaritiesCompanies,\n showAverage,\n similaritiesCompanies?.length,\n ]);\n\n /**\n * state関数を実行\n * @params resourceName {'dcf' | 'per' | 'ebitda'}\n * @return void\n */\n const operateValuationResource = useCallback(\n (resourceName: 'dcf' | 'per' | 'ebitda'): void => {\n switch (resourceName) {\n case 'dcf':\n setCompanyValue('unlevered_beta');\n setValueText('Unleverdβ');\n break;\n case 'per':\n setCompanyValue('per');\n setValueText('PER');\n break;\n case 'ebitda':\n setCompanyValue('ev_per_ebitda');\n setValueText('EV/EBITDA');\n break;\n default:\n break;\n }\n },\n [],\n );\n\n const postValuation = useCallback(\n async (e, resourceName, requestPath, callbackPath, token) => {\n if (e.data && e.data.name === 'submitMaForm') {\n const requestData: requestDataProps = {\n results: e.data,\n industry: requestIndustry,\n similarities_list:\n selectedCompaniesRef.current !== null\n ? filterRequestSimilaritiesCompanies(\n selectedCompaniesRef.current,\n resourceName,\n )\n : null,\n };\n const requestConfig: postCalculationProps = {\n method: 'post',\n url: requestPath,\n data: requestData,\n // @ts-ignore\n headers: { 'X-CSRF-Token': token },\n };\n const callbackFuncs = {\n _setModalCheck: setModalCheck,\n _setResponseValidatesMessages: setResponseValidatesMessages,\n };\n await postCalculation(requestConfig, callbackPath, callbackFuncs);\n } else if (e.data && e.data.name === 'sendTempFormAction') {\n // @ts-ignore\n document.scrollingElement.scrollTop = window.top;\n } else if (\n e.data &&\n e.data.name === 'cancelMaForm' &&\n e.data.value === 'canceled'\n ) {\n // @ts-ignore\n document.scrollingElement.scrollTop = window.top;\n }\n },\n [\n requestIndustry,\n filterRequestSimilaritiesCompanies,\n setModalCheck,\n setResponseValidatesMessages,\n ],\n );\n\n const switchResourceValue = useCallback(\n (resourceName) => {\n switch (resourceName) {\n case 'per':\n return { name: 'PER 平均値', value: similarIndustry?.per };\n case 'ebitda':\n return {\n name: 'EV/EBITDA 平均値',\n value: similarIndustry?.ebitda_ratio,\n };\n case 'dcf':\n return { name: 'D/Eレシオ 平均値', value: similarIndustry?.de_ratio };\n }\n },\n [\n similarIndustry?.de_ratio,\n similarIndustry?.ebitda_ratio,\n similarIndustry?.per,\n ],\n );\n\n return {\n requestIndustry,\n companyValue,\n valueText,\n checkedSimilaritiesCompanies,\n requestSimilaritiesCompanies,\n unlevererdBeta,\n responseValidatesMessages,\n showModal,\n closeMessage,\n modalCheck,\n setUnlevererdBeta,\n setResponseValidatesMessages,\n setModal,\n setCloseMessage,\n setModalCheck,\n showValuation,\n showAverage,\n showMedian,\n showDeRatioAverage,\n hasValuationData,\n isChecked,\n sortCompanies,\n checkCompanies,\n updateRequestSimilaritiesCompanies,\n filterRequestSimilaritiesCompanies,\n changeRequestIndustry,\n convertYen,\n operateValuationResource,\n validateTargetValue,\n checkSimilaritiesCompaniesCount,\n postValuation,\n switchResourceValue,\n };\n};\n\nexport const useFormulaWaccSelector = (averageUnleveredBeta: number) => {\n const [showModal, setModal] = useState(false);\n const [iframeOrigin, setIframeOrigin] = useState(null);\n const [dcfProps, setDcfProps] = useState(null);\n const [unleveredB, setUnleveredB] = useState(null);\n const [riskFreeRate, setRiskFreeRate] = useState(null);\n const [equityRiskPremium, setEquityRiskPremium] = useState(\n null,\n );\n const [sizeRiskPremium, setSizeRiskPremium] = useState(null);\n\n /**\n * nullを除外した数値を返す\n * @params prop {number | null}\n * @params value {number}\n * @return number\n */\n const castNull = useCallback(\n (prop: number | null | undefined, value: number): number => {\n if (prop === null || typeof prop === 'undefined' || isNaN(prop)) {\n return value;\n }\n return prop;\n },\n [],\n );\n\n /**\n * 実行税率を取得\n * @return number\n */\n const getEffectiveTaxRate = useCallback((): number => {\n if (typeof dcfProps?.share_capital !== 'number') return 0.0;\n return dcfProps?.share_capital <= 10 ** 8 ? MAX_TAX_RATE : MIN_TAX_RATE;\n }, [dcfProps]);\n\n /**\n * レバードβを取得\n * @return number\n */\n const getlevererdβ = useCallback((): number => {\n if (\n typeof getEffectiveTaxRate() !== 'number' ||\n typeof dcfProps?.wacc?.de_ratio !== 'number' ||\n typeof unleveredB !== 'number'\n )\n return 0.0;\n return (\n unleveredB *\n (1.0 + (1.0 - getEffectiveTaxRate() / 100) * dcfProps?.wacc?.de_ratio)\n );\n }, [dcfProps?.wacc?.de_ratio, getEffectiveTaxRate, unleveredB]);\n\n /**\n * 株主資本コストを取得\n * @return number\n */\n const getEquityCost = useCallback((): number => {\n return (\n castNull(riskFreeRate, RISK_FREE_RATE) +\n castNull(equityRiskPremium, EQUITY_RISK_PREMIUM) * getlevererdβ() +\n castNull(sizeRiskPremium, SIZE_RISK_PREMIUM)\n );\n }, [\n castNull,\n equityRiskPremium,\n getlevererdβ,\n riskFreeRate,\n sizeRiskPremium,\n ]);\n\n /**\n * 税引後負債コストを取得\n * @return number\n */\n const getDebtCost = useCallback((): number => {\n if (\n typeof dcfProps?.interest_expenses !== 'number' ||\n typeof dcfProps?.interest_bearing_debt_before_2term !== 'number' ||\n typeof dcfProps?.interest_bearing_debt !== 'number'\n )\n return 0.0;\n return (\n (dcfProps?.interest_expenses /\n ((dcfProps?.interest_bearing_debt_before_2term +\n dcfProps?.interest_bearing_debt) /\n 2)) *\n (1.0 - getEffectiveTaxRate() / 100)\n );\n }, [\n dcfProps?.interest_bearing_debt,\n dcfProps?.interest_bearing_debt_before_2term,\n dcfProps?.interest_expenses,\n getEffectiveTaxRate,\n ]);\n\n /**\n * 負債比率を取得\n * @return number\n */\n const getDebtRate = useCallback((): number => {\n if (typeof dcfProps?.wacc?.de_ratio !== 'number') return 0.0;\n return dcfProps?.wacc?.de_ratio / (dcfProps?.wacc?.de_ratio + 1.0);\n }, [dcfProps?.wacc?.de_ratio]);\n\n /**\n * 株主比率を取得\n * @return number\n */\n const getStockRate = useCallback((): number => {\n return 1.0 - getDebtRate();\n }, [getDebtRate]);\n\n /**\n * WACCを取得\n * @return number\n */\n const getWacc = useCallback((): number => {\n return getDebtCost() * getDebtRate() + getEquityCost() * getStockRate();\n }, [getDebtCost, getDebtRate, getEquityCost, getStockRate]);\n\n /**\n * iframeにmessage送信\n * @return void\n */\n const postCapmMessage = useCallback((): void => {\n iframeOrigin?.source?.postMessage(\n {\n name: 'updateProps',\n value: {\n size_risk_premium: sizeRiskPremium,\n unlevered_beta: unleveredB,\n equity_risk_premium: equityRiskPremium,\n risk_free_rate: riskFreeRate,\n },\n },\n // @ts-ignore\n '*',\n );\n setModal(!showModal);\n }, [\n equityRiskPremium,\n iframeOrigin?.source,\n riskFreeRate,\n showModal,\n sizeRiskPremium,\n unleveredB,\n ]);\n\n /**\n * リスナー関数を登録\n * @return void\n */\n const addValuationListener = useCallback(() => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitSource') {\n setDcfProps(event.data.props.subjects.financials);\n setUnleveredB(\n castNull(\n event.data.props.subjects.financials.wacc?.unlevered_beta,\n averageUnleveredBeta,\n ),\n );\n setRiskFreeRate(\n event.data.props.subjects.financials.wacc?.capm?.risk_free_rate,\n );\n setEquityRiskPremium(\n event.data.props.subjects.financials.wacc?.capm\n ?.equity_risk_premium,\n );\n setSizeRiskPremium(\n event.data.props.subjects.financials.wacc?.capm?.size_risk_premium,\n );\n setIframeOrigin(event);\n }\n },\n false,\n );\n }, [averageUnleveredBeta, castNull]);\n\n return {\n showModal,\n dcfProps,\n iframeOrigin,\n riskFreeRate,\n equityRiskPremium,\n sizeRiskPremium,\n unleveredB,\n setUnleveredB,\n setSizeRiskPremium,\n setEquityRiskPremium,\n setRiskFreeRate,\n setIframeOrigin,\n setDcfProps,\n setModal,\n getEffectiveTaxRate,\n getlevererdβ,\n getEquityCost,\n getWacc,\n getStockRate,\n getDebtRate,\n getDebtCost,\n castNull,\n postCapmMessage,\n addValuationListener,\n };\n};\n","import React, { useEffect } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useOcrResults } from './hooks';\nimport { OcrResultRow } from './OcrResultRow';\nimport { BsContainer } from '../../../components/Subject/bs/BsContainer';\nimport { PlContainer } from '../../../components/Subject/pl/PlContainer';\nimport { SgaContainer } from '../../../components/Subject/sga/SgaContainer';\nimport { OcrResultProp } from './types';\n\nexport const OcrResult: React.FC = (props) => {\n const { reportId, fileId, pageIds, phase } = props;\n const token = document\n ?.getElementById('ocr_result_form')\n ?.getElementsByTagName('input')[0].value;\n const { handleSubmit, getValues, setValue, control } = useForm({\n defaultValues: {\n subject: '',\n },\n criteriaMode: 'all',\n shouldFocusError: true,\n });\n const {\n subject,\n visibleFlg,\n loadingMessage,\n setTimerId,\n getStatus,\n onSubmit,\n } = useOcrResults({\n reportId,\n fileId,\n setValue,\n pageIds,\n getValues,\n // @ts-ignore\n token,\n });\n useEffect(() => {\n setTimerId(setInterval(getStatus, 3000));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n
    \n
    \n

    \n 解析元決算書ファイル\n

    \n {pageIds.map((value: string) => (\n \n ))}\n
    \n
    \n {\n // @ts-ignore\n 0 < subject?.length ? (\n
    \n
    \n {visibleFlg ? (\n <>\n
    \n
    \n

    \n PDFデータから自動で取り込む\n

    \n
    \n
    \n \n 算定に反映する\n \n
    \n
    \n

    \n データ取り込みが完了しました。取り込みデータを編集することができます。\n

    \n \n ) : (\n <>\n )}\n
    \n {phase !== '3' ? (\n
    \n \n
    \n ) : (\n <>\n )}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n ) : (\n
    \n

    \n {loadingMessage}\n

    \n

    \n ※\n 枚数が多い場合、時間がかかる可能性がございます。ご了承ください。\n

    \n

    \n
    \n )\n }\n
    \n
    \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useOcrResultRows } from './hooks';\nimport { OcrResultRowProp } from './types';\n\nexport const OcrResultRow: React.FC = (props) => {\n const { reportId, pageId } = props;\n const { image, getPdfRequest } = useOcrResultRows({ reportId, pageId });\n\n useEffect(() => {\n getPdfRequest();\n }, [getPdfRequest, pageId, reportId]);\n\n return (\n
    \n
    \n \n
    \n
    \n );\n};\n","import { Dispatch, MutableRefObject, SetStateAction } from 'react';\nimport axios, { AxiosError, AxiosResponse } from 'axios';\nimport { OcrPageProps, getPdfProps, ocrRequestProps } from './types';\nimport { Subjects } from '../../../components/Subject/types';\n\nexport const getPdf = (props: getPdfProps) => {\n const { reportId, pageId, setImage } = props;\n axios\n .get(`/reports/${reportId}/ocr/analysis_fs/${pageId}/page_pdf`)\n .then((res) => {\n setImage(`data:application/pdf;base64,${res.data}`);\n })\n .catch((err) => {\n console.log(err);\n });\n};\n\nexport const postFileSummary: (\n options: ocrRequestProps,\n path: string,\n) => Promise = (options, path) => {\n return axios(options)\n .then((res) => {\n if (res.data.status === 201) {\n location.href = path;\n }\n })\n .catch((err) => {\n console.log(err);\n });\n};\n\nexport const getFileSummary: (\n options: ocrRequestProps,\n _setValue: (arg: string, arg_second: Subjects) => void,\n _setSubject: (arg: Subjects[]) => void,\n _visibleDownloadButton: () => void,\n) => Promise = (\n options,\n _setValue,\n _setSubject,\n _visibleDownloadButton,\n) => {\n return axios(options)\n .then((res) => {\n if (res.status === 200) {\n _setValue('subject', res.data.subjects);\n _setSubject([res.data.subjects]);\n _visibleDownloadButton();\n }\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\nexport const getFileStatus: (\n options: ocrRequestProps,\n path: string,\n _callbackProps: {\n _pageIds: string[];\n _refTimerId: MutableRefObject;\n _getSummary: () => void;\n _setloadingMessage: Dispatch>;\n startTime: number;\n },\n) => Promise = (\n options,\n path,\n _callbackProps,\n) => {\n const { _pageIds, _refTimerId, _getSummary, _setloadingMessage, startTime } =\n _callbackProps;\n return axios(options)\n .then((res: AxiosResponse) => {\n if (res.status === 200) {\n if ((Date.now() - startTime) / 1000 > 120) {\n clearInterval(_refTimerId.current as number);\n _setloadingMessage('画像解析中にエラーが発生しました。');\n location.href = path;\n }\n const analyzedFile: OcrPageProps[] = res?.data.pages.filter(\n (page: OcrPageProps) =>\n page.status === 'success' || page.status === 'failed',\n );\n if (analyzedFile.length === _pageIds.length) {\n _getSummary();\n clearInterval(_refTimerId.current as number);\n }\n }\n })\n .catch((err: AxiosError) => {\n console.log(err);\n });\n };\n","import { useCallback, useRef, useState } from 'react';\nimport { getFileStatus, getFileSummary, getPdf, postFileSummary } from './api';\nimport {\n ocrRequestProps,\n requestDataProps,\n useOcrResultRowsProps,\n useOcrResultsProps,\n} from './types';\n\nexport const useOcrResults = (props: useOcrResultsProps) => {\n const {\n reportId,\n fileId,\n setValue,\n pageIds,\n getValues,\n token,\n } = props;\n const startTime = Date.now();\n const [loadingMessage, setloadingMessage] =\n useState('画像を解析します');\n const [subject, setSubject] = useState([] as unknown);\n const [visibleFlg, setVisibleFlg] = useState(false);\n // @ts-ignore\n const [timerId, setTimerId] = useState(0);\n const refTimerId = useRef(timerId);\n refTimerId.current = timerId;\n\n const visibleDownloadButton = useCallback((): void => {\n const proressDoms: HTMLCollectionOf =\n document.getElementsByClassName('analyze_progress');\n const vFlg = !Array.from(proressDoms).some(\n (proressDom) => proressDom.textContent === 'ただいま解析中...',\n );\n if (vFlg) {\n setVisibleFlg(vFlg);\n }\n }, []);\n\n const getSummary = useCallback(async (): Promise => {\n const requestConfig: ocrRequestProps = {\n method: 'get',\n url: `/reports/${reportId}/ocr/analysis_fs/${fileId}/file_summary.json`,\n };\n await getFileSummary(\n requestConfig,\n // @ts-ignore\n setValue,\n setSubject,\n visibleDownloadButton,\n );\n }, [fileId, reportId, setValue, visibleDownloadButton]);\n\n const getStatus = useCallback(async (): Promise => {\n const requestConfig: ocrRequestProps = {\n method: 'get',\n url: `/reports/${reportId}/ocr/analysis_fs/${fileId}/file_status`,\n };\n await getFileStatus(requestConfig, `/reports/${reportId}`, {\n _pageIds: pageIds,\n _refTimerId: refTimerId,\n _getSummary: getSummary,\n _setloadingMessage: setloadingMessage,\n startTime: startTime,\n });\n }, [fileId, getSummary, pageIds, reportId, startTime]);\n\n const updateFileSummary = useCallback((): void => {\n // @ts-ignore\n const requestData: requestDataProps = { subject: getValues('subject') };\n const requestConfig: ocrRequestProps = {\n method: 'post',\n data: requestData,\n url: `/reports/${reportId}/ocr/analysis_fs/${fileId}/update_file_summary.json`,\n headers: {\n // @ts-ignore\n 'X-CSRF-Token': token,\n },\n };\n postFileSummary(requestConfig, `/reports/${reportId}`);\n }, [fileId, getValues, reportId, token]);\n\n const onSubmit = (): void => {\n updateFileSummary();\n };\n\n return {\n refTimerId,\n subject,\n visibleFlg,\n startTime,\n loadingMessage,\n setTimerId,\n setloadingMessage,\n setVisibleFlg,\n setSubject,\n visibleDownloadButton,\n getSummary,\n getStatus,\n updateFileSummary,\n onSubmit,\n };\n};\n\nexport const useOcrResultRows = (props: useOcrResultRowsProps) => {\n const { reportId, pageId } = props;\n const [image, setImage] = useState('');\n const getPdfRequest = useCallback(() => {\n return getPdf({ reportId, pageId, setImage });\n }, [setImage, pageId, reportId]);\n return {\n image,\n setImage,\n getPdfRequest,\n };\n};\n","import React, { useEffect } from 'react';\nimport { ModalProvider } from 'react-modal-hook';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { useReportCalculation } from './hooks';\nimport { ReportCalculationProps } from './types';\nimport { ReportCalculationButton } from './ReportCalculationButton';\n\nexport const ReportCalculation: React.FC = (props) => {\n const {\n valuationName,\n valuationType,\n report,\n calculation,\n isCalculated,\n hasMultipleCalculations,\n canUseOcrResult,\n canUseManualSubjectInputResults,\n checkValuationResults,\n icon,\n getValuationForm,\n checkValuation,\n } = props;\n const {\n valuation,\n deleteValuationCalculation,\n nonLiquidityDiscount,\n nameStyle,\n modalCheck,\n openDeleteModal,\n setValuation,\n setNonLiquidityDiscount,\n setModalCheck,\n } = useReportCalculation(isCalculated, calculation);\n\n useEffect(() => {\n if (calculation.result) {\n const persedResults = JSON.parse(calculation.result);\n // @ts-ignore\n checkValuationResults(\n persedResults,\n setValuation(parseFloat(persedResults.result.valuation)),\n setNonLiquidityDiscount(\n persedResults.breakdown[0].non_liquidity_discount,\n ),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n
    \n
    \n
    \n
    \n \n

    {valuationName}

    \n {hasMultipleCalculations ? (\n openDeleteModal(calculation)}\n className=\"cursor-pointer bg-white text-red-500 justify-right hover:bg-red-600 border border-red-600 text-red-400 hover:text-white text-xs px-2 py-0.5 rounded-sm inline-flex items-center\"\n >\n 削除\n
    \n ) : (\n <>\n )}\n
    \n
    \n
    \n {calculation.result ? (\n checkValuation(valuation, nonLiquidityDiscount)\n ) : (\n

    \n 未評価\n

    \n )}\n {calculation.result ? (\n \n ) : (\n <>\n )}\n {isCalculated ? (\n <>\n ) : (\n <>\n {canUseOcrResult || canUseManualSubjectInputResults ? (\n
    \n
    \n \n getValuationForm(\n `/reports/${report.id}/formula/${valuationType}/${calculation.id}?ocr=true`,\n )\n }\n className=\"cursor-pointer text-center inline-flex items-center px-6 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書結果から計算する\n
    \n
    \n \n ) : (\n
    \n
    \n \n getValuationForm(\n `/reports/${report.id}/formula/${valuationType}/${calculation.id}?ocr=false`,\n )\n }\n className=\"cursor-pointer text-center inline-flex items-center px-14 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 計算する\n
    \n
    \n \n )}\n \n )}\n \n {deleteValuationCalculation !== null ||\n typeof deleteValuationCalculation !== 'undefined' ? (\n \n ) : (\n <>\n )}\n
    \n );\n};\n","import React from 'react';\nimport { reportCalculationButtonProps } from './types';\n\nexport const ReportCalculationButton: React.FC = (\n props,\n) => {\n const {\n reportId,\n valuation,\n calculation,\n valuationType,\n canUseOcrResult,\n canUseManualSubjectInputResults,\n getValuationForm,\n } = props;\n\n switch (valuation) {\n case 0:\n return (\n
    \n
    \n \n getValuationForm(\n `/reports/${reportId}/formula/${valuationType}/${calculation.id}?ocr=true`,\n )\n : () =>\n getValuationForm(\n `/reports/${reportId}/formula/${valuationType}/${calculation.id}?ocr=false`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-4 py-1 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 再計算を行う\n
    \n
    \n \n );\n default:\n return (\n <>\n {canUseOcrResult || canUseManualSubjectInputResults ? (\n
    \n
    \n \n getValuationForm(\n `/reports/${reportId}/formula/${valuationType}/${calculation.id}?ocr=true`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-12 py-1 border shadow-sm text-sm font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書から再計算\n
    \n
    \n \n ) : (\n
    \n
    \n \n getValuationForm(\n `/reports/${reportId}/formula/${valuationType}/${calculation.id}?ocr=false`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-12 py-1 border shadow-sm text-sm font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 再計算する\n
    \n
    \n \n )}\n
    \n
    \n \n getValuationForm(\n `/reports/${reportId}/formula/${valuationType}/${calculation.id}/result`,\n )\n }\n className=\"underline cursor-pointer inline-flex items-center px-28 py-2 text-sm leading-4 font-medium text-blue-600\"\n >\n 詳しく見る\n
    \n
    \n \n \n );\n }\n};\n","import React, { useCallback, useEffect } from 'react';\nimport { Popover } from 'react-tiny-popover';\nimport { useReportCalculationsStep } from './hooks';\nimport { Tooltip } from '../../../components/Tooltip/Tooltip';\nimport { MoneyFormatter } from '../../../utils/common';\nimport { ReportCalculation } from './ReportCalculation';\nimport { ReportCalculationsStepProps } from './types';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport DcfIcon from '../../../../../assets/images/icons/icon_dcf.png';\nimport EbitdaIcon from '../../../../../assets/images/icons/icon_ebitda.png';\nimport PerIcon from '../../../../../assets/images/icons/icon_per.png';\nimport NaviIcon from '../../../../../assets/images/icons/icon_navi.png';\n\nexport const ReportCalculationsStep: React.FC = (\n props,\n) => {\n const {\n report,\n ocrFileIds,\n isDcfEnabled,\n isEbitdaEnabled,\n isPerEnabled,\n isDcfCalculated,\n isEbitdaCalculated,\n isPerCalculated,\n dcfCalculations,\n ebitdaCalculations,\n perCalculations,\n } = props;\n const token = document\n ?.getElementById('calculations')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n const {\n hasMultipleCalculations,\n isOpen,\n canUseOcrResult,\n canUseManualSubjectInputResults,\n reportGenPptxStepStyle,\n createCalculation,\n showSelectPopover,\n getValuationForm,\n setReportGenPptxStep,\n checkManualSubjectInputResults,\n checkUseOcrResults,\n checkValuationResults,\n checkCalculatedCount,\n } = useReportCalculationsStep({\n ocrFileIds,\n report,\n // @ts-ignore\n token,\n });\n\n useEffect(() => {\n checkUseOcrResults();\n checkManualSubjectInputResults();\n if (isDcfCalculated || isEbitdaCalculated || isPerCalculated) {\n setReportGenPptxStep({\n checkedButton:\n 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center ring-8 ring-white',\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-green-300',\n });\n }\n checkCalculatedCount({\n dcf: dcfCalculations,\n ebitda: ebitdaCalculations,\n per: perCalculations,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const checkValuation = useCallback(\n (valuation: number, nonLiquidityDiscount: number): JSX.Element => {\n switch (valuation) {\n case 0:\n return (\n
    \n 算定エラーが発生した為、再計算をお願いします。\n
    \n );\n default:\n return (\n
    \n {MoneyFormatter(\n Math.round(valuation * 0.9 * (1 - nonLiquidityDiscount)),\n )}\n 〜{' '}\n {MoneyFormatter(\n Math.round(valuation * 1.1 * (1 - nonLiquidityDiscount)),\n )}\n
    \n );\n }\n },\n [],\n );\n\n const selectContent = useCallback(() => {\n return (\n <>\n
    \n
    \n
    \n 算定タイプ\n
    \n
    \n バリュエーション\n
    \n
    \n
    \n {[...dcfCalculations, ...ebitdaCalculations, ...perCalculations]?.map(\n (calculation) =>\n calculation?.result && (\n \n
    \n
    \n
    \n {calculation.result_type?.toUpperCase()}\n
    \n
    \n {MoneyFormatter(\n Math.round(\n parseFloat(\n JSON.parse(calculation?.result)?.result.valuation,\n ) *\n 0.9 *\n (1 -\n JSON.parse(calculation?.result)?.breakdown[0]\n .non_liquidity_discount),\n ),\n )}\n ~{' '}\n {MoneyFormatter(\n Math.round(\n parseFloat(\n JSON.parse(calculation?.result)?.result.valuation,\n ) *\n 1.1 *\n (1 -\n JSON.parse(calculation?.result)?.breakdown[0]\n .non_liquidity_discount),\n ),\n )}\n
    \n {\n createCalculation(calculation);\n }}\n className=\"text-right py-1 px-2 border border-radius bg-green-500 hover:bg-green-600 text-white rounded text-xs\"\n >\n 複製する\n
    \n
    \n
    \n
    \n \n ),\n [],\n )}\n \n \n );\n }, [createCalculation, dcfCalculations, ebitdaCalculations, perCalculations]);\n\n return (\n
    \n \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    STEP3

    \n \n \n \n

    \n 所要時間 約1分\n

    \n
    \n
    \n
    \n

    \n 株式価値の算定\n

    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    \n 会計・税務の視点からあなたの会社の価値を算定\n

    \n
    \n
    \n {isDcfEnabled ? (\n dcfCalculations?.map((calculation) => (\n
    \n \n
    \n ))\n ) : (\n <>\n )}\n {isEbitdaEnabled ? (\n ebitdaCalculations?.map((calculation) => (\n
    \n \n
    \n ))\n ) : (\n <>\n )}\n {isPerEnabled ? (\n perCalculations?.map((calculation) => (\n
    \n \n
    \n ))\n ) : (\n <>\n )}\n {isDcfCalculated || isEbitdaCalculated || isPerCalculated ? (\n
    \n showSelectPopover()}\n positions={['bottom']}\n content={selectContent()}\n >\n showSelectPopover()}\n className=\"mt-3 cursor-pointer bg-gray-200 hover:bg-green-500 hover:text-white text-gray-400 font-bold py-2 rounded inline-flex items-center\"\n >\n + 算定を追加\n
    \n \n
    \n ) : (\n <>\n )}\n
    \n
    \n
    \n
    \n
    \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { ModalProvider } from 'react-modal-hook';\nimport { useReportDetails } from './hooks';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { ReportSubjectsStep } from './ReportSubjectsStep';\nimport { ReportSimilaritiesStep } from './ReportSimilaritiesStep';\nimport { ReportCalculationsStep } from './ReportCalculationsStep';\nimport { ReportGenPptxStep } from './ReportGenPptxStep';\nimport { reportDetailsProps } from './types';\n\nexport const ReportDetails: React.FC = (props) => {\n const {\n report,\n ocrFileIds,\n usedSimilaritiesResults,\n dcfCalculations,\n isDcfCalculated,\n isDcfEnabled,\n ebitdaCalculations,\n isEbitdaCalculated,\n isEbitdaEnabled,\n perCalculations,\n isPerCalculated,\n isPerEnabled,\n } = props;\n const { modalMessage, modalCheck, checkUsedSimilaritiesResults } =\n useReportDetails(usedSimilaritiesResults);\n\n useEffect(() => {\n checkUsedSimilaritiesResults();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n \n

    \n {report.evaluation_company_name}\n

    \n
    \n
      \n \n \n \n \n
    \n
    \n \n \n
    \n \n );\n};\n","import React, { useEffect } from 'react';\nimport Modal from 'react-modal';\nimport { useReportDownloadButton } from './hooks';\nimport { buttonProps } from './types';\n\nconst customStyles = {\n overlay: {\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(255, 255, 255, 0.75)',\n },\n content: {\n position: 'absolute',\n top: '30%',\n left: '30%',\n right: '30%',\n bottom: 'auto',\n border: '1px solid #ccc',\n background: '#fff',\n overflow: 'auto',\n WebkitOverflowScrolling: 'touch',\n borderRadius: '4px',\n outline: 'none',\n padding: '20px',\n },\n};\n\nexport const ReportDownloadButton: React.FC = (props) => {\n const { valuation_report_id, calculationIds, approaches, api_request_url } =\n props;\n const {\n getReportApi,\n modalIsOpen,\n pptxMessage,\n donwloadValuationReport,\n addReportDownloadListener,\n } = useReportDownloadButton({\n approaches,\n valuation_report_id,\n calculationIds,\n api_request_url,\n });\n\n useEffect(() => {\n Modal.setAppElement('#check_profile_page');\n addReportDownloadListener();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n <>\n \n \n \n \n \n \n \n ダウンロードする\n \n \n \n

    {pptxMessage}

    \n {pptxMessage === 'ダウンロード中' ? (\n
    \n
    \n
    \n
    \n ) : (\n <>\n )}\n \n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useReportGenPptxStep } from './hooks';\nimport { Tooltip } from '../../../components/Tooltip/Tooltip';\nimport { reportGenPptxStepProps } from './types';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport NaviIcon from '../../../../../assets/images/icons/icon_navi.png';\n\nexport const ReportGenPptxStep: React.FC = (props) => {\n const {\n report,\n isDcfEnabled,\n isEbitdaEnabled,\n isPerEnabled,\n isDcfCalculated,\n isEbitdaCalculated,\n isPerCalculated,\n } = props;\n const { reportGenPptxStepStyle, setReportGenPptxStep, getReportPptxForm } =\n useReportGenPptxStep(report);\n\n useEffect(() => {\n if (\n (isDcfCalculated && isDcfEnabled) ||\n (isEbitdaCalculated && isEbitdaEnabled) ||\n (isPerCalculated && isPerEnabled)\n ) {\n setReportGenPptxStep({\n checkButton:\n 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center ring-8 ring-white',\n step: 'text-lg text-green-400 font-semibold',\n name: 'pt-1.5 text-xl text-gray-700 font-bold',\n reportButton:\n 'cursor-pointer inline-flex items-center px-4 py-3 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500',\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
  • \n
    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n

    STEP4

    \n \n \n \n

    \n 所要時間 約1分\n

    \n
    \n
    \n
    \n

    \n 株価算定報告書の作成\n

    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    \n 算定結果をもとに株価算定報告書をパワーポイント形式で書き出します\n

    \n
    \n getReportPptxForm()}\n className={reportGenPptxStepStyle.reportButton}\n >\n レポートを書き出す\n
    \n
    \n
    \n
    \n
    \n \n
  • \n );\n};\n","import React from 'react';\nimport { Reports } from './Reports';\nimport { reportIndexProps } from './types';\n\nexport const ReportIndex: React.FC = (props) => {\n const { valuation_reports } = props;\n return (\n <>\n {0 < valuation_reports.length ? (\n
    \n
    \n
    \n
    \n \n \n \n \n 対象会社名\n \n \n 直前の決算月\n \n \n 最終更新日\n \n \n \n \n \n \n \n \n
    \n
    \n
    \n
    \n
    \n ) : (\n
    \n 検索結果が見つかりませんでした。\n
    \n )}\n \n );\n};\n","import React, { useEffect } from 'react';\nimport { useReportSimilaritiesStep } from './hooks';\nimport { Tooltip } from '../../../components/Tooltip/Tooltip';\nimport { reportSimilaritiesStep } from './types';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport NaviIcon from '../../../../../assets/images/icons/icon_navi.png';\n\nexport const ReportSimilaritiesStep: React.FC = (\n props,\n) => {\n const { report } = props;\n const {\n reportSimilaritiesStepStyle,\n setReportSimilaritiesStepStyle,\n getSimilaritiesForm,\n } = useReportSimilaritiesStep(report);\n useEffect(() => {\n if (report.similarities_status) {\n setReportSimilaritiesStepStyle({\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-green-300',\n checkedButton:\n 'h-8 w-8 rounded-full bg-green-400 flex items-center justify-center',\n actionButton:\n 'inline-flex items-center px-4 py-2 text-sm font-medium rounded text-white bg-green-500 hover:bg-green-600 cursor-pointer',\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
  • \n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n
    \n

    STEP2

    \n \n \n \n

    \n 所要時間 約1分\n

    \n
    \n
    \n
    \n

    \n 類似上場企業の選定\n

    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    \n 類似する上場企業の市場株価を算定結果に反映\n

    \n
    \n getSimilaritiesForm()}\n className={reportSimilaritiesStepStyle.actionButton}\n >\n 類似上場企業選定を行う\n
    \n
    \n
    \n
    \n
    \n \n
  • \n );\n};\n","import React from 'react';\nimport { useReportSubjectsStep } from './hooks';\nimport { Tooltip } from '../../../components/Tooltip/Tooltip';\nimport { ReportSubjectsStepProps } from './types';\nimport TimeIcon from '../../../../../assets/images/icons/icon_time.png';\nimport NaviIcon from '../../../../../assets/images/icons/icon_navi.png';\n\nexport const ReportSubjectsStep: React.FC = (\n props,\n) => {\n const { report } = props;\n const { parseResult, checkSubjectsInputFormType, getSubjectsInputForm } =\n useReportSubjectsStep(report);\n\n return (\n <>\n
    \n \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    STEP1

    \n \n \n \n

    \n 所要時間 約3分\n

    \n
    \n
    \n
    \n

    \n 財務情報の入力\n

    \n
    \n
    \n \n \n \n \n \n
    \n
    \n
    \n

    \n 貸借対照表、損益計算書、販売費及び一般管理費内訳及び製造原価報告書の財務数値を入力をします。\n

    \n

    \n ※OCR解析で入力サポートすることもできます。\n

    \n\n
    \n
    \n 直前期\n
    \n
    \n 推奨\n
    \n
    \n {report.first_phase_upload_status ||\n report.first_phase_file_id ? (\n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n report.first_phase_upload_status,\n parseResult(report.first_upload_pages)['file_id'],\n 1,\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 hover:text-white\"\n >\n 決算書情報を編集する\n
    \n ) : (\n \n getSubjectsInputForm(\n `/reports/${report.id}/subjects/new?phase=1`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書情報を入力する\n
    \n )}\n
    \n
    \n
    \n
    \n 直前々期\n
    \n
    \n 任意\n
    \n
    \n {report.second_phase_upload_status ||\n report.second_phase_file_id ? (\n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n report.second_phase_upload_status,\n parseResult(report.second_upload_pages)['file_id'],\n 2,\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 hover:text-white\"\n >\n 決算書情報を編集する\n
    \n ) : (\n \n getSubjectsInputForm(\n `/reports/${report.id}/subjects/new?phase=2`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書情報を入力する\n
    \n )}\n
    \n \n
    \n
    \n 直前々期の前期\n
    \n
    \n 任意\n
    \n
    \n {report.third_phase_upload_status ||\n report.third_phase_file_id ? (\n \n getSubjectsInputForm(\n checkSubjectsInputFormType(\n report.third_phase_upload_status,\n parseResult(report.third_upload_pages)['file_id'],\n 3,\n ),\n )\n }\n className=\"cursor-pointer outline-2 inline-flex items-center px-8 py-2 border text-sm leading-4 font-medium rounded text-white bg-green-500 hover:bg-green-600 hover:text-white\"\n >\n 決算書情報を編集する\n
    \n ) : (\n \n getSubjectsInputForm(\n `/reports/${report.id}/subjects/new?phase=3`,\n )\n }\n className=\"cursor-pointer inline-flex items-center px-8 py-2 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-600 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500\"\n >\n 決算書情報を入力する\n
    \n )}\n \n \n \n \n \n \n );\n};\n","import React from 'react';\nimport { useReports } from './hooks';\nimport { ModalProvider } from 'react-modal-hook';\nimport { MessageModal } from '../../../components/MessageModal/MessageModal';\nimport { reportIndexProps } from './types';\n\nexport const Reports: React.FC = (props) => {\n const { valuation_reports } = props;\n const {\n deleteReportId,\n modalCheck,\n setModalCheck,\n showDeleteModal,\n showUpdatedTime,\n showFinancialDate,\n } = useReports();\n return (\n \n {valuation_reports?.map((valuation_report) => (\n \n \n \n {valuation_report.evaluation_company_name}\n \n \n \n {valuation_report.evaluation_company_financial_date !== null\n ? showFinancialDate(\n valuation_report.evaluation_company_financial_date,\n )\n : null}\n \n \n {valuation_report.updated_at !== null\n ? showUpdatedTime(valuation_report.updated_at)\n : null}\n \n \n
    \n \n Open options\n \n \n \n \n \n \n \n 会社を評価する\n \n \n 会社情報を編集する\n \n showDeleteModal(valuation_report.id)}\n className=\"cursor-pointer text-gray-700 hover:text-red-700 block px-4 py-2 text-sm\"\n >\n 会社を削除する\n
    \n \n \n \n \n ))}\n {deleteReportId !== 0 ? (\n \n ) : (\n <>\n )}\n
    \n );\n};\n","import axios from 'axios';\nimport { axiosOptionsProps, returnUrlConfigProps } from './types';\n\nexport const getvaluationReport: (\n options: axiosOptionsProps,\n _callback: (arg: string) => void,\n resConfig: {\n api_request_url: string;\n queryApproaches: string;\n },\n) => Promise<\n | {\n valuation_report_id: string;\n download_token: string;\n }\n | undefined\n | void\n> = (options, _callback, resConfig) => {\n return axios(options)\n .then((res) => {\n if (res.status === 200) {\n _callback(\n `${resConfig.api_request_url}/valuations/reports_download/${res?.data.valuation_report_id}?download_token=${res?.data.download_token}&write_approachs=${resConfig.queryApproaches}`,\n );\n } else {\n console.log(res);\n }\n })\n .catch((err) => {\n console.log(err);\n });\n};\n\nexport const postCopyCalculation: (\n options: axiosOptionsProps,\n path: returnUrlConfigProps,\n) => void = (options, path) => {\n return axios(options)\n .then((res) => {\n if (res.data.status === 'success') {\n location.href = `/reports/${path.report_id}/formula/${path.calculation_result_type}/${res.data.calculation_id}?ocr=${res.data.ocr}`;\n }\n })\n .catch((err) => {\n console.log(err);\n })\n .finally(() => {});\n};\n","import { useCallback, useState } from 'react';\nimport { getvaluationReport, postCopyCalculation } from './api';\nimport {\n UsedSimilaritiesResultsProps,\n ValuationReportCalculationProps,\n axiosOptionsProps,\n returnUrlConfigProps,\n useReportCalculationsStepProps,\n useReportDownloadButtonProps,\n valuationReportProps,\n} from './types';\n\nexport const useReports = () => {\n const [deleteReportId, setDeleteReportId] = useState(0);\n const [modalCheck, setModalCheck] = useState(false);\n const showDeleteModal = useCallback(\n (report_id: number): void => {\n setDeleteReportId(report_id);\n setModalCheck(!modalCheck);\n },\n [modalCheck, setDeleteReportId],\n );\n const showUpdatedTime = useCallback((update_time: string): string => {\n const reportUpdatedDate: Date = new Date(update_time);\n const reportUpdatedYear: number = reportUpdatedDate.getFullYear();\n const reportUpdatedMonth: number = reportUpdatedDate.getMonth() + 1;\n const reportUpdatedDay: number = reportUpdatedDate.getDate();\n return `${reportUpdatedYear}年${reportUpdatedMonth}月${reportUpdatedDay}日`;\n }, []);\n const showFinancialDate = useCallback((update_time: string): string => {\n const reportUpdatedDate: Date = new Date(update_time);\n const reportUpdatedYear: number = reportUpdatedDate.getFullYear();\n const reportUpdatedMonth: number = reportUpdatedDate.getMonth() + 1;\n return `${reportUpdatedYear}年${reportUpdatedMonth}月期`;\n }, []);\n return {\n deleteReportId,\n setDeleteReportId,\n modalCheck,\n setModalCheck,\n showDeleteModal,\n showUpdatedTime,\n showFinancialDate,\n };\n};\n\nexport const useReportDetails = (\n usedSimilaritiesResults: UsedSimilaritiesResultsProps[],\n) => {\n const [modalMessage, setModalMessage] = useState('');\n const [modalCheck, setModalCheck] = useState(false);\n const checkUsedSimilaritiesResults = useCallback(() => {\n switch (usedSimilaritiesResults.length) {\n case 3:\n setModalCheck(true);\n setModalMessage(\n 'STEP3の株式価値算定に利用されている類似企業が全て異なります',\n );\n break;\n case 2:\n setModalCheck(true);\n setModalMessage(`STEP3の株式価値算定に利用されている類似企業が${usedSimilaritiesResults[0]['valuation']}と、\n ${usedSimilaritiesResults[1]['valuation']}で異なります。`);\n break;\n case 1:\n setModalCheck(true);\n setModalMessage(\n `STEP3の${usedSimilaritiesResults[0]['valuation']}で利用されている類似企業が異なります。`,\n );\n break;\n default:\n break;\n }\n }, [usedSimilaritiesResults]);\n return {\n modalMessage,\n modalCheck,\n setModalMessage,\n setModalCheck,\n checkUsedSimilaritiesResults,\n };\n};\n\nexport const useReportSubjectsStep = (report: valuationReportProps) => {\n const parseResult = useCallback((pages) => {\n return pages ? JSON.parse(pages) : '';\n }, []);\n const checkSubjectsInputFormType = useCallback(\n (is_ocr: number, file_id: number, phase: number) => {\n return is_ocr === 1\n ? `/reports/${report.id}/ocr/analysis_fs/${file_id}/check?phase=${phase}`\n : `/reports/${report.id}/subjects/edit?phase=${phase}`;\n },\n [report.id],\n );\n const getSubjectsInputForm = useCallback((subject_input_url) => {\n location.href = subject_input_url;\n }, []);\n return {\n parseResult,\n checkSubjectsInputFormType,\n getSubjectsInputForm,\n };\n};\n\nexport const useReportSimilaritiesStep = (report: valuationReportProps) => {\n const [reportSimilaritiesStepStyle, setReportSimilaritiesStepStyle] =\n useState({\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-200',\n checkedButton:\n 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center',\n actionButton:\n 'inline-flex items-center px-4 py-2 text-sm font-medium rounded text-white bg-green-500 hover:bg-green-600 cursor-pointer',\n });\n const getSimilaritiesForm = useCallback(() => {\n location.href = `/reports/${report.id}/similarities/new`;\n }, [report.id]);\n return {\n reportSimilaritiesStepStyle,\n setReportSimilaritiesStepStyle,\n getSimilaritiesForm,\n };\n};\n\nexport const useReportCalculation = (\n isCalculated: boolean,\n calculation: ValuationReportCalculationProps,\n) => {\n const [valuation, setValuation] = useState(0);\n const [nonLiquidityDiscount, setNonLiquidityDiscount] = useState(0);\n const [modalCheck, setModalCheck] = useState(false);\n const [deleteValuationCalculation, setDeleteValuationCalculation] =\n useState(calculation);\n const nameStyle = isCalculated\n ? 'text-gray-600 text-lg font-semibold truncate'\n : 'text-gray-400 text-lg font-semibold truncate';\n const openDeleteModal = useCallback(\n (delete_calculation: ValuationReportCalculationProps): void => {\n setDeleteValuationCalculation(delete_calculation);\n setModalCheck(!modalCheck);\n },\n [modalCheck],\n );\n return {\n valuation,\n modalCheck,\n deleteValuationCalculation,\n nonLiquidityDiscount,\n nameStyle,\n openDeleteModal,\n setValuation,\n setNonLiquidityDiscount,\n setDeleteValuationCalculation,\n setModalCheck,\n };\n};\n\nexport const useReportCalculationsStep = (\n props: useReportCalculationsStepProps,\n) => {\n const { ocrFileIds, report, token } = props;\n const [isOpen, setPopover] = useState(false);\n const [canUseOcrResult, setCanUseOcrResult] = useState(false);\n const [canUseManualSubjectInputResults, setUseManualSubjectInputResults] =\n useState(false);\n const [reportGenPptxStepStyle, setReportGenPptxStep] = useState({\n checkedButton:\n 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center ring-8 ring-white',\n flowLineStyle: 'absolute top-4 left-4 -ml-px h-full w-0.5 bg-gray-200',\n });\n const [hasMultipleCalculations, setHasMultipleCalculations] = useState<{\n [K in 'dcf' | 'ebitda' | 'per']: boolean;\n }>({\n dcf: false,\n ebitda: false,\n per: false,\n });\n\n const isMultipleCalculated = useCallback(\n (calculations: ValuationReportCalculationProps[]): boolean => {\n return (\n 1 <\n calculations.filter((calculation) => calculation.result != null).length\n );\n },\n [],\n );\n\n const checkCalculatedCount = useCallback(\n (calculations: {\n [K in 'dcf' | 'ebitda' | 'per']: ValuationReportCalculationProps[];\n }): void => {\n setHasMultipleCalculations({\n dcf: isMultipleCalculated(calculations.dcf),\n ebitda: isMultipleCalculated(calculations.ebitda),\n per: isMultipleCalculated(calculations.per),\n });\n },\n [isMultipleCalculated],\n );\n\n const checkValuationResults = useCallback(\n (\n _valuation_result,\n _set_valuation: React.SetStateAction,\n _set_non_liquidity_discount: React.SetStateAction,\n ): void => {\n if (\n _valuation_result &&\n _valuation_result.result &&\n _valuation_result.result.valuation !== null\n ) {\n _set_valuation;\n _set_non_liquidity_discount;\n }\n },\n [],\n );\n\n const checkUseOcrResults = useCallback((): void => {\n if (0 < ocrFileIds.length) {\n setCanUseOcrResult(true);\n }\n }, [ocrFileIds.length]);\n\n const checkManualSubjectInputResults = useCallback((): void => {\n if (\n (report.first_phase_file_id ||\n report.second_phase_file_id ||\n report.third_phase_file_id) !== null\n ) {\n setUseManualSubjectInputResults(true);\n }\n }, [\n report.first_phase_file_id,\n report.second_phase_file_id,\n report.third_phase_file_id,\n ]);\n\n const getValuationForm = useCallback((url: string): void => {\n location.href = url;\n }, []);\n\n const showSelectPopover = useCallback((): void => {\n setPopover(!isOpen);\n }, [isOpen]);\n\n const createCalculation = useCallback(\n (calculation): void => {\n const requestData = { valuation_report_calculation_id: calculation.id };\n const requestConfig: axiosOptionsProps = {\n method: 'post',\n url: `/reports/${report.id}/formula/${calculation.result_type}/${calculation.id}/copy_calculation`,\n data: requestData,\n headers: {\n 'X-CSRF-Token': token,\n },\n };\n const returnUrlConfig: returnUrlConfigProps = {\n report_id: report.id,\n calculation_result_type: calculation.result_type,\n };\n postCopyCalculation(requestConfig, returnUrlConfig);\n },\n // @ts-ignore\n [report.id, token],\n );\n\n return {\n hasMultipleCalculations,\n isOpen,\n reportGenPptxStepStyle,\n canUseManualSubjectInputResults,\n canUseOcrResult,\n createCalculation,\n showSelectPopover,\n getValuationForm,\n setPopover,\n setCanUseOcrResult,\n setUseManualSubjectInputResults,\n setReportGenPptxStep,\n checkManualSubjectInputResults,\n checkUseOcrResults,\n checkValuationResults,\n checkCalculatedCount,\n };\n};\n\nexport const useReportDownloadButton = (\n props: useReportDownloadButtonProps,\n) => {\n const { approaches, valuation_report_id, calculationIds, api_request_url } =\n props;\n const [getReportApi, setGetReportApi] = useState('');\n const [modalIsOpen, setIsOpen] = useState(false);\n const [pptxMessage, setPptxMessage] = useState('ダウンロード中');\n const queryApproaches = approaches.join(',');\n const showProgressBar = useCallback((): void => {\n let progress = 0;\n const invervalSpeed = 10;\n const incrementSpeed = 1;\n const bar = document.getElementById('bar');\n const progressInterval = setInterval((): void => {\n progress += incrementSpeed;\n // @ts-ignore\n bar.style.width = progress + '%';\n if (progress >= 100) {\n clearInterval(progressInterval);\n }\n }, invervalSpeed);\n }, []);\n const getCalculationIdsQuery = useCallback(\n (calculation_ids: Array<{ [k: string]: number }>) => {\n const requestQueries = calculation_ids.map((calculation) => {\n const query = '';\n if ('dcf_calculation_id' in calculation) {\n return query + `dcf=${calculation['dcf_calculation_id']}`;\n }\n if ('ebitda_calculation_id' in calculation) {\n return query + `ebitda=${calculation['ebitda_calculation_id']}`;\n }\n if ('per_calculation_id' in calculation) {\n return query + `per=${calculation['per_calculation_id']}`;\n }\n });\n return requestQueries.join('&');\n },\n [],\n );\n const donwloadValuationReport = async () => {\n const requestConfig: axiosOptionsProps = {\n method: 'get',\n url: `/reports/${valuation_report_id}/download.json?${getCalculationIdsQuery(\n calculationIds,\n )}`,\n };\n await getvaluationReport(requestConfig, setGetReportApi, {\n api_request_url: api_request_url,\n queryApproaches: queryApproaches,\n });\n };\n const addReportDownloadListener = () => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data.name === 'progress') {\n setIsOpen(true);\n showProgressBar();\n } else if (event.data.name === 'done') {\n setIsOpen(false);\n } else if (event.data.name === 'failed') {\n setIsOpen(true);\n setPptxMessage('株価算定報告書の作成中にエラーが発生しました。');\n }\n },\n false,\n );\n };\n return {\n getReportApi,\n modalIsOpen,\n pptxMessage,\n setIsOpen,\n setPptxMessage,\n setGetReportApi,\n showProgressBar,\n getCalculationIdsQuery,\n donwloadValuationReport,\n addReportDownloadListener,\n };\n};\n\nexport const useReportGenPptxStep = (report: valuationReportProps) => {\n const [reportGenPptxStepStyle, setReportGenPptxStep] = useState({\n checkButton:\n 'h-8 w-8 rounded-full bg-gray-400 flex items-center justify-center ring-8 ring-white',\n step: 'text-lg text-gray-400 font-semibold',\n name: 'pt-1.5 text-xl text-gray-400 font-bold',\n reportButton:\n 'pointer-events-none inline-flex items-center px-4 py-3 border border-transparent shadow-sm text-sm leading-4 font-medium rounded text-white bg-gray-400 hover:bg-green-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-indigo-500',\n });\n const getReportPptxForm = useCallback(() => {\n location.href = `/reports/${report.id}/profile`;\n }, [report.id]);\n return {\n reportGenPptxStepStyle,\n setReportGenPptxStep,\n getReportPptxForm,\n };\n};\n","import React, { useEffect } from 'react';\nimport { useSimilarApiReqeust } from './hooks';\nimport { postSimilarCompanies } from './api';\nimport { SimilarCompaniesProps } from './types';\n\nexport const SimilarCompanies: React.FC = (props) => {\n const { path } = props;\n const token = document\n ?.getElementById('similarities_form')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n\n const { ...SimilarCompaniesHooks } = useSimilarApiReqeust({\n postSimilarCompanies,\n path,\n // @ts-ignore\n token,\n });\n\n useEffect(() => {\n SimilarCompaniesHooks.addSimilarRequestListener();\n }, [SimilarCompaniesHooks]);\n\n return <>;\n};\n","import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\n\nexport const postSimilarCompanies: (\n options: AxiosRequestConfig,\n path: string,\n) => void = (options, path) => {\n axios(options)\n .then((res: AxiosResponse) => {\n if (res.status === 200) {\n location.href = path;\n } else {\n console.log(res);\n }\n })\n .catch((err: AxiosError) => {\n console.log(err);\n });\n};\n","import { useCallback } from 'react';\nimport { SimilaritiesFormProps, postSimilaritiesOptions } from './types';\n\nexport const useSimilarApiReqeust = (props: SimilaritiesFormProps) => {\n const { postSimilarCompanies, path, token } = props;\n const addSimilarRequestListener = useCallback(() => {\n window.addEventListener(\n 'message',\n function (event) {\n if (event.data && event.data.name === 'submitMaForm') {\n const requestData = event.data;\n const requestConfig: postSimilaritiesOptions = {\n method: 'post',\n url: `${path}/similarities`,\n data: requestData,\n headers: {\n 'X-CSRF-Token': token,\n },\n };\n postSimilarCompanies(requestConfig, path);\n } else if (\n event.data &&\n event.data.name === 'cancelMaForm' &&\n event.data.value === 'canceled'\n ) {\n location.href = '/homes/functions';\n }\n },\n false,\n );\n }, [path, token, postSimilarCompanies]);\n return { addSimilarRequestListener };\n};\n","import React from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useSubjectsInputForm } from './hooks';\nimport { BsContainer } from '../../components/Subject/bs/BsContainer';\nimport { PlContainer } from '../../components/Subject/pl/PlContainer';\nimport { SgaContainer } from '../../components/Subject/sga/SgaContainer';\nimport { SubjectsInputFormProps } from './types';\n\nexport const SubjectsInputForm: React.FC = (props) => {\n const {\n reportId,\n phase,\n subjectValue,\n method,\n resource = 'reports',\n ocrPath = `/reports/${reportId}/ocr/analysis_fs/new?phase=${phase}`,\n } = props;\n\n const token = document\n ?.getElementById('subjects_form')\n ?.getElementsByTagName('input')[0].value;\n\n const { handleSubmit, getValues, setValue, control } = useForm({\n defaultValues: {\n subject: subjectValue,\n },\n criteriaMode: 'all',\n shouldFocusError: true,\n });\n const { subject, onSubmit } = useSubjectsInputForm({\n method,\n phase,\n reportId,\n resource,\n // @ts-ignore\n token,\n getValues,\n subjectValue,\n });\n\n return (\n <>\n
    \n
    \n
    \n {0 < subject?.length ? (\n // @ts-ignore\n
    \n
    \n
    \n \n 決算書情報を適用する\n \n
    \n
    \n
    \n {\n location.href = ocrPath;\n }}\n className=\"rounded bg-indigo-600 px-12 py-2.5 text-sm font-semibold text-white shadow-sm hover:bg-indigo-500 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n OCR取り込み(β版)\n
    \n {resource === 'company_medical_reports' ? (\n \n (location.href = `/company_medical_reports/${reportId}/subjects/upload`)\n }\n className=\"flex cursor-pointer rounded bg-white px-2 py-2.5 text-sm font-bold text-blue-500 border border-blue-600 hover:bg-blue-600 hover:text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600\"\n >\n 会計ソフトから決算書ファイルをインポート\n
    \n ) : (\n <>\n )}\n
    \n {phase !== '3' ? (\n
    \n \n
    \n ) : (\n <>\n )}\n
    \n
    \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n
    \n \n 決算書情報を適用する\n \n
    \n \n ) : (\n <>\n )}\n
    \n \n \n );\n};\n","import React, { useCallback, useState } from 'react';\nimport axios from 'axios';\nimport { Toaster } from 'react-hot-toast';\nimport { notify } from '../company_medical_reports/company_medical_reports/hooks';\nimport DocumentIcon from '../../../../assets/images/icons/icon_document.png';\nimport FreeeIcon from '../../../../assets/images/icons/icon_freee.png';\nimport YayoiIcon from '../../../../assets/images/icons/icon_yayoi.png';\nimport BugyouIcon from '../../../../assets/images/icons/icon_bugyou.png';\nimport { SubjectsUploadFormProps } from './types';\n\nconst SERVICE_TYPES: Record = {\n template: '決算書テンプレート',\n freee: 'freee',\n yayoi: '弥生会計',\n bugyou: '勘定奉行',\n};\n\nexport const SubjectsUploadForm: React.FC = (\n props,\n) => {\n const { company_medical_report_id } = props;\n const token = document?.querySelector?.(\n 'meta[name=\"csrf-token\"]',\n // @ts-ignore\n )?.content;\n const [uploadedFileNames, setUploadedFileNames] = useState([]);\n const [uploadedFiles, setUploadedFiles] = useState([]);\n const [selectserviceType, setSelectserviceType] = useState<\n 'yayoi' | 'bugyou' | 'freee' | 'money_forward' | 'template' | ''\n >('');\n\n const uploadFile = useCallback(() => {\n const formData = new FormData();\n formData.append('service_type', selectserviceType);\n uploadedFiles.forEach((file, index) => {\n formData.append(`file[${index}]`, file);\n });\n\n axios\n .post(\n `/company_medical_reports/${company_medical_report_id}/subjects/upload_subjects`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n 'X-CSRF-Token': token,\n },\n },\n )\n .then((response) => {\n console.log(response);\n notify(response.data.status, response.data.message);\n location.href = `/company_medical_reports/${company_medical_report_id}`;\n })\n .catch((error) => {\n console.error(error);\n notify(error.data.status, error.data.message);\n });\n }, [selectserviceType, uploadedFiles, company_medical_report_id, token]);\n\n const handleFileUpload = useCallback(\n (event: React.ChangeEvent) => {\n if (event.target.files) {\n const selectedFiles = Array.from(event.target.files);\n const isValidExtension = selectedFiles.every((file) => {\n const extension = file.name.split('.').pop();\n if (selectserviceType === 'yayoi' && extension !== 'xlsx') {\n return false;\n } else if (selectserviceType === 'bugyou' && extension !== 'xlsx') {\n return false;\n } else if (selectserviceType === 'template' && extension !== 'xlsx') {\n return false;\n } else if (selectserviceType === 'freee' && extension !== 'csv') {\n return false;\n }\n return true;\n });\n\n if (!isValidExtension) {\n notify(\n 'failed',\n `ファイル形式が正しくありません。${\n selectserviceType === 'yayoi' ? 'XLSX' : 'CSV'\n } ファイルをアップロードしてください。`,\n );\n return;\n }\n const newFileNames = selectedFiles.map((file) => file.name);\n const combinedFiles = [...uploadedFiles, ...selectedFiles];\n const combinedFileNames = [...uploadedFileNames, ...newFileNames];\n\n if (selectserviceType === 'template' && combinedFiles.length > 1) {\n notify('failed', 'アップロードできるファイルは1つまでです。');\n return;\n }\n\n if (selectserviceType === 'yayoi' && combinedFiles.length > 1) {\n notify('failed', 'アップロードできるファイルは1つまでです。');\n return;\n }\n\n if (selectserviceType === 'bugyou' && combinedFiles.length > 1) {\n notify('failed', 'アップロードできるファイルは1つまでです。');\n return;\n }\n\n if (selectserviceType === 'freee' && combinedFiles.length > 2) {\n notify('failed', 'アップロードできるファイルは2つまでです。');\n return;\n }\n\n setUploadedFileNames(combinedFileNames);\n setUploadedFiles(combinedFiles);\n }\n },\n [selectserviceType, uploadedFileNames, uploadedFiles],\n );\n\n const changeServiceType = useCallback(\n (\n serviceType:\n | 'yayoi'\n | 'bugyou'\n | 'freee'\n | 'money_forward'\n | 'template'\n | '',\n ) => {\n setSelectserviceType(serviceType);\n setUploadedFileNames([]);\n setUploadedFiles([]);\n },\n [],\n );\n\n const removeFile = useCallback(\n (index: number) => {\n const newUploadedFiles = uploadedFiles.filter((_, i) => i !== index);\n const newUploadedFileNames = uploadedFileNames.filter(\n (_, i) => i !== index,\n );\n setUploadedFiles(newUploadedFiles);\n setUploadedFileNames(newUploadedFileNames);\n },\n [uploadedFiles, uploadedFileNames],\n );\n\n const uploadFileAction = useCallback(() => {\n if (0 < uploadedFiles.length) {\n uploadFile();\n }\n },[uploadFile, uploadedFiles.length])\n\n const downloadFile = useCallback(async () => {\n const response = await axios.get(\n '/files/download?filename=subjects.xlsx&filetype=application/vnd.ms-excel',\n { responseType: 'blob' },\n );\n const url = window.URL.createObjectURL(new Blob([response.data]));\n const link = document.createElement('a');\n link.href = url;\n link.setAttribute('download', 'subjects.xlsx');\n document.body.appendChild(link);\n link.click();\n }, []);\n\n return (\n <>\n \n
    \n
    \n
    \n

    \n 会計ソフトから決算書ファイルをインポート\n

    \n
    \n
    \n
    \n

    \n 各種会計ソフトからエクスポートした決算書ファイルを下記にアップロードしてください\n

    \n \n ※ 弥生会計からExcel形式の勘定科目をエクスポートする方法はこちら\n \n {/* TODO: オフィシャルに存在しないのでQ&Aページを用意する */}\n {/* \n ※ 勘定奉行からExcel形式の勘定科目をエクスポートする方法はこちら\n */}\n \n ※ freeeからCSV形式の勘定科目をエクスポートする方法はこちら\n \n
    \n
    \n \n *決算書テンプレート(.xlsx)のダウンロード\n \n
    \n\n
    \n
    \n
    \n
    \n
    \n
    \n changeServiceType('template')}\n >\n
    \n \n
    \n
    \n \n 決算書テンプレート(.xlsx)\n \n

    \n \n 決算書テンプレート形式の決算書ファイルを取り込みます\n
    \n

    \n
    \n
    \n changeServiceType('yayoi')}\n >\n
    \n \n
    \n
    \n \n 弥生会計(.xlsx)\n \n

    \n \n 弥生会計からエクスポートしたExcel形式の決算書ファイルを取り込みます\n

    \n
    \n
    \n changeServiceType('bugyou')}\n >\n
    \n \n
    \n
    \n \n 勘定奉行(.xlsx)\n \n

    \n \n 勘定奉行からエクスポートしたExcel形式の決算書ファイルを取り込みます\n

    \n
    \n
    \n changeServiceType('freee')}\n >\n
    \n \n
    \n
    \n \n freee(.csv)\n \n

    \n \n freee会計からエクスポートしたCSV形式の試算表ファイルを取り込みます\n *貸借対照表と損益計算書の二つのCSVが必要です\n

    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n \n \n {selectserviceType === ''\n ? '会計ソフトフォーマットを選択してください'\n : `${SERVICE_TYPES[selectserviceType]}ファイルをドラッグ&ドロップ`}\n
    \n {uploadedFileNames.length > 0 && (\n
    \n

    アップロードされたファイル:

    \n
      \n {uploadedFileNames.map((fileName, index) => (\n
    • \n {fileName}{' '}\n removeFile(index)}\n className=\"text-red-500 hover:text-red-700\"\n >\n 削除\n \n
    • \n ))}\n
    \n
    \n )}\n \n \n \n \n
    \n 0\n ? 'cursor-pointer bg-indigo-600 hover:bg-indigo-700 text-white focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-indigo-600'\n : 'text-gray-300 bg-gray-100'\n } inline-flex items-center gap-x-2 rounded-md px-5 py-2.5 text-base font-semibold shadow-sm`}\n onClick={uploadFileAction}\n >\n アップロードする\n \n \n \n
    \n \n \n \n \n );\n};\n","import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from 'axios';\n\nexport const sendSubject: (\n options: AxiosRequestConfig,\n path: string,\n) => void = (options, path) => {\n return axios(options)\n .then((res: AxiosResponse) => {\n if (res.status === 200) {\n location.href = path;\n } else {\n console.log(res);\n }\n })\n .catch((err: AxiosError) => {\n location.href = path;\n console.log(err);\n });\n};\n","import { useCallback, useState } from 'react';\nimport { sendSubject } from './api';\nimport { AxiosRequestConfig } from 'axios';\nimport { useSubjectsInputFormProps } from './types';\n\nexport const useSubjectsInputForm = (props: useSubjectsInputFormProps) => {\n const { method, phase, reportId, resource, token, getValues, subjectValue } =\n props;\n const [subject, setSubject] = useState<{ [k: string]: number }[]>([\n subjectValue,\n ]);\n\n const sendSubjectRequest = useCallback(() => {\n const requestData = {\n subject: getValues('subject'),\n datatype: 'merged',\n phase: phase,\n };\n const requestConfig: AxiosRequestConfig = {\n method: method,\n url: `/${resource}/${reportId}/subjects.json`,\n data: requestData,\n headers: { 'X-CSRF-Token': token },\n };\n sendSubject(requestConfig, `/${resource}/${reportId}`);\n }, [getValues, phase, method, resource, reportId, token]);\n\n const onSubmit = useCallback(() => {\n sendSubjectRequest();\n }, [sendSubjectRequest]);\n\n return {\n subject,\n sendSubjectRequest,\n onSubmit,\n setSubject,\n };\n};\n","import React, { useCallback, useState } from 'react';\nimport { Toaster } from 'react-hot-toast';\nimport { updateUsersProfile } from './api';\nimport { UsersFunctions } from './UsersFunctions';\nimport { InputField } from '../../components/InputField/InputField';\nimport { SelectField } from '../../components/SelectField/SelectField';\nimport { RadioGroup } from '../../components/RadioGroup/RadioGroup';\nimport { UserProps, UsersAccountOptionProps } from './types';\n\nexport const UsersAccountOption: React.FC = (\n props,\n) => {\n const { user, postKeys, employeesKeys, roleKeys, allFunctions, functionIds } =\n props;\n const token = document\n ?.getElementById('send_users_account_edit_form')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n const twoFactorOptions = [\n { value: true, label: 'はい' },\n { value: false, label: 'いいえ' },\n ];\n const [formState, setFormState] = useState({\n id: user.id,\n last_name: user.last_name,\n first_name: user.first_name,\n company_name: user.company_name,\n department: user.department,\n email: user.email,\n phone: user.phone,\n post: user.post,\n employees: user.employees,\n role: user.role,\n two_factor_auth_enabled: user.two_factor_auth_enabled,\n company_logo: '',\n function_ids: functionIds,\n });\n const handleInputChange = useCallback((e) => {\n const { name, type, value } = e.target;\n\n if (type === 'file') {\n const file = e.target.files[0];\n setFormState((prevState) => ({\n ...prevState,\n [name]: file,\n }));\n } else {\n setFormState((prevState) => ({\n ...prevState,\n [name]: value,\n }));\n }\n }, []);\n\n return (\n <>\n \n
    \n
    \n
    \n
    \n

    \n プロフィール設定\n

    \n

    \n アカウント情報を入力してください。\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n \n
    \n \n
    \n\n
    \n

    \n コーポレートロゴ\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n updateUsersProfile(e, token, formState)}\n >\n 変更を保存\n
    \n
    \n
    \n
    \n \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { UsersSlideImageUploader } from './UsersSlideImageUploader';\nimport { CompanyMedicalReportOptions } from '../company_medical_report_options/CompanyMedicalReportOptions';\nimport { RadioGroup } from '../../components/RadioGroup/RadioGroup';\nimport { updateCompanyMedicalReportOption, useSlideImage } from './api';\nimport {\n CompanyMedicalReportOptionProps,\n UsersCompanyMedicalReportOptionProps,\n} from './types';\n\nexport const UsersCompanyMedicalReportOption: React.FC<\n UsersCompanyMedicalReportOptionProps\n> = (props) => {\n const {\n company_medical_report_option,\n user_id,\n chart_sample_img,\n rotation_sample_img,\n } = props;\n const token = document\n ?.getElementById('company_medical_report_option_edit')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n const { imagesSrc, fetchSlideImage, updateSlideImage, deleteSlideImage } =\n useSlideImage(user_id, token);\n const [formState, setFormState] = useState({\n user_id: user_id,\n dcf: company_medical_report_option.dcf,\n ebitda: company_medical_report_option.ebitda,\n per: company_medical_report_option.per,\n tableHeaderColor:\n company_medical_report_option.tableHeaderColor ?? '#000000',\n tableCellColor: company_medical_report_option.tableCellColor ?? '#000000',\n tableCellTextColor:\n company_medical_report_option.tableCellTextColor ?? '#000000',\n tableHeaderTextColor:\n company_medical_report_option.tableHeaderTextColor ?? '#000000',\n backgroundCharacter: company_medical_report_option.backgroundCharacter,\n topImageType: company_medical_report_option.topImageType,\n });\n\n const characterBackgrounOptions = [\n { value: true, label: '設定する' },\n { value: false, label: '設定しない' },\n ];\n\n const characterCoverOptions = [\n { value: 'character', label: '設定する' },\n { value: 'default', label: '設定しない' },\n ];\n\n const handleInputChange = useCallback((e) => {\n const { name, type, value } = e.target;\n if (e.target.name.startsWith('company_medical_report_option')) {\n setFormState((prevState) => ({\n ...prevState,\n [e.target.name]: e.target.value,\n }));\n }\n if (type === 'file') {\n const file = e.target.files[0];\n setFormState((prevState) => ({\n ...prevState,\n [name]: file,\n }));\n } else {\n setFormState((prevState) => ({\n ...prevState,\n [name]: value,\n }));\n }\n }, []);\n\n useEffect(() => {\n const slideNames = [\n 'top_image',\n 'family_succession_image',\n 'employee_succession_image',\n 'stock_listing_image',\n 'ma_image',\n 'cessation_image',\n ];\n slideNames.forEach((slideName) => {\n fetchSlideImage(slideName);\n });\n }, [fetchSlideImage]);\n\n return (\n
    \n
    \n
    \n
    \n

    \n 決算書チェッカー設定\n

    \n

    \n 決算書チェッカーの設定を入力してください。\n

    \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n \n \n \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n \n // @ts-ignore\n updateCompanyMedicalReportOption(e, token, formState)\n }\n >\n 変更を保存\n
    \n
    \n
    \n
    \n );\n};\n","import React from 'react';\nimport { UsersFunctionsProps } from './types';\n\nexport const UsersFunctions: React.FC = ({\n role,\n allFunctions,\n formState,\n setFormState,\n}) => {\n const handleCheckboxChange = (functionId: number, checked: boolean) => {\n if (checked) {\n setFormState((prevState) => ({\n ...prevState,\n function_ids: [...prevState.function_ids, functionId],\n }));\n } else {\n setFormState((prevState) => ({\n ...prevState,\n function_ids: prevState.function_ids.filter((id) => id !== functionId),\n }));\n }\n };\n\n return (\n <>\n {role === '一般' && (\n
    \n
    \n

    提供する機能

    \n
    \n {allFunctions.map((func) => (\n
    \n
    \n \n {func.description}\n \n
    \n
    \n \n handleCheckboxChange(func.id, e.target.checked)\n }\n />\n
    \n
    \n ))}\n
    \n
    \n
    \n )}\n \n );\n};\n","import React from 'react';\nimport { UsersSlideImageUploaderProps } from './types';\n\nexport const UsersSlideImageUploader: React.FC = (\n props,\n) => {\n const {\n slideLabel,\n slideName,\n slideSrc,\n onUpdateSlideImage,\n onDeleteSlideImage,\n } = props;\n\n return (\n
    \n

    \n {slideLabel}\n

    \n
    \n
    \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n","import React, { useCallback, useState } from 'react';\nimport { ValuationReportOptions } from '../valuation_report_options/ValuationReportOptions';\nimport { CheckboxField } from '../../components/CheckboxField/CheckboxField';\nimport { SelectField } from '../../components/SelectField/SelectField';\nimport { updateValuationReportOption } from './api';\nimport {\n UsersValuationReportOptionProps,\n ValuationReportOptionProps,\n} from './types';\n\nexport const UsersValuationReportOption: React.FC<\n UsersValuationReportOptionProps\n> = (props) => {\n const {\n valuation_report_option,\n inheritance_valuation_option,\n user_id,\n company_name,\n company_color,\n fontKeys,\n } = props;\n const token = document\n ?.getElementById('valuation_report_option_edit')\n ?.parentElement?.getElementsByTagName('input')[0].value;\n\n const [formState, setFormState] = useState({\n user_id: user_id,\n dcf: valuation_report_option.dcf,\n ebitda: valuation_report_option.ebitda,\n per: valuation_report_option.per,\n inheritance: inheritance_valuation_option.inheritance,\n background_color: valuation_report_option.background_color ?? '#000000',\n title_color: valuation_report_option.title_color ?? '#000000',\n table_color: valuation_report_option.table_color ?? '#000000',\n table_text_color: valuation_report_option.table_text_color ?? '#000000',\n font: valuation_report_option.font,\n });\n\n const handleInputChange = useCallback((e) => {\n const { name, type, value, checked } = e.target;\n if (type === 'checkbox') {\n setFormState((prevState) => ({\n ...prevState,\n [name]: checked,\n }));\n } else {\n setFormState((prevState) => ({\n ...prevState,\n [name]: value,\n }));\n }\n }, []);\n\n return (\n
    \n
    \n
    \n
    \n

    \n 株価算定報告書設定\n

    \n

    \n 株価算定報告書の設定を入力してください。\n

    \n
    \n
    \n
    \n
    \n
    \n \n 税法評価\n \n
    \n \n
    \n
    \n
    \n
    \n
    \n \n 会計評価\n \n
    \n \n \n \n
    \n
    \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n
    \n
    \n \n // @ts-ignore\n updateValuationReportOption(e, token, formState)\n }\n >\n 変更を保存\n
    \n
    \n
    \n
    \n );\n};\n","import React, { useCallback, useState } from 'react';\n\nimport axios from 'axios';\nimport toast from 'react-hot-toast';\nimport {\n CompanyMedicalReportOptionProps,\n UserProps,\n ValuationReportOptionProps,\n} from './types';\n\nexport const notify = (status: string, message: string) => {\n if (status === 'success') {\n toast(message, {\n style: {\n backgroundColor: '#ffffff',\n padding: '12px',\n borderRadius: '5px',\n },\n icon: '✅',\n });\n } else {\n toast(message, {\n style: {\n backgroundColor: '#ffffff',\n padding: '12px',\n borderRadius: '10px',\n },\n icon: '❌',\n });\n }\n};\n\nexport const updateUsersProfile = async (\n e: React.FormEvent,\n token: string,\n formState: UserProps,\n) => {\n e.preventDefault();\n const formParams = new FormData();\n formParams.append('user[last_name]', formState.last_name);\n formParams.append('user[first_name]', formState.first_name);\n formParams.append('user[company_name]', formState.company_name);\n formParams.append('user[department]', formState.department);\n formParams.append('user[email]', formState.email);\n formParams.append('user[phone]', formState.phone);\n formParams.append('user[post]', formState.post);\n formParams.append('user[employees]', formState.employees);\n formParams.append('user[role]', formState.role);\n if (Array.isArray(formState.function_ids)) {\n formState.function_ids.forEach((functionId) => {\n // @ts-ignore\n formParams.append('user[function_ids][]', functionId);\n });\n }\n formParams.append(\n 'user[two_factor_auth_enabled]',\n formState.two_factor_auth_enabled,\n );\n if (formState.company_logo) {\n formParams.append('user[company_logo]', formState.company_logo);\n }\n try {\n const response = await axios.patch(`/users/${formState.id}`, formParams, {\n headers: {\n 'X-CSRF-Token': token,\n },\n });\n console.log(response.data);\n if (response.data.status === 'success') {\n notify('success', 'ユーザー情報を更新しました。');\n } else {\n notify('failed', 'ユーザー情報の更新失敗しました。');\n }\n } catch (error) {\n console.error(error);\n notify('failed', 'ユーザー情報の更新失敗しました。');\n }\n};\n\nexport const updateCompanyMedicalReportOption = async (\n e: React.FormEvent,\n token: string,\n formState: CompanyMedicalReportOptionProps,\n) => {\n e.preventDefault();\n const formParams = new FormData();\n formParams.append(\n 'company_medical_report_option[top_image_type]',\n formState.topImageType,\n );\n formParams.append(\n 'company_medical_report_option[background_character]',\n formState.backgroundCharacter,\n );\n formParams.append(\n 'company_medical_report_option[table_cell_color]',\n formState.tableCellColor,\n );\n formParams.append(\n 'company_medical_report_option[table_header_color]',\n formState.tableHeaderColor,\n );\n formParams.append(\n 'company_medical_report_option[table_cell_text_color]',\n formState.tableCellTextColor,\n );\n formParams.append(\n 'company_medical_report_option[table_header_text_color]',\n formState.tableHeaderTextColor,\n );\n\n try {\n const response = await axios.patch(\n `/users/${formState.user_id}/company_medical_report_options`,\n formParams,\n {\n headers: {\n 'X-CSRF-Token': token,\n },\n },\n );\n console.log(response.data);\n if (response.data.status === 'success') {\n notify('success', '決算書チェッカー情報を更新しました。');\n } else {\n notify('failed', '決算書チェッカー情報の更新失敗しました。');\n }\n } catch (error) {\n console.error(error);\n notify('failed', '決算書チェッカー情報の更新失敗しました。');\n }\n};\n\nexport const updateValuationReportOption = async (\n e: React.FormEvent,\n token: string,\n formState: ValuationReportOptionProps,\n) => {\n e.preventDefault();\n const formParams = new FormData();\n formParams.append('valuation_report_option[dcf]', String(formState.dcf));\n formParams.append(\n 'valuation_report_option[ebitda]',\n String(formState.ebitda),\n );\n formParams.append('valuation_report_option[per]', String(formState.per));\n formParams.append(\n 'valuation_report_option[inheritance]',\n String(formState.inheritance),\n );\n formParams.append(\n 'valuation_report_option[background_color]',\n formState.background_color,\n );\n formParams.append(\n 'valuation_report_option[title_color]',\n formState.title_color,\n );\n formParams.append(\n 'valuation_report_option[table_color]',\n formState.table_color,\n );\n formParams.append(\n 'valuation_report_option[table_text_color]',\n formState.table_text_color,\n );\n formParams.append('valuation_report_option[font]', formState.font);\n\n try {\n const response = await axios.patch(\n `/users/${formState.user_id}/valuation_report_options`,\n formParams,\n {\n headers: {\n 'X-CSRF-Token': token,\n },\n },\n );\n console.log(response.data);\n if (response.data.status === 'success') {\n notify('success', response.data.notice);\n } else {\n notify('failed', '株価算定報告書情報の更新に失敗しました。');\n }\n } catch (error) {\n console.error(error);\n notify('failed', '株価算定報告書情報の更新に失敗しました。');\n }\n};\n\nexport const useSlideImage = (user_id: string, token: string | undefined) => {\n const [imagesSrc, setImagesSrc] = useState({\n top_image: '',\n family_succession_image: '',\n employee_succession_image: '',\n stock_listing_image: '',\n ma_image: '',\n cessation_image: '',\n });\n\n const fetchSlideImage = useCallback(\n async (slide_name) => {\n try {\n const response = await axios.get(\n `/users/${user_id}/company_medical_report_options/slide_image?slide_name=${slide_name}`,\n {\n responseType: 'arraybuffer',\n headers: {\n 'X-CSRF-Token': token,\n },\n },\n );\n\n if (response.status === 204) {\n return;\n }\n\n const base64 = btoa(\n new Uint8Array(response.data).reduce(\n (data, byte) => data + String.fromCharCode(byte),\n '',\n ),\n );\n\n setImagesSrc((prevImagesSrc) => ({\n ...prevImagesSrc,\n [`${slide_name}`]: `data:image/png;base64,${base64}`,\n }));\n } catch (error) {\n console.error('画像の取得に失敗しました', error);\n }\n },\n [user_id, token],\n );\n\n const updateSlideImage = useCallback(\n async (slide_name, slide_src) => {\n try {\n const response = await axios.post(\n `/users/${user_id}/company_medical_report_options/update_slide_image?slide_name=${slide_name}`,\n slide_src,\n {\n headers: {\n 'X-CSRF-Token': token,\n 'Content-Type': 'multipart/form-data',\n },\n },\n );\n\n if (response.status === 204) {\n console.log('スライド画像がありません。');\n return;\n }\n notify('success', 'スライド画像を更新しました。');\n fetchSlideImage(slide_name);\n } catch (error) {\n notify('failed', 'スライド画像の更新に失敗しました。');\n console.error('画像の更新に失敗しました', error);\n }\n },\n [user_id, token, fetchSlideImage],\n );\n\n const deleteSlideImage = useCallback(\n async (slide_name) => {\n try {\n const response = await axios.delete(\n `/users/${user_id}/company_medical_report_options/delete_slide_image?slide_name=${slide_name}`,\n {\n headers: {\n 'X-CSRF-Token': token,\n },\n },\n );\n\n if (response.data.status === 'success') {\n notify('success', 'スライド画像を削除しました。');\n setImagesSrc((prevImagesSrc) => ({\n ...prevImagesSrc,\n [`${slide_name}`]: '',\n }));\n } else {\n notify('failed', 'スライド画像の削除に失敗しました。');\n console.error('画像の削除に失敗しました');\n }\n } catch (error) {\n notify('failed', 'スライド画像の削除に失敗しました。');\n console.error('画像の削除に失敗しました', error);\n }\n },\n [user_id, token],\n );\n\n return { imagesSrc, fetchSlideImage, updateSlideImage, deleteSlideImage };\n};\n","import React from 'react';\nimport { ValuationReportPreview } from './previews/ValuationReportPreview';\nimport { valuationReportOptionProps } from './types';\nimport { ValuationReportOptionProps } from '../users/types';\nimport { ColorPicker } from '../../components/ColorPicker/ColorPicker';\n\ntype ValuationReportOptionsProps = {\n company_name: string;\n company_color: string;\n formState: valuationReportOptionProps;\n setFormState: React.Dispatch<\n React.SetStateAction\n >;\n};\n\nexport const ValuationReportOptions: React.FC = (\n props,\n) => {\n const { company_name, formState, setFormState } = props;\n\n return (\n <>\n

    \n レポートカラー設定\n

    \n
    \n \n setFormState((prev) => ({ ...prev, title_color: color }))\n }\n />\n \n setFormState((prev) => ({ ...prev, background_color: color }))\n }\n />\n \n setFormState((prev) => ({ ...prev, table_color: color }))\n }\n name=\"table_color\"\n />\n \n setFormState((prev) => ({ ...prev, table_text_color: color }))\n }\n label=\"テーブルテキストテキスト\"\n name=\"table_text_color\"\n />\n
    \n\n \n \n );\n};\n","import React, { useMemo } from 'react';\n\ntype ValuationOptionProps = {\n companyName: string;\n titleColor: string;\n tableColor: string;\n tableTextColor: string;\n};\n\nexport const ApproachPagePreview: React.FC = React.memo(\n (props) => {\n const { companyName, titleColor, tableColor, tableTextColor } = props;\n\n const topTexts = useMemo(() => {\n return [\n '・​本算定における事業計画は、過去実績に基づく成り行き計画を引いている。',\n '・売上高、売上原価及び販管費の計価値は以下の通りである。',\n ];\n }, []);\n\n const columnHeaderValues = useMemo(() => {\n const thisYear = new Date().getFullYear();\n const thisMonth = new Date().getMonth();\n return [\n '',\n `直前期 ${thisYear}年${thisMonth + 1}月期`,\n `計画1期 ${thisYear + 1}年${thisMonth + 1}月期`,\n `計画2期 ${thisYear + 2}年${thisMonth + 1}月期`,\n `計画3期 ${thisYear + 3}年${thisMonth + 1}月期`,\n `計画4期 ${thisYear + 4}年${thisMonth + 1}月期`,\n `計画5期 ${thisYear + 5}年${thisMonth + 1}月期`,\n ];\n }, []);\n\n const columnValues = useMemo(() => {\n return [\n ['売上高', 1000, 2000, 3000, 4000, 5000, 6000],\n ['売上原価', 1000, 2000, 3000, 4000, 5000, 6000],\n ['売上総利益', 1000, 2000, 3000, 4000, 5000, 6000],\n ['販売費及び一般管理費', 1000, 2000, 3000, 4000, 5000, 6000],\n ['営業利益', 1000, 2000, 3000, 4000, 5000, 6000],\n ['法人税等', 1000, 2000, 3000, 4000, 5000, 6000],\n ['NOPAT', 1000, 2000, 3000, 4000, 5000, 6000],\n ['正味運転資本の増減', 1000, 2000, 3000, 4000, 5000, 6000],\n ['減価償却費', 1000, 2000, 3000, 4000, 5000, 6000],\n ['CAPEX', 1000, 2000, 3000, 4000, 5000, 6000],\n ['FCF', 1000, 2000, 3000, 4000, 5000, 6000],\n ];\n }, []);\n\n const bottomTexts = useMemo(() => {\n return [\n '※売上高:前年度比平均から年平均成長率を算出し、成り行き予想をしている。',\n '※過去実績から売上年平均成長率が2.00%と算出されたことから、計画期は2.00%成長するものと仮定している。',\n '※売上原価、販管費は対売上比率平均を算出し、成り行き予想をしている。',\n '※過去実績から売上原価率(売上原価÷売上高)が100.00%、販管費比率(販管費÷売上高)が100.00%と算定されたことから、計画値も同様の水準で推移するものと仮定している。',\n ];\n }, []);\n\n return (\n <>\n
    \n
    \n {/* ページタイトル */}\n
    \n
    \n
    \n \n 3.前提条件及び評価明細\n

    \n
    \n
    \n

    \n confidential\n

    \n
    \n
    \n

    \n DCF法における前提条件[事業計画]\n

    \n
    \n\n {/* 冒頭説明文 */}\n
    \n {topTexts.map((val) => (\n

    \n {val}\n

    \n ))}\n
    \n\n {/* アプローチテーブル */}\n
    \n \n \n \n {columnHeaderValues.map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n \n \n {columnValues[0].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[1].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[2].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[3].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[4].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[5].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[6].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[7].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[8].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[9].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[10].map((val, idx) =>\n idx === 0 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n
    \n
    \n\n {/* 末尾説明文 */}\n
    \n {bottomTexts.map((val) => (\n

    \n {val}\n

    \n ))}\n
    \n\n {/* コピーライト */}\n
    \n
    \n
    \n
    \n \n 本報告書は、当社と貴社との契約に基づき実施した調査結果を貴社内部の意思決定の参考とするために作成されており、第三者への開示は当社の事前許可なくできません。\n

    \n \n ©︎ {new Date().getFullYear()} {companyName}\n

    \n
    \n
    \n
    \n
    \n
    \n \n );\n },\n);\n","import React from 'react';\n\ntype ValuationOptionProps = {\n companyName: string;\n titleColor: string;\n};\n\nexport const HeaderPagePreview: React.FC = React.memo(\n (props) => {\n const { companyName, titleColor } = props;\n\n return (\n <>\n
    \n
    \n
    \n
    \n

    \n confidential\n

    \n
    \n
    \n
    \n
    \n
    \n \n 1.株価算定分析結果サマリー\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n
    \n \n 本報告書は、当社と貴社との契約に基づき実施した調査結果を貴社内部の意思決定の参考とするために作成されており、第三者への開示は当社の事前許可なくできません。\n

    \n \n ©︎ {new Date().getFullYear()} {companyName}\n

    \n
    \n
    \n
    \n \n \n );\n },\n);\n","import React, { useMemo } from 'react';\n\ntype ValuationOptionProps = {\n companyName: string;\n titleColor: string;\n backgroundColor: string;\n tableColor: string;\n tableTextColor: string;\n};\n\nexport const SummaryPagePreview: React.FC = React.memo(\n (props) => {\n const {\n companyName,\n titleColor,\n backgroundColor,\n tableColor,\n tableTextColor,\n } = props;\n\n const topTexts = useMemo(() => {\n return [\n '・対象会社の株式価値の妥当性を検討する参考情報を提供すること目的として、株価算定分析を実施した。',\n '・株主資本価値分析の結果、対象会社の株式価値及び1株あたりの株式価値は以下の通りに分析された。',\n '・対象会社の発行済株式数は500000株である。',\n '・評価基準日は、2022年6月6日である。',\n ];\n }, []);\n\n const columnHeaderValues = useMemo(() => {\n return ['', '', '株式価値', '1株あたり株式価値'];\n }, []);\n\n const columnValues = useMemo(() => {\n return [\n ['', '', '上限値', '下限値', '上限値', '下限値'],\n [\n 'インカムアプローチ',\n 'DCF法',\n '1,062,969,980 千円',\n '1,299,185,531 千円',\n '2,125,939 円',\n '2,598,371 円',\n ],\n [\n 'マーケットアプローチ',\n 'EV/EBITDA倍率法',\n '35,031 千円',\n '42,816 千円',\n '70 円',\n '85 円',\n ],\n [\n 'マーケットアプローチ',\n 'PER倍率法',\n '5,677 千円',\n '-6,939 千円',\n '-12 円',\n '-14 円',\n ],\n ];\n }, []);\n\n const chartValues = useMemo(() => {\n return [['PER倍率法', 'EV/EBITDA倍率法', 'DCF法']];\n }, []);\n\n const bottomTexts = useMemo(() => {\n return [\n '※売上高:前年度比平均から年平均成長率を算出し、成り行き予想をしている。',\n '※過去実績から売上年平均成長率が2.00%と算出されたことから、計画期は2.00%成長するものと仮定している。',\n '※売上原価、販管費は対売上比率平均を算出し、成り行き予想をしている。',\n '※過去実績から売上原価率(売上原価÷売上高)が100.00%、販管費比率(販管費÷売上高)が100.00%と算定されたことから、計画値も同様の水準で推移するものと仮定している。',\n ];\n }, []);\n\n return (\n <>\n
    \n
    \n {/* ページタイトル */}\n
    \n
    \n
    \n \n 1.株価算定分析結果サマリー\n

    \n
    \n
    \n

    \n confidential\n

    \n
    \n
    \n

    \n 株価算定分析結果サマリー\n

    \n
    \n\n {/* 冒頭説明文 */}\n
    \n {topTexts.map((val) => (\n \n {val}\n

    \n ))}\n
    \n\n {/* バリュエーションテーブル */}\n
    \n \n \n \n {columnHeaderValues.map((val, idx) =>\n idx === 2 || idx === 3 ? (\n \n {val}\n \n ) : (\n \n ),\n )}\n \n \n \n \n {columnValues[0].map((val, idx) =>\n idx === 0 || idx === 1 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[1].map((val, idx) =>\n idx === 0 || idx === 1 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[2].map((val, idx) =>\n idx === 0 || idx === 1 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n {columnValues[3].map((val, idx) =>\n idx === 0 || idx === 1 ? (\n \n {val}\n \n ) : (\n \n {val}\n \n ),\n )}\n \n \n
    \n
    \n\n {/* バリュエーションチャート */}\n
    \n
    \n {chartValues[0].map((val) => (\n \n {val}\n

    \n ))}\n
    \n
    \n

    \n

    0

    \n
    \n
    \n

    \n

    \n 500,000,000\n

    \n
    \n
    \n

    \n
    \n

    \n 1000,000,000\n

    \n
    \n
    \n

    \n

    \n 1500,000,000\n

    \n
    \n
    \n

    \n

    \n 2000,000,000\n

    \n
    \n
    \n\n {/* 末尾説明文 */}\n
    \n {bottomTexts.map((val) => (\n

    \n {val}\n

    \n ))}\n
    \n\n {/* コピーライト */}\n
    \n
    \n
    \n
    \n \n 本報告書は、当社と貴社との契約に基づき実施した調査結果を貴社内部の意思決定の参考とするために作成されており、第三者への開示は当社の事前許可なくできません。\n

    \n \n ©︎ {new Date().getFullYear()} {companyName}\n

    \n
    \n
    \n
    \n
    \n \n \n );\n },\n);\n","import React from 'react';\n\ntype ValuationOptionProps = {\n companyName: string;\n titleColor: string;\n backgroundColor: string;\n};\n\nexport const TopPagePreview: React.FC = React.memo(\n (props) => {\n const { companyName, titleColor, backgroundColor } = props;\n\n return (\n <>\n
    \n
    \n
    \n

    \n
    \n
    \n

    \n
    \n
    \n
    \n
    \n
    \n

    \n confidential\n

    \n
    \n
    \n

    サンプル株式会社御中

    \n \n 株式価値算定報告書\n

    \n
    \n
    \n
    \n
    \n
    \n

    {companyName}

    \n

    \n {new Date().getFullYear()}年{new Date().getMonth() + 1}月\n {new Date().getDate()}日\n

    \n
    \n
    \n \n \n );\n },\n);\n","import React from 'react';\nimport { TopPagePreview } from './TopPagePreview';\nimport { HeaderPagePreview } from './HeaderPagePreview';\nimport { SummaryPagePreview } from './SummaryPagePreview';\nimport { ApproachPagePreview } from './ApproachPagePreview';\n\ntype ValuationReportPreviewProps = {\n companyName: string;\n titleColor: string;\n backgroundColor: string;\n tableColor: string;\n tableTextColor: string;\n};\n\nexport const ValuationReportPreview: React.FC =\n React.memo((props) => {\n const {\n companyName,\n titleColor,\n backgroundColor,\n tableColor,\n tableTextColor,\n } = props;\n\n return (\n <>\n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n
    \n
    \n \n );\n });\n","// @ts-ignore\nwindow.toggleModal = function toggleModal(\n // @ts-ignore\n modalID,\n // @ts-ignore\n dictionary_id,\n // @ts-ignore\n word_id,\n // @ts-ignore\n word_name,\n) {\n // 削除処理\n // 削除ボタンの生成\n const open_delete_modal_btn = document.getElementById(\n 'open_delete_modal_btn',\n );\n if (open_delete_modal_btn) {\n open_delete_modal_btn.remove();\n }\n const delete_button =\n '削除';\n const delete_button_div = document.getElementById('delete_button_div');\n // @ts-ignore\n delete_button_div.insertAdjacentHTML('afterbegin', delete_button);\n\n // 単語名の挿入\n const delete_target_word_name = document.getElementById(\n 'delete_target_word_name',\n );\n // @ts-ignore\n delete_target_word_name.innerHTML = word_name;\n\n // @ts-ignore\n // modalの表示\n document.getElementById(modalID).classList.toggle('hidden');\n};\n\n// @ts-ignore\nwindow.submit_fnc = () => {\n // @ts-ignore\n document.getElementById('delete_submit').click();\n};\n\nwindow.addEventListener('load', () => {\n console.log('hoge');\n});\n","// @ts-ignore\nwindow.SelectAll = () => {\n // eslint-disable-next-line prefer-const\n let wordsForm = document.getElementById('words_form'),\n // @ts-ignore\n // eslint-disable-next-line prefer-const\n elements = wordsForm.elements['delete_form[word_ids][]'],\n // eslint-disable-next-line prefer-const\n elementLength = elements.length,\n // @ts-ignore\n count,\n // @ts-ignore\n // eslint-disable-next-line prefer-const\n element = wordsForm.elements['check_all'];\n for (count = 0; count < elementLength; count++) {\n if (element.checked == true) {\n elements[count].checked = true;\n } else {\n elements[count].checked = false;\n }\n }\n};\n","// By default, this pack is loaded for server-side rendering.\n// It must expose react_ujs as `ReactRailsUJS` and prepare a require context.\n// var componentRequireContext = require.context(\"components\", true);\n// var ReactRailsUJS = require(\"react_ujs\");\n// ReactRailsUJS.useContext(componentRequireContext);\n","export const MoneyFormatter = (strMoney: number) => {\n const money = Math.floor(strMoney);\n const MONEY_PRESET = ['', '万', '億', '兆', '京', '垓'];\n const MONEY_LIMIT = 68;\n const nums = String(money)\n .replace(/(\\d)(?=(\\d\\d\\d\\d)+$)/g, '$1,')\n .split(',')\n .reverse();\n\n if (String(strMoney).length < MONEY_LIMIT) {\n let converted_money = '';\n nums.forEach((num, i) => {\n if (!num.match(/^[0]+$/)) {\n converted_money =\n num.replace(/^[0]+/g, '') + MONEY_PRESET[i] + converted_money;\n } else if (num === '0') {\n converted_money = '0';\n }\n });\n const splited_money: string[] = converted_money.split('万');\n return 1 < splited_money.length\n ? `${splited_money[0]}万円`\n : `${splited_money}円`;\n } else {\n return 0;\n }\n};\n\nexport const transferLocation = (url: string): void => {\n location.href = url;\n};\n\nexport const transformDate = (date: string | null) => {\n if (!date) return null;\n const originalDateString = date;\n const originalDate = new Date(originalDateString);\n const year = originalDate.getFullYear();\n const month = (originalDate.getMonth() + 1).toString().padStart(2, '0');\n const day = originalDate.getDate().toString().padStart(2, '0');\n return `${year}-${month}-${day}`;\n};\n\nexport const sleep = (ms: number) =>\n new Promise((resolve) => {\n setTimeout(() => {\n resolve(undefined);\n }, ms);\n });\n","export const RISK_FREE_RATE = 0.0025;\nexport const EQUITY_RISK_PREMIUM = 0.06;\nexport const SIZE_RISK_PREMIUM = 0.0;\nexport const MAX_TAX_RATE = 33.58;\nexport const MIN_TAX_RATE = 29.74;\nexport const modalStyle = {\n content: {\n top: '50%',\n left: '50%',\n right: 'auto',\n bottom: 'auto',\n marginRight: '0%',\n width: '45%',\n transform: 'translate(-50%, -50%)',\n },\n};\nexport const VALUTION_MIN_RATE = 0.9;\nexport const VALUTION_MAX_RATE = 1.1;\n","import { z } from 'zod';\n\nconst unionElement = z.union([z.string(), z.number(), z.boolean(), z.null()]);\n\nexport const PerSchema = z.object({\n result: z.object({\n valuation: unionElement,\n enterprise_value: unionElement,\n business_value: unionElement,\n goodwill: unionElement,\n }),\n breakdown: z.object({\n 0: z.object({\n non_liquidity_discount: unionElement,\n profit: unionElement,\n industry: unionElement,\n per: unionElement,\n valuation: unionElement,\n }),\n }),\n process: z.array(z.array(unionElement)),\n validates: z.array(z.unknown()),\n message: unionElement,\n});\n\nexport const EbitdaSchema = z.object({\n result: z.object({\n valuation: unionElement,\n enterprise_value: unionElement,\n business_value: unionElement,\n goodwill: unionElement,\n }),\n breakdown: z.object({\n 0: z.object({\n non_liquidity_discount: unionElement,\n average_ebitda: unionElement,\n operating_profit: unionElement,\n depreciation: unionElement,\n ebitda: unionElement,\n industry: unionElement,\n ebitda_ratio: unionElement,\n enterprise_value: unionElement,\n cash_and_deposits: unionElement,\n insurance_funds: unionElement,\n listed_investment_securities: unionElement,\n other_non_business_assets_exept: unionElement,\n other_non_business_assets: unionElement,\n debt_like_item: unionElement,\n interest_bearing_debt: unionElement,\n account_receivable: unionElement,\n notes_receivable: unionElement,\n other_receivable: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable_trade: unionElement,\n notes_payable: unionElement,\n other_payable: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n surplus_cash: unionElement,\n asset_for_non_business: unionElement,\n net_debt: unionElement,\n valuation: unionElement,\n }),\n }),\n process: z.array(z.array(unionElement)),\n validates: z.array(unionElement),\n message: unionElement,\n});\n\nexport const DcfSchema = z.object({\n result: z.object({\n valuation: unionElement,\n enterprise_value: unionElement,\n business_value: unionElement,\n goodwill: unionElement,\n }),\n breakdown: z.object({\n 0: z.object({\n industry: unionElement,\n unlevered_beta: unionElement,\n average_de_ratio: unionElement,\n share_capital: unionElement,\n effective_tax_rate: unionElement,\n growth_rate: unionElement,\n sixth_term_growth_rate: unionElement,\n interest_expenses: unionElement,\n interest_bearing_debt: unionElement,\n shareholders_equity: unionElement,\n de_ratio: unionElement,\n levered_beta: unionElement,\n risk_free_rate: unionElement,\n risk_free_rate_org: unionElement,\n risk_free_rate_date: unionElement,\n equity_risk_premium: unionElement,\n equity_cost: unionElement,\n average_interest_beading_debt: unionElement,\n debt_cost: unionElement,\n debt_rate: unionElement,\n wacc: unionElement,\n manual_net_sales_rate: unionElement,\n manual_cost_of_sales_rate: unionElement,\n manual_sga_rate: unionElement,\n net_sales: unionElement,\n cost_of_sales: unionElement,\n sga: unionElement,\n depreciation: unionElement,\n capex: unionElement,\n gross: unionElement,\n operating_income: unionElement,\n income_taxes: unionElement,\n nopat: unionElement,\n account_receivable: unionElement,\n notes_receivable: unionElement,\n other_receivable: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable_trade: unionElement,\n notes_payable: unionElement,\n other_payable: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n trade_receivable_rotate: unionElement,\n inventories_rotate: unionElement,\n accounts_payable_ratate: unionElement,\n cash_and_deposits: unionElement,\n insurance_funds: unionElement,\n listed_investment_securities: unionElement,\n other_non_business_assets_exept: unionElement,\n other_non_business_assets: unionElement,\n debt_like_item: unionElement,\n surplus_cash: unionElement,\n asset_for_non_business: unionElement,\n net_debt: unionElement,\n non_liquidity_discount: unionElement,\n dcpc: unionElement,\n fcf_pv_sum: unionElement,\n terminal_value: unionElement,\n terminal_value_pv: unionElement,\n business_value: unionElement,\n enterprise_value: unionElement,\n valuation: unionElement,\n size_risk_premium: unionElement,\n }),\n 1: z.object({\n net_sales: unionElement,\n cost_of_sales: unionElement,\n sga: unionElement,\n depreciation: unionElement,\n capex: unionElement,\n gross: unionElement,\n operating_income: unionElement,\n income_taxes: unionElement,\n nopat: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n operation_capital: unionElement,\n fcf: unionElement,\n dcpc: unionElement,\n fcf_pv: unionElement,\n }),\n 2: z.object({\n net_sales: unionElement,\n cost_of_sales: unionElement,\n sga: unionElement,\n depreciation: unionElement,\n capex: unionElement,\n gross: unionElement,\n operating_income: unionElement,\n income_taxes: unionElement,\n nopat: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n operation_capital: unionElement,\n fcf: unionElement,\n dcpc: unionElement,\n fcf_pv: unionElement,\n }),\n 3: z.object({\n net_sales: unionElement,\n cost_of_sales: unionElement,\n sga: unionElement,\n depreciation: unionElement,\n capex: unionElement,\n gross: unionElement,\n operating_income: unionElement,\n income_taxes: unionElement,\n nopat: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n operation_capital: unionElement,\n fcf: unionElement,\n dcpc: unionElement,\n fcf_pv: unionElement,\n }),\n 4: z.object({\n net_sales: unionElement,\n cost_of_sales: unionElement,\n sga: unionElement,\n depreciation: unionElement,\n capex: unionElement,\n gross: unionElement,\n operating_income: unionElement,\n income_taxes: unionElement,\n nopat: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n operation_capital: unionElement,\n fcf: unionElement,\n dcpc: unionElement,\n fcf_pv: unionElement,\n }),\n 5: z.object({\n net_sales: unionElement,\n cost_of_sales: unionElement,\n sga: unionElement,\n depreciation: unionElement,\n capex: unionElement,\n gross: unionElement,\n operating_income: unionElement,\n income_taxes: unionElement,\n nopat: unionElement,\n trade_receivable: unionElement,\n inventories: unionElement,\n accounts_payable: unionElement,\n capital_balance: unionElement,\n operation_capital: unionElement,\n fcf: unionElement,\n dcpc: unionElement,\n fcf_pv: unionElement,\n }),\n '-1': z.object({ interest_bearing_debt: unionElement }),\n }),\n process: z.array(z.union([z.array(unionElement), z.array(unionElement)])),\n validates: z.array(z.unknown()),\n message: unionElement,\n});\n\nexport const InheritanceSchema = z.object({\n result: z.object({\n result_selected: unionElement,\n company_size: unionElement,\n stock_price: unionElement,\n valuation: unionElement,\n inheritance_tax: unionElement,\n }),\n document: z.object({\n page_1: z.object({\n treasury_voting: unionElement,\n largest_shareholder_group_resolution_rights_rate: unionElement,\n group_voting: unionElement,\n taxpayer_relevant_parties_group_resolution_rights_rate: unionElement,\n number_of_shares_issued: unionElement,\n calc_method: unionElement,\n is_officer: unionElement,\n is_main_shareholders: unionElement,\n is_other_shareholders: unionElement,\n calc_method_after: unionElement,\n }),\n page_2: z.object({\n assets: unionElement,\n net_sales: unionElement,\n employees: unionElement,\n company_size_asset: z.object({\n industry: unionElement,\n size: unionElement,\n }),\n company_size_employee: unionElement,\n company_size_sales: z.object({\n industry: unionElement,\n size: unionElement,\n }),\n company_size: unionElement,\n }),\n page_3: z.object({\n ratio_semi_elements_dividend_1: unionElement,\n ratio_semi_elements_income_1: unionElement,\n ratio_semi_elements_net_asset_1: unionElement,\n ratio_semi_elements_dividend_2: unionElement,\n ratio_semi_elements_income_2: unionElement,\n ratio_semi_elements_net_asset_2: unionElement,\n assets: unionElement,\n stock_and_investment_sum_mpe: unionElement,\n stock_owned_rate: unionElement,\n land_sum_mpe: unionElement,\n land_owned_rate: unionElement,\n company_size: unionElement,\n ratio_semi_elements_0: z.boolean(),\n ratio_semi_elements: z.boolean(),\n stock_owned: z.boolean(),\n company_size_owned: z.boolean(),\n year_progress: z.boolean(),\n before_opening: z.boolean(),\n closed: z.boolean(),\n under_liquidation: z.boolean(),\n }),\n page_4: z.object({\n modification_ratio_semi_market_value_2: unionElement,\n net_asset_per_1_stock_1: unionElement,\n net_asset_per_1_stock_2: unionElement,\n company_type: unionElement,\n stock_price: unionElement,\n similar_rate: unionElement,\n stock_price_1: unionElement,\n share_capital: unionElement,\n number_of_shares_issued: unionElement,\n treasury_shares: unionElement,\n number_of_issued_share_50_yen: unionElement,\n capital_amount_per_1_stock: unionElement,\n annual_dividend_amount_before_1_term: unionElement,\n non_recurring_dividend_amount_before_1_term: unionElement,\n ordinary_annual_dividend_amount_before_1_term: unionElement,\n annual_dividend_amount_before_2_term: unionElement,\n non_recurring_dividend_amount_before_2_term: unionElement,\n ordinary_annual_dividend_amount_before_2_term: unionElement,\n annual_average_dividend_amount: unionElement,\n annual_dividend_on_shares: unionElement,\n annual_dividend_on_shares_result: unionElement,\n dividend_pay_back_market_value: unionElement,\n valuation: unionElement,\n }),\n page_5: z.object({\n share_capital: unionElement,\n number_of_shares_issued: unionElement,\n treasury_shares: unionElement,\n capital_amount_per_1_stock: unionElement,\n number_of_issued_share_50_yen: unionElement,\n annual_dividend_amount_before_1_term: unionElement,\n non_recurring_dividend_amount_before_1_term: unionElement,\n ordinary_annual_dividend_amount_before_1_term: unionElement,\n annual_dividend_amount_before_2_term: unionElement,\n non_recurring_dividend_amount_before_2_term: unionElement,\n ordinary_annual_dividend_amount_before_2_term: unionElement,\n annual_dividend_amount_before_3_term: unionElement,\n non_recurring_dividend_amount_before_3_term: unionElement,\n ordinary_annual_dividend_amount_before_3_term: unionElement,\n annual_average_dividend_amount_1: unionElement,\n annual_average_dividend_amount_2: unionElement,\n ratio_semi_elements_dividend_1: unionElement,\n ratio_semi_elements_dividend_2: unionElement,\n annual_dividend_amount_50_yen: unionElement,\n taxable_income_before_1_term: unionElement,\n taxable_income_before_2_term: unionElement,\n taxable_income_before_3_term: unionElement,\n profit_amount_before_1_term: unionElement,\n profit_amount_before_2_term: unionElement,\n profit_amount_before_3_term: unionElement,\n income_tax_not_included_before_1_term: unionElement,\n income_tax_not_included_before_2_term: unionElement,\n income_tax_not_included_before_3_term: unionElement,\n income_tax_before_1_term: unionElement,\n income_tax_before_2_term: unionElement,\n income_tax_before_3_term: unionElement,\n deduction_of_loss_carryforwards_before_1_term: unionElement,\n deduction_of_loss_carryforwards_before_2_term: unionElement,\n deduction_of_loss_carryforwards_before_3_term: unionElement,\n ordinary_annual_income_amount_before_1_term: unionElement,\n ordinary_annual_income_amount_before_2_term: unionElement,\n ordinary_annual_income_amount_before_3_term: unionElement,\n ratio_semi_elements_income_1: unionElement,\n ratio_semi_elements_income_2: unionElement,\n annual_income_amount_average_50_yen: unionElement,\n share_capital_before_1_term: unionElement,\n share_capital_before_2_term: unionElement,\n profit_reserve_amount_before_1_term: unionElement,\n profit_reserve_amount_before_2_term: unionElement,\n net_asset_market_value_before_1_term: unionElement,\n net_asset_market_value_before_2_term: unionElement,\n ratio_semi_elements_net_asset_1: unionElement,\n ratio_semi_elements_net_asset_2: unionElement,\n net_asset_market_value_50_yen: unionElement,\n industry_1: unionElement,\n industry_1_number: unionElement,\n industry_1_month_1: unionElement,\n industry_1_month_2: unionElement,\n industry_1_month_3: unionElement,\n industry_1_price_1: unionElement,\n industry_1_price_2: unionElement,\n industry_1_price_3: unionElement,\n industry_1_price_4: unionElement,\n industry_1_price_5: unionElement,\n industry_1_price_min: unionElement,\n industry_2: unionElement,\n industry_2_number: unionElement,\n industry_2_month_1: unionElement,\n industry_2_month_2: unionElement,\n industry_2_month_3: unionElement,\n industry_2_price_1: unionElement,\n industry_2_price_2: unionElement,\n industry_2_price_3: unionElement,\n industry_2_price_4: unionElement,\n industry_2_price_5: unionElement,\n industry_2_price_min: unionElement,\n industry_1_dividend: unionElement,\n industry_1_profit: unionElement,\n industry_1_net_asset: unionElement,\n ratio_semi_rate_1_dividend: unionElement,\n ratio_semi_rate_1_profit: unionElement,\n ratio_semi_rate_1_net_asset: unionElement,\n ratio_semi_rate_1: unionElement,\n ratio_semi_value_1: unionElement,\n industry_2_dividend: unionElement,\n industry_2_profit: unionElement,\n industry_2_net_asset: unionElement,\n ratio_semi_rate_2_dividend: unionElement,\n ratio_semi_rate_2_profit: unionElement,\n ratio_semi_rate_2_net_asset: unionElement,\n ratio_semi_rate_2: unionElement,\n ratio_semi_value_2: unionElement,\n ratio_semi_value: unionElement,\n ratio_semi_value_per_1_stock: unionElement,\n dividend_amount: unionElement,\n modification_ratio_semi_market_value_1: unionElement,\n payment_amount: unionElement,\n allocation_number: unionElement,\n number_of_allotments_or_grants: unionElement,\n modification_ratio_semi_market_value_2: unionElement,\n }),\n page_6: z.object({\n assets: z.array(\n z.object({\n name: unionElement,\n book_value: unionElement,\n market_price: unionElement,\n }),\n ),\n assets_book_value: unionElement,\n assets_market_price: unionElement,\n liabilities: z.array(z.unknown()),\n liabilities_book_value: unionElement,\n liabilities_market_price: unionElement,\n stock_and_investment_sum: unionElement,\n stock_and_investment_sum_mpe: unionElement,\n land_sum_mpe: unionElement,\n net_asset_by_inheritance: unionElement,\n net_asset_by_account_book: unionElement,\n evaluation_difference: unionElement,\n corporate_tax_amount_equivalent: unionElement,\n taxation_time_net_asset: unionElement,\n number_of_shares_issued: unionElement,\n net_asset_per_1_stock_1: unionElement,\n net_asset_per_1_stock_2: unionElement,\n }),\n page_7: z.object({\n modification_ratio_semi_market_value_2: unionElement,\n net_asset_per_1_stock_1: unionElement,\n net_asset_per_1_stock_2: unionElement,\n stock_price_1: unionElement,\n stock_price_one: unionElement,\n stock_price_owned: unionElement,\n stock_price_land: unionElement,\n stock_price_year_progress: z.boolean(),\n stock_price_before_opening_or_closed: z.boolean(),\n share_capital: unionElement,\n number_of_shares_issued: unionElement,\n treasury_shares: unionElement,\n number_of_issued_share_50_yen: unionElement,\n capital_amount_per_1_stock: unionElement,\n annual_dividend_amount_before_1_term: unionElement,\n non_recurring_dividend_amount_before_1_term: unionElement,\n ordinary_annual_dividend_amount_before_1_term: unionElement,\n annual_dividend_amount_before_2_term: unionElement,\n non_recurring_dividend_amount_before_2_term: unionElement,\n ordinary_annual_dividend_amount_before_2_term: unionElement,\n annual_average_dividend_amount: unionElement,\n annual_dividend_on_shares: unionElement,\n annual_dividend_on_shares_result: unionElement,\n dividend_pay_back_market_value: unionElement,\n stock_price_pay_back: unionElement,\n }),\n }),\n document_description: z.object({\n page_1: z.array(\n z.union([\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n z.object({\n key: unionElement,\n name: unionElement,\n type: unionElement,\n enum: z.array(unionElement),\n }),\n ]),\n ),\n page_2: z.array(\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n ),\n page_3: z.array(\n z.union([\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n z.object({\n key: unionElement,\n name: unionElement,\n type: unionElement,\n enum: z.array(unionElement),\n }),\n ]),\n ),\n page_4: z.array(\n z.union([\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n z.object({\n key: unionElement,\n name: unionElement,\n type: unionElement,\n enum: z.array(unionElement),\n }),\n z.object({ key: unionElement, name: unionElement }),\n ]),\n ),\n page_5: z.array(\n z.union([\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n z.object({ key: unionElement, name: unionElement }),\n ]),\n ),\n page_6: z.array(\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n ),\n page_7: z.array(\n z.object({ key: unionElement, name: unionElement, type: unionElement }),\n ),\n }),\n process: z.array(z.array(unionElement)),\n validates: z.array(z.unknown()),\n message: unionElement,\n});\n","// extracted by mini-css-extract-plugin","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var getPrototypeOf = require(\"./getPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nvar possibleConstructorReturn = require(\"./possibleConstructorReturn.js\");\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}\nmodule.exports = _createSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nexport default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived),\n result;\n if (hasNativeReflectConstruct) {\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n };\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import _typeof from \"./typeof.js\";\nexport default function toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _getPrototypeOf(o);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var defineProperty = require(\"./defineProperty.js\");\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nmodule.exports = _objectSpread2, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n return assertThisInitialized(self);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _taggedTemplateLiteral(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\nmodule.exports = _taggedTemplateLiteral, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : String(i);\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\n\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\n\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n/* eslint-disable no-fallthrough */\n\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };","import hoistNonReactStatics$1 from 'hoist-non-react-statics'; // this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = function hoistNonReactStatics(targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n};\n\nexport { hoistNonReactStatics as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nvar isBrowser = \"object\" !== 'undefined';\nvar hasOwn = {}.hasOwnProperty;\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nif (!isBrowser) {\n withEmotionCache = function withEmotionCache(func) {\n return function (props) {\n var cache = useContext(EmotionCacheContext);\n\n if (cache === null) {\n // yes, we're potentially creating this on every render\n // it doesn't actually matter though since it's only on the server\n // so there will only every be a single render\n // that could change in the future because of suspense and etc. but for now,\n // this works and i don't want to optimise for a future thing that we aren't sure about\n cache = createCache({\n key: 'css'\n });\n return /*#__PURE__*/React.createElement(EmotionCacheContext.Provider, {\n value: cache\n }, func(props, cache));\n } else {\n return func(props, cache);\n }\n };\n };\n}\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || _typeof(mergedTheme) !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || _typeof(theme) !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\n\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\n\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (_typeof(props.css) !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nvar Emotion$1 = Emotion;\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isBrowser as i, useTheme as u, withEmotionCache as w };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isBrowser$1 } from './emotion-element-43c6fea0.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-43c6fea0.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\nvar pkg = {\n name: \"@emotion/react\",\n version: \"11.11.4\",\n main: \"dist/emotion-react.cjs.js\",\n module: \"dist/emotion-react.esm.js\",\n browser: {\n \"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n },\n exports: {\n \".\": {\n module: {\n worker: \"./dist/emotion-react.worker.esm.js\",\n browser: \"./dist/emotion-react.browser.esm.js\",\n \"default\": \"./dist/emotion-react.esm.js\"\n },\n \"import\": \"./dist/emotion-react.cjs.mjs\",\n \"default\": \"./dist/emotion-react.cjs.js\"\n },\n \"./jsx-runtime\": {\n module: {\n worker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n browser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n },\n \"import\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.mjs\",\n \"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n },\n \"./_isolated-hnrs\": {\n module: {\n worker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n browser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n },\n \"import\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.mjs\",\n \"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n },\n \"./jsx-dev-runtime\": {\n module: {\n worker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n browser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n },\n \"import\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.mjs\",\n \"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n },\n \"./package.json\": \"./package.json\",\n \"./types/css-prop\": \"./types/css-prop.d.ts\",\n \"./macro\": {\n types: {\n \"import\": \"./macro.d.mts\",\n \"default\": \"./macro.d.ts\"\n },\n \"default\": \"./macro.js\"\n }\n },\n types: \"types/index.d.ts\",\n files: [\"src\", \"dist\", \"jsx-runtime\", \"jsx-dev-runtime\", \"_isolated-hnrs\", \"types/*.d.ts\", \"macro.*\"],\n sideEffects: false,\n author: \"Emotion Contributors\",\n license: \"MIT\",\n scripts: {\n \"test:typescript\": \"dtslint types\"\n },\n dependencies: {\n \"@babel/runtime\": \"^7.18.3\",\n \"@emotion/babel-plugin\": \"^11.11.0\",\n \"@emotion/cache\": \"^11.11.0\",\n \"@emotion/serialize\": \"^1.1.3\",\n \"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.1\",\n \"@emotion/utils\": \"^1.2.1\",\n \"@emotion/weak-memoize\": \"^0.3.1\",\n \"hoist-non-react-statics\": \"^3.3.1\"\n },\n peerDependencies: {\n react: \">=16.8.0\"\n },\n peerDependenciesMeta: {\n \"@types/react\": {\n optional: true\n }\n },\n devDependencies: {\n \"@definitelytyped/dtslint\": \"0.0.112\",\n \"@emotion/css\": \"11.11.2\",\n \"@emotion/css-prettifier\": \"1.1.3\",\n \"@emotion/server\": \"11.11.0\",\n \"@emotion/styled\": \"11.11.0\",\n \"html-tag-names\": \"^1.1.2\",\n react: \"16.14.0\",\n \"svg-tag-names\": \"^1.1.1\",\n typescript: \"^4.5.5\"\n },\n repository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n publishConfig: {\n access: \"public\"\n },\n \"umd:main\": \"dist/emotion-react.umd.min.js\",\n preconstruct: {\n entrypoints: [\"./index.js\", \"./jsx-runtime.js\", \"./jsx-dev-runtime.js\", \"./_isolated-hnrs.js\"],\n umdName: \"emotionReact\",\n exports: {\n envConditions: [\"browser\", \"worker\"],\n extra: {\n \"./types/css-prop\": \"./types/css-prop.d.ts\",\n \"./macro\": {\n types: {\n \"import\": \"./macro.d.mts\",\n \"default\": \"./macro.d.ts\"\n },\n \"default\": \"./macro.js\"\n }\n }\n }\n }\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n // $FlowFixMe\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n\n if (!isBrowser$1) {\n var _ref;\n\n var serializedNames = serialized.name;\n var serializedStyles = serialized.styles;\n var next = serialized.next;\n\n while (next !== undefined) {\n serializedNames += ' ' + next.name;\n serializedStyles += next.styles;\n next = next.next;\n }\n\n var shouldCache = cache.compat === true;\n var rules = cache.insert(\"\", {\n name: serializedNames,\n styles: serializedStyles\n }, cache.sheet, shouldCache);\n\n if (shouldCache) {\n return null;\n }\n\n return /*#__PURE__*/React.createElement(\"style\", (_ref = {}, _ref[\"data-emotion\"] = cache.key + \"-global \" + serializedNames, _ref.dangerouslySetInnerHTML = {\n __html: rules\n }, _ref.nonce = cache.sheet.nonce, _ref));\n } // yes, i know these hooks are used conditionally\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (_typeof(arg)) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (_typeof(interpolation)) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (_typeof(value) !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\n\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && _typeof(args[0]) === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport { unitlessKeys as default };","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };","var isBrowser = \"object\" !== 'undefined';\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\n\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\n\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };","var weakMemoize = function weakMemoize(func) {\n // $FlowFixMe flow doesn't include all non-primitive types as allowed for weakmaps\n var cache = new WeakMap();\n return function (arg) {\n if (cache.has(arg)) {\n // $FlowFixMe\n return cache.get(arg);\n }\n\n var ret = func(arg);\n cache.set(arg, ret);\n return ret;\n };\n};\n\nexport { weakMemoize as default };","var _excluded = [\"crossAxis\", \"alignment\", \"allowedPlacements\", \"autoAlignment\"],\n _excluded2 = [\"mainAxis\", \"crossAxis\", \"fallbackPlacements\", \"fallbackStrategy\", \"fallbackAxisSideDirection\", \"flipAlignment\"],\n _excluded3 = [\"strategy\"],\n _excluded4 = [\"mainAxis\", \"crossAxis\", \"limiter\"],\n _excluded5 = [\"apply\"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nimport { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n var reference = _ref.reference,\n floating = _ref.floating;\n var sideAxis = getSideAxis(placement);\n var alignmentAxis = getAlignmentAxis(placement);\n var alignLength = getAxisLength(alignmentAxis);\n var side = getSide(placement);\n var isVertical = sideAxis === 'y';\n var commonX = reference.x + reference.width / 2 - floating.width / 2;\n var commonY = reference.y + reference.height / 2 - floating.height / 2;\n var commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n var coords;\n\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n\n return coords;\n}\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\n\n\nvar computePosition = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(reference, floating, config) {\n var _config$placement, placement, _config$strategy, strategy, _config$middleware, middleware, platform, validMiddleware, rtl, rects, _computeCoordsFromPla, x, y, statefulPlacement, middlewareData, resetCount, i, _validMiddleware$i, name, fn, _yield$fn, nextX, nextY, data, reset, _computeCoordsFromPla2;\n\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _config$placement = config.placement, placement = _config$placement === void 0 ? 'bottom' : _config$placement, _config$strategy = config.strategy, strategy = _config$strategy === void 0 ? 'absolute' : _config$strategy, _config$middleware = config.middleware, middleware = _config$middleware === void 0 ? [] : _config$middleware, platform = config.platform;\n validMiddleware = middleware.filter(Boolean);\n _context.next = 4;\n return platform.isRTL == null ? void 0 : platform.isRTL(floating);\n\n case 4:\n rtl = _context.sent;\n _context.next = 7;\n return platform.getElementRects({\n reference: reference,\n floating: floating,\n strategy: strategy\n });\n\n case 7:\n rects = _context.sent;\n _computeCoordsFromPla = computeCoordsFromPlacement(rects, placement, rtl), x = _computeCoordsFromPla.x, y = _computeCoordsFromPla.y;\n statefulPlacement = placement;\n middlewareData = {};\n resetCount = 0;\n i = 0;\n\n case 13:\n if (!(i < validMiddleware.length)) {\n _context.next = 45;\n break;\n }\n\n _validMiddleware$i = validMiddleware[i], name = _validMiddleware$i.name, fn = _validMiddleware$i.fn;\n _context.next = 17;\n return fn({\n x: x,\n y: y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy: strategy,\n middlewareData: middlewareData,\n rects: rects,\n platform: platform,\n elements: {\n reference: reference,\n floating: floating\n }\n });\n\n case 17:\n _yield$fn = _context.sent;\n nextX = _yield$fn.x;\n nextY = _yield$fn.y;\n data = _yield$fn.data;\n reset = _yield$fn.reset;\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = _objectSpread(_objectSpread({}, middlewareData), {}, _defineProperty({}, name, _objectSpread(_objectSpread({}, middlewareData[name]), data)));\n\n if (!(reset && resetCount <= 50)) {\n _context.next = 42;\n break;\n }\n\n resetCount++;\n\n if (!(_typeof(reset) === 'object')) {\n _context.next = 41;\n break;\n }\n\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n\n if (!reset.rects) {\n _context.next = 38;\n break;\n }\n\n if (!(reset.rects === true)) {\n _context.next = 36;\n break;\n }\n\n _context.next = 33;\n return platform.getElementRects({\n reference: reference,\n floating: floating,\n strategy: strategy\n });\n\n case 33:\n _context.t0 = _context.sent;\n _context.next = 37;\n break;\n\n case 36:\n _context.t0 = reset.rects;\n\n case 37:\n rects = _context.t0;\n\n case 38:\n _computeCoordsFromPla2 = computeCoordsFromPlacement(rects, statefulPlacement, rtl);\n x = _computeCoordsFromPla2.x;\n y = _computeCoordsFromPla2.y;\n\n case 41:\n i = -1;\n\n case 42:\n i++;\n _context.next = 13;\n break;\n\n case 45:\n return _context.abrupt(\"return\", {\n x: x,\n y: y,\n placement: statefulPlacement,\n strategy: strategy,\n middlewareData: middlewareData\n });\n\n case 46:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n\n return function computePosition(_x, _x2, _x3) {\n return _ref2.apply(this, arguments);\n };\n}();\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\n\n\nfunction detectOverflow(_x4, _x5) {\n return _detectOverflow.apply(this, arguments);\n}\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\n\n\nfunction _detectOverflow() {\n _detectOverflow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee10(state, options) {\n var _await$platform$isEle, x, y, platform, rects, elements, strategy, _evaluate8, _evaluate8$boundary, boundary, _evaluate8$rootBounda, rootBoundary, _evaluate8$elementCon, elementContext, _evaluate8$altBoundar, altBoundary, _evaluate8$padding, padding, paddingObject, altContext, element, clippingClientRect, rect, offsetParent, offsetScale, elementClientRect;\n\n return _regeneratorRuntime.wrap(function _callee10$(_context10) {\n while (1) {\n switch (_context10.prev = _context10.next) {\n case 0:\n if (options === void 0) {\n options = {};\n }\n\n x = state.x, y = state.y, platform = state.platform, rects = state.rects, elements = state.elements, strategy = state.strategy;\n _evaluate8 = evaluate(options, state), _evaluate8$boundary = _evaluate8.boundary, boundary = _evaluate8$boundary === void 0 ? 'clippingAncestors' : _evaluate8$boundary, _evaluate8$rootBounda = _evaluate8.rootBoundary, rootBoundary = _evaluate8$rootBounda === void 0 ? 'viewport' : _evaluate8$rootBounda, _evaluate8$elementCon = _evaluate8.elementContext, elementContext = _evaluate8$elementCon === void 0 ? 'floating' : _evaluate8$elementCon, _evaluate8$altBoundar = _evaluate8.altBoundary, altBoundary = _evaluate8$altBoundar === void 0 ? false : _evaluate8$altBoundar, _evaluate8$padding = _evaluate8.padding, padding = _evaluate8$padding === void 0 ? 0 : _evaluate8$padding;\n paddingObject = getPaddingObject(padding);\n altContext = elementContext === 'floating' ? 'reference' : 'floating';\n element = elements[altBoundary ? altContext : elementContext];\n _context10.t0 = rectToClientRect;\n _context10.t1 = platform;\n _context10.next = 10;\n return platform.isElement == null ? void 0 : platform.isElement(element);\n\n case 10:\n _context10.t2 = _await$platform$isEle = _context10.sent;\n\n if (!(_context10.t2 != null)) {\n _context10.next = 15;\n break;\n }\n\n _context10.t3 = _await$platform$isEle;\n _context10.next = 16;\n break;\n\n case 15:\n _context10.t3 = true;\n\n case 16:\n if (!_context10.t3) {\n _context10.next = 20;\n break;\n }\n\n _context10.t4 = element;\n _context10.next = 26;\n break;\n\n case 20:\n _context10.t5 = element.contextElement;\n\n if (_context10.t5) {\n _context10.next = 25;\n break;\n }\n\n _context10.next = 24;\n return platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating);\n\n case 24:\n _context10.t5 = _context10.sent;\n\n case 25:\n _context10.t4 = _context10.t5;\n\n case 26:\n _context10.t6 = _context10.t4;\n _context10.t7 = boundary;\n _context10.t8 = rootBoundary;\n _context10.t9 = strategy;\n _context10.t10 = {\n element: _context10.t6,\n boundary: _context10.t7,\n rootBoundary: _context10.t8,\n strategy: _context10.t9\n };\n _context10.next = 33;\n return _context10.t1.getClippingRect.call(_context10.t1, _context10.t10);\n\n case 33:\n _context10.t11 = _context10.sent;\n clippingClientRect = (0, _context10.t0)(_context10.t11);\n rect = elementContext === 'floating' ? _objectSpread(_objectSpread({}, rects.floating), {}, {\n x: x,\n y: y\n }) : rects.reference;\n _context10.next = 38;\n return platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating);\n\n case 38:\n offsetParent = _context10.sent;\n _context10.next = 41;\n return platform.isElement == null ? void 0 : platform.isElement(offsetParent);\n\n case 41:\n if (!_context10.sent) {\n _context10.next = 50;\n break;\n }\n\n _context10.next = 44;\n return platform.getScale == null ? void 0 : platform.getScale(offsetParent);\n\n case 44:\n _context10.t13 = _context10.sent;\n\n if (_context10.t13) {\n _context10.next = 47;\n break;\n }\n\n _context10.t13 = {\n x: 1,\n y: 1\n };\n\n case 47:\n _context10.t12 = _context10.t13;\n _context10.next = 51;\n break;\n\n case 50:\n _context10.t12 = {\n x: 1,\n y: 1\n };\n\n case 51:\n offsetScale = _context10.t12;\n _context10.t14 = rectToClientRect;\n\n if (!platform.convertOffsetParentRelativeRectToViewportRelativeRect) {\n _context10.next = 59;\n break;\n }\n\n _context10.next = 56;\n return platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements: elements,\n rect: rect,\n offsetParent: offsetParent,\n strategy: strategy\n });\n\n case 56:\n _context10.t15 = _context10.sent;\n _context10.next = 60;\n break;\n\n case 59:\n _context10.t15 = rect;\n\n case 60:\n _context10.t16 = _context10.t15;\n elementClientRect = (0, _context10.t14)(_context10.t16);\n return _context10.abrupt(\"return\", {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n });\n\n case 63:\n case \"end\":\n return _context10.stop();\n }\n }\n }, _callee10);\n }));\n return _detectOverflow.apply(this, arguments);\n}\n\nvar arrow = function arrow(options) {\n return {\n name: 'arrow',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {\n var _objectSpread3, _ref4;\n\n var x, y, placement, rects, platform, elements, middlewareData, _ref3, element, _ref3$padding, padding, paddingObject, coords, axis, length, arrowDimensions, isYAxis, minProp, maxProp, clientProp, endDiff, startDiff, arrowOffsetParent, clientSize, centerToReference, largestPossiblePadding, minPadding, maxPadding, min$1, max, center, offset, shouldAddOffset, alignmentOffset;\n\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n x = state.x, y = state.y, placement = state.placement, rects = state.rects, platform = state.platform, elements = state.elements, middlewareData = state.middlewareData; // Since `element` is required, we don't Partial<> the type.\n\n _ref3 = evaluate(options, state) || {}, element = _ref3.element, _ref3$padding = _ref3.padding, padding = _ref3$padding === void 0 ? 0 : _ref3$padding;\n\n if (!(element == null)) {\n _context2.next = 4;\n break;\n }\n\n return _context2.abrupt(\"return\", {});\n\n case 4:\n paddingObject = getPaddingObject(padding);\n coords = {\n x: x,\n y: y\n };\n axis = getAlignmentAxis(placement);\n length = getAxisLength(axis);\n _context2.next = 10;\n return platform.getDimensions(element);\n\n case 10:\n arrowDimensions = _context2.sent;\n isYAxis = axis === 'y';\n minProp = isYAxis ? 'top' : 'left';\n maxProp = isYAxis ? 'bottom' : 'right';\n clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n startDiff = coords[axis] - rects.reference[axis];\n _context2.next = 19;\n return platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element);\n\n case 19:\n arrowOffsetParent = _context2.sent;\n clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0; // DOM platform can return `window` as the `offsetParent`.\n\n _context2.t0 = !clientSize;\n\n if (_context2.t0) {\n _context2.next = 26;\n break;\n }\n\n _context2.next = 25;\n return platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent);\n\n case 25:\n _context2.t0 = !_context2.sent;\n\n case 26:\n if (!_context2.t0) {\n _context2.next = 28;\n break;\n }\n\n clientSize = elements.floating[clientProp] || rects.floating[length];\n\n case 28:\n centerToReference = endDiff / 2 - startDiff / 2; // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n\n largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n minPadding = min(paddingObject[minProp], largestPossiblePadding);\n maxPadding = min(paddingObject[maxProp], largestPossiblePadding); // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n\n min$1 = minPadding;\n max = clientSize - arrowDimensions[length] - maxPadding;\n center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n offset = clamp(min$1, center, max); // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n\n shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return _context2.abrupt(\"return\", (_ref4 = {}, _defineProperty(_ref4, axis, coords[axis] + alignmentOffset), _defineProperty(_ref4, \"data\", _objectSpread((_objectSpread3 = {}, _defineProperty(_objectSpread3, axis, offset), _defineProperty(_objectSpread3, \"centerOffset\", center - offset - alignmentOffset), _objectSpread3), shouldAddOffset && {\n alignmentOffset: alignmentOffset\n })), _defineProperty(_ref4, \"reset\", shouldAddOffset), _ref4));\n\n case 39:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }))();\n }\n };\n};\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n var allowedPlacementsSortedByAlignment = alignment ? [].concat(_toConsumableArray(allowedPlacements.filter(function (placement) {\n return getAlignment(placement) === alignment;\n })), _toConsumableArray(allowedPlacements.filter(function (placement) {\n return getAlignment(placement) !== alignment;\n }))) : allowedPlacements.filter(function (placement) {\n return getSide(placement) === placement;\n });\n return allowedPlacementsSortedByAlignment.filter(function (placement) {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\n\n\nvar autoPlacement = function autoPlacement(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'autoPlacement',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE, rects, middlewareData, placement, platform, elements, _evaluate, _evaluate$crossAxis, crossAxis, alignment, _evaluate$allowedPlac, allowedPlacements, _evaluate$autoAlignme, autoAlignment, detectOverflowOptions, placements$1, overflow, currentIndex, currentPlacement, alignmentSides, currentOverflows, allOverflows, nextPlacement, placementsSortedByMostSpace, placementsThatFitOnEachSide, resetPlacement;\n\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n rects = state.rects, middlewareData = state.middlewareData, placement = state.placement, platform = state.platform, elements = state.elements;\n _evaluate = evaluate(options, state), _evaluate$crossAxis = _evaluate.crossAxis, crossAxis = _evaluate$crossAxis === void 0 ? false : _evaluate$crossAxis, alignment = _evaluate.alignment, _evaluate$allowedPlac = _evaluate.allowedPlacements, allowedPlacements = _evaluate$allowedPlac === void 0 ? placements : _evaluate$allowedPlac, _evaluate$autoAlignme = _evaluate.autoAlignment, autoAlignment = _evaluate$autoAlignme === void 0 ? true : _evaluate$autoAlignme, detectOverflowOptions = _objectWithoutProperties(_evaluate, _excluded);\n placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n _context3.next = 5;\n return detectOverflow(state, detectOverflowOptions);\n\n case 5:\n overflow = _context3.sent;\n currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n currentPlacement = placements$1[currentIndex];\n\n if (!(currentPlacement == null)) {\n _context3.next = 10;\n break;\n }\n\n return _context3.abrupt(\"return\", {});\n\n case 10:\n _context3.t0 = getAlignmentSides;\n _context3.t1 = currentPlacement;\n _context3.t2 = rects;\n _context3.next = 15;\n return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n\n case 15:\n _context3.t3 = _context3.sent;\n alignmentSides = (0, _context3.t0)(_context3.t1, _context3.t2, _context3.t3);\n\n if (!(placement !== currentPlacement)) {\n _context3.next = 19;\n break;\n }\n\n return _context3.abrupt(\"return\", {\n reset: {\n placement: placements$1[0]\n }\n });\n\n case 19:\n currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n allOverflows = [].concat(_toConsumableArray(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), [{\n placement: currentPlacement,\n overflows: currentOverflows\n }]);\n nextPlacement = placements$1[currentIndex + 1]; // There are more placements to check.\n\n if (!nextPlacement) {\n _context3.next = 24;\n break;\n }\n\n return _context3.abrupt(\"return\", {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n });\n\n case 24:\n placementsSortedByMostSpace = allOverflows.map(function (d) {\n var alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ? // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce(function (acc, v) {\n return acc + v;\n }, 0) : // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort(function (a, b) {\n return a[1] - b[1];\n });\n placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(function (d) {\n return d[2].slice(0, // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(function (v) {\n return v <= 0;\n });\n });\n resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n\n if (!(resetPlacement !== placement)) {\n _context3.next = 29;\n break;\n }\n\n return _context3.abrupt(\"return\", {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n });\n\n case 29:\n return _context3.abrupt(\"return\", {});\n\n case 30:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }))();\n }\n };\n};\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\n\n\nvar flip = function flip(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'flip',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4() {\n var _middlewareData$arrow, _middlewareData$flip, placement, middlewareData, rects, initialPlacement, platform, elements, _evaluate2, _evaluate2$mainAxis, checkMainAxis, _evaluate2$crossAxis, checkCrossAxis, specifiedFallbackPlacements, _evaluate2$fallbackSt, fallbackStrategy, _evaluate2$fallbackAx, fallbackAxisSideDirection, _evaluate2$flipAlignm, flipAlignment, detectOverflowOptions, side, isBasePlacement, rtl, fallbackPlacements, placements, overflow, overflows, overflowsData, _sides, _middlewareData$flip2, _overflowsData$filter, nextIndex, nextPlacement, resetPlacement, _overflowsData$map$so, _placement;\n\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n placement = state.placement, middlewareData = state.middlewareData, rects = state.rects, initialPlacement = state.initialPlacement, platform = state.platform, elements = state.elements;\n _evaluate2 = evaluate(options, state), _evaluate2$mainAxis = _evaluate2.mainAxis, checkMainAxis = _evaluate2$mainAxis === void 0 ? true : _evaluate2$mainAxis, _evaluate2$crossAxis = _evaluate2.crossAxis, checkCrossAxis = _evaluate2$crossAxis === void 0 ? true : _evaluate2$crossAxis, specifiedFallbackPlacements = _evaluate2.fallbackPlacements, _evaluate2$fallbackSt = _evaluate2.fallbackStrategy, fallbackStrategy = _evaluate2$fallbackSt === void 0 ? 'bestFit' : _evaluate2$fallbackSt, _evaluate2$fallbackAx = _evaluate2.fallbackAxisSideDirection, fallbackAxisSideDirection = _evaluate2$fallbackAx === void 0 ? 'none' : _evaluate2$fallbackAx, _evaluate2$flipAlignm = _evaluate2.flipAlignment, flipAlignment = _evaluate2$flipAlignm === void 0 ? true : _evaluate2$flipAlignm, detectOverflowOptions = _objectWithoutProperties(_evaluate2, _excluded2); // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n\n if (!((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset)) {\n _context4.next = 4;\n break;\n }\n\n return _context4.abrupt(\"return\", {});\n\n case 4:\n side = getSide(placement);\n isBasePlacement = getSide(initialPlacement) === initialPlacement;\n _context4.next = 8;\n return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n\n case 8:\n rtl = _context4.sent;\n fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n\n if (!specifiedFallbackPlacements && fallbackAxisSideDirection !== 'none') {\n fallbackPlacements.push.apply(fallbackPlacements, _toConsumableArray(getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl)));\n }\n\n placements = [initialPlacement].concat(_toConsumableArray(fallbackPlacements));\n _context4.next = 14;\n return detectOverflow(state, detectOverflowOptions);\n\n case 14:\n overflow = _context4.sent;\n overflows = [];\n overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n\n if (checkCrossAxis) {\n _sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[_sides[0]], overflow[_sides[1]]);\n }\n\n overflowsData = [].concat(_toConsumableArray(overflowsData), [{\n placement: placement,\n overflows: overflows\n }]); // One or more sides is overflowing.\n\n if (overflows.every(function (side) {\n return side <= 0;\n })) {\n _context4.next = 37;\n break;\n }\n\n nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n nextPlacement = placements[nextIndex];\n\n if (!nextPlacement) {\n _context4.next = 25;\n break;\n }\n\n return _context4.abrupt(\"return\", {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n });\n\n case 25:\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n resetPlacement = (_overflowsData$filter = overflowsData.filter(function (d) {\n return d.overflows[0] <= 0;\n }).sort(function (a, b) {\n return a.overflows[1] - b.overflows[1];\n })[0]) == null ? void 0 : _overflowsData$filter.placement; // Otherwise fallback.\n\n if (resetPlacement) {\n _context4.next = 35;\n break;\n }\n\n _context4.t0 = fallbackStrategy;\n _context4.next = _context4.t0 === 'bestFit' ? 30 : _context4.t0 === 'initialPlacement' ? 33 : 35;\n break;\n\n case 30:\n _placement = (_overflowsData$map$so = overflowsData.map(function (d) {\n return [d.placement, d.overflows.filter(function (overflow) {\n return overflow > 0;\n }).reduce(function (acc, overflow) {\n return acc + overflow;\n }, 0)];\n }).sort(function (a, b) {\n return a[1] - b[1];\n })[0]) == null ? void 0 : _overflowsData$map$so[0];\n\n if (_placement) {\n resetPlacement = _placement;\n }\n\n return _context4.abrupt(\"break\", 35);\n\n case 33:\n resetPlacement = initialPlacement;\n return _context4.abrupt(\"break\", 35);\n\n case 35:\n if (!(placement !== resetPlacement)) {\n _context4.next = 37;\n break;\n }\n\n return _context4.abrupt(\"return\", {\n reset: {\n placement: resetPlacement\n }\n });\n\n case 37:\n return _context4.abrupt(\"return\", {});\n\n case 38:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }))();\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(function (side) {\n return overflow[side] >= 0;\n });\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\n\n\nvar hide = function hide(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'hide',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5() {\n var rects, _evaluate3, _evaluate3$strategy, strategy, detectOverflowOptions, overflow, offsets, _overflow, _offsets;\n\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n rects = state.rects;\n _evaluate3 = evaluate(options, state), _evaluate3$strategy = _evaluate3.strategy, strategy = _evaluate3$strategy === void 0 ? 'referenceHidden' : _evaluate3$strategy, detectOverflowOptions = _objectWithoutProperties(_evaluate3, _excluded3);\n _context5.t0 = strategy;\n _context5.next = _context5.t0 === 'referenceHidden' ? 5 : _context5.t0 === 'escaped' ? 10 : 15;\n break;\n\n case 5:\n _context5.next = 7;\n return detectOverflow(state, _objectSpread(_objectSpread({}, detectOverflowOptions), {}, {\n elementContext: 'reference'\n }));\n\n case 7:\n overflow = _context5.sent;\n offsets = getSideOffsets(overflow, rects.reference);\n return _context5.abrupt(\"return\", {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n });\n\n case 10:\n _context5.next = 12;\n return detectOverflow(state, _objectSpread(_objectSpread({}, detectOverflowOptions), {}, {\n altBoundary: true\n }));\n\n case 12:\n _overflow = _context5.sent;\n _offsets = getSideOffsets(_overflow, rects.floating);\n return _context5.abrupt(\"return\", {\n data: {\n escapedOffsets: _offsets,\n escaped: isAnySideFullyClipped(_offsets)\n }\n });\n\n case 15:\n return _context5.abrupt(\"return\", {});\n\n case 16:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }))();\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n var minX = min.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n return rect.left;\n })));\n var minY = min.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n return rect.top;\n })));\n var maxX = max.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n return rect.right;\n })));\n var maxY = max.apply(void 0, _toConsumableArray(rects.map(function (rect) {\n return rect.bottom;\n })));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\n\nfunction getRectsByLine(rects) {\n var sortedRects = rects.slice().sort(function (a, b) {\n return a.y - b.y;\n });\n var groups = [];\n var prevRect = null;\n\n for (var i = 0; i < sortedRects.length; i++) {\n var rect = sortedRects[i];\n\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n\n prevRect = rect;\n }\n\n return groups.map(function (rect) {\n return rectToClientRect(getBoundingRect(rect));\n });\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\n\n\nvar inline = function inline(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'inline',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee6() {\n var placement, elements, rects, platform, strategy, _evaluate4, _evaluate4$padding, padding, x, y, nativeClientRects, clientRects, fallback, paddingObject, getBoundingClientRect, resetRects;\n\n return _regeneratorRuntime.wrap(function _callee6$(_context6) {\n while (1) {\n switch (_context6.prev = _context6.next) {\n case 0:\n getBoundingClientRect = function _getBoundingClientRec() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(function (rect) {\n return x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom;\n }) || fallback;\n } // There are 2 or more connected rects.\n\n\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n var firstRect = clientRects[0];\n var lastRect = clientRects[clientRects.length - 1];\n var isTop = getSide(placement) === 'top';\n var _top = firstRect.top;\n var _bottom = lastRect.bottom;\n\n var _left = isTop ? firstRect.left : lastRect.left;\n\n var _right = isTop ? firstRect.right : lastRect.right;\n\n var _width = _right - _left;\n\n var _height = _bottom - _top;\n\n return {\n top: _top,\n bottom: _bottom,\n left: _left,\n right: _right,\n width: _width,\n height: _height,\n x: _left,\n y: _top\n };\n }\n\n var isLeftSide = getSide(placement) === 'left';\n var maxRight = max.apply(void 0, _toConsumableArray(clientRects.map(function (rect) {\n return rect.right;\n })));\n var minLeft = min.apply(void 0, _toConsumableArray(clientRects.map(function (rect) {\n return rect.left;\n })));\n var measureRects = clientRects.filter(function (rect) {\n return isLeftSide ? rect.left === minLeft : rect.right === maxRight;\n });\n var top = measureRects[0].top;\n var bottom = measureRects[measureRects.length - 1].bottom;\n var left = minLeft;\n var right = maxRight;\n var width = right - left;\n var height = bottom - top;\n return {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height,\n x: left,\n y: top\n };\n }\n\n return fallback;\n };\n\n placement = state.placement, elements = state.elements, rects = state.rects, platform = state.platform, strategy = state.strategy; // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n\n _evaluate4 = evaluate(options, state), _evaluate4$padding = _evaluate4.padding, padding = _evaluate4$padding === void 0 ? 2 : _evaluate4$padding, x = _evaluate4.x, y = _evaluate4.y;\n _context6.t0 = Array;\n _context6.next = 6;\n return platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference);\n\n case 6:\n _context6.t1 = _context6.sent;\n\n if (_context6.t1) {\n _context6.next = 9;\n break;\n }\n\n _context6.t1 = [];\n\n case 9:\n _context6.t2 = _context6.t1;\n nativeClientRects = _context6.t0.from.call(_context6.t0, _context6.t2);\n clientRects = getRectsByLine(nativeClientRects);\n fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n paddingObject = getPaddingObject(padding);\n _context6.next = 16;\n return platform.getElementRects({\n reference: {\n getBoundingClientRect: getBoundingClientRect\n },\n floating: elements.floating,\n strategy: strategy\n });\n\n case 16:\n resetRects = _context6.sent;\n\n if (!(rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height)) {\n _context6.next = 19;\n break;\n }\n\n return _context6.abrupt(\"return\", {\n reset: {\n rects: resetRects\n }\n });\n\n case 19:\n return _context6.abrupt(\"return\", {});\n\n case 20:\n case \"end\":\n return _context6.stop();\n }\n }\n }, _callee6);\n }))();\n }\n };\n}; // For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\n\nfunction convertValueToCoords(_x6, _x7) {\n return _convertValueToCoords.apply(this, arguments);\n}\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\n\n\nfunction _convertValueToCoords() {\n _convertValueToCoords = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee11(state, options) {\n var placement, platform, elements, rtl, side, alignment, isVertical, mainAxisMulti, crossAxisMulti, rawValue, _ref6, mainAxis, crossAxis, alignmentAxis;\n\n return _regeneratorRuntime.wrap(function _callee11$(_context11) {\n while (1) {\n switch (_context11.prev = _context11.next) {\n case 0:\n placement = state.placement, platform = state.platform, elements = state.elements;\n _context11.next = 3;\n return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n\n case 3:\n rtl = _context11.sent;\n side = getSide(placement);\n alignment = getAlignment(placement);\n isVertical = getSideAxis(placement) === 'y';\n mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n crossAxisMulti = rtl && isVertical ? -1 : 1;\n rawValue = evaluate(options, state);\n _ref6 = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : _objectSpread({\n mainAxis: 0,\n crossAxis: 0,\n alignmentAxis: null\n }, rawValue), mainAxis = _ref6.mainAxis, crossAxis = _ref6.crossAxis, alignmentAxis = _ref6.alignmentAxis;\n\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n\n return _context11.abrupt(\"return\", isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n });\n\n case 13:\n case \"end\":\n return _context11.stop();\n }\n }\n }, _callee11);\n }));\n return _convertValueToCoords.apply(this, arguments);\n}\n\nvar offset = function offset(options) {\n if (options === void 0) {\n options = 0;\n }\n\n return {\n name: 'offset',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee7() {\n var _middlewareData$offse, _middlewareData$arrow, x, y, placement, middlewareData, diffCoords;\n\n return _regeneratorRuntime.wrap(function _callee7$(_context7) {\n while (1) {\n switch (_context7.prev = _context7.next) {\n case 0:\n x = state.x, y = state.y, placement = state.placement, middlewareData = state.middlewareData;\n _context7.next = 3;\n return convertValueToCoords(state, options);\n\n case 3:\n diffCoords = _context7.sent;\n\n if (!(placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset)) {\n _context7.next = 6;\n break;\n }\n\n return _context7.abrupt(\"return\", {});\n\n case 6:\n return _context7.abrupt(\"return\", {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: _objectSpread(_objectSpread({}, diffCoords), {}, {\n placement: placement\n })\n });\n\n case 7:\n case \"end\":\n return _context7.stop();\n }\n }\n }, _callee7);\n }))();\n }\n };\n};\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\n\n\nvar shift = function shift(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'shift',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee8() {\n var _objectSpread4;\n\n var x, y, placement, _evaluate5, _evaluate5$mainAxis, checkMainAxis, _evaluate5$crossAxis, checkCrossAxis, _evaluate5$limiter, limiter, detectOverflowOptions, coords, overflow, crossAxis, mainAxis, mainAxisCoord, crossAxisCoord, minSide, maxSide, _min, _max, _minSide, _maxSide, _min2, _max2, limitedCoords;\n\n return _regeneratorRuntime.wrap(function _callee8$(_context8) {\n while (1) {\n switch (_context8.prev = _context8.next) {\n case 0:\n x = state.x, y = state.y, placement = state.placement;\n _evaluate5 = evaluate(options, state), _evaluate5$mainAxis = _evaluate5.mainAxis, checkMainAxis = _evaluate5$mainAxis === void 0 ? true : _evaluate5$mainAxis, _evaluate5$crossAxis = _evaluate5.crossAxis, checkCrossAxis = _evaluate5$crossAxis === void 0 ? false : _evaluate5$crossAxis, _evaluate5$limiter = _evaluate5.limiter, limiter = _evaluate5$limiter === void 0 ? {\n fn: function fn(_ref) {\n var x = _ref.x,\n y = _ref.y;\n return {\n x: x,\n y: y\n };\n }\n } : _evaluate5$limiter, detectOverflowOptions = _objectWithoutProperties(_evaluate5, _excluded4);\n coords = {\n x: x,\n y: y\n };\n _context8.next = 5;\n return detectOverflow(state, detectOverflowOptions);\n\n case 5:\n overflow = _context8.sent;\n crossAxis = getSideAxis(getSide(placement));\n mainAxis = getOppositeAxis(crossAxis);\n mainAxisCoord = coords[mainAxis];\n crossAxisCoord = coords[crossAxis];\n\n if (checkMainAxis) {\n minSide = mainAxis === 'y' ? 'top' : 'left';\n maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n _min = mainAxisCoord + overflow[minSide];\n _max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(_min, mainAxisCoord, _max);\n }\n\n if (checkCrossAxis) {\n _minSide = crossAxis === 'y' ? 'top' : 'left';\n _maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n _min2 = crossAxisCoord + overflow[_minSide];\n _max2 = crossAxisCoord - overflow[_maxSide];\n crossAxisCoord = clamp(_min2, crossAxisCoord, _max2);\n }\n\n limitedCoords = limiter.fn(_objectSpread(_objectSpread({}, state), {}, (_objectSpread4 = {}, _defineProperty(_objectSpread4, mainAxis, mainAxisCoord), _defineProperty(_objectSpread4, crossAxis, crossAxisCoord), _objectSpread4)));\n return _context8.abrupt(\"return\", _objectSpread(_objectSpread({}, limitedCoords), {}, {\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y\n }\n }));\n\n case 14:\n case \"end\":\n return _context8.stop();\n }\n }\n }, _callee8);\n }))();\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\n\n\nvar limitShift = function limitShift(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n options: options,\n fn: function fn(state) {\n var _ref5;\n\n var x = state.x,\n y = state.y,\n placement = state.placement,\n rects = state.rects,\n middlewareData = state.middlewareData;\n\n var _evaluate6 = evaluate(options, state),\n _evaluate6$offset = _evaluate6.offset,\n offset = _evaluate6$offset === void 0 ? 0 : _evaluate6$offset,\n _evaluate6$mainAxis = _evaluate6.mainAxis,\n checkMainAxis = _evaluate6$mainAxis === void 0 ? true : _evaluate6$mainAxis,\n _evaluate6$crossAxis = _evaluate6.crossAxis,\n checkCrossAxis = _evaluate6$crossAxis === void 0 ? true : _evaluate6$crossAxis;\n\n var coords = {\n x: x,\n y: y\n };\n var crossAxis = getSideAxis(placement);\n var mainAxis = getOppositeAxis(crossAxis);\n var mainAxisCoord = coords[mainAxis];\n var crossAxisCoord = coords[crossAxis];\n var rawOffset = evaluate(offset, state);\n var computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : _objectSpread({\n mainAxis: 0,\n crossAxis: 0\n }, rawOffset);\n\n if (checkMainAxis) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n var limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n var limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n\n var _len = mainAxis === 'y' ? 'width' : 'height';\n\n var isOriginSide = ['top', 'left'].includes(getSide(placement));\n\n var _limitMin = rects.reference[crossAxis] - rects.floating[_len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n\n var _limitMax = rects.reference[crossAxis] + rects.reference[_len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n\n if (crossAxisCoord < _limitMin) {\n crossAxisCoord = _limitMin;\n } else if (crossAxisCoord > _limitMax) {\n crossAxisCoord = _limitMax;\n }\n }\n\n return _ref5 = {}, _defineProperty(_ref5, mainAxis, mainAxisCoord), _defineProperty(_ref5, crossAxis, crossAxisCoord), _ref5;\n }\n };\n};\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\n\n\nvar size = function size(options) {\n if (options === void 0) {\n options = {};\n }\n\n return {\n name: 'size',\n options: options,\n fn: function fn(state) {\n return _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee9() {\n var placement, rects, platform, elements, _evaluate7, _evaluate7$apply, apply, detectOverflowOptions, overflow, side, alignment, isYAxis, _rects$floating, width, height, heightSide, widthSide, overflowAvailableHeight, overflowAvailableWidth, noShift, availableHeight, availableWidth, maximumClippingWidth, maximumClippingHeight, xMin, xMax, yMin, yMax, nextDimensions;\n\n return _regeneratorRuntime.wrap(function _callee9$(_context9) {\n while (1) {\n switch (_context9.prev = _context9.next) {\n case 0:\n placement = state.placement, rects = state.rects, platform = state.platform, elements = state.elements;\n _evaluate7 = evaluate(options, state), _evaluate7$apply = _evaluate7.apply, apply = _evaluate7$apply === void 0 ? function () {} : _evaluate7$apply, detectOverflowOptions = _objectWithoutProperties(_evaluate7, _excluded5);\n _context9.next = 4;\n return detectOverflow(state, detectOverflowOptions);\n\n case 4:\n overflow = _context9.sent;\n side = getSide(placement);\n alignment = getAlignment(placement);\n isYAxis = getSideAxis(placement) === 'y';\n _rects$floating = rects.floating, width = _rects$floating.width, height = _rects$floating.height;\n\n if (!(side === 'top' || side === 'bottom')) {\n _context9.next = 28;\n break;\n }\n\n heightSide = side;\n _context9.t0 = alignment;\n _context9.next = 14;\n return platform.isRTL == null ? void 0 : platform.isRTL(elements.floating);\n\n case 14:\n if (!_context9.sent) {\n _context9.next = 18;\n break;\n }\n\n _context9.t1 = 'start';\n _context9.next = 19;\n break;\n\n case 18:\n _context9.t1 = 'end';\n\n case 19:\n _context9.t2 = _context9.t1;\n\n if (!(_context9.t0 === _context9.t2)) {\n _context9.next = 24;\n break;\n }\n\n _context9.t3 = 'left';\n _context9.next = 25;\n break;\n\n case 24:\n _context9.t3 = 'right';\n\n case 25:\n widthSide = _context9.t3;\n _context9.next = 30;\n break;\n\n case 28:\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n\n case 30:\n overflowAvailableHeight = height - overflow[heightSide];\n overflowAvailableWidth = width - overflow[widthSide];\n noShift = !state.middlewareData.shift;\n availableHeight = overflowAvailableHeight;\n availableWidth = overflowAvailableWidth;\n\n if (isYAxis) {\n maximumClippingWidth = width - overflow.left - overflow.right;\n availableWidth = alignment || noShift ? min(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;\n } else {\n maximumClippingHeight = height - overflow.top - overflow.bottom;\n availableHeight = alignment || noShift ? min(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;\n }\n\n if (noShift && !alignment) {\n xMin = max(overflow.left, 0);\n xMax = max(overflow.right, 0);\n yMin = max(overflow.top, 0);\n yMax = max(overflow.bottom, 0);\n\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n\n _context9.next = 39;\n return apply(_objectSpread(_objectSpread({}, state), {}, {\n availableWidth: availableWidth,\n availableHeight: availableHeight\n }));\n\n case 39:\n _context9.next = 41;\n return platform.getDimensions(elements.floating);\n\n case 41:\n nextDimensions = _context9.sent;\n\n if (!(width !== nextDimensions.width || height !== nextDimensions.height)) {\n _context9.next = 44;\n break;\n }\n\n return _context9.abrupt(\"return\", {\n reset: {\n rects: true\n }\n });\n\n case 44:\n return _context9.abrupt(\"return\", {});\n\n case 45:\n case \"end\":\n return _context9.stop();\n }\n }\n }, _callee9);\n }))();\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };","function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { rectToClientRect, autoPlacement as autoPlacement$1, shift as shift$1, flip as flip$1, size as size$1, hide as hide$1, arrow as arrow$1, inline as inline$1, limitShift as limitShift$1, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { detectOverflow, offset } from '@floating-ui/core';\nimport { round, createCoords, max, min, floor } from '@floating-ui/utils';\nimport { getComputedStyle, isHTMLElement, isElement, getWindow, isWebKit, getDocumentElement, getNodeName, isOverflowElement, getNodeScroll, getOverflowAncestors, getParentNode, isLastTraversableNode, isContainingBlock, isTableElement, getContainingBlock } from '@floating-ui/utils/dom';\nexport { getOverflowAncestors } from '@floating-ui/utils/dom';\n\nfunction getCssDimensions(element) {\n var css = getComputedStyle(element); // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n\n var width = parseFloat(css.width) || 0;\n var height = parseFloat(css.height) || 0;\n var hasOffset = isHTMLElement(element);\n var offsetWidth = hasOffset ? element.offsetWidth : width;\n var offsetHeight = hasOffset ? element.offsetHeight : height;\n var shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n\n return {\n width: width,\n height: height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n var domElement = unwrapElement(element);\n\n if (!isHTMLElement(domElement)) {\n return createCoords(1);\n }\n\n var rect = domElement.getBoundingClientRect();\n\n var _getCssDimensions = getCssDimensions(domElement),\n width = _getCssDimensions.width,\n height = _getCssDimensions.height,\n $ = _getCssDimensions.$;\n\n var x = ($ ? round(rect.width) : rect.width) / width;\n var y = ($ ? round(rect.height) : rect.height) / height; // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n\n return {\n x: x,\n y: y\n };\n}\n\nvar noOffsets = /*#__PURE__*/createCoords(0);\n\nfunction getVisualOffsets(element) {\n var win = getWindow(element);\n\n if (!isWebKit() || !win.visualViewport) {\n return noOffsets;\n }\n\n return {\n x: win.visualViewport.offsetLeft,\n y: win.visualViewport.offsetTop\n };\n}\n\nfunction shouldAddVisualOffsets(element, isFixed, floatingOffsetParent) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== getWindow(element)) {\n return false;\n }\n\n return isFixed;\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var domElement = unwrapElement(element);\n var scale = createCoords(1);\n\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n\n var visualOffsets = shouldAddVisualOffsets(domElement, isFixedStrategy, offsetParent) ? getVisualOffsets(domElement) : createCoords(0);\n var x = (clientRect.left + visualOffsets.x) / scale.x;\n var y = (clientRect.top + visualOffsets.y) / scale.y;\n var width = clientRect.width / scale.x;\n var height = clientRect.height / scale.y;\n\n if (domElement) {\n var win = getWindow(domElement);\n var offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n var currentWin = win;\n var currentIFrame = currentWin.frameElement;\n\n while (currentIFrame && offsetParent && offsetWin !== currentWin) {\n var iframeScale = getScale(currentIFrame);\n var iframeRect = currentIFrame.getBoundingClientRect();\n var css = getComputedStyle(currentIFrame);\n var left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n var top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentWin = getWindow(currentIFrame);\n currentIFrame = currentWin.frameElement;\n }\n }\n\n return rectToClientRect({\n width: width,\n height: height,\n x: x,\n y: y\n });\n}\n\nvar topLayerSelectors = [':popover-open', ':modal'];\n\nfunction isTopLayer(floating) {\n return topLayerSelectors.some(function (selector) {\n try {\n return floating.matches(selector);\n } catch (e) {\n return false;\n }\n });\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n var elements = _ref.elements,\n rect = _ref.rect,\n offsetParent = _ref.offsetParent,\n strategy = _ref.strategy;\n var isFixed = strategy === 'fixed';\n var documentElement = getDocumentElement(offsetParent);\n var topLayer = elements ? isTopLayer(elements.floating) : false;\n\n if (offsetParent === documentElement || topLayer && isFixed) {\n return rect;\n }\n\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var scale = createCoords(1);\n var offsets = createCoords(0);\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n var offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getClientRects(element) {\n return Array.from(element.getClientRects());\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n} // Gets the entire size of the scrollable document area, even extending outside\n// of the `` and `` rect bounds if horizontally scrollable.\n\n\nfunction getDocumentRect(element) {\n var html = getDocumentElement(element);\n var scroll = getNodeScroll(element);\n var body = element.ownerDocument.body;\n var width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n var height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n var x = -scroll.scrollLeft + getWindowScrollBarX(element);\n var y = -scroll.scrollTop;\n\n if (getComputedStyle(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}\n\nfunction getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var visualViewportBased = isWebKit();\n\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n} // Returns the inner client rect, subtracting scrollbars if present.\n\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n var top = clientRect.top + element.clientTop;\n var left = clientRect.left + element.clientLeft;\n var scale = isHTMLElement(element) ? getScale(element) : createCoords(1);\n var width = element.clientWidth * scale.x;\n var height = element.clientHeight * scale.y;\n var x = left * scale.x;\n var y = top * scale.y;\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}\n\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n var rect;\n\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n var visualOffsets = getVisualOffsets(element);\n rect = _objectSpread(_objectSpread({}, clippingAncestor), {}, {\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n });\n }\n\n return rectToClientRect(rect);\n}\n\nfunction hasFixedPositionAncestor(element, stopNode) {\n var parentNode = getParentNode(element);\n\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n\n return getComputedStyle(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n} // A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\n\n\nfunction getClippingElementAncestors(element, cache) {\n var cachedResult = cache.get(element);\n\n if (cachedResult) {\n return cachedResult;\n }\n\n var result = getOverflowAncestors(element, [], false).filter(function (el) {\n return isElement(el) && getNodeName(el) !== 'body';\n });\n var currentContainingBlockComputedStyle = null;\n var elementIsFixed = getComputedStyle(element).position === 'fixed';\n var currentNode = elementIsFixed ? getParentNode(element) : element; // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n var computedStyle = getComputedStyle(currentNode);\n var currentNodeIsContaining = isContainingBlock(currentNode);\n\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n\n var shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(function (ancestor) {\n return ancestor !== currentNode;\n });\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n\n currentNode = getParentNode(currentNode);\n }\n\n cache.set(element, result);\n return result;\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\n\n\nfunction getClippingRect(_ref) {\n var element = _ref.element,\n boundary = _ref.boundary,\n rootBoundary = _ref.rootBoundary,\n strategy = _ref.strategy;\n var elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n var clippingAncestors = [].concat(_toConsumableArray(elementClippingAncestors), [rootBoundary]);\n var firstClippingAncestor = clippingAncestors[0];\n var clippingRect = clippingAncestors.reduce(function (accRect, clippingAncestor) {\n var rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n var _getCssDimensions2 = getCssDimensions(element),\n width = _getCssDimensions2.width,\n height = _getCssDimensions2.height;\n\n return {\n width: width,\n height: height\n };\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var isFixed = strategy === 'fixed';\n var rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = createCoords(0);\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isOffsetParentAnElement) {\n var offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n var x = rect.left + scroll.scrollLeft - offsets.x;\n var y = rect.top + scroll.scrollTop - offsets.y;\n return {\n x: x,\n y: y,\n width: rect.width,\n height: rect.height\n };\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n if (polyfill) {\n return polyfill(element);\n }\n\n return element.offsetParent;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element, polyfill) {\n var window = getWindow(element);\n\n if (!isHTMLElement(element) || isTopLayer(element)) {\n return window;\n }\n\n var offsetParent = getTrueOffsetParent(element, polyfill);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nvar getElementRects = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(data) {\n var getOffsetParentFn, getDimensionsFn;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n getDimensionsFn = this.getDimensions;\n _context.t0 = getRectRelativeToOffsetParent;\n _context.t1 = data.reference;\n _context.next = 6;\n return getOffsetParentFn(data.floating);\n\n case 6:\n _context.t2 = _context.sent;\n _context.t3 = data.strategy;\n _context.t4 = (0, _context.t0)(_context.t1, _context.t2, _context.t3);\n _context.t5 = _objectSpread;\n _context.t6 = {\n x: 0,\n y: 0\n };\n _context.next = 13;\n return getDimensionsFn(data.floating);\n\n case 13:\n _context.t7 = _context.sent;\n _context.t8 = (0, _context.t5)(_context.t6, _context.t7);\n return _context.abrupt(\"return\", {\n reference: _context.t4,\n floating: _context.t8\n });\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getElementRects(_x) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nfunction isRTL(element) {\n return getComputedStyle(element).direction === 'rtl';\n}\n\nvar platform = {\n convertOffsetParentRelativeRectToViewportRelativeRect: convertOffsetParentRelativeRectToViewportRelativeRect,\n getDocumentElement: getDocumentElement,\n getClippingRect: getClippingRect,\n getOffsetParent: getOffsetParent,\n getElementRects: getElementRects,\n getClientRects: getClientRects,\n getDimensions: getDimensions,\n getScale: getScale,\n isElement: isElement,\n isRTL: isRTL\n}; // https://samthor.au/2021/observing-dom/\n\nfunction observeMove(element, onMove) {\n var io = null;\n var timeoutId;\n var root = getDocumentElement(element);\n\n function cleanup() {\n var _io;\n\n clearTimeout(timeoutId);\n (_io = io) == null || _io.disconnect();\n io = null;\n }\n\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n\n if (threshold === void 0) {\n threshold = 1;\n }\n\n cleanup();\n\n var _element$getBoundingC = element.getBoundingClientRect(),\n left = _element$getBoundingC.left,\n top = _element$getBoundingC.top,\n width = _element$getBoundingC.width,\n height = _element$getBoundingC.height;\n\n if (!skip) {\n onMove();\n }\n\n if (!width || !height) {\n return;\n }\n\n var insetTop = floor(top);\n var insetRight = floor(root.clientWidth - (left + width));\n var insetBottom = floor(root.clientHeight - (top + height));\n var insetLeft = floor(left);\n var rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n var options = {\n rootMargin: rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n var isFirstUpdate = true;\n\n function handleObserve(entries) {\n var ratio = entries[0].intersectionRatio;\n\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n\n if (!ratio) {\n timeoutId = setTimeout(function () {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n\n isFirstUpdate = false;\n } // Older browsers don't support a `document` as the root and will throw an\n // error.\n\n\n try {\n io = new IntersectionObserver(handleObserve, _objectSpread(_objectSpread({}, options), {}, {\n // Handle