{"version":3,"sources":["components/commons/ProtectedRoute.jsx","services/guards/AuthGuard.js","services/guards/PermissionsGuard.js","components/commons/SmallBgLoading.jsx","assets/svg/kibi_logo.svg","components/modals/TermsModal.jsx","pages/Login/index.jsx","store/root/actionTypes.js","services/notifications.js","services/graphql/notifications.js","services/account.js","services/graphql/account.js","store/root/actions.js","services/common.js","services/lang.js","components/modals/PolicyModal.jsx","components/commons/MainHeader/index.jsx","components/containers/MarketContainer.jsx","services/contents.js","services/graphql/contents.js","assets/svg/kiiibin_back.svg","assets/svg/kiiibin_relux.svg","assets/svg/kiiibin_sad.svg","assets/svg/kiiibin_sit.svg","assets/svg/kiiibin_smile.svg","assets/svg/kiiibin_teach.svg","assets/svg/icons8-hand-with-pen-2.svg","assets/svg/icons8-book.svg","assets/svg/icons8-replay-30-2.svg","assets/svg/icons8-report-card.svg","assets/svg/icons8-ask-question.svg","pages/User/Market/index.jsx","pages/User/Notifications/index.jsx","services/course-test-results.js","services/graphql/course-test-results.js","services/subtle-test-results.js","services/graphql/subtle-test-results.js","pages/User/CourseResults/index.jsx","services/users.js","services/graphql/users.js","services/csv.js","pages/Admin/Managers/index.jsx","pages/Admin/Managers/Manager/index.jsx","services/nursing-results.js","services/graphql/nursing-results.js","services/nursing/results.js","pages/Admin/Users/index.jsx","services/nursing/csv.js","pages/Admin/Users/User/index.jsx","services/json.js","pages/Admin/Courses/index.jsx","services/practice-questions.js","services/graphql/practice-questions.js","services/test-questions.js","services/graphql/test-questions.js","pages/Admin/Courses/Course/index.jsx","pages/Admin/Courses/Course/PracticeQuestion/index.jsx","pages/Admin/Courses/Course/TestQuestion/index.jsx","pages/Admin/ComicsLife/index.jsx","pages/Admin/ComicsLife/ComicLife/index.jsx","pages/Admin/ComicsSpirit/index.jsx","pages/Admin/ComicsSpirit/ComicSpirit/index.jsx","pages/Admin/Notifications/index.jsx","pages/Admin/Notifications/Notification/index.jsx","pages/Admin/SubtleTest/index.jsx","pages/Admin/Nursing/index.jsx","pages/Admin/NursingFree/index.jsx","pages/Admin/SimpleFlowTest/index.jsx","pages/Admin/SimpleFlowTest/Item/index.jsx","services/test-csv.js","services/graphql/test-csv.js","pages/Admin/TestCSV/index.jsx","pages/Admin/TestAa/index.jsx","pages/Admin/TestBbs/index.jsx","pages/Admin/index.jsx","pages/Manager/Users/index.jsx","pages/Manager/Users/User/index.jsx","pages/Manager/CourseResults/index.jsx","pages/Manager/SubtleResults/index.jsx","pages/Manager/Notifications/index.jsx","pages/Manager/Manual/index.jsx","pages/Manager/index.jsx","components/modals/AnswerReactionModals.jsx","components/containers/MainContainer.jsx","components/elements/QuestionChatItem/index.jsx","assets/svg/icons8-picture.svg","components/elements/PictureElement.jsx","components/modals/PracticeAnswerModal.jsx","pages/User/Course/CoursePractice/index.jsx","pages/User/Course/CourseTest/index.jsx","assets/svg/icons8-checkmark.svg","assets/svg/icons8-delete.svg","pages/User/Course/CourseResult/index.jsx","pages/User/SubtleTest/index.jsx","services/nursing-free-results.js","services/graphql/nursing-free-results.js","pages/User/Nursing/index.jsx","pages/User/ComicSpirit/index.jsx","pages/User/ComicLife/index.jsx","pages/User/SimpleFlowTest/index.jsx","assets/svg/icons8-error.svg","pages/Error/index.jsx","App.js","serviceWorker.js","store/root/reducer.js","store/auth/reducer.js","store/auth/actionTypes.js","store/courses/reducer.js","store/courses/actionTypes.js","store/index.js","index.js"],"names":["ProtectedRoute","props","context","_this","Object","classCallCheck","this","_super","call","state","processed","isAuth","guards","path","groupIndex","guard","validate","redirectOnError","redirectTo","history","push","setState","_this2","_this$props2","Component","component","rest","objectWithoutProperties","react_default","a","createElement","Fragment","react_router","assign","render","withRouter","PermissionsGuard","Auth","currentAuthenticatedUser","currentSession","session","groups","idToken","payload","length","signOut","console","error","_context","t0","match","SmallBgLoading","style","position","react_transition_group","isLoading","classNames","timeout","top","right","left","bottom","display","justifyContent","alignItems","zIndex","Spinner","animation","variant","size","children","_extends","target","i","arguments","source","key","prototype","hasOwnProperty","apply","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","kibi_logo_ref2","x","y","width","height","patternUnits","id","viewBox","overflow","fill","points","d","kibi_logo_ref3","kibi_logo_SvgKibiLogo","_ref","svgRef","enableBackground","xmlSpace","ref","ForwardRef","forwardRef","__webpack_require__","p","TermsModal","_Component","inherits","TermsModal_createSuper","createClass","value","Modal","show","onHide","onClose","backdrop","scrollable","Header","Title","Body","backgroundColor","maxHeight","overflowY","rel","href","Footer","isSimple","Button","onClick","onOk","defaultProps","LoginPage","onClickTermsApproved","asyncToGenerator","regenerator_default","mark","_callee","result","wrap","prev","next","isShownTermsModal","loading","signIn","email","password","sent","challengeName","user","isNewPasswordRequired","route","t1","t2","stop","onClickPasswordReset","isPasswordReset","onSubmitPasswordRequest","_ref2","_callee2","event","_context2","preventDefault","forgotPassword","_x","buildTitle","newPassword","newPasswordConfirmation","completeNewPassword","_context5","lib_default","className","SmallBgLoading_SmallBgLoading","Alert","message","Form","onSubmit","onSubmitLoginForm","bind","InputGroup","Control","required","type","placeholder","onChange","e","name","disabled","block","onSubmitNewPasswordForm","TermsModal_TermsModal","connect","SET_FULL_LOADING","SET_LANG","SET_COMIC_LIFE_INTRO","SET_COMIC_LIFE_IDS","SET_COMIC_SPIRIT_IDS","SET_NOTIFICATIONS","SET_KIBIIN_NOTIFICATIONS","SET_READ_NOTIFICATIONS","fetchNotifications","response","API","graphql","graphqlOperation","abrupt","data","getNotifications","fetchNotification","getNotification","createNotification","_ref3","_callee3","input","_context3","_x2","updateNotification","_ref4","_callee4","_context4","_x3","deleteNotification","_ref5","_callee5","_x4","fetchAccount","getAccount","fetchAccountSetting","getAccountSettings","updateAccountSettings","fetchAccountReadNotifications","getAccountReadNotifications","updateAccountReadNotifications","setLang","lang","dispatch","types","setComicLifeIds","ids","getState","notifications","notificationsList","generalNotifications","kibiinNotifications","accountReadNotifications","notificationsService","items","sort","b","Date","createdAt","filter","item","accountService","JSON","parse","list","kibiin","readed","log","updateReadNotifications","readNotifications","stringify","shuffleArr","arr","j","temp","Math","floor","random","formatDate","string","Intl","DateTimeFormat","dateStyle","timeStyle","format","languages","jp2","en","vn","languagesList","mainLanguage","prefectureList","label","texts","jp","menu","account-user-sufix","account","home","terms","policy","faq","logout","toMarket","study","learnByManga","abilityTest","logResults","movies","askAQuestion","continue","practice","test","answer","pointOfJapaneseCulturesAndCustoms","pointOfBehaviorAndReaction","goToTheNextQuestion","takeATest","nextCourse","notFound","wellDone","almost","tryAgain","kiiibin","subtle-start-text-1","subtle-start-text-2","subtle-start-text-3-1","subtle-start-text-3-2","subtle-start-text-3-3","subtle-start","subtle-intro-title","subtle-intro-next","subtle-intro-back","subtle-view-map","subtle-title","subtle-question","subtle-finish-title","subtle-finish-back","subtle-finish-results","subtle-results-title-0","subtle-results-title-1","subtle-results-title-2","subtle-results-title-3","translate","args","undefined","replace","PolicyModal","PolicyModal_createSuper","MainHeader","MainHeader_createSuper","_isMounted","onHome","onTerms","isShowTermsModal","onPolicy","onFAQ","isLogout","isShowPolicyModal","kibinNotification","_componentDidMount","rootActions","_onLogout","_this$props","notificationsReaded","_this$state","userGroup","toLowerCase","userId","getUsername","Navbar","bg","fixed","expand","Brand","margin","padding","react_router_bootstrap_lib","to","color","Toggle","aria-controls","Collapse","isPractice","isTest","Nav","NavDropdown","title","commonService","currentLang","map","Item","langService","alignRight","index_es","icon","faUser","concat","Divider","faHome","onLogout","faSignInAlt","activeClassName","Link","PolicyModal_PolicyModal","langs","root","notificationsObject","MarketContainer","MarketContainer_createSuper","components_commons_MainHeader","marginTop","fetchContents","getContents","fetchContent","query","variables","authMode","getContent","fetchContentSetting","getContentSetting","createContent","updateContent","deleteContent","_ref6","_callee6","_context6","_x5","updateContentSetting","_ref8","_callee7","_ref7","order","_context7","_x6","kiiibin_back_extends","kiiibin_back_objectWithoutProperties","kiiibin_back_objectWithoutPropertiesLoose","kiiibin_back_ref2","kiiibin_back_ref3","kiiibin_back_ref4","kiiibin_back_ref5","kiiibin_back_ref6","kiiibin_back_ref7","kiiibin_back_ref8","kiiibin_back_ref9","kiiibin_back_ref10","_ref11","_ref12","_ref13","_ref14","_ref15","kiiibin_back_SvgKiiibinBack","xlinkHref","clipPath","transform","kiiibin_back_ForwardRef","kiiibin_relux_extends","kiiibin_relux_objectWithoutProperties","kiiibin_relux_objectWithoutPropertiesLoose","kiiibin_relux_ref2","kiiibin_relux_ref3","kiiibin_relux_ref4","kiiibin_relux_ref5","kiiibin_relux_ref6","kiiibin_relux_ref7","kiiibin_relux_ref8","kiiibin_relux_ref9","kiiibin_relux_ref10","kiiibin_relux_ref11","kiiibin_relux_ref12","kiiibin_relux_ref13","kiiibin_relux_ref14","kiiibin_relux_ref15","_ref16","_ref17","_ref18","_ref19","_ref20","_ref21","_ref22","_ref23","_ref24","_ref25","_ref26","_ref27","_ref28","kiiibin_relux_SvgKiiibinRelux","kiiibin_relux_ForwardRef","kiiibin_sad_extends","kiiibin_sad_objectWithoutProperties","kiiibin_sad_objectWithoutPropertiesLoose","kiiibin_sad_ref2","kiiibin_sad_ref3","kiiibin_sad_ref4","kiiibin_sad_ref5","kiiibin_sad_ref6","kiiibin_sad_ref7","kiiibin_sad_ref8","kiiibin_sad_ref9","kiiibin_sad_ref10","kiiibin_sad_ref11","kiiibin_sad_ref12","kiiibin_sad_ref13","kiiibin_sad_ref14","kiiibin_sad_ref15","kiiibin_sad_ref16","kiiibin_sad_ref17","kiiibin_sad_ref18","kiiibin_sad_ref19","kiiibin_sad_ref20","kiiibin_sad_ref21","kiiibin_sad_ref22","kiiibin_sad_ref23","kiiibin_sad_ref24","kiiibin_sad_ref25","kiiibin_sad_ref26","kiiibin_sad_ref27","kiiibin_sad_SvgKiiibinSad","kiiibin_sad_ForwardRef","kiiibin_sit_extends","kiiibin_sit_objectWithoutProperties","kiiibin_sit_objectWithoutPropertiesLoose","kiiibin_sit_ref2","kiiibin_sit_ref3","kiiibin_sit_ref4","kiiibin_sit_ref5","kiiibin_sit_ref6","kiiibin_sit_ref7","kiiibin_sit_ref8","kiiibin_sit_ref9","kiiibin_sit_ref10","kiiibin_sit_ref11","kiiibin_sit_ref12","kiiibin_sit_ref13","kiiibin_sit_ref14","kiiibin_sit_ref15","kiiibin_sit_ref16","kiiibin_sit_ref17","kiiibin_sit_ref18","kiiibin_sit_ref19","kiiibin_sit_ref20","kiiibin_sit_ref21","kiiibin_sit_ref22","kiiibin_sit_ref23","kiiibin_sit_ref24","kiiibin_sit_ref25","kiiibin_sit_ref26","kiiibin_sit_SvgKiiibinSit","kiiibin_sit_ForwardRef","kiiibin_smile_extends","kiiibin_smile_objectWithoutProperties","kiiibin_smile_objectWithoutPropertiesLoose","kiiibin_smile_ref2","kiiibin_smile_ref3","kiiibin_smile_ref4","kiiibin_smile_ref5","kiiibin_smile_ref6","kiiibin_smile_ref7","kiiibin_smile_ref8","kiiibin_smile_ref9","kiiibin_smile_ref10","kiiibin_smile_ref11","kiiibin_smile_ref12","kiiibin_smile_ref13","kiiibin_smile_ref14","kiiibin_smile_ref15","kiiibin_smile_ref16","kiiibin_smile_ref17","kiiibin_smile_ref18","kiiibin_smile_ref19","kiiibin_smile_ref20","kiiibin_smile_ref21","kiiibin_smile_ref22","kiiibin_smile_ref23","kiiibin_smile_ref24","kiiibin_smile_ref25","kiiibin_smile_ref26","kiiibin_smile_SvgKiiibinSmile","kiiibin_smile_ForwardRef","kiiibin_teach_extends","kiiibin_teach_objectWithoutProperties","kiiibin_teach_objectWithoutPropertiesLoose","kiiibin_teach_ref2","kiiibin_teach_ref3","kiiibin_teach_ref4","kiiibin_teach_ref5","kiiibin_teach_ref6","kiiibin_teach_ref7","kiiibin_teach_ref8","kiiibin_teach_ref9","kiiibin_teach_ref10","kiiibin_teach_ref11","kiiibin_teach_ref12","kiiibin_teach_ref13","kiiibin_teach_ref14","kiiibin_teach_ref15","kiiibin_teach_ref16","kiiibin_teach_ref17","kiiibin_teach_ref18","kiiibin_teach_ref19","kiiibin_teach_ref20","kiiibin_teach_ref21","kiiibin_teach_ref22","kiiibin_teach_ref23","kiiibin_teach_ref24","kiiibin_teach_ref25","kiiibin_teach_ref26","kiiibin_teach_ref27","kiiibin_teach_ref28","kiiibin_teach_SvgKiiibinTeach","kiiibin_teach_ForwardRef","icons8_hand_with_pen_2_extends","icons8_hand_with_pen_2_objectWithoutProperties","icons8_hand_with_pen_2_objectWithoutPropertiesLoose","icons8_hand_with_pen_2_ref2","icons8_hand_with_pen_2_SvgIcons8HandWithPen2","icons8_hand_with_pen_2_ForwardRef","icons8_book_extends","icons8_book_objectWithoutProperties","icons8_book_objectWithoutPropertiesLoose","icons8_book_ref2","icons8_book_SvgIcons8Book","icons8_book_ForwardRef","icons8_replay_30_2_extends","icons8_replay_30_2_objectWithoutProperties","icons8_replay_30_2_objectWithoutPropertiesLoose","icons8_replay_30_2_ref2","icons8_replay_30_2_SvgIcons8Replay302","icons8_replay_30_2_ForwardRef","icons8_report_card_extends","icons8_report_card_objectWithoutProperties","icons8_report_card_objectWithoutPropertiesLoose","icons8_report_card_ref2","icons8_report_card_SvgIcons8ReportCard","icons8_report_card_ForwardRef","MarketPage","onKibiinNotificationClose","toConsumableArray","onCourseSectionClick","window","scrollTo","CourseRef","current","offsetTop","onComicSectionClick","ComicSpiritRef","formatByLanguage","array","onMovies","MoviesRef","renderKiiibinSpeech","index","findIndex","avatar","description","positions","faTimes","renderLargeActions","accountPermissions","onSubtleTestClick","onNursingClick","onResultsClick","renderCourses","courses","accountSettings","coursesPractice","lastCourse","practiceFinished","course","onCoursePracticeClick","onCourseTestClick","renderComicsSpirit","comicsSpirit","comic","onComicSpiritClick","renderComicsLife","comicsLife","onComicLifeClick","renderDisabled","intercomUser","assertThisInitialized","react_intercom_lib_default","appID","process","renderMovies","videoModalYoutube","preview","youtube","movie","background","border","flexDirection","flex","marginLeft","marginRight","marginBottom","src","React","createRef","accountResponse","parent","permissions","accountSettingsResponse","contentsService","courseSetting","comicsSpiritSetting","comicsLifeSetting","contentsResponse","contentType","newCourses","_loop","newComicsSpirit","_loop2","newComicsLife","_loop3","selectedLanguage","_this$state2","user_id","containers_MarketContainer","NotificationsPage","fetchData","onViewClick","selectedIds","splice","renderItem","ListGroup","Badge","faAngleUp","faAngleDown","Container","ButtonToolbar","fetchAllCoursesTestResults","getAllCoursesTestResults","fetchAdminCoursesTestResults","getAdminCoursesTestResults","fetchCoursesTestResults","getCoursesTestResults","fetchCourseTestResult","getCourseTestResult","createCourseTestResult","fetchAllSubtleTestResults","getAllSubtleTestResults","fetchAdminSubtleTestResults","getAdminSubtleTestResults","fetchSubtleTestResults","getSubtleTestResults","fetchSubtleTestResult","getSubtleTestResult","createSubtleTestResult","CourseResultsPage","subtleContent","courseTestResultsResponse","subtleTestResultsResponse","courseResults","subtleResults","settings","courseTestResultsService","subtleTestResultsService","forEach","results","isCorrect","question","answers","questionId","onCourseTestResultsClick","courseTestResultsOpenCourseId","onSubtleTestResultsClick","subtleTestResultsOpenCourseId","renderCourseResults","totalAnswers","correctAnswers","testQuestions","testQuestion","buildTotalCount","totalCount","buildSkills","skills","imagination","reaction","empathy","feeling","flexibility","questions","renderResultText","min","max","details","renderSubtleResultsItem","resultsSelectedIndex","radarData","meta","captions","build_default","active","renderSubtleResults","_isMount","fetchUsers","getUsers","fetchUser","getUser","createUser","manager","parentId","createUserManager","updateUser","updateUserManager","deleteUser","disableUser","_ref9","_callee8","_context8","_x7","enableUser","_ref10","_callee9","_context9","_x8","prepareCsv","schema","schemaItem","_step","arrayItem","_iterator","_createForOfIteratorHelper","s","n","done","err","f","_step2","_iterator2","_step3","resultRow","_iterator3","downloadCsv","csv","filename","Blob","url","URL","createObjectURL","element","document","getElementById","parentNode","removeChild","download","body","appendChild","click","revokeObjectURL","readCsv","file","rows","rowIndex","cols","schemaIndex","newValue","readFileAsync","split","Error","parseInt","Promise","resolve","reject","reader","FileReader","onload","onerror","readAsText","ManagersPage","userService","onCreateClick","onEditClick","onDownload","csvService","Managers_createForOfIteratorHelper","onUploadSample","department","childMaxCount","onUpload","generator","uppercase","finish","alert","errors","isUpload","uploadProgress","uploadError","htmlFor","accept","files","ManagerPage","onCancelClick","onDeleteClick","usersService","onError","onAutoPasswordClick","touched","onDisable","onEnable","onDoneClick","dispatchEvent","Event","cancelable","form","currentTarget","checkValidity","permissionCourse","permissionComic","permissionSubtleTest","permissionNursing","permissionMovie","formFieldRequiredValidation","fieldName","params","toString","isNew","Row","Group","as","Col","Label","isInvalid","Feedback","md","controlId","Check","checked","Append","Card","text","fetchAllNursingResults","getAllNursingResults","fetchAdminNursingResults","getAdminNursingResults","fetchNursingResult","getNursingResult","createNursingResult","buildResult","isFree","nickname","totalCorrect","totalPositiveStroke","totalNegativeStroke","totalDiscount","totalFlexibility","totalImagination","totalReaction","totalEmpathy","totalFeeling","positiveStroke","negativeStroke","discount","textTypeNumber","textType","typeImage","textTypeLong","textBubble","textBanner","textBannerText","textAdvice","textShare","freeUrl","UsersPage","nursingResultsResponse","filtered","testIndex","_nursingResultsMiddle","nursingResultsService","filteredItem","nursingResultsMiddleware","nicknameKana","numberType","toISOString","build","nursingResults","newestOnly","parentCheck","ordered","UserPage","onParentClick","onNursingTestResultsClick","nursingTestResultsOpenCourseId","onCourseTestResultsDownload","courseTestResults","resultIndex","courseTestResult","dataItem","courseTitle","date","courseName","questionIndex","questionTitle","answerIndex","correctAnswerIndex","currentQuestionAnswerIndex","selectedAnswerIndex","onSubtleTestResultsDownload","subtleTestResults","subtleData","subtitle","answer1","answer2","answer3","answer1IsCorrect","answer2IsCorrect","answer3IsCorrect","onNursingResultsDownload","nursingCsv","renderUser","renderCourseTests","_title","defineProperty","renderSubtleTest","renderNursingResultsItem","renderNursingTest","nursingData","content","nursing","prepareJson","json_createForOfIteratorHelper","downloadJson","json","readJson","parseJson","jsonIndex","jsonItem","itemLanguages","separatedLanguage","language","byValue","encoding","CoursesPage","setting","newList","onDragEnd","_items$splice","_items$splice2","removed","destination","Array","from","slicedToArray","jsonService","practiceQuestions","svgUrl","characters","chats","character","reading","image","descriptionImage","descriptionJapaneseFeeling","descriptionKibi","descriptionKibiAvatar","descriptionJapanesePoint","descriptionBehavePoint","onEditOrder","oldItems","isEdit","onEditOrderCancel","onEditOrderDone","renderSimpleList","faBars","renderDraggableList","react_beautiful_dnd_esm","droppableId","provided","snapshot","droppableProps","innerRef","draggableId","draggableProps","dragHandleProps","fetchPracticeQuestions","contentId","getPracticeQuestions","fetchPracticeQuestion","getPracticeQuestion","createPracticeQuestion","updatePracticeQuestion","deletePracticeQuestion","fetchTestQuestions","getTestQuestions","fetchTestQuestion","getTestQuestion","createTestQuestion","updateTestQuestion","deleteTestQuestion","CoursePage","fields","fieldIndex","values","langIndex","formRequiredValidation","uuid","v4","onAddLanguage","onDeleteLanguage","onChangeLanguage","onCreatePracticeQuestionClick","courseId","onPracticeQuestionEditClick","onCreateTestQuestionClick","onTestQuestionEditClick","_practiceQuestions$sp","_practiceQuestions$sp2","onFormControlChanged","objectSpread","getFormControlValue","fileds","formFieldRequiredValidationByLanguage","renderToolbar","Dropdown","Menu","faCheck","faMinusCircle","includes","faPlusCircle","renderForm","renderPracticeQuestions","renderTestQuestions","renderDangerActions","practiceQuestionsService","practiceQuestionsResponse","testQuestionsService","testQuestionsResponse","PracticeQuestionPage","courseSettings","errorField","onCreateCharacter","onDeleteCharacter","onCreateChat","onDeleteChat","chat","onFileUpload","s3Object","pop","Storage","put","level","pathComponents","stack","selectedTab","selectedAnswer","multiply","practiceQuestionId","Img","objectFit","Text","_this3","_this4","_this5","_this6","renderGeneral","renderCharacters","renderChat","renderAnswers","TestQuestionPage","errorString","testQuestionId","ComicsLifePage","comicIntroduction","comicIntroductionSvgUrl","comicSituation","comicSituationSvgUrl","comicPages","ComicLifePage","pages","_pages$splice","_pages$splice2","onAddPage","comicId","onUploadPage","isPagesUploadInProgress","_x9","onDeletePage","_x10","getPageUrl","renderPages","react_beautiful_dnd_grid_lib","direction","maxItems","minWidth","multiple","ComicsSpiritPage","ComicSpiritPage","fetchList","whiteSpace","NotificationPage","_input","toUpperCase","notificationId","managers","users","renderKibiin","notification","SubtleTestPage","_i","_fields","field","onQuestionClick","selectedQuestion","renderQuestions","DropdownButton","renderQuestionSkills","_i3","_fields2","NursingPage","xs","answer1PositiveStroke","answer1NegativeStroke","answer1Discount","answer2PositiveStroke","answer2NegativeStroke","answer2Discount","answer3PositiveStroke","answer3NegativeStroke","answer3Discount","SimpleFlowTestListPage","SimpleFlowTestPage","testTime","factors","validationFields","onAreaAdd","areas","onAreaRemove","onFactorAdd","onFactorRemove","onQuestion","onQuestionAdd","onQuestionRemove","onAnswer","onAnswerAdd","onAnswerRemove","renderGeneralAreaItem","area","areaIndex","selectedFactorsList","FormControl","aria-describedby","factor","factorIndex","join","renderGeneralAreas","renderGeneralFactors","renderQuestionsHeader","renderQuestionsContent","renderAnswerHeader","_this$state3","questionAnswers","renderAnswerContentFactor","factorId","selectedFactorsValues","selectedFactorsValueList","handle","renderAnswerContent","_this$state4","_this$state5","mutsationTestCSVLayoutC","testCSVLayoutC","mutsationTestCSVLayoutCNew","testCSVLayoutCNew","Index","layout","fileString","_results","status","testCSVService","locations","Table","striped","bordered","hover","TestAaPage","_i2","TestBbsPage","AdminPage","location","pathname","exact","NursingFreePage","TestCSVPage","username","onDownloadNursing","Users_createForOfIteratorHelper","CoursesResultsPage","selectedId","SubtleResultsPage","ManualPage","open","totalUnread","AnswerReactionModals","alt","fontSize","dangerouslySetInnerHTML","__html","fontWeight","lineHeight","MainContainer","MainContainer_createSuper","paddingTop","QuestionChatItem","characterId","minHeight","maxWidth","icons8_picture_extends","icons8_picture_objectWithoutProperties","icons8_picture_objectWithoutPropertiesLoose","icons8_picture_SvgIcons8Picture","icons8_picture_ForwardRef","PictureElement","PictureElement_createSuper","iconWidth","iconHeight","PracticeAnswerModal","PracticeAnswerModal_createSuper","_len","_key","PictureElement_PictureElement","CoursePracticePage","prepareQuestions","courseSettingResponse","courseOrder","selectedCourseIndex","currentQuestionIndex","nextCourseId","showAnswerReactionModal","showPracticeAnswerModal","isDescription","onShowAnswerModal","onCloseAnswerModal","onOkAnswerModal","onClickAnswer","coursesPracticeSettings","questionsCount","isFinished","authUser","onCloseAnswerReactionModal","onOkAnswerReactionModal","onNextQuestionClick","onTestClick","onNextCourseClick","fetchQuestions","renderHeader","now","ProgressBar","renderQuestion","chatItem","components_elements_QuestionChatItem","components_modals_AnswerReactionModals","PracticeAnswerModal_PracticeAnswerModal","renderDescription","showNextCourse","isPracticeFinished","kibin","renderNotFound","val1","key1","entries","val2","key2","val3","key3","questionsState","containers_MainContainer","CourseTestPage","storeResults","answerId","onClickBack","testId","onClickFinish","_this$props$match$par","suffleAnswers","icons8_checkmark_extends","icons8_checkmark_objectWithoutProperties","icons8_checkmark_objectWithoutPropertiesLoose","icons8_checkmark_ref2","icons8_checkmark_SvgIcons8Checkmark","icons8_checkmark_ForwardRef","icons8_delete_extends","icons8_delete_objectWithoutProperties","icons8_delete_objectWithoutPropertiesLoose","icons8_delete_ref2","icons8_delete_SvgIcons8Delete","icons8_delete_ForwardRef","CourseResultPage","getAnswer","renderResults","testResults","ButtonGroup","vertical","resultsResponse","isResults","isLanding","onStart","isMap","onMapClose","isQuestion","onMapNext","startTimer","isShowTimer","onQuestionMap","onQuestionBack","onFinishedBack","onFinishedResults","timer","clearInterval","onQuestionAnswer","isSelectedAnswer","startTime","setInterval","time","stopTimer","buildTime","currentTime","maxTime","minutes","seconds","padStart","buildMaxTime","faClock","renderLanding","renderMap","renderFinished","renderFailed","_this$state6","fetchNursingFreeResult","getNursingFreeResult","createNursingFreeResult","resultsOther","tmpResults","other","_resultsResponse","_tmpResults","_items","_other","nursingFreeResultsService","onCancel","newResults","onAnketBack","isAnket","onAnketDone","onAnketSubmit","anket","gender","age","paddingBottom","renderAnket","borderRadius","FacebookShareButton","quote","TwitterShareButton","anketName","anketGender","anketAge","anketLocation","onNext","isComic","onNextPage","pageIndex","onPreviousPage","onNextComic","comicSpiritIds","comicIndex","nextComicId","renderComic","nextComicIndex","page","faArrowLeft","faArrowRight","nextContentId","_args","comicLifeIds","comicLifeIntro","isSituation","onComic","intro","onSituation","onSituationBack","onMarket","renderSituation","redirect","icons8_error_extends","icons8_error_objectWithoutProperties","icons8_error_objectWithoutPropertiesLoose","icons8_error_ref2","icons8_error_SvgIcons8Error","icons8_error_ForwardRef","ErrorPage","Amplify","configure","identityPoolId","region","userPoolId","userPoolWebClientId","aws_appsync_graphqlEndpoint","aws_appsync_region","aws_appsync_authenticationType","aws_appsync_apiKey","AWSS3","bucket","App","react_router_dom","commons_ProtectedRoute","AuthGuard","Course_CoursePractice","pages_User_Nursing","pages_User_ComicSpirit","pages_User_ComicLife","Boolean","hostname","initialState","fullLoading","rootReducer","action","emptyUser","jwt","sub","localStorageChecked","authReducer","courseGroups","currentCourseGroup","progress","initDataLoaded","initDataLoading","coursesReducer","courseGroup","createStore","combineReducers","reducers","applyMiddleware","thunk","require","config","ReactDOM","es","store","App_App","navigator","serviceWorker","ready","then","registration","unregister"],"mappings":"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","file":"static/js/main.dece3e89.chunk.js","sourcesContent":["import React, { Component } from \"react\";\nimport { Route, withRouter } from \"react-router-dom\";\n\nclass ProtectedRoute extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      processed: false,\n      isAuth: true,\n    };\n  }\n\n  async componentDidMount() {\n    let { guards, path } = this.props;\n\n    for (let groupIndex in guards) {\n      let guard = guards[groupIndex];\n      if (!await guard.validate(path)) {\n        let redirectTo = await guard.redirectOnError();\n        this.props.history.push(redirectTo);\n        break;\n      }\n    }\n\n    this.setState({ processed: true });\n  }\n\n  render() {\n    let { component: Component, guards, ...rest } = this.props;\n    return (<>\n      {!this.state.processed && (<div/>)}\n      {this.state.processed && (\n        <Route\n          {...rest}\n          render={props =>\n            this.state.isAuth ? (\n              <>\n                <Component {...props} />\n              </>\n            ) : (<div/>)\n          }\n        />\n      )}\n    </>);\n  }\n}\n\nexport default withRouter(ProtectedRoute);\n","import { Auth } from 'aws-amplify';\n\nexport default class PermissionsGuard {\n\n  static async validate() {\n    try {\n      if (await Auth.currentAuthenticatedUser() != null) {\n        return true;\n      }\n    } catch (e) {\n      // do nothing\n    }\n    return false;\n  }\n\n  static async redirectOnError() {\n    return \"/login\"\n  }\n\n};\n","import { Auth } from 'aws-amplify';\n\nexport default class PermissionsGuard {\n\n  static async validate(path) {\n    let session = await Auth.currentSession();\n    let groups = session.idToken.payload[\"cognito:groups\"];\n\n    if (!groups || groups.length <= 0) {\n      try {\n        await Auth.signOut();\n      } catch(e) {\n        console.error(e);\n      }\n      return false;\n    }\n\n    if (groups[0] === \"admin\") {\n      return path.match(/\\/admin\\//);\n    } else if (groups[0] === \"manager\") {\n      return path.match(/\\/manager\\//);\n    } else if (groups[0] === \"user\") {\n      return !path.match(/\\/admin\\//) && !path.match(/\\/manager\\//);\n    } else {\n      return false\n    }\n  }\n\n  static async redirectOnError() {\n    let session = await Auth.currentSession();\n    let groups = session.idToken.payload[\"cognito:groups\"];\n    if (!groups || groups.length <= 0) return \"/login\";\n\n    if (groups[0] === \"admin\") {\n      return \"/admin\";\n    } else if (groups[0] === \"manager\") {\n      return \"/manager\";\n    } else if (groups[0] === \"user\") {\n      return \"/\";\n    } else {\n      return \"/error\";\n    }\n  }\n\n  static async route() {\n    return await this.redirectOnError();\n  }\n\n};\n","import React from \"react\";\nimport { Spinner } from \"react-bootstrap\";\nimport { TransitionGroup, CSSTransition } from \"react-transition-group\";\n\nexport const SmallBgLoading = props => (\n  <div style={{ position: \"relative\" }}>\n    <TransitionGroup>\n    {props.isLoading && (\n      <CSSTransition classNames=\"fadeIn\" timeout={1000}>\n\n          <div\n            style={{\n              position: \"absolute\",\n              top: 0,\n              right: 0,\n              left: 0,\n              bottom: 0,\n              display: \"flex\",\n              justifyContent: \"center\",\n              alignItems: \"center\",\n              zIndex: 1,\n              // backgroundColor: \"rgba(0, 0, 0, 0.1)\",\n              // boxShadow: \"0px 0px 30px rgba(0, 0, 0, 0.2)\",\n              // borderRadius: \"15%\",\n              // margin: -16\n            }}\n          >\n            <Spinner animation=\"grow\" variant=\"primary\" size=\"lg\" />\n          </div>\n\n      </CSSTransition>\n      )}\n    </TransitionGroup>\n\n    {props.children}\n  </div>\n);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"pattern\", {\n  x: -240,\n  y: 216,\n  width: 69,\n  height: 69,\n  patternUnits: \"userSpaceOnUse\",\n  id: \"Unnamed_Pattern\",\n  viewBox: \"2.125 -70.896 69 69\",\n  overflow: \"visible\"\n}, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n  fill: \"none\",\n  points: \"71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896  \"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n  fill: \"#F7C454\",\n  points: \"71.125,-1.896 2.125,-1.896 2.125,-70.896 71.125,-70.896  \"\n}), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.439-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.772-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.105-71.653c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19C0.361-71.362,0.3-71.4,0.248-71.335 c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128 c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-71.653c0.018,0.072,0.008,0.127-0.026,0.19c-0.052,0.101-0.113,0.062-0.165,0.128 c-0.051,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224C0.5-71.68,0.503-71.744,0.51-71.626 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-64.001c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143C2-61.45,2.217-61.397,2.391-61.46c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-56.348c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-56.374,0.503-56.438,0.51-56.32 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-48.695c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 C8.15-41.004,8.149-41.02,8.14-41.04\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-41.042c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-33.39c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-33.416,0.503-33.48,0.51-33.362 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-25.736c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-18.084c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224C0.5-18.11,0.503-18.175,0.51-18.057 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362C69-9.692,69.159-9.523,69.154-9.4c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.009,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 c0.177,0.042,0.384-0.104,0.543-0.143c0.18-0.043,0.397,0.01,0.571-0.053C17.933-7.969,17.839-8.227,18-8.34 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 C7.915-10.05,7.866-9.836,7.886-9.75C7.717-9.692,7.876-9.523,7.871-9.4C7.868-9.351,7.83-9.295,7.826-9.239 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C9.114-7.652,9.321-7.799,9.48-7.837c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-10.431c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 C0.254-10.05,0.205-9.836,0.225-9.75C0.056-9.692,0.215-9.523,0.21-9.4c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-8.671,0.501-8.456,0.668-8.325c0.19,0.148,0.365,0.572,0.608,0.631 C1.454-7.652,1.66-7.799,1.819-7.837C2-7.88,2.217-7.827,2.391-7.89c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46C3.477-8.933,3.471-8.995,3.5-9.071 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M69.439-2.778c0.018,0.072,0.008,0.127-0.026,0.19C69.361-2.487,69.3-2.525,69.248-2.46 c-0.051,0.062-0.099,0.276-0.079,0.362C69-2.04,69.159-1.871,69.154-1.748c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C70.397,0,70.604-0.146,70.763-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.215,0.124-0.215,0.224c0.002,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M61.778-2.778c0.018,0.072,0.007,0.127-0.026,0.19C61.7-2.487,61.64-2.525,61.587-2.46 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C62.737,0,62.943-0.146,63.103-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C61.915-3.117,61.78-3.02,61.781-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M54.118-2.778c0.018,0.072,0.007,0.127-0.026,0.19C54.04-2.487,53.98-2.525,53.927-2.46 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C55.077,0,55.283-0.146,55.442-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C54.255-3.117,54.12-3.02,54.121-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M46.458-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C47.416,0,47.623-0.146,47.782-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C46.594-3.117,46.459-3.02,46.46-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M38.797-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C39.756,0,39.962-0.146,40.122-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C38.934-3.117,38.799-3.02,38.8-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M31.137-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C32.095,0,32.302-0.146,32.461-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224C31.273-3.117,31.139-3.02,31.14-2.92c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M23.477-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C24.435,0,24.642-0.146,24.801-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 c-0.021,0.011-0.021-0.005-0.03-0.025\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M15.816-2.778c0.018,0.072,0.007,0.127-0.026,0.19c-0.053,0.101-0.112,0.062-0.165,0.128 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C16.774,0,16.981-0.146,17.14-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789c-0.18,0.034-0.287,0.126-0.442,0.207 c-0.17,0.088-0.139,0.166-0.318,0.224c-0.081,0.026-0.216,0.124-0.215,0.224c0.001,0.115,0.005,0.051,0.012,0.169 C15.81-2.74,15.809-2.756,15.8-2.776\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M8.156-2.778c0.018,0.072,0.007,0.127-0.026,0.19C8.077-2.487,8.018-2.525,7.965-2.46 c-0.05,0.062-0.099,0.276-0.079,0.362c-0.169,0.058-0.01,0.227-0.015,0.35C7.868-1.698,7.83-1.643,7.826-1.587 c-0.01,0.119,0.017,0.266,0.068,0.37c0.097,0.198,0.268,0.413,0.435,0.544c0.19,0.148,0.365,0.572,0.608,0.631 C9.114,0,9.321-0.146,9.48-0.185c0.18-0.043,0.397,0.01,0.571-0.053c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.069,0.339-0.263,0.376-0.46c0.016-0.082,0.01-0.145,0.039-0.221 c0.039-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.052-0.12-0.064-0.187c-0.022-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C8.954-3.54,8.847-3.448,8.692-3.367 c-0.17,0.088-0.139,0.166-0.318,0.224C8.292-3.117,8.158-3.02,8.159-2.92C8.16-2.805,8.164-2.869,8.17-2.751 C8.15-2.74,8.149-2.756,8.14-2.776\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M0.495-2.778c0.018,0.072,0.008,0.127-0.026,0.19C0.417-2.487,0.356-2.525,0.304-2.46 C0.253-2.397,0.205-2.184,0.225-2.098C0.056-2.04,0.215-1.871,0.21-1.748c-0.002,0.05-0.041,0.105-0.045,0.161 c-0.01,0.119,0.017,0.266,0.068,0.37C0.33-1.019,0.501-0.804,0.668-0.673c0.19,0.148,0.365,0.572,0.608,0.631 C1.454,0,1.66-0.146,1.819-0.185C2-0.228,2.217-0.175,2.391-0.237c0.222-0.079,0.127-0.337,0.288-0.45 c0.104-0.074,0.287-0.01,0.406-0.051c0.2-0.07,0.339-0.263,0.376-0.46C3.477-1.28,3.471-1.343,3.5-1.419 c0.038-0.103,0.111-0.16,0.09-0.293c-0.01-0.062-0.051-0.12-0.064-0.187c-0.021-0.114,0.002-0.224,0-0.337 c-0.003-0.2,0.017-0.379-0.078-0.55c-0.38-0.688-1.236-0.929-1.975-0.789C1.293-3.54,1.187-3.448,1.031-3.367 c-0.17,0.088-0.139,0.166-0.318,0.224C0.632-3.117,0.498-3.02,0.498-2.92C0.5-2.805,0.503-2.869,0.51-2.751 C0.489-2.74,0.488-2.756,0.479-2.776\"\n}))));\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#0F80B4\",\n  d: \"M76.085,34.254h-2.633v-18.46h2.633V34.254z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#0F80B4\",\n  d: \"M48.756,34.254h-2.634v-18.46h2.634V34.254z\"\n}), /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#0F80B4\",\n  d: \"M67.327,24.744c1.548,0.714,2.322,2.269,2.322,4.666c0,3.23-1.71,4.844-5.134,4.844H53.704v-18.46h10.962 c1.374,0,2.455,0.459,3.241,1.377c0.787,0.918,1.181,2.142,1.181,3.672C69.088,22.525,68.5,23.827,67.327,24.744z M64.702,23.52 c0.625,0,1.146-0.244,1.565-0.73c0.419-0.487,0.628-1.081,0.628-1.781c0-0.752-0.188-1.35-0.561-1.795 c-0.375-0.443-0.889-0.667-1.537-0.667h-8.846v4.973H64.702z M64.534,31.501c1.873,0,2.811-0.841,2.811-2.523 c0-1.803-0.817-2.703-2.454-2.703h-8.938v5.227H64.534z\"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n  fill: \"#2EA9BE\",\n  points: \"40.609,31.053 40.609,18.934 29.069,24.995  \"\n}), /*#__PURE__*/React.createElement(\"polygon\", {\n  fill: \"#0F80B4\",\n  points: \"40.609,15.746 28.495,22.115 28.495,15.793 25.862,15.793 25.862,23.499 23.009,24.999  25.862,26.499 25.862,34.254 28.495,34.254 28.495,27.883 40.609,34.251 40.609,31.053 29.069,24.995 40.609,18.934  \"\n}));\n\nvar SvgKibiLogo = function SvgKibiLogo(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    width: \"100px\",\n    height: \"50px\",\n    viewBox: \"0 0 100 50\",\n    enableBackground: \"new 0 0 100 50\",\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, _ref3);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKibiLogo, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kibi_logo.26dc1d5a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from \"react\";\nimport { Modal, Button } from \"react-bootstrap\";\n\nexport class TermsModal extends Component {\n  render() {\n    return (\n      <Modal show={this.props.show} onHide={this.props.onClose} backdrop=\"static\" scrollable={true}>\n        <Modal.Header>\n          <Modal.Title>利用規約</Modal.Title>\n        </Modal.Header>\n\n        <Modal.Body style={{backgroundColor: \"#FAFAFA\", maxHeight: \"calc(100vh - 210px)\", overflowY: 'auto'}} >\n          <p>\n            こんにちは!<br/>\n            「KIBIラーニング」「きづっきー」へようこそ!<br/>\n            <br/>\n            次の事項を守って使用して下さい。<br/>\n            1.自分のIDとパスワードを、他の人に教えたり使わせたりしません。<br/>\n            2.「KIBIラーニング」「きづっきー」の<a rel=\"noopener noreferrer\" href=\"https://kibi-learning.com/private-policy.html\" target=\"_blank\">個人情報保護方針</a>に同意します。<br/>\n            3.「KIBIラーニング」「きづっきー」によって得た知識は、自分の判断と責任で使います。<br/>\n            <br/>\n            詳細な利用規約は<a rel=\"noopener noreferrer\" href=\"https://kibi-learning.com/terms.html\" target=\"_blank\">こちら</a>よりご確認ください。<br/>\n          </p>\n        </Modal.Body>\n\n        <Modal.Footer>\n          {!this.props.isSimple && (<Button variant=\"outline-secondary\" onClick={this.props.onClose}>キャンセル</Button>)}\n          {!this.props.isSimple && (<Button variant=\"success\" onClick={this.props.onOk}>同意する</Button>)}\n          {this.props.isSimple && (<Button variant=\"outline-secondary\" onClick={this.props.onClose}>閉じる</Button>)}\n        </Modal.Footer>\n      </Modal>\n    );\n  }\n}\n\nTermsModal.defaultProps = {\n  show: false,\n  isSimple: false,\n  onClose: () => {},\n  onOk: () => {}\n};\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Form, Button, InputGroup, Alert } from \"react-bootstrap\";\nimport Div100vh from \"react-div-100vh\";\nimport { SmallBgLoading } from \"../../components/commons/SmallBgLoading\";\nimport { ReactComponent as Logo } from \"../../assets/svg/kibi_logo.svg\";\nimport { Auth } from 'aws-amplify';\nimport PermissionsGuard from \"../../services/guards/PermissionsGuard\";\nimport { TermsModal } from \"../../components/modals/TermsModal\";\n\nclass LoginPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      email: \"\",\n      password: \"\",\n      newPassword: \"\",\n      newPasswordConfirmation: \"\",\n      error: null,\n      loading: false,\n      isNewPasswordRequired: false,\n      isPasswordReset: false,\n      user: null,\n      isShownTermsModal: false\n    };\n  }\n\n  async componentWillMount() {\n    try {\n      if (await Auth.currentAuthenticatedUser() != null) this.props.history.push(await PermissionsGuard.route());\n    } catch (e) {\n      // do nothing\n    }\n  }\n\n  async onSubmitLoginForm(event) {\n    event.preventDefault();\n\n    this.setState({ isShownTermsModal: true });\n\n  }\n\n  async onSubmitNewPasswordForm(event) {\n    event.preventDefault();\n\n    this.setState({loading: true, error: null});\n\n    try {\n      await Auth.completeNewPassword(this.state.user, this.state.newPassword, null);\n      this.setState({loading: false});\n      this.props.history.push(await PermissionsGuard.route());\n    } catch (error) {\n      this.setState({loading: false, error});\n    }\n\n  }\n\n  onClickTermsApproved = async () => {\n    this.setState({isShownTermsModal: false, loading: true, error: null});\n\n    try {\n      let result = await Auth.signIn(this.state.email, this.state.password);\n\n      if(result.challengeName === \"NEW_PASSWORD_REQUIRED\") {\n        this.setState({ loading: false, user: result, isNewPasswordRequired: true});\n      } else {\n        this.setState({loading: false});\n        this.props.history.push(await PermissionsGuard.route());\n      }\n\n    } catch (error) {\n      this.setState({loading: false, error});\n    }\n  };\n\n  onClickPasswordReset = () => {\n    this.setState({ isPasswordReset: true });\n  };\n\n  onSubmitPasswordRequest = async (event) => {\n    event.preventDefault();\n\n    this.setState({loading: true});\n    try {\n      let test = await Auth.forgotPassword(this.state.email);\n      // this.setState({loading: false});\n      // this.props.history.push(await PermissionsGuard.route());\n    } catch (error) {\n      this.setState({loading: false, error});\n    }\n  };\n\n  buildTitle = () => {\n    if (this.state.isNewPasswordRequired) {\n      return \"新しいパスワードが必要です\";\n    } else if (this.state.isPasswordReset) {\n      return \"パスワードリセット\"\n    } else {\n      return \"ログイン\"\n    }\n  };\n\n  render() {\n    return (\n      <Div100vh className=\"d-flex justify-content-center align-items-center flex-column text-center\">\n        <div style={{ width: 258 }}>\n          <SmallBgLoading isLoading={this.state.loading}>\n            <Logo />\n            <h4 className=\"d-block text-center mb-3 font-weight-normal\">\n              {this.buildTitle()}\n            </h4>\n\n            {this.state.error && (\n              <Alert variant=\"danger\">{this.state.error.message}</Alert>\n            )}\n            {!this.state.isNewPasswordRequired && !this.state.isPasswordReset && (\n              <Form onSubmit={this.onSubmitLoginForm.bind(this)}>\n                <InputGroup className=\"vertical-input-group\">\n                  <Form.Control\n                    required\n                    type=\"email\"\n                    placeholder=\"Email address\"\n                    value={this.state.email}\n                    onChange={e => this.setState({ email: e.target.value })}\n                  />\n                  <Form.Control\n                    required\n                    name=\"password\"\n                    type=\"password\"\n                    placeholder=\"Password\"\n                    value={this.state.password}\n                    onChange={e => this.setState({ password: e.target.value })}\n                  />\n                </InputGroup>\n                <Button\n                  variant=\"primary\"\n                  className=\"mt-2\"\n                  type=\"submit\"\n                  disabled={!(this.state.email.length > 0 && this.state.password.length > 0)}\n                  block\n                >\n                  ログイン\n                </Button>\n                <div className=\"text-center\">\n                  <Button variant=\"link\"\n                          onClick={this.onClickPasswordReset}>\n                    パスワードを忘れた方こちらへ\n                  </Button>\n                </div>\n              </Form>\n            )}\n            {this.state.isNewPasswordRequired && (\n              <Form onSubmit={this.onSubmitNewPasswordForm.bind(this)}>\n                <InputGroup className=\"vertical-input-group\">\n                  <Form.Control\n                    required\n                    name=\"password\"\n                    type=\"password\"\n                    placeholder=\"新しいパスワード\"\n                    value={this.state.newPassword}\n                    onChange={e => this.setState({ newPassword: e.target.value })}\n                  />\n                  <Form.Control\n                    required\n                    name=\"password\"\n                    type=\"password\"\n                    placeholder=\"新しいパスワード確認\"\n                    value={this.state.newPasswordConfirmation}\n                    onChange={e => this.setState({ newPasswordConfirmation: e.target.value })}\n                  />\n                </InputGroup>\n                <Button\n                  variant=\"primary\"\n                  className=\"mt-2\"\n                  type=\"submit\"\n                  disabled={!(this.state.newPassword.length > 0 && this.state.newPasswordConfirmation.length > 0 && this.state.newPassword === this.state.newPasswordConfirmation)}\n                  block\n                >\n                  パスワード登録\n                </Button>\n              </Form>\n            )}\n            {this.state.isPasswordReset && (\n              <Form onSubmit={this.onSubmitPasswordRequest.bind(this)}>\n                <InputGroup className=\"vertical-input-group\">\n                  <Form.Control\n                    required\n                    name=\"email\"\n                    type=\"email\"\n                    placeholder=\"メールアドレス\"\n                    value={this.state.email}\n                    onChange={e => this.setState({ email: e.target.value })}\n                  />\n                </InputGroup>\n                <Button\n                  variant=\"primary\"\n                  className=\"mt-2\"\n                  type=\"submit\"\n                  disabled={!(this.state.email.length > 0)}\n                  block\n                >\n                  パスワードリセット\n                </Button>\n              </Form>\n            )}\n          </SmallBgLoading>\n        </div>\n        <TermsModal show={this.state.isShownTermsModal}\n                    onClose={() => this.setState({ isShownTermsModal: false })}\n                    onOk={this.onClickTermsApproved.bind(this)} />\n      </Div100vh>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    // error: state.auth.error,\n    // loading: state.auth.loading,\n    // isAuth: authSelectors.isAuth(state)\n  };\n}\n\nexport default connect(mapStateToProps)(LoginPage);\n","export const SET_FULL_LOADING = 'root.SET_FULL_LOADING';\nexport const SET_LANG = 'root.SET_LANG';\nexport const SET_COMIC_LIFE_INTRO = 'root.SET_COMIC_LIFE_INTRO';\nexport const SET_COMIC_LIFE_IDS = 'root.SET_COMIC_LIFE_IDS';\nexport const SET_COMIC_SPIRIT_IDS = 'root.SET_COMIC_SPIRIT_IDS';\n\nexport const SET_NOTIFICATIONS = 'root.SET_NOTIFICATIONS';\nexport const SET_KIBIIN_NOTIFICATIONS = 'root.SET_KIBIIN_NOTIFICATIONS';\nexport const SET_READ_NOTIFICATIONS = 'root.SET_READ_NOTIFICATIONS';\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetNotifications, GetNotification, CreateNotification, UpdateNotification, DeleteNotification } from \"./graphql/notifications\";\n\nexport const fetchNotifications = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetNotifications,\n    {},\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getNotifications;\n};\n\nexport const fetchNotification = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    GetNotification,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getNotification;\n};\n\nexport const createNotification = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateNotification,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createNotification;\n};\n\nexport const updateNotification = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateNotification,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateNotification;\n};\n\nexport const deleteNotification = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    DeleteNotification,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.deleteNotification;\n};\n","export const GetNotifications = `\n  query GetNotifications($first: Int, $after: String) {\n    getNotifications(first: $first, after: $after) {\n      items {\n        id\n        type\n        userId\n        userGroup\n        avatar\n        title\n        description\n        createdAt\n      }\n      nextToken\n    }\n  }\n`;\n\nexport const GetNotification = `\n  query GetNotification($id: ID!) {\n    getNotification(id: $id) {\n        id\n        type\n        userId\n        userGroup\n        avatar\n        title\n        description\n        createdAt\n    }\n  }\n`;\n\nexport const CreateNotification = `\n  mutation CreateNotification($input: NotificationCreateInput!) {\n    createNotification(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const UpdateNotification = `\n  mutation UpdateNotification($input: NotificationUpdateInput!) {\n    updateNotification(input: $input) {\n      id\n    }\n  }\n`;\n\n\nexport const DeleteNotification = `\n  mutation DeleteNotification($id: ID!) {\n    deleteNotification(id: $id) {\n        id\n    }\n  }\n`;\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport {\n  GetAccount,\n  GetAccountSettings,\n  UpdateAccountSettings,\n  GetAccountReadNotifications,\n  UpdateAccountReadNotifications,\n  GetAccountSubtleResults,\n  UpdateAccountSubtleResults\n} from \"./graphql/account\";\n\nexport const fetchAccount = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAccount,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAccount;\n};\n\nexport const fetchAccountSetting = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAccountSettings,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAccountSettings;\n};\n\nexport const updateAccountSettings = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateAccountSettings,\n    input,\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateAccountSettings;\n};\n\nexport const fetchAccountReadNotifications = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAccountReadNotifications,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAccountReadNotifications;\n};\n\nexport const updateAccountReadNotifications = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateAccountReadNotifications,\n    input,\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateAccountReadNotifications;\n};\n\nexport const fetchAccountSubtleResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAccountSubtleResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAccountSubtleResults;\n};\n\nexport const updateAccountSubtleResults = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateAccountSubtleResults,\n    input,\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateAccountSubtleResults;\n};\n","export const GetAccount = `\n    query {\n        getAccount {\n            name\n            email\n            childMaxCount\n            disabled\n            permissions\n            parent {\n                id\n                permissions\n                disabled\n            }\n        }\n    }\n`;\n\nexport const GetAccountSettings = `\n  query {\n    getAccountSettings\n  }\n`;\n\nexport const UpdateAccountSettings = `\n  mutation UpdateAccountSettings($settings: String!) {\n    updateAccountSettings(settings: $settings) \n  }\n`;\n\nexport const GetAccountReadNotifications = `\n    query {\n        getAccountReadNotifications\n    }\n`;\n\nexport const UpdateAccountReadNotifications = `\n    mutation UpdateAccountReadNotifications($readNotifications: String!) {\n        updateAccountReadNotifications(readNotifications: $readNotifications)\n    }\n`;\n\nexport const GetAccountSubtleResults = `\n    query {\n        getAccountSubtleResults\n    }\n`;\n\nexport const UpdateAccountSubtleResults = `\n    mutation UpdateAccountSubtleResults($subtleResults: String!) {\n        updateAccountSubtleResults(subtleResults: $subtleResults)\n    }\n`;\n","import * as types from \"./actionTypes\";\nimport * as notificationsService from '../../services/notifications';\nimport * as accountService from \"../../services/account\";\n\nexport function setFullLoading (loading) {\n  return dispatch => dispatch({ type: types.SET_FULL_LOADING, loading });\n}\n\nexport function setLang (lang) {\n  return dispatch => dispatch({ type: types.SET_LANG, lang });\n}\n\nexport function setComicLifeIntro (intro) {\n  return dispatch => dispatch({ type: types.SET_COMIC_LIFE_INTRO, intro });\n}\n\nexport function setComicLifeIds (ids) {\n  return dispatch => dispatch({ type: types.SET_COMIC_LIFE_IDS, ids });\n}\n\nexport function setComicSpiritIds (ids) {\n  return dispatch => dispatch({ type: types.SET_COMIC_SPIRIT_IDS, ids });\n}\n\nexport function fetchNotifications() {\n  return async (dispatch, getState) => {\n    try {\n\n      let notifications = await notificationsService.fetchNotifications();\n      let notificationsList = notifications.items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      let generalNotifications = notificationsList.filter(item => item.type === 'GENERAL');\n      let kibiinNotifications = notificationsList.filter(item => item.type === 'KIBIIN');\n\n      let accountReadNotifications = await accountService.fetchAccountReadNotifications();\n      accountReadNotifications = accountReadNotifications ? JSON.parse(accountReadNotifications) : [];\n\n      dispatch({ type: types.SET_NOTIFICATIONS, list: generalNotifications });\n      dispatch({ type: types.SET_KIBIIN_NOTIFICATIONS, kibiin: kibiinNotifications });\n      dispatch({ type: types.SET_READ_NOTIFICATIONS, readed: accountReadNotifications });\n    } catch (error) {\n      console.log('error', error);\n    }\n  };\n}\n\nexport function updateReadNotifications(readNotifications) {\n  return async (dispatch, getState) => {\n    try {\n\n      await accountService.updateAccountReadNotifications({\n        readNotifications: JSON.stringify(readNotifications)\n      });\n\n      let notifications = await notificationsService.fetchNotifications();\n      let notificationsList = notifications.items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      let generalNotifications = notificationsList.filter(item => item.type === 'GENERAL');\n      let kibiinNotifications = notificationsList.filter(item => item.type === 'KIBIIN');\n\n      let accountReadNotifications = await accountService.fetchAccountReadNotifications();\n      accountReadNotifications = accountReadNotifications || [];\n\n      dispatch({ type: types.SET_NOTIFICATIONS, list: generalNotifications });\n      dispatch({ type: types.SET_KIBIIN_NOTIFICATIONS, kibiin: kibiinNotifications });\n      dispatch({ type: types.SET_READ_NOTIFICATIONS, readed: accountReadNotifications });\n    } catch (error) {\n      console.log('error', error);\n    }\n  };\n}\n","export const shuffleArr = (arr) => {\n  var j, temp;\n  for (var i = arr.length - 1; i > 0; i--) {\n    j = Math.floor(Math.random() * (i + 1));\n    temp = arr[j];\n    arr[j] = arr[i];\n    arr[i] = temp;\n  }\n  return arr;\n};\n\nexport const isLastItemOfArray = (arr, item) => {\n  const currentQuestionIndex = arr.indexOf(item);\n\n  return currentQuestionIndex + 1 === arr.length;\n}\n\nexport const formatDate = (string) => {\n  return new Intl.DateTimeFormat('ja-JP', {\n    dateStyle: 'long',\n    timeStyle: 'short'\n  }).format(new Date(string));\n};\n\nexport const languages = {\n  // \"jp\": \"日本語org\",\n  \"jp2\": \"日本語\",\n  \"en\": \"English\",\n  \"vn\": \"việt nam\"\n  // \"cn\": \"中文\",\n};\n\n// export const languagesList = [\"jp\", \"en\", \"vn\", \"cn\", \"jp2\"];\nexport const languagesList = [\"jp2\", \"en\", \"vn\"];\n\nexport const mainLanguage = \"jp2\";\n\nexport const prefectureList = [\n  {key: '北海道', label: '北海道'},\n  {key: '青森県', label: '青森県'},\n  {key: '岩手県', label: '岩手県'},\n  {key: '宮城県', label: '宮城県'},\n  {key: '秋田県', label: '秋田県'},\n  {key: '山形県', label: '山形県'},\n  {key: '福島県', label: '福島県'},\n  {key: '茨城県', label: '茨城県'},\n  {key: '栃木県', label: '栃木県'},\n  {key: '群馬県', label: '群馬県'},\n  {key: '埼玉県', label: '埼玉県'},\n  {key: '千葉県', label: '千葉県'},\n  {key: '東京都', label: '東京都'},\n  {key: '神奈川県', label: '神奈川県'},\n  {key: '新潟県', label: '新潟県'},\n  {key: '富山県', label: '富山県'},\n  {key: '石川県', label: '石川県'},\n  {key: '福井県', label: '福井県'},\n  {key: '山梨県', label: '山梨県'},\n  {key: '長野県', label: '長野県'},\n  {key: '岐阜県', label: '岐阜県'},\n  {key: '静岡県', label: '静岡県'},\n  {key: '愛知県', label: '愛知県'},\n  {key: '三重県', label: '三重県'},\n  {key: '滋賀県', label: '滋賀県'},\n  {key: '京都府', label: '京都府'},\n  {key: '大阪府', label: '大阪府'},\n  {key: '兵庫県', label: '兵庫県'},\n  {key: '奈良県', label: '奈良県'},\n  {key: '和歌山県', label: '和歌山県'},\n  {key: '鳥取県', label: '鳥取県'},\n  {key: '島根県', label: '島根県'},\n  {key: '岡山県', label: '岡山県'},\n  {key: '広島県', label: '広島県'},\n  {key: '山口県', label: '山口県'},\n  {key: '徳島県', label: '徳島県'},\n  {key: '香川県', label: '香川県'},\n  {key: '愛媛県', label: '愛媛県'},\n  {key: '高知県', label: '高知県'},\n  {key: '福岡県', label: '福岡県'},\n  {key: '佐賀県', label: '佐賀県'},\n  {key: '長崎県', label: '長崎県'},\n  {key: '熊本県', label: '熊本県'},\n  {key: '大分県', label: '大分県'},\n  {key: '宮崎県', label: '宮崎県'},\n  {key: '鹿児島県', label: '鹿児島県'},\n  {key: '沖縄県', label: '沖縄県'},\n];\n","export const texts = {\n  \"notifications\": { jp: \"お知らせ\", jp2: \"お知らせ\", en: \"Notifications\", vn: 'Thông báo' },\n  \"menu\": { jp: \"メニュー\", jp2: \"メニュー\", en: \"Menu\", vn: 'Danh mục' },\n  \"account-user-sufix\": { jp: \"さん\", jp2: \"さん\", en: \"'s\", vn: '' },\n  \"account\": { jp: \"のアカウント\", jp2: \"のアカウント\", en: \" account\", vn: 'Tài khoản của' },\n  \"home\": { jp: \"ホーム\", jp2: \"ホーム\", en: \"Home\", vn: 'Trang chủ' },\n  \"terms\": { jp: \"利用規約\", jp2: \"利用規約\", en: \"Terms\", vn: 'Điều khoản sử dụng' },\n  \"policy\": { jp: \"プライバシーポリシー\", jp2: \"プライバシーポリシー\", en: \"Private Policy\", vn: 'Chính sách bảo mật' },\n  \"faq\": { jp: \"よくある質問・お問い合わせ\", jp2: \"よくある質問・お問い合わせ\", en: \"FAQ\", vn: '?' },\n  \"logout\": { jp: \"ログアウト\", jp2: \"ログアウト\", en: \"Sign out\", vn: 'Đăng xuất' },\n  \"toMarket\": { jp: \"マーケットへ\", jp2: \"マーケットへ\", en: \"Back to Market\", vn: 'Đi đến chợ' },\n  \"lang\": { jp: \"\", jp2: \"\", en: \"\", vn: '' },\n\n  \"study\": { jp: \"勉強する\", jp2: \"勉強する\", en: \"Study\", vn: 'Học' },\n  \"learnByManga\": { jp: \"まんがで学ぶ\", jp2: \"まんがで学ぶ\", en: \"Learn by Manga\", vn: 'Học qua truyện tranh' },\n  \"abilityTest\": { jp: \"診断する\", jp2: \"診断する\", en: \"Ability test\", vn: 'Kiểm tra khả năng' },\n  \"logResults\": { jp: \"履歴・成績\", jp2: \"履歴・成績\", en: \"Log・Results\", vn: 'Lược sử.Kết quả' },\n  \"movies\": { jp: \"動画で学ぶ\", jp2: \"動画で学ぶ\", en: \"動画で学ぶ\", vn: '動画で学ぶ' },\n  \"askAQuestion\": { jp: \"質問する\", jp2: \"質問する\", en: \"Ask a question\", vn: 'Câu hỏi' },\n  \"continue\": { jp: \"続きから\", jp2: \"続きから\", en: \"Continue\", vn: '?' },\n  \"practice\": { jp: \"練習\", jp2: \"練習\", en: \"Practice\", vn: 'Luyện tập' },\n  \"test\": { jp: \"Test\", jp2: \"Test\", en: \"Test\", vn: 'Kiểm tra' },\n\n  \"answer\": { jp: \"あなたの答えは?\", jp2: \"あなたの答えは?\", en: \"Answer is?\", vn: 'Câu trả lời của bạn là gì' },\n  \"pointOfJapaneseCulturesAndCustoms\": { jp: \"日本の慣習ポイント\", jp2: \"日本の慣習ポイント\", en: \"Point of Japanese cultures and customs\", vn: 'Điểm mấu chốt về phong tục nhật bản' },\n  \"pointOfBehaviorAndReaction\": { jp: \"振る舞い方のポイント\", jp2: \"振る舞い方のポイント\", en: \"Point of behavior and reaction\", vn: 'Điểm mấu chốt về cách ứng xử ' },\n  \"goToTheNextQuestion\": { jp: \"次の練習問題へ\", jp2: \"次の練習問題へ\", en: \"Go to the Next question\", vn: 'Câu hỏi tiếp theo' },\n  \"takeATest\": { jp: \"テストを受ける\", jp2: \"テストを受ける\", en: \"Take a test\", vn: 'Làm bài kiểm tra' },\n  \"nextCourse\": { jp: \"次のコースへ\", jp2: \"次のコースへ\", en: \"Go to the Next course\", vn: 'Khoá học tiếp theo ' },\n  \"notFound\": { jp: \"練習問題は見つかりませんでした\", jp2: \"練習問題は見つかりませんでした\", en: \"Practice questions couldn't be found\", vn: '?' },\n\n  \"wellDone\": { jp: \"よくできました\", jp2: \"よくできました\", en: \"Well Done\", vn: 'Làm tốt lắm' },\n  \"almost\": { jp: \"あと[一歩,いっぽ]\", jp2: \"あと[一歩,いっぽ]\", en: \"Almost\", vn: 'Còn một chút nữa' },\n  \"tryAgain\": { jp: \"もう[一度考,いちどかんが]えてみよう\", jp2: \"もう[一度考,いちどかんが]えてみよう\", en: \"Try Again\", vn: 'Thử lại lần nữa' },\n\n  \"kiiibin\": { jp: \"キービン\", jp2: \"キービン\", en: \"Keyvin\", vn: '?' },\n\n  \"subtle-start-text-1\": { jp: \"あなたの「社会人機微力」を測定します。\", jp2: \"あなたの「社会人機微力」を測定します。\", en: \"Let' s check your \\\"KIBI ability\\\"\", vn: 'Kiểm tra năng lực tác phong người đi làm.' },\n  \"subtle-start-text-2\": { jp: \"問題は全部で@?問。\", jp2: \"問題は全部で@?問。\", en: \"There are @? Questions and\", vn: 'Có @? câu hỏi và thời gian giới hạn là' },\n  \"subtle-start-text-3-1\": { jp: \"制限時間は\", jp2: \"制限時間は\", en: \"your time limit is \", vn: '' },\n  \"subtle-start-text-3-2\": { jp: \"分\", jp2: \"分\", en: \" minutes\", vn: '' },\n  \"subtle-start-text-3-3\": { jp: \"です。\", jp2: \"です。\", en: \".\", vn: 'phút' },\n  \"subtle-start\": { jp: \"はじめる\", jp2: \"はじめる\", en: \"Start\", vn: 'Bắt đầu' },\n  \"subtle-intro-title\": { jp: \"人物相関図\", jp2: \"人物相関図\", en: \"Correlation chart\", vn: 'Sơ đồ các mối quan hệ' },\n  \"subtle-intro-next\": { jp: \"進む\", jp2: \"進む\", en: \"Go on to the next page\", vn: 'Trang tiếp theo' },\n  \"subtle-intro-back\": { jp: \"戻る\", jp2: \"戻る\", en: \"Back\", vn: 'Quay lại' },\n  \"subtle-view-map\": { jp: \"人物相関図を見る\", jp2: \"人物相関図を見る\", en: \"See the correlation chart\", vn: 'Xem biểu đồ mối quan hệ các nhân vật' },\n  \"subtle-title\": { jp: \"どう捉えておくのが良いでしょうか?\", jp2: \"どう捉えておくのが良いでしょうか?\", en: \"How should you understand?\", vn: '?' },\n  \"subtle-question\": { jp: \"問@?\", jp2: \"問@?\", en: \"Question @?\", vn: 'Question  @?' },\n  \"subtle-finish-title\": { jp: \"お疲れさまでした。\", jp2: \"お疲れさまでした。\", en: \"Thank you for your hard work\", vn: 'Bạn đã vất vả rồi !' },\n  \"subtle-finish-back\": { jp: \"問題に戻る\", jp2: \"問題に戻る\", en: \"Go back to the TEST Part\", vn: 'Quay trở lại câu hỏi' },\n  \"subtle-finish-results\": { jp: \"提出して結果を見る\", jp2: \"提出して結果を見る\", en: \"Submit and check your result\", vn: 'Xem kết quả nộp' },\n  \"subtle-results-title-0\": { jp: \"診断結果\", jp2: \"診断結果\", en: \"Result\", vn: 'Kết quả kiểm tra' },\n  \"subtle-results-title-1\": { jp: \"あなたの「社会人機微力」総合得点は\", jp2: \"あなたの「社会人機微力」総合得点は\", en: \"Your KIBI Ability score is\", vn: 'Số điểm của bạn về “Mức độ nhạy cảm đối với xã hội” là ' },\n  \"subtle-results-title-2\": { jp: \"@?点です\", jp2: \"@?点です\", en: \"@? points.\", vn: '@? điểm.' },\n  \"subtle-results-title-3\": { jp: \"あなたの@?は @? 点です。\", jp2: \"あなたの@?は @? 点です。\", en: \"Your '@?' is @? points.\", vn: '@? @?' },\n};\n\nexport const translate = (key, lang, args = []) => {\n  if (typeof key === 'object') {\n    let value = key.hasOwnProperty(lang) ? key[lang] : \"unknown\";\n\n    for (let i = 0; i < args.length; i++) {\n      value = value.replace(\"@?\", args[i]);\n    }\n\n    return value;\n  } else {\n    let value = texts.hasOwnProperty(key) && texts[key].hasOwnProperty(lang) ? texts[key][lang] : \"unknown\";\n\n    for (let i = 0; i < args.length; i++) {\n      value = value.replace(\"@?\", args[i]);\n    }\n\n    return value;\n  }\n\n};\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"react-bootstrap\";\n\nexport class PolicyModal extends Component {\n  render() {\n    return (\n      <Modal show={this.props.show} onHide={this.props.onClose} backdrop=\"static\" scrollable={true}>\n        <Modal.Header>\n          <Modal.Title>プライバシーポリシー</Modal.Title>\n        </Modal.Header>\n\n        <Modal.Body style={{backgroundColor: \"#FAFAFA\", maxHeight: \"calc(100vh - 210px)\", overflowY: 'auto'}} >\n          <p>\n            株式会社KIBI(以下「当社」といいます)は、人財育成、採用支援、定着支援、イーラーニングおよびウェブアプリの提供その他のサービス(以下「本サービス」といいます)をご利用になる方(以下「利用者」といいます)のプライバシーを尊重し、利用者の個人情報(以下の定義に従います)の管理に細心の注意を払い、これを取扱うものとします。<br/>\n            <br/>\n            1 個人情報<br/>\n            個人情報とは、利用者個人に関する情報であって、当該情報を構成する氏名、住所、電話番号、メールアドレス、学校名その他の記述等により当該利用者を識別できるものであり、EEA(European Economic Area,欧州経済領域)の方がご利用になられる場合には、EU General Data Protection Regulation(以下「GDPR」といいます)の適用のあるものをいいます。また、その情報のみでは識別できない場合でも、他の情報と容易に照合することができ、結果的に利用者個人を識別できるものも個人情報に含まれます。<br/>\n            <br/>\n            2 プライバシーポリシーへの同意および同意の撤回<br/>\n            利用者は、プライバシーポリシーに同意いただくものとし、当社は、当社および本サービスに適用のある法令(GDPRが適用される場合には当該法令を含みますがこれに限りません)および/または利用者の同意に基づき個人情報を取扱いますが、利用者は、いつでも、後記の当社の個人情報に関するお問い合わせ先に連絡する方法により、同意を撤回することができます。なお、同意の撤回は、同意の撤回前の個人情報の取扱いの有効性に影響を及ぼしません。<br/>\n            <br/>\n            当社は、当社の本サービスの提供に関して利用者に個人情報の提供を求めることができます。利用者が個人情報の提供を当社にしない場合には、当社は、本サービスの提供を行うことができない場合があります。<br/>\n            <br/>\n            3 個人情報の利用目的<br/>\n            当社は、本サービスの提供にあたり、以下に定める目的の範囲内で個人情報を取得し、適切に利用します。一般的に公開されているホームページなどから間接的に取得する場合も同様です。なお、当社は、利用者の同意に基づかずに、個人データをプロファイリングなどの自動化された判断・処理の目的で利用することはありません。<br/>\n            A.人財育成、採用支援、定着支援、イーラーニングおよびウェブアプリの提供ならびにこれらに関連するサービスの提供<br/>\n            B.ウェブサイトその他各種媒体等に掲載するための情報の加工、統計および分析<br/>\n            C.サービスの開発およびマーケティング<br/>\n            D.当社からの各種連絡・メールマガジン・DM・お知らせ等の配信・送付<br/>\n            E.利用者の承諾・申し込みに基づく、就職・転職に関する当社サービス(当社が他の事業者又は法人から委託を受けて運営するサービス含む)を利用する求人企業・人材紹介エージェント(以下「利用企業等」といいます)による、求人情報を記載したオファー送付<br/>\n            F.就職・転職後の状況確認およびサービス向上を目的としたご意見、ご要望等の聴取<br/>\n            G.サービス提供期間中またはサービス終了後における応募、入社等の事実に関する求人企業への確認および求人企業からの通知の受領<br/>\n            H.求人企業の人材採用計画立案のための助言・提案<br/>\n            I.お問い合わせ、ご相談および苦情への対応ならびに紛争の解決<br/>\n            J.属性情報・端末情報・位置情報・行動履歴等に基づく広告・コンテンツ等の配信・表示、本サービスの提供<br/>\n            <br/>\n            4 個人情報の保有期間<br/>\n            当社は、利用者の個人情報を、本サービスを提供するに際し、上記の個人情報の利用目的を達成するに必要な期間に限り保有することができます。<br/>\n            <br/>\n            5 個人情報提供の任意性<br/>\n            本サービスが提供を求めるすべての項目にお答えいただく必要はありませんが、必要となる情報が不足している場合には、本サービスを提供できない場合があります。<br/>\n            <br/>\n            6 個人情報の第三者への提供<br/>\n            当社は、本サービスを行うため、個人情報の適切な取扱いに関する事項を含む契約を結んだ利用企業等に対し、本人から受領した個人情報を、書面を送付または持参する等の方法により提供することがあります。また、当社は、利用企業等に個人情報を提供した場合には、就職・転職後の状況確認、当該企業の人材採用計画立案のための助言・提案等を行うために、個人情報を利用することがあります。<br/>\n            <br/>\n            個人情報の第三者への提供先には、EEA(European Economic Area,欧州経済領域)域外の国に所在する利用企業等の第三者も含まれます。<br/>\n            <br/>\n            なお、以下の場合は、個人情報を求人企業以外の第三者に提供することがあります。<br/>\n            A.利用者が第三者に不利益を及ぼすと判断した場合<br/>\n            B.公衆衛生の向上または児童の健全な育成の推進のために特に必要がある場合であって、利用者本人の承諾を得ることが困難である場合<br/>\n            C.国の機関若しくは地方公共団体またはその委託を受けた者が法令の定める事務を遂行することに対して協力する必要がある場合で、利用者本人の同意を得ることによりその事務の遂行に支障を及ぼすおそれがある場合<br/>\n            D.裁判所、検察庁、警察またはこれらに準じた権限を有する機関から、個人情報についての開示を求められた場合<br/>\n            E.利用者本人から明示的に第三者への開示または提供を求められた場合<br/>\n            F.法令により開示または提供が許容されている場合<br/>\n            G.合併その他の事由による事業の承継に伴い個人情報を提供する場合であって、承継前の利用目的の範囲で取り扱われる場合<br/>\n            <br/>\n            また、EEA(European Economic Area,欧州経済領域)の利用者は、GDPRの規定に則り個人情報を第三者に提供することがあります。<br/>\n            <br/>\n            7 第三者提供に関する免責事項<br/>\n            以下の場合は、第三者による個人情報の取得に関し、当社は何らの責任を負いません。<br/>\n            A.利用者自らが本サービスの機能または別の手段を用いて利用企業等に個人情報を明らかにする場合(なお、利用企業等における個人情報の取扱いについては、各利用企業に直接お問合せください)<br/>\n            B.本サービスに入力した情報により、期せずして本人が特定できてしまった場合<br/>\n            C.本サービスからリンクされる外部サイトにおいて、利用者より個人情報が提供され、またそれが利用された場合<br/>\n            D.利用者本人以外が利用者個人を識別できる情報(ID・パスワード等)を入手した場合<br/>\n            <br/>\n            8 個人情報処理の外部委託<br/>\n            当社は、個人情報取扱い業務の一部または全部を外部委託することがあります。当該委託先に個人情報の開示を行う場合には、十分な個人情報保護水準を確保していることを条件として委託先を選定し、機密保持契約を結んだ上で開示します。<br/>\n            <br/>\n            9 統計処理されたデータの利用<br/>\n            当社は、提供を受けた個人情報をもとに、個人を特定できないよう加工した統計データを作成することがあります。個人を特定できない統計データについては、当社は何ら制限なく利用することができるものとします。<br/>\n            <br/>\n            10 個人情報の開示、訂正、利用停止等、異議の申し立て<br/>\n            「個人情報の利用目的」の通知、登録した個人情報の開示、訂正、追加または削除、ならびに利用停止・制限、消去、データポタビリティ権の利用者に認められた権利行使の依頼を受けた場合は、原則として利用者本人のご依頼に限り、後記の当社の個人情報に関するお問い合わせ先に連絡する方法により、GDPR等を含めた関連法令および当社の社内規程に従って、速やかに対応します。<br/>\n            <br/>\n            また、EEA(European Economic Area,欧州経済領域)の利用者は、当社の個人情報の取扱いに関して、GDPRの規定に則り個人情報保護監督機関に対して異議を申し立てることができます。<br/>\n            <br/>\n            なお、以下の場合については個人情報の開示等の依頼にお応えできないことがあります。<br/>\n            A.利用者本人または第三者の生命、身体、財産その他の権利・利益を害するおそれがある場合<br/>\n            B.当社の業務に支障を及ぼすおそれがある場合<br/>\n            C.他の法令に違反することとなる場合、また、当該個人情報の変更等に多額の費用を要する場合、その他、個人情報の変更等を行うことが困難な場合であって、利用者の権利・利益を保護するため必要なこれに代わるべき措置をとるときは、個人情報の変更等に応じないことがあります。<br/>\n            <br/>\n            ただし、EEA(European Economic Area,欧州経済領域)の利用者からの個人情報の開示等の依頼についてはGDPRの要請に従い対応するものとします。<br/>\n            <br/>\n            11 適正管理<br/>\n            当社は、利用目的の達成に必要な範囲内において、ご提供いただいた個人情報を正確かつ最新の状態で管理するよう努めるとともに、個人情報への不正なアクセスまたは個人情報の紛失、破壊、改竄、漏洩などの危険に対して、技術面及び組織面において必要な安全対策を継続的に講じるよう努めます。ただし、ご提供いただいた個人情報の内容が正確かつ最新であることについては、利用者が責任を負うものとします。 また、当社は、個人情報の安全管理が図られるよう、従業員に対する必要かつ適切な教育および管理を行います。なお、個人情報はサービスを終了した後も法令等の定めに従い一定期間保管します。保管期間が経過した個人情報は速やかに消去します。<br/>\n            <br/>\n            12 機微な個人情報の取得制限<br/>\n            当社は、次に示す内容を含む個人情報の取得は原則として行いません。ただし、利用者が自ら提供した場合は、この限りではありません。<br/>\n            A.思想、信条及び宗教に関する事項<br/>\n            B.人種、民族、門地、本籍地(所在都道府県に関する情報を除く)、身体・精神障害、犯罪歴、その他社会的差別の原因となる事項<br/>\n            C.勤労者の団結権、団体交渉及びその他団体行動の行為に関する事項<br/>\n            D.集団示威行為への参加、請願権の行使、及びその他政治的権利の行使に関する事項<br/>\n            E.保健医療及び性生活<br/>\n            <br/>\n            13 本人確認について<br/>\n            当社は、個人情報の開示等の求めに応じる場合など、個人を識別できる情報(氏名、住所、電話番号、生年月日、メールアドレス、会員番号、パスワードなど)により、本人であることを確認します。ただし、本人以外が個人を識別できる情報を入手し使用した場合、当社は責任を負いません。<br/>\n            <br/>\n            14 属性情報・端末情報・位置情報・行動履歴等の取得及び利用について<br/>\n            •属性情報・端末情報・位置情報・行動履歴等(以下「行動履歴等」といいます)のうちCookie等について<br/>\n            <br/>\n            当社は、利用者のプライバシーの保護、利便性の向上、広告の配信および統計データの取得のため、Cookieを使用します。また、CookieやJavaScript等の技術を利用して、ご提供いただいた情報のうち、年齢や性別、職業、居住地域など個人が特定できない属性情報(組み合わせることによっても個人が特定できないものに限られます)や端末情報、本サービスサイト内における利用者の行動履歴(アクセスしたURL、コンテンツ、参照順等)およびスマートフォン等利用時の、利用者の承諾・申込みに基づく位置情報を取得することがあります。<br/>\n            <br/>\n            •行動履歴等のうち以下の場合のアクセスログ等について<br/>\n            <br/>\n            当社は利用者がログインして本サービスを利用した場合には、個人を特定したうえで、当該ログイン以前からの行動履歴等を用いて、広告・コンテンツ等の配信・表示および本サービスの提供をする場合があります。こちらの広告等の配信停止については、下記の個人情報管理の問い合わせ先にご連絡ください。<br/>\n            <br/>\n            15 個人情報管理責任者<br/>\n            株式会社KIBI 個人情報保護管理責任者<br/>\n            <br/>\n            16 個人情報に関するお問い合わせ先<br/>\n            <a rel=\"noopener noreferrer\" href=\"http://kibi-global.jp/contact/\" target=\"_blank\">個人情報に関するお問い合わせはこちら</a><br/>\n            <br/>\n            17 プライバシーポリシーの変更<br/>\n            当社は、法令等の定めがある場合を除き、プライバシーポリシーを随時変更することができるものとします。変更後の内容は、当社のウェブページにおいて掲載するものとし、掲載後1か月経過した時点で本サービスを継続して利用している利用者は、変更後の本プライバシーポリシーの内容に同意したものとみなします。<br/>\n            <br/>\n            以上<br/>\n          </p>\n        </Modal.Body>\n\n        <Modal.Footer>\n          <Button variant=\"outline-secondary\" onClick={this.props.onClose}>閉じる</Button>\n        </Modal.Footer>\n      </Modal>\n    );\n  }\n}\n\nPolicyModal.defaultProps = {\n  show: false,\n  onClose: () => {},\n  onOk: () => {}\n};\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Redirect } from \"react-router-dom\";\nimport { Navbar, Nav, NavDropdown, Badge } from \"react-bootstrap\";\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport { Auth } from 'aws-amplify';\nimport * as rootActions from \"../../../store/root/actions\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faUser, faHome, faSignInAlt } from '@fortawesome/free-solid-svg-icons'\nimport { TermsModal } from \"../../../components/modals/TermsModal\";\nimport * as accountService from '../../../services/account';\nimport * as commonService from '../../../services/common';\nimport * as langService from '../../../services/lang';\nimport \"./index.scss\";\nimport {PolicyModal} from \"../../modals/PolicyModal\";\n\nexport class MainHeader extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      user: null,\n      account: null,\n      groups: [],\n      isLogout: false,\n      isShowTermsModal: false,\n      isShowPolicyModal: false,\n      kibinNotification: null,\n    };\n  }\n\n  async componentDidMount() {\n    this._isMounted = true;\n\n    await this.fetchAccount();\n    this.props.dispatch(rootActions.fetchNotifications());\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n  }\n\n\n  fetchAccount = async () => {\n    try {\n      const user = await Auth.currentAuthenticatedUser();\n      const account = await accountService.fetchAccount();\n      let session = await Auth.currentSession();\n      let groups = session.idToken.payload[\"cognito:groups\"];\n\n      if (this._isMounted) {\n        this.setState({ user, account, groups });\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  onHome = () => {};\n  onTerms = () => {\n    this.setState({isShowTermsModal: true});\n  };\n  onPolicy = () => {};\n  onFAQ = () => {};\n\n  async onLogout() {\n\n    try {\n      await Auth.signOut();\n      this.setState({ isLogout: true });\n    } catch (e) {\n      console.error(e);\n    }\n\n  }\n\n  render() {\n    const {notificationsList, notificationsReaded} = this.props;\n    const {user, groups} = this.state;\n\n    if (!user) {\n      return null;\n    }\n\n    let notifications = notificationsList.filter(item => {\n      if (item.userGroup) {\n        return groups.indexOf(item.userGroup.toLowerCase()) !== -1;\n      } else {\n        return user && item.userId === user.getUsername();\n      }\n    });\n\n    let totalUnread = 0;\n    for (let i = 0; i < notifications.length; i++) {\n      if (notificationsReaded.indexOf(notifications[i].id) === -1) {\n        totalUnread += 1;\n      }\n    }\n\n    return (\n      <>\n        <Navbar bg=\"white\" fixed=\"top\" expand=\"lg\">\n          <Navbar.Brand\n            style={{ margin: \"-10px 0\", padding: 0 }}\n            className=\"cursor-hover\"\n          >\n            <LinkContainer to=\"/\">\n              <div>kibi-<span style={{color: \"#0F80B4\"}}>learning</span>.jp</div>\n            </LinkContainer>\n          </Navbar.Brand>\n          <Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n          <Navbar.Collapse id=\"basic-navbar-nav\">\n            {!this.props.isPractice && !this.props.isTest && (\n              <>\n                <Nav className=\"mr-auto\">\n                  <NavDropdown\n                    title={commonService.languages[this.props.currentLang]}\n                    id=\"basic-nav-dropdown\"\n                    className=\"mr-3\"\n                  >\n                    {commonService.languagesList.map(lang => (\n                      <NavDropdown.Item\n                        key={lang}\n                        onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                      >\n                        {commonService.languages[lang]}\n                      </NavDropdown.Item>\n                    ))}\n                  </NavDropdown>\n                </Nav>\n                <Nav>\n                  {/*<Nav.Link href=\"/notifications\" className=\"d-flex align-items-center\">{langService.translate(\"notifications\", this.props.currentLang)} {totalUnread > 0 && <Badge variant=\"danger\" className=\"ml-2\">{totalUnread}</Badge>}</Nav.Link>*/}\n                  <NavDropdown title={langService.translate(\"menu\", this.props.currentLang)} alignRight>\n                    {this.state.account && (\n                      <NavDropdown.Item onClick={() => console.log('account')}><FontAwesomeIcon icon={faUser} /> {this.state.account.name ? `${this.state.account.name}${langService.translate(\"account-user-sufix\", this.props.currentLang)}` : this.state.account.email}{langService.translate(\"account\", this.props.currentLang)}</NavDropdown.Item>\n                    )}\n\n                    <NavDropdown.Divider />\n                    <NavDropdown.Item onClick={() => console.log('home')}><FontAwesomeIcon icon={faHome} /> {langService.translate(\"home\", this.props.currentLang)}</NavDropdown.Item>\n                    <NavDropdown.Divider />\n                    <NavDropdown.Item onClick={() => this.setState({isShowTermsModal: true})}>{langService.translate(\"terms\", this.props.currentLang)}</NavDropdown.Item>\n                    <NavDropdown.Item onClick={() => this.setState({isShowPolicyModal: true})}>{langService.translate(\"policy\", this.props.currentLang)}</NavDropdown.Item>\n\n                    <NavDropdown.Divider />\n                    <NavDropdown.Item onClick={this.onLogout.bind(this)}><FontAwesomeIcon icon={faSignInAlt} /> {langService.translate(\"logout\", this.props.currentLang)}</NavDropdown.Item>\n                  </NavDropdown>\n                </Nav>\n              </>\n            )}\n            {((this.props.isPractice || this.props.isTest)) && (\n              <>\n                <Nav>\n                  <LinkContainer to={`/`} activeClassName=\"\">\n                    <Nav.Link>{langService.translate(\"toMarket\", this.props.currentLang)}</Nav.Link>\n                  </LinkContainer>\n                </Nav>\n                <Nav className=\"ml-auto\">\n                  <NavDropdown\n                    title={commonService.languages[this.props.currentLang]}\n                    id=\"basic-nav-dropdown\"\n                    className=\"mr-3\"\n                  >\n                    {commonService.languagesList.map(lang => (\n                      <NavDropdown.Item\n                        key={lang}\n                        onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                      >\n                        {commonService.languages[lang]}\n                      </NavDropdown.Item>\n                    ))}\n                  </NavDropdown>\n                </Nav>\n              </>\n            )}\n          </Navbar.Collapse>\n        </Navbar>\n        {this.state.isLogout && (<Redirect to=\"/login\"/>)}\n        <TermsModal show={this.state.isShowTermsModal}\n                    isSimple={true}\n                    onClose={() => this.setState({ isShowTermsModal: false })} />\n        <PolicyModal show={this.state.isShowPolicyModal}\n                     onClose={() => this.setState({ isShowPolicyModal: false })} />\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    langs: state.root.langs,\n    currentLang: state.root.currentLang,\n    notificationsObject: state.root.notifications,\n    notificationsList: state.root.notifications.list,\n    notificationsReaded: state.root.notifications.readed,\n  };\n}\n\nexport default connect(mapStateToProps)(MainHeader);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Spinner } from \"react-bootstrap\";\nimport MainHeader from \"../commons/MainHeader/index\";\n\nexport class MarketContainer extends Component {\n\n  render() {\n    return (\n      <>\n        <MainHeader isPractice={this.props.isPractice} isTest={this.props.isTest} />\n        <div\n          style={{ marginTop: \"40px\" }}\n          className={\n            this.props.isLoading\n              ? \"d-flex justify-content-center align-items-center\"\n              : \"\"\n          }\n        >\n          {this.props.isLoading ? (\n            <Spinner\n              animation=\"grow\"\n              variant=\"primary\"\n              size=\"lg\"\n              className=\"ma-auto\"\n            />\n          ) : (\n            <div className=\"py-4 px-3\">{this.props.children}</div>\n          )}\n        </div>\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    // fullLoading: state.root.fullLoading,\n    // courseGroups: state.courses.courseGroups,\n    // progress: state.courses.progress\n  };\n}\n\nexport default connect(mapStateToProps)(MarketContainer);\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport {\n  GetContents,\n  GetContent,\n  GetContentSetting,\n  CreateContent,\n  UpdateContent,\n  DeleteContent,\n  UpdateContentSetting\n} from \"./graphql/contents\";\n\nexport const fetchContents = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetContents,\n    {},\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getContents;\n};\n\nexport const fetchContent = async (id) => {\n  const response = await API.graphql({\n    query: GetContent,\n    variables: {id},\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.getContent;\n};\n\nexport const fetchContentSetting = async (id) => {\n  const response = await API.graphql({\n    query: GetContentSetting,\n    variables: {id},\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.getContentSetting;\n};\n\nexport const createContent = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateContent,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createContent;\n};\n\nexport const updateContent = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateContent,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateContent;\n};\n\nexport const deleteContent = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    DeleteContent,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.deleteContent;\n};\n\nexport const updateContentSetting = async ({id, order}) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateContentSetting,\n    { input: { id, order } },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateContentSetting;\n};\n","export const GetContents = `\n  query GetContents($first: Int, $after: String) {\n    getContents(first: $first, after: $after) {\n      items {\n        id\n        languages\n        title\n        description\n        contentType\n        settings\n        comicIntroductionSvgUrl\n        comicIntroduction\n        comicSituationSvgUrl\n        comicSituation\n        comicPages\n        createdAt\n\n        practiceQuestions {\n          id\n          title\n          svgUrl\n          characters\n          chats\n          answers\n        }\n\n        testQuestions {\n          id\n          title\n          svgUrl\n          characters\n          chats\n          answers\n        }\n      }\n      nextToken\n    }\n  }\n`;\n\nexport const GetContent = `\n  query GetContent($id: ID!) {\n    getContent(id: $id) {\n      id\n      languages\n      title\n      description\n      contentType\n      settings\n      comicIntroductionSvgUrl\n      comicIntroduction\n      comicSituationSvgUrl\n      comicSituation\n      comicPages\n      createdAt\n    }\n  }\n`;\n\nexport const GetContentSetting = `\n  query GetContentSetting($id: ID!) {\n    getContentSetting(id: $id) {\n      id\n      order\n    }\n  }\n`;\n\nexport const CreateContent = `\n  mutation CreateContent($input: ContentCreateInput!) {\n    createContent(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const UpdateContent = `\n  mutation UpdateContent($input: ContentUpdateInput!) {\n    updateContent(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const DeleteContent = `\n  mutation DeleteContent($id: ID!) {\n    deleteContent(id: $id) {\n      id\n    }\n  }\n`;\n\nexport const UpdateContentSetting = `\n  mutation UpdateContentSetting($input: ContentSettingInput!) {\n    updateContentSetting(input: $input) {\n      id\n    }\n  }\n`;\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n  type: \"text/css\"\n}, \"\\n\\t.st0{fill:#FFEB27;}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:1.7008;}\\n\\t.st2{clip-path:url(#SVGID_2_);}\\n\\t.st3{fill:none;stroke:#000000;stroke-width:1.2756;}\\n\\t.st4{clip-path:url(#SVGID_6_);}\\n\\t.st5{fill:none;stroke:#000000;stroke-width:1.7008;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st6{fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M55.87,123.5c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C47.16,120.08,51.06,123.5,55.87,123.5L55.87,123.5z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M55.87,123.5c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C47.16,120.08,51.06,123.5,55.87,123.5L55.87,123.5z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M94.14,123.5c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C85.43,120.08,89.33,123.5,94.14,123.5L94.14,123.5z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M94.14,123.5c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C85.43,120.08,89.33,123.5,94.14,123.5L94.14,123.5z\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_1_\",\n  d: \"M75,125.32c24.13,0,36.5-15.75,36.5-38.85c0-23.1-16.34-41.82-36.5-41.82c-20.16,0-36.5,18.73-36.5,41.82 C38.51,109.57,50.85,125.32,75,125.32L75,125.32z\"\n}));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_3_\",\n  x: 38.51,\n  y: 44.65,\n  width: 72.99,\n  height: 80.67\n}));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M75,125.32c24.13,0,36.5-15.75,36.5-38.85c0-23.1-16.34-41.82-36.5-41.82c-20.16,0-36.5,18.73-36.5,41.82 C38.51,109.57,50.85,125.32,75,125.32L75,125.32z\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M75.5,44.07c-0.35-4.9-6.35-10.47-4.98-20.3\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_5_\",\n  d: \"M70.33,23.41c8.52-4.65,10.94-15.83,2.03-11.5C70.76,7.78,59.62,5.86,70.33,23.41L70.33,23.41z\"\n}));\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_7_\",\n  x: 59.62,\n  y: 5.86,\n  width: 21.64,\n  height: 17.55\n}));\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st5\",\n  d: \"M70.33,23.41c8.52-4.65,10.94-15.83,2.03-11.5C70.76,7.78,59.62,5.86,70.33,23.41L70.33,23.41z\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M71.25,123.05c-0.62,3.01-1.74,6.15-5.85,9c6.38,1.1,12.22-4.74,13.02-8.47\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st6\",\n  d: \"M71.25,123.05c-0.62,3.01-1.74,6.15-5.85,9c6.38,1.1,12.22-4.74,13.02-8.47\"\n});\n\nvar SvgKiiibinBack = function SvgKiiibinBack(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 141.73 141.73\",\n    style: {\n      enableBackground: \"new 0 0 141.73 141.73\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, _ref3, _ref4, _ref5, _ref6, /*#__PURE__*/React.createElement(\"g\", null, _ref7, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_2_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_1_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st2\"\n  }, _ref8, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_4_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_3_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_4_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 140,\n    height: 154,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAN1AAAESAAABcP/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAJ0AjAMBIgACEQEDEQH/ xACkAAEBAQEBAQAAAAAAAAAAAAABAAMCBAYBAQEBAQEBAAAAAAAAAAAAAAECAwAEBRAAAgECBQQC AgMAAAAAAAAAAAECEQQQMxQkRCAwEhMyAzQFISIjEQABAwQCAgIDAAAAAAAAAAAAAaHBQDJCghFy cRJBE1GBAhIAAQIEAwcCBwEAAAAAAAAAAQACMDFyA3GRMxEh0TKiwpNSBFGBEiJishMj/9oADAMB AAIRAxEAAAD7rjjD4Xo9V5XJ9L5nQ9F52u3sJN7AH0GBPei8xk+rrx7VzhvjkzMszqDNhM8HRPB0 Q8nRk87Zaxzltl6pmZZnYGbCZA6BBs3k6MnjXPWOctc/QTJ0zqTOskzwdEvJ0ZvJ1zimmekvWWuW sqIqdbTM6lNZydcwgmSCYUaZ6TzlpnYo8qO09PLqMVEJCCZIJjRplpPOWuVc9cp3Ty6iloMVCRLC ZoJimmWstlrjx0iK8up1FYxPMR0RDDzi2mWsrhvgnTx1m9XLsdRWMTzEdEZsRlVtjtPOHqz9ueNt Y1k6Whm6VdnaSZmsORrR2NtZuO1pZ//aAAgBAgABBQC6v7n6/vX7G7Yr66NbcmtuR3tyO/uh/sbt EP2N043irdRiKIoniOI4kokF/F0tzFCQoniOI0SRBFytxFEUJFBokiSIIufyIkSJQkSJES5/IiRY mVGyTJES6e5iyLEyo2SZJkGXT3UWKQpHkOQ5EmQkXrpdRkKQpHkOQ5EpEH/W7tnK4VpIVrMVtI00 h20h2sx2kiFo1H//2gAIAQMAAQUAh9cXH1wPXA9cT1xPXE9cD1wH9cCHw6kMh8etkPj1sh8R9CEM h8epDIfHrZD49bIfCnUhkJUj5nmjyR5I8keaPMcz/9oACAEBAAEFAPtuF9UtYjWI1iNWjVo1SNUj VI1SNUjVI1aNWjWI1iNYjUL1XeZhQoU6qFChTHi3eYLop00wpg1hxbvNQu6xnFu81C7rGca6zF32 ca6zELvM411md5jOPdZmK7vHuczFYrF4vo49zmYrsvo491md5jOPdZiF3WM411mLvs413mLrqV6m M413moXdYzi3eYsK9tvHi3eYJ4VK41K41K9HFu8zCpUqVKlSpUqVK9HFuPT57U2ptTam2NsbY2xt jbG2NsbU2ptTan+Ho//aAAgBAgIGPwC4xj9jWu2AfSFqdLeC5+kcFz9IXP0hc/SFz9LeC5+lvBPJ fyt2j7W+oD4K7XAuD8O5qu1wH0dwVyqA+juCuVQH0dwVyqA+juCu1QH0dwV2uBco7grtcC5QP2ar jv62G7XSdcAPzC3Xvb+ULVseQLUseQLUseQLUseQLVseQLW9v5Qn/wCvt97NmoPUF//aAAgBAwIG PwAEhSUlJSUlJSQ3IYQBihAGKEAYoQBihAGKEAYoYQBihhAGKG52Sk7JSdkpOyUnZKTslJ2Sk7JD c7Jf/9oACAEBAQY/AE/n155Tkscscsctctctctctctctctctctcscscsc+z1+eOOROsrQ7QJ1laH aBOsrQ7QJ1laHaBOsrQ7CeJWh2E8StDsJ4laHYTxK0OwniVodhPErQ7CeJWh2E6ytDsJ1laHaBOs rQ7QJ1laHaBOsrQ7QJ1laHaBPs9uePj8GTGTGTGTGRkZGRkZGRkxkxkxkxkxl6e375P/2Q==\",\n    transform: \"matrix(0.54 0 0 -0.54 37.3308 126.8639)\"\n  })))), _ref9, _ref10, /*#__PURE__*/React.createElement(\"g\", null, _ref11, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_6_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_5_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st4\"\n  }, _ref12, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_8_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_7_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_8_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 48,\n    height: 36,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAIBAAACXgAAAwz/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACcAMgMBIgACEQEDEQH/ xACaAAADAQEBAAAAAAAAAAAAAAAABAUDBgIBAAIDAQAAAAAAAAAAAAAAAAIEAAMFARAAAQMDBAEF AQAAAAAAAAAAAgABAxEEBRITMwYUITEyFTUWEQABAgIKAQUAAAAAAAAAAAABAgMAEBEhkbHREnKC MzQgMUGBkgQSAAEDBAEEAwAAAAAAAAAAAAEAEQIQITESoUFRMnJxgbH/2gAMAwEAAhEDEQAAAOuy TWU0aWaeAHRpcrfMbIDebzKbaGfsuefG04pbk2DrrgO5cRMFn9NQ5B8DqfAvV//aAAgBAgABBQA5 TY3lkUMhkak5PdQciPY1NsINrUv/2gAIAQMAAQUAC3jeMbeF1cwRBEoWrC/o909YFH5egvLUvkba /9oACAEBAAEFAL3KHa3DZqV2LOTMi7DOy/pJ1i8gd9Gs0VMgBImqxinaj9b4FnXpkQJC9WMUYrrn As9+gJUcCXyYxXXmpCsrYRT3f1UKHGRMhx8bIsfC6xVuEEa//9oACAECAgY/AJB8FeSAJcUl7Gg+ 6HZ3e+V15Q18qf/aAAgBAwIGPwCEjG5iCrwHKMoxY2pD0FJfI/aR0bVrYwr68I7trbtT/9oACAEB AQY/ACylAUAAaST7xxptMcSbTHCm0xwptMLWtARkIFVfqJHSmVM3tQukdKfF7ULpHSnxe1C6RcV+ ppk5QMiyAavmO8x9hjHdYO4Yx22TuGMdtkbhjDgQ6h7MQSUGmiqX/9k=\",\n    transform: \"matrix(0.54 0 0 -0.54 58.1741 24.6032)\"\n  })))), _ref13, _ref14, _ref15);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKiiibinBack, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kiiibin_back.ba9160a7.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n  type: \"text/css\"\n}, \"\\n\\t.st0{fill:#FFEB27;}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:1.7008;}\\n\\t.st2{clip-path:url(#SVGID_2_);}\\n\\t.st3{fill:#FADCE2;}\\n\\t.st4{fill:none;stroke:#000000;stroke-width:1.2756;}\\n\\t.st5{clip-path:url(#SVGID_6_);}\\n\\t.st6{fill:none;stroke:#000000;stroke-width:1.7008;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st7{fill:#898989;}\\n\\t.st8{fill:none;stroke:#000000;stroke-width:1.063;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st9{clip-path:url(#SVGID_10_);}\\n\\t.st10{fill:none;stroke:#898989;stroke-width:1.2756;stroke-linejoin:round;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M46.66,130.66c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68s-10.32,2.1-10.32,4.68 C36.34,128.56,40.96,130.66,46.66,130.66L46.66,130.66z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M46.66,130.66c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68s-10.32,2.1-10.32,4.68 C36.34,128.56,40.96,130.66,46.66,130.66L46.66,130.66z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M89.18,130.66c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68s-10.32,2.1-10.32,4.68 C78.86,128.56,83.48,130.66,89.18,130.66L89.18,130.66z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M89.18,130.66c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68s-10.32,2.1-10.32,4.68 C78.86,128.56,83.48,130.66,89.18,130.66L89.18,130.66z\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_1_\",\n  d: \"M67.92,128.05c20.16,0,36.5-18.73,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82s-36.5,18.72-36.5,41.82 C31.42,109.33,47.76,128.05,67.92,128.05L67.92,128.05z\"\n}));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_3_\",\n  x: 31.42,\n  y: 44.41,\n  width: 72.99,\n  height: 83.65\n}));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M67.92,128.05c20.16,0,36.5-18.73,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82s-36.5,18.72-36.5,41.82 C31.42,109.33,47.76,128.05,67.92,128.05L67.92,128.05z\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M55.67,69.12c1.61-0.14,2.87-0.73,2.82-1.31c-0.05-0.58-1.4-0.94-3.01-0.8c-1.61,0.14-2.87,0.73-2.82,1.31 C52.71,68.9,54.06,69.26,55.67,69.12L55.67,69.12z\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M80.17,69.12c-1.61-0.14-2.87-0.73-2.82-1.31c0.05-0.58,1.4-0.94,3.01-0.8c1.61,0.14,2.87,0.73,2.82,1.31 C83.12,68.9,81.78,69.26,80.17,69.12L80.17,69.12z\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M67.92,84.3c5.46,0,9.89-1.77,9.89-3.96s-4.43-3.96-9.89-3.96c-5.47,0-9.9,1.77-9.9,3.96S62.45,84.3,67.92,84.3 L67.92,84.3z\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st4\",\n  d: \"M67.92,84.3c5.46,0,9.89-1.77,9.89-3.96s-4.43-3.96-9.89-3.96c-5.47,0-9.9,1.77-9.9,3.96S62.45,84.3,67.92,84.3 L67.92,84.3z M61.28,80.33h12.76 M69.28,44.61c0.24-8.66,1.18-14.14,7.56-20.7\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_5_\",\n  d: \"M76.91,23.93c-2.08-9.48,4.58-19.14,7.35-9.08C88.6,13.15,100.81,18.93,76.91,23.93L76.91,23.93z\"\n}));\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_7_\",\n  x: 74.83,\n  y: 4.8,\n  width: 25.98,\n  height: 19.14\n}));\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st6\",\n  d: \"M76.91,23.93c-2.08-9.48,4.58-19.14,7.35-9.08C88.6,13.15,100.81,18.93,76.91,23.93L76.91,23.93z\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"102.16,96.98 118.28,102.34 103.35,84.43 \"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st6\",\n  points: \"102.16,96.98 118.28,102.34 103.35,84.43 \"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"33.65,96.98 17.54,102.34 32.47,84.43 \"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st6\",\n  points: \"33.65,96.98 17.54,102.34 32.47,84.43 \"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st7\",\n  points: \"60.07,117.14 75.59,117.14 75.59,101.62 60.07,101.62 60.07,117.14 \"\n});\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st8\",\n  points: \"60.07,117.14 75.59,117.14 75.59,101.62 60.07,101.62 60.07,117.14 \"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n  id: \"SVGID_9_\",\n  points: \"57.59,115.63 73.11,115.63 75.58,101.62 60.06,101.62 57.59,115.63  \"\n}));\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_11_\",\n  x: 57.59,\n  y: 101.62,\n  width: 17.99,\n  height: 14.01\n}));\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st8\",\n  points: \"57.59,115.63 73.11,115.63 75.58,101.62 60.06,101.62 57.59,115.63 \"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"polygon\", {\n  points: \"66.09,111.54 64.43,108.03 66.97,105.71 65.44,105.71 62.74,108.25 63.18,105.71 61.93,105.71 60.91,111.54  62.16,111.54 62.47,109.79 63.45,108.89 64.63,111.54 66.09,111.54 \"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M67.72,107.35c0.17-1,1.02-1.64,2.27-1.64h2.57l-1.03,5.83h-2.68c-1.14,0-1.86-0.59-1.67-1.68c0.14-0.78,0.7-1.15,1.11-1.31 C68,108.41,67.61,108,67.72,107.35L67.72,107.35z M68.96,107.4c-0.07,0.4,0.18,0.67,0.71,0.67h1.23l0.24-1.34h-1.22 C69.38,106.73,69.03,107,68.96,107.4L68.96,107.4z M68.45,109.8c-0.07,0.39,0.14,0.72,0.71,0.72h1.31l0.25-1.43h-1.31 C68.85,109.09,68.52,109.41,68.45,109.8L68.45,109.8z\"\n});\n\nvar _ref28 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st10\",\n  d: \"M61.82,101.05h3.4 M70.04,101.05h3.97\"\n});\n\nvar SvgKiiibinRelux = function SvgKiiibinRelux(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 141.73 141.73\",\n    style: {\n      enableBackground: \"new 0 0 141.73 141.73\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, _ref3, _ref4, _ref5, _ref6, /*#__PURE__*/React.createElement(\"g\", null, _ref7, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_2_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_1_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st2\"\n  }, _ref8, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_4_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_3_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_4_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 140,\n    height: 159,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAOIAAAEaAAABcD/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAKEAjAMBIgACEQEDEQH/ xACdAAEBAQEBAQAAAAAAAAAAAAABAAMCBAYBAAMBAQEAAAAAAAAAAAAAAAABAgMEBhAAAgECBQQC AgMAAAAAAAAAAAECAwQQETMURCAwEhMhMjEkQCI0EQABAgcAAwEBAAAAAAAAAAAAQIEBEUGRsTKC IQISIhMSAAEDAwMDAwUBAAAAAAAAAAEAAgMwMXGRcjMhksIRwbIiUmIjY3P/2gAMAwEAAhEDEQAA APt87HzvTtYuT2snRa2TZpZzWllJ6WVBpZGT218m9ox2ylzMuZ1QzaJmB0IDoh8nRi+d8N0WWuXR KynNaqZtE1HM0nMkMExfO2W0llrlullEzsprRUzXMiYdGT5ExZrlqnZ6Z6SojU62mZ1VNa5Ouc2C ZMExrnXPWQz0ztKI3rl2np5dV1FauUhgmLBMaNcdZLPTKjp5UdPLsunl0TFSqJcRk7lMma5ayGem QdPKn08uyXltMTSRLqIcRkzbDaQy1xR08qfTy6peW0xMSJEiHEZO2w3kMfTlvOb3Y1y9Wq5eq1zd TOTuRwd0PM0snnvxrS9VXqOWqCqCqCqCqCqCqCqD/9oACAECAAEFALu7uI3Cu7piubkVzcG4uB3N wO5uR3l0iF3cON2s7qMRRFE8RxHElEpr+tyv2YoSFE8RxGiSIL4uV+xFEUJGQ0SRJEF8XH+iJESM hokSIfi4/wBESJFmZJkiRD8XD/YiyLEzMbJMkyD+Ll/sxYmKR5DkNkmQfxdvK6jIUhSPIchyJSKb +LuhWlcKhXQqVYVKseqsOlWJUq46FdlO3rePZ//aAAgBAwABBQCEIuPhE8InjE8YnjE8InhEcI5w +vUhkPr1sj9etkfqPpQyP1H0IQyP162Q+vWyH16kMhJePlEziZxM4mcTyieURyjn2f/aAAgBAQAB BQCvXnTnu6pu6pu6puqpuqpuapuahuahuahuapuapuqpuqpu6pu6pu6p75+i71cMsMjLpyMsMseJ d6ouxljlg1hxLvVXfZxLrVF3WM4t1qrvs4tzqoXeZxbnVF3WM41zqYrtsZxrnUxXU8X0ca51MV1P F9HGudTFdtjONc6veYzjXOqhd5nFutVd9nFutVC7rGcW71ULvM4l3q4Z9x4cS71cMzMz688M8eJc Uqk6m3rG3rHorHorHoqnpqnpqnpqnpqnpqnoqnoqnorG3rG3rG3rHqqbf+F//9oACAECAgY/AJGt ke0NeQACuV+q5X6rkfquR+q5X6rlfquV+qkJlf0YCOv5NCl3mhKP5j5tUu80JP8APyapd5oSbPJq k3mhJs8mqTeaEmzyCl3mhJs8mqXeaEmzyapd5oSn+Y+bVKWxyEF59CGn0XFL2FcUnYVxydpXHJ2l ccnaVxSdhXFL2FS/qk6sHp9J+5tL/9oACAEDAgY/AASBZWCsFYKwVgrBWCHQXQxQGfZDFAZQxQGU MUBlDFAZQxQGUMUBlDFAZ9kOosrjVXGquFcK4VxqrjVDqL0v/9oACAEBAQY/APn1lKU/JSxSxSxS xSxSxQpYoUKWKWKWKWKWKWP6ePqchoIehoIehoIehoIehoIehoIehkLjIXGghcaCFxkLjIXGghca CHoaCHoaCHoaCHoaCHon6wnCRrg1wa4NcGpqampqampqa4NcGuDXB8S/U5yR/wD/2Q==\",\n    transform: \"matrix(0.54 0 0 -0.54 30.2425 129.2273)\"\n  })))), _ref9, _ref10, _ref11, _ref12, _ref13, /*#__PURE__*/React.createElement(\"g\", null, _ref14, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_6_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_5_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st5\"\n  }, _ref15, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_8_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_7_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_8_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 56,\n    height: 40,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAIQAAACZwAAAx//2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACoAOQMBIgACEQEDEQH/ xACeAAACAwEBAAAAAAAAAAAAAAAFBgADBAECAQADAQEBAAAAAAAAAAAAAAACAwQBAAUQAAEDAQcC BwAAAAAAAAAAAAEAAgMEESExEzQFBhIUEDBBIjNEFhEAAgADBwUBAAAAAAAAAAAAAQIAA3MQIBGR wbLSMCFBEjJREgABAwIEBgMAAAAAAAAAAAABAAISETEh4TKSEEFRcYLSkcHC/9oADAMBAAIRAxEA AABszVj4/SL1ZaBLbwXzGsZZbZGzLo4iLVRs8d6PZPFtQvKsi2yPkXRTvMJQtaoOJ1DxMatskjpv /9oACAECAAEFAJJHh5les2RdbsmX5PRfXlDesBiIYvbkf//aAAgBAwABBQCKCMwtgit7aFZMfdU/ wYEYfcpzJkkyWtMtlr+7/9oACAEBAAEFAN03SeinbvlWUd5qgHb9WBfoq1foq1bVutRW1C5Fq4ys WyBOxXHdauR6qMphukCeL1x3WrkeqjKjKeFIPDjutXI9U03xlOvEgRXHdb5P/9oACAECAgY/AHAE 0WorUVKuMrp3fj5J1S6/TNXdtzV3bc1c0l0zX//aAAgBAwIGPwBji0EkXWLAtDVCIjCtEztx8Eyj WEU5uI/K0s3H1Wlm8+q0tlC0sPmn0v/aAAgBAQEGPwBJcpUKsvsfYEnHEjwRHdJeTcoxCy8jyjsk vJuUfErJuUfErJuUNKmqiqqFgVBBxBUeWP7ZKp6m89I7lslU9Teekdy2SqepvPSO5bJVPU3npHcv S//Z\",\n    transform: \"matrix(0.54 0 0 -0.54 73.2196 25.4534)\"\n  })))), _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, _ref22, /*#__PURE__*/React.createElement(\"g\", null, _ref23, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_10_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_9_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st9\"\n  }, _ref24, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_12_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_11_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_12_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 40,\n    height: 30,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAHRAAACDQAAApT/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAB8AKQMBIgACEQEDEQH/ xACOAAADAQEBAAAAAAAAAAAAAAACAwQBAAYBAAMBAQAAAAAAAAAAAAAAAAECAwUEEAACAwACAwEA AAAAAAAAAAACAwABBBESEzMUFREAAQMDAgcBAAAAAAAAAAAAAQARAhAhMXGhQYHBEjJCkjMSAAEE AQIHAQAAAAAAAAAAAAEAEQISAyETYXGBkTJicjP/2gAMAwEAAhEDEQAAAPdqwcqw5qc+tVcF/QkS KUIWcLrALUPqv//aAAgBAgABBQB2grc5upd+d35+vNpvSCXGPxn8n//aAAgBAwABBQARrqNBc6j5 QMelkNX3rv8A/9oACAEBAAEFAGMsSNrql6n1PrfMz2sZNZcMA6umLl1xMXum32CXEBnMYuZK4dNa +5+C4KSqCBVSgGmT/9oACAECAgY/AMmK8oVOjFl+uVvoq+5O+81rF25rJOGOcomWhAVcuKY4stlt d23Rf//aAAgBAwIGPwAFnXiOyZg1UASE4IVvVf/aAAgBAQEGPwAAcQrHZZ2C8tgu2RcM+KR06pin FORpHTrRjhOMLkaA90Y29iy/SH0vOH0ryiRqnEgbYBp//9k=\",\n    transform: \"matrix(0.54 0 0 -0.54 56.3914 117.1013)\"\n  })))), _ref25, _ref26, _ref27, _ref28);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKiiibinRelux, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kiiibin_relux.3a70257c.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n  type: \"text/css\"\n}, \"\\n\\t.st0{fill:#FFEB27;}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:1.7008;}\\n\\t.st2{clip-path:url(#SVGID_2_);}\\n\\t.st3{fill:none;stroke:#000000;stroke-width:1.2756;}\\n\\t.st4{clip-path:url(#SVGID_6_);}\\n\\t.st5{fill:none;stroke:#000000;stroke-width:1.7008;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st6{fill:#FADCE2;}\\n\\t.st7{clip-path:url(#SVGID_10_);}\\n\\t.st8{fill:none;stroke:#000000;stroke-width:1.063;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st9{fill:none;stroke:#898989;stroke-width:1.2756;stroke-linejoin:round;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M50.34,118.42c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C40.02,116.33,44.64,118.42,50.34,118.42L50.34,118.42z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M50.34,118.42c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C40.02,116.33,44.64,118.42,50.34,118.42L50.34,118.42z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M92.86,118.42c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C82.54,116.33,87.16,118.42,92.86,118.42L92.86,118.42z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M92.86,118.42c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C82.54,116.33,87.16,118.42,92.86,118.42L92.86,118.42z\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_1_\",\n  d: \"M71.6,115.82c20.16,0,36.5-18.72,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82S35.1,50.9,35.1,74 C35.1,97.09,51.44,115.82,71.6,115.82L71.6,115.82z\"\n}));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_3_\",\n  x: 35.1,\n  y: 32.17,\n  width: 72.99,\n  height: 83.65\n}));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M71.6,115.82c20.16,0,36.5-18.72,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82S35.1,50.9,35.1,74 C35.1,97.09,51.44,115.82,71.6,115.82L71.6,115.82z\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M71.11,32.79c0.23-7.27-17.73-9.2-18.8,10.85\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_5_\",\n  d: \"M52.2,43.69c1.91,9.52-4.91,19.05-7.5,8.95C40.32,54.27,28.21,48.28,52.2,43.69L52.2,43.69z\"\n}));\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_7_\",\n  x: 28.21,\n  y: 43.69,\n  width: 25.9,\n  height: 19.05\n}));\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st5\",\n  d: \"M52.2,43.69c1.91,9.52-4.91,19.05-7.5,8.95C40.32,54.27,28.21,48.28,52.2,43.69L52.2,43.69z\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"105.84,84.74 115.07,94.73 107.16,70.26  \"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st5\",\n  points: \"105.84,84.74 115.07,94.73 107.16,70.26  \"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"37.19,84.74 27.97,94.73 35.87,70.26  \"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st5\",\n  points: \"37.19,84.74 27.97,94.73 35.87,70.26  \"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M59.3,63.98c1.61-0.08,2.9-0.58,2.87-1.11c-0.03-0.53-1.36-0.89-2.97-0.8c-1.61,0.08-2.9,0.58-2.87,1.11 C56.36,63.71,57.69,64.07,59.3,63.98L59.3,63.98z\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M83.89,63.98c1.61,0.09,2.94-0.27,2.97-0.8c0.03-0.53-1.26-1.03-2.87-1.11c-1.61-0.09-2.95,0.27-2.97,0.8 C80.99,63.4,82.27,63.9,83.89,63.98L83.89,63.98z\"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st6\",\n  d: \"M71.6,77.52c5.47,0,9.9-1.78,9.9-3.96s-4.43-3.96-9.9-3.96c-5.47,0-9.9,1.77-9.9,3.96S66.13,77.52,71.6,77.52 L71.6,77.52z\"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M71.6,77.52c5.47,0,9.9-1.78,9.9-3.96s-4.43-3.96-9.9-3.96c-5.47,0-9.9,1.77-9.9,3.96S66.13,77.52,71.6,77.52 L71.6,77.52z M64.96,73.55h12.76\"\n});\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n  id: \"SVGID_9_\",\n  points: \"63.84,106.18 79.35,106.18 79.35,90.66 63.84,90.66 63.84,106.18  \"\n}));\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_11_\",\n  x: 63.84,\n  y: 90.66,\n  width: 15.52,\n  height: 15.52\n}));\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st8\",\n  points: \"63.84,106.18 79.35,106.18 79.35,90.66 63.84,90.66 63.84,106.18  \"\n});\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"polygon\", {\n  points: \"71.61,101.63 69.33,97.76 71.46,95.22 69.94,95.22 67.68,98.01 67.68,95.22 66.43,95.22 66.43,101.63  67.68,101.63 67.68,99.7 68.51,98.71 70.15,101.63 71.61,101.63  \"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M72.5,97.02c0-1.1,0.73-1.8,1.98-1.8h2.57v6.41h-2.68c-1.14,0-1.96-0.65-1.96-1.84c0-0.86,0.5-1.26,0.88-1.44 C72.97,98.19,72.5,97.73,72.5,97.02L72.5,97.02z M73.76,97.07c0,0.44,0.3,0.74,0.83,0.74h1.23v-1.48h-1.23 C74.05,96.33,73.76,96.63,73.76,97.07L73.76,97.07z M73.66,99.72c0,0.43,0.27,0.79,0.84,0.79h1.31v-1.58H74.5 C73.93,98.93,73.66,99.29,73.66,99.72L73.66,99.72z\"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st9\",\n  d: \"M65.49,90.09h3.4 M73.72,90.09h3.97\"\n});\n\nvar SvgKiiibinSad = function SvgKiiibinSad(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 141.73 141.73\",\n    style: {\n      enableBackground: \"new 0 0 141.73 141.73\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, /*#__PURE__*/React.createElement(\"g\", null, _ref3, _ref4, _ref5, _ref6, /*#__PURE__*/React.createElement(\"g\", null, _ref7, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_2_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_1_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st2\"\n  }, _ref8, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_4_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_3_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_4_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 140,\n    height: 159,\n    xlinkHref: \"data:image/jpeg;base64,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 iYmJiYmJjIxkYyMZGy3m355c7hWP/9k=\",\n    transform: \"matrix(0.54 0 0 -0.54 33.6219 117.3546)\"\n  })))), _ref9, _ref10, /*#__PURE__*/React.createElement(\"g\", null, _ref11, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_6_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_5_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st4\"\n  }, _ref12, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_8_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_7_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_8_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 56,\n    height: 39,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAITAAACdgAAAzf/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACkAOQMBIgACEQEDEQH/ xAChAAADAQEBAAAAAAAAAAAAAAAEBQYDAAIBAAMBAQEAAAAAAAAAAAAAAAECBAMABRAAAQQBAgQH AQAAAAAAAAAAAQACAwQFEwYhMhQ0MBESIjNEFSMRAAIAAwYFBQAAAAAAAAAAAAECABEDECAhMcGS cRKycwQwQVGRMxIAAAUBBwMFAAAAAAAAAAAAAAERAhIyECExgZGhQkFRA/BxcsIT/9oADAMBAAIR AxEAAACnB9q4vWbaqSRxOWAwajZpHe8c2qaqp7tCRCFbQYscq2dpXVEiJdXcmsjtUcrzudNxzVNe 7af/2gAIAQIAAQUAkkeHiR6Mj16naEvyBFfXk0/WNJHSXs0P/9oACAEDAAEFAIIYnROgjCZDEVps 6yt8LwmFfeg19J3UIa/n/Tqv/9oACAEBAAEFAMvk7VOyM9kEzNXShlrhD8zeCOdyAOGvWLjVuLvV GUw8JAnjjtvkW4u9UZUZTwpAtt8i3F3qaeMZR4tkC23yLOUrVi3+XkF+XkEzHXghQueT8ddKwdae u3wf/9oACAECAgY/AHETjxFRio9RJTXvmHe9vruHLNV6IOew57DlHfEf/9oACAEDAgY/AGGbGmZl igoboKG6CESitPSkM+Nuf1DIl4opcqqLy8Orhd+e44TzjSP/2gAIAQEBBj8AWlRKhSgYzE8SWGkZ rtjErtjNfqMCu2M12xVNcglCoEhLOdidodTXvI4rrYnaHU17yOK62J2h1Ne8jiutiPRpM6imASPn maPwaPwaMaLRI0mjCi0VhWQpzFZT95T9L//Z\",\n    transform: \"matrix(0.54 0 0 -0.54 27.1062 64.0988)\"\n  })))), _ref13, _ref14, _ref15, _ref16, _ref17, _ref18, _ref19, _ref20, _ref21, /*#__PURE__*/React.createElement(\"g\", null, _ref22, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_10_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_9_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st7\"\n  }, _ref23, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_12_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_11_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_12_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 36,\n    height: 33,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAHsAAACKQAAArP/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACMAJQMBIgACEQEDEQH/ xACjAAEBAQADAQAAAAAAAAAAAAAAAwIBBAUGAQACAwEAAAAAAAAAAAAAAAADBQACBAEQAAIBAwIH AQAAAAAAAAAAAAECABEDBBITEDEiIzMUREIRAAADBQYHAQAAAAAAAAAAAAABERAxgaESscEyQnKi QXFSYsJDgxMSAAEBBAUNAQAAAAAAAAAAAAABETECgoESMgNDEPBRYXHRQnKSM4M0RIT/2gAMAwEA AhEDEQAAAPvYsri8IzWF9Ng6BDGoJT9qGql5Vo1DGJntqpeXG0f/2gAIAQIAAQUAv37pd87MU7jz JulMtlW+uiXvJa5z/9oACAEDAAEFAFUUFu2ZQRBVASprF5Hh/9oACAEBAAEFAHuFS2Uyz3jPeM3O zkNpukBw6U4fLmGl1HpCA4dKT5c3yg0iPSEBxTsZOnc6INETTPz/AP/aAAgBAgIGPwCOG7jqrArG MQYt4vTDuH/PXm0l7zjUtH5qpF6D8W3MfF4zhs50H//aAAgBAwIGPwBFVHjiZgmw1E4ncocYlOT/ 2gAIAQEBBj8AQiXiMExgmMEx+iZakgoLleYUnt+fiC0labFJ7PncC0labVJ4TsSQJaHZqlefSPVv Hr3DLCoQgP/Z\",\n    transform: \"matrix(0.54 0 0 -0.54 62.2419 107.6075)\"\n  })))), _ref24, _ref25, _ref26, _ref27));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKiiibinSad, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kiiibin_sad.cfefd4fa.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n  type: \"text/css\"\n}, \"\\n\\t.st0{clip-path:url(#SVGID_2_);}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:1.7008;}\\n\\t.st2{fill:#FADCE2;}\\n\\t.st3{fill:none;stroke:#000000;stroke-width:1.2756;}\\n\\t.st4{clip-path:url(#SVGID_6_);}\\n\\t.st5{fill:none;stroke:#000000;stroke-width:1.7008;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st6{fill:#FFEB27;}\\n\\t.st7{clip-path:url(#SVGID_10_);}\\n\\t.st8{fill:none;stroke:#000000;stroke-width:1.063;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st9{fill:none;stroke:#898989;stroke-width:1.2756;stroke-linejoin:round;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_1_\",\n  d: \"M66.64,128.07c24.13,0,36.5-15.75,36.5-38.85c0-23.1-16.34-41.82-36.5-41.82s-36.5,18.72-36.5,41.82 C30.14,112.32,42.48,128.07,66.64,128.07L66.64,128.07z\"\n}));\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_3_\",\n  x: 30.14,\n  y: 47.4,\n  width: 72.99,\n  height: 80.67\n}));\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M66.64,128.07c24.13,0,36.5-15.75,36.5-38.85c0-23.1-16.34-41.82-36.5-41.82s-36.5,18.72-36.5,41.82 C30.14,112.32,42.48,128.07,66.64,128.07L66.64,128.07z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M54.3,77.23c1.62,0,2.93-0.89,2.93-1.99c0-1.1-1.31-1.99-2.93-1.99c-1.61,0-2.92,0.89-2.92,1.99 C51.37,76.33,52.68,77.23,54.3,77.23L54.3,77.23z\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M78.98,77.23c1.62,0,2.93-0.89,2.93-1.99c0-1.1-1.31-1.99-2.93-1.99c-1.61,0-2.92,0.89-2.92,1.99 C76.06,76.33,77.37,77.23,78.98,77.23L78.98,77.23z\"\n});\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st2\",\n  d: \"M66.64,91.47c5.47,0,9.89-1.77,9.89-3.96s-4.43-3.96-9.89-3.96c-5.47,0-9.9,1.77-9.9,3.96 S61.18,91.47,66.64,91.47L66.64,91.47z\"\n});\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M66.64,91.47c5.47,0,9.89-1.77,9.89-3.96s-4.43-3.96-9.89-3.96c-5.47,0-9.9,1.77-9.9,3.96 S61.18,91.47,66.64,91.47L66.64,91.47z M60.01,87.51h12.76 M68.61,47.17c-0.35-4.9,10.92-17.42,13.05-26.28\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_5_\",\n  d: \"M81.56,21.53c-7.03-6.7-6.9-18.42,1.01-11.64C85.23,6.06,98.58,4.02,81.56,21.53L81.56,21.53z\"\n}));\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_7_\",\n  x: 74.53,\n  y: 3.11,\n  width: 24.05,\n  height: 18.42\n}));\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st5\",\n  d: \"M81.56,21.53c-7.03-6.7-6.9-18.42,1.01-11.64C85.23,6.06,98.58,4.02,81.56,21.53L81.56,21.53z\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st6\",\n  points: \"98.49,103.98 86.58,111.11 97.31,91.44 \"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st5\",\n  points: \"98.49,103.98 86.58,111.11 97.31,91.44 \"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st6\",\n  points: \"35.08,103.98 46.99,111.11 36.26,91.44 \"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st5\",\n  points: \"35.08,103.98 46.99,111.11 36.26,91.44 \"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n  id: \"SVGID_9_\",\n  points: \"58.88,120.14 74.4,120.14 74.4,104.62 58.88,104.62 58.88,120.14  \"\n}));\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_11_\",\n  x: 58.88,\n  y: 104.62,\n  width: 15.52,\n  height: 15.52\n}));\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st8\",\n  points: \"58.88,120.14 74.4,120.14 74.4,104.62 58.88,104.62 58.88,120.14 \"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"polygon\", {\n  points: \"66.66,115.58 64.38,111.72 66.51,109.17 64.98,109.17 62.72,111.96 62.72,109.17 61.48,109.17 61.48,115.58  62.72,115.58 62.72,113.65 63.55,112.66 65.2,115.58 66.66,115.58 \"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M67.55,110.97c0-1.1,0.73-1.8,1.98-1.8h2.57v6.41h-2.68c-1.14,0-1.96-0.65-1.96-1.85c0-0.86,0.5-1.26,0.88-1.44 C68.02,112.14,67.55,111.68,67.55,110.97L67.55,110.97z M68.8,111.03c0,0.44,0.3,0.74,0.83,0.74h1.23v-1.48h-1.23 C69.1,110.29,68.8,110.58,68.8,111.03L68.8,111.03z M68.71,113.67c0,0.43,0.27,0.79,0.84,0.79h1.31v-1.58h-1.31 C68.98,112.89,68.71,113.24,68.71,113.67L68.71,113.67z\"\n});\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st9\",\n  d: \"M60.54,104.04h3.4 M68.77,104.04h3.97\"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st6\",\n  d: \"M47.51,130.68c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C38.8,127.25,42.7,130.68,47.51,130.68L47.51,130.68z\"\n});\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M47.51,130.68c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C38.8,127.25,42.7,130.68,47.51,130.68L47.51,130.68z\"\n});\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st6\",\n  d: \"M85.78,130.68c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C77.06,127.25,80.97,130.68,85.78,130.68L85.78,130.68z\"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M85.78,130.68c4.81,0,8.72-3.43,8.72-7.65c0-4.23-3.9-7.66-8.72-7.66c-4.81,0-8.72,3.43-8.72,7.66 C77.06,127.25,80.97,130.68,85.78,130.68L85.78,130.68z\"\n});\n\nvar SvgKiiibinSit = function SvgKiiibinSit(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 141.73 141.73\",\n    style: {\n      enableBackground: \"new 0 0 141.73 141.73\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, /*#__PURE__*/React.createElement(\"g\", null, _ref3, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_2_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_1_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st0\"\n  }, _ref4, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_4_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_3_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_4_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 140,\n    height: 154,\n    xlinkHref: \"data:image/jpeg;base64,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 LMyzMszLMyzMszLMyzMnp4+OauPr58n/2Q==\",\n    transform: \"matrix(0.54 0 0 -0.54 28.6962 129.6505)\"\n  })))), _ref5, _ref6, _ref7, _ref8, _ref9, /*#__PURE__*/React.createElement(\"g\", null, _ref10, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_6_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_5_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st4\"\n  }, _ref11, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_8_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_7_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    transform: \"matrix(1 0 0 1 0 1.907349e-06)\",\n    style: {\n      clipPath: \"url(#SVGID_8_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 52,\n    height: 38,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAIFAAACXQAAAwT/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACcANgMBIgACEQEDEQH/ xAChAAACAgMAAAAAAAAAAAAAAAAAAwEFAgQGAQADAQEAAAAAAAAAAAAAAAACAwUEARAAAQMDAgUF AAAAAAAAAAAAAQACAxEEBSETEDNEFQYxEiMUJBEAAAQBCwMFAAAAAAAAAAAAAAECAxEgITGxEnKS wjODk0FR0YGRMkITEgABAgQEBwEAAAAAAAAAAAAAAQIREjKCEDGRoSFBcYGxQhND/9oADAMBAAIR AxEAAADqq91VjqWuehI92VaShZ2hgbpNPW2dfjptWxAGnGYF3YgUYlfpgjVKABiwOM6gDXM//9oA CAECAAEFAJXvEm4+m69VUvMPF+17zsr4Fov/2gAIAQMAAQUAt4ozCYY6tt4qUCtz8DRUjhFv7Tfs r9a1X//aAAgBAQABBQDMZG5s5W53IEszF8UcteAPzd6F37ILcd9byTnxhRhPKkPDovI+fGE0UEhT zqui8hFbiMJ2gkKPquizVuZpmWRCfZvKfYvK7e9dvevb+T//2gAIAQICBj8AciOVCpSpdS0djaLG aJ7nudj/2gAIAQMCBj8Aa5zGqqpmqFDdChuhfAZ0XzjeNlkl5RzOHzPy3Ltz/9oACAEBAQY/AG0s mREpJmcSj1FKcInNOEUp9hMacIpThH6/axa9YRDN065W1lDN065W1lDN065W1lDRk42iCTKC1kk6 ekRqs8iRqs8iRrMcqRrscqfI12OVPkWYlpwjGb49x//Z\",\n    transform: \"matrix(0.54 0 0 -0.54 73.3022 23.062)\"\n  })))), _ref12, _ref13, _ref14, _ref15, _ref16, /*#__PURE__*/React.createElement(\"g\", null, _ref17, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_10_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_9_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st7\"\n  }, _ref18, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_12_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_11_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_12_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 36,\n    height: 33,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAHtAAACKQAAArP/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACMAJQMBIgACEQEDEQH/ xACjAAADAAMBAAAAAAAAAAAAAAAAAgMBBAUGAQACAwEAAAAAAAAAAAAAAAADBQACBAEQAAIBAwME AwAAAAAAAAAAAAECABEDBBASEyMzFEQxIkIRAAADBQYHAQAAAAAAAAAAAAABERAxgaESscEyQnKi QXFSYsJDgxMSAAEBBAUNAQAAAAAAAAAAAAABETECgoESMgNDEPBRYXHRQnKSM4M0RIT/2gAMAwEA AhEDEQAAAPeSFXFwQRYbpiDrPBGgmPta71Jyow1DGIZ7NYLywG0f/9oACAECAAEFAL9+6WfOzFPI 8yLpTLZVvrtMvdy1p//aAAgBAwABBQBVWgt2zKCIKoCVNYvwdP/aAAgBAQABBQB7hUtlMJ5xnnGc nRvttusocOlNPVzDS6j0jKHDpSerm90GkR6RlDinQydvJ9INkTbPx//aAAgBAgIGPwCOG7jqrArG MQYt4vTDuH/PXm0l7zjUtH5qpF6D8W3MfF4zhs50H//aAAgBAwIGPwBFVHjiZgmw1E4ncocYlOT/ 2gAIAQEBBj8AQiXiMExgmMEx+iZakgoLleYUnt+fiC0labFJ7PncC0labVJ4TsSQJaHZqlefSPVv Hr3DLCoQgP/Z\",\n    transform: \"matrix(0.54 0 0 -0.54 57.3163 121.6599)\"\n  })))), _ref19, _ref20, _ref21, _ref22, _ref23, _ref24, _ref25, _ref26);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKiiibinSit, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kiiibin_sit.c1f60673.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n  type: \"text/css\"\n}, \"\\n\\t.st0{fill:#FFEB27;}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:1.7008;}\\n\\t.st2{clip-path:url(#SVGID_2_);}\\n\\t.st3{fill:#FADCE2;}\\n\\t.st4{fill:none;stroke:#000000;stroke-width:1.2756;}\\n\\t.st5{clip-path:url(#SVGID_6_);}\\n\\t.st6{fill:none;stroke:#000000;stroke-width:1.7008;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st7{clip-path:url(#SVGID_10_);}\\n\\t.st8{fill:none;stroke:#000000;stroke-width:1.063;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st9{fill:none;stroke:#898989;stroke-width:1.2756;stroke-linejoin:round;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M51.83,131.4c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C41.5,129.3,46.12,131.4,51.83,131.4L51.83,131.4z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M51.83,131.4c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C41.5,129.3,46.12,131.4,51.83,131.4L51.83,131.4z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M94.34,131.4c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C84.02,129.3,88.64,131.4,94.34,131.4L94.34,131.4z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M94.34,131.4c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C84.02,129.3,88.64,131.4,94.34,131.4L94.34,131.4z\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_1_\",\n  d: \"M73.08,128.79c20.16,0,36.5-18.73,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82 c-20.16,0-36.5,18.72-36.5,41.82C36.58,110.07,52.92,128.79,73.08,128.79L73.08,128.79z\"\n}));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_3_\",\n  x: 36.58,\n  y: 45.15,\n  width: 72.99,\n  height: 83.65\n}));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M73.08,128.79c20.16,0,36.5-18.73,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82c-20.16,0-36.5,18.72-36.5,41.82 C36.58,110.07,52.92,128.79,73.08,128.79L73.08,128.79z\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M60.74,74.97c1.61,0,2.92-0.89,2.92-1.99c0-1.1-1.31-1.99-2.92-1.99c-1.62,0-2.93,0.89-2.93,1.99 C57.81,74.08,59.12,74.97,60.74,74.97L60.74,74.97z\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M85.42,74.97c1.61,0,2.92-0.89,2.92-1.99c0-1.1-1.31-1.99-2.92-1.99c-1.62,0-2.93,0.89-2.93,1.99 C82.5,74.08,83.81,74.97,85.42,74.97L85.42,74.97z\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M73.08,89.21c5.46,0,9.89-1.77,9.89-3.96s-4.43-3.96-9.89-3.96c-5.46,0-9.9,1.77-9.9,3.96 S67.62,89.21,73.08,89.21L73.08,89.21z\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st4\",\n  d: \"M73.08,89.21c5.46,0,9.89-1.77,9.89-3.96s-4.43-3.96-9.89-3.96c-5.46,0-9.9,1.77-9.9,3.96 S67.62,89.21,73.08,89.21L73.08,89.21z M66.45,85.25H79.2 M74.73,45.73c0.35-4.9,7.49-9.03,5.36-17.89\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_5_\",\n  d: \"M80.21,27.5c-8.18-5.23-10.29-16.77-1.23-11.62C80.85,11.61,93.58,7.06,80.21,27.5L80.21,27.5z\"\n}));\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_7_\",\n  x: 69.92,\n  y: 7.06,\n  width: 23.66,\n  height: 20.44\n}));\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st6\",\n  d: \"M80.21,27.5c-8.18-5.23-10.29-16.77-1.23-11.62C80.85,11.61,93.58,7.06,80.21,27.5L80.21,27.5z\"\n});\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"107.33,97.72 123.44,103.08 108.51,85.17 \"\n});\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st6\",\n  points: \"107.33,97.72 123.44,103.08 108.51,85.17 \"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"37.84,82.06 18.19,75.88 38.75,96.52 \"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st6\",\n  points: \"37.84,82.06 18.19,75.88 38.75,96.52 \"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n  id: \"SVGID_9_\",\n  points: \"65.32,117.88 80.84,117.88 80.84,102.36 65.32,102.36 65.32,117.88  \"\n}));\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_11_\",\n  x: 65.32,\n  y: 102.36,\n  width: 15.52,\n  height: 15.52\n}));\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st8\",\n  points: \"65.32,117.88 80.84,117.88 80.84,102.36 65.32,102.36 65.32,117.88 \"\n});\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"polygon\", {\n  points: \"73.1,113.33 70.82,109.46 72.94,106.92 71.42,106.92 69.16,109.71 69.16,106.92 67.91,106.92 67.91,113.33  69.16,113.33 69.16,111.4 69.99,110.41 71.64,113.33 73.1,113.33 \"\n});\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M73.99,108.72c0-1.1,0.73-1.8,1.98-1.8h2.58v6.41h-2.68c-1.14,0-1.96-0.65-1.96-1.85c0-0.86,0.5-1.26,0.88-1.44 C74.46,109.89,73.99,109.43,73.99,108.72L73.99,108.72z M75.24,108.77c0,0.44,0.3,0.74,0.83,0.74h1.22v-1.48h-1.22 C75.54,108.03,75.24,108.33,75.24,108.77L75.24,108.77z M75.15,111.42c0,0.43,0.27,0.79,0.84,0.79h1.31v-1.58h-1.31 C75.42,110.63,75.15,110.98,75.15,111.42L75.15,111.42z\"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st9\",\n  d: \"M66.98,101.79h3.4 M75.2,101.79h3.98\"\n});\n\nvar SvgKiiibinSmile = function SvgKiiibinSmile(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 141.73 141.73\",\n    style: {\n      enableBackground: \"new 0 0 141.73 141.73\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, _ref3, _ref4, _ref5, _ref6, /*#__PURE__*/React.createElement(\"g\", null, _ref7, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_2_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_1_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st2\"\n  }, _ref8, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_4_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_3_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_4_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 140,\n    height: 159,\n    xlinkHref: \"data:image/jpeg;base64,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 I+hI+hI+hI+g8uD55L51B//Z\",\n    transform: \"matrix(0.54 0 0 -0.54 35.4242 129.9674)\"\n  })))), _ref9, _ref10, _ref11, _ref12, _ref13, /*#__PURE__*/React.createElement(\"g\", null, _ref14, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_6_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_5_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st5\"\n  }, _ref15, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_8_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_7_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_8_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 52,\n    height: 42,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAILAAACZwAAAxH/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACwANgMBIgACEQEDEQH/ xAChAAACAwEBAAAAAAAAAAAAAAAEBQACAwYBAQADAQEBAAAAAAAAAAAAAAACBAUDAAEQAAIBAgMH BQEAAAAAAAAAAAECABEDEAUGMRMzBBREFSESIiMlFhEAAAIFCgcBAAAAAAAAAAAAABEBsRKiExAh csLiA4OjFDQgQYECgjNEQhIAAgEDBAIDAAAAAAAAAAAAAAECIaGCEBExMmHRUXGx/9oADAMBAAIR AxEAAADsAqJ1KT3RIQJNc1Y/d2MpG5yZU2XJ1L39yH3PG1A27GSUYqsBuIq+GOwxz2A8Og69HLSh F//aAAgBAgABBQC7ddXF65DfuSpl7ibBhcA3hEoMP//aAAgBAwABBQCxy1lrTctYEXlbJlBOXNLG 0qKCWSdyhnuOH//aAAgBAQABBQDMs16B/wCli6jrFz2sOd0jagpN59OpOOBU21iigdo7TstR8dFi LGNA7Qmp7LUQrftrB6B2jtXDss/Fb6LHaO2PZZr0W9HjKN4qN4afiT8SfDpf/9oACAECAgY/AGk6 LwdrI7WRiS1xJVRyjlXMT//aAAgBAwIGPwCMpR3b5qykLsrG7MtiH0/3XMhR8ePk6u3s6yt7Mz// 2gAIAQEBBj8A7OyFEbQlJtMkXikbbMsDbP2B6H7I9L9kbd+yIpflouhi5opXKcuFVFzRSuUpcKqL milfFhVRc0Ur4sKqLvUxGmUsw2SI+bQmjuCfUOCfU5Y+rLH1ZY5w4fkySx//2Q==\",\n    transform: \"matrix(0.54 0 0 -0.54 68.5106 28.6654)\"\n  })))), _ref16, _ref17, _ref18, _ref19, _ref20, /*#__PURE__*/React.createElement(\"g\", null, _ref21, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_10_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_9_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st7\"\n  }, _ref22, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_12_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_11_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_12_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 36,\n    height: 33,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAHkAAACHQAAApD/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACMAJQMBIgACEQEDEQH/ xACcAAACAwEBAAAAAAAAAAAAAAAAAwECBAUGAQADAAMAAAAAAAAAAAAAAAADBAUBAgYQAAICAQMC BwAAAAAAAAAAAAECAAMREEIEEhQhMUEiMhMzEQACAQMCBwEAAAAAAAAAAAAAAREQgTKxokFhcaEC QkMTEgAAAwUECwAAAAAAAAAAAAAAAQIQETKCAyExQYFhcZGx0RJCM3M0RP/aAAwDAQACEQMRAAAA 92orMNAmk0vVIOjVxEK51rShly66iS4vmWCRLNAmHAOD/9oACAECAAEFAL7riz87mKcmW3FOVZWt y4lnzr0//9oACAEDAAEFAFVcCtDoFygJUweR0//aAAgBAQABBQCywqW5bid88755nwtfFzoGDLjT ZyTi+uyOgYMuJt5f7gyuyOgYbb+n7PbB0xcT0//aAAgBAgIGPwBZU6hpNCjJ1mAcdVWwuAleKvlV vHMmLEhKFejEccU2kfLIz//aAAgBAwIGPwAnleLmJ1EHGwu5kOvNn//aAAgBAQEGPwCEpgxRijFE 8hroSq2HbSkqljytpWUWHP58MpnsfHcfLcelpp//2Q==\",\n    transform: \"matrix(0.54 0 0 -0.54 64.0442 119.4044)\"\n  })))), _ref23, _ref24, _ref25, _ref26);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKiiibinSmile, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kiiibin_smile.078ee262.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"style\", {\n  type: \"text/css\"\n}, \"\\n\\t.st0{fill:#FFEB27;}\\n\\t.st1{fill:none;stroke:#000000;stroke-width:1.7008;}\\n\\t.st2{clip-path:url(#SVGID_2_);}\\n\\t.st3{fill:#FADCE2;}\\n\\t.st4{fill:none;stroke:#000000;stroke-width:1.2756;}\\n\\t.st5{fill:#F8C9B1;}\\n\\t.st6{clip-path:url(#SVGID_6_);}\\n\\t.st7{fill:none;stroke:#000000;stroke-width:1.7008;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st8{clip-path:url(#SVGID_10_);}\\n\\t.st9{fill:none;stroke:#000000;stroke-width:1.063;stroke-linecap:round;stroke-linejoin:round;}\\n\\t.st10{fill:none;stroke:#898989;stroke-width:1.2756;stroke-linejoin:round;}\\n\");\n\nvar _ref3 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M52.81,128.95c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C42.49,126.85,47.11,128.95,52.81,128.95L52.81,128.95z\"\n});\n\nvar _ref4 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M52.81,128.95c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C42.49,126.85,47.11,128.95,52.81,128.95L52.81,128.95z\"\n});\n\nvar _ref5 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st0\",\n  d: \"M95.33,128.95c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C85.01,126.85,89.63,128.95,95.33,128.95L95.33,128.95z\"\n});\n\nvar _ref6 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M95.33,128.95c5.7,0,10.32-2.1,10.32-4.68c0-2.59-4.62-4.68-10.32-4.68c-5.7,0-10.32,2.1-10.32,4.68 C85.01,126.85,89.63,128.95,95.33,128.95L95.33,128.95z\"\n});\n\nvar _ref7 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_1_\",\n  d: \"M74.06,126.35c20.16,0,36.5-18.72,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82 c-20.16,0-36.5,18.73-36.5,41.82C37.56,107.62,53.91,126.35,74.06,126.35L74.06,126.35z\"\n}));\n\nvar _ref8 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_3_\",\n  x: 37.56,\n  y: 42.7,\n  width: 72.99,\n  height: 83.65\n}));\n\nvar _ref9 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st1\",\n  d: \"M74.06,126.35c20.16,0,36.5-18.72,36.5-41.82c0-23.1-16.34-41.82-36.5-41.82c-20.16,0-36.5,18.73-36.5,41.82 C37.56,107.62,53.91,126.35,74.06,126.35L74.06,126.35z\"\n});\n\nvar _ref10 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M57.84,72.52c1.61,0,2.92-0.89,2.92-1.99c0-1.1-1.31-1.99-2.92-1.99c-1.62,0-2.93,0.89-2.93,1.99 C54.92,71.63,56.23,72.52,57.84,72.52L57.84,72.52z\"\n});\n\nvar _ref11 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M82.53,72.52c1.61,0,2.92-0.89,2.92-1.99c0-1.1-1.31-1.99-2.92-1.99c-1.62,0-2.93,0.89-2.93,1.99 C79.6,71.63,80.91,72.52,82.53,72.52L82.53,72.52z\"\n});\n\nvar _ref12 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st3\",\n  d: \"M70.19,89.05c5.29,0,9.58-2.29,9.58-5.1s-4.29-5.1-9.58-5.1s-9.58,2.29-9.58,5.1S64.89,89.05,70.19,89.05 L70.19,89.05z\"\n});\n\nvar _ref13 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st4\",\n  d: \"M70.19,89.05c5.29,0,9.58-2.29,9.58-5.1s-4.29-5.1-9.58-5.1s-9.58,2.29-9.58,5.1S64.89,89.05,70.19,89.05 L70.19,89.05z\"\n});\n\nvar _ref14 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st5\",\n  d: \"M70.19,85.89c2.78,0,5.04-0.87,5.04-1.94c0-1.07-2.26-1.94-5.04-1.94c-2.78,0-5.03,0.87-5.03,1.94 C65.15,85.02,67.4,85.89,70.19,85.89L70.19,85.89z\"\n});\n\nvar _ref15 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st4\",\n  d: \"M70.19,85.89c2.78,0,5.04-0.87,5.04-1.94c0-1.07-2.26-1.94-5.04-1.94c-2.78,0-5.03,0.87-5.03,1.94 C65.15,85.02,67.4,85.89,70.19,85.89L70.19,85.89z M75.71,43.29c0.35-4.9,7.49-9.03,5.36-17.89\"\n});\n\nvar _ref16 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"path\", {\n  id: \"SVGID_5_\",\n  d: \"M81.19,25.05c-8.18-5.24-10.29-16.77-1.23-11.62C81.84,9.16,94.56,4.61,81.19,25.05L81.19,25.05z\"\n}));\n\nvar _ref17 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_7_\",\n  x: 70.9,\n  y: 4.61,\n  width: 23.66,\n  height: 20.44\n}));\n\nvar _ref18 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st7\",\n  d: \"M81.19,25.05c-8.18-5.24-10.29-16.77-1.23-11.62C81.84,9.16,94.56,4.61,81.19,25.05L81.19,25.05z\"\n});\n\nvar _ref19 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"106.47,97.15 94.57,104.28 105.29,84.61 \"\n});\n\nvar _ref20 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st7\",\n  points: \"106.47,97.15 94.57,104.28 105.29,84.61 \"\n});\n\nvar _ref21 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st0\",\n  points: \"38.82,79.62 19.17,73.43 39.73,94.07 \"\n});\n\nvar _ref22 = /*#__PURE__*/React.createElement(\"polyline\", {\n  className: \"st7\",\n  points: \"38.82,79.62 19.17,73.43 39.73,94.07 \"\n});\n\nvar _ref23 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"polygon\", {\n  id: \"SVGID_9_\",\n  points: \"62.43,115.43 77.95,115.43 77.95,99.91 62.43,99.91 62.43,115.43  \"\n}));\n\nvar _ref24 = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"rect\", {\n  id: \"SVGID_11_\",\n  x: 62.43,\n  y: 99.91,\n  width: 15.52,\n  height: 15.52\n}));\n\nvar _ref25 = /*#__PURE__*/React.createElement(\"polygon\", {\n  className: \"st9\",\n  points: \"62.43,115.43 77.95,115.43 77.95,99.91 62.43,99.91 62.43,115.43 \"\n});\n\nvar _ref26 = /*#__PURE__*/React.createElement(\"polygon\", {\n  points: \"70.2,110.88 67.93,107.02 70.05,104.47 68.53,104.47 66.27,107.26 66.27,104.47 65.02,104.47 65.02,110.88  66.27,110.88 66.27,108.95 67.1,107.96 68.75,110.88 70.2,110.88 \"\n});\n\nvar _ref27 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M71.1,106.27c0-1.1,0.73-1.8,1.98-1.8h2.58v6.41h-2.68c-1.14,0-1.96-0.65-1.96-1.85c0-0.86,0.5-1.26,0.88-1.44 C71.56,107.44,71.1,106.98,71.1,106.27L71.1,106.27z M72.35,106.32c0,0.44,0.3,0.74,0.83,0.74h1.22v-1.48h-1.22 C72.64,105.58,72.35,105.88,72.35,106.32L72.35,106.32z M72.26,108.97c0,0.43,0.27,0.79,0.84,0.79h1.31v-1.58h-1.31 C72.52,108.19,72.26,108.54,72.26,108.97L72.26,108.97z\"\n});\n\nvar _ref28 = /*#__PURE__*/React.createElement(\"path\", {\n  className: \"st10\",\n  d: \"M64.09,99.34h3.4 M72.31,99.34h3.98\"\n});\n\nvar SvgKiiibinTeach = function SvgKiiibinTeach(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"\\\\u30EC\\\\u30A4\\\\u30E4\\\\u30FC_1\",\n    x: \"0px\",\n    y: \"0px\",\n    viewBox: \"0 0 141.73 141.73\",\n    style: {\n      enableBackground: \"new 0 0 141.73 141.73\"\n    },\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2, _ref3, _ref4, _ref5, _ref6, /*#__PURE__*/React.createElement(\"g\", null, _ref7, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_2_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_1_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st2\"\n  }, _ref8, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_4_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_3_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_4_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 140,\n    height: 159,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAOBAAAEWAAABZj/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIAKEAjgMBIgACEQEDEQH/ xACfAAEBAQEBAQAAAAAAAAAAAAABAAMCBAYBAAMBAQEBAAAAAAAAAAAAAAECAwAEBQYQAAIBAgUD BQADAAAAAAAAAAABAhEEECAyFDQwMQMhEiITJEAzBREAAQIHAQEBAQAAAAAAAAAAAHECQAExodEy chESkQMSAAECBAQFAwUAAAAAAAAAAAEAAzAxAnLRMqJzESGxwbIgQRIiQjNEZP/aAAwDAQACEQMR AAAA+644w8K/qvKxb03nqD03nm3ovPHei88NvecTem8sh9Xfi3sLDfDmZZmZqopnBdR3Mw3MyHnn sied8N6Bw3xoFFS01FNQUx3Mw3J0TJz0SPO2WzCy2xoFOlMzUU1BSMCRSCTIJEmuWrZy1yYKIKjZ VmohmAIhBJEEi3OuerCy1y2UQXrlsvTy1HUTi5RCCSIJBjXLVhZa4jdPKD08tR08tVYjkhdETaIi TXLVhZa4qenlU9PLVVJ8xMEhSkIYiJNsdWFjtgh6646QqVR1E4YjmIaIQxEjbYbsLD0efa65edlK w6icNR1ENFTIJI2+G919lX0/LVbVW1VtVbVW1VtVbVW3/9oACAECAAEFALu/ufH51/pXbFf3Yr66 N7cjvrod/dj/ANK7Rb39zN3yrdRiKIontHEcSUS0Xyu1+qKEhRPaOI0SRbL53S/TFEUJFBokiSLd fO65ESIkUGiRIt9V1yIkSJUkSJFvqun+mLIsTKjZJkmW7+d2/wBUWJike4chsky2fzvXS7jIUhSP cOQ5EpFq/nfJ7qLaFJibKsbZKTJNstE/d0f/2gAIAQMAAQUAh44uP1QPrgfXA+uB9cD64H1QJeOK PHoeZE+0NGeXaGnPLtDS8yJdoaWPIhEu0NOeXaGjPLtDRmRPt49GefS//9oACAEBAAEFAPL514pb xG8RvEbxG7Ru0btG6RukbtG7Ru0bxG8RvEbxCuE/Fea8KYUKFMaFCmFMYcS81iWFMaFChTGmDWEO Jea112Q4l3/YhdVjIcS71rNToMZDi3WtddkeLda0LqsZHjXWvrMZHjXWvBC6LyR411rwQsVi8Xkj xrrXiurHjXWvrMZHjXWtC6rGR411rXXZHi3etZ6lczGQ4t3rQuqxkOJea1gn03jDiXmsTwqVz1K5 IcS7T99GUZRlGUZ6nqep6nqepRlGUZRlGQT2v8L/2gAIAQICBj8Acoor4U0nkPiFn004LPppwWfS MFn0hZ9IwWfTTgvyaacE4Kq+PxZcrH0idI5J27tAdH87vinbu0BzYc8U5dAr2XOicugV7LnROXQK 9lzonLoFey50Tt3aA5sudE7d2gObDvineX3dlIqXpkU7y/Xd8YX/2gAIAQMCBj8ABIUlJSUlJSUk OA9whAFwQgC4IQBcEIAuCEAXBCALghAFwQgC4IQBcIX/2gAIAQEBBj8AlL599l6aXNLmlzS5rc1u a3NbmtzW5rc1uaXNLmlzS47+nzrPzz8GpAv6wNSBf1gakC/rA1IF/WBqQL+sEkgX9YJJAvXBJIF6 4JJAvXBJIF64JJAvXBJIF/WCSQL1wSSBf1gakC/rA1IF/WBqQL+sDUgX9YGoUKFChQoUKFChQoUK FCg/rEH/AP/Z\",\n    transform: \"matrix(0.54 0 0 -0.54 36.4076 127.8829)\"\n  })))), _ref9, _ref10, _ref11, _ref12, _ref13, _ref14, _ref15, /*#__PURE__*/React.createElement(\"g\", null, _ref16, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_6_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_5_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st6\"\n  }, _ref17, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_8_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_7_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_8_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 52,\n    height: 42,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAIMAAACbQAAAxb/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACwANgMBIgACEQEDEQH/ xACkAAACAwEBAAAAAAAAAAAAAAAABQIDBAEGAQACAwEAAAAAAAAAAAAAAAABBQIDBAAQAAIBAwIF BAMAAAAAAAAAAAECABEDBBAFEhNDFQYhNBYmMSIzEQAAAwQHBwUAAAAAAAAAAAAAAQIRwTIDICGR EoLScxAxQaFiw/MicjODFBIAAgEDAgUFAAAAAAAAAAAAAAIBIYHREDIxcZGhMxIigqLS/9oADAMB AAIRAxEAAAD1eCSnG0b2qr4lhVhz8fZHDarQrGmDC1sl2kGFMoQu9qAyRpcT2jIwU53lcLUXHhG1 ySGCX//aAAgBAgABBQC7ccOLlyG6+l3+n41uKOMqJwjT/9oACAEDAAEFAMexaa01mzFx7RlJYNLA 9SooJaZuUjmcxtP/2gAIAQEAAQUA3bdMjCvfIs2L5BmmLvWWY285Ijb9licR5fkfugKm2sUUDtHa dDyP3SLEWOaB2hNZ0PIRXLRYPQO0c1M6G/CuUix2lxtehndt5o7JRuwRvjc+sz6zP14P/9oACAEC AgY/AGiGk3SbpLDc9bDe6I64Ny98G9e+Cx//2gAIAQMCBj8ARmSJmY4lEUqkFxOWvyEj0NNONMnj f65PG/Vf0XP/2gAIAQEBBj8ARLlJQolJvHeIzNrTLgZCCVYrMIJViswgl2KzCGXYeYQS7FZhe4sb yErTee1u3C4StN50sLhK03nSwuEv2POlhcE/s+S76Y9zegVbvsFfdFfdHmHmHQzkP//Z\",\n    transform: \"matrix(0.54 0 0 -0.54 69.4939 26.5801)\"\n  })))), _ref18, _ref19, _ref20, _ref21, _ref22, /*#__PURE__*/React.createElement(\"g\", null, _ref23, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_10_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_9_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    className: \"st8\"\n  }, _ref24, /*#__PURE__*/React.createElement(\"clipPath\", {\n    id: \"SVGID_12_\"\n  }, /*#__PURE__*/React.createElement(\"use\", {\n    xlinkHref: \"#SVGID_11_\",\n    style: {\n      overflow: \"visible\"\n    }\n  })), /*#__PURE__*/React.createElement(\"g\", {\n    style: {\n      clipPath: \"url(#SVGID_12_)\"\n    }\n  }, /*#__PURE__*/React.createElement(\"image\", {\n    style: {\n      overflow: \"visible\"\n    },\n    width: 36,\n    height: 33,\n    xlinkHref: \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEAhQCFAAD/7AARRHVja3kAAQAEAAAAHgAA/+4AIUFkb2JlAGTAAAAAAQMA EAMCAwYAAAH1AAACNAAAArj/2wCEABALCwsMCxAMDBAXDw0PFxsUEBAUGx8XFxcXFx8eFxoaGhoX Hh4jJSclIx4vLzMzLy9AQEBAQEBAQEBAQEBAQEABEQ8PERMRFRISFRQRFBEUGhQWFhQaJhoaHBoa JjAjHh4eHiMwKy4nJycuKzU1MDA1NUBAP0BAQEBAQEBAQEBAQP/CABEIACMAJwMBIgACEQEDEQH/ xAClAAEBAAMBAQAAAAAAAAAAAAAAAwECBAUGAQACAwEAAAAAAAAAAAAAAAADBQABBAIQAAIBAwIE BwAAAAAAAAAAAAECAwARBCESMSITFEEyQiMzJDQRAAEBBQcFAAAAAAAAAAAAAAACEAERYXExobES MkKiIYHCA0MSAAECAgYHCQAAAAAAAAAAAAABEQISMUFRYYGCEKGxYgMTQ9EyQpIjM2M0RP/aAAwD AQACEQMRAAAA++jmeAuEpKy+gmbhQvxqy9cVups3MhY5gd7UKlxvH//aAAgBAgABBQDImkEkmbmo erJ2OfIUzOSdNh7HJ+WPj6P/2gAIAQMAAQUAVRYRxmto6kQumqm/uJwNeP8A/9oACAEBAAEFAHba GyWWjmsK740kxeHJaw0cOlqIqH8eabKj2rRw6WqEfUzvIDSPatHEa2gyrbeShspNtC2z/9oACAEC AgY/AIuHBHIqNYMvEXyw9hzX9TkzTXsRNZDsN4k+GXUL9Gr3u/ifhyHhoyn/2gAIAQMCBj8ARVRy glqmYTEuH3jqZaDqY6P/2gAIAQEBBj8AqabzReaLx/thCDn9KCak2rorATVk2LdJWAmrZik1Exy2 7o+J8uZ8+Zs7Zh9h/9k=\",\n    transform: \"matrix(0.54 0 0 -0.54 60.9261 116.7793)\"\n  })))), _ref25, _ref26, _ref27, _ref28);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgKiiibinTeach, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/kiiibin_teach.db4bd220.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M 26.273438 4.445313 C 26.148438 4.457031 26.027344 4.476563 25.902344 4.5 C 24.902344 4.699219 23.800781 5.5 22.800781 6.5 L 27.597656 9.5 C 28.199219 7.5 28.601563 5.5 27.300781 4.699219 C 27 4.472656 26.644531 4.417969 26.273438 4.445313 Z M 21.402344 8 C 20.199219 9.5 17.5 13 14.699219 17.402344 C 13.800781 18.800781 12.898438 20.402344 12 21.902344 C 12 22.800781 11.902344 23.601563 11.800781 24.402344 C 11.5 26.300781 11 27.898438 10.699219 28.5 C 10.300781 29.601563 9.699219 30.398438 9.101563 31 L 12.902344 33.402344 C 13.5 32.601563 14.5 31.199219 15.699219 29.597656 L 15.097656 29.199219 C 12.800781 28 11.699219 25.300781 12.597656 22.800781 C 13.300781 20.800781 15.300781 19.5 17.402344 19.5 C 17.800781 19.5 18.199219 19.597656 18.699219 19.699219 L 21.800781 20.5 C 24.199219 16.5 26 12.898438 26.800781 11.199219 Z M 16.902344 10.800781 L 10 11.800781 C 9.300781 11.902344 8.800781 12.300781 8.5 12.902344 L 2.898438 25.5 C 2.699219 26 2.5 26.699219 2.601563 27.300781 C 2.699219 28.402344 3.199219 29.398438 4 30.097656 C 5.101563 30.800781 6.398438 30.601563 7 30.300781 C 8.398438 29.699219 8.898438 27.800781 9 27.300781 C 9.300781 26.199219 10.300781 23.199219 9.898438 20.300781 L 10.800781 20.199219 C 11.5 18.898438 12.300781 17.699219 13 16.5 C 14.398438 14.300781 15.699219 12.402344 16.902344 10.800781 Z M 28.5 12.597656 C 27.800781 14.097656 26.101563 17.5 23.800781 21.300781 L 26.402344 22 L 28.402344 22.597656 L 27.300781 24.199219 L 18.199219 21.800781 C 16.699219 21.402344 15.101563 22.199219 14.5 23.699219 C 13.898438 25.199219 14.601563 26.898438 16 27.597656 L 27.402344 34 C 29.101563 34.898438 31 35.199219 32.902344 34.902344 C 33.101563 34.902344 40.902344 33.097656 40.902344 33.097656 L 38.800781 18.902344 L 28.800781 12.699219 C 28.699219 12.597656 28.601563 12.597656 28.5 12.597656 Z M 45.300781 17.402344 L 40.699219 18.097656 L 43.402344 35.699219 L 48 35 Z M 6.898438 32.097656 C 5.800781 35.199219 5.800781 37.199219 5.800781 38 L 5.101563 39 C 4.898438 39.300781 5 39.699219 5.300781 39.902344 C 5.5 40 5.601563 40 5.800781 40 C 6 39.898438 6.101563 39.800781 6.300781 39.699219 L 6.898438 38.699219 C 7.601563 38.398438 9.398438 37.5 11.699219 35.097656 Z\"\n});\n\nvar SvgIcons8HandWithPen2 = function SvgIcons8HandWithPen2(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 50 50\",\n    width: 50,\n    height: 50,\n    fill: \"#000000\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8HandWithPen2, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-hand-with-pen-2.13ae3287.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M 12 39 L 44 39 L 44 2 L 12 2 C 8.691406 2 6 4.691406 6 8 L 6 42.417969 C 6 45.496094 8.691406 48 12 48 L 44 48 L 44 46 L 12 46 C 9.832031 46 8 44.359375 8 42.417969 C 8 40.5 9.757813 39 12 39 Z M 14 10.5 C 14 10.222656 14.222656 10 14.5 10 L 36.5 10 C 36.777344 10 37 10.222656 37 10.5 L 37 15.5 C 37 15.777344 36.777344 16 36.5 16 L 14.5 16 C 14.222656 16 14 15.777344 14 15.5 Z\"\n});\n\nvar SvgIcons8Book = function SvgIcons8Book(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 50 50\",\n    width: 50,\n    height: 50,\n    fill: \"#000000\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8Book, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-book.bc96765e.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M 10 2 C 8.343 2 7 3.343 7 5 L 7 12.357422 C 4.483 15.935422 3 20.293 3 25 C 3 37.15 12.85 47 25 47 C 37.15 47 47 37.15 47 25 C 47 12.85 37.15 3 25 3 C 20.571 3 16.452 4.3124531 13 6.5644531 L 13 5 C 13 3.343 11.657 2 10 2 z M 10 4 C 10.552 4 11 4.447 11 5 L 11 10.710938 C 14.711 7.0489375 19.72 4.9746094 25 4.9746094 C 36.028 4.9746094 45 13.946609 45 24.974609 C 45 36.002609 36.028 44.974609 25 44.974609 C 13.972 44.974609 5 36.002609 5 24.974609 C 5 24.421609 5.448 23.974609 6 23.974609 C 6.552 23.974609 7 24.421609 7 24.974609 C 7 34.899609 15.075 42.974609 25 42.974609 C 34.925 42.974609 43 34.899609 43 24.974609 C 43 15.049609 34.925 6.9746094 25 6.9746094 C 20.315 6.9746094 15.870875 8.792 12.546875 12 L 18 12 C 18.552 12 19 12.447 19 13 C 19 13.553 18.552 14 18 14 L 9 14 L 9 5 C 9 4.447 9.448 4 10 4 z M 18.328125 17 C 22.924125 17 23 20.488922 23 21.169922 C 23 22.956922 21.562797 23.978359 20.966797 24.318359 L 20.966797 24.404297 C 21.902797 24.574297 23.775391 25.426375 23.775391 28.234375 C 23.775391 32.745375 19.350063 33 18.414062 33 C 13.614062 33 13.241609 29.227 13.224609 28 L 15.103516 28 C 15.156516 30.467 16.905063 31.382812 18.414062 31.382812 C 18.839063 31.382812 21.818359 31.126359 21.818359 28.318359 C 21.818359 25.424359 18.923047 25.339844 18.498047 25.339844 C 18.073047 25.339844 17.732578 25.340781 17.392578 25.425781 L 17.392578 23.808594 L 18.158203 23.808594 C 20.882203 23.808594 21.138672 21.681859 21.138672 21.255859 C 21.138672 20.404859 20.796125 18.701172 18.328125 18.701172 C 15.692125 18.701172 15.381516 21.326 15.353516 22 L 13.480469 22 C 13.503469 21.022 13.899125 17 18.328125 17 z M 31.501953 17 C 36.378953 17 36.720703 21.705969 36.720703 25.042969 C 36.720703 28.208969 36.378953 33 31.501953 33 C 26.111953 33 26.28125 27.523969 26.28125 25.042969 C 26.28025 21.705969 26.538953 17 31.501953 17 z M 31.501953 18.710938 C 27.651953 18.710938 28.25 24.699969 28.25 25.042969 C 28.249 25.642969 27.821953 31.373047 31.501953 31.373047 C 34.239953 31.373047 34.751953 28.379969 34.751953 25.042969 C 34.751953 24.614969 35.351953 18.710938 31.501953 18.710938 z\"\n});\n\nvar SvgIcons8Replay302 = function SvgIcons8Replay302(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 50 50\",\n    width: 50,\n    height: 50,\n    fill: \"#000000\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8Replay302, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-replay-30-2.440bfeb6.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M 49 4 L 1 4 C 0.449219 4 0 4.449219 0 5 L 0 45 C 0 45.554688 0.449219 46 1 46 L 49 46 C 49.554688 46 50 45.554688 50 45 L 50 5 C 50 4.449219 49.554688 4 49 4 Z M 29 36 L 9 36 L 9 34 L 29 34 Z M 29 26 L 9 26 L 9 24 L 29 24 Z M 29 16 L 9 16 L 9 14 L 29 14 Z M 41.917969 33.773438 L 39.117188 37.773438 C 38.964844 37.996094 38.722656 38.148438 38.449219 38.1875 C 38.402344 38.195313 38.351563 38.199219 38.300781 38.199219 C 38.082031 38.199219 37.867188 38.128906 37.691406 37.992188 L 35.089844 35.992188 C 34.652344 35.65625 34.570313 35.027344 34.90625 34.589844 C 35.242188 34.152344 35.871094 34.070313 36.308594 34.40625 L 38.078125 35.769531 L 40.28125 32.625 C 40.597656 32.171875 41.21875 32.0625 41.671875 32.378906 C 42.125 32.695313 42.234375 33.320313 41.917969 33.773438 Z M 41.917969 23.773438 L 39.117188 27.773438 C 38.964844 27.996094 38.722656 28.148438 38.449219 28.1875 C 38.402344 28.195313 38.351563 28.199219 38.300781 28.199219 C 38.082031 28.199219 37.867188 28.128906 37.691406 27.992188 L 35.089844 25.992188 C 34.652344 25.65625 34.570313 25.027344 34.90625 24.589844 C 35.242188 24.152344 35.871094 24.070313 36.308594 24.40625 L 38.078125 25.769531 L 40.28125 22.628906 C 40.597656 22.175781 41.21875 22.0625 41.671875 22.382813 C 42.125 22.699219 42.234375 23.320313 41.917969 23.773438 Z M 41.917969 13.773438 L 39.117188 17.773438 C 38.964844 17.996094 38.722656 18.148438 38.449219 18.1875 C 38.402344 18.195313 38.351563 18.199219 38.300781 18.199219 C 38.082031 18.199219 37.867188 18.128906 37.691406 17.992188 L 35.089844 15.992188 C 34.652344 15.65625 34.570313 15.027344 34.90625 14.589844 C 35.242188 14.152344 35.871094 14.070313 36.308594 14.40625 L 38.078125 15.769531 L 40.28125 12.625 C 40.597656 12.171875 41.21875 12.0625 41.671875 12.378906 C 42.125 12.699219 42.234375 13.320313 41.917969 13.773438 Z\"\n});\n\nvar SvgIcons8ReportCard = function SvgIcons8ReportCard(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 50 50\",\n    width: 50,\n    height: 50,\n    fill: \"#000000\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8ReportCard, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-report-card.dbb43c69.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M 25 4 C 12.328125 4 2 12.878906 2 23.992188 C 2 30.445313 5.53125 36.0625 10.960938 39.730469 C 10.953125 39.945313 10.96875 40.296875 10.683594 41.34375 C 10.335938 42.644531 9.625 44.472656 8.1875 46.535156 L 7.164063 48 L 8.949219 48 C 15.140625 48 18.722656 43.964844 19.277344 43.316406 C 21.121094 43.75 23.019531 43.988281 25 43.988281 C 37.671875 43.988281 48 35.109375 48 23.992188 C 48 12.878906 37.671875 4 25 4 Z M 26 34.199219 L 23.300781 34.199219 L 23.300781 31.300781 L 26 31.300781 Z M 30.5 21.601563 C 30.101563 22.199219 29.300781 23.101563 28 24.300781 C 27.101563 25.199219 26.5 25.898438 26.199219 26.5 C 25.898438 27 25.800781 27.800781 25.800781 29 L 23.300781 29 C 23.300781 27.699219 23.5 26.601563 23.800781 25.800781 C 24.101563 25 24.800781 24.101563 25.898438 23 L 27 21.898438 C 27.300781 21.601563 27.601563 21.300781 27.800781 20.898438 C 28.199219 20.300781 28.398438 19.699219 28.398438 19 C 28.398438 18.101563 28.101563 17.300781 27.601563 16.699219 C 27.101563 16 26.101563 15.699219 24.898438 15.699219 C 23.300781 15.699219 22.199219 16.300781 21.601563 17.398438 C 21.300781 18 21.101563 19 21 20.101563 L 18.5 20.101563 C 18.601563 18.199219 19.101563 16.601563 20.300781 15.398438 C 21.398438 14.199219 23 13.601563 25 13.601563 C 26.800781 13.601563 28.300781 14.101563 29.398438 15.199219 C 30.5 16.199219 31.101563 17.601563 31.101563 19.199219 C 31.101563 20.199219 30.898438 21 30.5 21.601563 Z\"\n});\n\nvar SvgIcons8AskQuestion = function SvgIcons8AskQuestion(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 50 50\",\n    width: 50,\n    height: 50,\n    fill: \"#000000\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8AskQuestion, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-ask-question.7ace9f0a.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport MarketContainer from \"../../../components/containers/MarketContainer\";\nimport { Button, Modal } from \"react-bootstrap\";\nimport * as commonService  from \"../../../services/common\";\nimport * as contentsService  from \"../../../services/contents\";\nimport * as accountService  from \"../../../services/account\";\nimport * as langService  from \"../../../services/lang\";\nimport { ReactComponent as KiiibinBack } from \"../../../assets/svg/kiiibin_back.svg\";\nimport { ReactComponent as KiiibinRelux } from \"../../../assets/svg/kiiibin_relux.svg\";\nimport { ReactComponent as KiiibinSad } from \"../../../assets/svg/kiiibin_sad.svg\";\nimport { ReactComponent as KiiibinSit } from \"../../../assets/svg/kiiibin_sit.svg\";\nimport { ReactComponent as KiiibinSmile } from \"../../../assets/svg/kiiibin_smile.svg\";\nimport { ReactComponent as KiiibinTeach } from \"../../../assets/svg/kiiibin_teach.svg\";\n\nimport { ReactComponent as LearningSvg } from \"../../../assets/svg/icons8-hand-with-pen-2.svg\";\nimport { ReactComponent as MangaSvg } from \"../../../assets/svg/icons8-book.svg\";\nimport { ReactComponent as TestSvg } from \"../../../assets/svg/icons8-replay-30-2.svg\";\nimport { ReactComponent as ResultsSvg } from \"../../../assets/svg/icons8-report-card.svg\";\nimport { ReactComponent as FeedbackSvg } from \"../../../assets/svg/icons8-ask-question.svg\";\nimport \"./index.scss\";\nimport * as rootActions from \"../../../store/root/actions\";\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {faTimes} from '@fortawesome/free-solid-svg-icons'\nimport Intercom from 'react-intercom';\nimport {Auth} from \"aws-amplify\";\nimport Div100vh from \"react-div-100vh\";\n\nclass MarketPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      account: null,\n      user: null,\n      loading: false,\n      accountSettings: {},\n      accountPermissions: [],\n      courses: [],\n      comicsLife: [],\n      comicsSpirit: [],\n      videoModalYoutube: null,\n    };\n\n    this.CourseRef = React.createRef();\n    this.ComicSpiritRef = React.createRef();\n    this.MoviesRef = React.createRef();\n  }\n\n  async componentWillMount() {\n    this._isMounted = true;\n    this.setState({loading: true});\n    try {\n      // Contents\n      let state = {\n        loading: false\n      };\n      let accountResponse = await accountService.fetchAccount();\n      if (accountResponse.parent && accountResponse.parent.permissions) {\n        state.accountPermissions = JSON.parse(accountResponse.parent.permissions);\n      }\n      let accountSettingsResponse = await accountService.fetchAccountSetting();\n      let accountSettings = accountSettingsResponse ? JSON.parse(accountSettingsResponse) : {};\n      state.accountSettings = accountSettings;\n\n      let courseSetting = await contentsService.fetchContentSetting(\"COURSE\");\n      let comicsSpiritSetting = await contentsService.fetchContentSetting(\"COMICS_SPIRIT\");\n      let comicsLifeSetting = await contentsService.fetchContentSetting(\"COMICS_LIFE\");\n      let contentsResponse = await contentsService.fetchContents();\n      let courses = contentsResponse.items.filter(item => item.contentType === \"COURSE\");\n      let comicsSpirit = contentsResponse.items.filter(item => item.contentType === \"COMICS_SPIRIT\");\n      let comicsLife = contentsResponse.items.filter(item => item.contentType === \"COMICS_LIFE\");\n\n      if (courseSetting) {\n        let order = JSON.parse(courseSetting.order);\n        let newCourses = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = courses.findIndex(item => item.id === order[i]);\n          if (courses[index]) {\n            newCourses.push(courses[index]);\n          }\n        }\n        courses = newCourses;\n      }\n\n      if (comicsSpiritSetting) {\n        let order = JSON.parse(comicsSpiritSetting.order);\n        let newComicsSpirit = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = comicsSpirit.findIndex(item => item.id === order[i]);\n          if (comicsSpirit[index]) {\n            newComicsSpirit.push(comicsSpirit[index]);\n          }\n        }\n        comicsSpirit = newComicsSpirit;\n      }\n\n      if (comicsLifeSetting) {\n        let order = JSON.parse(comicsLifeSetting.order);\n        let newComicsLife = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = comicsLife.findIndex(item => item.id === order[i]);\n          if (comicsLife[index]) {\n            newComicsLife.push(comicsLife[index]);\n          }\n        }\n        comicsLife = newComicsLife;\n      }\n\n      state.selectedLanguage = commonService.mainLanguage;\n      state.courses = courses;\n      state.comicsSpirit = comicsSpirit;\n      state.comicsLife = comicsLife;\n\n      this.setState(state);\n    } catch (e) {\n      this.setState({loading: true});\n      console.error(e);\n    }\n\n    this.fetchAccount()\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n  }\n\n  fetchAccount = async () => {\n    try {\n      const user = await Auth.currentAuthenticatedUser();\n      const account = await accountService.fetchAccount();\n      let session = await Auth.currentSession();\n      let groups = session.idToken.payload[\"cognito:groups\"];\n\n      if (this._isMounted) {\n        this.setState({ user, account, groups });\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  onSubtleTestClick() {\n    this.props.history.push(`/subtle-test`);\n  };\n\n  onNursingClick() {\n    this.props.history.push(`/nursing`);\n  };\n\n  onCoursePracticeClick(course) {\n    this.props.history.push(`/course/${course.id}/practice`);\n  };\n\n  onCourseTestClick(course) {\n    this.props.history.push(`/course/${course.id}/test`);\n  };\n\n  onComicSpiritClick(comic) {\n    let { comicsSpirit } = this.state;\n    let ids = comicsSpirit.map(item => item.id);\n\n    this.props.dispatch(rootActions.setComicSpiritIds(ids));\n    this.props.history.push(`/comic-spirit/${comic.id}`);\n  };\n\n  onResultsClick() {\n    this.props.history.push(`/results`);\n  };\n\n  onKibiinNotificationClose = (item) => {\n    let notificationsReaded = [...this.props.notificationsReaded];\n    notificationsReaded.push(item.id);\n    this.props.dispatch(rootActions.updateReadNotifications(notificationsReaded));\n  };\n\n  onCourseSectionClick = () => {\n    window.scrollTo(0, this.CourseRef.current.offsetTop - 70);\n  };\n\n  async onComicLifeClick(comic) {\n    let { comicsLife } = this.state;\n    let ids = comicsLife.map(item => item.id);\n\n    this.props.dispatch(rootActions.setComicLifeIds(ids));\n    this.props.history.push(`/comic-life/${comic.id}`);\n  };\n\n  onComicSectionClick = () => {\n    window.scrollTo(0, this.ComicSpiritRef.current.offsetTop - 70);\n  };\n\n  formatByLanguage = (value) => {\n    let array = JSON.parse(value);\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return \"Undefined\"//array[commonService.mainLanguage];\n    }\n  };\n\n  async onLogout() {\n\n    try {\n      await Auth.signOut();\n      this.props.history.push('/login');\n    } catch (e) {\n      console.error(e);\n    }\n\n  }\n\n  onMovies = () => {\n    window.scrollTo(0, this.MoviesRef.current.offsetTop - 70);\n  };\n\n  renderKiiibinSpeech = () => {\n    const {notificationsList, notificationsReaded} = this.props;\n\n    let index = notificationsList.findIndex(item => notificationsReaded.indexOf(item.id) === -1);\n\n    if (index === -1) {\n      return null;\n    }\n\n    let item = notificationsList[index];\n    return (\n      <div className=\"speech\">\n        {item.avatar === 'kiiibin_back' && <KiiibinBack width={80} height={80} />}\n        {item.avatar === 'kiiibin_relux' && <KiiibinRelux width={80} height={80} />}\n        {item.avatar === 'kiiibin_sad' && <KiiibinSad width={80} height={80} />}\n        {item.avatar === 'kiiibin_sit' && <KiiibinSit width={80} height={80} />}\n        {item.avatar === 'kiiibin_smile' && <KiiibinSmile width={80} height={80} />}\n        {item.avatar === 'kiiibin_teach' && <KiiibinTeach width={80} height={80} />}\n        <div className=\"speech-bubble\">{item.description}</div>\n        <div className=\"d-flex flex-row justify-content-center align-items-center text-center pointer\"\n             style={{positions: 'absolute', top: 0, right: 0, width: 40, height: 40}}\n             onClick={() => this.onKibiinNotificationClose(item)}\n        >\n          <FontAwesomeIcon className=\"text-secondary\" icon={faTimes} />\n        </div>\n      </div>\n    );\n  };\n\n  renderLargeActions = () => {\n    const {accountPermissions} = this.state;\n    return (\n      <div>\n        <div className=\"cards cards__row mb-3\">\n          {accountPermissions.indexOf('COURSE') !== -1 && (\n            <div className={`cards__item blue pointer`} onClick={this.onCourseSectionClick}>\n              <div className=\"cards__item__title\">{langService.translate(\"study\", this.props.currentLang)}</div>\n              <LearningSvg width={80} height={80} fill=\"#ffffff\" />\n            </div>\n          )}\n          {accountPermissions.indexOf('COMIC') !== -1 && (\n            <div className={`cards__item orange pointer`} onClick={this.onComicSectionClick}>\n              <div className=\"cards__item__title\">{langService.translate(\"learnByManga\", this.props.currentLang)}</div>\n              <MangaSvg width={80} height={80} fill=\"#ffffff\" />\n            </div>\n          )}\n          {accountPermissions.indexOf('SUBTLE') !== -1 && (\n            <div className={`cards__item green pointer`} onClick={() => this.onSubtleTestClick()}>\n              <div className=\"cards__item__title\">{langService.translate(\"abilityTest\", this.props.currentLang)}</div>\n              <TestSvg width={80} height={80} fill=\"#ffffff\" />\n            </div>\n          )}\n          {accountPermissions.indexOf('NURSING') !== -1 && (\n            <div className={`cards__item green pointer`} onClick={() => this.onNursingClick()}>\n              <div className=\"cards__item__title\">きづっきー診断</div>\n              <TestSvg width={80} height={80} fill=\"#ffffff\" />\n            </div>\n          )}\n          {accountPermissions.indexOf('COURSE') !== -1 && accountPermissions.indexOf('COMIC') !== -1 && (\n          <div className={`cards__item purple pointer`} onClick={() => this.onResultsClick()}>\n            <div className=\"cards__item__title\">{langService.translate(\"logResults\", this.props.currentLang)}</div>\n            <ResultsSvg width={80} height={80} fill=\"#ffffff\" />\n          </div>\n          )}\n          {accountPermissions.indexOf('MOVIE') !== -1 && (\n          <div className={`cards__item yellow pointer`} onClick={() => this.onMovies()}>\n            <div className=\"cards__item__title\">{langService.translate(\"movies\", this.props.currentLang)}</div>\n            <ResultsSvg width={80} height={80} fill=\"#ffffff\" />\n          </div>\n          )}\n          {/*<div className={`cards__item yellow pointer`} onClick={() => console.log('feedback')}>*/}\n          {/*  <div className=\"cards__item__title\">{langService.translate(\"askAQuestion\", this.props.currentLang)}</div>*/}\n          {/*  <FeedbackSvg width={80} height={80} fill=\"#ffffff\" />*/}\n          {/*</div>*/}\n        </div>\n      </div>\n    );\n  };\n\n  renderCourses = () => {\n    let { courses, accountSettings } = this.state;\n    let coursesPractice = accountSettings.coursesPractice ? accountSettings.coursesPractice : {};\n    let lastCourse = courses[courses.length - 1];\n    let practiceFinished = !!coursesPractice[lastCourse.id];\n\n    return (\n      <>\n        <h2 className=\"font-weight-normal\">\n          KIBI-learning\n          {practiceFinished && (<Button variant=\"info\" size=\"sm\" className=\"ml-2\">{langService.translate(\"continue\", this.props.currentLang)}</Button>)}\n        </h2>\n        <div className=\"cards mb-3\">\n          {courses.map((course, index) => (\n            <div key={course.id} className=\"cards__item blue-outline\">\n              <div className=\"cards__item__title\">\n                {this.formatByLanguage(course.title)}\n              </div>\n              {course.description && (<div className=\"details\">{this.formatByLanguage(course.description)}</div>)}\n              <div className=\"actions\">\n                <Button\n                  variant={coursesPractice[course.id] ? \"outline-primary\" : \"primary\"}\n                  disabled={!(index === 0 || coursesPractice[course.id] || (courses[index - 1] && courses[index - 1].id && !!coursesPractice[courses[index - 1].id]))}\n                  onClick={() => this.onCoursePracticeClick(course)}\n                >\n                  {langService.translate(\"practice\", this.props.currentLang)}\n                </Button>\n                <Button\n                  variant=\"primary\"\n                  className=\"mt-2\"\n                  disabled={!coursesPractice[course.id] && !practiceFinished}\n                  onClick={() => this.onCourseTestClick(course)}\n                >\n                  {langService.translate(\"test\", this.props.currentLang)}\n                </Button>\n              </div>\n            </div>\n          ))}\n        </div>\n      </>\n    );\n  };\n\n  renderComicsSpirit = () => {\n    let { comicsSpirit } = this.state;\n    // let coursesPractice = accountSettings.coursesPractice ? accountSettings.coursesPractice : {};\n    // let lastCourse = courses[courses.length - 1];\n    // let practiceFinished = !!coursesPractice[lastCourse.id];\n\n    return (\n      <>\n        <h2 className=\"font-weight-normal\">\n          KIBI-Manga-spirit\n          {/*{practiceFinished && (<Button variant=\"info\" size=\"sm\" className=\"ml-2\">続きから</Button>)}*/}\n        </h2>\n        <div className=\"cards mb-3\">\n          {comicsSpirit.map((comic, index) => (\n            <div key={comic.id} className=\"cards__item blue-outline pointer\" onClick={() => this.onComicSpiritClick(comic)}>\n              <div className=\"cards__item__title\">\n                {this.formatByLanguage(comic.title)}\n              </div>\n              {comic.description && (<div className=\"details\">{this.formatByLanguage(comic.description)}</div>)}\n            </div>\n          ))}\n        </div>\n      </>\n    );\n  };\n\n  renderComicsLife = () => {\n    let { comicsLife } = this.state;\n    // let coursesPractice = accountSettings.coursesPractice ? accountSettings.coursesPractice : {};\n    // let lastCourse = courses[courses.length - 1];\n    // let practiceFinished = !!coursesPractice[lastCourse.id];\n\n    return (\n      <>\n        <h2 className=\"font-weight-normal\">\n          KIBI-Manga-life\n          {/*{practiceFinished && (<Button variant=\"info\" size=\"sm\" className=\"ml-2\">続きから</Button>)}*/}\n        </h2>\n        <div className=\"cards mb-3\">\n          {comicsLife.map((comic, index) => (\n            <div key={comic.id} className=\"cards__item blue-outline pointer\" onClick={() => this.onComicLifeClick(comic)}>\n              <div className=\"cards__item__title\">\n                {this.formatByLanguage(comic.title)}\n              </div>\n              {comic.description && (<div className=\"details\">{this.formatByLanguage(comic.description)}</div>)}\n            </div>\n          ))}\n        </div>\n      </>\n    );\n  };\n\n  renderDisabled = (intercomUser) => {\n    return (\n      <Div100vh className=\"d-flex justify-content-center align-items-center flex-column text-center\">\n        <div>アカウントは停止されています。</div>\n        <Button variant=\"primary\" className=\"mt-3\" onClick={this.onLogout.bind(this)}>ログアウトする</Button>\n        {intercomUser && <Intercom appID={process.env.REACT_APP_INTERCOM_API_KEY} { ...intercomUser }/>}\n      </Div100vh>\n    );\n  };\n\n  renderMovies = () => {\n    const {videoModalYoutube} = this.state;\n    const movies1 = [\n      {title: '1-1', preview: '/images/movie-1-preview.png', youtube: 'https://www.youtube.com/embed/_m4NorEP6Jw'},\n    ];\n    const movies2 = [\n      {title: '2-1', preview: '/images/movie-2-1-preview.png', youtube: 'https://www.youtube.com/embed/MCQENftTI1M'},\n      {title: '2-2', preview: '/images/movie-2-2-preview.png', youtube: 'https://www.youtube.com/embed/75tg0zg6xOA'},\n      {title: '2-3', preview: '/images/movie-2-3-preview.png', youtube: 'https://www.youtube.com/embed/i9_lW9SBYBg'},\n      {title: '2-4', preview: '/images/movie-2-4-preview.png', youtube: 'https://www.youtube.com/embed/_x3kxEYbs8o'},\n      {title: '2-5', preview: '/images/movie-2-5-preview.png', youtube: 'https://www.youtube.com/embed/riPKmafd9Gc'},\n    ];\n\n    return (\n      <>\n        <h2 className=\"font-weight-normal\">\n          キャリアデザイン就活\n        </h2>\n        <div className=\"cards mb-3\">\n          {movies1.map((movie, index) => (\n            <div key={index}\n                 className=\"cards__item img-bg pointer\"\n                 style={{\n                   position: 'relative',\n                   background: `url(${movie.preview}) no-repeat`,\n                   border: '1px solid #ffffff',\n                   overflow: 'hidden',\n                 }}\n                 onClick={() => this.setState({videoModalYoutube: movie.youtube})}>\n              <div style={{position: 'absolute', left: 0, top: 0, right: 0, bottom: 0, backgroundColor: 'rgba(0,0,0,0.2)'}}/>\n              <div style={{position: 'absolute', left: 16, top: 16}}>\n                <div className=\"cards__item__title stroke\">\n                  {movie.title}\n                </div>\n              </div>\n            </div>\n          ))}\n        </div>\n\n        <h2 className=\"font-weight-normal\">\n          ビジネスコミュニケーション\n        </h2>\n        <div className=\"cards mb-3\">\n          {movies2.map((movie, index) => (\n            <div key={index}\n                 className=\"cards__item img-bg pointer\"\n                 style={{\n                   position: 'relative',\n                   background: `url(${movie.preview}) no-repeat`,\n                   border: '1px solid #ffffff',\n                   overflow: 'hidden',\n                 }}\n                 onClick={() => this.setState({videoModalYoutube: movie.youtube})}>\n              <div style={{position: 'absolute', left: 0, top: 0, right: 0, bottom: 0, backgroundColor: 'rgba(0,0,0,0.2)'}}/>\n              <div style={{position: 'absolute', left: 16, top: 16}}>\n                <div className=\"cards__item__title stroke\">\n                  {movie.title}\n                </div>\n              </div>\n            </div>\n          ))}\n        </div>\n\n        {videoModalYoutube && (<div style={{backgroundColor: '#000',\n          position: 'fixed',\n          left: 0, top: 0, right: 0, bottom: 0, zIndex: 9999,\n          display: 'flex',\n          flexDirection: 'column'\n        }}>\n          <div style={{padding: 8, display: 'flex', flexDirection: 'row', justifyContent: 'flex-end'}}>\n            <Button variant=\"outline-secondary\" onClick={() => this.setState({videoModalYoutube: null})}>\n              <FontAwesomeIcon className=\"text-white\" icon={faTimes} />\n            </Button>\n          </div>\n          <iframe style={{flex: '1 1 0', marginLeft: 8, marginRight: 8, marginBottom: 100, border: 'none'}}\n                  src={`${videoModalYoutube}?autoplay=1`}>\n          </iframe>\n        </div>)}\n      </>\n    );\n  };\n\n  render() {\n    const {accountPermissions, account, loading} = this.state;\n\n    let intercomUser = null;\n\n    if (account) {\n      intercomUser = {\n        user_id: account.id,\n        email: account.email,\n        name: account.name,\n      };\n    }\n\n    if (account && (account.disabled || (account.parent && account.parent.disabled))) {\n      return this.renderDisabled(intercomUser);\n    }\n\n    return (\n      <>\n      <MarketContainer isLoading={this.state.loading}>\n        {/*{this.renderKiiibinSpeech()}*/}\n        {this.renderLargeActions()}\n        <div ref={this.CourseRef} />\n        {this.state.courses.length > 0 && accountPermissions.indexOf('COURSE') !== -1 && this.renderCourses()}\n        <div ref={this.ComicSpiritRef} />\n        {this.state.comicsSpirit.length > 0 && accountPermissions.indexOf('COMIC') !== -1 && this.renderComicsSpirit()}\n        {this.state.comicsLife.length > 0 && accountPermissions.indexOf('COMIC') !== -1 && this.renderComicsLife()}\n        <div ref={this.MoviesRef} />\n        {accountPermissions.indexOf('MOVIE') !== -1 && this.renderMovies()}\n        {intercomUser && <Intercom appID={process.env.REACT_APP_INTERCOM_API_KEY} { ...intercomUser }/>}\n      </MarketContainer>\n\n\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang,\n    notificationsObject: state.root.notifications,\n    notificationsList: state.root.notifications.kibiin,\n    notificationsReaded: state.root.notifications.readed,\n  };\n}\n\nexport default connect(mapStateToProps)(MarketPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport MainHeader from \"../../../components/commons/MainHeader\";\nimport {Badge, ButtonToolbar, Container, ListGroup} from \"react-bootstrap\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown, faAngleUp } from '@fortawesome/free-solid-svg-icons'\nimport * as commonService from \"../../../services/common\";\nimport * as rootActions from \"../../../store/root/actions\";\nimport {Auth} from \"aws-amplify\";\nimport * as accountService from \"../../../services/account\";\n\nclass NotificationsPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      user: null,\n      groups: [],\n      selectedIds: [],\n    };\n  }\n\n  componentDidMount() {\n    this.fetchData();\n  }\n\n  fetchData = async () => {\n    const user = await Auth.currentAuthenticatedUser();\n    let session = await Auth.currentSession();\n    let groups = session.idToken.payload[\"cognito:groups\"];\n\n    this.setState({ user, groups });\n\n    this.props.dispatch(rootActions.fetchNotifications());\n  };\n\n  onViewClick = (item) => {\n    let notificationsReaded = [...this.props.notificationsReaded];\n    let selectedIds = [...this.state.selectedIds];\n    let index = selectedIds.indexOf(item.id);\n\n    if (index === -1) {\n      if (notificationsReaded.indexOf(item.id) === -1) {\n        notificationsReaded.push(item.id);\n        this.props.dispatch(rootActions.updateReadNotifications(notificationsReaded));\n      }\n      selectedIds.push(item.id);\n    } else {\n      selectedIds.splice(index, 1);\n    }\n    this.setState({selectedIds});\n  };\n\n  renderItem = (item) => {\n    const {selectedIds} = this.state;\n    const {notificationsReaded} = this.props;\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex flex-column\">\n        <div className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onViewClick(item)}>\n          <div className=\"d-flex flex-row justify-content-start align-items-center\">\n            {notificationsReaded.indexOf(item.id) === -1 && <Badge variant=\"danger\" style={{marginRight: 8}}>NEW</Badge>}\n            <div>{item.title}</div>\n          </div>\n          <div>\n            {commonService.formatDate(item.createdAt)}\n            <FontAwesomeIcon className=\"text-secondary ml-2\" icon={selectedIds.indexOf(item.id) !== -1 ? faAngleUp : faAngleDown} />\n          </div>\n        </div>\n        {selectedIds.indexOf(item.id) !== -1 && (\n          <div className=\"mt-2\">\n            {item.description}\n          </div>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  render() {\n    const {notificationsList} = this.props;\n    const {user, groups} = this.state;\n\n    let notifications = notificationsList.filter(item => {\n      if (item.userGroup) {\n        return groups.indexOf(item.userGroup.toLowerCase()) !== -1;\n      } else {\n        return item.userId === user.getUsername();\n      }\n    });\n\n    return (\n      <>\n        <MainHeader isPractice={false} isTest={false} />\n        <Container style={{marginTop: 64}}>\n          <ButtonToolbar className=\"justify-content-between align-items-center\" >\n            <h1 className=\"m-0\">お知らせ</h1>\n          </ButtonToolbar>\n\n          <ListGroup className=\"mt-3\">\n            {notifications.map(item => this.renderItem(item))}\n            {notifications.length === 0 && (\n              <ListGroup.Item>\n                何も見つかりませんでした\n              </ListGroup.Item>\n            )}\n          </ListGroup>\n        </Container>\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    notificationsObject: state.root.notifications,\n    notificationsList: state.root.notifications.list,\n    notificationsReaded: state.root.notifications.readed,\n  };\n}\n\nexport default connect(mapStateToProps)(NotificationsPage);\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetAllCoursesTestResults, GetAdminCoursesTestResults, GetCoursesTestResults, GetCourseTestResult, CreateCourseTestResult } from \"./graphql/course-test-results\";\n\nexport const fetchAllCoursesTestResults = async (userId) => {\n  const response = await API.graphql(graphqlOperation(\n    GetAllCoursesTestResults,\n    { userId },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAllCoursesTestResults;\n};\n\nexport const fetchAdminCoursesTestResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAdminCoursesTestResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAdminCoursesTestResults;\n};\n\nexport const fetchCoursesTestResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetCoursesTestResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getCoursesTestResults;\n};\n\nexport const fetchCourseTestResult = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    GetCourseTestResult,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getCourseTestResult;\n};\n\nexport const createCourseTestResult = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateCourseTestResult,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createCourseTestResult;\n};\n","export const GetCoursesTestResults = `\n  query {\n    getCoursesTestResults {\n        items {\n            id\n            results\n            createdAt\n            course {\n                id\n                title\n                testQuestions {\n                    id\n                    title\n                }\n            }\n        }\n    }\n  }\n`;\n\nexport const GetAllCoursesTestResults = `\n  query GetAllCoursesTestResults($userId: ID!){\n    getAllCoursesTestResults(userId: $userId) {\n      items {\n        id\n        results\n        createdAt\n        course {\n          id\n          title\n          testQuestions {\n              id\n              title\n              answers\n          }\n        }\n      }\n    }\n  }\n`;\n\nexport const GetAdminCoursesTestResults = `\n    query GetAdminCoursesTestResults{\n        getAdminCoursesTestResults {\n            items {\n                id\n                results\n                createdAt\n                course {\n                    id\n                    title\n                    testQuestions {\n                        id\n                        title\n                    }\n                }\n                user {\n                    id\n                    name\n                    parentId\n                }\n            }\n        }\n    }\n`;\n\nexport const GetCourseTestResult = `\n  query GetCourseTestResult($id: ID!) {\n    getCourseTestResult(id: $id) {\n      id\n      results\n      course {\n        id\n        title\n        testQuestions {\n          id\n          title\n        }\n      }\n    }\n  }\n`;\n\nexport const CreateCourseTestResult = `\n  mutation CreateCourseTestResult($input: CourseTestResultInput!) {\n    createCourseTestResult(input: $input) {\n      id\n    }\n  }\n`;\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetAllSubtleTestResults, GetAdminSubtleTestResults, GetSubtleTestResults, GetSubtleTestResult, CreateSubtleTestResult } from \"./graphql/subtle-test-results\";\n\nexport const fetchAllSubtleTestResults = async (userId) => {\n  const response = await API.graphql(graphqlOperation(\n    GetAllSubtleTestResults,\n    { userId },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAllSubtleTestResults;\n};\n\nexport const fetchAdminSubtleTestResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAdminSubtleTestResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAdminSubtleTestResults;\n};\n\nexport const fetchSubtleTestResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetSubtleTestResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getSubtleTestResults;\n};\n\nexport const fetchSubtleTestResult = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    GetSubtleTestResult,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getSubtleTestResult;\n};\n\nexport const createSubtleTestResult = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateSubtleTestResult,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createSubtleTestResult;\n};\n","export const GetSubtleTestResults = `\n  query {\n    getSubtleTestResults {\n        items {\n            id\n            results\n            createdAt\n        }\n    }\n  }\n`;\n\nexport const GetAllSubtleTestResults = `\n  query GetAllSubtleTestResults($userId: ID!){\n    getAllSubtleTestResults(userId: $userId) {\n      items {\n        id\n        results\n        createdAt\n      }\n    }\n  }\n`;\n\nexport const GetAdminSubtleTestResults = `\n    query GetAdminSubtleTestResults{\n        getAdminSubtleTestResults {\n            items {\n                id\n                results\n                createdAt\n                user {\n                    id\n                    name\n                    parentId\n                }\n            }\n        }\n    }\n`;\n\nexport const GetSubtleTestResult = `\n  query GetSubtleTestResult($id: ID!) {\n    getSubtleTestResult(id: $id) {\n      id\n      results\n    }\n  }\n`;\n\nexport const CreateSubtleTestResult = `\n  mutation CreateSubtleTestResult($input: SubtleTestResultInput!) {\n    createSubtleTestResult(input: $input) {\n      id\n    }\n  }\n`;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport MainHeader from \"../../../components/commons/MainHeader\";\nimport { Badge, ButtonToolbar, Container, ListGroup, Nav } from \"react-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport * as courseTestResultsService from \"../../../services/course-test-results\";\nimport * as subtleTestResultsService from \"../../../services/subtle-test-results\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faAngleDown, faAngleUp } from \"@fortawesome/free-solid-svg-icons\";\nimport * as contentsService from \"../../../services/contents\";\nimport * as langService from \"../../../services/lang\";\nimport RadarChart from \"react-svg-radar-chart\";\nimport \"./index.scss\";\n\n\nclass CourseResultsPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      subtleContent: null,\n      courseResults: [],\n      subtleResults: [],\n      courseTestResultsOpenCourseId: null,\n      subtleTestResultsOpenCourseId: null,\n      resultsSelectedIndex: 0,\n    };\n  }\n\n  componentDidMount() {\n    this._isMount = true;\n    this.fetchData();\n  }\n\n  fetchData = async () => {\n    try {\n      let subtleContent = await contentsService.fetchContent('SUBTLE');\n      if (subtleContent) {\n        subtleContent.settings = JSON.parse(subtleContent.settings);\n      }\n\n      let courseTestResultsResponse = await courseTestResultsService.fetchCoursesTestResults();\n      let subtleTestResultsResponse = await subtleTestResultsService.fetchSubtleTestResults();\n      let courseResults = courseTestResultsResponse.items;\n      let subtleResults = subtleTestResultsResponse.items;\n      courseResults.forEach((item) => {\n        item.results = JSON.parse(item.results);\n      });\n      subtleResults.forEach((item) => {\n        item.results = JSON.parse(item.results);\n      });\n\n      this.setState({\n        subtleContent,\n        courseResults,\n        subtleResults\n      });\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  componentWillUnmount() {\n    this._isMount = false;\n  }\n\n  isCorrect = (question, answers) => {\n    let array = answers.filter((answer) => answer.questionId === question.id);\n    if (array.length !== 1) { return false; }\n    return array[0].isCorrect;\n  };\n\n  onCourseTestResultsClick = (item) => {\n    if (this.state.courseTestResultsOpenCourseId) {\n      if (this.state.courseTestResultsOpenCourseId === item.id) {\n        this.setState({ courseTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ courseTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ courseTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onSubtleTestResultsClick = (item) => {\n    if (this.state.subtleTestResultsOpenCourseId) {\n      if (this.state.subtleTestResultsOpenCourseId === item.id) {\n        this.setState({ subtleTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ subtleTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ subtleTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  renderCourseResults = () => {\n    const { courseResults } = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"justify-content-between align-items-center\" >\n          <h1 className=\"m-0\">コース履歴・成績</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {courseResults.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }} onClick={() => this.onCourseTestResultsClick(item)}>\n              <div className=\"d-flex justify-content-between align-items-center\">\n                <div>\n                  {JSON.parse(item.course.title)[commonService.mainLanguage] + \" \"}\n                  <Badge variant=\"primary\">{Math.floor(100 / item.results.totalAnswers * item.results.correctAnswers)}点</Badge>\n                </div>\n                <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.courseTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n              </div>\n              {item.id === this.state.courseTestResultsOpenCourseId && (\n                <ListGroup className=\"mt-4\">\n                  {item.course.testQuestions.map((testQuestion) => (\n                    <ListGroup.Item key={testQuestion.id} variant={this.isCorrect(testQuestion, item.results.answers) ? \"success\" : \"danger\"}>\n                      {JSON.parse(testQuestion.title)[commonService.mainLanguage]}\n                    </ListGroup.Item>\n                  ))}\n                </ListGroup>\n              )}\n            </ListGroup.Item>\n          ))}\n          {courseResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  buildTotalCount = (results) => {\n    let totalCount = 0;\n    for (let i = 0; i < results.length; i++) {\n      if (i < 20) {\n        if (results[i].isCorrect) {\n          totalCount += 3;\n        }\n      } else {\n        if (results[i].isCorrect) {\n          totalCount += 4;\n        }\n      }\n    }\n\n    return totalCount;\n  };\n\n  buildSkills = (results) => {\n    const { subtleContent } = this.state;\n    let skills = {\n      imagination: 0,\n      reaction: 0,\n      empathy: 0,\n      feeling: 0,\n      flexibility: 0,\n    };\n\n    for (let i = 0; i < results.length; i++) {\n      if (!results[i].isCorrect) {\n        continue;\n      }\n\n      let question = subtleContent.settings.questions[i];\n      if (question.imagination && question.imagination.value === '1') {\n        skills.imagination += 1;\n      }\n      if (question.reaction && question.reaction.value === '1') {\n        skills.reaction += 1;\n      }\n      if (question.empathy && question.empathy.value === '1') {\n        skills.empathy += 1;\n      }\n      if (question.feeling && question.feeling.value === '1') {\n        skills.feeling += 1;\n      }\n      if (question.flexibility && question.flexibility.value === '1') {\n        skills.flexibility += 1;\n      }\n    }\n\n    return skills;\n\n  };\n\n  renderResultText = (data, points, title) => {\n\n    let index = data.findIndex(item => points >= item.min && points <= item.max);\n    if (index === -1) {\n      return null;\n    }\n\n    return (\n      <>\n        <h4 className=\"mb-4\">{langService.translate(data[index].title, this.props.currentLang)}</h4>\n        <h5 className=\"mb-4\">{langService.translate(\"subtle-results-title-3\", this.props.currentLang, [title, points])}</h5>\n        <div>{langService.translate(data[index].details, this.props.currentLang)}</div>\n      </>\n    )\n  };\n\n  renderSubtleResultsItem = (item) => {\n    const { resultsSelectedIndex } = this.state;\n    const totalCount = this.buildTotalCount(item.results);\n    const skills = this.buildSkills(item.results);\n\n    const radarData = [\n      {\n        data: {\n          imagination: skills.imagination / 12,\n          reaction: skills.reaction / 12,\n          empathy: skills.empathy / 12,\n          feeling: skills.feeling / 12,\n          flexibility: skills.flexibility / 12,\n        },\n        meta: { color: 'blue' }\n      },\n    ];\n\n    const captions = {\n      imagination: langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang),\n      reaction: langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang),\n      empathy: langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang),\n      feeling: langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang),\n      flexibility: langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang),\n    };\n\n    const texts = {\n      imagination: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            jp2: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            en: \"Your ability to imagine and be proactive is not enough. Please be careful not to misunderstand and cause problems between you and your co-workers and clients.\",\n            vn: \"Không đủ khả năng để tưởng tượng tình huống.Việc thiếu trí tưởng tượng,có thể dẫn đến cách nhìn sai lệch và thiếu thiện cảm từ những người xung quanh nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            jp2: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            en: \"If you improve the ability to imagine the situation more, you will become a proactive business person.  \",\n            vn: \"Bằng cách mở rộng khả năng tưởng tượng tình huống thêm một chút, bạn sẽ có thể có được sức mạnh để tiến lên phía trước một bước.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            jp2: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            en: \"Your ability to imagine and be proactive is excellent. Please keep your ability and be an attentive business person.\",\n            vn: \"Đủ năng lực tưởng tượng để có thể nắm bắt toàn bộ tình hình đầy đủ và chính xác. Sử dụng khả năng tưởng tượng của mình để mang lại cho đối phương những giá trị và lòng tốt một cách lịch sự .\"\n          }\n        },\n      ],\n      reaction: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            jp2: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Năng lực phản ứng không đủ. Trong giao tiếp trương tác giữa người với người nó có thể là nguyên nhân gây ra sự hiểu nhầm từ phía đối phương nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            jp2: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Bằng việc tăng năng lực phản ứng của bản thân thêm 1 bước nữa thì đối phương sẽ có ấn tượng với bạn tốt đẹp hơn. Không chỉ về mặt ngôn ngữ, mà chúng ta hãy sử dụng thêm các hành động bổ trợ phi ngôn ngữ như là sự hưởng ứng, thủ thỉ, nét mặt tươi cười, giao tiếp bằng mắt.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            jp2: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            en: \"Your ability to react is excellent. Please feel, understand and react. Let's combine with the other abilities in various situations. \",\n            vn: \"Có đủ năng lực phản ứng. Hãy cảm nhận, quan sát, trong khi đó hãy nghĩ xem nên phản ứng thế nào, hãy sử dụng thêm sức mạnh khác nữa để phát huy năng lực phản ứng.\"\n          }\n        },\n      ],\n      empathy: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            jp2: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            en: \"Your ability to empathize is not enough. Please cultivate the ability to empathize because it is very important in terms of emotional communication skills.\",\n            vn: \"Không đủ sự đồng cảm để có cùng cảm nhận và suy nghĩ với đối phương. Vì nó là một loại năng lực rất quan trọng trong giao tiếp bằng cảm xúc nên cẩn trau dồi bằng cách luyện tập.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            jp2: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            en: \"If you improve your ability to empathize more, you will become a reliable business person and can close the distance between you and others.\",\n            vn: \"Bằng cách nâng cao năng lực đồng cảm thêm một bậc nữa thì sẽ có sự thay đổi to lớn rằng bạn sẽ mang lại cho  đối phương cảm giác đáng tin tưởng, và sẽ cởi mở với bạn hơn.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            jp2: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            en: \"Your ability to empathize is excellent. When you communicate with others on business, your ability to empathize will help yourself close the distance between you and others and build your network.\",\n            vn: \"Có đủ sự đồng cảm. Trong hành động mọi người có thể nương tựa vào nhau, hòa đồng với nhau, vì vậy hãy vừa phát huy năng lực đồng cảm và mở lòng thêm nữa.\"\n          }\n        },\n      ],\n      feeling: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            jp2: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            en: \"Your ability to feel and understand is not enough. Please imagine how others feel and think. To make it a habit to put yourself in other's shoes is very important.\",\n            vn: \"Không đủ năng lực phán đoán cảm xúc của người khác. Hãy luôn có thói quen nghĩ về việc đối phương bây giờ đang cảm thấy gì, nghĩ gì, suy ngẫm về điều gì.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            jp2: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            en: \"If you cultivate your ability to feel and understand more, you can know the other's suffering, joy and sadness. Human feelings can't be simulated, but can be felt and understood.\",\n            vn: \"Bằng cách nâng cao năng lực phán đoán cảm xúc một bước nữa thì bạn có khả năng cảm nhận chính xác nỗi đau, niềm hạnh phúc, sự đau buồn trong tinh thần của đối phương. Vì cảm xúc của con người là không thể tính toán được nên hãy cố gắng hết sức để nắm bắt được nó.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            jp2: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            en: \"Your ability to feel and understand is excellent. In terms of leadership and management, to feel with your five senses will help yourself greatly. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng lực phán đoán cảm xúc. Ứng với từng đối tượng, việc vừa sử dụng năm giác quan vừa phán đoán cảm xúc thì chắc chắn sẽ giúp ích rất nhiều cho bạn vào việc quản lí và lãnh đạo.\"\n          }\n        },\n      ],\n      flexibility: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            jp2: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            en: \"Your ability to be flexible is not enough. If you are not flexible, it will cause some serious problems in terms of business communication. Please try to accept the other's advice and feedback at first.\",\n            vn: \"Không đủ tính linh hoạt. Các khái niệm cố định và các giá trị cứng nhắc đôi khi sẽ dẫn đến những vấn đề nghiêm trọng trong giao tiếp như là hiểu nhầm hay ganh ghét. Vì vậy, đầu tiên hãy tiếp nhận đối phương và môi trường xung quanh sau đó hãy bắt đầu.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            jp2: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            en: \"If you cultivate your ability to be flexible more, your communication skills will be improved because you can accept various values, cultures and ideas.\",\n            vn: \"Hi vọng là hãy tăng thêm tính linh hoạt một bước nữa. Việc tăng tính linh hoạt không hề phá hủy phong cách của bạn, trái lại, nó phát triển phong cách của bạn vì bạn có thể chuyển sang việc tiếp thu những tư tưởng văn hóa, giá trị quan hay những suy nghĩ khác nhau.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            jp2: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            en: \"Your ability to be flexible is excellent. From the viewpoint of others, you will make communication go smoothly and encourage collaboration among your team. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng tính linh hoạt. Tính linh hoạt của bạn là do nhìn từ phía đối phương, do đó không chỉ tạo điều kiện cho việc giao tiếp suôn sẻ, mà còn giúp bạn nuôi dưỡng được không gian tự do cá nhân. Vì vậy, hãy giữ cho bạn luôn luôn linh hoạt và cải thiện hơn nữa.\"\n          }\n        },\n      ],\n    };\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }}>\n        <div className=\"d-flex justify-content-between align-items-center\" onClick={() => this.onSubtleTestResultsClick(item)}>\n          <div>\n            <Badge variant=\"primary\">{totalCount}点</Badge>\n          </div>\n          <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.subtleTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n        </div>\n        {item.id === this.state.subtleTestResultsOpenCourseId && (\n          <ListGroup className=\"mt-4\">\n            <div className=\"py-5 subtle-test-results\">\n              <div className=\"header\">\n                <h3>{langService.translate('subtle-results-title-0', this.props.currentLang)}</h3>\n                <h3 className=\"points\">\n                  <div>{langService.translate('subtle-results-title-1', this.props.currentLang)}</div>\n                  <div>{langService.translate('subtle-results-title-2', this.props.currentLang, [totalCount])}</div>\n                </h3>\n              </div>\n              <div className=\"content subtle-results-content\">\n                {/*<div className=\"row\">*/}\n                <div className=\"radar\">\n                  <RadarChart\n                    captions={captions}\n                    data={radarData}\n\n                  />\n                </div>\n                <div className=\"tabs\">\n                  <Nav variant=\"pills\">\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 0 })} active={resultsSelectedIndex === 0}>\n                        {langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang)}\n                      </Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 1 })} active={resultsSelectedIndex === 1}>\n                        {langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang)}\n                      </Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 2 })} active={resultsSelectedIndex === 2}>\n                        {langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang)}\n                      </Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 3 })} active={resultsSelectedIndex === 3}>\n                        {langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang)}\n                      </Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 4 })} active={resultsSelectedIndex === 4}>\n                        {langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang)}\n                      </Nav.Link>\n                    </Nav.Item>\n                  </Nav>\n                  <div className=\"tabs-content\">\n                    {resultsSelectedIndex === 0 && (this.renderResultText(texts['imagination'], skills.imagination, langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang)))}\n                    {resultsSelectedIndex === 1 && (this.renderResultText(texts['reaction'], skills.reaction, langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang)))}\n                    {resultsSelectedIndex === 2 && (this.renderResultText(texts['empathy'], skills.empathy, langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang)))}\n                    {resultsSelectedIndex === 3 && (this.renderResultText(texts['feeling'], skills.feeling, langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang)))}\n                    {resultsSelectedIndex === 4 && (this.renderResultText(texts['flexibility'], skills.flexibility, langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang)))}\n                  </div>\n                </div>\n                {/*</div>*/}\n              </div>\n            </div>\n          </ListGroup>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  renderSubtleResults = () => {\n    const { subtleResults } = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"justify-content-between align-items-center mt-5\" >\n          <h1 className=\"m-0\">社会人機微力履歴・成績</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {subtleResults.map(item => this.renderSubtleResultsItem(item))}\n          {subtleResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <MainHeader isPractice={false} isTest={false} />\n        <Container style={{ marginTop: 64 }}>\n          {this.renderCourseResults()}\n          {this.renderSubtleResults()}\n        </Container>\n      </>\n    );\n  }\n}\n\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(CourseResultsPage);\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetUsers, GetUser, CreateUser, CreateUserManager, UpdateUser, UpdateUserManager, DeleteUser, DisableUser, EnableUser } from \"./graphql/users\";\n\nexport const fetchUsers = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetUsers,\n    {},\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getUsers;\n};\n\nexport const fetchUser = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    GetUser,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getUser;\n};\n\nexport const createUser = async ({userGroup, name, manager, email, password, parentId}) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateUser,\n    { input: { userGroup, name: name ? name : null, manager: manager ? manager : null, email, password, parentId: parentId ? parentId : null } },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createUser;\n};\n\nexport const createUserManager = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateUserManager,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createUserManager;\n};\n\nexport const updateUser = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateUser,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateUser;\n};\n\nexport const updateUserManager = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateUserManager,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateUserManager;\n};\n\nexport const deleteUser = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    DeleteUser,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.deleteUser;\n};\n\nexport const disableUser = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    DisableUser,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.disableUser;\n};\n\nexport const enableUser = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    EnableUser,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.enableUser;\n};\n","export const GetUsers = `\n  query GetUsers($first: Int, $after: String) {\n    getUsers(first: $first, after: $after) {\n      items {\n        id\n        userGroup\n        name\n        department\n        manager\n        childMaxCount\n        email\n        parentId\n        permissions\n        createdAt\n          disabled\n        parent {\n          id\n          name\n            disabled\n        }\n      }\n      nextToken\n    }\n  }\n`;\n\nexport const GetUser = `\n  query GetUser($id: ID!) {\n    getUser(id: $id) {\n      id\n      userGroup\n      name\n      department\n      manager\n      childMaxCount\n      email\n      permissions\n      createdAt\n        disabled\n      parent {\n        id\n        name\n          disabled\n      }\n      subtleResults\n    }\n  }\n`;\n\nexport const CreateUser = `\n  mutation CreateUser($input: UserCreateInput!) {\n    createUser(input: $input) {\n      id\n      userGroup\n      email\n      createdAt\n    }\n  }\n`;\n\nexport const CreateUserManager = `\n  mutation CreateUserManager($input: UserManagerCreateInput!) {\n    createUserManager(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const UpdateUser = `\n  mutation UpdateUser($input: UserUpdateInput!) {\n    updateUser(input: $input) {\n      id\n      userGroup\n      email\n      createdAt\n    }\n  }\n`;\n\nexport const UpdateUserManager = `\n  mutation UpdateUserManager($input: UserManagerUpdateInput!) {\n    updateUserManager(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const DeleteUser = `\n  mutation DeleteUser($id: ID!) {\n    deleteUser(id: $id)\n  }\n`;\n\nexport const DisableUser = `\n    mutation DisableUser($id: ID!) {\n        disableUser(id: $id) {\n            id\n        }\n    }\n`;\n\nexport const EnableUser = `\n    mutation EnableUser($id: ID!) {\n        enableUser(id: $id) {\n            id\n        }\n    }\n`;\n\nexport const OnUpdateUserStatus = `\n    subscription OnUpdateUserStatus($id: ID, $parentId: ID) {\n        onUpdateUserStatus(id: $id, parentId: $parentId) {\n            id\n            userGroup\n            name\n            department\n            manager\n            childMaxCount\n            email\n            permissions\n            createdAt\n            parentId\n        }\n    }\n`;\n","import { osName } from 'react-device-detect';\n\nexport const prepareCsv = (schema, array) => {\n  let result = \"\";\n\n  // Header\n  let schemaItem;\n  for (schemaItem of schema) {\n    if (result.length > 0) result += \",\";\n    result += schemaItem.label;\n  }\n  result += \"\\n\";\n\n  // Body\n  let arrayItem;\n  for (arrayItem of array) {\n    let resultRow = \"\";\n    for (schemaItem of schema) {\n      if (resultRow.length > 0) resultRow += \",\";\n      let value = arrayItem[schemaItem.path];\n      if (schemaItem.type) {\n        if (schemaItem.type === \"number\") {\n          resultRow += value\n        } else if (typeof schemaItem.type === \"string\") {\n          resultRow += value ? value : \"\";\n        } else {\n          resultRow += schemaItem.type(value);\n        }\n\n      } else {\n        resultRow += value ? value : \"\";\n      }\n\n    }\n    result += resultRow + \"\\n\";\n  }\n\n\n  return  result;\n};\n\nexport const downloadCsv = (csv, filename) => {\n  let data = new Blob([\"\\ufeff\" + csv]);//, {encoding:\"Shift_JIS\", type: 'text/csv;charset=Shift_JIS'}); // ;charset=Shift_JIS\n\n  // osName\n\n  let url = window.URL.createObjectURL(data);\n  let element = document.getElementById(\"download\");\n  if (element) {\n    element.parentNode.removeChild(element);\n  }\n  element = document.createElement(\"a\");\n  element.id = \"download\";\n  element.style = \"display: none\";\n  element.href = url;\n  element.download = filename;\n  document.body.appendChild(element);\n  element.click();\n  window.URL.revokeObjectURL(url);\n};\n\nexport const readCsv = async (file, schema) => {\n let string = await readFileAsync(file);\n if (!string || string.length === 0) return [];\n let rows = string.split(\"\\n\");\n let items = [];\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n   if (rowIndex === 0) continue; // skip header\n   let cols = rows[rowIndex].split(\",\");\n   if (cols.length <= 1) { continue; }\n   if (cols.length !== schema.length) throw new Error(`${rowIndex + 1}行目で列数は合ってません。${schema.length}列が必要です`)\n\n   let item = {};\n   for (let schemaIndex = 0; schemaIndex < schema.length; schemaIndex++) {\n     let value = cols[schemaIndex];\n     if (schema[schemaIndex].required && (!value || value.length === 0)) throw new Error(`${rowIndex + 1}行目・${schemaIndex + 1}列目は必須になってます`);\n     if (schema[schemaIndex].type) {\n       if (typeof schema[schemaIndex].type === \"string\") {\n         if (schema[schemaIndex].type === \"Int\") {\n           item[schema[schemaIndex].path] = value ? parseInt(value) : null;\n         } else {\n           item[schema[schemaIndex].path] = value ? value : null\n         }\n       } else {\n         let newValue = schema[schemaIndex].type(value);\n         item[schema[schemaIndex].path] = newValue ? newValue : null\n       }\n\n     } else {\n       item[schema[schemaIndex].path] = value ? value : null\n     }\n   }\n   items.push(item);\n }\n\n  return items;\n};\n\nfunction readFileAsync(file) {\n  return new Promise((resolve, reject) => {\n    let reader = new FileReader();\n    reader.onload = () => {\n      resolve(reader.result);\n    };\n    reader.onerror = reject;\n    reader.readAsText(file, 'UTF-8');\n  })\n}\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {ButtonToolbar, Button, ListGroup, Badge} from \"react-bootstrap\";\nimport * as generator from \"generate-password\"\nimport * as userService from \"../../../services/users\";\nimport * as commonService from \"../../../services/common\";\nimport * as csvService from \"../../../services/csv\";\nimport {SmallBgLoading} from \"../../../components/commons/SmallBgLoading\";\n\nclass ManagersPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n      isUpload: false,\n      uploadProgress: 0,\n      uploadError: null\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchUsers();\n  }\n\n  fetchUsers = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let response = await userService.fetchUsers();\n      let items = response.items.filter(item => item.userGroup === \"MANAGER\");\n      items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onCreateClick = () => {\n    this.props.history.push(\"/admin/new/user\");\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/admin/${item.id}/user`);\n  };\n\n  onDownload = () => {\n\n    // Generate data\n    let schema = [\n      {label: \"ID\", path: \"id\"},\n      {label: \"メールアドレス\", path: \"email\", type: \"String\"},\n      {label: \"会社名\", path: \"name\", type: \"String\"},\n      {label: \"担当者名\", path: \"department\", type: \"String\"},\n      {label: \"部署名\", path: \"manager\", type: \"String\"},\n      {label: \"アカウント数\", path: \"childMaxCount\", type: \"Int\"},\n      {label: \"権限\", path: \"permissions\", type: function(value) {\n          if (!value) return \"\";\n          let array = JSON.parse(value);\n          let item;\n          let result = \"\";\n          for (item of array) {\n            if (result.length > 0) result += \";\";\n            result += item;\n          }\n          return result\n        }},\n    ];\n\n    let csv = csvService.prepareCsv(schema, this.state.items);\n    csvService.downloadCsv(csv, \"managers.csv\");\n  };\n\n  onUploadSample = () => {\n\n    // Generate data\n    let schema = [\n      {label: \"メールアドレス\", path: \"email\", type: \"String\"},\n      {label: \"パスワード\", path: \"password\", type: \"String\"},\n      {label: \"会社名\", path: \"name\", type: \"String\"},\n      {label: \"担当者名\", path: \"department\", type: \"String\"},\n      {label: \"部署名\", path: \"manager\", type: \"String\"},\n      {label: \"アカウント数\", path: \"childMaxCount\", type: \"Int\"},\n      {label: \"権限\", path: \"permissions\", type: function(value) {\n          if (!value) return \"\";\n          let array = JSON.parse(value);\n          let item;\n          let result = \"\";\n          for (item of array) {\n            if (result.length > 0) result += \";\";\n            result += item;\n          }\n          return result\n        }},\n    ];\n\n    let items = [\n      {\n        email: \"user-1@example.com\",\n        password: \"qwerty\",\n        name: \"株式会社KIBI-1\",\n        department: \"管理部\",\n        manager: \"キビ太郎\",\n        childMaxCount: 5,\n        permissions: JSON.stringify([\"COURSE\", \"COMIC\"])\n      },\n      {\n        email: \"user-2@example.com\",\n        password: \"\",\n        name: \"株式会社KIBI-2\",\n        department: \"\",\n        manager: \"\",\n        childMaxCount: 2,\n        permissions: JSON.stringify([\"COURSE\"])\n      }\n    ];\n\n    let csv = csvService.prepareCsv(schema, items);\n    csvService.downloadCsv(csv, \"managers-sample.csv\");\n  };\n\n  onUpload = async (file) => {\n    this.setState({ loading: true, error: null });\n    let schema = [\n      {path: \"email\", type: \"String\", required: true},\n      {path: \"password\", type: function(value) {\n          if (value) return value;\n          return generator.generate({\n            length: 6,\n            uppercase: false\n          });\n        }},\n      {path: \"name\", type: \"String\", required: true},\n      {path: \"department\", type: \"String\"},\n      {path: \"manager\", type: \"String\"},\n      {path: \"childMaxCount\", type: \"Int\", required: true},\n      {path: \"permissions\", type: function(value) {\n          if (!value) throw new Error(\"権限が必須になってます\");\n          return JSON.stringify(value.replace(\"\\r\",\"\").split(\";\"));\n        }, required: true},\n    ];\n    try {\n\n      let items = await csvService.readCsv(file, schema);\n      let item;\n      for (item of items) {\n        await userService.createUserManager(item);\n      }\n      await this.fetchUsers();\n      window.alert(\"アップロードは完了しました\");\n    } catch (e) {\n      if (e.errors) {\n        window.alert(e.errors[0].message);\n      } else {\n        window.alert(e.message);\n      }\n    }\n    this.setState({ loading: false});\n  };\n\n  render() {\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">代理店一覧</h1>\n            <div className=\"d-flex\">\n              <div className='btn btn-outline-primary mr-2 pointer'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  アップロード\n                </label>\n                <input id=\"file\" accept=\"text/csv\" type='file' style={{display: 'none'}} onChange={(e) => {this.onUpload(e.target.files[0]); e.target.value = null;}} />\n              </div>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onUploadSample}>CSVサンプル</Button>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onDownload}>ダウンロード</Button>\n              <Button variant=\"primary\" onClick={this.onCreateClick}>新規制作</Button>\n            </div>\n          </ButtonToolbar>\n\n          <ListGroup className=\"mt-3\">\n            {this.state.items.map(item => (\n              <ListGroup.Item key={item.id} className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onEditClick(item)}>\n                <div className=\"d-flex flex-row justify-content-start align-items-center\">\n                  {item.disabled ? <Badge variant=\"danger\" className=\"mr-2\">停止中</Badge> : null}\n                  <div>{item.name ? item.name : \"未定\"} ({item.email})</div>\n                </div>\n                <div>{commonService.formatDate(item.createdAt)}</div>\n              </ListGroup.Item>\n            ))}\n            {this.state.items.length === 0 && (\n              <ListGroup.Item>\n                何も見つかりませんでした\n              </ListGroup.Item>\n            )}\n          </ListGroup>\n        </SmallBgLoading>\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(ManagersPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Alert, Button, ButtonToolbar, Form, Card, Col, InputGroup } from \"react-bootstrap\";\nimport * as generator from \"generate-password\"\nimport * as usersService  from \"../../../../services/users\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\n\nclass ManagerPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      touched: false,\n      name: {\n        value: \"\",\n        touched: false\n      },\n      department: {\n        value: \"\",\n        touched: false\n      },\n      manager: {\n        value: \"\",\n        touched: false\n      },\n      childMaxCount: {\n        value: \"1\",\n        touched: false\n      },\n      permissionCourse: {\n        value: \"\",\n        touched: false\n      },\n      permissionSubtleTest: {\n        value: \"\",\n        touched: false\n      },\n      permissionComic: {\n        value: \"\",\n        touched: false\n      },\n      permissionNursing: {\n        value: \"\",\n        touched: false\n      },\n      permissionMovie: {\n        value: \"\",\n        touched: false\n      },\n      email: {\n        value: \"\",\n        touched: false\n      },\n      password: {\n        value: \"\",\n        touched: false\n      },\n      error: null,\n      loading: false,\n      data: null,\n      user: null\n    };\n  }\n\n  async componentWillMount() {\n    let userId = this.props.match.params.userId;\n    if (userId !== \"new\") {\n      this.setState({loading: true});\n      try {\n        let user = await usersService.fetchUser(userId);\n        let permissions = user.permissions ? JSON.parse(user.permissions) : [];\n        this.setState({\n          loading: false,\n          user,\n          email: { value: user.email, touched: false},\n          name: { value: user.name ? user.name : \"\", touched: false},\n          department: { value: user.department ? user.department : \"\", touched: false},\n          manager: { value: user.manager ? user.manager : \"\", touched: false},\n          childMaxCount: { value: user.childMaxCount ? user.childMaxCount.toString() : \"\", touched: false},\n          permissionCourse: { value: permissions.indexOf(\"COURSE\") !== -1 ? \"1\" : \"0\", touched: false },\n          permissionComic: { value: permissions.indexOf(\"COMIC\") !== -1 ? \"1\" : \"0\", touched: false },\n          permissionSubtleTest: { value: permissions.indexOf(\"SUBTLE\") !== -1 ? \"1\" : \"0\", touched: false },\n          permissionNursing: { value: permissions.indexOf(\"NURSING\") !== -1 ? \"1\" : \"0\", touched: false },\n          permissionMovie: { value: permissions.indexOf(\"MOVIE\") !== -1 ? \"1\" : \"0\", touched: false },\n        });\n      } catch (error) {\n        this.onError(error);\n      }\n    }\n  }\n\n  onCancelClick = () => {\n    this.props.history.push(\"/admin/\");\n  };\n\n  onDeleteClick = async () => {\n\n    this.setState({error: null, loading: true});\n\n    try {\n      await usersService.deleteUser(this.state.user.id);\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onAutoPasswordClick = () => {\n    let password = generator.generate({\n      length: 6,\n      uppercase: false\n    });\n\n    this.setState({password: { value: password, touched: true }});\n  };\n\n  onDisable = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await usersService.disableUser(this.state.user.id);\n      let user = await usersService.fetchUser(this.state.user.id);\n      this.setState({loading: false, user});\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onEnable = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      let test = await usersService.enableUser(this.state.user.id);\n      let user = await usersService.fetchUser(this.state.user.id);\n      this.setState({loading: false, user});\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    const form = event.currentTarget;\n    event.preventDefault();\n    this.setState({error: null});\n    if (form.checkValidity() === false) {\n      this.setState({touched: true});\n      return;\n    }\n\n    let permissions = [];\n    if (this.state.permissionCourse.value === \"1\") {\n      permissions.push(\"COURSE\");\n    }\n    if (this.state.permissionComic.value === \"1\") {\n      permissions.push(\"COMIC\");\n    }\n\n    if (this.state.permissionSubtleTest.value === \"1\") {\n      permissions.push(\"SUBTLE\");\n    }\n\n    if (this.state.permissionNursing.value === \"1\") {\n      permissions.push(\"NURSING\");\n    }\n\n    if (this.state.permissionMovie.value === \"1\") {\n      permissions.push(\"MOVIE\");\n    }\n\n    if (permissions.length === 0) {\n      this.setState({touched: true, error: new Error(\"権限を設定してください\")});\n      return\n    }\n\n    this.setState({loading: true});\n\n    try {\n      if (this.state.user) {\n        await usersService.updateUserManager({\n          id: this.state.user.id,\n          password: this.state.password.value > 0 ? this.state.password.value : null,\n          name: this.state.name.value.length > 0 ? this.state.name.value : null,\n          department: this.state.department.value.length > 0 ? this.state.department.value : null,\n          manager: this.state.manager.value.length > 0 ? this.state.manager.value : null,\n          childMaxCount: this.state.childMaxCount.value.length > 0 ? this.state.childMaxCount.value : null,\n          permissions: JSON.stringify(permissions)\n        });\n      } else {\n        await usersService.createUserManager({\n          email: this.state.email.value,\n          password: this.state.password.value,\n          name: this.state.name.value.length > 0 ? this.state.name.value : null,\n          department: this.state.department.value.length > 0 ? this.state.department.value : null,\n          manager: this.state.manager.value.length > 0 ? this.state.manager.value : null,\n          childMaxCount: this.state.childMaxCount.value.length > 0 ? this.state.childMaxCount.value : null,\n          permissions: JSON.stringify(permissions)\n        });\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  formFieldRequiredValidation = (fieldName) => {\n    if (!this.state.touched && !this.state[fieldName].touched) {\n      return true;\n    }\n\n    return this.state[fieldName].value && this.state[fieldName].value.length > 0;\n  };\n\n  render() {\n    let isNew = this.props.match.params.userId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (\n            <Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>\n          )}\n\n\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">代理店{isNew ? \"制作\" : \"編集\"}</h1>\n            <div>\n              <Button variant=\"primary\"\n                      type=\"submit\"\n                      className=\"mr-2\"\n                      onClick={this.onDoneClick}>保存</Button>\n              <Button variant=\"outline-secondary\"\n                      onClick={this.onCancelClick}>キャンセル</Button>\n            </div>\n          </ButtonToolbar>\n\n          <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n            <Form.Row>\n              <Form.Group as={Col}>\n                <Form.Label>会社名</Form.Label>\n                <Form.Control required={isNew}\n                              type=\"text\"\n                              value={this.state.name.value}\n                              onChange={(e) => this.setState({name: {value: e.target.value, touched: true}})}\n                              isInvalid={isNew && !this.formFieldRequiredValidation(\"name\")} />\n                <Form.Control.Feedback type=\"invalid\">\n                  会社名を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group as={Col} md=\"2\">\n                <Form.Label>アカウント数</Form.Label>\n                <Form.Control type=\"number\"\n                              value={this.state.childMaxCount.value}\n                              onChange={(e) => this.setState({childMaxCount: {value: e.target.value, touched: true}})} />\n              </Form.Group>\n            </Form.Row>\n            <Form.Row>\n              <Form.Group as={Col}>\n                <Form.Label>部署名</Form.Label>\n                <Form.Control type=\"text\"\n                              value={this.state.department.value}\n                              onChange={(e) => this.setState({department: {value: e.target.value, touched: true}})} />\n              </Form.Group>\n              <Form.Group as={Col}>\n                <Form.Label>担当者名</Form.Label>\n                <Form.Control type=\"text\"\n                              value={this.state.manager.value}\n                              onChange={(e) => this.setState({manager: {value: e.target.value, touched: true}})} />\n              </Form.Group>\n            </Form.Row>\n            <Form.Group controlId=\"exampleForm.ControlSelect1\">\n              <Form.Label>権限</Form.Label>\n              <Form.Check\n                id=\"course\"\n                type=\"checkbox\"\n                label=\"コース\"\n                checked={this.state.permissionCourse.value === \"1\"}\n                onChange={(e) => this.setState({permissionCourse: {value: e.target.checked ? \"1\": \"0\", touched: true}})}\n              />\n              <Form.Check\n                id=\"sublte-test\"\n                type=\"checkbox\"\n                label=\"機微力テスト\"\n                checked={this.state.permissionSubtleTest.value === \"1\"}\n                onChange={(e) => this.setState({permissionSubtleTest: {value: e.target.checked ? \"1\": \"0\", touched: true}})}\n              />\n              <Form.Check\n                id=\"comic\"\n                type=\"checkbox\"\n                label=\"漫画\"\n                checked={this.state.permissionComic.value === \"1\"}\n                onChange={(e) => this.setState({permissionComic: {value: e.target.checked ? \"1\": \"0\", touched: true}})}\n              />\n              <Form.Check\n                id=\"nursing\"\n                type=\"checkbox\"\n                label=\"きづっきー診断\"\n                checked={this.state.permissionNursing.value === \"1\"}\n                onChange={(e) => this.setState({permissionNursing: {value: e.target.checked ? \"1\": \"0\", touched: true}})}\n              />\n              <Form.Check\n                id=\"movie\"\n                type=\"checkbox\"\n                label=\"動画\"\n                checked={this.state.permissionMovie.value === \"1\"}\n                onChange={(e) => this.setState({permissionMovie: {value: e.target.checked ? \"1\": \"0\", touched: true}})}\n              />\n            </Form.Group>\n            <Form.Group>\n              <Form.Label>メールアドレス</Form.Label>\n                <Form.Control required\n                            type=\"email\"\n                            disabled={!isNew}\n                            value={this.state.email.value}\n                            onChange={(e) => this.setState({email: {value: e.target.value, touched: true}})}\n                            isInvalid={!this.formFieldRequiredValidation(\"email\")} />\n                <Form.Control.Feedback type=\"invalid\">\n                  メールアドレスを入力してください\n                </Form.Control.Feedback>\n            </Form.Group>\n            <Form.Group>\n              <Form.Label>{isNew ? \"パスワード\" : \"新規パスワード\"}</Form.Label>\n              <InputGroup>\n                <Form.Control required={isNew}\n                              type=\"text\"\n                              value={this.state.password.value}\n                              onChange={(e) => this.setState({password: {value: e.target.value, touched: true}})}\n                              isInvalid={isNew && !this.formFieldRequiredValidation(\"password\")} />\n                <Form.Control.Feedback type=\"invalid\">\n                  {isNew ? \"パスワード\" : \"新規パスワード\"}を入力してください\n                </Form.Control.Feedback>\n\n                <InputGroup.Append>\n                  <Button variant=\"outline-primary\" onClick={this.onAutoPasswordClick}>自動制作</Button>\n                </InputGroup.Append>\n              </InputGroup>\n              <p className=\"text-secondary mt-2\">6桁以上の英数字を入力してください</p>\n            </Form.Group>\n\n          </Form>\n        </SmallBgLoading>\n        {!isNew && (\n          <>\n            {this.state.user && (\n              <Card className=\"mt-4 mb-4\">\n                <Card.Header variant=\"danger\" text=\"white\">アカウント状態</Card.Header>\n                <Card.Body>\n                  {!this.state.user.disabled && <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDisable}>アカウントを停止する</Button>}\n                  {this.state.user.disabled && <Button variant=\"success\" className=\"mt-2\" onClick={this.onEnable}>アカウント停止を解除する</Button>}\n                </Card.Body>\n              </Card>\n            )}\n\n            <Card className=\"mt-4 mb-4\">\n              <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n              <Card.Body>\n                <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>代理店を削除する</Button>\n              </Card.Body>\n            </Card>\n          </>\n        )}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(ManagerPage);\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetAllNursingResults, GetAdminNursingResults, GetNursingResults, GetNursingResult, CreateNursingResult } from \"./graphql/nursing-results\";\nimport {GetContent} from \"./graphql/contents\";\n\nexport const fetchAllNursingResults = async (userId) => {\n  const response = await API.graphql(graphqlOperation(\n    GetAllNursingResults,\n    { userId },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAllNursingResults;\n};\n\nexport const fetchAdminNursingResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAdminNursingResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAdminNursingResults;\n};\n\nexport const fetchNursingResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetNursingResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getNursingResults;\n};\n\nexport const fetchNursingResult = async (id) => {\n  // const response = await API.graphql(graphqlOperation(\n  //   GetNursingResult,\n  //   { id },\n  //   \"AMAZON_COGNITO_USER_POOLS\"\n  // ));\n  const response = await API.graphql({\n    query: GetNursingResult,\n    variables: { id },\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.getNursingResult;\n};\n\nexport const createNursingResult = async (input) => {\n  // const response = await API.graphql(graphqlOperation(\n  //   CreateNursingResult,\n  //   { input },\n  //   \"AMAZON_COGNITO_USER_POOLS\"\n  // ));\n  const response = await API.graphql({\n    query: CreateNursingResult,\n    variables: { input },\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.createNursingResult;\n};\n","export const GetNursingResults = `\n  query {\n    getNursingResults {\n        items {\n            id\n            results\n            createdAt\n        }\n    }\n  }\n`;\n\nexport const GetAllNursingResults = `\n  query GetAllNursingResults($userId: ID){\n    getAllNursingResults(userId: $userId) {\n      items {\n        id\n        userId\n        results\n        createdAt\n        user {\n            id\n            parentId\n            name\n        }\n      }\n    }\n  }\n`;\n\nexport const GetAdminNursingResults = `\n    query GetAdminNursingResults{\n        getAdminNursingResults {\n            items {\n                id\n                userId\n                results\n                createdAt\n                user {\n                    id\n                    name\n                    parentId\n                }\n            }\n        }\n    }\n`;\n\nexport const GetNursingResult = `\n  query GetNursingResult($id: ID!) {\n    getNursingResult(id: $id) {\n      id\n      results\n    }\n  }\n`;\n\nexport const CreateNursingResult = `\n  mutation CreateNursingResult($input: NursingResultInput!) {\n    createNursingResult(input: $input) {\n      id\n    }\n  }\n`;\n","export const buildResult = ({results, id, isFree, nickname}) => {\n\n  // console.log('id', id)\n\n  let totalCorrect = 0;\n  let totalPositiveStroke = 0;\n  let totalNegativeStroke = 0;\n  let totalDiscount = 0;\n  let totalFlexibility = 0;\n  let totalImagination = 0;\n  let totalReaction = 0;\n  let totalEmpathy = 0;\n  let totalFeeling = 0;\n\n  results.forEach(item => {\n    totalCorrect += item.positiveStroke > 0 ? 2 : 0;\n    totalPositiveStroke += item.positiveStroke > 0 ? 1 : 0;\n    totalNegativeStroke += item.negativeStroke > 0 ? 1 : 0;\n    totalDiscount += item.discount > 0 ? 1 : 0;\n\n    totalFlexibility += item.flexibility && item.flexibility > 0 ? 1 : 0;\n    totalImagination += item.imagination && item.imagination > 0 ? 1 : 0;\n    totalReaction += item.reaction && item.reaction > 0 ? 1 : 0;\n    totalEmpathy += item.empathy && item.empathy > 0 ? 1 : 0;\n    totalFeeling += item.feeling && item.feeling > 0 ? 1 : 0;\n  })\n\n  let textTypeNumber = 0;\n  let textType = '';\n  let typeImage = '';\n  let textTypeLong = ``;\n  let textBubble = ``;\n  let textBanner = ``;\n  let textBannerText = '';\n  let textAdvice = '';\n  let textShare = '';\n  let freeUrl = 'https://app.kibi-learning.com/nursing'; //isFree ? 'https://kibi-global.jp/kidukky/' : 'https://app.kibi-learning.com/nursing'; //window.location.href\n\n  // + - d\n  if (totalPositiveStroke >= totalNegativeStroke && totalNegativeStroke >= totalDiscount) {\n    if (!isFree) {\n      if (totalCorrect >= 48) {\n        textTypeNumber = 1;\n        textType = `マッサージチェア`; //  O\n        typeImage = `massage`; // ?\n        textTypeLong = `揉み技豊富!\\nマッサージチェアタイプ`; // P\n        textBubble = `「好みに合わせて多彩な揉み技を繰りだすよ。優しく丁寧に。嫌がられたとしても、痛みを取り除くために時には強さも必要だからね。」`; // Q\n        textBanner = `相手を見る高い洞察力で適切な行動がとれる、人望の厚いタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちを第一に考えながら、上手に励ませる人です。状況によっては相手を上手に叱ることもできます。`; // N\n        textAdvice = '気を使いすぎて疲れた時は、ゆっくり入浴!半身浴は38度で20分。(諸説あり)'; //T\n        textShare = `${nickname}の家電タイプは #マッサージチェアタイプ #揉み技豊富 #優しく #丁寧に #時には強さも必要 #高い洞察力 #人望厚い #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else if (totalCorrect >= 35) {\n        textTypeNumber = 2;\n        textType = `炊飯器`; //  O\n        typeImage = `rice-cooker`; // ?\n        textTypeLong = `感度も精度も高めです。\\n炊飯器タイプ`; // P\n        textBubble = `「お米の状態によって、浸漬時間や水加減は変わるよ。ツヤとハリのあるごはんを炊き上げるには、お米の状態を見極めるのが大切なんだ。」`; // Q\n        textBanner = `相手の空気や場の空気を察知することに長けたバランサータイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちと物事の道筋のバランスを上手にとって励ましたり、叱ったりできる人です`; // N\n        textAdvice = 'あなたが忙しいのは、あなたが優秀だからです。役に立ってますから、背筋を伸ばして歩きましょう!'; //T\n        textShare = `${nickname}の家電タイプは #炊飯器タイプ #感度高め #精度も高め #見極め力 #空気を察知 #場を読む #バランサータイプ #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 3;\n        textType = `テレビ`; //  O\n        typeImage = `tv`; // ?\n        textTypeLong = `わがままアイドル\\nテレビタイプ`; // P\n        textBubble = `「私はお茶の間の人気者よ。画面越しに皆をHAPPYにするのが喜びなの!皆、私のこと見てね!」`; // Q\n        textBanner = `天性の魅力を持っていて注目の的になるタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちよりも、筋を通すことを優先します。しかしあくまでも励ますという形で、相手に伝えますが、必要なら叱ることもできる人です`; // N\n        textAdvice = '聞き上手になる近道はね、思いついたことをすぐに話さないのがコツですよ。'; //T\n        textShare = `${nickname}の家電タイプは #テレビタイプ #わがままアイドル #人気者 #皆にHappyを #私を見て #天性の魅力 #注目の的 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    } else {\n      if (totalCorrect >= 17) {\n        textTypeNumber = 1;\n        textType = `マッサージチェア`; //  O\n        typeImage = `massage`; // ?\n        textTypeLong = `揉み技豊富!\\nマッサージチェアタイプ`; // P\n        textBubble = `「好みに合わせて多彩な揉み技を繰りだすよ。優しく丁寧に。嫌がられたとしても、痛みを取り除くために時には強さも必要だからね。」`; // Q\n        textBanner = `相手を見る高い洞察力で適切な行動がとれる、人望の厚いタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちを第一に考えながら、上手に励ませる人です。状況によっては相手を上手に叱ることもできます。`; // N\n        textAdvice = '気を使いすぎて疲れた時は、ゆっくり入浴!半身浴は38度で20分。(諸説あり)'; //T\n        textShare = `${nickname}の家電タイプは #マッサージチェアタイプ #揉み技豊富 #優しく #丁寧に #時には強さも必要 #高い洞察力 #人望厚い #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else if (totalCorrect >= 13) {\n        textTypeNumber = 2;\n        textType = `炊飯器`; //  O\n        typeImage = `rice-cooker`; // ?\n        textTypeLong = `感度も精度も高めです。\\n炊飯器タイプ`; // P\n        textBubble = `「お米の状態によって、浸漬時間や水加減は変わるよ。ツヤとハリのあるごはんを炊き上げるには、お米の状態を見極めるのが大切なんだ。」`; // Q\n        textBanner = `相手の空気や場の空気を察知することに長けたバランサータイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちと物事の道筋のバランスを上手にとって励ましたり、叱ったりできる人です`; // N\n        textAdvice = 'あなたが忙しいのは、あなたが優秀だからです。役に立ってますから、背筋を伸ばして歩きましょう!'; //T\n        textShare = `${nickname}の家電タイプは #炊飯器タイプ #感度高め #精度も高め #見極め力 #空気を察知 #場を読む #バランサータイプ #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 3;\n        textType = `テレビ`; //  O\n        typeImage = `tv`; // ?\n        textTypeLong = `わがままアイドル\\nテレビタイプ`; // P\n        textBubble = `「私はお茶の間の人気者よ。画面越しに皆をHAPPYにするのが喜びなの!皆、私のこと見てね!」`; // Q\n        textBanner = `天性の魅力を持っていて注目の的になるタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちよりも、筋を通すことを優先します。しかしあくまでも励ますという形で、相手に伝えますが、必要なら叱ることもできる人です`; // N\n        textAdvice = '聞き上手になる近道はね、思いついたことをすぐに話さないのがコツですよ。'; //T\n        textShare = `${nickname}の家電タイプは #テレビタイプ #わがままアイドル #人気者 #皆にHappyを #私を見て #天性の魅力 #注目の的 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    }\n\n    // + d -\n  } else if (totalPositiveStroke >= totalDiscount && totalDiscount >= totalNegativeStroke) {\n    if (!isFree) {\n      if (totalCorrect >= 48) {\n        textTypeNumber = 4;\n        textType = `ホームベーカリー`; //  O\n        typeImage = `home-bakery`; // ?\n        textTypeLong = `繊細な気持ちを察する!\\nホームベーカリータイプ`; // P\n        textBubble = `「発酵のための温度管理など、パンには繊細な配慮が必要だし、きれいに膨らむようにじっくりじっくり時間をかけることも大切なの。」`; // Q\n        textBanner = `相手に必要な時間を理解し、自分を律して待つことができる根気強いタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちに配慮しながら、上手に励ませる人です。叱るよりも見守る、自覚を待つタイプです`; // N\n        textAdvice = '察してるんだったら、なんか言ってあげても、いいんですよ。'; //T\n        textShare = `${nickname}の家電タイプは #ホームベーカリータイプ #繊細 #気持ちを察する #配慮 #じっくりじっくり #自分を律する #根気強い #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 35) {\n        textTypeNumber = 5;\n        textType = `コーヒーメーカー`; //  O\n        typeImage = `coffee-maker`; // ?\n        textTypeLong = `のほほん癒し系\\nコーヒーメーカータイプ`; // P\n        textBubble = `「豆から選んで家で丁寧に淹れるコーヒー。\\nなんかほっとするでしょ。\\nみなさん、たまにはゆっくりしませんか。」`; // Q\n        textBanner = `相手に安らぎを与えるマイペースさん。癒し系タイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちと物事の道筋のバランスを上手にとって励ましたり、見守ったりできる人です`; // N\n        textAdvice = '実はね、あなたは結構期待されたりします。がんばれじゃなくて、力を抜いてニコニコ仕事してくださいな'; //T\n        textShare = `${nickname}の家電タイプは #コーヒーメーカータイプ #のほほん #癒し系 #丁寧に #ホッとする #ゆっくりしよ #安らぎ #マイペース #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 6;\n        textType = `エアコン`; //  O\n        typeImage = `air-conditioner`; // ?\n        textTypeLong = `必殺仕事人!\\nエアコンタイプ`; // P\n        textBubble = `「なるべく皆を快適に…とは思ってるんだけどね、寒い!とか暑い!とか意見聞いていたらまとまらないから。だから割り切ることも重要だと思ってるんだ。」`; // Q\n        textBanner = `本質をとらえて論理的に物事を進めるのが得意なタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちよりも、筋を通すこと優先します。しかしあくまでも励ますという形で、相手に伝えますが、必要なら自覚を待つこともできます`; // N\n        textAdvice = 'そりゃ、いやなことされたら、傷つきますよね~。でも仕返しとか復讐とかで、相手に縛られないでくださいね。'; //T\n        textShare = `${nickname}の家電タイプは #エアコンタイプ #必殺仕事人 #割り切り #本質 #論理的 #物事を進める #みんなをまとめる #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    } else {\n      if (totalCorrect >= 17) {\n        textTypeNumber = 4;\n        textType = `ホームベーカリー`; //  O\n        typeImage = `home-bakery`; // ?\n        textTypeLong = `繊細な気持ちを察する!\\nホームベーカリータイプ`; // P\n        textBubble = `「発酵のための温度管理など、パンには繊細な配慮が必要だし、きれいに膨らむようにじっくりじっくり時間をかけることも大切なの。」`; // Q\n        textBanner = `相手に必要な時間を理解し、自分を律して待つことができる根気強いタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちに配慮しながら、上手に励ませる人です。叱るよりも見守る、自覚を待つタイプです`; // N\n        textAdvice = '察してるんだったら、なんか言ってあげても、いいんですよ。'; //T\n        textShare = `${nickname}の家電タイプは #ホームベーカリータイプ #繊細 #気持ちを察する #配慮 #じっくりじっくり #自分を律する #根気強い #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 13) {\n        textTypeNumber = 5;\n        textType = `コーヒーメーカー`; //  O\n        typeImage = `coffee-maker`; // ?\n        textTypeLong = `のほほん癒し系\\nコーヒーメーカータイプ`; // P\n        textBubble = `「豆から選んで家で丁寧に淹れるコーヒー。\\nなんかほっとするでしょ。\\nみなさん、たまにはゆっくりしませんか。」`; // Q\n        textBanner = `相手に安らぎを与えるマイペースさん。癒し系タイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちと物事の道筋のバランスを上手にとって励ましたり、見守ったりできる人です`; // N\n        textAdvice = '実はね、あなたは結構期待されたりします。がんばれじゃなくて、力を抜いてニコニコ仕事してくださいな'; //T\n        textShare = `${nickname}の家電タイプは #コーヒーメーカータイプ #のほほん #癒し系 #丁寧に #ホッとする #ゆっくりしよ #安らぎ #マイペース #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 6;\n        textType = `エアコン`; //  O\n        typeImage = `air-conditioner`; // ?\n        textTypeLong = `必殺仕事人!\\nエアコンタイプ`; // P\n        textBubble = `「なるべく皆を快適に…とは思ってるんだけどね、寒い!とか暑い!とか意見聞いていたらまとまらないから。だから割り切ることも重要だと思ってるんだ。」`; // Q\n        textBanner = `本質をとらえて論理的に物事を進めるのが得意なタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちよりも、筋を通すこと優先します。しかしあくまでも励ますという形で、相手に伝えますが、必要なら自覚を待つこともできます`; // N\n        textAdvice = 'そりゃ、いやなことされたら、傷つきますよね~。でも仕返しとか復讐とかで、相手に縛られないでくださいね。'; //T\n        textShare = `${nickname}の家電タイプは #エアコンタイプ #必殺仕事人 #割り切り #本質 #論理的 #物事を進める #みんなをまとめる #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    }\n\n    // - + d\n  } else if (totalNegativeStroke >= totalPositiveStroke && totalPositiveStroke >= totalDiscount) {\n    if (!isFree) {\n      if (totalCorrect >= 20) {\n        textTypeNumber = 7;\n        textType = `ホームシアター`; //  O\n        typeImage = `home-theater`; // ?\n        textTypeLong = `前しか向かねぇ!\\nホームシアタータイプ`; // P\n        textBubble = `「後ろ向いてちゃだめだ!後悔したってしょうがない!そもそも自分、前しか見えないんで!」`; // Q\n        textBanner = `勝ち気でポジティブ。周囲を元気にする、頼りがいのあるタイプです。`; // R\n        textBannerText = `あなたは、相手を十分理解したうえで、叱ることによって成長させることを好みます。相手の事情や気持ちを十分理解しているので、叱ってばかりではいけないことも十分理解しているので、必要な時には励ますこともできます。`; // N\n        textAdvice = 'ノリノリで仕事をするのは、それは快感です!でもあなたのノリについていけない人がいるかも?'; //T\n        textShare = `${nickname}の家電タイプは #ホームシアタータイプ #前向き #前だけ向く #後悔しない #超勝ち気 #ポジティブ #元気 #頼りがい #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 10) {\n        textTypeNumber = 8;\n        textType = `コードレスクリーナー`; //  O\n        typeImage = `vacuum-cleaner`; // ?\n        textTypeLong = `自立したオ・ト・ナ\\nコードレスクリーナータイプ`; // P\n        textBubble = `「床に物置かないでくださいね。これは大事なものだ!とか、考えるのは自分の仕事じゃないのでね。冷たいと思うかもしれないけど、自立してほしいんです。」`; // Q\n        textBanner = `相手を信じて直球勝負ができる、理性的で正直なタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情と、行動の正しさや合理性について、バランスよく考えることができます。相手の気持ちや事情は理解していても、やはり行動を直してもらうには、叱ったり、強い言葉が有効だという考え方を基本にしていますが、放置するよりは、時にはおだてたりすることも必要だと理解してます`; // N\n        textAdvice = '仕事できない人でも、もっと尊重しましょうね。彼(女)にも、人生があるのですから。'; //T\n        textShare = `${nickname}の家電タイプは #コードレスクリーナータイプ #自立 #オトナ #冷たい? #直球勝負 #理性的 #正直 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 9;\n        textType = `洗濯機`; //  O\n        typeImage = `washing-machine`; // ?\n        textTypeLong = `八方美人は嫌いです。\\n洗濯機タイプ`; // P\n        textBubble = `「汚れを落とすには、厳しさも必要。時に洋服が縮んでしまったりもするけど、それは私のせいじゃないわ。とにかく私は汚れを落とすの。」`; // Q\n        textBanner = `嫌われるのを恐れない芯の強いタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情よりも、正しさを優先したい考えを持つ傾向があります。相手に正しい行動をとってもらうためには、厳しい言葉をあえて使うことも多いでしょう。また、励ましたほうが、相手の行動が正しくなると判断した場合は、励まそうとすることもできます`; // N\n        textAdvice = '正しくても、通らないことがあるのが人生です、残念ですけど。どうせなら社会を変えていきましょう、ゆっくりとね。'; //T\n        textShare = `${nickname}の家電タイプは #洗濯機タイプ #厳しい #芯強め #嫌われる? #全然怖くない #正しく生きたい #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    } else {\n      if (totalCorrect >= 6) {\n        textTypeNumber = 7;\n        textType = `ホームシアター`; //  O\n        typeImage = `home-theater`; // ?\n        textTypeLong = `前しか向かねぇ!\\nホームシアタータイプ`; // P\n        textBubble = `「後ろ向いてちゃだめだ!後悔したってしょうがない!そもそも自分、前しか見えないんで!」`; // Q\n        textBanner = `勝ち気でポジティブ。周囲を元気にする、頼りがいのあるタイプです。`; // R\n        textBannerText = `あなたは、相手を十分理解したうえで、叱ることによって成長させることを好みます。相手の事情や気持ちを十分理解しているので、叱ってばかりではいけないことも十分理解しているので、必要な時には励ますこともできます。`; // N\n        textAdvice = 'ノリノリで仕事をするのは、それは快感です!でもあなたのノリについていけない人がいるかも?'; //T\n        textShare = `${nickname}の家電タイプは #ホームシアタータイプ #前向き #前だけ向く #後悔しない #超勝ち気 #ポジティブ #元気 #頼りがい #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 3) {\n        textTypeNumber = 8;\n        textType = `コードレスクリーナー`; //  O\n        typeImage = `vacuum-cleaner`; // ?\n        textTypeLong = `自立したオ・ト・ナ\\nコードレスクリーナータイプ`; // P\n        textBubble = `「床に物置かないでくださいね。これは大事なものだ!とか、考えるのは自分の仕事じゃないのでね。冷たいと思うかもしれないけど、自立してほしいんです。」`; // Q\n        textBanner = `相手を信じて直球勝負ができる、理性的で正直なタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情と、行動の正しさや合理性について、バランスよく考えることができます。相手の気持ちや事情は理解していても、やはり行動を直してもらうには、叱ったり、強い言葉が有効だという考え方を基本にしていますが、放置するよりは、時にはおだてたりすることも必要だと理解してます`; // N\n        textAdvice = '仕事できない人でも、もっと尊重しましょうね。彼(女)にも、人生があるのですから。'; //T\n        textShare = `${nickname}の家電タイプは #コードレスクリーナータイプ #自立 #オトナ #冷たい? #直球勝負 #理性的 #正直 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 9;\n        textType = `洗濯機`; //  O\n        typeImage = `washing-machine`; // ?\n        textTypeLong = `八方美人は嫌いです。\\n洗濯機タイプ`; // P\n        textBubble = `「汚れを落とすには、厳しさも必要。時に洋服が縮んでしまったりもするけど、それは私のせいじゃないわ。とにかく私は汚れを落とすの。」`; // Q\n        textBanner = `嫌われるのを恐れない芯の強いタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情よりも、正しさを優先したい考えを持つ傾向があります。相手に正しい行動をとってもらうためには、厳しい言葉をあえて使うことも多いでしょう。また、励ましたほうが、相手の行動が正しくなると判断した場合は、励まそうとすることもできます`; // N\n        textAdvice = '正しくても、通らないことがあるのが人生です、残念ですけど。どうせなら社会を変えていきましょう、ゆっくりとね。'; //T\n        textShare = `${nickname}の家電タイプは #洗濯機タイプ #厳しい #芯強め #嫌われる? #全然怖くない #正しく生きたい #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    }\n\n    // - d +\n  } else if (totalNegativeStroke >= totalDiscount && totalDiscount >= totalPositiveStroke) {\n    if (!isFree) {\n      if (totalCorrect >= 13) {\n        textTypeNumber = 10;\n        textType = `ドライヤー`; //  O\n        typeImage = `hairdryer`; // ?\n        textTypeLong = `コミュ力高し!\\nドライヤータイプ`; // P\n        textBubble = `「髪乾かして寝ないと!風邪ひいちゃうよ。うるさい?だって、心配なんだもん。」`; // Q\n        textBanner = `世話焼きで人懐っこく、距離を縮めるのが得意なタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちを十分理解したうえで、叱ることによって成長を促そうとするタイプです。ただし、何回も同じことで叱るよりは、一度叱ったら、あとはよく言えば見守る、悪く言えば放置する傾向化があります`; // N\n        textAdvice = '叱られて伸びたという人は、褒められていたらもっと伸びていた、という説もあることを、頭の片隅ね'; //T\n        textShare = `${nickname}の家電タイプは #ドライヤータイプ #コミュ力 #世話焼き #人懐っこい #距離縮めます #人のこと心配しがち #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 7) {\n        textTypeNumber = 11;\n        textType = `冷蔵庫`; //  O\n        typeImage = `refrigerator`; // ?\n        textTypeLong = `高みを目指す氷の女王\\n冷蔵庫タイプ`; // P\n        textBubble = `「とにかく冷やして冷やして冷やしまくるわよ!私、手が抜けないの。私が仕事しないと、中身腐っちゃうでしょう。」`; // Q\n        textBanner = `自分に厳しく、相手にもハイレベルを求める上昇志向タイプです。`; // R\n        textBannerText = `あなたは、事の正否と相手の気持ちをバランスよく考えたうえで、叱ることによって相手の成長を促そうとするタイプです。叱っても相手の行動が変わらなければ、何度も叱ることは好みません`; // N\n        textAdvice = 'あのね、もっと褒めてあげなよ💦減るもんじゃなし。'; //T\n        textShare = `${nickname}の家電タイプは #冷蔵庫タイプ #高みを目指せ #手抜けない #自分に厳しく #ハイレベル好き #上昇志向 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 12;\n        textType = `アイロン`; //  O\n        typeImage = `iron`; // ?\n        textTypeLong = `折り目つけなきゃ、気が済まない!\\nアイロンタイプ`; // P\n        textBubble = `「シワシワの服を見ると、伸ばさずにはいられません。\\nくちゃくちゃの服の良さ?僕には関係ありません。」`; // Q\n        textBanner = `頑固で真面目。\\n正義感の強い孤高のタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情より、事の正否を重要視するタイプです。相手が間違ったことをした場合は、厳しい態度で臨むことをしがちです。ただし、何度言っても相手が改まらない場合は、かかわりを少なくしていく傾向があります`; // N\n        textAdvice = 'なんかあったときでも、苦笑いする余裕が大事。あわてない、あわてない。一休み、一休み'; //T\n        textShare = `${nickname}の家電タイプは #アイロンタイプ #折り目ぴーん #シワは嫌い #頑固 #真面目 #正義感の塊 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    } else {\n      if (totalCorrect >= 3) {\n        textTypeNumber = 10;\n        textType = `ドライヤー`; //  O\n        typeImage = `hairdryer`; // ?\n        textTypeLong = `コミュ力高し!\\nドライヤータイプ`; // P\n        textBubble = `「髪乾かして寝ないと!風邪ひいちゃうよ。うるさい?だって、心配なんだもん。」`; // Q\n        textBanner = `世話焼きで人懐っこく、距離を縮めるのが得意なタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちを十分理解したうえで、叱ることによって成長を促そうとするタイプです。ただし、何回も同じことで叱るよりは、一度叱ったら、あとはよく言えば見守る、悪く言えば放置する傾向化があります`; // N\n        textAdvice = '叱られて伸びたという人は、褒められていたらもっと伸びていた、という説もあることを、頭の片隅ね'; //T\n        textShare = `${nickname}の家電タイプは #ドライヤータイプ #コミュ力 #世話焼き #人懐っこい #距離縮めます #人のこと心配しがち #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 1) {\n        textTypeNumber = 11;\n        textType = `冷蔵庫`; //  O\n        typeImage = `refrigerator`; // ?\n        textTypeLong = `高みを目指す氷の女王\\n冷蔵庫タイプ`; // P\n        textBubble = `「とにかく冷やして冷やして冷やしまくるわよ!私、手が抜けないの。私が仕事しないと、中身腐っちゃうでしょう。」`; // Q\n        textBanner = `自分に厳しく、相手にもハイレベルを求める上昇志向タイプです。`; // R\n        textBannerText = `あなたは、事の正否と相手の気持ちをバランスよく考えたうえで、叱ることによって相手の成長を促そうとするタイプです。叱っても相手の行動が変わらなければ、何度も叱ることは好みません`; // N\n        textAdvice = 'あのね、もっと褒めてあげなよ💦減るもんじゃなし。'; //T\n        textShare = `${nickname}の家電タイプは #冷蔵庫タイプ #高みを目指せ #手抜けない #自分に厳しく #ハイレベル好き #上昇志向 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 12;\n        textType = `アイロン`; //  O\n        typeImage = `iron`; // ?\n        textTypeLong = `折り目つけなきゃ、気が済まない!\\nアイロンタイプ`; // P\n        textBubble = `「シワシワの服を見ると、伸ばさずにはいられません。\\nくちゃくちゃの服の良さ?僕には関係ありません。」`; // Q\n        textBanner = `頑固で真面目。\\n正義感の強い孤高のタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情より、事の正否を重要視するタイプです。相手が間違ったことをした場合は、厳しい態度で臨むことをしがちです。ただし、何度言っても相手が改まらない場合は、かかわりを少なくしていく傾向があります`; // N\n        textAdvice = 'なんかあったときでも、苦笑いする余裕が大事。あわてない、あわてない。一休み、一休み'; //T\n        textShare = `${nickname}の家電タイプは #アイロンタイプ #折り目ぴーん #シワは嫌い #頑固 #真面目 #正義感の塊 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    }\n\n    // d + -\n  } else if (totalDiscount >= totalPositiveStroke && totalPositiveStroke >= totalNegativeStroke) {\n    if (!isFree) {\n      if (totalCorrect >= 20) {\n        textTypeNumber = 13;\n        textType = `床暖房`; //  O\n        typeImage = `floor-heating`; // ?\n        textTypeLong = `おっとり穏やか\\n床暖房タイプ`; // P\n        textBubble = `「『え、いたの?』って言われることが多いです。存在感は薄めだけどホッとする快適な空間づくりには自信あります。」`; // Q\n        textBanner = `主張は控えめ。縁の下の力持ちタイプです。`; // R\n        textBannerText = `あなたは、よく言えば人の行動を見守るタイプです。時にその見守りが放置・放任ととられることもあるかもしれません。相手の気持ちや事情は十分に理解して、その点では好意的に見ることが多いのですが、あなたから何かアプローチをするのはあまり好みません。何かしてもらった時の感謝は素直に言えるタイプが多いです`; // N\n        textAdvice = '周囲には、あなたに関心持ってる人が必ずいます。大丈夫、大丈夫。'; //T\n        textShare = `${nickname}の家電タイプは #床暖房タイプ #存在感薄め #快適な空間づくり #主張しない #縁の下の力持ち #介入苦手 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 10) {\n        textTypeNumber = 14;\n        textType = `照明`; //  O\n        typeImage = `illumination`; // ?\n        textTypeLong = `かげから見守る\\n照明タイプ`; // P\n        textBubble = `「皆と楽しく笑うあなたも、真っ暗な部屋で泣いていたあなたも知ってるよ。うまいことは言えないけど、ちゃんと見てるよ。」`; // Q\n        textBanner = `詮索せず、黙って相手に寄り添えるタイプです。`; // R\n        textBannerText = `あなたは相手の気持ちや事情と、行動の正否をバランスよく判断しようとします。ただし、その結果にかかわらず、物事に積極的に介入することは多くありませんが、介入する場合は比較的、人間関係を重視したアプローチを好みます。しかし、何かしてもらった時の感謝は素直に言えるタイプが多いです`; // N\n        textAdvice = '素直なあなたは、隠れた人気者かもしれません。もっと笑顔を!目指せアイドル!'; //T\n        textShare = `${nickname}の家電タイプは #照明タイプ #見守る #ちゃんと見てます #詮索しない #そっと寄り添う #隠れた人気者 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 15;\n        textType = `食器洗い機`; //  O\n        typeImage = `dishwasher`; // ?\n        textTypeLong = `入れてくれれば洗うけど、テーブルまではいきません\\n食器洗い機タイプ`; // P\n        textBubble = `「できる限りのことはしますよ。でも、食器入れて\\nくれなけりゃ、洗いたくても洗えません。\\n入れてさえくれれば、ちゃんと仕事できますよ。」`; // Q\n        textBanner = `\"余分なことには手を出さず、\\n自分のことを黙々としたいタイプです。\"`; // R\n        textBannerText = `あなたは、気持ちや事。情よりも、行動の正否を重要視していますが、それをあまり表に出して、あれこれ発言することは多くないでしょう。基本的には、自分は自分、他人は他人という考え方が強く出る傾向があります。しかし、何かしてもらった時の感謝は素直に言えるタイプが多いです`; // N\n        textAdvice = 'もしあなたが挨拶が苦手だったら、ほほえむことから始めてください。ほほえみは世界共通の人に幸せをあげることです'; //T\n        textShare = `${nickname}の家電タイプは #食器洗い機タイプ #もくもくと #自分に集中 #他人はほっとく #構わないで #仕事はきっちり #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    } else {\n      if (totalCorrect >= 6) {\n        textTypeNumber = 13;\n        textType = `床暖房`; //  O\n        typeImage = `floor-heating`; // ?\n        textTypeLong = `おっとり穏やか\\n床暖房タイプ`; // P\n        textBubble = `「『え、いたの?』って言われることが多いです。存在感は薄めだけどホッとする快適な空間づくりには自信あります。」`; // Q\n        textBanner = `主張は控えめ。縁の下の力持ちタイプです。`; // R\n        textBannerText = `あなたは、よく言えば人の行動を見守るタイプです。時にその見守りが放置・放任ととられることもあるかもしれません。相手の気持ちや事情は十分に理解して、その点では好意的に見ることが多いのですが、あなたから何かアプローチをするのはあまり好みません。何かしてもらった時の感謝は素直に言えるタイプが多いです`; // N\n        textAdvice = '周囲には、あなたに関心持ってる人が必ずいます。大丈夫、大丈夫。'; //T\n        textShare = `${nickname}の家電タイプは #床暖房タイプ #存在感薄め #快適な空間づくり #主張しない #縁の下の力持ち #介入苦手 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else if (totalCorrect >= 3) {\n        textTypeNumber = 14;\n        textType = `照明`; //  O\n        typeImage = `illumination`; // ?\n        textTypeLong = `かげから見守る\\n照明タイプ`; // P\n        textBubble = `「皆と楽しく笑うあなたも、真っ暗な部屋で泣いていたあなたも知ってるよ。うまいことは言えないけど、ちゃんと見てるよ。」`; // Q\n        textBanner = `詮索せず、黙って相手に寄り添えるタイプです。`; // R\n        textBannerText = `あなたは相手の気持ちや事情と、行動の正否をバランスよく判断しようとします。ただし、その結果にかかわらず、物事に積極的に介入することは多くありませんが、介入する場合は比較的、人間関係を重視したアプローチを好みます。しかし、何かしてもらった時の感謝は素直に言えるタイプが多いです`; // N\n        textAdvice = '素直なあなたは、隠れた人気者かもしれません。もっと笑顔を!目指せアイドル!'; //T\n        textShare = `${nickname}の家電タイプは #照明タイプ #見守る #ちゃんと見てます #詮索しない #そっと寄り添う #隠れた人気者 #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 15;\n        textType = `食器洗い機`; //  O\n        typeImage = `dishwasher`; // ?\n        textTypeLong = `入れてくれれば洗うけど、テーブルまではいきません\\n食器洗い機タイプ`; // P\n        textBubble = `「できる限りのことはしますよ。でも、食器入れて\\nくれなけりゃ、洗いたくても洗えません。\\n入れてさえくれれば、ちゃんと仕事できますよ。」`; // Q\n        textBanner = `\"余分なことには手を出さず、\\n自分のことを黙々としたいタイプです。\"`; // R\n        textBannerText = `あなたは、気持ちや事。情よりも、行動の正否を重要視していますが、それをあまり表に出して、あれこれ発言することは多くないでしょう。基本的には、自分は自分、他人は他人という考え方が強く出る傾向があります。しかし、何かしてもらった時の感謝は素直に言えるタイプが多いです`; // N\n        textAdvice = 'もしあなたが挨拶が苦手だったら、ほほえむことから始めてください。ほほえみは世界共通の人に幸せをあげることです'; //T\n        textShare = `${nickname}の家電タイプは #食器洗い機タイプ #もくもくと #自分に集中 #他人はほっとく #構わないで #仕事はきっちり #コミュニケーションタイプ #コミュニケーション  #きづっきー #診断` //U\n      }\n    }\n\n    // d - +\n  } else if (totalDiscount >= totalNegativeStroke && totalNegativeStroke >= totalPositiveStroke) {\n    if (!isFree) {\n      if (totalCorrect >= 13) {\n        textTypeNumber = 16;\n        textType = `空気清浄機`; //  O\n        typeImage = `air-purifier`; // ?\n        textTypeLong = `寡黙な働き者\\n空気清浄機タイプ`; // P\n        textBubble = `「地味みたいで、あんまり感謝されたりしないですけど、\\n状況を冷静に捉えて、仕事に専念。長い時間、皆のことを\\n見守ってます。。実は熱い思いも、持ってます」`; // Q\n        textBanner = `シャイな一面と仕事へのプライドを併せ持つ隠れ熱血漢タイプです。`; // R\n        textBannerText = `あなたは、相手の事情や気持ちを十分理解して認めますが、基本的には、自分は自分、他人は他人という考え方が基本です。ただし、相手の行動が自分に影響を与えるような場合は、クレームという形で、意見を述べるケースが多いでしょう。何かしてもらった時も、感謝を述べるというのもあまり得意ではありません`; // N\n        textAdvice = 'あなたのすぐ近くにいる大切な人に気づいてね。必ずいるのだから。'; //T\n        textShare = `${nickname}の家電タイプは #空気清浄機タイプ #働き者 #寡黙 #地味 #シャイ #でも実はプライドあります #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else if (totalCorrect >= 7) {\n        textTypeNumber = 17;\n        textType = `スマートスピーカー`; //  O\n        typeImage = `smart-speaker`; // ?\n        textTypeLong = `私、失敗しないので。\\nスマートスピーカータイプ`; // P\n        textBubble = `「間違ったことはできないから決まったことしかしません。でも決まったことは絶対にミスなく、やり遂げますよ。」`; // Q\n        textBanner = `秩序を重んじて抜群の安定感を発揮するタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情と、行動の正否をバランスよく判断しようとします。ただし、それをもとに何か相手に働きかけるようなことはあまりしません。何かしてもらった時も、感謝を述べるというのもあまり得意ではありません`; // N\n        textAdvice = '仕事ができるとかできないとかは、人生で大した問題じゃないです。幸せは人によって違いますから。'; //T\n        textShare = `${nickname}の家電タイプは #スマートスピーカータイプ #私失敗しないので #ミスなし #秩序 重視 #安定感抜群 #決まったことをしっかり #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 18;\n        textType = `ロボット掃除機`; //  O\n        typeImage = `robot-vacuum-cleaner`; // ?\n        textTypeLong = `見返りは求めない!\\nロボット掃除機タイプ`; // P\n        textBubble = `「ゴミ一つないぴかぴかの床目指して、もくもくと、ただ一人、頑張ってるわけ。邪魔されたくないわけ。誰も見てくれてなくても良いわけ」`; // Q\n        textBanner = `強い意志を持ったクールな一匹狼タイプです。`; // R\n        textBannerText = `あなたは、どちらかといえば相手の気持ちや事情よりも、行動の正否に重きを置くタイプですが、そもそも、自分は自分、他人は他人という考え方が非常に強い傾向にあります。一匹狼型ともいえるタイプの人が多いようです`; // N\n        textAdvice = '斜に構えずに素直になっても、人はあなたを嫌いになんかなりませんよ'; //T\n        textShare = `${nickname}の家電タイプは #ロボット掃除機タイプ #見返り不要 #邪魔するな #意思強め #一匹狼 #クール #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      }\n    } else {\n      if (totalCorrect >= 3) {\n        textTypeNumber = 16;\n        textType = `空気清浄機`; //  O\n        typeImage = `air-purifier`; // ?\n        textTypeLong = `寡黙な働き者\\n空気清浄機タイプ`; // P\n        textBubble = `「地味みたいで、あんまり感謝されたりしないですけど、\\n状況を冷静に捉えて、仕事に専念。長い時間、皆のことを\\n見守ってます。。実は熱い思いも、持ってます」`; // Q\n        textBanner = `シャイな一面と仕事へのプライドを併せ持つ隠れ熱血漢タイプです。`; // R\n        textBannerText = `あなたは、相手の事情や気持ちを十分理解して認めますが、基本的には、自分は自分、他人は他人という考え方が基本です。ただし、相手の行動が自分に影響を与えるような場合は、クレームという形で、意見を述べるケースが多いでしょう。何かしてもらった時も、感謝を述べるというのもあまり得意ではありません`; // N\n        textAdvice = 'あなたのすぐ近くにいる大切な人に気づいてね。必ずいるのだから。'; //T\n        textShare = `${nickname}の家電タイプは #空気清浄機タイプ #働き者 #寡黙 #地味 #シャイ #でも実はプライドあります #コミュニケーションタイプ #コミュニケーション #きづっきー #診断`; //U\n      } else if (totalCorrect >= 1) {\n        textTypeNumber = 17;\n        textType = `スマートスピーカー`; //  O\n        typeImage = `smart-speaker`; // ?\n        textTypeLong = `私、失敗しないので。\\nスマートスピーカータイプ`; // P\n        textBubble = `「間違ったことはできないから決まったことしかしません。でも決まったことは絶対にミスなく、やり遂げますよ。」`; // Q\n        textBanner = `秩序を重んじて抜群の安定感を発揮するタイプです。`; // R\n        textBannerText = `あなたは、相手の気持ちや事情と、行動の正否をバランスよく判断しようとします。ただし、それをもとに何か相手に働きかけるようなことはあまりしません。何かしてもらった時も、感謝を述べるというのもあまり得意ではありません`; // N\n        textAdvice = '仕事ができるとかできないとかは、人生で大した問題じゃないです。幸せは人によって違いますから。'; //T\n        textShare = `${nickname}の家電タイプは #スマートスピーカータイプ #私失敗しないので #ミスなし #秩序 重視 #安定感抜群 #決まったことをしっかり #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      } else {\n        textTypeNumber = 18;\n        textType = `ロボット掃除機`; //  O\n        typeImage = `robot-vacuum-cleaner`; // ?\n        textTypeLong = `見返りは求めない!\\nロボット掃除機タイプ`; // P\n        textBubble = `「ゴミ一つないぴかぴかの床目指して、もくもくと、ただ一人、頑張ってるわけ。邪魔されたくないわけ。誰も見てくれてなくても良いわけ」`; // Q\n        textBanner = `強い意志を持ったクールな一匹狼タイプです。`; // R\n        textBannerText = `あなたは、どちらかといえば相手の気持ちや事情よりも、行動の正否に重きを置くタイプですが、そもそも、自分は自分、他人は他人という考え方が非常に強い傾向にあります。一匹狼型ともいえるタイプの人が多いようです`; // N\n        textAdvice = '斜に構えずに素直になっても、人はあなたを嫌いになんかなりませんよ'; //T\n        textShare = `${nickname}の家電タイプは #ロボット掃除機タイプ #見返り不要 #邪魔するな #意思強め #一匹狼 #クール #コミュニケーションタイプ #コミュニケーション #きづっきー #診断` //U\n      }\n    }\n\n  } else {\n\n    textType = ``; //  O\n    typeImage = ``; // ?\n    textTypeLong = ``; // P\n    textBubble = ``; // Q\n    textBanner = ``; // R\n    textBannerText = ``; // N\n    textAdvice = ''; //T\n    textShare = `` //U\n\n    console.log('unexpeced if')\n  }\n\n  return {\n    textTypeNumber,\n    textType,\n    typeImage,\n    textTypeLong,\n    textBubble,\n    textBanner,\n    textBannerText,\n    textAdvice,\n    textShare,\n    freeUrl,\n    totalCorrect,\n    totalPositiveStroke,\n    totalNegativeStroke,\n    totalDiscount,\n    totalFlexibility,\n    totalImagination,\n    totalReaction,\n    totalEmpathy,\n    totalFeeling,\n  }\n\n}\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Button, ButtonToolbar, ListGroup} from \"react-bootstrap\";\nimport * as userService from \"../../../services/users\";\nimport * as commonService from \"../../../services/common\";\nimport * as nursingResultsService from \"../../../services/nursing-results\";\nimport {Auth} from \"aws-amplify\";\nimport * as nursingResultsMiddleware from \"../../../services/nursing/results\";\nimport * as csvService from \"../../../services/csv\";\n\nclass UsersPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n      isUpload: false,\n      uploadProgress: 0,\n      uploadError: null\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchUsers();\n  }\n\n  fetchUsers = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let response = await userService.fetchUsers();\n      let items = response.items.filter(item => item.userGroup === \"USER\");\n      items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onViewClick = (item) => {\n    this.props.history.push(`/admin/users/${item.id}`);\n  };\n\n  onDownload = async () => {\n\n    const  nursingResultsResponse = await nursingResultsService.fetchAdminNursingResults();\n    const items = nursingResultsResponse.items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n\n    let filtered = [];\n    items.forEach(item => {\n      if (!item.user) {\n        return;\n      }\n      if (filtered.findIndex(filteredItem => filteredItem.user.id === item.user.id) !== -1) {\n        return;\n      }\n\n      filtered.push(item)\n    })\n\n    let schema = [\n      {label: \"受講者番号\", path: \"id\"},\n      {label: \"受講者名漢字\", path: \"nickname\"},\n      {label: \"受講者名かな\", path: \"nicknameKana\"}, // ?\n      {label: \"タイプNO.\", path: \"numberType\"}, // ?\n      {label: \"タイプ名\", path: \"textType\"},\n      {label: \"正の点数\", path: \"totalPositiveStroke\", type: \"number\"},\n      {label: \"負の点数\", path: \"totalNegativeStroke\", type: \"number\"},\n      {label: \"Dの点数\", path: \"totalDiscount\", type: \"number\"},\n      {label: \"状況想像力点数\", path: \"totalImagination\", type: \"number\"},\n      {label: \"リアクション力点数\", path: \"totalReaction\", type: \"number\"},\n      {label: \"共感力点数\", path: \"totalEmpathy\", type: \"number\"},\n      {label: \"気持ち察し力点数\", path: \"totalFeeling\", type: \"number\"},\n      {label: \"柔軟性点数\", path: \"totalFlexibility\", type: \"number\"},\n    ];\n\n    let data = [];\n\n    for (let testIndex = 0; testIndex < filtered.length; testIndex++) {\n      const item = filtered[testIndex];\n\n\n      const nickname = item.user && item.user.name ? item.user.name : null ;\n      const {\n        textType,\n        totalPositiveStroke,\n        totalNegativeStroke,\n        totalDiscount,\n        totalFlexibility,\n        totalImagination,\n        totalReaction,\n        totalEmpathy,\n        totalFeeling,\n      } = nursingResultsMiddleware.buildResult({results: item.results && item.results.items ? item.results.items : [] , id: item.id, isFree: false, nickname})\n\n\n      data.push({\n        id: item.id,\n        nickname,\n        nicknameKana: null,\n        numberType: null,\n        textType,\n        totalPositiveStroke,\n        totalNegativeStroke,\n        totalDiscount,\n        totalImagination,\n        totalReaction,\n        totalEmpathy,\n        totalFeeling,\n        totalFlexibility,\n      });\n    }\n\n    let csv = csvService.prepareCsv(schema, data);\n    csvService.downloadCsv(csv, `nursing-test-results-${new Date().toISOString()}.csv`);\n  };\n\n  render() {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">ユーザー一覧</h1>\n          <div className=\"d-flex\">\n            <Button variant=\"outline-primary mr-2\" onClick={this.onDownload}>ダウンロード</Button>\n          </div>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {this.state.items.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onViewClick(item)}>\n                <div>{item.name ? item.name : \"未定\"} ({item.email}) : {item.parent && item.parent.name ? item.parent.name : \"未定\"}</div>\n                <div>{commonService.formatDate(item.createdAt)}</div>\n            </ListGroup.Item>\n          ))}\n          {this.state.items.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(UsersPage);\n","import * as nursingResultsMiddleware from \"./results\";\nimport * as csvService from \"../csv\";\nimport {Auth} from \"aws-amplify\";\n\nexport const build = async ({nursingResults, newestOnly, parentCheck}) => {\n\n  let items = [];\n  if (newestOnly) {\n    const ordered = nursingResults.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n    const filtered = [];\n    const user = await Auth.currentAuthenticatedUser();\n    ordered.forEach(item => {\n      if (!item.user) {\n        return;\n      }\n      if (parentCheck) {\n        if (item.user.parentId !== user.getUsername()) {\n          return;\n        }\n      }\n      if (filtered.findIndex(filteredItem => filteredItem.user.id === item.user.id) !== -1) {\n        return;\n      }\n      filtered.push(item)\n    })\n    items = [...filtered]\n  } else {\n    items = [...nursingResults]\n  }\n\n  const schema = [\n    {label: \"受講者番号\", path: \"id\"},\n    {label: \"受講者名漢字\", path: \"nickname\"},\n    {label: \"受講者名かな\", path: \"nicknameKana\"}, // ?\n    {label: \"タイプNO.\", path: \"numberType\"}, // ?\n    {label: \"タイプ名\", path: \"textType\"},\n    {label: \"正の点数\", path: \"totalPositiveStroke\", type: \"number\"},\n    {label: \"負の点数\", path: \"totalNegativeStroke\", type: \"number\"},\n    {label: \"Dの点数\", path: \"totalDiscount\", type: \"number\"},\n    {label: \"状況想像力点数\", path: \"totalImagination\", type: \"number\"},\n    {label: \"リアクション力点数\", path: \"totalReaction\", type: \"number\"},\n    {label: \"共感力点数\", path: \"totalEmpathy\", type: \"number\"},\n    {label: \"気持ち察し力点数\", path: \"totalFeeling\", type: \"number\"},\n    {label: \"柔軟性点数\", path: \"totalFlexibility\", type: \"number\"},\n  ];\n\n  let data = [];\n\n  for (let testIndex = 0; testIndex < items.length; testIndex++) {\n    const item = items[testIndex];\n    const nickname = item.user && item.user.name ? item.user.name : null ;\n    const {\n      textTypeNumber,\n      textType,\n      totalPositiveStroke,\n      totalNegativeStroke,\n      totalDiscount,\n      totalFlexibility,\n      totalImagination,\n      totalReaction,\n      totalEmpathy,\n      totalFeeling,\n    } = nursingResultsMiddleware.buildResult({results: item.results && item.results.items ? item.results.items : [] , id: item.id, isFree: false, nickname})\n\n    data.push({\n      id: item.userId,\n      nickname,\n      nicknameKana: null,\n      numberType: textTypeNumber,\n      textType,\n      totalPositiveStroke,\n      totalNegativeStroke,\n      totalDiscount,\n      totalImagination,\n      totalReaction,\n      totalEmpathy,\n      totalFeeling,\n      totalFlexibility,\n    });\n  }\n\n  return csvService.prepareCsv(schema, data);\n}\n\nexport default build\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Alert, Button, ButtonToolbar, Badge, Card, ListGroup, Container, Nav } from \"react-bootstrap\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faAngleDown, faAngleUp } from '@fortawesome/free-solid-svg-icons'\nimport * as usersService from \"../../../../services/users\";\nimport * as courseTestResultsService from \"../../../../services/course-test-results\";\nimport * as subtleTestResultsService from \"../../../../services/subtle-test-results\";\nimport * as nursingResultsService from \"../../../../services/nursing-results\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\nimport * as commonService from \"../../../../services/common\";\nimport RadarChart from \"react-svg-radar-chart\";\nimport * as contentsService from \"../../../../services/contents\";\nimport \"./index.scss\";\nimport * as langService from \"../../../../services/lang\";\nimport * as csvService from \"../../../../services/csv\";\nimport * as nursingResultsMiddleware from \"../../../../services/nursing/results\";\nimport nursingCsv from \"../../../../services/nursing/csv\";\n\nclass UserPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      touched: false,\n      user: null,\n      courseTestResults: [],\n      subtleTestResults: [],\n      nursingResults: [],\n      courseTestResultsOpenCourseId: null,\n      subtleTestResultsOpenCourseId: null,\n      nursingTestResultsOpenCourseId: null,\n      resultsSelectedIndex: 0,\n      subtleData: null,\n      nursingData: null,\n      error: null,\n      loading: false,\n    };\n  }\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  async componentWillMount() {\n    let userId = this.props.match.params.userId;\n    if (userId !== \"new\") {\n      this.setState({ loading: true });\n      try {\n        let user = await usersService.fetchUser(userId);\n        let courseTestResultsResponse = await courseTestResultsService.fetchAllCoursesTestResults(userId);\n        let subtleTestResultsResponse = await subtleTestResultsService.fetchAllSubtleTestResults(userId);\n        let nursingResultsResponse = await nursingResultsService.fetchAllNursingResults(userId);\n\n        let courseTestResults = courseTestResultsResponse.items;\n        courseTestResults.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n\n        let subtleTestResults = subtleTestResultsResponse.items;\n        subtleTestResults.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n\n        let nursingResults = nursingResultsResponse.items;\n        nursingResults.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n\n        let content = await contentsService.fetchContent('SUBTLE');\n        if (content) {\n          content.settings = JSON.parse(content.settings);\n        }\n\n        let nursing = await contentsService.fetchContent('NURSING');\n        if (nursing) {\n          nursing.settings = JSON.parse(nursing.settings);\n        }\n\n        this.setState({\n          loading: false,\n          user,\n          courseTestResults,\n          subtleTestResults,\n          nursingResults,\n          subtleData: content,\n          nursingData: nursing,\n        });\n      } catch (error) {\n        this.onError(error);\n      }\n    }\n  }\n\n  onParentClick = () => {\n    this.props.history.push(`/admin/${this.state.user.parent.id}/user`);\n  };\n\n  onCourseTestResultsClick = (item) => {\n    if (this.state.courseTestResultsOpenCourseId) {\n      if (this.state.courseTestResultsOpenCourseId === item.id) {\n        this.setState({ courseTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ courseTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ courseTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onSubtleTestResultsClick = (item) => {\n    if (this.state.subtleTestResultsOpenCourseId) {\n      if (this.state.subtleTestResultsOpenCourseId === item.id) {\n        this.setState({ subtleTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ subtleTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ subtleTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onNursingTestResultsClick = (item) => {\n    if (this.state.nursingTestResultsOpenCourseId) {\n      if (this.state.nursingTestResultsOpenCourseId === item.id) {\n        this.setState({ nursingTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ nursingTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ nursingTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onDeleteClick = async () => {\n\n    this.setState({ error: null, loading: true });\n\n    try {\n      await usersService.deleteUser(this.state.user.id);\n      this.setState({ loading: false });\n      this.props.history.push(\"/admin/users\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onCourseTestResultsDownload = () => {\n    const { courseTestResults } = this.state;\n\n    let schema = [\n      { label: \"テストID\", path: \"id\" },\n      { label: \"日付\", path: \"date\" },\n      { label: \"コース名\", path: \"courseName\", type: \"String\" },\n      { label: \"質問\", path: \"question\", type: \"String\" },\n      { label: \"回答1\", path: \"answer1\", type: \"String\" },\n      { label: \"回答2\", path: \"answer2\", type: \"String\" },\n      { label: \"回答3\", path: \"answer3\", type: \"String\" },\n      { label: \"正しい回答\", path: \"correctAnswerIndex\", type: \"String\" },\n      { label: \"選択済回答\", path: \"selectedAnswerIndex\", type: \"String\" },\n    ];\n\n    let data = [];\n\n    for (let resultIndex = 0; resultIndex < courseTestResults.length; resultIndex++) {\n      const courseTestResult = courseTestResults[resultIndex];\n      let dataItem = {};\n      const courseTitle = JSON.parse(courseTestResult.course.title);\n\n      dataItem.id = courseTestResult.id;\n      dataItem.date = courseTestResult.createdAt;\n      dataItem.courseName = courseTitle['jp'];\n\n      for (let questionIndex = 0; questionIndex < courseTestResult.course.testQuestions.length; questionIndex++) {\n        const question = courseTestResult.course.testQuestions[questionIndex];\n        const questionTitle = JSON.parse(question.title);\n        const answers = JSON.parse(question.answers);\n\n        dataItem.question = questionTitle['jp'];\n\n        for (let answerIndex = 0; answerIndex < answers.length; answerIndex++) {\n          const answer = answers[answerIndex];\n          dataItem[`answer${answerIndex + 1}`] = answer.text.jp;\n\n          if (answer.isCorrect) {\n            dataItem.correctAnswerIndex = answerIndex + 1;\n          }\n        }\n\n        let currentQuestionAnswerIndex = courseTestResult.results.answers.findIndex(item => item.questionId === question.id);\n        if (currentQuestionAnswerIndex !== -1) {\n          const currentQuestionAnswer = courseTestResult.results.answers[currentQuestionAnswerIndex];\n\n          if (currentQuestionAnswer.isCorrect) {\n            dataItem.selectedAnswerIndex = dataItem.correctAnswerIndex;\n          } else {\n            dataItem.selectedAnswerIndex = -1;\n          }\n        }\n      }\n\n      data.push(dataItem);\n    }\n    let csv = csvService.prepareCsv(schema, data);\n    let userId = this.props.match.params.userId;\n    csvService.downloadCsv(csv, `course-test-results-${userId}.csv`);\n  };\n\n  onSubtleTestResultsDownload = () => {\n    const { subtleTestResults, subtleData } = this.state;\n\n    let schema = [\n      { label: \"テストID\", path: \"id\" },\n      { label: \"日付\", path: \"date\" },\n      { label: \"質問\", path: \"question\", type: \"String\" },\n      { label: \"詳細\", path: \"details\", type: \"String\" },\n      { label: \"想像力\", path: \"imagination\", type: \"String\" },\n      { label: \"リアクション力\", path: \"reaction\", type: \"String\" },\n      { label: \"共感力\", path: \"empathy\", type: \"String\" },\n      { label: \"気持ち察し力\", path: \"feeling\", type: \"String\" },\n      { label: \"柔軟性\", path: \"flexibility\", type: \"String\" },\n      { label: \"回答1\", path: \"answer1\", type: \"String\" },\n      { label: \"回答2\", path: \"answer2\", type: \"String\" },\n      { label: \"回答3\", path: \"answer3\", type: \"String\" },\n      { label: \"正しい回答\", path: \"correctAnswerIndex\", type: \"String\" },\n      { label: \"選択済回答\", path: \"selectedAnswerIndex\", type: \"String\" },\n    ];\n\n    let data = [];\n\n    for (let testIndex = 0; testIndex < subtleTestResults.length; testIndex++) {\n      const test = subtleTestResults[testIndex];\n\n      for (let resultIndex = 0; resultIndex < test.results.length; resultIndex++) {\n        const result = test.results[resultIndex];\n\n        let dataItem = {\n          id: test.id,\n          selectedAnswerIndex: result.answer,\n          date: test.createdAt,\n        };\n\n        const question = subtleData.settings.questions[resultIndex];\n\n        if (question.text && question.text.jp) {\n          dataItem.question = question.text.jp\n        } else {\n          dataItem.question = null;\n        }\n\n        if (question.subtitle && question.subtitle.jp) {\n          dataItem.details = question.subtitle.jp\n        } else {\n          dataItem.details = null;\n        }\n\n        if (question.imagination && question.imagination.value) {\n          dataItem.imagination = parseInt(question.imagination.value, 0);\n        } else {\n          dataItem.imagination = 0;\n        }\n\n        if (question.reaction && question.reaction.value) {\n          dataItem.reaction = parseInt(question.reaction.value, 0);\n        } else {\n          dataItem.reaction = 0;\n        }\n\n        if (question.empathy && question.empathy.value) {\n          dataItem.empathy = parseInt(question.empathy.value, 0);\n        } else {\n          dataItem.empathy = 0;\n        }\n\n        if (question.feeling && question.feeling.value) {\n          dataItem.feeling = parseInt(question.feeling.value, 0);\n        } else {\n          dataItem.feeling = 0;\n        }\n\n        if (question.flexibility && question.flexibility.value) {\n          dataItem.flexibility = parseInt(question.flexibility.value, 0);\n        } else {\n          dataItem.flexibility = 0;\n        }\n\n        if (question.answer1 && question.answer1.jp) {\n          dataItem.answer1 = question.answer1.jp\n        } else {\n          dataItem.details = null;\n        }\n\n        if (question.answer2 && question.answer2.jp) {\n          dataItem.answer2 = question.answer2.jp\n        } else {\n          dataItem.answer2 = null;\n        }\n\n        if (question.answer3 && question.answer3.jp) {\n          dataItem.answer3 = question.answer3.jp\n        } else {\n          dataItem.answer3 = null;\n        }\n\n        if (question.answer1IsCorrect && question.answer1IsCorrect.value && parseInt(question.answer1IsCorrect.value, 0) === 1) {\n          dataItem.correctAnswerIndex = 1;\n        } else if (question.answer2IsCorrect && question.answer2IsCorrect.value && parseInt(question.answer2IsCorrect.value, 0) === 1) {\n          dataItem.correctAnswerIndex = 2;\n        } else if (question.answer3IsCorrect && question.answer3IsCorrect.value && parseInt(question.answer3IsCorrect.value, 0) === 1) {\n          dataItem.correctAnswerIndex = 3;\n        }\n\n        data.push(dataItem);\n      }\n    }\n\n    let csv = csvService.prepareCsv(schema, data);\n    let userId = this.props.match.params.userId;\n    csvService.downloadCsv(csv, `subtle-test-results-${userId}.csv`);\n  };\n\n  onNursingResultsDownload = async () => {\n    const { nursingResults } = this.state;\n    const csv = await nursingCsv({ nursingResults, newestOnly: true });\n    const userId = this.props.match.params.userId;\n    csvService.downloadCsv(csv, `nursing-test-results-${userId}-${new Date().toISOString()}.csv`);\n  };\n\n  renderUser = () => {\n    const { user } = this.state;\n\n    return (\n      <Card className=\"mt-4\">\n        <Card.Header className=\"d-flex justify-content-between align-items-center\">\n          <div>{user.parent && user.parent.name ? user.parent.name : \"未定\"}</div>\n          <Button onClick={this.onParentClick}>管理</Button>\n        </Card.Header>\n        <ListGroup variant=\"flush\">\n          <ListGroup.Item className=\"d-flex justify-content-between align-items-center\">\n            <div>名前</div>\n            <div>{user.name ? user.name : \"未定\"}</div>\n          </ListGroup.Item>\n          <ListGroup.Item className=\"d-flex justify-content-between align-items-center\">\n            <div>メールアドレス</div>\n            <div>{user.email}</div>\n          </ListGroup.Item>\n        </ListGroup>\n      </Card>\n    );\n  };\n\n  isCorrect = (question, answers) => {\n    let array = answers.filter((answer) => answer.questionId === question.id);\n    if (array.length !== 1) { return false; }\n    return array[0].isCorrect;\n  };\n\n  renderCourseTests = () => {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">コーステスト結果</h1>\n          <Button onClick={this.onCourseTestResultsDownload}>ダウンロード</Button>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {this.state.courseTestResults.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }} onClick={() => this.onCourseTestResultsClick(item)}>\n              <div className=\"d-flex justify-content-between align-items-center\">\n                <div>\n                  {JSON.parse(item.course.title)[commonService.mainLanguage] + \" \"}\n                  <Badge variant=\"primary\">{Math.floor(100 / item.results.totalAnswers * item.results.correctAnswers)}点</Badge>\n                </div>\n                <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.courseTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n              </div>\n              {item.id === this.state.courseTestResultsOpenCourseId && (\n                <ListGroup className=\"mt-4\">\n                  {item.course.testQuestions.map((testQuestion) => (\n                    <ListGroup.Item key={testQuestion.id} variant={this.isCorrect(testQuestion, item.results.answers) ? \"success\" : \"danger\"}>\n                      {JSON.parse(testQuestion.title)[commonService.mainLanguage]}\n                    </ListGroup.Item>\n                  ))}\n                </ListGroup>\n              )}\n            </ListGroup.Item>\n          ))}\n          {this.state.courseTestResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  buildTotalCount = (results) => {\n    let totalCount = 0;\n    for (let i = 0; i < results.length; i++) {\n      if (i < 20) {\n        if (results[i].isCorrect) {\n          totalCount += 3;\n        }\n      } else {\n        if (results[i].isCorrect) {\n          totalCount += 4;\n        }\n      }\n    }\n\n    return totalCount;\n  };\n\n  buildSkills = (results) => {\n    let { subtleData } = this.state;\n    let skills = {\n      imagination: 0,\n      reaction: 0,\n      empathy: 0,\n      feeling: 0,\n      flexibility: 0,\n    };\n\n    for (let i = 0; i < results.length; i++) {\n      if (!results[i].isCorrect) {\n        continue;\n      }\n\n      let question = subtleData.settings.questions[i];\n      if (question.imagination && question.imagination.value === '1') {\n        skills.imagination += 1;\n      }\n      if (question.reaction && question.reaction.value === '1') {\n        skills.reaction += 1;\n      }\n      if (question.empathy && question.empathy.value === '1') {\n        skills.empathy += 1;\n      }\n      if (question.feeling && question.feeling.value === '1') {\n        skills.feeling += 1;\n      }\n      if (question.flexibility && question.flexibility.value === '1') {\n        skills.flexibility += 1;\n      }\n    }\n\n    return skills;\n\n  };\n\n  renderResultText = (data, points, title) => {\n\n    let index = data.findIndex(item => points >= item.min && points <= item.max);\n    if (index === -1) {\n      return null;\n    }\n\n    return (\n      <>\n        <h4 className=\"mb-4\">{langService.translate(data[index].title, this.props.currentLang)}</h4>\n        <h5 className=\"mb-4\">あなたの{title}は {points} 点です。</h5>\n        <div>{langService.translate(data[index].details, this.props.currentLang)}</div>\n      </>\n    )\n  };\n\n  renderSubtleResultsItem = (item) => {\n    const { resultsSelectedIndex } = this.state;\n    const totalCount = this.buildTotalCount(item.results);\n    const skills = this.buildSkills(item.results);\n\n    const radarData = [\n      {\n        data: {\n          imagination: skills.imagination / 12,\n          reaction: skills.reaction / 12,\n          empathy: skills.empathy / 12,\n          feeling: skills.feeling / 12,\n          flexibility: skills.flexibility / 12,\n        },\n        meta: { color: 'blue' }\n      },\n    ];\n\n    const captions = {\n      imagination: langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang),\n      reaction: langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang),\n      empathy: langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang),\n      feeling: langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang),\n      flexibility: langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang),\n    };\n\n    const texts = {\n      imagination: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            jp2: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            en: \"Your ability to imagine and be proactive is not enough. Please be careful not to misunderstand and cause problems between you and your co-workers and clients.\",\n            vn: \"Không đủ khả năng để tưởng tượng tình huống.Việc thiếu trí tưởng tượng,có thể dẫn đến cách nhìn sai lệch và thiếu thiện cảm từ những người xung quanh nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            jp2: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            en: \"If you improve the ability to imagine the situation more, you will become a proactive business person.  \",\n            vn: \"Bằng cách mở rộng khả năng tưởng tượng tình huống thêm một chút, bạn sẽ có thể có được sức mạnh để tiến lên phía trước một bước.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            jp2: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            en: \"Your ability to imagine and be proactive is excellent. Please keep your ability and be an attentive business person.\",\n            vn: \"Đủ năng lực tưởng tượng để có thể nắm bắt toàn bộ tình hình đầy đủ và chính xác. Sử dụng khả năng tưởng tượng của mình để mang lại cho đối phương những giá trị và lòng tốt một cách lịch sự .\"\n          }\n        },\n      ],\n      reaction: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            jp2: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Năng lực phản ứng không đủ. Trong giao tiếp trương tác giữa người với người nó có thể là nguyên nhân gây ra sự hiểu nhầm từ phía đối phương nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            jp2: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Bằng việc tăng năng lực phản ứng của bản thân thêm 1 bước nữa thì đối phương sẽ có ấn tượng với bạn tốt đẹp hơn. Không chỉ về mặt ngôn ngữ, mà chúng ta hãy sử dụng thêm các hành động bổ trợ phi ngôn ngữ như là sự hưởng ứng, thủ thỉ, nét mặt tươi cười, giao tiếp bằng mắt.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            jp2: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            en: \"Your ability to react is excellent. Please feel, understand and react. Let's combine with the other abilities in various situations. \",\n            vn: \"Có đủ năng lực phản ứng. Hãy cảm nhận, quan sát, trong khi đó hãy nghĩ xem nên phản ứng thế nào, hãy sử dụng thêm sức mạnh khác nữa để phát huy năng lực phản ứng.\"\n          }\n        },\n      ],\n      empathy: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            jp2: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            en: \"Your ability to empathize is not enough. Please cultivate the ability to empathize because it is very important in terms of emotional communication skills.\",\n            vn: \"Không đủ sự đồng cảm để có cùng cảm nhận và suy nghĩ với đối phương. Vì nó là một loại năng lực rất quan trọng trong giao tiếp bằng cảm xúc nên cẩn trau dồi bằng cách luyện tập.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            jp2: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            en: \"If you improve your ability to empathize more, you will become a reliable business person and can close the distance between you and others.\",\n            vn: \"Bằng cách nâng cao năng lực đồng cảm thêm một bậc nữa thì sẽ có sự thay đổi to lớn rằng bạn sẽ mang lại cho  đối phương cảm giác đáng tin tưởng, và sẽ cởi mở với bạn hơn.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            jp2: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            en: \"Your ability to empathize is excellent. When you communicate with others on business, your ability to empathize will help yourself close the distance between you and others and build your network.\",\n            vn: \"Có đủ sự đồng cảm. Trong hành động mọi người có thể nương tựa vào nhau, hòa đồng với nhau, vì vậy hãy vừa phát huy năng lực đồng cảm và mở lòng thêm nữa.\"\n          }\n        },\n      ],\n      feeling: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            jp2: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            en: \"Your ability to feel and understand is not enough. Please imagine how others feel and think. To make it a habit to put yourself in other's shoes is very important.\",\n            vn: \"Không đủ năng lực phán đoán cảm xúc của người khác. Hãy luôn có thói quen nghĩ về việc đối phương bây giờ đang cảm thấy gì, nghĩ gì, suy ngẫm về điều gì.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            jp2: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            en: \"If you cultivate your ability to feel and understand more, you can know the other's suffering, joy and sadness. Human feelings can't be simulated, but can be felt and understood.\",\n            vn: \"Bằng cách nâng cao năng lực phán đoán cảm xúc một bước nữa thì bạn có khả năng cảm nhận chính xác nỗi đau, niềm hạnh phúc, sự đau buồn trong tinh thần của đối phương. Vì cảm xúc của con người là không thể tính toán được nên hãy cố gắng hết sức để nắm bắt được nó.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            jp2: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            en: \"Your ability to feel and understand is excellent. In terms of leadership and management, to feel with your five senses will help yourself greatly. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng lực phán đoán cảm xúc. Ứng với từng đối tượng, việc vừa sử dụng năm giác quan vừa phán đoán cảm xúc thì chắc chắn sẽ giúp ích rất nhiều cho bạn vào việc quản lí và lãnh đạo.\"\n          }\n        },\n      ],\n      flexibility: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            jp2: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            en: \"Your ability to be flexible is not enough. If you are not flexible, it will cause some serious problems in terms of business communication. Please try to accept the other's advice and feedback at first.\",\n            vn: \"Không đủ tính linh hoạt. Các khái niệm cố định và các giá trị cứng nhắc đôi khi sẽ dẫn đến những vấn đề nghiêm trọng trong giao tiếp như là hiểu nhầm hay ganh ghét. Vì vậy, đầu tiên hãy tiếp nhận đối phương và môi trường xung quanh sau đó hãy bắt đầu.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            jp2: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            en: \"If you cultivate your ability to be flexible more, your communication skills will be improved because you can accept various values, cultures and ideas.\",\n            vn: \"Hi vọng là hãy tăng thêm tính linh hoạt một bước nữa. Việc tăng tính linh hoạt không hề phá hủy phong cách của bạn, trái lại, nó phát triển phong cách của bạn vì bạn có thể chuyển sang việc tiếp thu những tư tưởng văn hóa, giá trị quan hay những suy nghĩ khác nhau.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            jp2: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            en: \"Your ability to be flexible is excellent. From the viewpoint of others, you will make communication go smoothly and encourage collaboration among your team. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng tính linh hoạt. Tính linh hoạt của bạn là do nhìn từ phía đối phương, do đó không chỉ tạo điều kiện cho việc giao tiếp suôn sẻ, mà còn giúp bạn nuôi dưỡng được không gian tự do cá nhân. Vì vậy, hãy giữ cho bạn luôn luôn linh hoạt và cải thiện hơn nữa.\"\n          }\n        },\n      ],\n    };\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }}>\n        <div className=\"d-flex justify-content-between align-items-center\" onClick={() => this.onSubtleTestResultsClick(item)}>\n          <div>\n            <Badge variant=\"primary\">{totalCount}点</Badge>\n          </div>\n          <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.subtleTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n        </div>\n        {item.id === this.state.subtleTestResultsOpenCourseId && (\n          <ListGroup className=\"mt-4\">\n            <div className=\"py-5 subtle-test-results\">\n              <div className=\"header\">\n                <h3>{langService.translate('subtle-results-title-0', this.props.currentLang)}</h3>\n                <h3 className=\"points\">\n                  <div>{langService.translate('subtle-results-title-1', this.props.currentLang)}</div>\n                  <div>{langService.translate('subtle-results-title-2', this.props.currentLang, [totalCount])}</div>\n                </h3>\n              </div>\n              <div className=\"content subtle-results-content\">\n                {/*<div className=\"row\">*/}\n                <div className=\"radar\">\n                  <RadarChart\n                    captions={captions}\n                    data={radarData}\n\n                  />\n                </div>\n                <div className=\"tabs\">\n                  <Nav variant=\"pills\">\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 0 })} active={resultsSelectedIndex === 0}>状況想像力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 1 })} active={resultsSelectedIndex === 1}>リアクション力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 2 })} active={resultsSelectedIndex === 2}>共感力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 3 })} active={resultsSelectedIndex === 3}>気持ち察し力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 4 })} active={resultsSelectedIndex === 4}>柔軟性</Nav.Link>\n                    </Nav.Item>\n                  </Nav>\n                  <div className=\"tabs-content\">\n                    {resultsSelectedIndex === 0 && (this.renderResultText(texts['imagination'], skills.imagination, '状況想像力'))}\n                    {resultsSelectedIndex === 1 && (this.renderResultText(texts['reaction'], skills.reaction, 'リアクション力'))}\n                    {resultsSelectedIndex === 2 && (this.renderResultText(texts['empathy'], skills.empathy, '共感力'))}\n                    {resultsSelectedIndex === 3 && (this.renderResultText(texts['feeling'], skills.feeling, '気持ち察し力'))}\n                    {resultsSelectedIndex === 4 && (this.renderResultText(texts['flexibility'], skills.flexibility, '柔軟性'))}\n                  </div>\n                </div>\n                {/*</div>*/}\n              </div>\n            </div>\n          </ListGroup>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  renderSubtleTest = () => {\n    const { subtleTestResults } = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">機微力診断結果</h1>\n          <Button onClick={this.onSubtleTestResultsDownload}>ダウンロード</Button>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {subtleTestResults.map(item => this.renderSubtleResultsItem(item))}\n          {subtleTestResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  renderNursingResultsItem = (item) => {\n\n    const nickname = item.user && item.user.name ? item.user.name : null;\n    const {\n      textType,\n      typeImage,\n      textTypeLong,\n      textBubble,\n      textBanner,\n      textBannerText,\n      totalPositiveStroke,\n      totalNegativeStroke,\n      totalDiscount,\n      totalCorrect,\n    } = nursingResultsMiddleware.buildResult({ results: item.results && item.results.items ? item.results.items : [], id: item.id, isFree: false, nickname })\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }}>\n        <div className=\"d-flex justify-content-between align-items-center\" onClick={() => this.onNursingTestResultsClick(item)}>\n          <div className=\"d-flex flex-row justify-content-start align-items-center\">\n            <div className=\"mr-2\">{textType}</div>\n            <div><Badge variant=\"primary\">正:{totalPositiveStroke}点</Badge></div>\n            <div className=\"ml-2\"><Badge variant=\"primary\">負:{totalNegativeStroke}点</Badge></div>\n            <div className=\"ml-2\"><Badge variant=\"primary\">D:{totalDiscount}点</Badge></div>\n          </div>\n          <div>{commonService.formatDate(item.createdAt)}  <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.nursingTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n        </div>\n        {item.id === this.state.nursingTestResultsOpenCourseId && (\n          <ListGroup className=\"mt-4\">\n            <div className=\"nursing-results__container\">\n              <div className=\"nursing-results__container__name\">{nickname}さんは…</div>\n              {/*<div>id: {item.id}</div>*/}\n              {/*<div>totalCorrect: {totalCorrect}</div>*/}\n              {/*<div>totalPositiveStroke: {totalPositiveStroke}</div>*/}\n              {/*<div>totalNegativeStroke: {totalNegativeStroke}</div>*/}\n              {/*<div>totalDiscount: {totalDiscount}</div>*/}\n              <div className=\"nursing-results__container__type-container\">\n                <div className=\"nursing-results__container__type-container__title\">{textTypeLong}</div>\n                <div className=\"nursing-results__container__type-container__image-container\">\n                  <img src={`/images/nursing/types/${typeImage}.png`}\n                    width={200}\n                    height={200}\n                  />\n                  <div className=\"nursing-results__container__type-container__image-container__bubble\">\n                    <div className=\"nursing-results__container__type-container__image-container__bubble__arrow\" />{textBubble}\n                  </div>\n                </div>\n              </div>\n              <div className=\"nursing-results__container__banner\">{textBanner}</div>\n              <div className=\"nursing-results__container__text\">{textBannerText}</div>\n            </div>\n          </ListGroup>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  renderNursingTest = () => {\n    const { nursingResults } = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">きづっきー診断結果</h1>\n          <Button onClick={this.onNursingResultsDownload}>ダウンロード</Button>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {nursingResults.map(item => this.renderNursingResultsItem(item))}\n          {nursingResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (\n            <Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>\n          )}\n\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">ユーザー情報</h1>\n          </ButtonToolbar>\n\n          {this.state.user && this.renderUser()}\n          {this.state.user && this.renderCourseTests()}\n          {this.state.user && this.renderSubtleTest()}\n          {this.state.user && this.renderNursingTest()}\n\n          <Card className=\"mt-4 mb-4\">\n            <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n            <Card.Body>\n              <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>ユーザーを削除する</Button>\n            </Card.Body>\n          </Card>\n        </SmallBgLoading>\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(UserPage);\n","export const prepareJson = (schema, array) => {\n  let items = [];\n\n  let arrayItem;\n  for (arrayItem of array) {\n    let item = {};\n    let schemaItem;\n    for (schemaItem of schema) {\n      if (schemaItem.type && schemaItem.type === \"Array\") {\n        let value = arrayItem[schemaItem.path];\n        if (schemaItem.items && value && value.length > 0) {\n          item[schemaItem.path] = prepareJson(schemaItem.items, value);\n        } else {\n          item[schemaItem.path] = [];\n        }\n      } else if (schemaItem.type && schemaItem.type === \"JSON\") {\n        let value = arrayItem[schemaItem.path];\n        item[schemaItem.path] = value ? JSON.parse(value) : null;\n      } else {\n        item[schemaItem.path] = arrayItem[schemaItem.path];\n      }\n    }\n    items.push(item);\n  }\n\n  return items;\n};\n\nexport const downloadJson = (json, filename) => {\n  let data = new Blob([JSON.stringify(json)], {type: 'application/json'});\n\n  let url = window.URL.createObjectURL(data);\n  let element = document.getElementById(\"download\");\n  if (element) {\n    element.parentNode.removeChild(element);\n  }\n  element = document.createElement(\"a\");\n  element.id = \"download\";\n  element.style = \"display: none\";\n  element.href = url;\n  element.download = filename;\n  document.body.appendChild(element);\n  element.click();\n  window.URL.revokeObjectURL(url);\n};\n\nexport const readJson = async (file, schema) => {\n let string = await readFileAsync(file);\n if (!string || string.length === 0) return [];\n let json = JSON.parse(string);\n return parseJson(json, schema);\n};\n\nfunction parseJson(json, schema, languages = null) {\n  let items = [];\n  for (let jsonIndex = 0; jsonIndex < json.length; jsonIndex++) {\n    let jsonItem = json[jsonIndex];\n    if (!languages && (!jsonItem.languages || jsonItem.languages.length === 0))  throw new Error(`${jsonIndex + 1}番目のアイテムでlanguagesが必要です`);\n\n    let itemLanguages = languages ? languages : jsonItem.languages;\n    let item = {};\n    if (!languages) {\n      item.languages = JSON.stringify(itemLanguages);\n    }\n    for (let schemaIndex = 0; schemaIndex < schema.length; schemaIndex++) {\n      let schemaItem = schema[schemaIndex];\n      if (schemaItem.type && schemaItem.type === \"Array\") {\n        item[schemaItem.path] = parseJson(jsonItem[schemaItem.path], schemaItem.items, itemLanguages);\n      } else {\n        let value = jsonItem[schemaItem.path];\n        if (schemaItem.separatedLanguage) {\n          let language;\n          for (language of itemLanguages) {\n\t\t  console.log(\"json.js \" + language + \" value = \" + value + \" \" + schemaItem.path);\n            if (!value.hasOwnProperty(language))\n\t\t  \t{\n\t\t\tconsole.log(\"*** error *** aaa\");\n\t\t  console.log(\"json.js \" + language + \" value = \" + value + \" \" + schemaItem.path);\n\t\t\t\tconsole.log(JSON.stringify(value));\n\n\t\t\tthrow new Error(`${jsonIndex + 1}番目の${schemaItem.path}で言語「${language}」は登録されてません`);\n\t\t\tconsole.log(\"*** error *** aaa 2\");\n\t\t\t}\n            if (schemaItem.required && value[language] === null) throw new Error(`${jsonIndex + 1}番目の${schemaItem.path}で言語「${language}」の内容は必須となってます`);\n          }\n          item[schemaItem.path] = value;\n        } else {\n          if (schemaItem.byValue) {\n            if (!value.hasOwnProperty(\"value\"))\n\t\t  {\n\t\t\tconsole.log(\"*** error *** bbb\");\n\t\t  throw new Error(`${jsonIndex + 1}番目の${schemaItem.path}で「value」は登録されてません`);\n\t\t  }\n            if (schemaItem.required && value.value === null) throw new Error(`${jsonIndex + 1}番目の${schemaItem.path}で「value」の内容は必須となってます`);\n            item[schemaItem.path] = value;\n          } else {\n            if (schemaItem.required && value === null) throw new Error(`${jsonIndex + 1}番目の${schemaItem.path}での内容は必須となってます`);\n            item[schemaItem.path] = value;\n          }\n        }\n      }\n    }\n    items.push(item);\n  }\n\n  return items;\n}\n\nexport function readFileAsync(file, encoding = undefined) {\n  return new Promise((resolve, reject) => {\n    let reader = new FileReader();\n    reader.onload = () => {\n      resolve(reader.result);\n    };\n    reader.onerror = reject;\n    reader.readAsText(file, encoding);\n  })\n}\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { ButtonToolbar, Button, Badge, ListGroup } from \"react-bootstrap\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faBars } from '@fortawesome/free-solid-svg-icons'\nimport \"./index.scss\";\nimport * as contentsService from \"../../../services/contents\";\nimport * as commonService from \"../../../services/common\";\nimport * as jsonService from \"../../../services/json\";\n\nclass CoursesPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentType: \"COURSE\",\n      isEdit: false,\n      loading: true,\n      error: null,\n      items: [],\n      oldItems: [],\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchContents();\n  }\n\n  fetchContents = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let setting = await contentsService.fetchContentSetting(this.state.contentType);\n      let response = await contentsService.fetchContents();\n      let items = response.items.filter((item) => item.contentType === this.state.contentType);\n      if (setting) {\n        let order = JSON.parse(setting.order);\n        let newList = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = items.findIndex(item => item.id === order[i]);\n          if (items[index]) {\n            newList.push(items[index]);\n          }\n        }\n        items = newList;\n      }\n\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: false, error: e });\n    }\n  };\n\n  onCreateClick = () => {\n    this.props.history.push(\"/admin/courses/new\");\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/admin/courses/${item.id}`);\n  };\n\n  onDragEnd = async (result) => {\n    if (!result.destination) return;\n\n    // Update local list\n    const items = Array.from(this.state.items);\n    const [removed] = items.splice(result.source.index, 1);\n    items.splice(result.destination.index, 0, removed);\n    this.setState({ items });\n  };\n\n  onDownload = () => {\n\n    let schema = [\n      {path: \"id\"},\n      {path: \"title\", type: \"JSON\"},\n      {path: \"description\", type: \"JSON\"},\n      {path: \"languages\", type: \"JSON\"},\n      {\n        path: \"practiceQuestions\",\n        type: \"Array\",\n        items: [\n          {path: \"id\"},\n          {path: \"title\", type: \"JSON\"},\n          {path: \"svgUrl\"},\n          {path: \"characters\", type: \"JSON\"},\n          {path: \"chats\", type: \"JSON\"},\n          {path: \"answers\", type: \"JSON\"},\n        ]\n      },\n      {\n        path: \"testQuestions\",\n        type: \"Array\",\n        items: [\n          {path: \"id\"},\n          {path: \"title\", type: \"JSON\"},\n          {path: \"svgUrl\"},\n          {path: \"characters\", type: \"JSON\"},\n          {path: \"chats\", type: \"JSON\"},\n          {path: \"answers\", type: \"JSON\"},\n        ]\n      }\n    ];\n\n    let json = jsonService.prepareJson(schema, this.state.items);\n    jsonService.downloadJson(json, \"courses.json\");\n  };\n\n  onUploadSample = () => {\n\n    let schema = [\n      {path: \"title\"},\n      {path: \"description\"},\n      {path: \"languages\"},\n      {\n        path: \"practiceQuestions\",\n        type: \"Array\",\n        items: [\n          {path: \"id\"},\n          {path: \"title\"},\n          {path: \"svgUrl\"},\n          {\n            path: \"characters\",\n            type: \"Array\",\n            items: [\n              {path: \"id\"},\n              {path: \"title\"},\n              {path: \"svgUrl\"},\n            ]\n          },\n          {\n            path: \"chats\",\n            type: \"Array\",\n            items: [\n              {path: \"id\"},\n              {path: \"character\"},\n              {path: \"text\"},\n              {path: \"reading\"},\n            ]\n          },\n          {\n            path: \"answers\",\n            type: \"Array\",\n            items: [\n              {path: \"text\"},\n              {path: \"reading\"},\n              {path: \"message\"},\n              {path: \"isCorrect\"},\n              {path: \"image\"},\n              {path: \"descriptionImage\"},\n              {path: \"descriptionJapaneseFeeling\"},\n              {path: \"descriptionKibi\"},\n              {path: \"descriptionKibiAvatar\"},\n              {path: \"descriptionJapanesePoint\"},\n              {path: \"descriptionBehavePoint\"},\n            ]\n          },\n        ]\n      },\n      {\n        path: \"testQuestions\",\n        type: \"Array\",\n        items: [\n          {path: \"id\"},\n          {path: \"title\"},\n          {path: \"svgUrl\"},\n          {\n            path: \"characters\",\n            type: \"Array\",\n            items: [\n              {path: \"id\"},\n              {path: \"title\"},\n              {path: \"svgUrl\"},\n            ]\n          },\n          {\n            path: \"chats\",\n            type: \"Array\",\n            items: [\n              {path: \"id\"},\n              {path: \"character\"},\n              {path: \"text\"},\n              {path: \"reading\"},\n            ]\n          },\n          {\n            path: \"answers\",\n            type: \"Array\",\n            items: [\n              {path: \"text\"},\n              {path: \"reading\"},\n              {path: \"isCorrect\"},\n            ]\n          },\n        ]\n      },\n    ];\n\n    let items = [\n      {\n        title: {jp: \"Some title\"},\n        description: {jp: \"Some description\"},\n        languages: [\"jp\"],\n        practiceQuestions: [\n          {\n            id: \"practice-question-1\",\n            title: {jp: \"Practice question 1\"},\n            svgUrl: \"practice-question-svg-filename.svg\",\n            characters: [\n              {\n                id: \"practice-question-character-1\",\n                title: {jp: \"John\"},\n                svgUrl: \"character-svg-filename.svg\",\n              }\n            ],\n            chats: [\n              {\n                id: \"practice-question-chat-1\",\n                character: {\n                  value: \"practice-question-character-1\"\n                },\n                text: {\n                  jp: \"Chat message\"\n                },\n                reading: {\n                  jp: \"Chat message reading\"\n                }\n              }\n            ],\n            answers: [\n              {\n                text: {\n                  jp: \"Answer 1\"\n                },\n                reading: {\n                  jp: \"Reading\"\n                },\n                message: {\n                  value: \"WELL_DONE\"\n                },\n                isCorrect: {\n                  value: \"1\"\n                },\n                image: {\n                  value: \"practice-question-answer-1-svg-filename.svg\"\n                },\n                descriptionImage: {\n                  value: \"practice-question-answer-description-1-svg-filename.svg\"\n                },\n                descriptionJapaneseFeeling: {\n                  jp: \"日本人の気持ち\"\n                },\n                descriptionKibi: {\n                  jp: \"キービンの背景解説\"\n                },\n                descriptionKibiAvatar: {\n                  value: \"kiiibin_relux\"\n                },\n                descriptionJapanesePoint: {\n                  jp: \"日本の慣習ポイント\"\n                },\n                descriptionBehavePoint: {\n                  jp: \"振る舞い方のポイント\"\n                },\n              },\n              {\n                text: {\n                  jp: \"Answer 2\"\n                },\n                reading: {\n                  jp: \"Reading\"\n                },\n                message: {\n                  value: \"ALMOST\"\n                },\n                isCorrect: {\n                  value: \"0\"\n                },\n                image: {\n                  value: \"practice-question-answer-2-svg-filename.svg\"\n                },\n                descriptionImage: {\n                  value: \"practice-question-answer-description-2-svg-filename.svg\"\n                },\n                descriptionJapaneseFeeling: {\n                  jp: \"日本人の気持ち\"\n                },\n                descriptionKibi: {\n                  jp: \"キービンの背景解説\"\n                },\n                descriptionKibiAvatar: {\n                  value: \"kiiibin_sit\"\n                },\n                descriptionJapanesePoint: {\n                  jp: \"日本の慣習ポイント\"\n                },\n                descriptionBehavePoint: {\n                  jp: \"振る舞い方のポイント\"\n                },\n              },\n              {\n                text: {\n                  jp: \"Answer 3\"\n                },\n                reading: {\n                  jp: \"Reading\"\n                },\n                message: {\n                  value: \"TRY_AGAIN\"\n                },\n                isCorrect: {\n                  value: \"0\"\n                },\n                image: {\n                  value: \"practice-question-answer-3-svg-filename.svg\"\n                },\n                descriptionImage: {\n                  value: \"practice-question-answer-description-3-svg-filename.svg\"\n                },\n                descriptionJapaneseFeeling: {\n                  jp: \"日本人の気持ち\"\n                },\n                descriptionKibi: {\n                  jp: \"キービンの背景解説\"\n                },\n                descriptionKibiAvatar: {\n                  value: \"kiiibin_teach\"\n                },\n                descriptionJapanesePoint: {\n                  jp: \"日本の慣習ポイント\"\n                },\n                descriptionBehavePoint: {\n                  jp: \"振る舞い方のポイント\"\n                },\n              }\n            ]\n          }\n        ],\n        testQuestions: [\n          {\n            id: \"test-question-1\",\n            title: {jp: \"Test question 1\"},\n            svgUrl: \"test-question-svg-filename.svg\",\n            characters: [\n              {\n                id: \"test-question-character-1\",\n                title: {jp: \"John\"},\n                svgUrl: \"character-svg-filename.svg\",\n              }\n            ],\n            chats: [\n              {\n                id: \"test-question-chat-1\",\n                character: {\n                  value: \"test-question-character-1\"\n                },\n                text: {\n                  jp: \"Chat message\"\n                },\n                reading: {\n                  jp: \"Chat message reading\"\n                }\n              }\n            ],\n            answers: [\n              {\n                text: {\n                  jp: \"Answer 1\"\n                },\n                reading: {\n                  jp: \"Reading\"\n                },\n                isCorrect: {\n                  value: \"1\"\n                },\n              },\n              {\n                text: {\n                  jp: \"Answer 2\"\n                },\n                reading: {\n                  jp: \"Reading\"\n                },\n                isCorrect: {\n                  value: \"0\"\n                },\n              },\n              {\n                text: {\n                  jp: \"Answer 3\"\n                },\n                reading: {\n                  jp: \"Reading\"\n                },\n                isCorrect: {\n                  value: \"0\"\n                },\n              }\n            ]\n          }\n        ]\n      }\n    ];\n\n    let json = jsonService.prepareJson(schema, items);\n    jsonService.downloadJson(json, \"courses-sample.json\");\n  };\n\n  onUpload = async (file) => {\n\n\n    // byValue\n\n    let schema = [\n      {path: \"title\", required: true, separatedLanguage: true},\n      {path: \"description\", separatedLanguage: true},\n      {\n        path: \"practiceQuestions\",\n        type: \"Array\",\n        items: [\n          {path: \"id\", required: true},\n          {path: \"title\", required: true, separatedLanguage: true},\n          {path: \"svgUrl\", required: true},\n      //     {\n      //       path: \"characters\",\n      //       type: \"Array\",\n      //       items: [\n      //         {path: \"id\"},\n      //         {path: \"title\"},\n      //         {path: \"svgUrl\"},\n      //       ]\n      //     },\n      //     {\n      //       path: \"chats\",\n      //       type: \"Array\",\n      //       items: [\n      //         {path: \"id\"},\n      //         {path: \"character\"},\n      //         {path: \"text\"},\n      //         {path: \"reading\"},\n      //       ]\n      //     },\n      //     {\n      //       path: \"answers\",\n      //       type: \"Array\",\n      //       items: [\n      //         {path: \"text\"},\n      //         {path: \"reading\"},\n      //         {path: \"message\"},\n      //         {path: \"isCorrect\"},\n      //         {path: \"image\"},\n      //         {path: \"descriptionImage\"},\n      //         {path: \"descriptionJapaneseFeeling\"},\n      //         {path: \"descriptionKibi\"},\n      //         {path: \"descriptionKibiAvatar\"},\n      //         {path: \"descriptionJapanesePoint\"},\n      //         {path: \"descriptionBehavePoint\"},\n      //       ]\n      //     },\n        ]\n      },\n      // {\n      //   path: \"testQuestions\",\n      //   type: \"Array\",\n      //   items: [\n      //     {path: \"id\"},\n      //     {path: \"title\"},\n      //     {path: \"svgUrl\"},\n      //     {\n      //       path: \"characters\",\n      //       type: \"Array\",\n      //       items: [\n      //         {path: \"id\"},\n      //         {path: \"title\"},\n      //         {path: \"svgUrl\"},\n      //       ]\n      //     },\n      //     {\n      //       path: \"chats\",\n      //       type: \"Array\",\n      //       items: [\n      //         {path: \"id\"},\n      //         {path: \"character\"},\n      //         {path: \"text\"},\n      //         {path: \"reading\"},\n      //       ]\n      //     },\n      //     {\n      //       path: \"answers\",\n      //       type: \"Array\",\n      //       items: [\n      //         {path: \"text\"},\n      //         {path: \"reading\"},\n      //         {path: \"isCorrect\"},\n      //       ]\n      //     },\n      //   ]\n      // },\n    ];\n\n    // let schema = [\n    //   {path: \"email\", type: \"String\", required: true},\n    //   {path: \"password\", type: function(value) {\n    //       if (value) return value;\n    //       return generator.generate({\n    //         length: 6,\n    //         uppercase: false\n    //       });\n    //     }},\n    //   {path: \"name\", type: \"String\", required: true},\n    //   {path: \"department\", type: \"String\"},\n    //   {path: \"manager\", type: \"String\"},\n    //   {path: \"childMaxCount\", type: \"Int\", required: true},\n    //   {path: \"permissions\", type: function(value) {\n    //       if (!value) throw new Error(\"権限が必須になってます\");\n    //       return JSON.stringify(value.replace(\"\\r\",\"\").split(\";\"));\n    //     }, required: true},\n    // ];\n    try {\n      let items = await jsonService.readJson(file, schema);\n      // let item;\n      // for (item of items) {\n      //   await userService.createUserManager(item);\n      // }\n      // await this.fetchUsers();\n      // window.alert(\"アップロードは完了しました\");\n    } catch (e) {\n      if (e.errors) {\n        window.alert(e.errors[0].message);\n      } else {\n        window.alert(e.message);\n      }\n    }\n  };\n\n  onEditOrder = () => {\n    const {items} = this.state;\n    this.setState({oldItems: [...items], isEdit: true})\n  };\n\n  onEditOrderCancel = () => {\n    const {oldItems} = this.state;\n    this.setState({items: [...oldItems], isEdit: false});\n  };\n\n  onEditOrderDone = async () => {\n    const {items} = this.state;\n\n    let order = items.map(item => item.id);\n    await contentsService.updateContentSetting({id: this.state.contentType, order: JSON.stringify(order)})\n\n    this.setState({oldItems: [], isEdit: false});\n  };\n\n  renderSimpleList = () => {\n    const {items} = this.state;\n    return (\n      <ListGroup className=\"mt-3\">\n          {items.map((item, index) => (\n\n              <div\n                key={item.id}\n                className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n                onClick={() => this.onEditClick(item)}\n              >\n                <div>\n                  <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n                  {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n                  {JSON.parse(item.languages).map((language) => (\n                    <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n                  ))}\n                </div>\n              </div>\n        ))}\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  renderDraggableList = () => {\n    return (\n      <ListGroup className=\"mt-3\">\n\n        <DragDropContext onDragEnd={this.onDragEnd}>\n          <Droppable droppableId=\"droppable\">\n            {(provided, snapshot) => (\n              <div\n                {...provided.droppableProps}\n                ref={provided.innerRef}\n              >\n                {this.state.items.map((item, index) => (\n                  <Draggable key={item.id} draggableId={item.id} index={index}>\n                    {(provided, snapshot) => (\n                      <div\n                        ref={provided.innerRef}\n                        {...provided.draggableProps}\n                        {...provided.dragHandleProps}\n                        className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n                        onClick={() => this.onEditClick(item)}\n                      >\n                        <div>\n                          <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n                          {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n                          {JSON.parse(item.languages).map((language) => (\n                            <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n                          ))}\n                        </div>\n                      </div>\n                    )}\n                  </Draggable>\n                ))}\n                {provided.placeholder}\n              </div>\n            )}\n          </Droppable>\n        </DragDropContext>\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  render() {\n    const {isEdit} = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">コース一覧</h1>\n          {!isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrder}>順番変更</Button>\n              <div className='btn btn-outline-primary mr-2 pointer'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  アップロード\n                </label>\n                <input id=\"file\" accept=\"application/json\" type='file' style={{display: 'none'}} onChange={(e) => {this.onUpload(e.target.files[0]); e.target.value = null;}} />\n              </div>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onUploadSample}>CSVサンプル</Button>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onDownload}>ダウンロード</Button>\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onCreateClick}>制作</Button>\n            </div>\n          )}\n          {isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"outline-primary mr-2\" onClick={this.onEditOrderCancel}>キャンセル</Button>\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrderDone}>保存</Button>\n            </div>\n          )}\n        </ButtonToolbar>\n\n        {!isEdit && this.renderSimpleList()}\n        {isEdit && this.renderDraggableList()}\n\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(CoursesPage);\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetPracticeQuestions, GetPracticeQuestion, CreatePracticeQuestion, UpdatePracticeQuestion, DeletePracticeQuestion } from \"./graphql/practice-questions\";\nimport {GetContent} from \"./graphql/contents\";\n\nexport const fetchPracticeQuestions = async (contentId) => {\n  const response = await API.graphql({\n    query: GetPracticeQuestions,\n    variables: {contentId},\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.getPracticeQuestions;\n};\n\nexport const fetchPracticeQuestion = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    GetPracticeQuestion,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getPracticeQuestion;\n};\n\nexport const createPracticeQuestion = async ({id, contentId, title, svgUrl, characters, chats, answers}) => {\n  const response = await API.graphql(graphqlOperation(\n    CreatePracticeQuestion,\n    { input: { id, contentId, title, svgUrl , characters, chats, answers} },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createPracticeQuestion;\n};\n\nexport const updatePracticeQuestion = async ({id, title, svgUrl, characters, chats, answers}) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdatePracticeQuestion,\n    { input: { id, title, svgUrl , characters, chats, answers} },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updatePracticeQuestion;\n};\n\nexport const deletePracticeQuestion = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    DeletePracticeQuestion,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.deletePracticeQuestion;\n};\n","export const GetPracticeQuestions = `\n  query GetPracticeQuestions($contentId: ID!, $first: Int, $after: String) {\n    getPracticeQuestions(contentId: $contentId, first: $first, after: $after) {\n      items {\n        id\n        title\n        svgUrl\n        characters\n        chats\n        answers\n        createdAt\n      }\n      nextToken\n    }\n  }\n`;\n\nexport const GetPracticeQuestion = `\n  query GetPracticeQuestion($id: ID!) {\n    getPracticeQuestion(id: $id) {\n      id\n      contentId\n      title\n      svgUrl\n      characters\n      chats\n      answers\n      createdAt\n    }\n  }\n`;\n\nexport const CreatePracticeQuestion = `\n  mutation CreatePracticeQuestion($input: PracticeQuestionCreateInput!) {\n    createPracticeQuestion(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const UpdatePracticeQuestion = `\n  mutation UpdatePracticeQuestion($input: PracticeQuestionUpdateInput!) {\n    updatePracticeQuestion(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const DeletePracticeQuestion = `\n  mutation DeletePracticeQuestion($id: ID!) {\n    deletePracticeQuestion(id: $id) {\n      id\n    }\n  }\n`;\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetTestQuestions, GetTestQuestion, CreateTestQuestion, UpdateTestQuestion, DeleteTestQuestion } from \"./graphql/test-questions\";\n\nexport const fetchTestQuestions = async (contentId) => {\n  const response = await API.graphql(graphqlOperation(\n    GetTestQuestions,\n    { contentId },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getTestQuestions;\n};\n\nexport const fetchTestQuestion = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    GetTestQuestion,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getTestQuestion;\n};\n\nexport const createTestQuestion = async ({id, contentId, title, subtitle, svgUrl, characters, chats, answers}) => {\n  const response = await API.graphql(graphqlOperation(\n    CreateTestQuestion,\n    { input: { id, contentId, title, subtitle, svgUrl , characters, chats, answers} },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.createTestQuestion;\n};\n\nexport const updateTestQuestion = async ({id, title, subtitle, svgUrl, characters, chats, answers}) => {\n  const response = await API.graphql(graphqlOperation(\n    UpdateTestQuestion,\n    { input: { id, title, subtitle, svgUrl , characters, chats, answers} },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.updateTestQuestion;\n};\n\nexport const deleteTestQuestion = async (id) => {\n  const response = await API.graphql(graphqlOperation(\n    DeleteTestQuestion,\n    { id },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.deleteTestQuestion;\n};\n","export const GetTestQuestions = `\n  query GetTestQuestions($contentId: ID!, $first: Int, $after: String) {\n    getTestQuestions(contentId: $contentId, first: $first, after: $after) {\n      items {\n        id\n        title\n        subtitle\n        svgUrl\n        characters\n        chats\n        answers\n        createdAt\n      }\n      nextToken\n    }\n  }\n`;\n\nexport const GetTestQuestion = `\n  query GetTestQuestion($id: ID!) {\n    getTestQuestion(id: $id) {\n      id\n      contentId\n      title\n        subtitle\n      svgUrl\n      characters\n      chats\n      answers\n      createdAt\n    }\n  }\n`;\n\nexport const CreateTestQuestion = `\n  mutation CreateTestQuestion($input: TestQuestionCreateInput!) {\n    createTestQuestion(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const UpdateTestQuestion = `\n  mutation UpdateTestQuestion($input: TestQuestionUpdateInput!) {\n    updateTestQuestion(input: $input) {\n      id\n    }\n  }\n`;\n\nexport const DeleteTestQuestion = `\n  mutation DeleteTestQuestion($id: ID!) {\n    deleteTestQuestion(id: $id) {\n      id\n    }\n  }\n`;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Alert, Button, ButtonToolbar, Form, ListGroup, Dropdown, Card} from \"react-bootstrap\";\nimport uuid from \"uuid\";\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\nimport * as contentsService  from \"../../../../services/contents\";\nimport * as practiceQuestionsService  from \"../../../../services/practice-questions\";\nimport * as testQuestionsService  from \"../../../../services/test-questions\";\nimport * as commonService  from \"../../../../services/common\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlusCircle, faMinusCircle, faCheck, faBars } from '@fortawesome/free-solid-svg-icons'\nimport \"./index.scss\";\n\nclass CoursePage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      practiceQuestions: [],\n      testQuestions: [],\n      settings: {},\n      data: null,\n\n      touched: false,\n      title: { separatedLanguage: true },\n      description: { separatedLanguage: true },\n      languages: [],\n\n      selectedLanguage: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n\n      if (this.props.match.params.courseId !== \"new\") {\n\n        // Content\n        state.data = await contentsService.fetchContent(this.props.match.params.courseId);\n        state.languages = JSON.parse(state.data.languages);\n        state.settings = state.data && state.data.settings ? JSON.parse(state.data.settings) : {};\n        let fields = [\"title\", \"description\"];\n        for (let fieldIndex in fields) {\n            if (this.state[fields[fieldIndex]].separatedLanguage) {\n              for (let langIndex in state.languages) {\n                if (!state[fields[fieldIndex]]) state[fields[fieldIndex]] = {...this.state[fields[fieldIndex]]};\n                state[fields[fieldIndex]][state.languages[langIndex]] = JSON.parse(state.data[fields[fieldIndex]])[state.languages[langIndex]];\n              }\n\n            } else {\n              state[fields[fieldIndex]] = { value: state.data[fields[fieldIndex]], ...this.state[fields[fieldIndex]]};\n            }\n        }\n\n        // Practice Questions\n        let practiceQuestionsResponse = await practiceQuestionsService.fetchPracticeQuestions(this.props.match.params.courseId);\n\n        if (state.settings && state.settings.practiceQuestions) {\n          let order = state.settings.practiceQuestions;\n          let items = practiceQuestionsResponse.items;\n          items = items.map(function(item) {\n            var n = order.indexOf(item.id);\n            order[n] = '';\n            return [n, item]\n          }).sort().map(function(j) { return j[1] });\n          state.practiceQuestions = items;\n        } else {\n          state.practiceQuestions = practiceQuestionsResponse.items;\n        }\n\n        // Test Questions\n        let testQuestionsResponse = await testQuestionsService.fetchTestQuestions(this.props.match.params.courseId);\n        state.testQuestions = testQuestionsResponse.items;\n      } else {\n        state.languages = [commonService.mainLanguage]\n      }\n      state.selectedLanguage = commonService.mainLanguage;\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n\n  }\n\n  onCancelClick = () => {\n    this.props.history.push(\"/admin/courses\");\n  };\n\n  onDeleteClick = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await contentsService.deleteContent(this.state.data.id);\n\n      // update order\n      let setting = await contentsService.fetchContentSetting(\"COURSE\");\n      let order = [];\n      if (setting && setting.order) {\n        order = JSON.parse(setting.order);\n      }\n      let index = order.indexOf(this.state.data.id);\n      if (index !== -1) {\n        order.splice(index, 1);\n        await contentsService.updateContentSetting({id: \"COURSE\", order: JSON.stringify(order)});\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/courses/\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    event.preventDefault();\n    this.setState({error: null, touched: true});\n    if (!this.formRequiredValidation([\"title\"])) return;\n\n    this.setState({loading: true});\n\n    try {\n      let fields = [\"title\", \"description\"];\n      let input = {};\n      for (let fieldIndex in fields) {\n        if (this.state[fields[fieldIndex]].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[fields[fieldIndex]][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[fields[fieldIndex]] = JSON.stringify(values);\n        } else {\n          input[fields[fieldIndex]] = this.state[fields[fieldIndex]].value;\n        }\n      }\n\n      input.languages = JSON.stringify(this.state.languages);\n\n      if (this.state.data) {\n        input.id = this.state.data.id;\n        input.settings = this.state.data.settings;\n        await contentsService.updateContent(input);\n      } else {\n        input.id = uuid.v4();\n        input.contentType = \"COURSE\";\n        await contentsService.createContent(input);\n\n        // update order\n        let setting = await contentsService.fetchContentSetting(\"COURSE\");\n        let order = [];\n        if (setting && setting.order) {\n          order = JSON.parse(setting.order);\n        }\n        order.push(input.id);\n        await contentsService.updateContentSetting({id: \"COURSE\", order: JSON.stringify(order)});\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/courses\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onCreatePracticeQuestionClick = () => {\n    this.props.history.push(`/admin/courses/${this.props.match.params.courseId}/practice-questions/new`);\n  };\n\n  onPracticeQuestionEditClick = (item) => {\n    this.props.history.push(`/admin/courses/${this.props.match.params.courseId}/practice-questions/${item.id}`);\n  };\n\n  onCreateTestQuestionClick = () => {\n    this.props.history.push(`/admin/courses/${this.props.match.params.courseId}/test-questions/new`);\n  };\n\n  onTestQuestionEditClick = (item) => {\n    this.props.history.push(`/admin/courses/${this.props.match.params.courseId}/test-questions/${item.id}`);\n  };\n\n  onDragEnd = async (result) => {\n    if (!result.destination) return;\n\n    // Update local list\n    const practiceQuestions = Array.from(this.state.practiceQuestions);\n    const [removed] = practiceQuestions.splice(result.source.index, 1);\n    practiceQuestions.splice(result.destination.index, 0, removed);\n    this.setState({ practiceQuestions });\n\n    // Update db\n    let settings = this.state.settings;\n    settings.practiceQuestions = practiceQuestions.map(item => item.id);\n\n    await contentsService.updateContent({\n      id: this.state.data.id,\n      languages: this.state.data.languages,\n      title: this.state.data.title,\n      settings: JSON.stringify(settings),\n      description: this.state.data.description\n    });\n    let data = await contentsService.fetchContent(this.state.data.id);\n    this.setState({ data, settings });\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let data = {...this.state[fieldName]};\n\n    if (this.state[fieldName].separatedLanguage) {\n      data[this.state.selectedLanguage] = value;\n    } else {\n      data.value = value;\n    }\n\n    let state = {};\n    state[fieldName] = data;\n\n    this.setState(state);\n  };\n\n  getFormControlValue = (fieldName) => {\n    if (this.state[fieldName].separatedLanguage) {\n      let value = this.state[fieldName][this.state.selectedLanguage];\n      return value ? value : \"\";\n    } else {\n      let value = this.state[fieldName].value;\n      return value ? value : \"\";\n    }\n  };\n\n  formRequiredValidation = (fileds) => {\n    for (let i in fileds) {\n      if (!this.formFieldRequiredValidation(fileds[i], true)) return false;\n    }\n\n    return true;\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    if (this.state[fieldName].separatedLanguage) {\n      for (let i in this.state.languages) {\n        let value = this.state[fieldName][this.state.languages[i]];\n        if (!(value && value.length > 0)) return false;\n      }\n      return true;\n    } else {\n      let value = this.state[fieldName].value;\n      return value && value.length > 0;\n    }\n\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    for (let i in this.state.languages) {\n      let value = this.state[fieldName][this.state.languages[i]];\n      if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n    }\n\n    return \"\";\n  };\n\n  renderToolbar = () => {\n    let isNew = this.props.match.params.courseId === \"new\";\n\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">コース{isNew ? \"制作\" : \"編集\"}</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n          <Button variant=\"outline-secondary\"\n                  onClick={this.onCancelClick}>キャンセル</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderForm = () => {\n    return (\n      <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n        <Form.Group>\n          <Form.Label>タイトル</Form.Label>\n          <Form.Control required\n                        type=\"text\"\n                        value={this.getFormControlValue(\"title\")}\n                        onChange={(e) => this.onFormControlChanged(\"title\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"title\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"title\")}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>説明</Form.Label>\n          <Form.Control as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"description\")}\n                        onChange={(e) => this.onFormControlChanged(\"description\", e.target.value)} />\n        </Form.Group>\n      </Form>\n    );\n  };\n\n  renderPracticeQuestions = () => {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">練習問題</h1>\n          <div>\n            <Button variant=\"primary\"\n                    type=\"submit\"\n                    disabled={false}\n                    onClick={this.onCreatePracticeQuestionClick}>制作</Button>\n          </div>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          <DragDropContext onDragEnd={this.onDragEnd}>\n            <Droppable droppableId=\"droppable\">\n              {(provided, snapshot) => (\n                <div\n                  {...provided.droppableProps}\n                  ref={provided.innerRef}\n                >\n                  {this.state.practiceQuestions.map((item, index) => (\n                    <Draggable key={item.id} draggableId={item.id} index={index}>\n                      {(provided, snapshot) => (\n                        <div\n                          ref={provided.innerRef}\n                          {...provided.draggableProps}\n                          {...provided.dragHandleProps}\n                          className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n                          onClick={() => this.onPracticeQuestionEditClick(item)}\n                        >\n                          <div>\n                            <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n                            {JSON.parse(item.title)[this.state.selectedLanguage] + \" \"}\n                          </div>\n                        </div>\n                      )}\n                    </Draggable>\n                  ))}\n                  {provided.placeholder}\n                </div>\n              )}\n            </Droppable>\n          </DragDropContext>\n          {this.state.practiceQuestions.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  renderTestQuestions = () => {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">テスト問題</h1>\n          <div>\n            <Button variant=\"primary\"\n                    type=\"submit\"\n                    disabled={false}\n                    onClick={this.onCreateTestQuestionClick}>制作</Button>\n          </div>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {this.state.testQuestions.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onTestQuestionEditClick(item)}>\n              <div>\n                {JSON.parse(item.title)[this.state.selectedLanguage] + \" \"}\n              </div>\n            </ListGroup.Item>\n          ))}\n          {this.state.testQuestions.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  renderDangerActions = () => {\n    return (\n      <Card className=\"mt-4 mb-4\">\n        <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n        <Card.Body>\n          <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>コースを削除する</Button>\n        </Card.Body>\n      </Card>\n    );\n  };\n\n  render() {\n    let isNew = this.props.match.params.courseId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n          {this.renderForm()}\n        </SmallBgLoading>\n\n        {!isNew && this.renderPracticeQuestions()}\n        {!isNew && this.renderTestQuestions()}\n        {!isNew && this.renderDangerActions()}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(CoursePage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Alert, Button, ButtonToolbar, Form, Dropdown, Card, Nav } from \"react-bootstrap\";\nimport uuid from \"uuid\";\nimport * as contentsService  from \"../../../../../services/contents\";\nimport * as practiceQuestionsService  from \"../../../../../services/practice-questions\";\nimport * as commonService  from \"../../../../../services/common\";\nimport { SmallBgLoading } from \"../../../../../components/commons/SmallBgLoading\"\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'\nimport { Storage } from \"aws-amplify\";\nimport \"./index.scss\";\n\nclass PracticeQuestionPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      data: null,\n\n      selectedTab: null,\n      selectedAnswer: null,\n      touched: false,\n      title: { separatedLanguage: true, required: true },\n      svgUrl: { separatedLanguage: false, required: true },\n      characters: {\n        image: {\n          separatedLanguage: false,\n          required: true\n        },\n        name: {\n          separatedLanguage: true,\n          required: true\n        },\n        multiply: true\n      },\n      chats: {\n        character: {\n          separatedLanguage: false,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        reading: {\n          separatedLanguage: true,\n          required: false\n        },\n        multiply: true\n      },\n      answers: {\n        image: {\n          separatedLanguage: false,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        reading: {\n          separatedLanguage: true,\n          required: false\n        },\n        message: {\n          separatedLanguage: false,\n          required: true\n        },\n        descriptionImage: {\n          separatedLanguage: false,\n          required: true\n        },\n        descriptionJapaneseFeeling: {\n          separatedLanguage: true,\n          required: true\n        },\n        descriptionKibi: {\n          separatedLanguage: true,\n          required: true\n        },\n        descriptionKibiAvatar: {\n          separatedLanguage: false,\n          required: true\n        },\n        descriptionJapanesePoint: {\n          separatedLanguage: true,\n          required: true\n        },\n        descriptionBehavePoint: {\n          separatedLanguage: true,\n          required: true\n        },\n\n        isCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        value: [{}, {}, {}],\n        multiply: true\n      },\n      languages: [],\n\n      content: null,\n      selectedLanguage: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n\n      let state = {loading: false};\n      let content = await contentsService.fetchContent(this.props.match.params.courseId);\n      state.content = content;\n      state.languages = JSON.parse(content.languages);\n\n      if (this.props.match.params.practiceQuestionId !== \"new\") {\n        state.data = await practiceQuestionsService.fetchPracticeQuestion(this.props.match.params.practiceQuestionId);\n\n        let fields = [\"title\", \"svgUrl\"];\n        for (let fieldIndex in fields) {\n          if (this.state[fields[fieldIndex]].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[fields[fieldIndex]]) state[fields[fieldIndex]] = {...this.state[fields[fieldIndex]]};\n\n              try {\n                state[fields[fieldIndex]][state.languages[langIndex]] = JSON.parse(state.data[fields[fieldIndex]])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[fields[fieldIndex]] = { value: state.data[fields[fieldIndex]], ...this.state[fields[fieldIndex]]};\n          }\n        }\n\n        state.characters = { value: JSON.parse(state.data.characters), ...this.state.characters};\n        state.chats = { value: JSON.parse(state.data.chats), ...this.state.chats};\n        state.answers = this.state.answers;\n        state.answers.value = JSON.parse(state.data.answers);\n      }\n      state.selectedLanguage = commonService.mainLanguage;\n\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n\n\n  }\n\n  formatByLanguage = (value) => {\n    let array = JSON.parse(value);\n    if (array[this.state.selectedLanguage]) {\n      return array[this.state.selectedLanguage];\n    } else {\n      return \"Undefined\"\n    }\n  };\n\n  onCancelClick = () => {\n    this.props.history.push(`/admin/courses/${this.props.match.params.courseId}`);\n  };\n\n  onDeleteClick = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await practiceQuestionsService.deletePracticeQuestion(this.state.data.id);\n\n      // update order\n      let course = await contentsService.fetchContent(this.props.match.params.courseId);\n      let courseSettings = course.settings ? JSON.parse(course.settings) : {};\n      if (courseSettings.practiceQuestions) {\n        let index = courseSettings.practiceQuestions.indexOf(this.state.data.id);\n        if (index !== -1) {\n          courseSettings.practiceQuestions.splice(index, 1);\n        }\n      } else {\n        courseSettings.practiceQuestions = [];\n      }\n      await contentsService.updateContent({\n        id: course.id,\n        languages: course.languages,\n        title: course.title,\n        settings: JSON.stringify(courseSettings),\n        description: course.description\n      });\n\n      this.setState({loading: false});\n      this.props.history.push(`/admin/courses/${this.props.match.params.courseId}`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = async () => {\n    await this.onSubmit(null);\n  };\n\n  onSubmit = async (event) => {\n    if (event) event.preventDefault();\n    this.setState({error: null, touched: true});\n\n    let errorField = this.formRequiredValidation([\n      \"title\",\n      \"svgUrl\",\n      \"characters\",\n      \"characters.n.image\",\n      \"characters.n.name\",\n      \"chats\",\n      \"chats.n.character\",\n      \"chats.n.text\",\n      \"answers\",\n      \"answers.n.image\",\n      \"answers.n.text\",\n      \"answers.n.message\",\n      \"answers.n.descriptionImage\",\n      \"answers.n.descriptionJapaneseFeeling\",\n      \"answers.n.descriptionKibi\",\n      \"answers.n.descriptionKibiAvatar\",\n      \"answers.n.descriptionJapanesePoint\",\n      \"answers.n.descriptionBehavePoint\",\n    ]);\n\n    if (errorField) {\n      this.setState({error: new Error(`保存できませんでした: ${errorField}`)});\n      return;\n    }\n\n    this.setState({loading: true});\n\n    try {\n      let fields = [\"title\", \"svgUrl\"];\n      let input = {};\n      for (let fieldIndex in fields) {\n        if (this.state[fields[fieldIndex]].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[fields[fieldIndex]][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[fields[fieldIndex]] = JSON.stringify(values);\n        } else {\n          input[fields[fieldIndex]] = this.state[fields[fieldIndex]].value;\n        }\n      }\n\n      input[\"characters\"] = JSON.stringify(this.state[\"characters\"].value);\n      input[\"chats\"] = JSON.stringify(this.state[\"chats\"].value);\n      input[\"answers\"] = JSON.stringify(this.state[\"answers\"].value);\n\n      if (this.state.data) {\n        input.id = this.state.data.id;\n        await practiceQuestionsService.updatePracticeQuestion(input);\n      } else {\n        input.id = uuid.v4();\n        input.contentId = this.props.match.params.courseId;\n        await practiceQuestionsService.createPracticeQuestion(input);\n\n        // update order\n        let course = await contentsService.fetchContent(this.props.match.params.courseId);\n        let courseSettings = course.settings ? JSON.parse(course.settings) : {};\n        if (courseSettings.practiceQuestions) {\n          courseSettings.practiceQuestions.push(input.id);\n        } else {\n          courseSettings.practiceQuestions = [input.id];\n        }\n        await contentsService.updateContent({\n          id: course.id,\n          languages: course.languages,\n          title: course.title,\n          settings: JSON.stringify(courseSettings),\n          description: course.description\n        });\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(`/admin/courses/${this.props.match.params.courseId}`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onCreateCharacter = () => {\n    let value = this.state.characters.value ? this.state.characters.value : [];\n    value.push({\n      id: uuid.v4()\n    });\n\n    let characters = this.state.characters;\n    characters.value = value;\n\n    this.setState( { characters });\n  };\n\n  onDeleteCharacter = (character) => {\n    let value = this.state.characters.value;\n    let index = value.indexOf(character);\n    if (index <= -1) return;\n\n    value.splice(index, 1);\n\n    let characters = this.state.characters;\n    characters.value = value;\n\n    this.setState( { characters });\n  };\n\n  onCreateChat = () => {\n    let value = this.state.chats.value ? this.state.chats.value : [];\n    value.push({\n      id: uuid.v4()\n    });\n\n    let chats = this.state.chats;\n    chats.value = value;\n\n    this.setState( { chats });\n  };\n\n  onDeleteChat = (chat) => {\n    let value = this.state.chats.value;\n    let index = value.indexOf(chat);\n    if (index <= -1) return;\n\n    value.splice(index, 1);\n\n    let chats = this.state.chats;\n    chats.value = value;\n\n    this.setState( { chats });\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n\n    let contentId = this.props.match.params.courseId;\n    let filename = \"practice-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/course-${contentId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n\n    let pathComponents = fieldName.split(\".\");\n\n    let data = {...this.state[pathComponents[0]]};\n\n    if (pathComponents.length > 1) {\n      if (data[pathComponents[2]].separatedLanguage) {\n        if (data.value[parseInt(pathComponents[1])][pathComponents[2]]) {\n          data.value[parseInt(pathComponents[1])][pathComponents[2]][this.state.selectedLanguage] = value;\n        } else {\n          let item = {};\n          item[this.state.selectedLanguage] = value;\n          data.value[parseInt(pathComponents[1])][pathComponents[2]] = item;\n        }\n      } else {\n        data.value[parseInt(pathComponents[1])][pathComponents[2]] = { value };\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        data[this.state.selectedLanguage] = value;\n      } else {\n        data.value = value;\n      }\n    }\n\n    let state = {};\n    state[pathComponents[0]] = data;\n\n    if (this.state.error) {\n      state.error = null;\n    }\n\n    this.setState(state);\n  };\n\n  getFormControlValue = (fieldName) => {\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage]\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage];\n        }  else {\n          return \"\";\n        }\n      } else {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value;\n        }  else {\n          return \"\";\n        }\n      }\n\n    } else {\n      if (this.state[fieldName].separatedLanguage) {\n        let value = this.state[fieldName] ? this.state[fieldName][this.state.selectedLanguage] : null;\n        return value ? value : \"\";\n      } else {\n        let value = this.state[fieldName].value;\n        return value ? value : \"\";\n      }\n    }\n\n  };\n\n  formRequiredValidation = (fileds) => {\n    for (let i in fileds) {\n      let pathComponents = fileds[i].split(\".\");\n      if (pathComponents.length > 1) {\n        if (parseInt(pathComponents[1])) {\n          if (!this.formFieldRequiredValidation(fileds[i], true)) {\n            return fileds[i];\n          }\n        } else {\n          if (this.state[pathComponents[0]].value && this.state[pathComponents[0]].value.length > 0) {\n            for (let rowIndex in this.state[pathComponents[0]].value) {\n              if (!this.formFieldRequiredValidation(`${pathComponents[0]}.${rowIndex}.${pathComponents[2]}`, true)) {\n                return `${pathComponents[0]}.${rowIndex}.${pathComponents[2]}`;\n              }\n            }\n          } else {\n            return `${pathComponents[0]}.n.${pathComponents[2]}`\n          }\n        }\n      } else {\n        if (!this.formFieldRequiredValidation(fileds[i], true)) {\n          return fileds[i];\n        }\n      }\n\n    }\n\n    return null;\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n          let value = item[pathComponents[2]] && item[pathComponents[2]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n        return item[pathComponents[2]] && item[pathComponents[2]].value && item[pathComponents[2]].value.length > 0;\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let value = this.state[pathComponents[0]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let value = this.state[pathComponents[0]].value;\n        return value && value.length > 0;\n      }\n    }\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n    for (let i = 0; i < this.state.languages.length; i++) {\n      if (pathComponents.length > 1) {\n        let value = null;\n        let stack = this.state[pathComponents[0]];\n        if (!stack) {\n          stack = stack.value[parseInt(pathComponents[1])];\n        }\n        if (!stack) {\n          stack = stack[pathComponents[2]];\n        }\n        if (!stack) {\n          value = stack[this.state.languages[i]];\n        }\n        // let value = this.state[pathComponents[0]].value[parseInt(pathComponents[1])][pathComponents[2]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      } else {\n        let value = this.state[pathComponents[0]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      }\n    }\n\n    return \"\";\n  };\n\n  renderGeneral() {\n    let isNew = this.props.match.params.practiceQuestionId === \"new\";\n\n    return(\n      <div className=\"mt-4 mb-4\">\n        <Form id=\"form\" onSubmit={this.onSubmit}>\n          <Form.Group>\n            <Form.Label>タイトル</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(\"title\")}\n                          onChange={(e) => this.onFormControlChanged(\"title\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"title\")} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(\"title\")}] タイトルを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Card>\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              問題イラスト\n              {!this.getFormControlValue('svgUrl') && (\n                <div className='btn btn-primary'>\n                  <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                    イラストをアップロード\n                  </label>\n                  <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"svgUrl\", \"top\", e.target.files[0])} />\n                </div>\n              )}\n              {this.getFormControlValue('svgUrl') && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"svgUrl\", null)}>イラストを削除</Button>)}\n            </Card.Header>\n            {this.getFormControlValue('svgUrl') && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue('svgUrl')} />)}\n            <Card.Body>\n              {this.formFieldRequiredValidation(\"svgUrl\") && !this.getFormControlValue('svgUrl') && (<Card.Text>svgファイルのみ</Card.Text>)}\n              {!this.formFieldRequiredValidation(\"svgUrl\") && (<Card.Text className=\"text-danger\">イラストをアップロードしてください</Card.Text>)}\n            </Card.Body>\n          </Card>\n        </Form>\n\n        {!isNew && (\n          <Card className=\"mt-4\">\n            <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n            <Card.Body>\n              <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>練習問を削除する</Button>\n            </Card.Body>\n          </Card>\n        )}\n      </div>\n    );\n  }\n\n  renderCharacters() {\n\n    return(\n      <div className=\"mt-4 mb-4\">\n\n        {!this.formFieldRequiredValidation(\"characters\") && (\n          <Alert variant=\"danger\" className=\"mb-4\">キャラクターを追加してください</Alert>\n        )}\n\n        <ButtonToolbar className=\"justify-content-between align-items-center\">\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onCreateCharacter}>キャラクターを追加</Button>\n        </ButtonToolbar>\n\n        {this.state.characters.value && this.state.characters.value.map((character, index) => (\n          <Card key={character.id} className=\"mt-4\">\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div></div>\n              <div>\n                {!this.getFormControlValue(`characters.${index}.image`) && (\n                  <div className='btn btn-primary'>\n                    <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                      イラストをアップロード\n                    </label>\n                    <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`characters.${index}.image`, \"character\", e.target.files[0])} />\n                  </div>\n                )}\n                {this.getFormControlValue(`characters.${index}.image`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`characters.${index}.image`, null)}>イラストを削除</Button>)}\n                <Button variant=\"primary\" className=\"ml-2\" onClick={() => this.onDeleteCharacter(character)}>キャラクターを削除</Button>\n              </div>\n            </Card.Header>\n            <div className=\"d-flex\">\n              {character.image && character.image.value && <Card.Img src={character.image.value} style={{ width: '10rem' }} />}\n              <Card.Body>\n                <Form.Group>\n                  <Form.Label>名前</Form.Label>\n                  <Form.Control required\n                                type=\"text\"\n                                value={this.getFormControlValue(`characters.${index}.name`)}\n                                onChange={(e) => this.onFormControlChanged(`characters.${index}.name`, e.target.value)}\n                                isInvalid={!this.formFieldRequiredValidation(`characters.${index}.name`)}\n                  />\n                  <Form.Control.Feedback type=\"invalid\">\n                    [{this.formFieldRequiredValidationByLanguage(`characters.${index}.name`)}] 名前を入力してください\n                  </Form.Control.Feedback>\n                </Form.Group>\n              </Card.Body>\n            </div>\n            {this.formFieldRequiredValidation(`characters.${index}.image`) && !this.getFormControlValue(`characters.${index}.image`) && (<Card.Footer>svgファイルのみ</Card.Footer>)}\n            {!this.formFieldRequiredValidation(`characters.${index}.image`) && (<Card.Footer className=\"text-danger\">イラストをアップロードしてください</Card.Footer>)}\n          </Card>\n        ))}\n      </div>\n    );\n  }\n\n  renderChat() {\n\n    return(\n      <div className=\"mt-4 mb-4\">\n\n        {!this.formFieldRequiredValidation(\"chats\") && (\n          <Alert variant=\"danger\" className=\"mb-4\">チャットを追加してください</Alert>\n        )}\n\n        <ButtonToolbar className=\"justify-content-between align-items-center\">\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onCreateChat}>チャットを追加</Button>\n        </ButtonToolbar>\n\n        {this.state.chats.value && this.state.chats.value.map((chat, index) => (\n          <Card key={chat.id} className=\"mt-4\">\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div></div>\n              <div>\n                <Button variant=\"primary\" className=\"ml-2\" onClick={() => this.onDeleteChat(chat)}>チャットを削除</Button>\n              </div>\n            </Card.Header>\n            <Card.Body>\n              <Form.Group>\n                <Form.Label>キャラクター</Form.Label>\n                <Form.Control required\n                              as=\"select\"\n                              value={this.getFormControlValue(`chats.${index}.character`)}\n                              onChange={(e) => this.onFormControlChanged(`chats.${index}.character`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`chats.${index}.character`)}\n                >\n                  <option label='' value='' className=\"d-none\" />\n                  {this.state.characters.value && this.state.characters.value.map(character => (\n                    <option key={character.id} label={character.name && character.name[this.state.selectedLanguage] ? character.name[this.state.selectedLanguage] : \"\"} value={character.id} />\n                  ))}\n                </Form.Control>\n                <Form.Control.Feedback type=\"invalid\">\n                  キャラクターを選択してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>文章</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`chats.${index}.text`)}\n                              onChange={(e) => this.onFormControlChanged(`chats.${index}.text`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`chats.${index}.text`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`chats.${index}.text`)}] 文章を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>ふりがな</Form.Label>\n                <Form.Control type=\"text\"\n                              value={this.getFormControlValue(`chats.${index}.reading`)}\n                              onChange={(e) => this.onFormControlChanged(`chats.${index}.reading`, e.target.value)}\n                />\n              </Form.Group>\n            </Card.Body>\n          </Card>\n        ))}\n      </div>\n    );\n  }\n\n  renderAnswers() {\n    let index = this.state.selectedAnswer ? this.state.selectedAnswer - 1 : 0;\n\n    return(\n      <div className=\"d-flex mt-4 mb-4\">\n        <Nav variant=\"pills\" className=\"flex-column col-2\">\n          <Nav.Item>\n            <Nav.Link className={!this.state.selectedAnswer || this.state.selectedAnswer === \"1\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedAnswer: \"1\"})}}>答え①</Nav.Link>\n          </Nav.Item>\n          <Nav.Item>\n            <Nav.Link className={this.state.selectedAnswer === \"2\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedAnswer: \"2\"})}}>答え②</Nav.Link>\n          </Nav.Item>\n          <Nav.Item>\n            <Nav.Link className={this.state.selectedAnswer === \"3\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedAnswer: \"3\"})}}>答え③</Nav.Link>\n          </Nav.Item>\n        </Nav>\n\n        <div className=\"flex-grow-1\">\n          <Card>\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div>答え</div>\n              <div>\n                {!this.getFormControlValue(`answers.${index}.image`) && (\n                  <div className='btn btn-primary'>\n                    <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                      イラストをアップロード\n                    </label>\n                    <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`answers.${index}.image`, \"answer\", e.target.files[0])} />\n                  </div>\n                )}\n                {this.getFormControlValue(`answers.${index}.image`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`answers.${index}.image`, null)}>イラストを削除</Button>)}\n              </div>\n            </Card.Header>\n            {this.getFormControlValue(`answers.${index}.image`) && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(`answers.${index}.image`)} />)}\n            <Card.Body>\n              <Form.Group>\n                <Form.Label>文章</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`answers.${index}.text`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.text`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.text`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`answers.${index}.text`)}] 文章を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>ふりがな</Form.Label>\n                <Form.Control type=\"text\"\n                              value={this.getFormControlValue(`answers.${index}.reading`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.reading`, e.target.value)}\n                />\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>メッセージ</Form.Label>\n                <Form.Control required\n                              as=\"select\"\n                              value={this.getFormControlValue(`answers.${index}.message`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.message`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.message`)}\n                >\n                  <option label='' value='' className=\"d-none\" />\n                  <option label=\"よくできました\" value=\"WELL_DONE\" />\n                  <option label=\"あと一歩\" value=\"ALMOST\" />\n                  <option label=\"もう一度考えてみよう\" value=\"TRY_AGAIN\" />\n                </Form.Control>\n                <Form.Control.Feedback type=\"invalid\">\n                  メッセージメッセージを選択してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Check type=\"checkbox\"\n                            label=\"正しい答え\"\n                            checked={this.getFormControlValue(`answers.${index}.isCorrect`) === \"1\"}\n                            onChange={(e) => this.onFormControlChanged(`answers.${index}.isCorrect`, e.target.checked ? \"1\": \"0\")}\n                />\n              </Form.Group>\n            </Card.Body>\n          </Card>\n\n          <Card className=\"mt-4\">\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div>説明</div>\n              <div>\n                {!this.getFormControlValue(`answers.${index}.descriptionImage`) && (\n                  <div className='btn btn-primary'>\n                    <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                      イラストをアップロード\n                    </label>\n                    <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`answers.${index}.descriptionImage`, \"answer-description\", e.target.files[0])} />\n                  </div>\n                )}\n                {this.getFormControlValue(`answers.${index}.descriptionImage`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`answers.${index}.descriptionImage`, null)}>イラストを削除</Button>)}\n              </div>\n            </Card.Header>\n            {this.getFormControlValue(`answers.${index}.descriptionImage`) && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(`answers.${index}.descriptionImage`)} />)}\n            <Card.Body>\n              <Form.Group>\n                <Form.Label>日本人の気持ち</Form.Label>\n                <Form.Control required\n                              as=\"textarea\"\n                              rows=\"3\"\n                              value={this.getFormControlValue(`answers.${index}.descriptionJapaneseFeeling`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.descriptionJapaneseFeeling`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.descriptionJapaneseFeeling`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`answers.${index}.descriptionJapaneseFeeling`)}] 日本人の気持ちを入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>キービンの背景解説</Form.Label>\n                <Form.Control required\n                              as=\"textarea\"\n                              rows=\"3\"\n                              value={this.getFormControlValue(`answers.${index}.descriptionKibi`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.descriptionKibi`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.descriptionKibi`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`answers.${index}.descriptionKibi`)}] キービンの背景解説を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>キービンアバター</Form.Label>\n                <Form.Control required\n                              as=\"select\"\n                              value={this.getFormControlValue(`answers.${index}.descriptionKibiAvatar`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.descriptionKibiAvatar`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.descriptionKibiAvatar`)}\n                >\n                  <option label='' value='' className=\"d-none\" />\n                  <option label=\"Back\" value=\"kiiibin_back\" />\n                  <option label=\"Relux\" value=\"kiiibin_relux\" />\n                  <option label=\"Sad\" value=\"kiiibin_sad\" />\n                  <option label=\"Sit\" value=\"kiiibin_sit\" />\n                  <option label=\"Smile\" value=\"kiiibin_smile\" />\n                  <option label=\"Teach\" value=\"kiiibin_teach\" />\n                </Form.Control>\n                <Form.Control.Feedback type=\"invalid\">\n                  キービンアバターを選択してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>日本の慣習ポイント</Form.Label>\n                <Form.Control required\n                              as=\"textarea\"\n                              rows=\"3\"\n                              value={this.getFormControlValue(`answers.${index}.descriptionJapanesePoint`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.descriptionJapanesePoint`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.descriptionJapanesePoint`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`answers.${index}.descriptionJapanesePoint`)}] 日本の慣習ポイントを入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>振る舞い方のポイント</Form.Label>\n                <Form.Control required\n                              as=\"textarea\"\n                              rows=\"3\"\n                              value={this.getFormControlValue(`answers.${index}.descriptionBehavePoint`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.descriptionBehavePoint`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.descriptionBehavePoint`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`answers.${index}.descriptionBehavePoint`)}] る舞い方のポイントを入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n\n            </Card.Body>\n          </Card>\n        </div>\n      </div>\n    );\n  }\n\n  render() {\n    const {content} = this.state;\n    let isNew = this.props.match.params.practiceQuestionId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (\n            <Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>\n          )}\n\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">{content ? `${this.formatByLanguage(content.title)}: ` : ''}練習問題{isNew ? \"制作\" : \"編集\"}</h1>\n            <div className=\"d-flex\">\n              <Dropdown className=\"mr-2\">\n                <Dropdown.Toggle variant=\"success\">\n                  {commonService.languages[this.state.selectedLanguage]}\n                </Dropdown.Toggle>\n\n                <Dropdown.Menu>\n                  {this.state.languages.map((key) => (\n                    <Dropdown.Item\n                      key={key}\n                      className=\"d-flex justify-content-between align-items-center\"\n                    >\n                      <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                      {this.state.selectedLanguage === key && (\n                        <div>\n                          <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                        </div>\n                      )}\n                    </Dropdown.Item>\n                  ))}\n                </Dropdown.Menu>\n              </Dropdown>\n\n              <Button variant=\"primary\"\n                      type=\"submit\"\n                      className=\"mr-2\"\n                      onClick={this.onDoneClick}>保存</Button>\n              <Button variant=\"outline-secondary\"\n                      onClick={this.onCancelClick}>キャンセル</Button>\n            </div>\n          </ButtonToolbar>\n\n          <Nav variant=\"tabs\" className=\"mt-4\">\n            <Nav.Item>\n              <Nav.Link className={!this.state.selectedTab || this.state.selectedTab === \"general\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedTab: \"general\"})}}>問題</Nav.Link>\n            </Nav.Item>\n            <Nav.Item>\n              <Nav.Link className={this.state.selectedTab === \"characters\" ? \"active\" : \"\"} onClick={() => this.setState({ selectedTab: \"characters\"})}>キャラクター</Nav.Link>\n            </Nav.Item>\n            <Nav.Item>\n              <Nav.Link className={this.state.selectedTab === \"chat\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedTab: \"chat\"})}}>チャット</Nav.Link>\n            </Nav.Item>\n            <Nav.Item>\n              <Nav.Link className={this.state.selectedTab === \"answers\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedTab: \"answers\"})}}>答え</Nav.Link>\n            </Nav.Item>\n\n          </Nav>\n\n          {(!this.state.selectedTab || this.state.selectedTab === \"general\") && (this.renderGeneral())}\n          {this.state.selectedTab === \"characters\" && (this.renderCharacters())}\n          {this.state.selectedTab === \"chat\" && (this.renderChat())}\n          {this.state.selectedTab === \"answers\" && (this.renderAnswers())}\n\n        </SmallBgLoading>\n      </>\n    )\n  };\n}\nfunction mapStateToProps(state) {\n  return {};\n}\nexport default connect(mapStateToProps)(PracticeQuestionPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Alert, Button, ButtonToolbar, Form, Dropdown, Card, Nav } from \"react-bootstrap\";\nimport uuid from \"uuid\";\nimport * as contentsService  from \"../../../../../services/contents\";\nimport * as testQuestionsService  from \"../../../../../services/test-questions\";\nimport * as commonService  from \"../../../../../services/common\";\nimport { SmallBgLoading } from \"../../../../../components/commons/SmallBgLoading\"\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faCheck } from '@fortawesome/free-solid-svg-icons'\nimport { Storage } from \"aws-amplify\";\nimport \"./index.scss\";\n\nclass TestQuestionPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      data: null,\n\n      selectedTab: null,\n      selectedAnswer: null,\n      touched: false,\n      title: { separatedLanguage: true, required: true },\n      subtitle: { separatedLanguage: true, required: true },\n      svgUrl: { separatedLanguage: false, required: true },\n      characters: {\n        image: {\n          separatedLanguage: false,\n          required: true\n        },\n        name: {\n          separatedLanguage: true,\n          required: true\n        },\n        multiply: true\n      },\n      chats: {\n        character: {\n          separatedLanguage: false,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        reading: {\n          separatedLanguage: true,\n          required: false\n        },\n        multiply: true\n      },\n      answers: {\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        reading: {\n          separatedLanguage: true,\n          required: false\n        },\n\n        isCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        value: [{id: '1'}, {id: '2'}, {id: '3'}],\n        multiply: true\n      },\n      languages: [],\n\n      selectedLanguage: null,\n\n      content: null,\n      error: null,\n      loading: false,\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n\n      let state = {loading: false};\n      let content = await contentsService.fetchContent(this.props.match.params.courseId);\n      state.content = content;\n      state.languages = JSON.parse(content.languages);\n\n      if (this.props.match.params.testQuestionId !== \"new\") {\n        state.data = await testQuestionsService.fetchTestQuestion(this.props.match.params.testQuestionId);\n\n        let fields = [\"title\", \"svgUrl\", \"subtitle\"];\n        for (let fieldIndex in fields) {\n          if (this.state[fields[fieldIndex]].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[fields[fieldIndex]]) state[fields[fieldIndex]] = {...this.state[fields[fieldIndex]]};\n              try {\n                state[fields[fieldIndex]][state.languages[langIndex]] = JSON.parse(state.data[fields[fieldIndex]])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[fields[fieldIndex]] = { value: state.data[fields[fieldIndex]], ...this.state[fields[fieldIndex]]};\n          }\n        }\n\n        state.characters = { value: JSON.parse(state.data.characters), ...this.state.characters};\n        state.chats = { value: JSON.parse(state.data.chats), ...this.state.chats};\n        state.answers = this.state.answers;\n        state.answers.value = JSON.parse(state.data.answers);\n        state.answers.value.map((item, index) => {\n          if (item.hasOwnProperty('id')) {\n            return item;\n          }\n          item.id = `${index + 1}`;\n          return item\n        });\n        state.answers.value.sort((a, b) => (a.id > b.id) ? 1 : -1);\n      }\n      state.selectedLanguage = commonService.mainLanguage;\n\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n\n\n  }\n\n  formatByLanguage = (value) => {\n    let array = JSON.parse(value);\n    if (array[this.state.selectedLanguage]) {\n      return array[this.state.selectedLanguage];\n    } else {\n      return \"Undefined\"\n    }\n  };\n\n  onCancelClick = () => {\n    this.props.history.push(`/admin/courses/${this.props.match.params.courseId}`);\n  };\n\n  onDeleteClick = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await testQuestionsService.deleteTestQuestion(this.state.data.id);\n      this.setState({loading: false});\n      this.props.history.push(`/admin/courses/${this.props.match.params.courseId}`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = async () => {\n    await this.onSubmit(null);\n  };\n\n  onSubmit = async (event) => {\n    if (event) event.preventDefault();\n    this.setState({error: null, touched: true});\n\n    let errorString = this.formRequiredValidation([\n      \"title\",\n      \"svgUrl\",\n      \"subtitle\",\n      \"characters\",\n      \"characters.n.image\",\n      \"characters.n.name\",\n      \"chats\",\n      \"chats.n.character\",\n      \"chats.n.text\",\n      \"answers\",\n      \"answers.n.text\",\n    ]);\n    if (errorString) {\n      this.setState({error: new Error(`保存できませんでした: ${errorString}`)});\n      return;\n    }\n\n    this.setState({loading: true});\n\n    try {\n      let fields = [\"title\", \"svgUrl\", \"subtitle\"];\n      let input = {};\n      for (let fieldIndex in fields) {\n        if (this.state[fields[fieldIndex]].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[fields[fieldIndex]][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[fields[fieldIndex]] = JSON.stringify(values);\n        } else {\n          input[fields[fieldIndex]] = this.state[fields[fieldIndex]].value;\n        }\n      }\n\n      input[\"characters\"] = JSON.stringify(this.state[\"characters\"].value);\n      input[\"chats\"] = JSON.stringify(this.state[\"chats\"].value);\n      input[\"answers\"] = JSON.stringify(this.state[\"answers\"].value);\n\n      if (this.state.data) {\n        input.id = this.state.data.id;\n        await testQuestionsService.updateTestQuestion(input);\n      } else {\n        input.id = uuid.v4();\n        input.contentId = this.props.match.params.courseId;\n        await testQuestionsService.createTestQuestion(input);\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(`/admin/courses/${this.props.match.params.courseId}`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onCreateCharacter = () => {\n    let value = this.state.characters.value ? this.state.characters.value : [];\n    value.push({\n      id: uuid.v4()\n    });\n\n    let characters = this.state.characters;\n    characters.value = value;\n\n    this.setState( { characters });\n  };\n\n  onDeleteCharacter = (character) => {\n    let value = this.state.characters.value;\n    let index = value.indexOf(character);\n    if (index <= -1) return;\n\n    value.splice(index, 1);\n\n    let characters = this.state.characters;\n    characters.value = value;\n\n    this.setState( { characters });\n  };\n\n  onCreateChat = () => {\n    let value = this.state.chats.value ? this.state.chats.value : [];\n    value.push({\n      id: uuid.v4()\n    });\n\n    let chats = this.state.chats;\n    chats.value = value;\n\n    this.setState( { chats });\n  };\n\n  onDeleteChat = (chat) => {\n    let value = this.state.chats.value;\n    let index = value.indexOf(chat);\n    if (index <= -1) return;\n\n    value.splice(index, 1);\n\n    let chats = this.state.chats;\n    chats.value = value;\n\n    this.setState( { chats });\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n\n    let contentId = this.props.match.params.courseId;\n    let filename = \"test-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/course-${contentId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n\n    let pathComponents = fieldName.split(\".\");\n\n    let data = {...this.state[pathComponents[0]]};\n\n    if (pathComponents.length > 1) {\n      if (data[pathComponents[2]].separatedLanguage) {\n        if (data.value[parseInt(pathComponents[1])][pathComponents[2]]) {\n          data.value[parseInt(pathComponents[1])][pathComponents[2]][this.state.selectedLanguage] = value;\n        } else {\n          let item = {};\n          item[this.state.selectedLanguage] = value;\n          data.value[parseInt(pathComponents[1])][pathComponents[2]] = item;\n        }\n      } else {\n        data.value[parseInt(pathComponents[1])][pathComponents[2]] = { value };\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        data[this.state.selectedLanguage] = value;\n      } else {\n        data.value = value;\n      }\n    }\n\n    let state = {};\n    state[pathComponents[0]] = data;\n\n    if (this.state.error) {\n      state.error = null;\n    }\n\n    this.setState(state);\n  };\n\n  getFormControlValue = (fieldName) => {\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage]\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage];\n        }  else {\n          return \"\";\n        }\n      } else {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value;\n        }  else {\n          return \"\";\n        }\n      }\n\n    } else {\n      if (this.state[fieldName].separatedLanguage) {\n        let value = this.state[fieldName][this.state.selectedLanguage];\n        return value ? value : \"\";\n      } else {\n        let value = this.state[fieldName].value;\n        return value ? value : \"\";\n      }\n    }\n\n  };\n\n  formRequiredValidation = (fileds) => {\n    for (let i in fileds) {\n      let pathComponents = fileds[i].split(\".\");\n      if (pathComponents.length > 1) {\n        if (parseInt(pathComponents[1])) {\n          if (!this.formFieldRequiredValidation(fileds[i], true)) {\n            return fileds[i];\n          }\n        } else {\n          if (this.state[pathComponents[0]].value && this.state[pathComponents[0]].value.length > 0) {\n            for (let rowIndex in this.state[pathComponents[0]].value) {\n              if (!this.formFieldRequiredValidation(`${pathComponents[0]}.${rowIndex}.${pathComponents[2]}`, true)) {\n                return `${pathComponents[0]}.${rowIndex}.${pathComponents[2]}`;\n              }\n            }\n          } else {\n            return `${pathComponents[0]}.n.${pathComponents[2]}`;\n          }\n        }\n      } else {\n        if (!this.formFieldRequiredValidation(fileds[i], true)) {\n          return fileds[i];\n        }\n      }\n\n    }\n\n    return null;\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n          let value = item[pathComponents[2]] && item[pathComponents[2]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n        return item[pathComponents[2]] && item[pathComponents[2]].value && item[pathComponents[2]].value.length > 0;\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let value = this.state[pathComponents[0]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let value = this.state[pathComponents[0]].value;\n        return value && value.length > 0;\n      }\n    }\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n    for (let i = 0; i < this.state.languages.length; i++) {\n      if (pathComponents.length > 1) {\n        let value = null;\n        let stack = this.state[pathComponents[0]];\n        if (!stack) {\n          stack = stack.value[parseInt(pathComponents[1])];\n        }\n        if (!stack) {\n          stack = stack[pathComponents[2]];\n        }\n        if (!stack) {\n          value = stack[this.state.languages[i]];\n        }\n        // let value = this.state[pathComponents[0]].value[parseInt(pathComponents[1])][pathComponents[2]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      } else {\n        let value = this.state[pathComponents[0]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      }\n    }\n\n    return \"\";\n  };\n\n  renderGeneral() {\n    let isNew = this.props.match.params.testQuestionId === \"new\";\n\n    return(\n      <div className=\"mt-4 mb-4\">\n        <Form id=\"form\" onSubmit={this.onSubmit}>\n          <Form.Group>\n            <Form.Label>タイトル</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(\"title\")}\n                          onChange={(e) => this.onFormControlChanged(\"title\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"title\")} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(\"title\")}] タイトルを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label>サブタイトル</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(\"subtitle\")}\n                          onChange={(e) => this.onFormControlChanged(\"subtitle\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"subtitle\")} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(\"subtitle\")}] サブタイトルを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Card>\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              問題イラスト\n              {!this.getFormControlValue('svgUrl') && (\n                <div className='btn btn-primary'>\n                  <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                    イラストをアップロード\n                  </label>\n                  <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"svgUrl\", \"top\", e.target.files[0])} />\n                </div>\n              )}\n              {this.getFormControlValue('svgUrl') && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"svgUrl\", null)}>イラストを削除</Button>)}\n            </Card.Header>\n            {this.getFormControlValue('svgUrl') && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue('svgUrl')} />)}\n            <Card.Body>\n              {this.formFieldRequiredValidation(\"svgUrl\") && !this.getFormControlValue('svgUrl') && (<Card.Text>svgファイルのみ</Card.Text>)}\n              {!this.formFieldRequiredValidation(\"svgUrl\") && (<Card.Text className=\"text-danger\">イラストをアップロードしてください</Card.Text>)}\n            </Card.Body>\n          </Card>\n        </Form>\n\n        {!isNew && (\n          <Card className=\"mt-4\">\n            <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n            <Card.Body>\n              <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>練習問を削除する</Button>\n            </Card.Body>\n          </Card>\n        )}\n      </div>\n    );\n  }\n\n  renderCharacters() {\n\n    return(\n      <div className=\"mt-4 mb-4\">\n\n        {!this.formFieldRequiredValidation(\"characters\") && (\n          <Alert variant=\"danger\" className=\"mb-4\">キャラクターを追加してください</Alert>\n        )}\n\n        <ButtonToolbar className=\"justify-content-between align-items-center\">\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onCreateCharacter}>キャラクターを追加</Button>\n        </ButtonToolbar>\n\n        {this.state.characters.value && this.state.characters.value.map((character, index) => (\n          <Card key={character.id} className=\"mt-4\">\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div></div>\n              <div>\n                {!this.getFormControlValue(`characters.${index}.image`) && (\n                  <div className='btn btn-primary'>\n                    <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                      イラストをアップロード\n                    </label>\n                    <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`characters.${index}.image`, \"character\", e.target.files[0])} />\n                  </div>\n                )}\n                {this.getFormControlValue(`characters.${index}.image`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`characters.${index}.image`, null)}>イラストを削除</Button>)}\n                <Button variant=\"primary\" className=\"ml-2\" onClick={() => this.onDeleteCharacter(character)}>キャラクターを削除</Button>\n              </div>\n            </Card.Header>\n            <div className=\"d-flex\">\n              {character.image && character.image.value && <Card.Img src={character.image.value} style={{ width: '10rem' }} />}\n              <Card.Body>\n                <Form.Group>\n                  <Form.Label>名前</Form.Label>\n                  <Form.Control required\n                                type=\"text\"\n                                value={this.getFormControlValue(`characters.${index}.name`)}\n                                onChange={(e) => this.onFormControlChanged(`characters.${index}.name`, e.target.value)}\n                                isInvalid={!this.formFieldRequiredValidation(`characters.${index}.name`)}\n                  />\n                  <Form.Control.Feedback type=\"invalid\">\n                    [{this.formFieldRequiredValidationByLanguage(`characters.${index}.name`)}] 名前を入力してください\n                  </Form.Control.Feedback>\n                </Form.Group>\n              </Card.Body>\n            </div>\n            {this.formFieldRequiredValidation(`characters.${index}.image`) && !this.getFormControlValue(`characters.${index}.image`) && (<Card.Footer>svgファイルのみ</Card.Footer>)}\n            {!this.formFieldRequiredValidation(`characters.${index}.image`) && (<Card.Footer className=\"text-danger\">イラストをアップロードしてください</Card.Footer>)}\n          </Card>\n        ))}\n      </div>\n    );\n  }\n\n  renderChat() {\n\n    return(\n      <div className=\"mt-4 mb-4\">\n\n        {!this.formFieldRequiredValidation(\"chats\") && (\n          <Alert variant=\"danger\" className=\"mb-4\">チャットを追加してください</Alert>\n        )}\n\n        <ButtonToolbar className=\"justify-content-between align-items-center\">\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onCreateChat}>チャットを追加</Button>\n        </ButtonToolbar>\n\n        {this.state.chats.value && this.state.chats.value.map((chat, index) => (\n          <Card key={chat.id} className=\"mt-4\">\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div></div>\n              <div>\n                <Button variant=\"primary\" className=\"ml-2\" onClick={() => this.onDeleteChat(chat)}>チャットを削除</Button>\n              </div>\n            </Card.Header>\n            <Card.Body>\n              <Form.Group>\n                <Form.Label>キャラクター</Form.Label>\n                <Form.Control required\n                              as=\"select\"\n                              value={this.getFormControlValue(`chats.${index}.character`)}\n                              onChange={(e) => this.onFormControlChanged(`chats.${index}.character`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`chats.${index}.character`)}\n                >\n                  <option label='' value='' className=\"d-none\" />\n                  {this.state.characters.value && this.state.characters.value.map(character => (\n                    <option key={character.id} label={character.name && character.name[this.state.selectedLanguage] ? character.name[this.state.selectedLanguage] : \"\"} value={character.id} />\n                  ))}\n                </Form.Control>\n                <Form.Control.Feedback type=\"invalid\">\n                  キャラクターを選択してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>文章</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`chats.${index}.text`)}\n                              onChange={(e) => this.onFormControlChanged(`chats.${index}.text`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`chats.${index}.text`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`chats.${index}.text`)}] 文章を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>ふりがな</Form.Label>\n                <Form.Control type=\"text\"\n                              value={this.getFormControlValue(`chats.${index}.reading`)}\n                              onChange={(e) => this.onFormControlChanged(`chats.${index}.reading`, e.target.value)}\n                />\n              </Form.Group>\n            </Card.Body>\n          </Card>\n        ))}\n      </div>\n    );\n  }\n\n  renderAnswers() {\n    let index = this.state.selectedAnswer ? this.state.selectedAnswer - 1 : 0;\n\n    return(\n      <div className=\"d-flex mt-4 mb-4\">\n        <Nav variant=\"pills\" className=\"flex-column col-2\">\n          <Nav.Item>\n            <Nav.Link className={!this.state.selectedAnswer || this.state.selectedAnswer === \"1\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedAnswer: \"1\"})}}>答え①</Nav.Link>\n          </Nav.Item>\n          <Nav.Item>\n            <Nav.Link className={this.state.selectedAnswer === \"2\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedAnswer: \"2\"})}}>答え②</Nav.Link>\n          </Nav.Item>\n          <Nav.Item>\n            <Nav.Link className={this.state.selectedAnswer === \"3\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedAnswer: \"3\"})}}>答え③</Nav.Link>\n          </Nav.Item>\n        </Nav>\n\n        <div className=\"flex-grow-1\">\n          <Card>\n            <Card.Header className=\"d-flex justify-content-between align-items-center\">\n              <div>答え</div>\n            </Card.Header>\n            <Card.Body>\n              <Form.Group>\n                <Form.Label>文章</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`answers.${index}.text`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.text`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`answers.${index}.text`)}\n                />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`answers.${index}.text`)}] 文章を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n              <Form.Group>\n                <Form.Label>ふりがな</Form.Label>\n                <Form.Control type=\"text\"\n                              value={this.getFormControlValue(`answers.${index}.reading`)}\n                              onChange={(e) => this.onFormControlChanged(`answers.${index}.reading`, e.target.value)}\n                />\n              </Form.Group>\n              <Form.Group>\n                <Form.Check type=\"checkbox\"\n                            label=\"正しい答え\"\n                            checked={this.getFormControlValue(`answers.${index}.isCorrect`) === \"1\"}\n                            onChange={(e) => this.onFormControlChanged(`answers.${index}.isCorrect`, e.target.checked ? \"1\": \"0\")}\n                />\n              </Form.Group>\n            </Card.Body>\n          </Card>\n        </div>\n      </div>\n    );\n  }\n\n  render() {\n    const {content} = this.state;\n    let isNew = this.props.match.params.testQuestionId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (\n            <Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>\n          )}\n\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">{content ? `${this.formatByLanguage(content.title)}: ` : ''}テスト問題{isNew ? \"制作\" : \"編集\"}</h1>\n            <div className=\"d-flex\">\n              <Dropdown className=\"mr-2\">\n                <Dropdown.Toggle variant=\"success\">\n                  {commonService.languages[this.state.selectedLanguage]}\n                </Dropdown.Toggle>\n\n                <Dropdown.Menu>\n                  {this.state.languages.map((key) => (\n                    <Dropdown.Item\n                      key={key}\n                      className=\"d-flex justify-content-between align-items-center\"\n                    >\n                      <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                      {this.state.selectedLanguage === key && (\n                        <div>\n                          <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                        </div>\n                      )}\n                    </Dropdown.Item>\n                  ))}\n                </Dropdown.Menu>\n              </Dropdown>\n\n              <Button variant=\"primary\"\n                      type=\"submit\"\n                      className=\"mr-2\"\n                      onClick={this.onDoneClick}>保存</Button>\n              <Button variant=\"outline-secondary\"\n                      onClick={this.onCancelClick}>キャンセル</Button>\n            </div>\n          </ButtonToolbar>\n\n          <Nav variant=\"tabs\" className=\"mt-4\">\n            <Nav.Item>\n              <Nav.Link className={!this.state.selectedTab || this.state.selectedTab === \"general\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedTab: \"general\"})}}>問題</Nav.Link>\n            </Nav.Item>\n            <Nav.Item>\n              <Nav.Link className={this.state.selectedTab === \"characters\" ? \"active\" : \"\"} onClick={() => this.setState({ selectedTab: \"characters\"})}>キャラクター</Nav.Link>\n            </Nav.Item>\n            <Nav.Item>\n              <Nav.Link className={this.state.selectedTab === \"chat\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedTab: \"chat\"})}}>チャット</Nav.Link>\n            </Nav.Item>\n            <Nav.Item>\n              <Nav.Link className={this.state.selectedTab === \"answers\" ? \"active\" : \"\"} onClick={() => {this.setState({ selectedTab: \"answers\"})}}>答え</Nav.Link>\n            </Nav.Item>\n\n          </Nav>\n\n          {(!this.state.selectedTab || this.state.selectedTab === \"general\") && (this.renderGeneral())}\n          {this.state.selectedTab === \"characters\" && (this.renderCharacters())}\n          {this.state.selectedTab === \"chat\" && (this.renderChat())}\n          {this.state.selectedTab === \"answers\" && (this.renderAnswers())}\n\n        </SmallBgLoading>\n      </>\n    )\n  };\n}\nfunction mapStateToProps(state) {\n  return {};\n}\nexport default connect(mapStateToProps)(TestQuestionPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { ButtonToolbar, Button, Badge, ListGroup } from \"react-bootstrap\";\nimport \"./index.scss\";\nimport * as contentsService from \"../../../services/contents\";\nimport * as commonService from \"../../../services/common\";\nimport * as jsonService from \"../../../services/json\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faBars} from \"@fortawesome/free-solid-svg-icons\";\nimport {DragDropContext, Draggable, Droppable} from \"react-beautiful-dnd\";\n\nclass ComicsLifePage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentType: \"COMICS_LIFE\",\n      isEdit: false,\n      loading: true,\n      error: null,\n      items: [],\n      oldItems: [],\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchContents();\n  }\n\n  fetchContents = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let setting = await contentsService.fetchContentSetting(this.state.contentType);\n      let response = await contentsService.fetchContents();\n      let items = response.items.filter((item) => item.contentType === this.state.contentType);\n      items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      if (setting) {\n        let order = JSON.parse(setting.order);\n        let newList = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = items.findIndex(item => item.id === order[i]);\n          if (items[index]) {\n            newList.push(items[index]);\n          }\n        }\n        items = newList;\n      }\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onCreateClick = () => {\n    this.props.history.push(\"/admin/comics/life/new\");\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/admin/comics/life/${item.id}`);\n  };\n\n  onDragEnd = async (result) => {\n    if (!result.destination) return;\n\n    // Update local list\n    const items = Array.from(this.state.items);\n    const [removed] = items.splice(result.source.index, 1);\n    items.splice(result.destination.index, 0, removed);\n    this.setState({ items });\n  };\n\n  onDownload = () => {\n\n    let schema = [\n      {path: \"id\"},\n      {path: \"title\", type: \"JSON\"},\n      {path: \"description\", type: \"JSON\"},\n      {path: \"languages\", type: \"JSON\"},\n      {path: \"comicIntroduction\", type: \"JSON\"},\n      {path: \"comicIntroductionSvgUrl\"},\n      {path: \"comicSituation\", type: \"JSON\"},\n      {path: \"comicSituationSvgUrl\"},\n      {path: \"comicPages\", type: \"JSON\"},\n    ];\n\n    let json = jsonService.prepareJson(schema, this.state.items);\n    jsonService.downloadJson(json, \"comics-life.json\");\n  };\n\n  onUploadSample = () => {\n\n    let schema = [\n      {path: \"title\"},\n      {path: \"description\"},\n      {path: \"languages\"},\n      {path: \"comicIntroduction\"},\n      {path: \"comicIntroductionSvgUrl\"},\n      {path: \"comicSituationSvgUrl\"},\n      {path: \"comicSituation\"},\n      {\n        path: \"comicPages\",\n        type: \"Array\",\n        items: [\n          {path: \"url\"}\n        ]\n      }\n    ];\n\n    let items = [\n      {\n        title: {jp: \"Some title\"},\n        description: {jp: \"Some description\"},\n        languages: [\"jp\"],\n        comicIntroduction: {jp: \"Comic intro\"},\n        comicIntroductionSvgUrl: \"comic-life-intro-image.svg\",\n        comicSituation: {jp: \"Comic situation\"},\n        comicSituationSvgUrl: \"comic-life-situation-image.svg\",\n        comicPages: [\n          { url: \"comic-life-page-1.svg\" },\n          { url: \"comic-life-page-2.svg\" },\n          { url: \"comic-life-page-3.svg\" }\n        ],\n      }\n    ];\n\n    let json = jsonService.prepareJson(schema, items);\n    jsonService.downloadJson(json, \"comics-life.json\");\n  };\n\n  onUpload = async (file) => {\n\n    // // byValue\n    //\n    // let schema = [\n    //   {path: \"title\", required: true, separatedLanguage: true},\n    //   {path: \"description\", separatedLanguage: true},\n    //   {\n    //     path: \"practiceQuestions\",\n    //     type: \"Array\",\n    //     items: [\n    //       {path: \"id\", required: true},\n    //       {path: \"title\", required: true, separatedLanguage: true},\n    //       {path: \"svgUrl\", required: true},\n    //       //     {\n    //       //       path: \"characters\",\n    //       //       type: \"Array\",\n    //       //       items: [\n    //       //         {path: \"id\"},\n    //       //         {path: \"title\"},\n    //       //         {path: \"svgUrl\"},\n    //       //       ]\n    //       //     },\n    //       //     {\n    //       //       path: \"chats\",\n    //       //       type: \"Array\",\n    //       //       items: [\n    //       //         {path: \"id\"},\n    //       //         {path: \"character\"},\n    //       //         {path: \"text\"},\n    //       //         {path: \"reading\"},\n    //       //       ]\n    //       //     },\n    //       //     {\n    //       //       path: \"answers\",\n    //       //       type: \"Array\",\n    //       //       items: [\n    //       //         {path: \"text\"},\n    //       //         {path: \"reading\"},\n    //       //         {path: \"message\"},\n    //       //         {path: \"isCorrect\"},\n    //       //         {path: \"image\"},\n    //       //         {path: \"descriptionImage\"},\n    //       //         {path: \"descriptionJapaneseFeeling\"},\n    //       //         {path: \"descriptionKibi\"},\n    //       //         {path: \"descriptionKibiAvatar\"},\n    //       //         {path: \"descriptionJapanesePoint\"},\n    //       //         {path: \"descriptionBehavePoint\"},\n    //       //       ]\n    //       //     },\n    //     ]\n    //   },\n    //   // {\n    //   //   path: \"testQuestions\",\n    //   //   type: \"Array\",\n    //   //   items: [\n    //   //     {path: \"id\"},\n    //   //     {path: \"title\"},\n    //   //     {path: \"svgUrl\"},\n    //   //     {\n    //   //       path: \"characters\",\n    //   //       type: \"Array\",\n    //   //       items: [\n    //   //         {path: \"id\"},\n    //   //         {path: \"title\"},\n    //   //         {path: \"svgUrl\"},\n    //   //       ]\n    //   //     },\n    //   //     {\n    //   //       path: \"chats\",\n    //   //       type: \"Array\",\n    //   //       items: [\n    //   //         {path: \"id\"},\n    //   //         {path: \"character\"},\n    //   //         {path: \"text\"},\n    //   //         {path: \"reading\"},\n    //   //       ]\n    //   //     },\n    //   //     {\n    //   //       path: \"answers\",\n    //   //       type: \"Array\",\n    //   //       items: [\n    //   //         {path: \"text\"},\n    //   //         {path: \"reading\"},\n    //   //         {path: \"isCorrect\"},\n    //   //       ]\n    //   //     },\n    //   //   ]\n    //   // },\n    // ];\n    //\n    // // let schema = [\n    // //   {path: \"email\", type: \"String\", required: true},\n    // //   {path: \"password\", type: function(value) {\n    // //       if (value) return value;\n    // //       return generator.generate({\n    // //         length: 6,\n    // //         uppercase: false\n    // //       });\n    // //     }},\n    // //   {path: \"name\", type: \"String\", required: true},\n    // //   {path: \"department\", type: \"String\"},\n    // //   {path: \"manager\", type: \"String\"},\n    // //   {path: \"childMaxCount\", type: \"Int\", required: true},\n    // //   {path: \"permissions\", type: function(value) {\n    // //       if (!value) throw new Error(\"権限が必須になってます\");\n    // //       return JSON.stringify(value.replace(\"\\r\",\"\").split(\";\"));\n    // //     }, required: true},\n    // // ];\n    // try {\n    //   let items = await jsonService.readJson(file, schema);\n    //   console.log('items', items);\n    //   // let item;\n    //   // for (item of items) {\n    //   //   await userService.createUserManager(item);\n    //   // }\n    //   // await this.fetchUsers();\n    //   // window.alert(\"アップロードは完了しました\");\n    // } catch (e) {\n    //   if (e.errors) {\n    //     window.alert(e.errors[0].message);\n    //   } else {\n    //     window.alert(e.message);\n    //   }\n    // }\n  };\n\n  onEditOrder = () => {\n    const {items} = this.state;\n    this.setState({oldItems: [...items], isEdit: true})\n  };\n\n  onEditOrderCancel = () => {\n    const {oldItems} = this.state;\n    this.setState({items: [...oldItems], isEdit: false});\n  };\n\n  onEditOrderDone = async () => {\n    const {items} = this.state;\n\n    let order = items.map(item => item.id);\n    await contentsService.updateContentSetting({id: this.state.contentType, order: JSON.stringify(order)})\n\n    this.setState({oldItems: [], isEdit: false});\n  };\n\n  renderSimpleList = () => {\n    const {items} = this.state;\n    return (\n      <ListGroup className=\"mt-3\">\n        {items.map((item, index) => (\n\n          <div\n            key={item.id}\n            className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n            onClick={() => this.onEditClick(item)}\n          >\n            <div>\n              <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n              {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n              {JSON.parse(item.languages).map((language) => (\n                <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n              ))}\n            </div>\n          </div>\n        ))}\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  renderDraggableList = () => {\n    return (\n      <ListGroup className=\"mt-3\">\n\n        <DragDropContext onDragEnd={this.onDragEnd}>\n          <Droppable droppableId=\"droppable\">\n            {(provided, snapshot) => (\n              <div\n                {...provided.droppableProps}\n                ref={provided.innerRef}\n              >\n                {this.state.items.map((item, index) => (\n                  <Draggable key={item.id} draggableId={item.id} index={index}>\n                    {(provided, snapshot) => (\n                      <div\n                        ref={provided.innerRef}\n                        {...provided.draggableProps}\n                        {...provided.dragHandleProps}\n                        className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n                        onClick={() => this.onEditClick(item)}\n                      >\n                        <div>\n                          <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n                          {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n                          {JSON.parse(item.languages).map((language) => (\n                            <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n                          ))}\n                        </div>\n                      </div>\n                    )}\n                  </Draggable>\n                ))}\n                {provided.placeholder}\n              </div>\n            )}\n          </Droppable>\n        </DragDropContext>\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  render() {\n    const {isEdit} = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">漫画Life一覧</h1>\n          {!isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrder}>順番変更</Button>\n              <div className='btn btn-outline-primary mr-2 pointer'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  アップロード\n                </label>\n                <input id=\"file\" accept=\"application/json\" type='file' style={{display: 'none'}} onChange={(e) => {this.onUpload(e.target.files[0]); e.target.value = null;}} />\n              </div>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onUploadSample}>CSVサンプル</Button>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onDownload}>ダウンロード</Button>\n              <Button variant=\"primary\" onClick={this.onCreateClick}>制作</Button>\n            </div>\n          )}\n          {isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"outline-primary mr-2\" onClick={this.onEditOrderCancel}>キャンセル</Button>\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrderDone}>保存</Button>\n            </div>\n          )}\n        </ButtonToolbar>\n\n        {!isEdit && this.renderSimpleList()}\n        {isEdit && this.renderDraggableList()}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(ComicsLifePage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Alert, Button, ButtonToolbar, Form, ListGroup, Dropdown, Card} from \"react-bootstrap\";\nimport uuid from \"uuid\";\nimport { ListManager } from \"react-beautiful-dnd-grid\";\nimport * as contentsService  from \"../../../../services/contents\";\nimport * as commonService  from \"../../../../services/common\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlusCircle, faMinusCircle, faCheck } from '@fortawesome/free-solid-svg-icons'\nimport \"./index.scss\";\nimport { Storage } from \"aws-amplify\";\n\nclass ComicLifePage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      pages: [],\n      settings: {},\n      data: null,\n\n      touched: false,\n      title: { separatedLanguage: true },\n      description: { separatedLanguage: true },\n      comicIntroductionSvgUrl: { separatedLanguage: true },\n      comicIntroduction: { separatedLanguage: true },\n      comicSituationSvgUrl: { separatedLanguage: true },\n      comicSituation: { separatedLanguage: true },\n      languages: [],\n\n      selectedLanguage: null,\n\n      error: null,\n      loading: false,\n      isPagesUploadInProgress: false\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n\n      if (this.props.match.params.comicId !== \"new\") {\n        // Content\n        state.data = await contentsService.fetchContent(this.props.match.params.comicId);\n        state.languages = JSON.parse(state.data.languages);\n        state.pages = state.data && state.data.comicPages ? JSON.parse(state.data.comicPages) : [];\n        let fields = [\"title\", \"description\", \"comicIntroductionSvgUrl\", \"comicIntroduction\", \"comicSituationSvgUrl\", \"comicSituation\"];\n        for (let fieldIndex in fields) {\n            if (this.state[fields[fieldIndex]].separatedLanguage) {\n              for (let langIndex in state.languages) {\n                if (!state[fields[fieldIndex]]) state[fields[fieldIndex]] = {...this.state[fields[fieldIndex]]};\n                try {\n                  state[fields[fieldIndex]][state.languages[langIndex]] = JSON.parse(state.data[fields[fieldIndex]])[state.languages[langIndex]];\n                } catch (e) {}\n              }\n\n            } else {\n              state[fields[fieldIndex]] = { value: state.data[fields[fieldIndex]], ...this.state[fields[fieldIndex]]};\n            }\n        }\n      } else {\n        state.languages = [commonService.mainLanguage]\n      }\n      state.selectedLanguage = commonService.mainLanguage;\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n\n  }\n\n  onCancelClick = () => {\n    this.props.history.push(\"/admin/comics/life\");\n  };\n\n  onDeleteClick = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await contentsService.deleteContent(this.state.data.id);\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/comics/life/\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    event.preventDefault();\n    this.setState({error: null, touched: true});\n    if (!this.formRequiredValidation([\"title\"])) return;\n\n    this.setState({loading: true});\n\n    try {\n      let fields = [\"title\", \"description\", \"comicIntroductionSvgUrl\", \"comicIntroduction\", \"comicSituationSvgUrl\", \"comicSituation\"];\n      let input = {};\n      for (let fieldIndex in fields) {\n        if (this.state[fields[fieldIndex]].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[fields[fieldIndex]][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[fields[fieldIndex]] = JSON.stringify(values);\n        } else {\n          input[fields[fieldIndex]] = this.state[fields[fieldIndex]].value;\n        }\n      }\n\n      input.languages = JSON.stringify(this.state.languages);\n\n      if (this.state.data) {\n        input.id = this.state.data.id;\n        input.settings = this.state.data.settings;\n        await contentsService.updateContent(input);\n      } else {\n        input.id = uuid.v4();\n        input.contentType = \"COMICS_LIFE\";\n        await contentsService.createContent(input);\n\n        // update order\n        let setting = await contentsService.fetchContentSetting(\"COMICS_LIFE\");\n        let order = [];\n        if (setting && setting.order) {\n          order = JSON.parse(setting.order);\n        }\n        order.push(input.id);\n        await contentsService.updateContentSetting({id: \"COMICS_LIFE\", order: JSON.stringify(order)});\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/comics/life\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onDragEnd = async (from, to) => {\n    // Update local list\n    const pages = Array.from(this.state.pages);\n    const [removed] = pages.splice(from, 1);\n    pages.splice(to, 0, removed);\n    this.setState({ pages });\n\n    // Update db\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      comicSituationSvgUrl: this.state.data.comicSituationSvgUrl,\n      comicSituation: this.state.data.comicSituation,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n  };\n\n  onAddPage = async () => {\n    let pages = [...this.state.pages];\n\n    pages.push({\n      id: uuid.v4()\n    });\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      comicSituationSvgUrl: this.state.data.comicSituationSvgUrl,\n      comicSituation: this.state.data.comicSituation,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n    this.setState( { pages} );\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n\n    let comicId = this.props.match.params.comicId;\n    let filename = \"comic-life-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/comic-life-${comicId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onUploadPage = async (item, files, e) => {\n    e.preventDefault();\n\n    let pages = [...this.state.pages];\n    let index = pages.indexOf(item);\n    if (index === -1) {\n      return;\n    }\n\n    for (let i = 0; i < files.length; i++) {\n      let file = files[i];\n      let comicId = this.props.match.params.comicId;\n      let filename = \"comic-life-page-\" + uuid() + \".\" + file.name.split('.').pop();\n\n      const s3Object = await Storage.put(`contents/comic-life-${comicId}/${filename}`, file, {\n        contentType: file.type,\n        level: \"public\"\n      });\n\n      let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n      if (!pages[index].url || typeof pages[index].url !== 'object') {\n        pages[index].url = {};\n      }\n      pages[index]['url'][this.state.selectedLanguage] = url;\n    }\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      comicSituationSvgUrl: this.state.data.comicSituationSvgUrl,\n      comicSituation: this.state.data.comicSituation,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n    this.setState( { pages, isPagesUploadInProgress: false } );\n  };\n\n  onDeletePage = async(item) => {\n    let pages = this.state.pages;\n    let index = pages.indexOf(item);\n    pages.splice(index, 1);\n    this.setState({ pages });\n\n    // Update db\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let data = {...this.state[fieldName]};\n\n    if (this.state[fieldName].separatedLanguage) {\n      data[this.state.selectedLanguage] = value;\n    } else {\n      data.value = value;\n    }\n\n    let state = {};\n    state[fieldName] = data;\n\n    this.setState(state);\n  };\n\n  getFormControlValue = (fieldName) => {\n    if (this.state[fieldName].separatedLanguage) {\n      let value = this.state[fieldName][this.state.selectedLanguage];\n      return value ? value : \"\";\n    } else {\n      let value = this.state[fieldName].value;\n      return value ? value : \"\";\n    }\n  };\n\n  getPageUrl = (item) => {\n    if (!item.url || typeof item.url !== 'object') {\n      return null;\n    }\n    return item.url[this.state.selectedLanguage] || null;\n  };\n\n  formRequiredValidation = (fileds) => {\n    for (let i in fileds) {\n      if (!this.formFieldRequiredValidation(fileds[i], true)) return false;\n    }\n\n    return true;\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    if (this.state[fieldName].separatedLanguage) {\n      for (let i in this.state.languages) {\n        let value = this.state[fieldName][this.state.languages[i]];\n        if (!(value && value.length > 0)) return false;\n      }\n      return true;\n    } else {\n      let value = this.state[fieldName].value;\n      return value && value.length > 0;\n    }\n\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    for (let i in this.state.languages) {\n      let value = this.state[fieldName][this.state.languages[i]];\n      if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n    }\n\n    return \"\";\n  };\n\n  renderToolbar = () => {\n    let isNew = this.props.match.params.comicId === \"new\";\n\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">漫画Life{isNew ? \"制作\" : \"編集\"}</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n          <Button variant=\"outline-secondary\"\n                  onClick={this.onCancelClick}>キャンセル</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderForm = () => {\n    return (\n      <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n        <Form.Group>\n          <Form.Label>タイトル</Form.Label>\n          <Form.Control required\n                        type=\"text\"\n                        value={this.getFormControlValue(\"title\")}\n                        onChange={(e) => this.onFormControlChanged(\"title\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"title\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"title\")}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>説明</Form.Label>\n          <Form.Control as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"description\")}\n                        onChange={(e) => this.onFormControlChanged(\"description\", e.target.value)} />\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>Introduction説明</Form.Label>\n          <Form.Control required\n                        as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"comicIntroduction\")}\n                        onChange={(e) => this.onFormControlChanged(\"comicIntroduction\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"comicIntroduction\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"comicIntroduction\")}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Card>\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            Introductionイラスト\n            {!this.getFormControlValue(\"comicIntroductionSvgUrl\") && (\n              <div className='btn btn-primary'>\n                <label htmlFor=\"comicIntroductionSvgUrl\" style={{marginBottom: 0}}>\n                  イラストをアップロード\n                </label>\n                <input id=\"comicIntroductionSvgUrl\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"comicIntroductionSvgUrl\", \"introduction\", e.target.files[0])} />\n              </div>\n            )}\n            {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"comicIntroductionSvgUrl\", null)}>イラストを削除</Button>)}\n          </Card.Header>\n          {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Img variant=\"top\" style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(\"comicIntroductionSvgUrl\")} />)}\n          <Card.Body>\n            {this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && !this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Text>svgファイルのみ</Card.Text>)}\n            {!this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && (<Card.Text className=\"text-danger\">[{this.formFieldRequiredValidationByLanguage(\"comicIntroductionSvgUrl\")}] イラストをアップロードしてください</Card.Text>)}\n          </Card.Body>\n        </Card>\n        <Form.Group className=\"mt-3\">\n          <Form.Label>状況説明</Form.Label>\n          <Form.Control required\n                        as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"comicSituation\")}\n                        onChange={(e) => this.onFormControlChanged(\"comicSituation\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"comicSituation\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"comicSituation\")}] 状況説明を入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Card>\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            状況イラスト\n            {!this.getFormControlValue(\"comicSituationSvgUrl\") && (\n              <div className='btn btn-primary'>\n                <label htmlFor=\"comicSituationSvgUrl\" style={{marginBottom: 0}}>\n                  イラストをアップロード\n                </label>\n                <input id=\"comicSituationSvgUrl\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"comicSituationSvgUrl\", \"situation\", e.target.files[0])} />\n              </div>\n            )}\n            {this.getFormControlValue(\"comicSituationSvgUrl\") && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"comicSituationSvgUrl\", null)}>イラストを削除</Button>)}\n          </Card.Header>\n          {this.getFormControlValue(\"comicSituationSvgUrl\") && (<Card.Img variant=\"top\" style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(\"comicSituationSvgUrl\")} />)}\n          <Card.Body>\n            {this.formFieldRequiredValidation(\"comicSituationSvgUrl\") && !this.getFormControlValue(\"comicSituationSvgUrl\") && (<Card.Text>svgファイルのみ</Card.Text>)}\n            {!this.formFieldRequiredValidation(\"comicSituationSvgUrl\") && (<Card.Text className=\"text-danger\">[{this.formFieldRequiredValidationByLanguage(\"comicSituationSvgUrl\")}] イラストをアップロードしてください</Card.Text>)}\n          </Card.Body>\n        </Card>\n      </Form>\n    );\n  };\n\n  renderPages = () => {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center mb-3\">\n          <h1 className=\"m-0\">ページ</h1>\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onAddPage}>ページ追加</Button>\n        </ButtonToolbar>\n\n        {this.state.pages.length > 0 && (\n          <ListManager\n            items={this.state.pages}\n            direction=\"horizontal\"\n            maxItems={5}\n            render={(item) => (\n              <Card key={this.state.pages.indexOf(item)} className=\"mb-2 mr-2\">\n                {this.getPageUrl(item) && <Card.Img variant=\"top\" style={{ padding: \"8px 8px 0 8px\", objectFit: 'contain' }} src={this.getPageUrl(item)} />}\n                <Card.Body>\n                  <div className=\"w-100 mb-2 btn btn-outline-primary\" style={{minWidth: 130}}>\n                    <label htmlFor={`page-${this.state.pages.indexOf(item)}`} style={{marginBottom: 0}}>\n                      アップロード\n                    </label>\n                    <input id={`page-${this.state.pages.indexOf(item)}`} accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' multiple style={{display: 'none'}} onChange={(e) => {this.onUploadPage(item, e.target.files, e);}} />\n                  </div>\n                  <Button variant=\"outline-danger\" className=\"w-100\" onClick={() => this.onDeletePage(item)}>削除</Button>\n                </Card.Body>\n              </Card>\n            )}\n            onDragEnd={this.onDragEnd}\n          />\n        )}\n        {this.state.pages.length === 0 && (\n          <ListGroup className=\"mt-3\">\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          </ListGroup>\n        )}\n      </>\n    );\n  };\n\n  renderDangerActions = () => {\n    return (\n      <Card className=\"mt-4 mb-4\">\n        <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n        <Card.Body>\n          <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>漫画Lifeを削除する</Button>\n        </Card.Body>\n      </Card>\n    );\n  };\n\n  render() {\n    let isNew = this.props.match.params.comicId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n          {this.renderForm()}\n        </SmallBgLoading>\n\n        {!isNew && this.renderPages()}\n        {!isNew && this.renderDangerActions()}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(ComicLifePage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { ButtonToolbar, Button, Badge, ListGroup } from \"react-bootstrap\";\nimport \"./index.scss\";\nimport * as contentsService from \"../../../services/contents\";\nimport * as commonService from \"../../../services/common\";\nimport * as jsonService from \"../../../services/json\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faBars} from \"@fortawesome/free-solid-svg-icons\";\nimport {DragDropContext, Draggable, Droppable} from \"react-beautiful-dnd\";\n\nclass ComicsSpiritPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentType: \"COMICS_SPIRIT\",\n      isEdit: false,\n      loading: true,\n      error: null,\n      items: [],\n      oldItems: [],\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchContents();\n  }\n\n  fetchContents = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let setting = await contentsService.fetchContentSetting(this.state.contentType);\n      let response = await contentsService.fetchContents();\n      let items = response.items.filter((item) => item.contentType === this.state.contentType);\n      if (setting) {\n        let order = JSON.parse(setting.order);\n        let newList = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = items.findIndex(item => item.id === order[i]);\n          if (items[index]) {\n            newList.push(items[index]);\n          }\n        }\n        items = newList;\n      }\n\n      console.log('items', items);\n\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onCreateClick = () => {\n    this.props.history.push(\"/admin/comics/spirit/new\");\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/admin/comics/spirit/${item.id}`);\n  };\n\n  onDragEnd = async (result) => {\n    if (!result.destination) return;\n\n    // Update local list\n    const items = Array.from(this.state.items);\n    const [removed] = items.splice(result.source.index, 1);\n    items.splice(result.destination.index, 0, removed);\n    this.setState({ items });\n  };\n\n  onDownload = () => {\n\n    let schema = [\n      {path: \"id\"},\n      {path: \"title\", type: \"JSON\"},\n      {path: \"description\", type: \"JSON\"},\n      {path: \"languages\", type: \"JSON\"},\n      {path: \"comicIntroduction\", type: \"JSON\"},\n      {path: \"comicIntroductionSvgUrl\"},\n      {path: \"comicPages\", type: \"JSON\"},\n    ];\n\n    let json = jsonService.prepareJson(schema, this.state.items);\n    jsonService.downloadJson(json, \"comics-spirit.json\");\n  };\n\n  onUploadSample = () => {\n\n    let schema = [\n      {path: \"title\"},\n      {path: \"description\"},\n      {path: \"languages\"},\n      {path: \"comicIntroduction\"},\n      {path: \"comicIntroductionSvgUrl\"},\n      {\n        path: \"comicPages\",\n        type: \"Array\",\n        items: [\n          {path: \"url\"}\n        ]\n      }\n    ];\n\n    let items = [\n      {\n        title: {jp: \"Some title\"},\n        description: {jp: \"Some description\"},\n        languages: [\"jp\"],\n        comicIntroduction: {jp: \"Comic intro\"},\n        comicIntroductionSvgUrl: \"comic-spirit-intro-image.svg\",\n        comicPages: [\n          { url: \"comic-spirit-page-1.svg\" },\n          { url: \"comic-spirit-page-2.svg\" },\n          { url: \"comic-spirit-page-3.svg\" }\n        ],\n      }\n    ];\n\n    let json = jsonService.prepareJson(schema, items);\n    jsonService.downloadJson(json, \"comics-spirit.json\");\n  };\n\n  onUpload = async (file) => {\n    console.log('onUpload');\n\n    // // byValue\n    //\n    // let schema = [\n    //   {path: \"title\", required: true, separatedLanguage: true},\n    //   {path: \"description\", separatedLanguage: true},\n    //   {\n    //     path: \"practiceQuestions\",\n    //     type: \"Array\",\n    //     items: [\n    //       {path: \"id\", required: true},\n    //       {path: \"title\", required: true, separatedLanguage: true},\n    //       {path: \"svgUrl\", required: true},\n    //       //     {\n    //       //       path: \"characters\",\n    //       //       type: \"Array\",\n    //       //       items: [\n    //       //         {path: \"id\"},\n    //       //         {path: \"title\"},\n    //       //         {path: \"svgUrl\"},\n    //       //       ]\n    //       //     },\n    //       //     {\n    //       //       path: \"chats\",\n    //       //       type: \"Array\",\n    //       //       items: [\n    //       //         {path: \"id\"},\n    //       //         {path: \"character\"},\n    //       //         {path: \"text\"},\n    //       //         {path: \"reading\"},\n    //       //       ]\n    //       //     },\n    //       //     {\n    //       //       path: \"answers\",\n    //       //       type: \"Array\",\n    //       //       items: [\n    //       //         {path: \"text\"},\n    //       //         {path: \"reading\"},\n    //       //         {path: \"message\"},\n    //       //         {path: \"isCorrect\"},\n    //       //         {path: \"image\"},\n    //       //         {path: \"descriptionImage\"},\n    //       //         {path: \"descriptionJapaneseFeeling\"},\n    //       //         {path: \"descriptionKibi\"},\n    //       //         {path: \"descriptionKibiAvatar\"},\n    //       //         {path: \"descriptionJapanesePoint\"},\n    //       //         {path: \"descriptionBehavePoint\"},\n    //       //       ]\n    //       //     },\n    //     ]\n    //   },\n    //   // {\n    //   //   path: \"testQuestions\",\n    //   //   type: \"Array\",\n    //   //   items: [\n    //   //     {path: \"id\"},\n    //   //     {path: \"title\"},\n    //   //     {path: \"svgUrl\"},\n    //   //     {\n    //   //       path: \"characters\",\n    //   //       type: \"Array\",\n    //   //       items: [\n    //   //         {path: \"id\"},\n    //   //         {path: \"title\"},\n    //   //         {path: \"svgUrl\"},\n    //   //       ]\n    //   //     },\n    //   //     {\n    //   //       path: \"chats\",\n    //   //       type: \"Array\",\n    //   //       items: [\n    //   //         {path: \"id\"},\n    //   //         {path: \"character\"},\n    //   //         {path: \"text\"},\n    //   //         {path: \"reading\"},\n    //   //       ]\n    //   //     },\n    //   //     {\n    //   //       path: \"answers\",\n    //   //       type: \"Array\",\n    //   //       items: [\n    //   //         {path: \"text\"},\n    //   //         {path: \"reading\"},\n    //   //         {path: \"isCorrect\"},\n    //   //       ]\n    //   //     },\n    //   //   ]\n    //   // },\n    // ];\n    //\n    // // let schema = [\n    // //   {path: \"email\", type: \"String\", required: true},\n    // //   {path: \"password\", type: function(value) {\n    // //       if (value) return value;\n    // //       return generator.generate({\n    // //         length: 6,\n    // //         uppercase: false\n    // //       });\n    // //     }},\n    // //   {path: \"name\", type: \"String\", required: true},\n    // //   {path: \"department\", type: \"String\"},\n    // //   {path: \"manager\", type: \"String\"},\n    // //   {path: \"childMaxCount\", type: \"Int\", required: true},\n    // //   {path: \"permissions\", type: function(value) {\n    // //       if (!value) throw new Error(\"権限が必須になってます\");\n    // //       return JSON.stringify(value.replace(\"\\r\",\"\").split(\";\"));\n    // //     }, required: true},\n    // // ];\n    // try {\n    //   let items = await jsonService.readJson(file, schema);\n    //   console.log('items', items);\n    //   // let item;\n    //   // for (item of items) {\n    //   //   await userService.createUserManager(item);\n    //   // }\n    //   // await this.fetchUsers();\n    //   // window.alert(\"アップロードは完了しました\");\n    // } catch (e) {\n    //   if (e.errors) {\n    //     window.alert(e.errors[0].message);\n    //   } else {\n    //     window.alert(e.message);\n    //   }\n    // }\n  };\n\n  onEditOrder = () => {\n    const {items} = this.state;\n    this.setState({oldItems: [...items], isEdit: true})\n  };\n\n  onEditOrderCancel = () => {\n    const {oldItems} = this.state;\n    this.setState({items: [...oldItems], isEdit: false});\n  };\n\n  onEditOrderDone = async () => {\n    const {items} = this.state;\n\n    let order = items.map(item => item.id);\n    await contentsService.updateContentSetting({id: this.state.contentType, order: JSON.stringify(order)})\n\n    this.setState({oldItems: [], isEdit: false});\n  };\n\n  renderSimpleList = () => {\n    const {items} = this.state;\n    return (\n      <ListGroup className=\"mt-3\">\n        {items.map((item, index) => (\n\n          <div\n            key={item.id}\n            className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n            onClick={() => this.onEditClick(item)}\n          >\n            <div>\n              <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n              {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n              {JSON.parse(item.languages).map((language) => (\n                <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n              ))}\n            </div>\n          </div>\n        ))}\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  renderDraggableList = () => {\n    return (\n      <ListGroup className=\"mt-3\">\n\n        <DragDropContext onDragEnd={this.onDragEnd}>\n          <Droppable droppableId=\"droppable\">\n            {(provided, snapshot) => (\n              <div\n                {...provided.droppableProps}\n                ref={provided.innerRef}\n              >\n                {this.state.items.map((item, index) => (\n                  <Draggable key={item.id} draggableId={item.id} index={index}>\n                    {(provided, snapshot) => (\n                      <div\n                        ref={provided.innerRef}\n                        {...provided.draggableProps}\n                        {...provided.dragHandleProps}\n                        className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n                        onClick={() => this.onEditClick(item)}\n                      >\n                        <div>\n                          <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n                          {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n                          {JSON.parse(item.languages).map((language) => (\n                            <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n                          ))}\n                        </div>\n                      </div>\n                    )}\n                  </Draggable>\n                ))}\n                {provided.placeholder}\n              </div>\n            )}\n          </Droppable>\n        </DragDropContext>\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  render() {\n    const {isEdit} = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">漫画Spirit一覧</h1>\n          {!isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrder}>順番変更</Button>\n              <div className='btn btn-outline-primary mr-2 pointer'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  アップロード\n                </label>\n                <input id=\"file\" accept=\"application/json\" type='file' style={{display: 'none'}} onChange={(e) => {this.onUpload(e.target.files[0]); e.target.value = null;}} />\n              </div>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onUploadSample}>CSVサンプル</Button>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onDownload}>ダウンロード</Button>\n              <Button variant=\"primary\" onClick={this.onCreateClick}>制作</Button>\n            </div>\n          )}\n          {isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"outline-primary mr-2\" onClick={this.onEditOrderCancel}>キャンセル</Button>\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrderDone}>保存</Button>\n            </div>\n          )}\n        </ButtonToolbar>\n\n        {!isEdit && this.renderSimpleList()}\n        {isEdit && this.renderDraggableList()}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(ComicsSpiritPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Alert, Button, ButtonToolbar, Form, ListGroup, Dropdown, Card} from \"react-bootstrap\";\nimport uuid from \"uuid\";\nimport { ListManager } from \"react-beautiful-dnd-grid\";\nimport * as contentsService  from \"../../../../services/contents\";\nimport * as commonService  from \"../../../../services/common\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faPlusCircle, faMinusCircle, faCheck } from '@fortawesome/free-solid-svg-icons'\nimport \"./index.scss\";\nimport { Storage } from \"aws-amplify\";\n\nclass ComicSpiritPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      pages: [],\n      settings: {},\n      data: null,\n\n      touched: false,\n      title: { separatedLanguage: true },\n      description: { separatedLanguage: true },\n      comicIntroductionSvgUrl: { separatedLanguage: true },\n      comicIntroduction: { separatedLanguage: true },\n      languages: [],\n\n      selectedLanguage: null,\n\n      error: null,\n      loading: false,\n      isPagesUploadInProgress: false\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n\n      if (this.props.match.params.comicId !== \"new\") {\n\n        // Content\n        state.data = await contentsService.fetchContent(this.props.match.params.comicId);\n        state.languages = JSON.parse(state.data.languages);\n        state.pages = state.data && state.data.comicPages ? JSON.parse(state.data.comicPages) : [];\n        let fields = [\"title\", \"description\", \"comicIntroductionSvgUrl\", \"comicIntroduction\"];\n        for (let fieldIndex in fields) {\n            if (this.state[fields[fieldIndex]].separatedLanguage) {\n              for (let langIndex in state.languages) {\n                if (!state[fields[fieldIndex]]) state[fields[fieldIndex]] = {...this.state[fields[fieldIndex]]};\n                try {\n                  state[fields[fieldIndex]][state.languages[langIndex]] = JSON.parse(state.data[fields[fieldIndex]])[state.languages[langIndex]];\n                } catch (e) {}\n              }\n\n            } else {\n              state[fields[fieldIndex]] = { value: state.data[fields[fieldIndex]], ...this.state[fields[fieldIndex]]};\n            }\n        }\n      } else {\n        state.languages = [commonService.mainLanguage]\n      }\n      state.selectedLanguage = commonService.mainLanguage;\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n\n  }\n\n  onCancelClick = () => {\n    this.props.history.push(\"/admin/comics/spirit\");\n  };\n\n  onDeleteClick = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await contentsService.deleteContent(this.state.data.id);\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/comics/spirit/\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    event.preventDefault();\n    this.setState({error: null, touched: true});\n    if (!this.formRequiredValidation([\"title\"])) return;\n\n    this.setState({loading: true});\n\n    try {\n      let fields = [\"title\", \"description\", \"comicIntroductionSvgUrl\", \"comicIntroduction\"];\n      let input = {};\n      for (let fieldIndex in fields) {\n        if (this.state[fields[fieldIndex]].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[fields[fieldIndex]][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[fields[fieldIndex]] = JSON.stringify(values);\n        } else {\n          input[fields[fieldIndex]] = this.state[fields[fieldIndex]].value;\n        }\n      }\n\n      input.languages = JSON.stringify(this.state.languages);\n\n      if (this.state.data) {\n        input.id = this.state.data.id;\n        input.settings = this.state.data.settings;\n        await contentsService.updateContent(input);\n      } else {\n        input.id = uuid.v4();\n        input.contentType = \"COMICS_SPIRIT\";\n        await contentsService.createContent(input);\n\n        // update order\n        let setting = await contentsService.fetchContentSetting(\"COMICS_SPIRIT\");\n        let order = [];\n        if (setting && setting.order) {\n          order = JSON.parse(setting.order);\n        }\n        order.push(input.id);\n        await contentsService.updateContentSetting({id: \"COMICS_SPIRIT\", order: JSON.stringify(order)});\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/comics/spirit\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onDragEnd = async (from, to) => {\n    // Update local list\n    const pages = Array.from(this.state.pages);\n    const [removed] = pages.splice(from, 1);\n    pages.splice(to, 0, removed);\n    this.setState({ pages });\n\n    // Update db\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n  };\n\n  onAddPage = async () => {\n    let pages = [...this.state.pages];\n\n    pages.push({\n      id: uuid.v4()\n    });\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n    this.setState( { pages} );\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n\n    let comicId = this.props.match.params.comicId;\n    let filename = \"comic-spirit-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/comic-spirit-${comicId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onUploadPage = async (item, files, e) => {\n    e.preventDefault();\n\n    let pages = [...this.state.pages];\n    let index = pages.indexOf(item);\n    if (index === -1) {\n      return;\n    }\n    for (let i = 0; i < files.length; i++) {\n      let file = files[i];\n      let comicId = this.props.match.params.comicId;\n      let filename = \"comic-spirit-page-\" + uuid() + \".\" + file.name.split('.').pop();\n\n      const s3Object = await Storage.put(`contents/comic-spirit-${comicId}/${filename}`, file, {\n        contentType: file.type,\n        level: \"public\"\n      });\n\n      let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n      if (!pages[index].url || typeof pages[index].url !== 'object') {\n        pages[index].url = {};\n      }\n      pages[index]['url'][this.state.selectedLanguage] = url;\n    }\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n    this.setState( { pages, isPagesUploadInProgress: false } );\n  };\n\n  onDeletePage = async(item) => {\n    let pages = this.state.pages;\n    let index = pages.indexOf(item);\n    pages.splice(index, 1);\n    this.setState({ pages });\n\n    // Update db\n\n    let input = {\n      id: this.state.data.id,\n      title: this.state.data.title,\n      description: this.state.data.description,\n      comicIntroductionSvgUrl: this.state.data.comicIntroductionSvgUrl,\n      comicIntroduction: this.state.data.comicIntroduction,\n      languages: this.state.data.languages,\n      comicPages: JSON.stringify(pages),\n    };\n\n    await contentsService.updateContent(input);\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let data = {...this.state[fieldName]};\n\n    if (this.state[fieldName].separatedLanguage) {\n      data[this.state.selectedLanguage] = value;\n    } else {\n      data.value = value;\n    }\n\n    let state = {};\n    state[fieldName] = data;\n\n    this.setState(state);\n  };\n\n  getFormControlValue = (fieldName) => {\n    if (this.state[fieldName].separatedLanguage) {\n      let value = this.state[fieldName][this.state.selectedLanguage];\n      return value ? value : \"\";\n    } else {\n      let value = this.state[fieldName].value;\n      return value ? value : \"\";\n    }\n  };\n\n  getPageUrl = (item) => {\n    if (!item.url || typeof item.url !== 'object') {\n      return null;\n    }\n    return item.url[this.state.selectedLanguage] || null;\n  };\n\n  formRequiredValidation = (fileds) => {\n    for (let i in fileds) {\n      if (!this.formFieldRequiredValidation(fileds[i], true)) return false;\n    }\n\n    return true;\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    if (this.state[fieldName].separatedLanguage) {\n      for (let i in this.state.languages) {\n        let value = this.state[fieldName][this.state.languages[i]];\n        if (!(value && value.length > 0)) return false;\n      }\n      return true;\n    } else {\n      let value = this.state[fieldName].value;\n      return value && value.length > 0;\n    }\n\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    for (let i in this.state.languages) {\n      let value = this.state[fieldName][this.state.languages[i]];\n      if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n    }\n\n    return \"\";\n  };\n\n  renderToolbar = () => {\n    let isNew = this.props.match.params.comicId === \"new\";\n\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">漫画Spirit{isNew ? \"制作\" : \"編集\"}</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n          <Button variant=\"outline-secondary\"\n                  onClick={this.onCancelClick}>キャンセル</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderForm = () => {\n    return (\n      <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n        <Form.Group>\n          <Form.Label>タイトル</Form.Label>\n          <Form.Control required\n                        type=\"text\"\n                        value={this.getFormControlValue(\"title\")}\n                        onChange={(e) => this.onFormControlChanged(\"title\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"title\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"title\")}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>説明</Form.Label>\n          <Form.Control as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"description\")}\n                        onChange={(e) => this.onFormControlChanged(\"description\", e.target.value)} />\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>Introduction説明</Form.Label>\n          <Form.Control required\n                        as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"comicIntroduction\")}\n                        onChange={(e) => this.onFormControlChanged(\"comicIntroduction\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"comicIntroduction\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"comicIntroduction\")}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Card>\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            Introductionイラスト\n            {!this.getFormControlValue(\"comicIntroductionSvgUrl\") && (\n              <div className='btn btn-primary'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  イラストをアップロード\n                </label>\n                <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"comicIntroductionSvgUrl\", \"introduction\", e.target.files[0])} />\n              </div>\n            )}\n            {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"comicIntroductionSvgUrl\", null)}>イラストを削除</Button>)}\n          </Card.Header>\n          {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Img variant=\"top\" style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(\"comicIntroductionSvgUrl\")} />)}\n          <Card.Body>\n            {this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && !this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Text>svgファイルのみ</Card.Text>)}\n            {!this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && (<Card.Text className=\"text-danger\">[{this.formFieldRequiredValidationByLanguage(\"comicIntroductionSvgUrl\")}] イラストをアップロードしてください</Card.Text>)}\n          </Card.Body>\n        </Card>\n      </Form>\n    );\n  };\n\n  renderPages = () => {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center mb-3\">\n          <h1 className=\"m-0\">ページ</h1>\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onAddPage}>ページ追加</Button>\n        </ButtonToolbar>\n\n        {this.state.pages.length > 0 && (\n          <ListManager\n            items={this.state.pages}\n            direction=\"horizontal\"\n            maxItems={5}\n            render={(item) => (\n              <Card key={this.state.pages.indexOf(item)} className=\"mb-2 mr-2\" style={{width: 200, height: 350}}>\n                {/*{this.getPageUrl(item) && <Card.Img variant=\"top\" style={{ padding: \"8px 8px 0 8px\", objectFit: 'contain' }} src={this.getPageUrl(item)} />}*/}\n                <div className=\"admin-comic-spirit-image\"\n                     style={{\n                       flex: 2,\n                       background: `url('${this.getPageUrl(item)}') no-repeat`,\n                     }}\n                />\n                <Card.Body style={{flex: 'unset'}}>\n                  <div className=\"w-100 mb-2 btn btn-outline-primary\" style={{minWidth: 130}}>\n                    <label htmlFor={`page-${this.state.pages.indexOf(item)}`} style={{marginBottom: 0}}>\n                      アップロード\n                    </label>\n                    <input id={`page-${this.state.pages.indexOf(item)}`} accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' multiple style={{display: 'none'}} onChange={(e) => {this.onUploadPage(item, e.target.files, e);}} />\n                  </div>\n                  <Button variant=\"outline-danger\" className=\"w-100\" onClick={() => this.onDeletePage(item)}>削除</Button>\n                </Card.Body>\n              </Card>\n            )}\n            onDragEnd={this.onDragEnd}\n          />\n        )}\n        {this.state.pages.length === 0 && (\n          <ListGroup className=\"mt-3\">\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          </ListGroup>\n        )}\n      </>\n    );\n  };\n\n  renderDangerActions = () => {\n    return (\n      <Card className=\"mt-4 mb-4\">\n        <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n        <Card.Body>\n          <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>漫画Spiritを削除する</Button>\n        </Card.Body>\n      </Card>\n    );\n  };\n\n  render() {\n    let isNew = this.props.match.params.comicId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n          {this.renderForm()}\n        </SmallBgLoading>\n\n        {!isNew && this.renderPages()}\n        {!isNew && this.renderDangerActions()}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(ComicSpiritPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {ButtonToolbar, Button, ListGroup} from \"react-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport * as notificationsService from \"../../../services/notifications\";\n\nclass NotificationsPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchList();\n  }\n\n  fetchList = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let response = await notificationsService.fetchNotifications();\n      let items = response.items.filter(item => true);\n      items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onCreateClick = () => {\n    this.props.history.push(\"/admin/notifications/new\");\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/admin/notifications/${item.id}`);\n  };\n\n  render() {\n    const {items} = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">お知らせ一覧</h1>\n          <div className=\"d-flex\">\n            <Button variant=\"primary\" onClick={this.onCreateClick}>新規制作</Button>\n          </div>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {items.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onEditClick(item)}>\n                {item.type === 'GENERAL' && <div>{item.title}</div>}\n                {item.type === 'KIBIIN' && (\n                  <div>\n                    <div><strong>キービン</strong></div>\n                    <div style={{whiteSpace: 'pre-wrap'}}>{item.description}</div>\n                  </div>\n                )}\n                <div>{commonService.formatDate(item.createdAt)}</div>\n            </ListGroup.Item>\n          ))}\n          {this.state.items.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(NotificationsPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Alert, Button, ButtonToolbar, Form, Card } from \"react-bootstrap\";\nimport * as usersService  from \"../../../../services/users\";\nimport * as notificationsService  from \"../../../../services/notifications\";\nimport uuid from \"uuid\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\n\nclass NotificationPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      touched: false,\n      type: {\n        value: \"GENERAL\",\n        touched: false\n      },\n      avatar: {\n        value: \"\",\n        touched: false\n      },\n      title: {\n        value: \"\",\n        touched: false\n      },\n      description: {\n        value: \"\",\n        touched: false\n      },\n      user: {\n        value: \"all\",\n        touched: false\n      },\n      managers: [],\n      users: [],\n      error: null,\n      loading: false,\n      data: null\n    };\n  }\n\n  async componentWillMount() {\n    let response = await usersService.fetchUsers();\n    let managers = response.items.filter(item => item.userGroup === \"MANAGER\");\n    let users = response.items.filter(item => item.userGroup === \"USER\");\n\n    let state = {\n      managers,\n      users\n    };\n\n    let notificationId = this.props.match.params.notificationId;\n    if (notificationId !== \"new\") {\n      this.setState({loading: true});\n      try {\n        let notification = await notificationsService.fetchNotification(notificationId);\n        state.data = notification;\n        state.type = { value: notification.type, touched: false};\n\n        if (notification.type === 'GENERAL') {\n          state.title = { value: notification.title, touched: false};\n          state.description = { value: notification.description, touched: false};\n          if (notification.userId) {\n            state.user = { value: notification.userId, touched: false};\n          } else if (notification.userGroup) {\n            state.user = { value: notification.userGroup, touched: false};\n          } else {\n            state.user = { value: \"all\", touched: false};\n          }\n        } else {\n          state.avatar = { value: notification.avatar, touched: false};\n          state.description = { value: notification.description, touched: false};\n          if (notification.userId) {\n            state.user = { value: notification.userId, touched: false};\n          } else if (notification.userGroup) {\n            state.user = { value: notification.userGroup, touched: false};\n          } else {\n            state.user = { value: \"all\", touched: false};\n          }\n        }\n        state.loading = false;\n      } catch (error) {\n        state.loading = false;\n        this.onError(error);\n      }\n    }\n\n    this.setState(state);\n\n  }\n\n  onCancelClick = () => {\n    this.props.history.push(\"/admin/notifications\");\n  };\n\n  onDeleteClick = async () => {\n\n    this.setState({error: null, loading: true});\n\n    try {\n      await notificationsService.deleteNotification(this.state.data.id);\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/notifications\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    const form = event.currentTarget;\n    event.preventDefault();\n    this.setState({error: null});\n    if (form.checkValidity() === false) {\n      this.setState({touched: true});\n      return;\n    }\n\n    this.setState({loading: true});\n\n    try {\n      if (this.state.data) {\n        let input = {\n          id: this.state.data.id,\n        };\n\n        if (this.state.type.value === 'GENERAL') {\n          input.title = this.state.title.value;\n          input.description = this.state.description.value;\n          if (this.state.user.value === \"all\") {\n            // Do nothing\n          } else if ([\"MANAGER\", \"USER\"].indexOf(this.state.user.value) !== -1) {\n            input.userGroup = this.state.user.value.toUpperCase();\n          } else {\n            input.userId = this.state.user.value;\n          }\n        } else {\n          input.avatar = this.state.avatar.value;\n          input.description = this.state.description.value;\n          if (this.state.user.value === \"all\") {\n            input.userGroup = 'USER';\n          } else if ([\"MANAGER\", \"USER\"].indexOf(this.state.user.value) !== -1) {\n            input.userGroup = this.state.user.value.toUpperCase();\n          } else {\n            input.userId = this.state.user.value;\n          }\n        }\n\n        await notificationsService.updateNotification(input);\n      } else {\n        let input = {\n          id: uuid.v4(),\n          type: this.state.type.value,\n        };\n\n        if (this.state.type.value === 'GENERAL') {\n          input.title = this.state.title.value;\n          input.description = this.state.description.value;\n          if (this.state.user.value === \"all\") {\n            // Do nothing\n          } else if ([\"MANAGER\", \"USER\"].indexOf(this.state.user.value) !== -1) {\n            input.userGroup = this.state.user.value.toUpperCase();\n          } else {\n            input.userId = this.state.user.value;\n          }\n        } else {\n          input.avatar = this.state.avatar.value;\n          input.description = this.state.description.value;\n          if (this.state.user.value === \"all\") {\n            input.userGroup = 'USER';\n          } else if ([\"MANAGER\", \"USER\"].indexOf(this.state.user.value) !== -1) {\n            input.userGroup = this.state.user.value.toUpperCase();\n          } else {\n            input.userId = this.state.user.value;\n          }\n        }\n\n        await notificationsService.createNotification(input);\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/notifications\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  formFieldRequiredValidation = (fieldName) => {\n    if (!this.state.touched && !this.state[fieldName].touched) {\n      return true;\n    }\n\n    return this.state[fieldName].value && this.state[fieldName].value.length > 0;\n  };\n\n  renderGeneral = () => {\n    let isNew = this.props.match.params.notificationId === \"new\";\n\n    return (\n      <>\n        <Form.Group>\n          <Form.Label>タイトル</Form.Label>\n          <Form.Control required={true}\n                        type=\"text\"\n                        value={this.state.title.value}\n                        onChange={(e) => this.setState({title: {value: e.target.value, touched: true}})}\n                        isInvalid={isNew && !this.formFieldRequiredValidation(\"title\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>内容</Form.Label>\n          <Form.Control required={true}\n                        as=\"textarea\"\n                        rows=\"5\"\n                        value={this.state.description.value}\n                        onChange={(e) => this.setState({description: {value: e.target.value, touched: true}})}\n                        isInvalid={isNew && !this.formFieldRequiredValidation(\"description\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            内容を入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group controlId=\"exampleForm.ControlSelect1\">\n          <Form.Label>送り先</Form.Label>\n          <Form.Control required={true}\n                        as=\"select\"\n                        value={this.state.user.value}\n                        onChange={(e) => this.setState({user: {value: e.target.value, touched: true}})}\n                        isInvalid={!this.formFieldRequiredValidation('user')}>\n            <optgroup label=\"権限\">\n              <option value=\"all\">全て</option>\n              <option value=\"MANAGER\">代理店</option>\n              <option value=\"USER\">一般</option>\n            </optgroup>\n            {this.state.managers.length > 0 && (\n              <optgroup label=\"代理店\">\n                {this.state.managers.map(manager => (\n                  <option key={manager.id} value={manager.id}>{manager.name ? manager.name : \"未定\"} ({manager.email})</option>\n                ))}\n              </optgroup>\n            )}\n            {this.state.users.length > 0 && (\n              <optgroup label=\"一般\">\n                {this.state.users.map(user => (\n                  <option key={user.id} value={user.id}>{user.name ? user.name : \"未定\"} ({user.email})</option>\n                ))}\n              </optgroup>\n            )}\n          </Form.Control>\n          <Form.Control.Feedback type=\"invalid\">\n            送り先を選択してください\n          </Form.Control.Feedback>\n        </Form.Group>\n      </>\n    );\n  };\n\n  renderKibiin = () => {\n    let isNew = this.props.match.params.notificationId === \"new\";\n\n    return (\n      <>\n        <Form.Group>\n          <Form.Label>アバター</Form.Label>\n          <Form.Control required\n                        as=\"select\"\n                        value={this.state.avatar.value}\n                        onChange={(e) => this.setState({avatar: {value: e.target.value, touched: true}})}\n                        isInvalid={!this.formFieldRequiredValidation('avatar')}>\n            <option label='' value='' className=\"d-none\" />\n            <option label=\"Back\" value=\"kiiibin_back\" />\n            <option label=\"Relux\" value=\"kiiibin_relux\" />\n            <option label=\"Sad\" value=\"kiiibin_sad\" />\n            <option label=\"Sit\" value=\"kiiibin_sit\" />\n            <option label=\"Smile\" value=\"kiiibin_smile\" />\n            <option label=\"Teach\" value=\"kiiibin_teach\" />\n          </Form.Control>\n          <Form.Control.Feedback type=\"invalid\">\n            アバターを選択してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>内容</Form.Label>\n          <Form.Control required={true}\n                        as=\"textarea\"\n                        rows=\"5\"\n                        value={this.state.description.value}\n                        onChange={(e) => this.setState({description: {value: e.target.value, touched: true}})}\n                        isInvalid={isNew && !this.formFieldRequiredValidation(\"description\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            内容を入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group controlId=\"exampleForm.ControlSelect1\">\n          <Form.Label>送り先</Form.Label>\n          <Form.Control required={true}\n                        as=\"select\"\n                        value={this.state.user.value}\n                        onChange={(e) => this.setState({user: {value: e.target.value, touched: true}})}\n                        isInvalid={!this.formFieldRequiredValidation('user')}>\n            <optgroup label=\"権限\">\n              <option value=\"USER\">一般</option>\n            </optgroup>\n            {this.state.users.length > 0 && (\n              <optgroup label=\"一般\">\n                {this.state.users.map(user => (\n                  <option key={user.id} value={user.id}>{user.name ? user.name : \"未定\"} ({user.email})</option>\n                ))}\n              </optgroup>\n            )}\n          </Form.Control>\n          <Form.Control.Feedback type=\"invalid\">\n            送り先を選択してください\n          </Form.Control.Feedback>\n        </Form.Group>\n      </>\n    );\n  };\n\n  render() {\n    let isNew = this.props.match.params.notificationId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (\n            <Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>\n          )}\n\n\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">お知らせ{isNew ? \"制作\" : \"編集\"}</h1>\n            <div>\n              <Button variant=\"primary\"\n                      type=\"submit\"\n                      className=\"mr-2\"\n                      onClick={this.onDoneClick}>保存</Button>\n              <Button variant=\"outline-secondary\"\n                      onClick={this.onCancelClick}>キャンセル</Button>\n            </div>\n          </ButtonToolbar>\n\n          <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n            <Form.Group>\n              <Form.Label>お知らせ種類</Form.Label>\n              <Form.Control required\n                            disabled={!isNew}\n                            as=\"select\"\n                            value={this.state.type.value}\n                            onChange={(e) => this.setState({type: {value: e.target.value, touched: true}})}\n              >\n                <option label='' value='' className=\"d-none\" />\n                <option label=\"一般\" value=\"GENERAL\" />\n                <option label=\"キービン\" value=\"KIBIIN\" />\n              </Form.Control>\n            </Form.Group>\n            {this.state.type.value === 'GENERAL' && this.renderGeneral()}\n            {this.state.type.value === 'KIBIIN' && this.renderKibiin()}\n          </Form>\n        </SmallBgLoading>\n        {!isNew && (\n          <Card className=\"mt-4 mb-4\">\n            <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n            <Card.Body>\n              <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>お知らせを削除する</Button>\n            </Card.Body>\n          </Card>\n        )}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(NotificationPage);\n","import React, { Component } from \"react\";\nimport {Alert, Button, ButtonToolbar, Card, Dropdown, DropdownButton, Form} from \"react-bootstrap\";\nimport { SmallBgLoading } from \"../../../components/commons/SmallBgLoading\"\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faCheck, faMinusCircle, faPlusCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport uuid from \"uuid\";\nimport { Storage } from \"aws-amplify\";\nimport * as commonService from \"../../../services/common\";\nimport * as contentsService  from \"../../../services/contents\";\n\nclass SubtleTestPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentId: 'SUBTLE',\n      comicIntroductionSvgUrl: { separatedLanguage: true, required: true },\n      questions: {\n        image: {\n          separatedLanguage: true,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        subtitle: {\n          separatedLanguage: true,\n          required: true\n        },\n        imagination: {\n          separatedLanguage: false,\n          required: true\n        },\n        reaction: {\n          separatedLanguage: false,\n          required: true\n        },\n        empathy: {\n          separatedLanguage: false,\n          required: true\n        },\n        feeling: {\n          separatedLanguage: false,\n          required: true\n        },\n        flexibility: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer1IsCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        answer2: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer2IsCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        answer3: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer3IsCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        value: [...Array(30).keys()].map(index => { return {}; }),\n        multiply: true\n      },\n      selectedQuestion: 0,\n      languages: [],\n      selectedLanguage: null,\n      data: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n      let content = await contentsService.fetchContent(this.state.contentId);\n      if (content) {\n        state.data = content;\n        state.languages = JSON.parse(state.data.languages);\n\n        let fields = [\"comicIntroductionSvgUrl\"];\n        for (const field of fields) {\n          if (this.state[field].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[field]) state[field] = {...this.state[field]};\n              try {\n                state[field][state.languages[langIndex]] = JSON.parse(state.data[field])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[field] = { value: state.data[field], ...this.state[field]};\n          }\n        }\n\n        let settings = JSON.parse(state.data.settings);\n        state.questions = this.state.questions;\n        state.questions.value = settings.questions;\n      } else {\n        state.languages = [commonService.mainLanguage];\n      }\n\n      state.selectedLanguage = commonService.mainLanguage;\n\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n  }\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onDoneClick = async () => {\n\n    try {\n      let fields = [\"comicIntroductionSvgUrl\"];\n      let input = {};\n      for (const field of fields) {\n        if (this.state[field].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[field][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[field] = JSON.stringify(values);\n        } else {\n          input[field] = this.state[field].value ? this.state[field].value : null;\n        }\n      }\n\n      input.title = this.state.contentId;\n      input.languages = JSON.stringify(this.state.languages);\n      input.settings = JSON.stringify({questions: this.state[\"questions\"].value});\n\n      input.contentType = \"SUBTLE\";\n      input.id = this.state.contentId;\n\n      await contentsService.createContent(input);\n\n      this.setState({loading: false});\n\n      this.props.history.push(`/admin/`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onQuestionClick = (index) => {\n    this.setState({selectedQuestion: index});\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n    const {contentId} = this.state;\n    let filename = \"question-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/subtle-${contentId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let pathComponents = fieldName.split(\".\");\n\n    let data = {...this.state[pathComponents[0]]};\n\n    if (pathComponents.length > 1) {\n      if (data[pathComponents[2]].separatedLanguage) {\n        if (data.value[parseInt(pathComponents[1])][pathComponents[2]]) {\n          data.value[parseInt(pathComponents[1])][pathComponents[2]][this.state.selectedLanguage] = value;\n        } else {\n          let item = {};\n          item[this.state.selectedLanguage] = value;\n          data.value[parseInt(pathComponents[1])][pathComponents[2]] = item;\n        }\n      } else {\n        data.value[parseInt(pathComponents[1])][pathComponents[2]] = { value };\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        data[this.state.selectedLanguage] = value;\n      } else {\n        data.value = value;\n      }\n    }\n\n    let state = {};\n    state[pathComponents[0]] = data;\n\n    if (this.state.error) {\n      state.error = null;\n    }\n\n    this.setState(state);\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n          let value = item[pathComponents[2]] && item[pathComponents[2]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n        return item[pathComponents[2]] && item[pathComponents[2]].value && item[pathComponents[2]].value.length > 0;\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let value = this.state[pathComponents[0]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let value = this.state[pathComponents[0]].value;\n        return value && value.length > 0;\n      }\n    }\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n    for (let i in this.state.languages) {\n      if (pathComponents.length > 1) {\n        let value = this.state[pathComponents[0]].value[parseInt(pathComponents[1])][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      } else {\n        let value = this.state[pathComponents[0]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      }\n    }\n\n    return \"\";\n  };\n\n  getFormControlValue = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage]\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage];\n        }  else {\n          return \"\";\n        }\n      } else {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value;\n        }  else {\n          return \"\";\n        }\n      }\n\n    } else {\n      if (this.state[fieldName].separatedLanguage) {\n        let value = this.state[fieldName][this.state.selectedLanguage];\n        return value ? value : \"\";\n      } else {\n        let value = this.state[fieldName].value;\n        return value ? value : \"\";\n      }\n    }\n  };\n\n  renderToolbar = () => {\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">機微力テスト編集</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderGeneral = () => {\n    return (\n      <div className=\"mt-4 mb-4\">\n        <Card>\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            人物相関図\n            {!this.getFormControlValue(\"comicIntroductionSvgUrl\") && (\n              <div className='btn btn-primary'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  イラストをアップロード\n                </label>\n                <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"comicIntroductionSvgUrl\", \"top\", e.target.files[0])} />\n              </div>\n            )}\n            {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"comicIntroductionSvgUrl\", null)}>イラストを削除</Button>)}\n          </Card.Header>\n          {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue('comicIntroductionSvgUrl')} />)}\n          <Card.Body>\n            {this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && !this.getFormControlValue('comicIntroductionSvgUrl') && (<Card.Text>svgファイルのみ</Card.Text>)}\n            {!this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && (<Card.Text className=\"text-danger\">[{this.formFieldRequiredValidationByLanguage(\"comicIntroductionSvgUrl\")}] イラストをアップロードしてください</Card.Text>)}\n          </Card.Body>\n        </Card>\n      </div>\n    );\n  };\n\n  renderQuestions = () => {\n    let {selectedQuestion} = this.state;\n\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">テスト問題</h1>\n\n          <DropdownButton title={`問${selectedQuestion + 1}`}>\n            {[...Array(30).keys()].map(questionIndex => (\n              <Dropdown.Item key={questionIndex} onClick={() => this.onQuestionClick(questionIndex)}>\n                問{questionIndex + 1}\n              </Dropdown.Item>\n            ))}\n          </DropdownButton>\n        </ButtonToolbar>\n\n        <Card className=\"mt-4\">\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            <div>イラスト</div>\n            <div>\n              {!this.getFormControlValue(`questions.${selectedQuestion}.image`) && (\n                <div className='btn btn-primary'>\n                  <label htmlFor=\"question-file\" style={{marginBottom: 0}}>\n                    イラストをアップロード\n                  </label>\n                  <input id=\"question-file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`questions.${selectedQuestion}.image`, \"image\", e.target.files[0])} />\n                </div>\n              )}\n              {this.getFormControlValue(`questions.${selectedQuestion}.image`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`questions.${selectedQuestion}.image`, null)}>イラストを削除</Button>)}\n            </div>\n          </Card.Header>\n          {this.getFormControlValue(`questions.${selectedQuestion}.image`) && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(`questions.${selectedQuestion}.image`)} />)}\n        </Card>\n\n        <Form id=\"form\" className=\"mt-4\">\n          <Form.Group>\n            <Form.Label>テキスト</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.text`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.text`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.text`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.text`)}] テキストを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label>サブタイトル</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.subtitle`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.subtitle`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.subtitle`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.subtitle`)}] サブタイトルを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          {this.renderQuestionSkills()}\n          <Form.Group>\n            <Form.Label>回答①</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.answer1`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer1`)}] 回答①を入力してください\n            </Form.Control.Feedback>\n            <Form.Check\n              type=\"checkbox\"\n              label=\"回答①は正しい?\"\n              checked={this.getFormControlValue(`questions.${selectedQuestion}.answer1IsCorrect`) === \"1\"}\n              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1IsCorrect`, e.target.checked ? \"1\" : \"0\")}\n            />\n          </Form.Group>\n          <Form.Group>\n            <Form.Label>回答②</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.answer2`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer2`)}] 回答②を入力してください\n            </Form.Control.Feedback>\n            <Form.Check\n              type=\"checkbox\"\n              label=\"回答②は正しい?\"\n              checked={this.getFormControlValue(`questions.${selectedQuestion}.answer2IsCorrect`) === \"1\"}\n              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2IsCorrect`, e.target.checked ? \"1\" : \"0\")}\n            />\n          </Form.Group>\n          <Form.Group>\n            <Form.Label>回答③</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.answer3`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer3`)}] 回答③を入力してください\n            </Form.Control.Feedback>\n            <Form.Check\n              type=\"checkbox\"\n              label=\"回答③は正しい?\"\n              checked={this.getFormControlValue(`questions.${selectedQuestion}.answer3IsCorrect`) === \"1\"}\n              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3IsCorrect`, e.target.checked ? \"1\" : \"0\")}\n            />\n          </Form.Group>\n        </Form>\n      </>\n    );\n  };\n\n  renderQuestionSkills = () => {\n    const {selectedQuestion} = this.state;\n    const skills = [\n      {key: 'imagination', label: '状況想像力'},\n      {key: 'reaction', label: 'リアクション力'},\n      {key: 'empathy', label: '共感力'},\n      {key: 'feeling', label: '気持ち察し力'},\n      {key: 'flexibility', label: '柔軟性'},\n    ];\n\n    return (\n      <Form.Group>\n        <Form.Label>能力</Form.Label>\n        {skills.map(item => (\n          <Form.Check\n            key={item.key}\n            type=\"checkbox\"\n            label={item.label}\n            checked={this.getFormControlValue(`questions.${selectedQuestion}.${item.key}`) === \"1\"}\n            onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.${item.key}`, e.target.checked ? \"1\" : \"0\")}\n          />\n        ))}\n      </Form.Group>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n          {this.renderGeneral()}\n        </SmallBgLoading>\n        {this.renderQuestions()}\n      </>\n    );\n  }\n}\n\nexport default SubtleTestPage;\n","import React, { Component } from \"react\";\nimport {Alert, Button, ButtonToolbar, Card, Dropdown, DropdownButton, Form, Col, Row} from \"react-bootstrap\";\nimport { SmallBgLoading } from \"../../../components/commons/SmallBgLoading\"\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faCheck, faMinusCircle, faPlusCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport uuid from \"uuid\";\nimport { Storage } from \"aws-amplify\";\nimport * as commonService from \"../../../services/common\";\nimport * as contentsService  from \"../../../services/contents\";\n\nclass NursingPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentId: 'NURSING',\n      comicIntroductionSvgUrl: { separatedLanguage: true, required: true },\n      questions: {\n        image: {\n          separatedLanguage: true,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        subtitle: {\n          separatedLanguage: true,\n          required: true\n        },\n        imagination: {\n          separatedLanguage: false,\n          required: true\n        },\n        reaction: {\n          separatedLanguage: false,\n          required: true\n        },\n        empathy: {\n          separatedLanguage: false,\n          required: true\n        },\n        feeling: {\n          separatedLanguage: false,\n          required: true\n        },\n        flexibility: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer1PositiveStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1NegativeStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1Discount: {\n          separatedLanguage: false,\n          required: true\n        },\n        // answer1IsCorrect: {\n        //   separatedLanguage: false,\n        //   required: false\n        // },\n        answer2: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer2PositiveStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer2NegativeStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer2Discount: {\n          separatedLanguage: false,\n          required: true\n        },\n        // answer2IsCorrect: {\n        //   separatedLanguage: false,\n        //   required: false\n        // },\n        answer3: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer3PositiveStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer3NegativeStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer3Discount: {\n          separatedLanguage: false,\n          required: true\n        },\n        // answer3IsCorrect: {\n        //   separatedLanguage: false,\n        //   required: false\n        // },\n        value: [...Array(30).keys()].map(index => { return {}; }),\n        multiply: true\n      },\n      selectedQuestion: 0,\n      languages: [],\n      selectedLanguage: null,\n      data: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n      let content = await contentsService.fetchContent(this.state.contentId);\n      if (content) {\n        state.data = content;\n        state.languages = JSON.parse(state.data.languages);\n\n        let fields = [\"comicIntroductionSvgUrl\"];\n        for (const field of fields) {\n          if (this.state[field].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[field]) state[field] = {...this.state[field]};\n              try {\n                state[field][state.languages[langIndex]] = JSON.parse(state.data[field])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[field] = { value: state.data[field], ...this.state[field]};\n          }\n        }\n\n        let settings = JSON.parse(state.data.settings);\n        state.questions = this.state.questions;\n        state.questions.value = settings.questions;\n      } else {\n        state.languages = [commonService.mainLanguage];\n      }\n\n      state.selectedLanguage = commonService.mainLanguage;\n\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n  }\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onDoneClick = async () => {\n\n    try {\n      let fields = [\"comicIntroductionSvgUrl\"];\n      let input = {};\n      for (const field of fields) {\n        if (this.state[field].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[field][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[field] = JSON.stringify(values);\n        } else {\n          input[field] = this.state[field].value ? this.state[field].value : null;\n        }\n      }\n\n      input.title = this.state.contentId;\n      input.languages = JSON.stringify(this.state.languages);\n      input.settings = JSON.stringify({questions: this.state[\"questions\"].value});\n\n      input.contentType = this.state.contentId;\n      input.id = this.state.contentId;\n\n      await contentsService.createContent(input);\n\n      this.setState({loading: false});\n\n      this.props.history.push(`/admin/`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onQuestionClick = (index) => {\n    this.setState({selectedQuestion: index});\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n    const {contentId} = this.state;\n    let filename = \"question-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/nursing-${contentId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let pathComponents = fieldName.split(\".\");\n\n    let data = {...this.state[pathComponents[0]]};\n\n    if (pathComponents.length > 1) {\n      if (data[pathComponents[2]].separatedLanguage) {\n        if (data.value[parseInt(pathComponents[1])][pathComponents[2]]) {\n          data.value[parseInt(pathComponents[1])][pathComponents[2]][this.state.selectedLanguage] = value;\n        } else {\n          let item = {};\n          item[this.state.selectedLanguage] = value;\n          data.value[parseInt(pathComponents[1])][pathComponents[2]] = item;\n        }\n      } else {\n        data.value[parseInt(pathComponents[1])][pathComponents[2]] = { value };\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        data[this.state.selectedLanguage] = value;\n      } else {\n        data.value = value;\n      }\n    }\n\n    let state = {};\n    state[pathComponents[0]] = data;\n\n    if (this.state.error) {\n      state.error = null;\n    }\n\n    this.setState(state);\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n          let value = item[pathComponents[2]] && item[pathComponents[2]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n        return item[pathComponents[2]] && item[pathComponents[2]].value && item[pathComponents[2]].value.length > 0;\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let value = this.state[pathComponents[0]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let value = this.state[pathComponents[0]].value;\n        return value && value.length > 0;\n      }\n    }\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n    for (let i in this.state.languages) {\n      if (pathComponents.length > 1) {\n        let value = this.state[pathComponents[0]].value[parseInt(pathComponents[1])][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      } else {\n        let value = this.state[pathComponents[0]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      }\n    }\n\n    return \"\";\n  };\n\n  getFormControlValue = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage]\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage];\n        }  else {\n          return \"\";\n        }\n      } else {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value;\n        }  else {\n          return \"\";\n        }\n      }\n\n    } else {\n      if (this.state[fieldName].separatedLanguage) {\n        let value = this.state[fieldName][this.state.selectedLanguage];\n        return value ? value : \"\";\n      } else {\n        let value = this.state[fieldName].value;\n        return value ? value : \"\";\n      }\n    }\n  };\n\n  renderToolbar = () => {\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">きづっきー診断編集</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderGeneral = () => {\n    return (\n      <div className=\"mt-4 mb-4\">\n        <Card>\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            人物相関図\n            {!this.getFormControlValue(\"comicIntroductionSvgUrl\") && (\n              <div className='btn btn-primary'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  イラストをアップロード\n                </label>\n                <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"comicIntroductionSvgUrl\", \"top\", e.target.files[0])} />\n              </div>\n            )}\n            {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"comicIntroductionSvgUrl\", null)}>イラストを削除</Button>)}\n          </Card.Header>\n          {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue('comicIntroductionSvgUrl')} />)}\n          <Card.Body>\n            {this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && !this.getFormControlValue('comicIntroductionSvgUrl') && (<Card.Text>svgファイルのみ</Card.Text>)}\n            {!this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && (<Card.Text className=\"text-danger\">[{this.formFieldRequiredValidationByLanguage(\"comicIntroductionSvgUrl\")}] イラストをアップロードしてください</Card.Text>)}\n          </Card.Body>\n        </Card>\n      </div>\n    );\n  };\n\n  renderQuestions = () => {\n    let {selectedQuestion} = this.state;\n\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">テスト問題</h1>\n\n          <DropdownButton title={`問${selectedQuestion + 1}`}>\n            {[...Array(30).keys()].map(questionIndex => (\n              <Dropdown.Item key={questionIndex} onClick={() => this.onQuestionClick(questionIndex)}>\n                問{questionIndex + 1}\n              </Dropdown.Item>\n            ))}\n          </DropdownButton>\n        </ButtonToolbar>\n\n        <Card className=\"mt-4\">\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            <div>イラスト</div>\n            <div>\n              {!this.getFormControlValue(`questions.${selectedQuestion}.image`) && (\n                <div className='btn btn-primary'>\n                  <label htmlFor=\"question-file\" style={{marginBottom: 0}}>\n                    イラストをアップロード\n                  </label>\n                  <input id=\"question-file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`questions.${selectedQuestion}.image`, \"image\", e.target.files[0])} />\n                </div>\n              )}\n              {this.getFormControlValue(`questions.${selectedQuestion}.image`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`questions.${selectedQuestion}.image`, null)}>イラストを削除</Button>)}\n            </div>\n          </Card.Header>\n          {this.getFormControlValue(`questions.${selectedQuestion}.image`) && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(`questions.${selectedQuestion}.image`)} />)}\n        </Card>\n\n        <Form id=\"form\" className=\"mt-4\">\n          <Form.Group>\n            <Form.Label>テキスト</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.text`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.text`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.text`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.text`)}] テキストを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label>サブタイトル</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.subtitle`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.subtitle`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.subtitle`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.subtitle`)}] サブタイトルを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          {this.renderQuestionSkills()}\n          <Row>\n            <Col xs={6}>\n              <Form.Group>\n                <Form.Label>回答①</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer1`)}] 回答①を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>正のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1PositiveStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1PositiveStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1PositiveStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>負のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1NegativeStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1NegativeStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1NegativeStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>ディスカウント</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1Discount`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1Discount`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1Discount`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n          </Row>\n          <Row>\n            <Col xs={6}>\n              <Form.Group>\n                <Form.Label>回答②</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer2`)}] 回答②を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>正のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2PositiveStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2PositiveStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2PositiveStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>負のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2NegativeStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2NegativeStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2NegativeStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>ディスカウント</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2Discount`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2Discount`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2Discount`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n          </Row>\n          <Row>\n            <Col xs={6}>\n              <Form.Group>\n                <Form.Label>回答③</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer3`)}] 回答③を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>正のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3PositiveStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3PositiveStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3PositiveStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>負のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3NegativeStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3NegativeStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3NegativeStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>ディスカウント</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3Discount`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3Discount`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3Discount`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n          </Row>\n        </Form>\n      </>\n    );\n  };\n\n  renderQuestionSkills = () => {\n    const {selectedQuestion} = this.state;\n    const skills = [\n      {key: 'imagination', label: '状況想像力'},\n      {key: 'reaction', label: 'リアクション力'},\n      {key: 'empathy', label: '共感力'},\n      {key: 'feeling', label: '気持ち察し力'},\n      {key: 'flexibility', label: '柔軟性'},\n    ];\n\n    return (\n      <Form.Group>\n        <Form.Label>能力</Form.Label>\n        {skills.map(item => (\n          <Form.Check\n            key={item.key}\n            type=\"checkbox\"\n            label={item.label}\n            checked={this.getFormControlValue(`questions.${selectedQuestion}.${item.key}`) === \"1\"}\n            onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.${item.key}`, e.target.checked ? \"1\" : \"0\")}\n          />\n        ))}\n      </Form.Group>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n          {/*{this.renderGeneral()}*/}\n        </SmallBgLoading>\n        {this.renderQuestions()}\n      </>\n    );\n  }\n}\n\nexport default NursingPage;\n","import React, { Component } from \"react\";\nimport {Alert, Button, ButtonToolbar, Card, Dropdown, DropdownButton, Form, Col, Row} from \"react-bootstrap\";\nimport { SmallBgLoading } from \"../../../components/commons/SmallBgLoading\"\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faCheck, faMinusCircle, faPlusCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport uuid from \"uuid\";\nimport { Storage } from \"aws-amplify\";\nimport * as commonService from \"../../../services/common\";\nimport * as contentsService  from \"../../../services/contents\";\n\nclass NursingPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentId: 'NURSING_FREE',\n      comicIntroductionSvgUrl: { separatedLanguage: true, required: true },\n      questions: {\n        image: {\n          separatedLanguage: true,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        subtitle: {\n          separatedLanguage: true,\n          required: true\n        },\n        imagination: {\n          separatedLanguage: false,\n          required: true\n        },\n        reaction: {\n          separatedLanguage: false,\n          required: true\n        },\n        empathy: {\n          separatedLanguage: false,\n          required: true\n        },\n        feeling: {\n          separatedLanguage: false,\n          required: true\n        },\n        flexibility: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer1PositiveStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1NegativeStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1Discount: {\n          separatedLanguage: false,\n          required: true\n        },\n        // answer1IsCorrect: {\n        //   separatedLanguage: false,\n        //   required: false\n        // },\n        answer2: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer2PositiveStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer2NegativeStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer2Discount: {\n          separatedLanguage: false,\n          required: true\n        },\n        // answer2IsCorrect: {\n        //   separatedLanguage: false,\n        //   required: false\n        // },\n        answer3: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer3PositiveStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer3NegativeStroke: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer3Discount: {\n          separatedLanguage: false,\n          required: true\n        },\n        // answer3IsCorrect: {\n        //   separatedLanguage: false,\n        //   required: false\n        // },\n        value: [...Array(10).keys()].map(index => { return {}; }),\n        multiply: true\n      },\n      selectedQuestion: 0,\n      languages: [],\n      selectedLanguage: null,\n      data: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n      let content = await contentsService.fetchContent(this.state.contentId);\n      if (content) {\n        state.data = content;\n        state.languages = JSON.parse(state.data.languages);\n\n        let fields = [\"comicIntroductionSvgUrl\"];\n        for (const field of fields) {\n          if (this.state[field].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[field]) state[field] = {...this.state[field]};\n              try {\n                state[field][state.languages[langIndex]] = JSON.parse(state.data[field])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[field] = { value: state.data[field], ...this.state[field]};\n          }\n        }\n\n        let settings = JSON.parse(state.data.settings);\n        state.questions = this.state.questions;\n        state.questions.value = settings.questions;\n      } else {\n        state.languages = [commonService.mainLanguage];\n      }\n\n      state.selectedLanguage = commonService.mainLanguage;\n\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n  }\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onDoneClick = async () => {\n\n    try {\n      let fields = [\"comicIntroductionSvgUrl\"];\n      let input = {};\n      for (const field of fields) {\n        if (this.state[field].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[field][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[field] = JSON.stringify(values);\n        } else {\n          input[field] = this.state[field].value ? this.state[field].value : null;\n        }\n      }\n\n      input.title = this.state.contentId;\n      input.languages = JSON.stringify(this.state.languages);\n      input.settings = JSON.stringify({questions: this.state[\"questions\"].value});\n\n      input.contentType = this.state.contentId;\n      input.id = this.state.contentId;\n\n      await contentsService.createContent(input);\n\n      this.setState({loading: false});\n\n      this.props.history.push(`/admin/`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onQuestionClick = (index) => {\n    this.setState({selectedQuestion: index});\n  };\n\n  onFileUpload = async (fieldName, key, file) => {\n    const {contentId} = this.state;\n    let filename = \"question-\" + key + \"-\" + uuid() + \".\" + file.name.split('.').pop();\n\n    const s3Object = await Storage.put(`contents/nursing-free-${contentId}/${filename}`, file, {\n      contentType: file.type,\n      level: \"public\"\n    });\n\n    let url = `https://s3-ap-northeast-1.amazonaws.com/${process.env.REACT_APP_S3_BUCKET}/public/${s3Object.key}`;\n\n    this.onFormControlChanged(fieldName, url);\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let pathComponents = fieldName.split(\".\");\n\n    let data = {...this.state[pathComponents[0]]};\n\n    if (pathComponents.length > 1) {\n      if (data[pathComponents[2]].separatedLanguage) {\n        if (data.value[parseInt(pathComponents[1])][pathComponents[2]]) {\n          data.value[parseInt(pathComponents[1])][pathComponents[2]][this.state.selectedLanguage] = value;\n        } else {\n          let item = {};\n          item[this.state.selectedLanguage] = value;\n          data.value[parseInt(pathComponents[1])][pathComponents[2]] = item;\n        }\n      } else {\n        data.value[parseInt(pathComponents[1])][pathComponents[2]] = { value };\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        data[this.state.selectedLanguage] = value;\n      } else {\n        data.value = value;\n      }\n    }\n\n    let state = {};\n    state[pathComponents[0]] = data;\n\n    if (this.state.error) {\n      state.error = null;\n    }\n\n    this.setState(state);\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n          let value = item[pathComponents[2]] && item[pathComponents[2]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n        return item[pathComponents[2]] && item[pathComponents[2]].value && item[pathComponents[2]].value.length > 0;\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let value = this.state[pathComponents[0]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let value = this.state[pathComponents[0]].value;\n        return value && value.length > 0;\n      }\n    }\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n    for (let i in this.state.languages) {\n      if (pathComponents.length > 1) {\n        let value = this.state[pathComponents[0]].value[parseInt(pathComponents[1])][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      } else {\n        let value = this.state[pathComponents[0]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      }\n    }\n\n    return \"\";\n  };\n\n  getFormControlValue = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage]\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage];\n        }  else {\n          return \"\";\n        }\n      } else {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value;\n        }  else {\n          return \"\";\n        }\n      }\n\n    } else {\n      if (this.state[fieldName].separatedLanguage) {\n        let value = this.state[fieldName][this.state.selectedLanguage];\n        return value ? value : \"\";\n      } else {\n        let value = this.state[fieldName].value;\n        return value ? value : \"\";\n      }\n    }\n  };\n\n  renderToolbar = () => {\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">きづっきー診断編集</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderGeneral = () => {\n    return (\n      <div className=\"mt-4 mb-4\">\n        <Card>\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            人物相関図\n            {!this.getFormControlValue(\"comicIntroductionSvgUrl\") && (\n              <div className='btn btn-primary'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  イラストをアップロード\n                </label>\n                <input id=\"file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(\"comicIntroductionSvgUrl\", \"top\", e.target.files[0])} />\n              </div>\n            )}\n            {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(\"comicIntroductionSvgUrl\", null)}>イラストを削除</Button>)}\n          </Card.Header>\n          {this.getFormControlValue(\"comicIntroductionSvgUrl\") && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue('comicIntroductionSvgUrl')} />)}\n          <Card.Body>\n            {this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && !this.getFormControlValue('comicIntroductionSvgUrl') && (<Card.Text>svgファイルのみ</Card.Text>)}\n            {!this.formFieldRequiredValidation(\"comicIntroductionSvgUrl\") && (<Card.Text className=\"text-danger\">[{this.formFieldRequiredValidationByLanguage(\"comicIntroductionSvgUrl\")}] イラストをアップロードしてください</Card.Text>)}\n          </Card.Body>\n        </Card>\n      </div>\n    );\n  };\n\n  renderQuestions = () => {\n    let {selectedQuestion} = this.state;\n\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">テスト問題</h1>\n\n          <DropdownButton title={`問${selectedQuestion + 1}`}>\n            {[...Array(10).keys()].map(questionIndex => (\n              <Dropdown.Item key={questionIndex} onClick={() => this.onQuestionClick(questionIndex)}>\n                問{questionIndex + 1}\n              </Dropdown.Item>\n            ))}\n          </DropdownButton>\n        </ButtonToolbar>\n\n        <Card className=\"mt-4\">\n          <Card.Header className=\"d-flex justify-content-between align-items-center\">\n            <div>イラスト</div>\n            <div>\n              {!this.getFormControlValue(`questions.${selectedQuestion}.image`) && (\n                <div className='btn btn-primary'>\n                  <label htmlFor=\"question-file\" style={{marginBottom: 0}}>\n                    イラストをアップロード\n                  </label>\n                  <input id=\"question-file\" accept=\"image/svg+xml,|image/png,image/jpeg\" type='file' style={{display: 'none'}} onChange={(e) => this.onFileUpload(`questions.${selectedQuestion}.image`, \"image\", e.target.files[0])} />\n                </div>\n              )}\n              {this.getFormControlValue(`questions.${selectedQuestion}.image`) && (<Button variant=\"primary\" onClick={() => this.onFormControlChanged(`questions.${selectedQuestion}.image`, null)}>イラストを削除</Button>)}\n            </div>\n          </Card.Header>\n          {this.getFormControlValue(`questions.${selectedQuestion}.image`) && (<Card.Img variant=\"top\"style={{ maxHeight: '20rem', objectFit: 'contain' }} src={this.getFormControlValue(`questions.${selectedQuestion}.image`)} />)}\n        </Card>\n\n        <Form id=\"form\" className=\"mt-4\">\n          <Form.Group>\n            <Form.Label>テキスト</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.text`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.text`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.text`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.text`)}] テキストを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label>サブタイトル</Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue(`questions.${selectedQuestion}.subtitle`)}\n                          onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.subtitle`, e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.subtitle`)} />\n            <Form.Control.Feedback type=\"invalid\">\n              [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.subtitle`)}] サブタイトルを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          {this.renderQuestionSkills()}\n          <Row>\n            <Col xs={6}>\n              <Form.Group>\n                <Form.Label>回答①</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer1`)}] 回答①を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>正のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1PositiveStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1PositiveStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1PositiveStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>負のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1NegativeStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1NegativeStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1NegativeStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>ディスカウント</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer1Discount`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer1Discount`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer1Discount`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n          </Row>\n          <Row>\n            <Col xs={6}>\n              <Form.Group>\n                <Form.Label>回答②</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer2`)}] 回答②を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>正のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2PositiveStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2PositiveStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2PositiveStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>負のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2NegativeStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2NegativeStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2NegativeStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>ディスカウント</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer2Discount`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer2Discount`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer2Discount`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n          </Row>\n          <Row>\n            <Col xs={6}>\n              <Form.Group>\n                <Form.Label>回答③</Form.Label>\n                <Form.Control required\n                              type=\"text\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  [{this.formFieldRequiredValidationByLanguage(`questions.${selectedQuestion}.answer3`)}] 回答③を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>正のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3PositiveStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3PositiveStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3PositiveStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>負のストローク</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3NegativeStroke`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3NegativeStroke`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3NegativeStroke`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n            <Col>\n              <Form.Group>\n                <Form.Label>ディスカウント</Form.Label>\n                <Form.Control required\n                              type=\"number\"\n                              value={this.getFormControlValue(`questions.${selectedQuestion}.answer3Discount`)}\n                              onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.answer3Discount`, e.target.value)}\n                              isInvalid={!this.formFieldRequiredValidation(`questions.${selectedQuestion}.answer3Discount`)} />\n                <Form.Control.Feedback type=\"invalid\">\n                  回答①点数を入力してください\n                </Form.Control.Feedback>\n              </Form.Group>\n            </Col>\n          </Row>\n        </Form>\n      </>\n    );\n  };\n\n  renderQuestionSkills = () => {\n    const {selectedQuestion} = this.state;\n    const skills = [\n      {key: 'imagination', label: '状況想像力'},\n      {key: 'reaction', label: 'リアクション力'},\n      {key: 'empathy', label: '共感力'},\n      {key: 'feeling', label: '気持ち察し力'},\n      {key: 'flexibility', label: '柔軟性'},\n    ];\n\n    return (\n      <Form.Group>\n        <Form.Label>能力</Form.Label>\n        {skills.map(item => (\n          <Form.Check\n            key={item.key}\n            type=\"checkbox\"\n            label={item.label}\n            checked={this.getFormControlValue(`questions.${selectedQuestion}.${item.key}`) === \"1\"}\n            onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.${item.key}`, e.target.checked ? \"1\" : \"0\")}\n          />\n        ))}\n      </Form.Group>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n          {/*{this.renderGeneral()}*/}\n        </SmallBgLoading>\n        {this.renderQuestions()}\n      </>\n    );\n  }\n}\n\nexport default NursingPage;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { ButtonToolbar, Button, Badge, ListGroup } from \"react-bootstrap\";\nimport \"./index.scss\";\nimport * as contentsService from \"../../../services/contents\";\nimport * as commonService from \"../../../services/common\";\nimport * as jsonService from \"../../../services/json\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faBars} from \"@fortawesome/free-solid-svg-icons\";\nimport {DragDropContext, Draggable, Droppable} from \"react-beautiful-dnd\";\n\nclass SimpleFlowTestListPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentType: \"SIMPLE_FLOW_TEST\",\n      isEdit: false,\n      loading: false,\n      error: null,\n      items: [],\n      oldItems: [],\n    };\n  }\n\n  componentDidMount() {\n    this._isMounted = true;\n    this.fetchContents();\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n  }\n\n  fetchContents = async () => {\n    if (!this._isMounted) {\n      return;\n    }\n    this.setState({ loading: true, error: null });\n    try {\n      let setting = await contentsService.fetchContentSetting(this.state.contentType);\n      let response = await contentsService.fetchContents();\n      let items = response.items.filter((item) => item.contentType === this.state.contentType);\n      if (setting) {\n        let order = JSON.parse(setting.order);\n        let newList = [];\n        for (let i = 0; i < order.length; i++) {\n          let index = items.findIndex(item => item.id === order[i]);\n          if (items[index]) {\n            newList.push(items[index]);\n          }\n        }\n        items = newList;\n      }\n\n      if (this._isMounted) {\n        this.setState({ items: items, loading: false });\n      }\n    } catch (e) {\n      console.error(e);\n      if (this._isMounted) {\n        this.setState({loading: true, error: e});\n      }\n    }\n  };\n\n  onCreateClick = () => {\n    this.props.history.push(\"/admin/test/simple-flow/new\");\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/admin/test/simple-flow/${item.id}`);\n  };\n\n  onDragEnd = async (result) => {\n    if (!result.destination) return;\n\n    // Update local list\n    const items = Array.from(this.state.items);\n    const [removed] = items.splice(result.source.index, 1);\n    items.splice(result.destination.index, 0, removed);\n    this.setState({ items });\n  };\n\n  onEditOrder = () => {\n    const {items} = this.state;\n    this.setState({oldItems: [...items], isEdit: true})\n  };\n\n  onEditOrderCancel = () => {\n    const {oldItems} = this.state;\n    this.setState({items: [...oldItems], isEdit: false});\n  };\n\n  onEditOrderDone = async () => {\n    const {items} = this.state;\n\n    let order = items.map(item => item.id);\n    await contentsService.updateContentSetting({id: this.state.contentType, order: JSON.stringify(order)})\n\n    this.setState({oldItems: [], isEdit: false});\n  };\n\n  renderSimpleList = () => {\n    const {items} = this.state;\n    return (\n      <ListGroup className=\"mt-3\">\n        {items.map((item, index) => (\n\n          <div\n            key={item.id}\n            className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n            onClick={() => this.onEditClick(item)}\n          >\n            <div>\n              <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n              {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n              {JSON.parse(item.languages).map((language) => (\n                <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n              ))}\n            </div>\n          </div>\n        ))}\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  renderDraggableList = () => {\n    return (\n      <ListGroup className=\"mt-3\">\n\n        <DragDropContext onDragEnd={this.onDragEnd}>\n          <Droppable droppableId=\"droppable\">\n            {(provided, snapshot) => (\n              <div\n                {...provided.droppableProps}\n                ref={provided.innerRef}\n              >\n                {this.state.items.map((item, index) => (\n                  <Draggable key={item.id} draggableId={item.id} index={index}>\n                    {(provided, snapshot) => (\n                      <div\n                        ref={provided.innerRef}\n                        {...provided.draggableProps}\n                        {...provided.dragHandleProps}\n                        className=\"d-flex justify-content-between align-items-center list-group-item pointer\"\n                        onClick={() => this.onEditClick(item)}\n                      >\n                        <div>\n                          <FontAwesomeIcon className=\"text-secondary mr-2 grab\" icon={faBars} />\n                          {JSON.parse(item.title)[commonService.mainLanguage] + \" \"}\n                          {JSON.parse(item.languages).map((language) => (\n                            <Badge key={language} variant=\"info\" className=\"mr-1\">{commonService.languages[language]}</Badge>\n                          ))}\n                        </div>\n                      </div>\n                    )}\n                  </Draggable>\n                ))}\n                {provided.placeholder}\n              </div>\n            )}\n          </Droppable>\n        </DragDropContext>\n        {!this.state.loading && this.state.items.length === 0 && (\n          <ListGroup.Item>\n            何も見つかりませんでした\n          </ListGroup.Item>\n        )}\n      </ListGroup>\n    );\n  };\n\n  render() {\n    const {isEdit} = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">公式練習問題集一覧</h1>\n          {!isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrder}>順番変更</Button>\n              <Button variant=\"primary\" onClick={this.onCreateClick}>制作</Button>\n            </div>\n          )}\n          {isEdit && (\n            <div className=\"d-flex\">\n              <Button variant=\"outline-primary mr-2\" onClick={this.onEditOrderCancel}>キャンセル</Button>\n              <Button variant=\"primary\" className=\"mr-2\" onClick={this.onEditOrderDone}>保存</Button>\n            </div>\n          )}\n        </ButtonToolbar>\n\n        {!isEdit && this.renderSimpleList()}\n        {isEdit && this.renderDraggableList()}\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(SimpleFlowTestListPage);\n","import React, { Component } from \"react\";\nimport {\n  Alert,\n  Button,\n  ButtonToolbar,\n  Dropdown,\n  DropdownButton,\n  Form,\n  InputGroup,\n  FormControl,\n  Card,\n  Col,\n} from \"react-bootstrap\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faCheck, faMinusCircle, faPlusCircle} from \"@fortawesome/free-solid-svg-icons\";\nimport * as commonService from \"../../../../services/common\";\nimport * as contentsService  from \"../../../../services/contents\";\nimport uuid from \"uuid\";\nimport * as generator from \"generate-password\";\nimport * as csvService from \"../../../../services/csv\";\nimport * as userService from \"../../../../services/users\";\n\nclass SimpleFlowTestPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentId: null,\n      touched: false,\n\n      title: { separatedLanguage: true },\n      description: { separatedLanguage: true },\n      testTime: { separatedLanguage: false },\n      // areas: {\n      //   title: {\n      //     separatedLanguage: true,\n      //     required: true\n      //   },\n      //   factors: {\n      //     separatedLanguage: false,\n      //     required: true\n      //   },\n      //   value: [],\n      //   multiply: true,\n      // },\n      factors: {\n        key: {\n          separatedLanguage: false,\n          required: true\n        },\n        title: {\n          separatedLanguage: true,\n          required: true\n        },\n        value: [],\n        multiply: true,\n      },\n      questions: {\n        title: {\n          separatedLanguage: true,\n          required: true\n        },\n        description: {\n          separatedLanguage: true,\n          required: true\n        },\n        factors: {\n          separatedLanguage: false,\n          required: true\n        },\n        value: [],\n        multiply: true\n      },\n      answers: {\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        // description: {\n        //   separatedLanguage: true,\n        //   required: true\n        // },\n        points: {\n          separatedLanguage: false,\n          required: true\n        },\n        value: [],\n        multiply: true\n      },\n      selectedQuestion: null,\n      selectedAnswer: null,\n      languages: [],\n      selectedLanguage: null,\n      data: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n  // Lifecycle\n\n  componentDidMount() {\n    this._isMounted = true;\n    this.fetchData()\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n  }\n\n  // Data\n\n  fetchData = async () => {\n    if (!this._isMounted) {\n      return;\n    }\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n      let contentId = this.props.match.params.contentId;\n      if (contentId !== \"new\") {\n        let content = await contentsService.fetchContent(contentId);\n        state.contentId = contentId;\n        state.data = content;\n        state.languages = JSON.parse(state.data.languages);\n\n        let fields = [\"title\", \"description\"];\n        for (const field of fields) {\n          if (this.state[field].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[field]) state[field] = {...this.state[field]};\n              try {\n                state[field][state.languages[langIndex]] = JSON.parse(state.data[field])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[field] = { value: state.data[field], ...this.state[field]};\n          }\n        }\n\n        let settings = JSON.parse(state.data.settings);\n        state.testTime = this.state.testTime;\n        state.testTime.value = settings.testTime;\n\n        // state.areas = this.state.areas;\n        // state.areas.value = settings.areas;\n\n        state.factors = this.state.factors;\n        state.factors.value = settings.factors;\n\n        state.questions = this.state.questions;\n        state.questions.value = settings.questions;\n\n        state.answers = this.state.answers;\n        state.answers.value = settings.answers;\n      } else {\n        state.languages = [commonService.mainLanguage];\n      }\n\n      state.selectedLanguage = commonService.mainLanguage;\n\n      if (this._isMounted) {\n        this.setState(state);\n      }\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  // Form\n\n  onFormControlChanged = (fieldName, value) => {\n    let pathComponents = fieldName.split(\".\");\n\n    let data = {...this.state[pathComponents[0]]};\n\n    if (pathComponents.length > 1) {\n      if (data[pathComponents[2]].separatedLanguage) {\n        if (data.value[parseInt(pathComponents[1])][pathComponents[2]]) {\n          data.value[parseInt(pathComponents[1])][pathComponents[2]][this.state.selectedLanguage] = value;\n        } else {\n          let item = {};\n          item[this.state.selectedLanguage] = value;\n          data.value[parseInt(pathComponents[1])][pathComponents[2]] = item;\n        }\n      } else {\n        data.value[parseInt(pathComponents[1])][pathComponents[2]] = { value };\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        data[this.state.selectedLanguage] = value;\n      } else {\n        data.value = value;\n      }\n    }\n\n    let state = {};\n    state[pathComponents[0]] = data;\n\n    if (this.state.error) {\n      state.error = null;\n    }\n\n    this.setState(state);\n  };\n\n  formRequiredValidation = (fileds) => {\n    for (let i in fileds) {\n      if (!this.formFieldRequiredValidation(fileds[i], true)) return false;\n    }\n\n    return true;\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n          let value = item[pathComponents[2]] && item[pathComponents[2]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let item = this.state[pathComponents[0]].value[parseInt(pathComponents[1])];\n        return item[pathComponents[2]] && item[pathComponents[2]].value && item[pathComponents[2]].value.length > 0;\n      }\n    } else {\n      if (this.state[pathComponents[0]].separatedLanguage) {\n        for (let i in this.state.languages) {\n          let value = this.state[pathComponents[0]][this.state.languages[i]];\n          if (!(value && value.length > 0)) return false;\n        }\n        return true;\n      } else {\n        let value = this.state[pathComponents[0]].value;\n        return value && value.length > 0;\n      }\n    }\n  };\n\n  formFieldRequiredValidationByLanguage = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n    for (let i in this.state.languages) {\n      if (pathComponents.length > 1) {\n        let value = this.state[pathComponents[0]].value[parseInt(pathComponents[1])][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      } else {\n        let value = this.state[pathComponents[0]][this.state.languages[i]];\n        if (!(value && value.length > 0)) return commonService.languages[this.state.languages[i]];\n      }\n    }\n\n    return \"\";\n  };\n\n  getFormControlValue = (fieldName) => {\n    let pathComponents = fieldName.split(\".\");\n\n    if (pathComponents.length > 1) {\n      if (this.state[pathComponents[0]][pathComponents[2]].separatedLanguage) {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage]\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]][this.state.selectedLanguage];\n        }  else {\n          return \"\";\n        }\n      } else {\n        if (\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]] &&\n          this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value\n        ) {\n          return this.state[pathComponents[0]].value[pathComponents[1]][pathComponents[2]].value;\n        }  else {\n          return \"\";\n        }\n      }\n\n    } else {\n      if (this.state[fieldName].separatedLanguage) {\n        let value = this.state[fieldName][this.state.selectedLanguage];\n        return value ? value : \"\";\n      } else {\n        let value = this.state[fieldName].value;\n        return value ? value : \"\";\n      }\n    }\n  };\n\n  // Actions\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      if (this._isMounted) {\n        this.setState({ loading: false, error: error.errors[0] });\n      }\n    } else {\n      console.error(error);\n      if (this._isMounted) {\n        this.setState({loading: false, error});\n      }\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n  onDeleteClick = async () => {\n    this.setState({error: null, loading: true});\n\n    try {\n      await contentsService.deleteContent(this.state.data.id);\n\n      // update order\n      let setting = await contentsService.fetchContentSetting(\"SIMPLE_FLOW_TEST\");\n      let order = [];\n      if (setting && setting.order) {\n        order = JSON.parse(setting.order);\n      }\n      let index = order.indexOf(this.state.data.id);\n      if (index !== -1) {\n        order.splice(index, 1);\n        await contentsService.updateContentSetting({id: \"SIMPLE_FLOW_TEST\", order: JSON.stringify(order)});\n      }\n\n      this.setState({loading: false});\n      this.props.history.push(\"/admin/test/simple-flow\");\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    event.preventDefault();\n    this.setState({error: null, touched: true});\n    let validationFields = [\"title\", \"testTime\"];\n    if (!this.formRequiredValidation(validationFields)) return;\n\n    try {\n      let fields = [\"title\", \"description\",];\n      let input = {};\n      for (const field of fields) {\n        if (this.state[field].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[field][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[field] = JSON.stringify(values);\n        } else {\n          input[field] = this.state[field].value ? this.state[field].value : null;\n        }\n      }\n\n      let settings = {\n        testTime: this.state[\"testTime\"].value,\n        // areas: this.state[\"areas\"].value,\n        factors: this.state[\"factors\"].value,\n        questions: this.state[\"questions\"].value,\n        answers: this.state[\"answers\"].value,\n      };\n      input.settings = JSON.stringify(settings);\n      input.languages = JSON.stringify(this.state.languages);\n\n      if (this.state.data) {\n        input.id = this.state.data.id;\n        await contentsService.updateContent(input);\n      } else {\n        input.id = uuid.v4();\n        input.contentType = \"SIMPLE_FLOW_TEST\";\n        await contentsService.createContent(input);\n\n        // update order\n        let setting = await contentsService.fetchContentSetting(\"SIMPLE_FLOW_TEST\");\n        let order = [];\n        if (setting && setting.order) {\n          order = JSON.parse(setting.order);\n        }\n        order.push(input.id);\n        await contentsService.updateContentSetting({id: \"SIMPLE_FLOW_TEST\", order: JSON.stringify(order)});\n      }\n\n      this.setState({loading: false});\n\n      this.props.history.push(`/admin/test/simple-flow`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n  onUpload = async (file) => {\n    this.setState({ loading: true, error: null });\n    let schema = [\n      {path: \"questionTitle\", type: \"String\", required: true},\n      {path: \"answers\", type: \"String\", required: true},\n      {path: \"answer1Points\", type: \"Int\", required: true},\n      {path: \"answer2Points\", type: \"Int\", required: true},\n      {path: \"answer3Points\", type: \"Int\", required: true},\n      {path: \"answer4Points\", type: \"Int\", required: true},\n      {path: \"questionDescription\", type: \"String\", required: true},\n      {path: \"factor1\", type: \"Int\", required: false}, // 状況想像力\n      {path: \"factor2\", type: \"Int\", required: false}, // リアクション力\n      {path: \"factor3\", type: \"Int\", required: false}, // 共感力\n      {path: \"factor4\", type: \"Int\", required: false}, // 気持ち察し力\n      {path: \"factor5\", type: \"Int\", required: false}, // 柔軟性\n      {path: \"factor6\", type: \"Int\", required: false}, // コミュニケーション能力\n      {path: \"factor7\", type: \"Int\", required: false}, // グローバルビジネスの理解\n      {path: \"factor8\", type: \"Int\", required: false}, // 複雑性の認知\n      {path: \"factor9\", type: \"Int\", required: false}, // コスモポリタン的な志向\n      {path: \"factor10\", type: \"Int\", required: false}, // 多様性への情熱\n      {path: \"factor11\", type: \"Int\", required: false}, // 冒険心\n      {path: \"factor12\", type: \"Int\", required: false}, // 自信\n      {path: \"factor13\", type: \"Int\", required: false}, // 異文化への共感\n      {path: \"factor14\", type: \"Int\", required: false}, // 対人影響力\n      {path: \"factor15\", type: \"Int\", required: false}, // 外交的手腕\n      {path: \"factor16\", type: \"Int\", required: false}, // 他文化理解\n      {path: \"factor17\", type: \"Int\", required: false}, // 自己相対化\n      {path: \"factor18\", type: \"Int\", required: false}, // 多文化共生力\n    ];\n    try {\n\n      let items = await csvService.readCsv(file, schema);\n      console.log('items', items);\n      // let item;\n      // for (item of items) {\n      //   await userService.createUserManager(item);\n      // }\n      // await this.fetchUsers();\n      // window.alert(\"アップロードは完了しました\");\n    } catch (e) {\n      if (e.errors) {\n        window.alert(e.errors[0].message);\n      } else {\n        window.alert(e.message);\n      }\n    }\n    this.setState({ loading: false});\n  };\n\n  onAreaAdd = () => {\n    let areas = {...this.state.areas};\n    areas.value = [...(areas.value ? areas.value : [])];\n    areas.value.push({id: uuid.v4()});\n    this.setState({areas, error: null});\n  };\n\n  onAreaRemove = (index) => {\n    let areas = {...this.state.areas};\n    areas.value.splice(index, 1);\n    this.setState({areas, error: null});\n  };\n\n  onFactorAdd = () => {\n    let factors = {...this.state.factors};\n    factors.value = [...(factors.value ? factors.value : [])];\n    factors.value.push({id: uuid.v4()});\n    this.setState({factors, error: null});\n  };\n\n  onFactorRemove = (index) => {\n    let factors = {...this.state.factors};\n    factors.value.splice(index, 1);\n    this.setState({factors, error: null});\n  };\n\n  onQuestion = (id) => {\n    this.setState({selectedQuestion: id, selectedAnswer: null});\n  };\n\n  onQuestionAdd = () => {\n    let questions = {...this.state.questions};\n    const id = uuid.v4();\n    questions.value = [...(questions.value ? questions.value : [])];\n    questions.value.push({id});\n    this.setState({questions, selectedQuestion: id, selectedAnswer: null, error: null});\n  };\n\n  onQuestionRemove = () => {\n    let questions = {...this.state.questions};\n    let questionIndex = questions.value.findIndex(question => question.id === this.state.selectedQuestion);\n    questions.value.splice(questionIndex, 1);\n    let state = {\n      questions,\n      error: null,\n    };\n\n    state.selectedQuestion = null;\n    state.selectedAnswer = null;\n    this.setState(state);\n  };\n\n  onAnswer = (id) => {\n    this.setState({selectedAnswer: id});\n  };\n\n  onAnswerAdd = () => {\n    let answers = {...this.state.answers};\n    const id = uuid.v4();\n    answers.value = [...(answers.value ? answers.value : [])];\n    answers.value.push({id, questionId: this.state.selectedQuestion});\n    this.setState({answers, selectedAnswer: id, error: null});\n  };\n\n  onAnswerRemove = () => {\n    let answers = {...this.state.answers};\n    let answerIndex = answers.value.findIndex(answer => answer.id === this.state.selectedAnswer);\n    answers.value.splice(answerIndex, 1);\n    let state = {\n      answers,\n      error: null,\n    };\n\n    state.selectedAnswer = null;\n    this.setState(state);\n  };\n\n  // Render\n\n  renderToolbar = () => {\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">公式練習問題集編集</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <div className='btn btn-outline-primary mr-2 pointer'>\n            <label htmlFor=\"file\" style={{marginBottom: 0}}>\n              アップロード\n            </label>\n            <input id=\"file\" accept=\"text/csv\" type='file' style={{display: 'none'}} onChange={(e) => {this.onUpload(e.target.files[0]); e.target.value = null;}} />\n          </div>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  onClick={this.onDoneClick}>保存</Button>\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderGeneralAreaItem = (area, areaIndex) => {\n    const {factors} = this.state;\n    const selectedFactors = this.getFormControlValue(`areas.${areaIndex}.factors`) || '';\n    const selectedFactorsList = selectedFactors.split(',');\n\n    return (\n      <div key={areaIndex}>\n        <InputGroup key={areaIndex} className=\"mb-3\">\n          <FormControl\n            required={true}\n            placeholder=\"領域名\"\n            aria-describedby=\"basic-addon2\"\n            value={this.getFormControlValue(`areas.${areaIndex}.title`)}\n            onChange={(e) => this.onFormControlChanged(`areas.${areaIndex}.title`, e.target.value)}\n            isInvalid={!this.formFieldRequiredValidation(`areas.${areaIndex}.title`)}\n          />\n          <InputGroup.Append>\n            <Button variant=\"outline-danger\" onClick={() => this.onAreaRemove(areaIndex)}>削除</Button>\n          </InputGroup.Append>\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(`areas.${areaIndex}.title`)}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </InputGroup>\n\n        <Form.Group>\n          {factors.value.map((factor, factorIndex) => (\n            <Form.Check\n              key={factor.id}\n              type=\"checkbox\"\n              label={this.getFormControlValue(`factors.${factorIndex}.title`)}\n              checked={selectedFactorsList.indexOf(factor.id) !== -1}\n              onChange={(e) => {\n                if (e.target.checked ) {\n                  const array = [...selectedFactorsList];\n                  array.push(factor.id);\n                  this.onFormControlChanged(`areas.${areaIndex}.factors`, array.join(','))\n                } else {\n                  const array = [...selectedFactorsList];\n                  array.splice(array.indexOf(factor.id), 1);\n                  this.onFormControlChanged(`areas.${areaIndex}.factors`, array.join(','))\n                }\n              }}\n            />\n          ))}\n        </Form.Group>\n      </div>\n    );\n  };\n\n  renderGeneralAreas = () => {\n    const {areas} = this.state;\n\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 mb-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">領域</h1>\n          <div className=\"d-flex\">\n            <Button variant=\"primary\"\n                    onClick={this.onAreaAdd}>領域追加</Button>\n          </div>\n        </ButtonToolbar>\n        {areas.value && areas.value.length > 0 && (\n          <div>\n            {areas.value.map((area, areaIndex) => this.renderGeneralAreaItem(area, areaIndex))}\n          </div>\n        )}\n      </>\n    );\n  };\n\n  renderGeneralFactors = () => {\n    const {factors} = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 mb-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">ファクター</h1>\n          <div className=\"d-flex\">\n            <Button variant=\"primary\"\n                    onClick={this.onFactorAdd}>ファクター追加</Button>\n          </div>\n        </ButtonToolbar>\n        {factors.value && factors.value.length > 0 && (\n          <div>\n            {factors.value.map((item, index) => (\n              <div key={index} className=\"mt-2\">\n                <Form.Row>\n                  <Col>\n                    <Form.Group>\n                      <Form.Label>ファクターキー</Form.Label>\n                      <FormControl\n                        required={true}\n                        placeholder=\"ファクターキー\"\n                        aria-describedby=\"basic-addon2\"\n                        value={this.getFormControlValue(`factors.${index}.key`)}\n                        onChange={(e) => this.onFormControlChanged(`factors.${index}.key`, e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(`factors.${index}.key`)}\n                      />\n                      <Form.Control.Feedback type=\"invalid\">\n                        ファクターキーを入力してください\n                      </Form.Control.Feedback>\n                    </Form.Group>\n                  </Col>\n                  <Col>\n                    <Form.Group>\n                      <Form.Label>ファクター名</Form.Label>\n                      <FormControl\n                        required={true}\n                        placeholder=\"ファクター名\"\n                        aria-describedby=\"basic-addon2\"\n                        value={this.getFormControlValue(`factors.${index}.title`)}\n                        onChange={(e) => this.onFormControlChanged(`factors.${index}.title`, e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(`factors.${index}.title`)}\n                      />\n                      <Form.Control.Feedback type=\"invalid\">\n                        [{this.formFieldRequiredValidationByLanguage(`factors.${index}.title`)}] ファクター名を入力してください\n                      </Form.Control.Feedback>\n                    </Form.Group>\n                  </Col>\n                  <Button variant=\"outline-danger\" className=\"ml-2\" onClick={() => this.onFactorRemove(index)}>削除</Button>\n                </Form.Row>\n                {/*<InputGroup  className=\"mb-3\">*/}\n                {/*  */}\n                {/*  <InputGroup.Append>*/}\n                {/*    <Button variant=\"outline-danger\" onClick={() => this.onFactorRemove(index)}>削除</Button>*/}\n                {/*  </InputGroup.Append>*/}\n                {/*  <Form.Control.Feedback type=\"invalid\">*/}\n                {/*    [{this.formFieldRequiredValidationByLanguage(`factors.${index}.title`)}] タイトルを入力してください*/}\n                {/*  </Form.Control.Feedback>*/}\n                {/*</InputGroup>*/}\n              </div>\n            ))}\n          </div>\n        )}\n      </>\n    );\n  };\n\n  renderGeneral = () => {\n    return (\n      <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n        <Form.Group>\n          <Form.Label>タイトル</Form.Label>\n          <Form.Control required\n                        type=\"text\"\n                        value={this.getFormControlValue(\"title\")}\n                        onChange={(e) => this.onFormControlChanged(\"title\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"title\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(\"title\")}] タイトルを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>説明</Form.Label>\n          <Form.Control as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(\"description\")}\n                        onChange={(e) => this.onFormControlChanged(\"description\", e.target.value)} />\n        </Form.Group>\n        <Form.Group>\n          <Form.Label>テスト期間</Form.Label>\n          <Form.Control required\n                        type=\"number\"\n                        value={this.getFormControlValue(\"testTime\")}\n                        onChange={(e) => this.onFormControlChanged(\"testTime\", e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(\"testTime\")} />\n          <Form.Control.Feedback type=\"invalid\">\n            テスト期間を入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        {this.renderGeneralFactors()}\n        {/*{this.renderGeneralAreas()}*/}\n      </Form>\n    );\n  };\n\n  renderQuestionsHeader = () => {\n    let {selectedQuestion, questions} = this.state;\n    let questionIndex = selectedQuestion !== null\n      ?\n      this.state.questions.value.findIndex(question => question.id === selectedQuestion)\n      :\n      -1;\n\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">テスト問題</h1>\n\n        <div className=\"d-flex\">\n          <DropdownButton title={questionIndex !== -1 ? `問${questionIndex + 1}` : '未定'}>\n            {questions.value.map((question, index) => (\n              <Dropdown.Item key={index} onClick={() => this.onQuestion(question.id)}>\n                問{index + 1}\n              </Dropdown.Item>\n            ))}\n            {selectedQuestion !== null && (<Dropdown.Divider/>)}\n            <Dropdown.Item onClick={this.onQuestionAdd}>\n              追加\n            </Dropdown.Item>\n\n          </DropdownButton>\n          {selectedQuestion !== null && (\n            <Button variant=\"primary\"\n                  className=\"ml-2\"\n                  onClick={this.onQuestionRemove}>削除</Button>\n          )}\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderQuestionsContent = () => {\n    let {selectedQuestion, factors} = this.state;\n    if (selectedQuestion === null) {\n      return null;\n    }\n\n    let questionIndex = this.state.questions.value.findIndex(question => question.id === selectedQuestion);\n    if (questionIndex === -1) {\n      return ;\n    }\n\n    const selectedFactors = this.getFormControlValue(`questions.${questionIndex}.factors`) || '';\n    const selectedFactorsList = selectedFactors.split(',');\n\n    return (\n      <Form id=\"form\" className=\"mt-4\">\n        <Form.Group>\n          <Form.Label>問題本文</Form.Label>\n          <Form.Control required\n                        as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(`questions.${questionIndex}.title`)}\n                        onChange={(e) => this.onFormControlChanged(`questions.${questionIndex}.title`, e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(`questions.${questionIndex}.title`)} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(`questions.${questionIndex}.title`)}] 問題本文を入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n\n        <Form.Group>\n          <Form.Label>解説</Form.Label>\n          <Form.Control required\n                        as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(`questions.${questionIndex}.description`)}\n                        onChange={(e) => this.onFormControlChanged(`questions.${questionIndex}.description`, e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(`questions.${questionIndex}.description`)} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(`questions.${questionIndex}.title`)}] 解説を入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n\n        <Form.Group>\n          {factors.value.map((factor, index) => (\n            <Form.Check\n              key={factor.id}\n              type=\"checkbox\"\n              label={this.getFormControlValue(`factors.${index}.title`)}\n              checked={selectedFactorsList.indexOf(factor.id) !== -1}\n              onChange={(e) => {\n                if (e.target.checked ) {\n                  const array = [...selectedFactorsList];\n                  array.push(factor.id);\n                  this.onFormControlChanged(`questions.${questionIndex}.factors`, array.join(','))\n                } else {\n                  const array = [...selectedFactorsList];\n                  array.splice(array.indexOf(factor.id), 1);\n                  this.onFormControlChanged(`questions.${questionIndex}.factors`, array.join(','))\n                }\n              }}\n            />\n          ))}\n        </Form.Group>\n      </Form>\n    );\n  };\n\n  renderQuestionSkills = () => {\n    const {selectedQuestion} = this.state;\n    const skills = [\n      {key: 'imagination', label: '状況想像力'},\n      {key: 'reaction', label: 'リアクション力'},\n      {key: 'empathy', label: '共感力'},\n      {key: 'feeling', label: '気持ち察し力'},\n      {key: 'flexibility', label: '柔軟性'},\n    ];\n\n    return (\n      <Form.Group>\n        <Form.Label>能力</Form.Label>\n        {skills.map(item => (\n          <Form.Check\n            key={item.key}\n            type=\"checkbox\"\n            label={item.label}\n            checked={this.getFormControlValue(`questions.${selectedQuestion}.${item.key}`) === \"1\"}\n            onChange={(e) => this.onFormControlChanged(`questions.${selectedQuestion}.${item.key}`, e.target.checked ? \"1\" : \"0\")}\n          />\n        ))}\n      </Form.Group>\n    );\n  };\n\n  renderAnswerHeader = () => {\n    let {selectedQuestion, selectedAnswer, answers} = this.state;\n    if (selectedQuestion === null) {\n      return null;\n    }\n    let questionAnswers = answers.value.filter(answer => answer.questionId === selectedQuestion);\n    let answerIndex = selectedAnswer !== null\n      ?\n      questionAnswers.findIndex(answer => answer.id === selectedAnswer)\n      :\n      -1;\n\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">答え</h1>\n\n        <div className=\"d-flex\">\n          <DropdownButton title={answerIndex !== -1 ? `答え${answerIndex + 1}` : '未定'}>\n            {questionAnswers.map((answer, index) => (\n              <Dropdown.Item key={index} onClick={() => this.onAnswer(answer.id)}>\n                問{index + 1}\n              </Dropdown.Item>\n            ))}\n            {selectedAnswer !== null && (<Dropdown.Divider/>)}\n            <Dropdown.Item onClick={this.onAnswerAdd}>\n              追加\n            </Dropdown.Item>\n\n          </DropdownButton>\n          {selectedAnswer !== null && (\n            <Button variant=\"primary\"\n                    className=\"ml-2\"\n                    onClick={this.onAnswerRemove}>削除</Button>\n          )}\n        </div>\n      </ButtonToolbar>\n    );\n  };\n\n  renderAnswerContentFactor = (factorId, answerIndex) => {\n    const {factors} = this.state;\n\n    let factorIndex = factors.value.findIndex(factor => factor.id === factorId);\n    if (factorIndex === -1) {\n      return null;\n    }\n\n    const selectedFactorsValues = this.getFormControlValue(`answers.${answerIndex}.factorsValues`);\n    const selectedFactorsValueList = selectedFactorsValues ? JSON.parse(selectedFactorsValues) : {};\n\n    const handle = (e) => {\n      let values = {...selectedFactorsValueList};\n      if (!e.target.value || e.target.value.length === 0) {\n        delete values[factorId];\n      } else {\n        values[factorId] = e.target.value;\n      }\n      this.onFormControlChanged(`answers.${answerIndex}.factorsValues`, JSON.stringify(values));\n    };\n\n    return (\n      <div key={factorId}>\n        <Form.Group>\n          <Form.Label>{this.getFormControlValue(`factors.${factorIndex}.title`)}</Form.Label>\n          <Form.Control as=\"select\" value={selectedFactorsValueList[factorId] || ''} onChange={(e) => handle(e)}>\n            <option value=''>未選択</option>\n            <option value={2}>2</option>\n            <option value={4}>4</option>\n            <option value={6}>6</option>\n            <option value={10}>10</option>\n          </Form.Control>\n        </Form.Group>\n      </div>\n    );\n  };\n\n  renderAnswerContent = () => {\n    let {selectedQuestion, selectedAnswer, answers} = this.state;\n    if (selectedQuestion === null || selectedAnswer === null) {\n      return null;\n    }\n\n    let questionIndex = this.state.questions.value.findIndex(question => question.id === selectedQuestion);\n    if (questionIndex === -1) {\n      return ;\n    }\n\n    let answerIndex = answers.value.findIndex(answer => answer.id === selectedAnswer);\n    if (answerIndex === -1) {\n      return ;\n    }\n\n    // const selectedFactors = this.getFormControlValue(`questions.${questionIndex}.factors`) || '';\n    // const selectedFactorsList = selectedFactors.split(',');\n\n    return (\n      <Form id=\"form\" className=\"mt-4\">\n        <Form.Group>\n          <Form.Label>テキスト</Form.Label>\n          <Form.Control required\n                        as=\"textarea\"\n                        rows=\"3\"\n                        value={this.getFormControlValue(`answers.${answerIndex}.text`)}\n                        onChange={(e) => this.onFormControlChanged(`answers.${answerIndex}.text`, e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(`answers.${answerIndex}.text`)} />\n          <Form.Control.Feedback type=\"invalid\">\n            [{this.formFieldRequiredValidationByLanguage(`answers.${answerIndex}.text`)}] テキストを入力してください\n          </Form.Control.Feedback>\n        </Form.Group>\n        {/*<Form.Group>*/}\n        {/*  <Form.Label>説明</Form.Label>*/}\n        {/*  <Form.Control required*/}\n        {/*                as=\"textarea\"*/}\n        {/*                rows=\"3\"*/}\n        {/*                value={this.getFormControlValue(`answers.${answerIndex}.description`)}*/}\n        {/*                onChange={(e) => this.onFormControlChanged(`answers.${answerIndex}.description`, e.target.value)}*/}\n        {/*                isInvalid={!this.formFieldRequiredValidation(`answers.${answerIndex}.description`)} />*/}\n        {/*  <Form.Control.Feedback type=\"invalid\">*/}\n        {/*    [{this.formFieldRequiredValidationByLanguage(`answers.${answerIndex}.text`)}] 説明を入力してください*/}\n        {/*  </Form.Control.Feedback>*/}\n        {/*</Form.Group>*/}\n\n        {/*{selectedFactorsList.map((selectedFactor) => this.renderAnswerContentFactor(selectedFactor, answerIndex))}*/}\n\n        <Form.Group>\n          <Form.Label>配点</Form.Label>\n          <Form.Control as=\"select\"\n                        value={this.getFormControlValue(`answers.${answerIndex}.points`)}\n                        onChange={(e) => this.onFormControlChanged(`answers.${answerIndex}.points`, e.target.value)}\n                        isInvalid={!this.formFieldRequiredValidation(`answers.${answerIndex}.points`)} >\n            <option value=''>未選択</option>\n            <option value={2}>2</option>\n            <option value={4}>4</option>\n            <option value={6}>6</option>\n            <option value={10}>10</option>\n          </Form.Control>\n        </Form.Group>\n      </Form>\n    );\n  };\n\n  renderDangerActions = () => {\n    if (!this.state.data) {\n      return null;\n    }\n    return (\n      <Card className=\"mt-4 mb-4\">\n        <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n        <Card.Body>\n          <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>テストを削除する</Button>\n        </Card.Body>\n      </Card>\n    );\n  };\n\n  render() {\n    const {loading, error} = this.state;\n    return (\n      <>\n        <SmallBgLoading isLoading={loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{error.message}</Alert>)}\n          {this.renderToolbar()}\n          {this.renderGeneral()}\n        </SmallBgLoading>\n        {this.renderQuestionsHeader()}\n        {this.renderQuestionsContent()}\n        {this.renderAnswerHeader()}\n        {this.renderAnswerContent()}\n        {this.renderDangerActions()}\n      </>\n    );\n  }\n}\n\nexport default SimpleFlowTestPage;\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { MutsationTestCSVLayoutC, MutsationTestCSVLayoutCNew } from \"./graphql/test-csv\";\n\nexport const mutsationTestCSVLayoutC = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    MutsationTestCSVLayoutC,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.testCSVLayoutC;\n};\n\nexport const mutsationTestCSVLayoutCNew = async (input) => {\n  const response = await API.graphql(graphqlOperation(\n    MutsationTestCSVLayoutCNew,\n    { input },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.testCSVLayoutCNew;\n};","export const MutsationTestCSVLayoutC = `\nmutation TestCSVLayoutC($input: HtmlToPdfInput!) {\n  testCSVLayoutC(input: $input) {\n    locations\n  }\n}\n`;\n\nexport const MutsationTestCSVLayoutCNew = `\nmutation TestCSVLayoutCNew($input: HtmlToPdfInput!) {\n  testCSVLayoutCNew(input: $input) {\n    locations\n  }\n}\n`;","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport \"./index.scss\";\nimport * as jsonService from \"../../../services/json\";\nimport * as testCSVService from \"../../../services/test-csv\";\nimport { Table } from \"react-bootstrap\";\n\nclass Index extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      status: 'none',\n      error: null,\n      items: [],\n    };\n  }\n\n  onUpload = async (file, layout) => {\n    console.log('layout', layout)\n    const fileString = await jsonService.readFileAsync(file, \"shift-jis\");\n    if (layout === \"c\") {      \n      try {        \n        this.setState({ status: 'prepare' });\n        await testCSVService.mutsationTestCSVLayoutC({\n          fileString,\n        });\n        this.setState({ status: 'processing'});\n        const results = await testCSVService.mutsationTestCSVLayoutC({\n          fileString,\n        });\n        this.setState({ status: 'complete', items: results.locations });\n      } catch (error) {\n        console.log(\"error\", error);\n        this.setState({ status: 'none', error });\n      }\n    } else if (layout === \"c-new\") {\n      try {        \n        this.setState({ status: 'prepare' });\n        await testCSVService.mutsationTestCSVLayoutCNew({\n          fileString,\n        });\n        this.setState({ status: 'processing'});\n        const results = await testCSVService.mutsationTestCSVLayoutCNew({\n          fileString,\n        });\n        this.setState({ status: 'complete', items: results.locations });\n      } catch (error) {\n        console.log(\"error\", error);\n        this.setState({ status: 'none', error });\n      }      \n    }\n  };\n\n  render() {\n    const { status, error, items } = this.state;\n    return (\n      <div className={\"test-csv-container\"}>\n        {error ? <div>{error.toString()}</div> : null}\n        {status === 'prepare' ? <div>準備中...</div> : null}\n        {status === 'processing' ? <div>処理中...</div> : null}        \n        {status === 'none' ? (\n          <div>          \n            <div className=\"btn btn-outline-primary mr-2 pointer\">\n              <label htmlFor=\"file-c\" style={{ marginBottom: 0 }}>\n                C・Layout\n              </label>\n              <input\n                id=\"file-c\"\n                accept=\"text/csv\"\n                type=\"file\"\n                style={{ display: \"none\" }}\n                onChange={(e) => {\n                  this.onUpload(e.target.files[0], \"c\");\n                  e.target.value = null;\n                }}\n              />\n            </div>\n            <div className=\"btn btn-outline-primary mr-2 pointer\">\n              <label htmlFor=\"file-c-new\" style={{ marginBottom: 0 }}>\n                C・New・Layout\n              </label>\n              <input\n                id=\"file-c-new\"\n                accept=\"text/csv\"\n                type=\"file\"\n                style={{ display: \"none\" }}\n                onChange={(e) => {\n                  this.onUpload(e.target.files[0], \"c-new\");\n                  e.target.value = null;\n                }}\n              />\n            </div>\n          </div>\n        ) : null}\n        {items.length > 0 ? (\n          <Table striped bordered hover style={{marginTop: 40}}>\n            <thead>\n              <tr>\n                <th>#</th>\n                <th>URL</th>\n              </tr>\n            </thead>\n            <tbody>\n              {items.map((item, index) => (\n                <tr key={index}>\n                  <td>{index + 1}</td>\n                  <td>\n                    <a href={item} target={\"_blank\"}>\n                      {item}\n                    </a>\n                  </td>\n                </tr>\n              ))}\n            </tbody>\n          </Table>\n        ) : null}\n      </div>\n    );\n  }\n}\n\nfunction mapStateToProps() {\n  return {};\n}\n\nexport default connect(mapStateToProps)(Index);\n","import React, { Component } from \"react\";\nimport {Alert, Button, ButtonToolbar, Dropdown} from \"react-bootstrap\";\n// import {Alert, Button, ButtonToolbar, Card, Dropdown, DropdownButton, Form} from \"react-bootstrap\";\nimport { SmallBgLoading } from \"../../../components/commons/SmallBgLoading\"\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faCheck, faMinusCircle, faPlusCircle} from \"@fortawesome/free-solid-svg-icons\";\n// import uuid from \"uuid\";\n// import { Storage } from \"aws-amplify\";\nimport * as commonService from \"../../../services/common\";\nimport * as contentsService  from \"../../../services/contents\";\n\n// ----------------------------------------------------------------------\n// class SubtleTestPage extends Component {\nclass TestAaPage extends Component {\n\n// ----------------------------------------------------------------------\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      contentId: 'SUBTLE',\n      comicIntroductionSvgUrl: { separatedLanguage: true, required: true },\n      questions: {\n        image: {\n          separatedLanguage: true,\n          required: true\n        },\n        text: {\n          separatedLanguage: true,\n          required: true\n        },\n        subtitle: {\n          separatedLanguage: true,\n          required: true\n        },\n        imagination: {\n          separatedLanguage: false,\n          required: true\n        },\n        reaction: {\n          separatedLanguage: false,\n          required: true\n        },\n        empathy: {\n          separatedLanguage: false,\n          required: true\n        },\n        feeling: {\n          separatedLanguage: false,\n          required: true\n        },\n        flexibility: {\n          separatedLanguage: false,\n          required: true\n        },\n        answer1: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer1IsCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        answer2: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer2IsCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        answer3: {\n          separatedLanguage: true,\n          required: true\n        },\n        answer3IsCorrect: {\n          separatedLanguage: false,\n          required: false\n        },\n        value: [...Array(30).keys()].map(index => { return {}; }),\n        multiply: true\n      },\n      selectedQuestion: 0,\n      languages: [],\n      selectedLanguage: null,\n      data: null,\n\n      error: null,\n      loading: false,\n    };\n  }\n\n// ----------------------------------------------------------------------\n  async componentWillMount() {\n    this.setState({loading: true});\n\n    try {\n      let state = {loading: false};\n      let content = await contentsService.fetchContent(this.state.contentId);\n      if (content) {\n        state.data = content;\n        state.languages = JSON.parse(state.data.languages);\n\n        let fields = [\"comicIntroductionSvgUrl\"];\n        for (const field of fields) {\n          if (this.state[field].separatedLanguage) {\n            for (let langIndex in state.languages) {\n              if (!state[field]) state[field] = {...this.state[field]};\n              try {\n                state[field][state.languages[langIndex]] = JSON.parse(state.data[field])[state.languages[langIndex]];\n              } catch (e) {}\n            }\n\n          } else {\n            state[field] = { value: state.data[field], ...this.state[field]};\n          }\n        }\n\n        let settings = JSON.parse(state.data.settings);\n        state.questions = this.state.questions;\n        state.questions.value = settings.questions;\n      } else {\n        state.languages = [commonService.mainLanguage];\n      }\n\n      state.selectedLanguage = commonService.mainLanguage;\n\n      this.setState(state);\n    } catch (error) {\n      this.onError(error);\n    }\n  }\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onAddLanguage = (lang) => {\n    let languages = this.state.languages;\n    languages.push(lang);\n    this.setState({ languages, selectedLanguage: lang });\n  };\n\n  onDeleteLanguage = (lang) => {\n    let languages = this.state.languages.filter((item) => item !== lang);\n    this.setState({ languages });\n  };\n\n  onChangeLanguage = (lang) => {\n    if (this.state.selectedLanguage !== lang) {\n      this.setState({ selectedLanguage: lang });\n    }\n  };\n\n\n// ----------------------------------------------------------------------\n  onDoneClick = async () => {\n\n    try {\n      let fields = [\"comicIntroductionSvgUrl\"];\n      let input = {};\n      for (const field of fields) {\n        if (this.state[field].separatedLanguage) {\n          let values = {};\n          for (let langIndex in this.state.languages) {\n            let value = this.state[field][this.state.languages[langIndex]];\n            values[this.state.languages[langIndex]] = value ? value : null;\n          }\n          input[field] = JSON.stringify(values);\n        } else {\n          input[field] = this.state[field].value ? this.state[field].value : null;\n        }\n      }\n\n      input.title = this.state.contentId;\n      input.languages = JSON.stringify(this.state.languages);\n      input.settings = JSON.stringify({questions: this.state[\"questions\"].value});\n\n      input.contentType = \"SUBTLE\";\n      input.id = this.state.contentId;\n\n      await contentsService.createContent(input);\n\n      this.setState({loading: false});\n\n      this.props.history.push(`/admin/`);\n    } catch (error) {\n      this.onError(error);\n    }\n  };\n\n// ----------------------------------------------------------------------\n  renderToolbar = () => {\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n        <h1 className=\"m-0\">テストAa Jul/25/2022 AM 08:04</h1>\n        <div className=\"d-flex\">\n          <Dropdown className=\"mr-2\">\n            <Dropdown.Toggle variant=\"success\">\n              {commonService.languages[this.state.selectedLanguage]}\n            </Dropdown.Toggle>\n\n            <Dropdown.Menu>\n              {this.state.languages.map((key) => (\n                <Dropdown.Item\n                  key={key}\n                  className=\"d-flex justify-content-between align-items-center\"\n                >\n                  <div onClick={() => this.onChangeLanguage(key)}>{commonService.languages[key]}</div>\n                  {this.state.selectedLanguage === key && (\n                    <div>\n                      <FontAwesomeIcon className=\"text-secondary\" icon={faCheck} />\n                    </div>\n                  )}\n                  {this.state.selectedLanguage !== key && (\n                    <div onClick={() => this.onDeleteLanguage(key)}>\n                      <FontAwesomeIcon className=\"icon-hover icon-danger\" icon={faMinusCircle} />\n                    </div>\n                  )}\n                </Dropdown.Item>\n              ))}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).length > 0 && (<Dropdown.Divider />)}\n              {Object.keys(commonService.languages).filter(item => !this.state.languages.includes(item)).map((key) => (\n                <Dropdown.Item key={key}\n                               className=\"d-flex justify-content-between align-items-center\"\n                               onClick={() => this.onAddLanguage(key)}>\n                  <div>{commonService.languages[key]}</div>\n                  <FontAwesomeIcon className=\"icon-hover text-success\" icon={faPlusCircle} />\n                </Dropdown.Item>\n              ))}\n            </Dropdown.Menu>\n          </Dropdown>\n\n          <Button variant=\"primary\"\n                  type=\"submit\"\n                  className=\"mr-2\"\n                  onClick={this.onDoneClick}>保存</Button>\n        </div>\n\t    <Button>Hello Jul/07</Button>\n      </ButtonToolbar>\n    );\n  };\n\n\n// ----------------------------------------------------------------------\n  render() {\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (<Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>)}\n          {this.renderToolbar()}\n        </SmallBgLoading>\n      </>\n    );\n  }\n}\n\n// ----------------------------------------------------------------------\nexport default TestAaPage;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {ButtonToolbar, Button, ListGroup} from \"react-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport * as notificationsService from \"../../../services/notifications\";\n\nclass TestBbsPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchList();\n  }\n\n  fetchList = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let response = await notificationsService.fetchNotifications();\n      let items = response.items.filter(item => true);\n      items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      this.setState({ items: items, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onCreateClick = () => {\n\t  console.log(\"*** onCreateClick ***\");\n    this.props.history.push(\"/admin/testbbs/new\");\n  };\n\n  onEditClick = (item) => {\n\t  console.log(\"*** onEditClick ***\");\n    this.props.history.push(`/admin/testbbs/${item.id}`);\n  };\n\n  render() {\n    const {items} = this.state;\n\t  console.log(\"*** render() *** Jul/06/2022\");\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">お知らせ一覧 Jul/25/2022 AM 08:04</h1>\n          <div className=\"d-flex\">\n            <Button variant=\"primary\" onClick={this.onCreateClick}>新規制作</Button>\n          </div>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {items.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onEditClick(item)}>\n                {item.type === 'GENERAL' && <div>{item.title}</div>}\n                {item.type === 'KIBIIN' && (\n                  <div>\n                    <div><strong>キービン</strong></div>\n                    <div style={{whiteSpace: 'pre-wrap'}}>{item.description}</div>\n                  </div>\n                )}\n                <div>{commonService.formatDate(item.createdAt)}</div>\n            </ListGroup.Item>\n          ))}\n          {this.state.items.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(TestBbsPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Auth } from 'aws-amplify';\nimport { Route, Switch, Redirect } from \"react-router-dom\";\nimport {Container, Nav, Navbar, NavDropdown} from \"react-bootstrap\";\nimport {LinkContainer} from \"react-router-bootstrap\";\n\nimport ManagersPage from \"./Managers/index\";\nimport ManagerPage from \"./Managers/Manager/index\";\n\nimport UsersPage from \"./Users/index\";\nimport UserPage from \"./Users/User/index\";\n\nimport CoursesPage from \"./Courses/index\";\nimport CoursePage from \"./Courses/Course/index\";\nimport PracticeQuestionPage from \"./Courses/Course/PracticeQuestion/index\";\nimport TestQuestionPage from \"./Courses/Course/TestQuestion/index\";\n\nimport ComicsLifePage from \"./ComicsLife/index\";\nimport ComicLifePage from \"./ComicsLife/ComicLife/index\";\n\nimport ComicsSpiritPage from \"./ComicsSpirit/index\";\nimport ComicSpiritPage from \"./ComicsSpirit/ComicSpirit/index\";\n\nimport NotificationsPage from \"./Notifications/index\";\nimport NotificationPage from \"./Notifications/Notification/index\";\n\nimport SubtleTestPage from \"./SubtleTest/index\";\n\nimport NursingPage from \"./Nursing/index\";\nimport NursingFreePage from \"./NursingFree/index\";\n\nimport SimpleFlowTestListPage from \"./SimpleFlowTest/index\";\nimport SimpleFlowTestPage from \"./SimpleFlowTest/Item/index\";\n\nimport TestCSVPage from \"./TestCSV/index\";\n\nimport TestAaPage from \"./TestAa/index\";\nimport TestBbsPage from \"./TestBbs/index\";\n\nclass AdminPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      isLogout: false,\n    };\n  }\n\n  async onLogout() {\n\n    try {\n      await Auth.signOut();\n      this.setState({ isLogout: true });\n    } catch (e) {\n      console.error(e);\n    }\n\n  }\n\n  render() {\n    let { match, location } = this.props;\n\n    return (\n      <>\n        <Navbar bg=\"dark\" variant=\"dark\">\n          <Navbar.Brand>運営管理画面</Navbar.Brand>\n          <Nav className=\"mr-auto\">\n            <LinkContainer to={`/admin`} activeClassName={location.pathname === \"/admin\" ? \"active\" : \"\"}>\n              <Nav.Link>代理店管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/users`} activeClassName={location.pathname === \"/admin/users\" ? \"active\" : \"\"}>\n              <Nav.Link>ユーザー管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/courses`} activeClassName={location.pathname === \"/admin/courses\" ? \"active\" : \"\"}>\n              <Nav.Link>コース管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/comics/life`} activeClassName={location.pathname === \"/admin/comics/life\" ? \"active\" : \"\"}>\n              <Nav.Link>漫画Life管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/comics/spirit`} activeClassName={location.pathname === \"/admin/comics/spirit\" ? \"active\" : \"\"}>\n              <Nav.Link>漫画Spirit管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/subtle`} activeClassName={location.pathname === \"/admin/subtle\" ? \"active\" : \"\"}>\n              <Nav.Link>機微力テスト管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/testaa`} activeClassName={location.pathname === \"/admin/testaa\" ? \"active\" : \"\"}>\n              <Nav.Link>TestAa</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/testbbs`} activeClassName={location.pathname === \"/admin/testbbs\" ? \"active\" : \"\"}>\n              <Nav.Link>TestBbs</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/nursing`} activeClassName={location.pathname === \"/admin/nursing\" ? \"active\" : \"\"}>\n              <Nav.Link>きづっきー診断(有料)管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/nursing-free`} activeClassName={location.pathname === \"/admin/nursing-free\" ? \"active\" : \"\"}>\n              <Nav.Link>きづっきー診断(無料)管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/test/simple-flow`} activeClassName={location.pathname === \"/admin/test/simple-flow\" ? \"active\" : \"\"}>\n              <Nav.Link>公式練習問題集管理</Nav.Link>\n            </LinkContainer>\n            <LinkContainer to={`/admin/notifications`} activeClassName={location.pathname === \"/admin/notifications\" ? \"active\" : \"\"}>\n              <Nav.Link>お知らせ管理</Nav.Link>\n            </LinkContainer>\n          </Nav>\n          <Nav>\n            <NavDropdown title=\"アカウント\">\n\t      <NavDropdown.Item href=\"/admin/test-csv\">検定CSVアップロード</NavDropdown.Item>\n              <NavDropdown.Item onClick={this.onLogout.bind(this)}>ログアウト</NavDropdown.Item>\n            </NavDropdown>\n          </Nav>\n        </Navbar>\n        <Container>\n          <Switch>\n            <Route path={`${match.url}`} exact component={ManagersPage} />\n            <Route path={`${match.url}/:userId/user`} exact component={ManagerPage} />\n\n            <Route path={`${match.url}/users`} exact component={UsersPage} />\n            <Route path={`${match.url}/users/:userId`} exact component={UserPage} />\n            <Route path={`${match.url}/users/:userId/course-test-results/:testId`} exact component={UserPage} />\n\n            <Route path={`${match.url}/courses`} exact component={CoursesPage} />\n            <Route path={`${match.url}/courses/:courseId`} exact component={CoursePage} />\n            <Route path={`${match.url}/courses/:courseId/practice-questions/:practiceQuestionId`} exact component={PracticeQuestionPage} />\n            <Route path={`${match.url}/courses/:courseId/test-questions/:testQuestionId`} exact component={TestQuestionPage} />\n\n            <Route path={`${match.url}/comics/life`} exact component={ComicsLifePage} />\n            <Route path={`${match.url}/comics/life/:comicId`} exact component={ComicLifePage} />\n\n            <Route path={`${match.url}/comics/spirit`} exact component={ComicsSpiritPage} />\n            <Route path={`${match.url}/comics/spirit/:comicId`} exact component={ComicSpiritPage} />\n\n            <Route path={`${match.url}/test/simple-flow`} exact component={SimpleFlowTestListPage} />\n            <Route path={`${match.url}/test/simple-flow/:contentId`} exact component={SimpleFlowTestPage} />\n\n            <Route path={`${match.url}/notifications`} exact component={NotificationsPage} />\n            <Route path={`${match.url}/notifications/:notificationId`} exact component={NotificationPage} />\n\n            <Route path={`${match.url}/subtle`} exact component={SubtleTestPage} />\n            <Route path={`${match.url}/testaa`} exact component={TestAaPage} />\n            <Route path={`${match.url}/testbbs`} exact component={TestBbsPage} />\n\n            <Route path={`${match.url}/nursing`} exact component={NursingPage} />\n            <Route path={`${match.url}/nursing-free`} exact component={NursingFreePage} />\n\t    <Route path={`${match.url}/test-csv`} exact component={TestCSVPage} />\n\n          </Switch>\n        </Container>\n        {this.state.isLogout && (<Redirect to=\"/login\"/>)}\n      </>\n    )};\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(AdminPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {ButtonToolbar, Button, ListGroup} from \"react-bootstrap\";\nimport * as generator from \"generate-password\"\nimport * as userService from \"../../../services/users\";\nimport * as commonService from \"../../../services/common\";\nimport * as csvService from \"../../../services/csv\";\nimport * as accountService from \"../../../services/account\";\nimport { Auth } from 'aws-amplify';\nimport {SmallBgLoading} from \"../../../components/commons/SmallBgLoading\";\nimport * as nursingResultsMiddleware from \"../../../services/nursing/results\";\nimport * as nursingResultsService from \"../../../services/nursing-results\";\nimport uuid from \"uuid\";\nimport nursingCsv from \"../../../services/nursing/csv\";\n\nclass UsersPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n      accountPermissions: null,\n      isUpload: false,\n      uploadProgress: 0,\n      uploadError: null,\n      account: null,\n    };\n  }\n\n  componentDidMount() {\n    this._isMounted = true;\n    this.fetchUsers();\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n  }\n\n  fetchUsers = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let user = await Auth.currentAuthenticatedUser();\n      const account = await accountService.fetchAccount();\n      let accountPermissions = null\n      if (account.permissions) {\n        accountPermissions = JSON.parse(account.permissions);\n      }\n      let response = await userService.fetchUsers();\n      let items = response.items.filter(item => item.userGroup === \"USER\" && item.parentId === user.username);\n      items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      if (this._isMounted) {\n        this.setState({ items: items, account: account, loading: false, accountPermissions });\n      }\n    } catch (e) {\n      console.error(e);\n      if (this._isMounted) {\n        this.setState({loading: true, error: e});\n      }\n    }\n  };\n\n  onCreateClick = () => {\n    const {account, items} = this.state;\n    if (!account || !account.childMaxCount) {\n      return;\n    }\n\n    if (account.childMaxCount <= items.length) {\n      alert('アカウント数は上限されてます');\n    } else {\n      this.props.history.push(\"/manager/new/user\");\n    }\n  };\n\n  onEditClick = (item) => {\n    this.props.history.push(`/manager/${item.id}/user`);\n  };\n\n  onDownload = () => {\n\n    // Generate data\n    let schema = [\n      {label: \"ID\", path: \"id\"},\n      {label: \"メールアドレス\", path: \"email\", type: \"String\"},\n      {label: \"名前\", path: \"name\", type: \"String\"},\n    ];\n\n    let csv = csvService.prepareCsv(schema, this.state.items);\n    csvService.downloadCsv(csv, \"users.csv\");\n  };\n\n  onDownloadNursing = async () => {\n    const nursingResultsResponse = await nursingResultsService.fetchAdminNursingResults();\n    const nursingResults = nursingResultsResponse.items\n    nursingResults.forEach((item) => {\n      item.results = JSON.parse(item.results);\n    });\n    const csv = await nursingCsv({nursingResults, newestOnly: true, parentCheck: true });\n    csvService.downloadCsv(csv, `nursing-test-results-${new Date().toISOString()}.csv`);\n  };\n\n  onUploadSample = () => {\n\n    // Generate data\n    let schema = [\n      {label: \"メールアドレス\", path: \"email\", type: \"String\"},\n      {label: \"パスワード\", path: \"password\", type: \"String\"},\n      {label: \"名前\", path: \"name\", type: \"String\"},\n    ];\n\n    let items = [\n      {\n        email: \"user-1@example.com\",\n        password: \"qwerty\",\n        name: \"John\",\n      },\n      {\n        email: \"user-2@example.com\",\n        password: \"\",\n        name: \"Tanaka\",\n      }\n    ];\n\n    let csv = csvService.prepareCsv(schema, items);\n    csvService.downloadCsv(csv, \"users-sample.csv\");\n  };\n\n  onUpload = async (file) => {\n    const {account} = this.state;\n    if (!account || !account.childMaxCount) {\n      return;\n    }\n\n    this.setState({ loading: true, error: null });\n    let schema = [\n      {path: \"email\", type: \"String\", required: true},\n      {path: \"password\", type: function(value) {\n          if (value) return value;\n          return generator.generate({\n            length: 6,\n            uppercase: false\n          });\n        }},\n      {path: \"name\", type: \"String\", required: true},\n    ];\n    try {\n      let user = await Auth.currentAuthenticatedUser();\n      let items = await csvService.readCsv(file, schema);\n      let item;\n\n      if (account.childMaxCount < this.state.items.length + items.length) {\n        this.setState({ loading: false});\n        alert('アカウント数は上限されてます');\n        return;\n      }\n\n      for (item of items) {\n        item.userGroup = \"USER\";\n        item.parentId = user.username;\n        await userService.createUser(item);\n      }\n      await this.fetchUsers();\n      window.alert(\"アップロードは完了しました\");\n    } catch (e) {\n      if (e.errors) {\n        window.alert(e.errors[0].message);\n      } else {\n        window.alert(e.message);\n      }\n    }\n    this.setState({ loading: false});\n  };\n\n  render() {\n    const {accountPermissions} = this.state;\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">ユーザ一覧</h1>\n            <div className=\"d-flex\">\n              <div className='btn btn-outline-primary mr-2 pointer'>\n                <label htmlFor=\"file\" style={{marginBottom: 0}}>\n                  ユーザアップロード\n                </label>\n                <input id=\"file\" accept=\"text/csv\" type='file' style={{display: 'none'}} onChange={(e) => {this.onUpload(e.target.files[0]); e.target.value = null;}} />\n              </div>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onUploadSample}>ユーザ・CSVサンプル</Button>\n              <Button variant=\"outline-primary mr-2\" onClick={this.onDownload}>ユーザダウンロード</Button>\n              {accountPermissions && accountPermissions.indexOf('NURSING') !== -1 && <Button variant=\"outline-primary mr-2\" onClick={this.onDownloadNursing}>きづっきー診断・ダウンロード</Button>}\n              <Button variant=\"primary\" onClick={this.onCreateClick}>新規制作</Button>\n            </div>\n          </ButtonToolbar>\n\n          <ListGroup className=\"mt-3\">\n            {this.state.items.map(item => (\n              <ListGroup.Item key={item.id} className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onEditClick(item)}>\n                  <div>{item.name} ({item.email})</div>\n                  <div>{commonService.formatDate(item.createdAt)}</div>\n              </ListGroup.Item>\n            ))}\n            {this.state.items.length === 0 && (\n              <ListGroup.Item>\n                何も見つかりませんでした\n              </ListGroup.Item>\n            )}\n          </ListGroup>\n        </SmallBgLoading>\n      </>\n    )\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {};\n}\n\nexport default connect(mapStateToProps)(UsersPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Alert, Button, ButtonToolbar, Form, Card, InputGroup, ListGroup, Badge, Nav } from \"react-bootstrap\";\nimport * as usersService from \"../../../../services/users\";\nimport { SmallBgLoading } from \"../../../../components/commons/SmallBgLoading\"\nimport { Auth } from 'aws-amplify';\nimport * as generator from \"generate-password\";\nimport * as commonService from \"../../../../services/common\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faAngleDown, faAngleUp } from \"@fortawesome/free-solid-svg-icons\";\nimport * as courseTestResultsService from \"../../../../services/course-test-results\";\nimport * as subtleTestResultsService from \"../../../../services/subtle-test-results\";\nimport * as contentsService from \"../../../../services/contents\";\nimport RadarChart from \"react-svg-radar-chart\";\nimport * as langService from \"../../../../services/lang\";\nimport * as nursingResultsService from \"../../../../services/nursing-results\";\nimport * as nursingResultsMiddleware from \"../../../../services/nursing/results\";\nimport * as csvService from \"../../../../services/csv\";\nimport * as accountService from \"../../../../services/account\";\nimport nursingCsv from \"../../../../services/nursing/csv\";\n\nclass UserPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      touched: false,\n      accountPermissions: null,\n      name: {\n        value: \"\",\n        touched: false\n      },\n      email: {\n        value: \"\",\n        touched: false\n      },\n      password: {\n        value: \"\",\n        touched: false\n      },\n      courseTestResults: [],\n      subtleTestResults: [],\n      nursingResults: [],\n      courseTestResultsOpenCourseId: null,\n      subtleTestResultsOpenCourseId: null,\n      nursingTestResultsOpenCourseId: null,\n      resultsSelectedIndex: 0,\n      subtleData: null,\n      error: null,\n      loading: false,\n      data: null\n    };\n  }\n\n  async componentWillMount() {\n    let userId = this.props.match.params.userId;\n    if (userId !== \"new\") {\n      this.setState({ loading: true });\n      try {\n        const account = await accountService.fetchAccount();\n        let accountPermissions = null\n        if (account.permissions) {\n          accountPermissions = JSON.parse(account.permissions);\n        }\n        let user = await usersService.fetchUser(userId);\n        let state = {\n          loading: false,\n          user,\n          email: { value: user.email, touched: false },\n          name: { value: user.name, touched: false }\n        };\n        let courseTestResultsResponse = await courseTestResultsService.fetchAllCoursesTestResults(userId);\n        let subtleTestResultsResponse = await subtleTestResultsService.fetchAllSubtleTestResults(userId);\n        let nursingResultsResponse = await nursingResultsService.fetchAllNursingResults(userId);\n\n        let courseTestResults = courseTestResultsResponse.items;\n        courseTestResults.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n\n        let subtleTestResults = subtleTestResultsResponse.items;\n        subtleTestResults.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n\n        let nursingResults = nursingResultsResponse.items;\n        nursingResults.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n\n        let content = await contentsService.fetchContent('SUBTLE');\n        if (content) {\n          content.settings = JSON.parse(content.settings);\n        }\n\n        let nursing = await contentsService.fetchContent('NURSING');\n        if (nursing) {\n          nursing.settings = JSON.parse(nursing.settings);\n        }\n\n        state.courseTestResults = courseTestResults;\n        state.subtleTestResults = subtleTestResults;\n        state.subtleData = content;\n        state.nursingResults = nursingResults;\n        state.nursingData = nursing;\n        state.accountPermissions = accountPermissions;\n\n        this.setState(state);\n      } catch (error) {\n        this.setState({ loading: false });\n        this.onError(error);\n      }\n    }\n  }\n\n  onCancelClick = () => {\n    this.props.history.push(\"/manager/\");\n  };\n\n  onDeleteClick = async () => {\n\n    this.setState({ error: null, loading: true });\n\n    try {\n      await usersService.deleteUser(this.state.user.id);\n      this.setState({ loading: false });\n      this.props.history.push(\"/manager/\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onDoneClick = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onSubmit = async (event) => {\n    const form = event.currentTarget;\n    event.preventDefault();\n    this.setState({ error: null });\n    if (form.checkValidity() === false) {\n      this.setState({ touched: true });\n      return;\n    }\n\n    this.setState({ loading: true });\n\n    try {\n      let user = await Auth.currentAuthenticatedUser();\n      if (this.state.user) {\n        await usersService.updateUser({ id: this.state.user.id, name: this.state.name.value, userGroup: \"USER\", password: this.state.password.value });\n      } else {\n        await usersService.createUser({\n          userGroup: \"USER\",\n          name: this.state.name.value,\n          email: this.state.email.value,\n          password: this.state.password.value,\n          parentId: user.username\n        });\n      }\n\n      this.setState({ loading: false });\n      this.props.history.push(\"/manager/\");\n    } catch (error) {\n      this.onError(error);\n    }\n\n  };\n\n  onAutoPasswordClick = () => {\n    let password = generator.generate({\n      length: 6,\n      uppercase: false\n    });\n\n    this.setState({ password: { value: password, touched: true } });\n  };\n\n  onError = (error) => {\n    if (error.errors) {\n      console.error(error.errors[0]);\n      this.setState({ loading: false, error: error.errors[0] });\n    } else {\n      console.error(error);\n      this.setState({ loading: false, error });\n    }\n  };\n\n  onCourseTestResultsClick = (item) => {\n    if (this.state.courseTestResultsOpenCourseId) {\n      if (this.state.courseTestResultsOpenCourseId === item.id) {\n        this.setState({ courseTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ courseTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ courseTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onSubtleTestResultsClick = (item) => {\n    if (this.state.subtleTestResultsOpenCourseId) {\n      if (this.state.subtleTestResultsOpenCourseId === item.id) {\n        this.setState({ subtleTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ subtleTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ subtleTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onNursingTestResultsClick = (item) => {\n    if (this.state.nursingTestResultsOpenCourseId) {\n      if (this.state.nursingTestResultsOpenCourseId === item.id) {\n        this.setState({ nursingTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ nursingTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ nursingTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  onNursingResultsDownload = async () => {\n    const { nursingResults } = this.state;\n    const csv = await nursingCsv({ nursingResults, parentCheck: true, newestOnly: true });\n    const userId = this.props.match.params.userId;\n    csvService.downloadCsv(csv, `nursing-test-results-${userId}-${new Date().toISOString()}.csv`);\n  };\n\n  isCorrect = (question, answers) => {\n    let array = answers.filter((answer) => answer.questionId === question.id);\n    if (array.length !== 1) { return false; }\n    return array[0].isCorrect;\n  };\n\n  formFieldRequiredValidation = (fieldName) => {\n    if (!this.state.touched && !this.state[fieldName].touched) {\n      return true;\n    }\n\n    return this.state[fieldName].value && this.state[fieldName].value.length > 0;\n  };\n\n  renderGeneral = () => {\n    let isNew = this.props.match.params.userId === \"new\";\n\n    return (\n      <>\n        <SmallBgLoading isLoading={this.state.loading}>\n          {this.state.error && (\n            <Alert variant=\"danger\" className=\"mt-4\">{this.state.error.message}</Alert>\n          )}\n\n\n          <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n            <h1 className=\"m-0\">ユーザー{isNew ? \"制作\" : \"編集\"}</h1>\n            <div>\n              <Button variant=\"primary\"\n                type=\"submit\"\n                className=\"mr-2\"\n                disabled={!(isNew || (!isNew && this.state.password.value))}\n                onClick={this.onDoneClick}>保存</Button>\n              <Button variant=\"outline-secondary\"\n                onClick={this.onCancelClick}>キャンセル</Button>\n            </div>\n          </ButtonToolbar>\n\n          <Form id=\"form\" className=\"mt-4\" onSubmit={this.onSubmit}>\n            <Form.Group>\n              <Form.Label>名前</Form.Label>\n              <Form.Control required\n                type=\"text\"\n                value={this.state.name.value}\n                onChange={(e) => this.setState({ name: { value: e.target.value, touched: true } })}\n                isInvalid={!this.formFieldRequiredValidation(\"name\")} />\n              <Form.Control.Feedback type=\"invalid\">\n                名前を入力してください\n              </Form.Control.Feedback>\n            </Form.Group>\n            <Form.Group>\n              <Form.Label>メールアドレス</Form.Label>\n              {!isNew && (<p className=\"font-weight-bold\">{this.state.email.value}</p>)}\n              {isNew && (\n                <>\n                  <Form.Control required\n                    type=\"email\"\n                    value={this.state.email.value}\n                    onChange={(e) => this.setState({ email: { value: e.target.value, touched: true } })}\n                    isInvalid={!this.formFieldRequiredValidation(\"email\")} />\n                  <Form.Control.Feedback type=\"invalid\">\n                    メールアドレスを入力してください\n                  </Form.Control.Feedback>\n                </>\n              )}\n            </Form.Group>\n            <Form.Group>\n              <Form.Label>{isNew ? \"パスワード\" : \"新規パスワード\"}</Form.Label>\n              <InputGroup>\n                <Form.Control required={isNew}\n                  type=\"text\"\n                  value={this.state.password.value}\n                  onChange={(e) => this.setState({ password: { value: e.target.value, touched: true } })}\n                  isInvalid={isNew && !this.formFieldRequiredValidation(\"password\")} />\n                <Form.Control.Feedback type=\"invalid\">\n                  {isNew ? \"パスワード\" : \"新規パスワード\"}を入力してください\n                </Form.Control.Feedback>\n                <InputGroup.Append>\n                  <Button variant=\"outline-primary\" onClick={this.onAutoPasswordClick}>自動制作</Button>\n                </InputGroup.Append>\n              </InputGroup>\n              <p className=\"text-secondary mt-2\">6桁以上の英数字を入力してください</p>\n            </Form.Group>\n          </Form>\n        </SmallBgLoading>\n        {!isNew && (\n          <Card className=\"mt-4 mb-4\">\n            <Card.Header variant=\"danger\" text=\"white\">注意アクション</Card.Header>\n            <Card.Body>\n              <Button variant=\"danger\" className=\"mt-2\" onClick={this.onDeleteClick}>ユーザーを削除する</Button>\n            </Card.Body>\n          </Card>\n        )}\n      </>\n    )\n  };\n\n  renderCourseTests = () => {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">コーステスト結果</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {this.state.courseTestResults.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }} onClick={() => this.onCourseTestResultsClick(item)}>\n              <div className=\"d-flex justify-content-between align-items-center\">\n                <div>\n                  {JSON.parse(item.course.title)[commonService.mainLanguage] + \" \"}\n                  <Badge variant=\"primary\">{Math.floor(100 / item.results.totalAnswers * item.results.correctAnswers)}点</Badge>\n                </div>\n                <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.courseTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n              </div>\n              {item.id === this.state.courseTestResultsOpenCourseId && (\n                <ListGroup className=\"mt-4\">\n                  {item.course.testQuestions.map((testQuestion) => (\n                    <ListGroup.Item key={testQuestion.id} variant={this.isCorrect(testQuestion, item.results.answers) ? \"success\" : \"danger\"}>\n                      {JSON.parse(testQuestion.title)[commonService.mainLanguage]}\n                    </ListGroup.Item>\n                  ))}\n                </ListGroup>\n              )}\n            </ListGroup.Item>\n          ))}\n          {this.state.courseTestResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  buildTotalCount = (results) => {\n    let totalCount = 0;\n    for (let i = 0; i < results.length; i++) {\n      if (i < 20) {\n        if (results[i].isCorrect) {\n          totalCount += 3;\n        }\n      } else {\n        if (results[i].isCorrect) {\n          totalCount += 4;\n        }\n      }\n    }\n\n    return totalCount;\n  };\n\n  buildSkills = (results) => {\n    let { subtleData } = this.state;\n    let skills = {\n      imagination: 0,\n      reaction: 0,\n      empathy: 0,\n      feeling: 0,\n      flexibility: 0,\n    };\n\n    for (let i = 0; i < results.length; i++) {\n      if (!results[i].isCorrect) {\n        continue;\n      }\n\n      let question = subtleData.settings.questions[i];\n      if (question.imagination && question.imagination.value === '1') {\n        skills.imagination += 1;\n      }\n      if (question.reaction && question.reaction.value === '1') {\n        skills.reaction += 1;\n      }\n      if (question.empathy && question.empathy.value === '1') {\n        skills.empathy += 1;\n      }\n      if (question.feeling && question.feeling.value === '1') {\n        skills.feeling += 1;\n      }\n      if (question.flexibility && question.flexibility.value === '1') {\n        skills.flexibility += 1;\n      }\n    }\n\n    return skills;\n\n  };\n\n  renderResultText = (data, points, title) => {\n\n    let index = data.findIndex(item => points >= item.min && points <= item.max);\n    if (index === -1) {\n      return null;\n    }\n\n    return (\n      <>\n        <h4 className=\"mb-4\">{langService.translate(data[index].title, this.props.currentLang)}</h4>\n        <h5 className=\"mb-4\">あなたの{title}は {points} 点です。</h5>\n        <div>{langService.translate(data[index].details, this.props.currentLang)}</div>\n      </>\n    )\n  };\n\n  renderSubtleResultsItem = (item) => {\n    const { resultsSelectedIndex } = this.state;\n    const totalCount = this.buildTotalCount(item.results);\n    const skills = this.buildSkills(item.results);\n\n    const radarData = [\n      {\n        data: {\n          imagination: skills.imagination / 12,\n          reaction: skills.reaction / 12,\n          empathy: skills.empathy / 12,\n          feeling: skills.feeling / 12,\n          flexibility: skills.flexibility / 12,\n        },\n        meta: { color: 'blue' }\n      },\n    ];\n\n    const captions = {\n      imagination: langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang),\n      reaction: langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang),\n      empathy: langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang),\n      feeling: langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang),\n      flexibility: langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang),\n    };\n\n    const texts = {\n      imagination: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            jp2: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            en: \"Your ability to imagine and be proactive is not enough. Please be careful not to misunderstand and cause problems between you and your co-workers and clients.\",\n            vn: \"Không đủ khả năng để tưởng tượng tình huống.Việc thiếu trí tưởng tượng,có thể dẫn đến cách nhìn sai lệch và thiếu thiện cảm từ những người xung quanh nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            jp2: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            en: \"If you improve the ability to imagine the situation more, you will become a proactive business person.  \",\n            vn: \"Bằng cách mở rộng khả năng tưởng tượng tình huống thêm một chút, bạn sẽ có thể có được sức mạnh để tiến lên phía trước một bước.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            jp2: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            en: \"Your ability to imagine and be proactive is excellent. Please keep your ability and be an attentive business person.\",\n            vn: \"Đủ năng lực tưởng tượng để có thể nắm bắt toàn bộ tình hình đầy đủ và chính xác. Sử dụng khả năng tưởng tượng của mình để mang lại cho đối phương những giá trị và lòng tốt một cách lịch sự .\"\n          }\n        },\n      ],\n      reaction: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            jp2: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Năng lực phản ứng không đủ. Trong giao tiếp trương tác giữa người với người nó có thể là nguyên nhân gây ra sự hiểu nhầm từ phía đối phương nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            jp2: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Bằng việc tăng năng lực phản ứng của bản thân thêm 1 bước nữa thì đối phương sẽ có ấn tượng với bạn tốt đẹp hơn. Không chỉ về mặt ngôn ngữ, mà chúng ta hãy sử dụng thêm các hành động bổ trợ phi ngôn ngữ như là sự hưởng ứng, thủ thỉ, nét mặt tươi cười, giao tiếp bằng mắt.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            jp2: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            en: \"Your ability to react is excellent. Please feel, understand and react. Let's combine with the other abilities in various situations. \",\n            vn: \"Có đủ năng lực phản ứng. Hãy cảm nhận, quan sát, trong khi đó hãy nghĩ xem nên phản ứng thế nào, hãy sử dụng thêm sức mạnh khác nữa để phát huy năng lực phản ứng.\"\n          }\n        },\n      ],\n      empathy: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            jp2: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            en: \"Your ability to empathize is not enough. Please cultivate the ability to empathize because it is very important in terms of emotional communication skills.\",\n            vn: \"Không đủ sự đồng cảm để có cùng cảm nhận và suy nghĩ với đối phương. Vì nó là một loại năng lực rất quan trọng trong giao tiếp bằng cảm xúc nên cẩn trau dồi bằng cách luyện tập.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            jp2: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            en: \"If you improve your ability to empathize more, you will become a reliable business person and can close the distance between you and others.\",\n            vn: \"Bằng cách nâng cao năng lực đồng cảm thêm một bậc nữa thì sẽ có sự thay đổi to lớn rằng bạn sẽ mang lại cho  đối phương cảm giác đáng tin tưởng, và sẽ cởi mở với bạn hơn.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            jp2: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            en: \"Your ability to empathize is excellent. When you communicate with others on business, your ability to empathize will help yourself close the distance between you and others and build your network.\",\n            vn: \"Có đủ sự đồng cảm. Trong hành động mọi người có thể nương tựa vào nhau, hòa đồng với nhau, vì vậy hãy vừa phát huy năng lực đồng cảm và mở lòng thêm nữa.\"\n          }\n        },\n      ],\n      feeling: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            jp2: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            en: \"Your ability to feel and understand is not enough. Please imagine how others feel and think. To make it a habit to put yourself in other's shoes is very important.\",\n            vn: \"Không đủ năng lực phán đoán cảm xúc của người khác. Hãy luôn có thói quen nghĩ về việc đối phương bây giờ đang cảm thấy gì, nghĩ gì, suy ngẫm về điều gì.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            jp2: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            en: \"If you cultivate your ability to feel and understand more, you can know the other's suffering, joy and sadness. Human feelings can't be simulated, but can be felt and understood.\",\n            vn: \"Bằng cách nâng cao năng lực phán đoán cảm xúc một bước nữa thì bạn có khả năng cảm nhận chính xác nỗi đau, niềm hạnh phúc, sự đau buồn trong tinh thần của đối phương. Vì cảm xúc của con người là không thể tính toán được nên hãy cố gắng hết sức để nắm bắt được nó.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            jp2: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            en: \"Your ability to feel and understand is excellent. In terms of leadership and management, to feel with your five senses will help yourself greatly. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng lực phán đoán cảm xúc. Ứng với từng đối tượng, việc vừa sử dụng năm giác quan vừa phán đoán cảm xúc thì chắc chắn sẽ giúp ích rất nhiều cho bạn vào việc quản lí và lãnh đạo.\"\n          }\n        },\n      ],\n      flexibility: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            jp2: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            en: \"Your ability to be flexible is not enough. If you are not flexible, it will cause some serious problems in terms of business communication. Please try to accept the other's advice and feedback at first.\",\n            vn: \"Không đủ tính linh hoạt. Các khái niệm cố định và các giá trị cứng nhắc đôi khi sẽ dẫn đến những vấn đề nghiêm trọng trong giao tiếp như là hiểu nhầm hay ganh ghét. Vì vậy, đầu tiên hãy tiếp nhận đối phương và môi trường xung quanh sau đó hãy bắt đầu.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            jp2: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            en: \"If you cultivate your ability to be flexible more, your communication skills will be improved because you can accept various values, cultures and ideas.\",\n            vn: \"Hi vọng là hãy tăng thêm tính linh hoạt một bước nữa. Việc tăng tính linh hoạt không hề phá hủy phong cách của bạn, trái lại, nó phát triển phong cách của bạn vì bạn có thể chuyển sang việc tiếp thu những tư tưởng văn hóa, giá trị quan hay những suy nghĩ khác nhau.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            jp2: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            en: \"Your ability to be flexible is excellent. From the viewpoint of others, you will make communication go smoothly and encourage collaboration among your team. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng tính linh hoạt. Tính linh hoạt của bạn là do nhìn từ phía đối phương, do đó không chỉ tạo điều kiện cho việc giao tiếp suôn sẻ, mà còn giúp bạn nuôi dưỡng được không gian tự do cá nhân. Vì vậy, hãy giữ cho bạn luôn luôn linh hoạt và cải thiện hơn nữa.\"\n          }\n        },\n      ],\n    };\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }}>\n        <div className=\"d-flex justify-content-between align-items-center\" onClick={() => this.onSubtleTestResultsClick(item)}>\n          <div>\n            <Badge variant=\"primary\">{totalCount}点</Badge>\n          </div>\n          <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.subtleTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n        </div>\n        {item.id === this.state.subtleTestResultsOpenCourseId && (\n          <ListGroup className=\"mt-4\">\n            <div className=\"py-5 subtle-test-results\">\n              <div className=\"header\">\n                <h3>{langService.translate('subtle-results-title-0', this.props.currentLang)}</h3>\n                <h3 className=\"points\">\n                  <div>{langService.translate('subtle-results-title-1', this.props.currentLang)}</div>\n                  <div>{langService.translate('subtle-results-title-2', this.props.currentLang, [totalCount])}</div>\n                </h3>\n              </div>\n              <div className=\"content subtle-results-content\">\n                {/*<div className=\"row\">*/}\n                <div className=\"radar\">\n                  <RadarChart\n                    captions={captions}\n                    data={radarData}\n\n                  />\n                </div>\n                <div className=\"tabs\">\n                  <Nav variant=\"pills\">\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 0 })} active={resultsSelectedIndex === 0}>状況想像力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 1 })} active={resultsSelectedIndex === 1}>リアクション力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 2 })} active={resultsSelectedIndex === 2}>共感力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 3 })} active={resultsSelectedIndex === 3}>気持ち察し力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 4 })} active={resultsSelectedIndex === 4}>柔軟性</Nav.Link>\n                    </Nav.Item>\n                  </Nav>\n                  <div className=\"tabs-content\">\n                    {resultsSelectedIndex === 0 && (this.renderResultText(texts['imagination'], skills.imagination, '状況想像力'))}\n                    {resultsSelectedIndex === 1 && (this.renderResultText(texts['reaction'], skills.reaction, 'リアクション力'))}\n                    {resultsSelectedIndex === 2 && (this.renderResultText(texts['empathy'], skills.empathy, '共感力'))}\n                    {resultsSelectedIndex === 3 && (this.renderResultText(texts['feeling'], skills.feeling, '気持ち察し力'))}\n                    {resultsSelectedIndex === 4 && (this.renderResultText(texts['flexibility'], skills.flexibility, '柔軟性'))}\n                  </div>\n                </div>\n                {/*</div>*/}\n              </div>\n            </div>\n          </ListGroup>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  renderSubtleTest = () => {\n    const { subtleTestResults } = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">機微力診断結果</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {subtleTestResults.map(item => this.renderSubtleResultsItem(item))}\n          {subtleTestResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  renderNursingResultsItem = (item) => {\n\n    const nickname = item.user && item.user.name ? item.user.name : null;\n    const {\n      textType,\n      typeImage,\n      textTypeLong,\n      textBubble,\n      textBanner,\n      textBannerText,\n      totalPositiveStroke,\n      totalNegativeStroke,\n      totalDiscount,\n    } = nursingResultsMiddleware.buildResult({ results: item.results && item.results.items ? item.results.items : [], id: item.id, isFree: false, nickname })\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }}>\n        <div className=\"d-flex justify-content-between align-items-center\" onClick={() => this.onNursingTestResultsClick(item)}>\n          <div className=\"d-flex flex-row justify-content-start align-items-center\">\n            <div className=\"mr-2\">{textType}</div>\n            {/*<div><Badge variant=\"primary\">正:{totalPositiveStroke}点</Badge></div>*/}\n            {/*<div className=\"ml-2\"><Badge variant=\"primary\">負:{totalNegativeStroke}点</Badge></div>*/}\n            {/*<div className=\"ml-2\"><Badge variant=\"primary\">D:{totalDiscount}点</Badge></div>*/}\n          </div>\n          <div>{commonService.formatDate(item.createdAt)}  <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.nursingTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n        </div>\n        {item.id === this.state.nursingTestResultsOpenCourseId && (\n          <ListGroup className=\"mt-4\">\n            <div className=\"nursing-results__container\">\n              <div className=\"nursing-results__container__name\">{nickname}さんは…</div>\n              <div className=\"nursing-results__container__type-container\">\n                <div className=\"nursing-results__container__type-container__title\">{textTypeLong}</div>\n                <div className=\"nursing-results__container__type-container__image-container\">\n                  <img src={`/images/nursing/types/${typeImage}.png`}\n                    width={200}\n                    height={200}\n                  />\n                  <div className=\"nursing-results__container__type-container__image-container__bubble\">\n                    <div className=\"nursing-results__container__type-container__image-container__bubble__arrow\" />{textBubble}\n                  </div>\n                </div>\n              </div>\n              <div className=\"nursing-results__container__banner\">{textBanner}</div>\n              <div className=\"nursing-results__container__text\">{textBannerText}</div>\n            </div>\n          </ListGroup>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  renderNursingTest = () => {\n    const { nursingResults } = this.state;\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">きづっきー診断結果</h1>\n          <Button onClick={this.onNursingResultsDownload}>ダウンロード</Button>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {nursingResults.map(item => this.renderNursingResultsItem(item))}\n          {nursingResults.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  };\n\n  render() {\n    const { user, accountPermissions } = this.state;\n\n    let isNew = this.props.match.params.userId === \"new\";\n\n    return (\n      <>\n        {this.renderGeneral()}\n        {user && !isNew && accountPermissions && accountPermissions.indexOf('COURSE') !== -1 && this.renderCourseTests()}\n        {user && !isNew && accountPermissions && accountPermissions.indexOf('SUBTLE') !== -1 && this.renderSubtleTest()}\n        {user && !isNew && accountPermissions && accountPermissions.indexOf('NURSING') !== -1 && this.renderNursingTest()}\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(UserPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Badge, Button, ButtonToolbar, ListGroup} from \"react-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport {Auth} from \"aws-amplify\";\nimport * as accountService from \"../../../services/account\";\nimport * as courseTestResultsService from \"../../../services/course-test-results\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faAngleDown, faAngleUp} from \"@fortawesome/free-solid-svg-icons\";\n\nclass CoursesResultsPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n      selectedId: null,\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchData();\n  }\n\n  fetchData = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let user = await Auth.currentAuthenticatedUser();\n      const account = await accountService.fetchAccount();\n      let response = await courseTestResultsService.fetchAdminCoursesTestResults();\n      let items = [];\n      if (response.items) {\n        items = response.items.filter(item => item.user && item.user.parentId === user.username);\n        items.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n        items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      }\n      this.setState({ items: items, account: account, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  isCorrect = (question, answers) => {\n    let array = answers.filter((answer) => answer.questionId === question.id);\n    if (array.length !== 1) { return false; }\n    return array[0].isCorrect;\n  };\n\n  onViewClick = (item) => {\n    if (this.state.selectedId) {\n      if (this.state.selectedId === item.id) {\n        this.setState({ selectedId: null })\n      } else {\n        this.setState({ selectedId: item.id })\n      }\n    } else {\n      this.setState({ selectedId: item.id })\n    }\n  };\n\n  render() {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">コーステスト結果一覧</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {this.state.items.map(item => (\n            <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{flexDirection: \"column\"}} onClick={() => this.onViewClick(item)}>\n              <div className=\"d-flex justify-content-between align-items-center\">\n                <div>\n                  {item.user.name + \": \"}\n                  {JSON.parse(item.course.title)[commonService.mainLanguage] + \" \"}\n                  <Badge variant=\"primary\">{Math.floor(100 / item.results.totalAnswers * item.results.correctAnswers)}点</Badge>\n                </div>\n                <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.selectedId ? faAngleUp :faAngleDown} /></div>\n              </div>\n              {item.id === this.state.selectedId && (\n                <ListGroup className=\"mt-4\">\n                  {item.course.testQuestions.map((testQuestion) => (\n                    <ListGroup.Item key={testQuestion.id} variant={this.isCorrect(testQuestion, item.results.answers) ? \"success\" : \"danger\"}>\n                      {JSON.parse(testQuestion.title)[commonService.mainLanguage]}\n                    </ListGroup.Item>\n                  ))}\n                </ListGroup>\n              )}\n            </ListGroup.Item>\n          ))}\n          {this.state.items.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    )\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(CoursesResultsPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Badge, Button, ButtonToolbar, ListGroup, Nav } from \"react-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport { Auth } from \"aws-amplify\";\nimport * as accountService from \"../../../services/account\";\nimport * as subtleTestResultsService from \"../../../services/subtle-test-results\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faAngleDown, faAngleUp } from \"@fortawesome/free-solid-svg-icons\";\nimport * as contentsService from \"../../../services/contents\";\nimport * as langService from \"../../../services/lang\";\nimport RadarChart from \"react-svg-radar-chart\";\n\nclass SubtleResultsPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      loading: true,\n      error: null,\n      items: [],\n      subtleTestResultsOpenCourseId: null,\n      resultsSelectedIndex: 0,\n    };\n  }\n\n  async componentWillMount() {\n    await this.fetchData();\n  }\n\n  fetchData = async () => {\n    this.setState({ loading: true, error: null });\n    try {\n      let user = await Auth.currentAuthenticatedUser();\n      const account = await accountService.fetchAccount();\n      let response = await subtleTestResultsService.fetchAdminSubtleTestResults();\n      let items = [];\n      if (response.items) {\n        items = response.items.filter(item => item.user && item.user.parentId === user.username);\n        items.forEach((item) => {\n          item.results = JSON.parse(item.results);\n        });\n        items = items.sort((a, b) => new Date(b.createdAt) - new Date(a.createdAt));\n      }\n      let content = await contentsService.fetchContent('SUBTLE');\n      if (content) {\n        content.settings = JSON.parse(content.settings);\n      }\n      this.setState({ items: items, account: account, subtleData: content, loading: false });\n    } catch (e) {\n      console.error(e);\n      this.setState({ loading: true, error: e });\n    }\n  };\n\n  onViewClick = (item) => {\n    if (this.state.subtleTestResultsOpenCourseId) {\n      if (this.state.subtleTestResultsOpenCourseId === item.id) {\n        this.setState({ subtleTestResultsOpenCourseId: null })\n      } else {\n        this.setState({ subtleTestResultsOpenCourseId: item.id })\n      }\n    } else {\n      this.setState({ subtleTestResultsOpenCourseId: item.id })\n    }\n  };\n\n  buildTotalCount = (results) => {\n    let totalCount = 0;\n    for (let i = 0; i < results.length; i++) {\n      if (i < 20) {\n        if (results[i].isCorrect) {\n          totalCount += 3;\n        }\n      } else {\n        if (results[i].isCorrect) {\n          totalCount += 4;\n        }\n      }\n    }\n\n    return totalCount;\n  };\n\n  buildSkills = (results) => {\n    let { subtleData } = this.state;\n    let skills = {\n      imagination: 0,\n      reaction: 0,\n      empathy: 0,\n      feeling: 0,\n      flexibility: 0,\n    };\n\n    for (let i = 0; i < results.length; i++) {\n      if (!results[i].isCorrect) {\n        continue;\n      }\n\n      let question = subtleData.settings.questions[i];\n      if (question.imagination && question.imagination.value === '1') {\n        skills.imagination += 1;\n      }\n      if (question.reaction && question.reaction.value === '1') {\n        skills.reaction += 1;\n      }\n      if (question.empathy && question.empathy.value === '1') {\n        skills.empathy += 1;\n      }\n      if (question.feeling && question.feeling.value === '1') {\n        skills.feeling += 1;\n      }\n      if (question.flexibility && question.flexibility.value === '1') {\n        skills.flexibility += 1;\n      }\n    }\n\n    return skills;\n\n  };\n\n  renderResultText = (data, points, title) => {\n\n    let index = data.findIndex(item => points >= item.min && points <= item.max);\n    if (index === -1) {\n      return null;\n    }\n\n    return (\n      <>\n        <h4 className=\"mb-4\">{langService.translate(data[index].title, this.props.currentLang)}</h4>\n        <h5 className=\"mb-4\">あなたの{title}は {points} 点です。</h5>\n        <div>{langService.translate(data[index].details, this.props.currentLang)}</div>\n      </>\n    )\n  };\n\n  renderSubtleResultsItem = (item) => {\n    const { resultsSelectedIndex } = this.state;\n    const totalCount = this.buildTotalCount(item.results);\n    const skills = this.buildSkills(item.results);\n\n    const radarData = [\n      {\n        data: {\n          imagination: skills.imagination / 12,\n          reaction: skills.reaction / 12,\n          empathy: skills.empathy / 12,\n          feeling: skills.feeling / 12,\n          flexibility: skills.flexibility / 12,\n        },\n        meta: { color: 'blue' }\n      },\n    ];\n\n    const captions = {\n      imagination: langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang),\n      reaction: langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang),\n      empathy: langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang),\n      feeling: langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang),\n      flexibility: langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang),\n    };\n\n    const texts = {\n      imagination: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            jp2: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            en: \"Your ability to imagine and be proactive is not enough. Please be careful not to misunderstand and cause problems between you and your co-workers and clients.\",\n            vn: \"Không đủ khả năng để tưởng tượng tình huống.Việc thiếu trí tưởng tượng,có thể dẫn đến cách nhìn sai lệch và thiếu thiện cảm từ những người xung quanh nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            jp2: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            en: \"If you improve the ability to imagine the situation more, you will become a proactive business person.  \",\n            vn: \"Bằng cách mở rộng khả năng tưởng tượng tình huống thêm một chút, bạn sẽ có thể có được sức mạnh để tiến lên phía trước một bước.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            jp2: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            en: \"Your ability to imagine and be proactive is excellent. Please keep your ability and be an attentive business person.\",\n            vn: \"Đủ năng lực tưởng tượng để có thể nắm bắt toàn bộ tình hình đầy đủ và chính xác. Sử dụng khả năng tưởng tượng của mình để mang lại cho đối phương những giá trị và lòng tốt một cách lịch sự .\"\n          }\n        },\n      ],\n      reaction: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            jp2: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Năng lực phản ứng không đủ. Trong giao tiếp trương tác giữa người với người nó có thể là nguyên nhân gây ra sự hiểu nhầm từ phía đối phương nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            jp2: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Bằng việc tăng năng lực phản ứng của bản thân thêm 1 bước nữa thì đối phương sẽ có ấn tượng với bạn tốt đẹp hơn. Không chỉ về mặt ngôn ngữ, mà chúng ta hãy sử dụng thêm các hành động bổ trợ phi ngôn ngữ như là sự hưởng ứng, thủ thỉ, nét mặt tươi cười, giao tiếp bằng mắt.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            jp2: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            en: \"Your ability to react is excellent. Please feel, understand and react. Let's combine with the other abilities in various situations. \",\n            vn: \"Có đủ năng lực phản ứng. Hãy cảm nhận, quan sát, trong khi đó hãy nghĩ xem nên phản ứng thế nào, hãy sử dụng thêm sức mạnh khác nữa để phát huy năng lực phản ứng.\"\n          }\n        },\n      ],\n      empathy: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            jp2: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            en: \"Your ability to empathize is not enough. Please cultivate the ability to empathize because it is very important in terms of emotional communication skills.\",\n            vn: \"Không đủ sự đồng cảm để có cùng cảm nhận và suy nghĩ với đối phương. Vì nó là một loại năng lực rất quan trọng trong giao tiếp bằng cảm xúc nên cẩn trau dồi bằng cách luyện tập.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            jp2: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            en: \"If you improve your ability to empathize more, you will become a reliable business person and can close the distance between you and others.\",\n            vn: \"Bằng cách nâng cao năng lực đồng cảm thêm một bậc nữa thì sẽ có sự thay đổi to lớn rằng bạn sẽ mang lại cho  đối phương cảm giác đáng tin tưởng, và sẽ cởi mở với bạn hơn.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            jp2: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            en: \"Your ability to empathize is excellent. When you communicate with others on business, your ability to empathize will help yourself close the distance between you and others and build your network.\",\n            vn: \"Có đủ sự đồng cảm. Trong hành động mọi người có thể nương tựa vào nhau, hòa đồng với nhau, vì vậy hãy vừa phát huy năng lực đồng cảm và mở lòng thêm nữa.\"\n          }\n        },\n      ],\n      feeling: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            jp2: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            en: \"Your ability to feel and understand is not enough. Please imagine how others feel and think. To make it a habit to put yourself in other's shoes is very important.\",\n            vn: \"Không đủ năng lực phán đoán cảm xúc của người khác. Hãy luôn có thói quen nghĩ về việc đối phương bây giờ đang cảm thấy gì, nghĩ gì, suy ngẫm về điều gì.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            jp2: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            en: \"If you cultivate your ability to feel and understand more, you can know the other's suffering, joy and sadness. Human feelings can't be simulated, but can be felt and understood.\",\n            vn: \"Bằng cách nâng cao năng lực phán đoán cảm xúc một bước nữa thì bạn có khả năng cảm nhận chính xác nỗi đau, niềm hạnh phúc, sự đau buồn trong tinh thần của đối phương. Vì cảm xúc của con người là không thể tính toán được nên hãy cố gắng hết sức để nắm bắt được nó.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            jp2: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            en: \"Your ability to feel and understand is excellent. In terms of leadership and management, to feel with your five senses will help yourself greatly. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng lực phán đoán cảm xúc. Ứng với từng đối tượng, việc vừa sử dụng năm giác quan vừa phán đoán cảm xúc thì chắc chắn sẽ giúp ích rất nhiều cho bạn vào việc quản lí và lãnh đạo.\"\n          }\n        },\n      ],\n      flexibility: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            jp2: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            en: \"Your ability to be flexible is not enough. If you are not flexible, it will cause some serious problems in terms of business communication. Please try to accept the other's advice and feedback at first.\",\n            vn: \"Không đủ tính linh hoạt. Các khái niệm cố định và các giá trị cứng nhắc đôi khi sẽ dẫn đến những vấn đề nghiêm trọng trong giao tiếp như là hiểu nhầm hay ganh ghét. Vì vậy, đầu tiên hãy tiếp nhận đối phương và môi trường xung quanh sau đó hãy bắt đầu.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            jp2: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            en: \"If you cultivate your ability to be flexible more, your communication skills will be improved because you can accept various values, cultures and ideas.\",\n            vn: \"Hi vọng là hãy tăng thêm tính linh hoạt một bước nữa. Việc tăng tính linh hoạt không hề phá hủy phong cách của bạn, trái lại, nó phát triển phong cách của bạn vì bạn có thể chuyển sang việc tiếp thu những tư tưởng văn hóa, giá trị quan hay những suy nghĩ khác nhau.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            jp2: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            en: \"Your ability to be flexible is excellent. From the viewpoint of others, you will make communication go smoothly and encourage collaboration among your team. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng tính linh hoạt. Tính linh hoạt của bạn là do nhìn từ phía đối phương, do đó không chỉ tạo điều kiện cho việc giao tiếp suôn sẻ, mà còn giúp bạn nuôi dưỡng được không gian tự do cá nhân. Vì vậy, hãy giữ cho bạn luôn luôn linh hoạt và cải thiện hơn nữa.\"\n          }\n        },\n      ],\n    };\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex pointer\" style={{ flexDirection: \"column\" }}>\n        <div className=\"d-flex justify-content-between align-items-center\" onClick={() => this.onViewClick(item)}>\n          <div>\n            {item.user.name + \" \"}\n            <Badge variant=\"primary\">{totalCount}点</Badge>\n          </div>\n          <div>{commonService.formatDate(item.createdAt)} <FontAwesomeIcon className=\"text-secondary ml-2\" icon={item.id === this.state.subtleTestResultsOpenCourseId ? faAngleUp : faAngleDown} /></div>\n        </div>\n        {item.id === this.state.subtleTestResultsOpenCourseId && (\n          <ListGroup className=\"mt-4\">\n            <div className=\"py-5 subtle-test-results\">\n              <div className=\"header\">\n                <h3>{langService.translate('subtle-results-title-0', this.props.currentLang)}</h3>\n                <h3 className=\"points\">\n                  <div>{langService.translate('subtle-results-title-1', this.props.currentLang)}</div>\n                  <div>{langService.translate('subtle-results-title-2', this.props.currentLang, [totalCount])}</div>\n                </h3>\n              </div>\n              <div className=\"content subtle-results-content\">\n                {/*<div className=\"row\">*/}\n                <div className=\"radar\">\n                  <RadarChart\n                    captions={captions}\n                    data={radarData}\n\n                  />\n                </div>\n                <div className=\"tabs\">\n                  <Nav variant=\"pills\">\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 0 })} active={resultsSelectedIndex === 0}>状況想像力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 1 })} active={resultsSelectedIndex === 1}>リアクション力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 2 })} active={resultsSelectedIndex === 2}>共感力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 3 })} active={resultsSelectedIndex === 3}>気持ち察し力</Nav.Link>\n                    </Nav.Item>\n                    <Nav.Item>\n                      <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 4 })} active={resultsSelectedIndex === 4}>柔軟性</Nav.Link>\n                    </Nav.Item>\n                  </Nav>\n                  <div className=\"tabs-content\">\n                    {resultsSelectedIndex === 0 && (this.renderResultText(texts['imagination'], skills.imagination, '状況想像力'))}\n                    {resultsSelectedIndex === 1 && (this.renderResultText(texts['reaction'], skills.reaction, 'リアクション力'))}\n                    {resultsSelectedIndex === 2 && (this.renderResultText(texts['empathy'], skills.empathy, '共感力'))}\n                    {resultsSelectedIndex === 3 && (this.renderResultText(texts['feeling'], skills.feeling, '気持ち察し力'))}\n                    {resultsSelectedIndex === 4 && (this.renderResultText(texts['flexibility'], skills.flexibility, '柔軟性'))}\n                  </div>\n                </div>\n                {/*</div>*/}\n              </div>\n            </div>\n          </ListGroup>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\">\n          <h1 className=\"m-0\">機微力診断</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {this.state.items.map(item => this.renderSubtleResultsItem(item))}\n          {this.state.items.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    )\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(SubtleResultsPage);\n","import React, { Component } from \"react\";\nimport {connect} from \"react-redux\";\nimport {Auth} from \"aws-amplify\";\nimport * as rootActions from \"../../../store/root/actions\";\nimport {Badge, ButtonToolbar, Container, ListGroup} from \"react-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport {FontAwesomeIcon} from \"@fortawesome/react-fontawesome\";\nimport {faAngleDown, faAngleUp} from \"@fortawesome/free-solid-svg-icons\";\nimport MainHeader from \"../../../components/commons/MainHeader\";\n\nclass NotificationsPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      user: null,\n      groups: [],\n      selectedIds: [],\n    };\n  }\n\n  componentDidMount() {\n    this.fetchData();\n  }\n\n  fetchData = async () => {\n    const user = await Auth.currentAuthenticatedUser();\n    let session = await Auth.currentSession();\n    let groups = session.idToken.payload[\"cognito:groups\"];\n\n    this.setState({ user, groups });\n\n    this.props.dispatch(rootActions.fetchNotifications());\n  };\n\n  onViewClick = (item) => {\n    let notificationsReaded = [...this.props.notificationsReaded];\n    let selectedIds = [...this.state.selectedIds];\n    let index = selectedIds.indexOf(item.id);\n\n    if (index === -1) {\n      if (notificationsReaded.indexOf(item.id) === -1) {\n        notificationsReaded.push(item.id);\n        this.props.dispatch(rootActions.updateReadNotifications(notificationsReaded));\n      }\n      selectedIds.push(item.id);\n    } else {\n      selectedIds.splice(index, 1);\n    }\n    this.setState({selectedIds});\n  };\n\n  renderItem = (item) => {\n    const {selectedIds} = this.state;\n    const {notificationsReaded} = this.props;\n\n    return (\n      <ListGroup.Item key={item.id} className=\"d-flex flex-column\">\n        <div className=\"d-flex justify-content-between align-items-center pointer\" onClick={() => this.onViewClick(item)}>\n          <div className=\"d-flex flex-row justify-content-start align-items-center\">\n            {notificationsReaded.indexOf(item.id) === -1 && <Badge variant=\"danger\" style={{marginRight: 8}}>NEW</Badge>}\n            <div>{item.title}</div>\n          </div>\n          <div>\n            {commonService.formatDate(item.createdAt)}\n            <FontAwesomeIcon className=\"text-secondary ml-2\" icon={selectedIds.indexOf(item.id) !== -1 ? faAngleUp : faAngleDown} />\n          </div>\n        </div>\n        {selectedIds.indexOf(item.id) !== -1 && (\n          <div className=\"mt-2\">\n            {item.description}\n          </div>\n        )}\n      </ListGroup.Item>\n    );\n  };\n\n  render() {\n    const {notificationsList} = this.props;\n    const {user, groups} = this.state;\n\n    let notifications = notificationsList.filter(item => {\n      if (item.userGroup) {\n        return groups.indexOf(item.userGroup.toLowerCase()) !== -1;\n      } else {\n        return item.userId === user.getUsername();\n      }\n    });\n\n    return (\n      <>\n        <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\" >\n          <h1 className=\"m-0\">お知らせ</h1>\n        </ButtonToolbar>\n\n        <ListGroup className=\"mt-3\">\n          {notifications.map(item => this.renderItem(item))}\n          {notifications.length === 0 && (\n            <ListGroup.Item>\n              何も見つかりませんでした\n            </ListGroup.Item>\n          )}\n        </ListGroup>\n      </>\n    );\n  }\n}\n\n\nfunction mapStateToProps(state) {\n  return {\n    notificationsObject: state.root.notifications,\n    notificationsList: state.root.notifications.list,\n    notificationsReaded: state.root.notifications.readed,\n  };\n}\n\nexport default connect(mapStateToProps)(NotificationsPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Button, ButtonToolbar} from \"react-bootstrap\";\n\nclass ManualPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {};\n  }\n\n  onDownload = () => {\n    window.open(\"https://kibi-prod-uploads.s3-ap-northeast-1.amazonaws.com/public/manual/manual.pdf\", \"_blank\")\n  }\n\n  render() {\n    return (\n      <ButtonToolbar className=\"mt-4 justify-content-between align-items-center\" >\n        <h1 className=\"m-0\">管理者マニュアル</h1>\n        <div>\n          <Button variant=\"primary\"\n                  onClick={this.onDownload}>ダウンロード</Button>\n        </div>\n      </ButtonToolbar>\n    )\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(ManualPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Auth } from 'aws-amplify';\nimport { Route, Switch, Redirect } from \"react-router-dom\";\nimport {Badge, Container, Nav, Navbar, NavDropdown, Button} from \"react-bootstrap\";\nimport {LinkContainer} from \"react-router-bootstrap\";\n\nimport UsersPage from \"./Users/index\";\nimport UserPage from \"./Users/User/index\";\nimport CourseResultsPage from \"./CourseResults/index\";\nimport SubtleResultsPage from \"./SubtleResults/index\";\nimport NotificationsPage from \"./Notifications/index\";\nimport ManualPage from \"./Manual/index\";\nimport * as rootActions from \"../../store/root/actions\";\nimport * as accountService from \"../../services/account\";\nimport * as langService from \"../../services/lang\";\nimport {TermsModal} from \"../../components/modals/TermsModal\";\nimport {PolicyModal} from \"../../components/modals/PolicyModal\";\nimport Intercom from 'react-intercom';\n\nimport Div100vh from \"react-div-100vh\";\n\nclass ManagerPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      account: null,\n      user: null,\n      groups: [],\n      accountPermissions: null,\n      isLogout: false,\n      isShowTermsModal: false,\n      isShowPolicyModal: false,\n    };\n  }\n\n  async componentDidMount() {\n    this._isMounted = true;\n\n    await this.fetchAccount();\n    this.props.dispatch(rootActions.fetchNotifications());\n  }\n\n  componentWillUnmount() {\n    this._isMounted = false;\n  }\n\n  fetchAccount = async () => {\n    try {\n      const user = await Auth.currentAuthenticatedUser();\n      const account = await accountService.fetchAccount();\n      let accountPermissions = null\n      if (account.permissions) {\n        accountPermissions = JSON.parse(account.permissions);\n      }\n      let session = await Auth.currentSession();\n      let groups = session.idToken.payload[\"cognito:groups\"];\n\n      if (this._isMounted) {\n        this.setState({ user, account, groups, accountPermissions });\n      }\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  async onLogout() {\n\n    try {\n      await Auth.signOut();\n      this.setState({ isLogout: true });\n      this.props.history.push('/login');\n    } catch (e) {\n      console.error(e);\n    }\n\n  }\n\n  renderDisabled = (intercomUser) => {\n    return (\n      <Div100vh className=\"d-flex justify-content-center align-items-center flex-column text-center\">\n        <div>アカウントは停止されています。</div>\n        <Button variant=\"primary\" className=\"mt-3\" onClick={this.onLogout.bind(this)}>ログアウトする</Button>\n        {intercomUser && <Intercom appID={process.env.REACT_APP_INTERCOM_API_KEY} { ...intercomUser }/>}\n      </Div100vh>\n    );\n  };\n\n  render() {\n    let { match, notificationsList, notificationsReaded } = this.props;\n    const {account, accountPermissions, user, groups} = this.state;\n\n    let notifications = notificationsList.filter(item => {\n      if (item.userGroup) {\n        return groups.indexOf(item.userGroup.toLowerCase()) !== -1;\n      } else {\n        return user && item.userId === user.getUsername();\n      }\n    });\n\n    let totalUnread = 0;\n    for (let i = 0; i < notifications.length; i++) {\n      if (notificationsReaded.indexOf(notifications[i].id) === -1) {\n        totalUnread += 1;\n      }\n    }\n\n    let intercomUser = null;\n\n    if (account) {\n      intercomUser = {\n        user_id: account.id,\n        email: account.email,\n        name: account.name,\n      };\n    }\n\n    if (account && (account.disabled || (account.parent && account.parent.disabled))) {\n      return this.renderDisabled(intercomUser);\n    }\n\n\n    return (\n      <>\n        <Navbar bg=\"dark\" variant=\"dark\">\n          <Navbar.Brand>代理店管理画面</Navbar.Brand>\n          <Nav className=\"mr-auto\">\n            <LinkContainer to={`/manager`} activeClassName=\"\">\n              <Nav.Link>ユーザー管理</Nav.Link>\n            </LinkContainer>\n            {accountPermissions && accountPermissions.indexOf('COURSE') !== -1 && (\n              <LinkContainer to={`/manager/course-results`} activeClassName=\"\">\n                <Nav.Link>コーステスト結果</Nav.Link>\n              </LinkContainer>\n            )}\n            {accountPermissions && accountPermissions.indexOf('SUBTLE') !== -1 && (\n            <LinkContainer to={`/manager/subtle-results`} activeClassName=\"\">\n              <Nav.Link>機微力診断</Nav.Link>\n            </LinkContainer>\n            )}\n            {accountPermissions && accountPermissions.indexOf('NURSING') !== -1 && (\n            <LinkContainer to={`/manager/manual`} activeClassName=\"\">\n              <Nav.Link>管理者マニュアル</Nav.Link>\n            </LinkContainer>\n            )}\n          </Nav>\n          <Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n          <Navbar.Collapse id=\"basic-navbar-nav\">\n            <Nav className=\"ml-auto\">\n              <Nav.Link href=\"/manager/notifications\" className=\"d-flex align-items-center\">お知らせ {totalUnread > 0 && <Badge variant=\"danger\" className=\"ml-2\">{totalUnread}</Badge>}</Nav.Link>\n              <NavDropdown title=\"アカウント\">\n                <NavDropdown.Item onClick={() => this.setState({isShowTermsModal: true})}>{langService.translate(\"terms\", this.props.currentLang)}</NavDropdown.Item>\n                <NavDropdown.Item onClick={() => this.setState({isShowPolicyModal: true})}>{langService.translate(\"policy\", this.props.currentLang)}</NavDropdown.Item>\n                {/*<NavDropdown.Divider />*/}\n                {/*<NavDropdown.Item href=\"#\">FAQ</NavDropdown.Item>*/}\n                {/*<NavDropdown.Item href=\"#\">お問い合わせ</NavDropdown.Item>*/}\n\n                <NavDropdown.Divider />\n                <NavDropdown.Item onClick={this.onLogout.bind(this)}>ログアウト</NavDropdown.Item>\n              </NavDropdown>\n            </Nav>\n          </Navbar.Collapse>\n        </Navbar>\n        <Container>\n          <Switch>\n            <Route path={`${match.url}`} exact component={UsersPage} />\n            <Route path={`${match.url}/:userId/user`} exact component={UserPage} />\n            <Route path={`${match.url}/course-results`} exact component={CourseResultsPage} />\n            <Route path={`${match.url}/subtle-results`} exact component={SubtleResultsPage} />\n            <Route path={`${match.url}/notifications`} exact component={NotificationsPage} />\n            <Route path={`${match.url}/manual`} exact component={ManualPage} />\n          </Switch>\n        </Container>\n        {this.state.isLogout && (<Redirect to=\"/login\"/>)}\n        <TermsModal show={this.state.isShowTermsModal}\n                    isSimple={true}\n                    onClose={() => this.setState({ isShowTermsModal: false })} />\n        <PolicyModal show={this.state.isShowPolicyModal}\n                     onClose={() => this.setState({ isShowPolicyModal: false })} />\n        {intercomUser && <Intercom appID={process.env.REACT_APP_INTERCOM_API_KEY} { ...intercomUser }/>}\n      </>\n    )};\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang,\n    notificationsObject: state.root.notifications,\n    notificationsList: state.root.notifications.list,\n    notificationsReaded: state.root.notifications.readed,\n  };\n}\n\nexport default connect(mapStateToProps)(ManagerPage);\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport * as langService from \"../../services/lang\";\nimport \"./AnswerReactionModals.scss\";\n\nclass AnswerReactionModals extends Component {\n\n  formatByLanguage = (value) => {\n    let array = typeof value === \"string\" ? JSON.parse(value) : value;\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return \"Undefined\"; //array[commonService.mainLanguage];\n    }\n  };\n\n  render() {\n    let { answer } = this.props;\n    let avatarSide = 200;\n    let message = \"\";\n    let reaction = \"\";\n    if (answer && answer.message.value === \"WELL_DONE\") {\n      message = langService.translate(\"wellDone\", this.props.currentLang);\n      reaction = \"◎\";\n    } else if (answer && answer.message.value === \"ALMOST\") {\n      message = langService.translate(\"almost\", this.props.currentLang);\n      reaction = \"△\";\n    } else if (answer && answer.message.value === \"TRY_AGAIN\") {\n      message = langService.translate(\"tryAgain\", this.props.currentLang);\n      reaction = \"×\";\n    }\n\n    return (\n      <Modal show={this.props.show} onHide={this.props.onClose} backdrop=\"static\">\n        {answer && (\n          <Modal.Body>\n            <div className=\"d-flex flex-row justify-content-start align-items-center\">\n              <div style={{ width: avatarSide, height: avatarSide, marginBottom: \"8px\", }}>\n                <img\n                  src={answer.descriptionImage.value}\n                  alt=\"イラスト\"\n                />\n              </div>\n              <div className=\"d-flex flex-column flex-grow-1 align-items-center\">\n                <div style={{ fontSize: \"24px\" }} dangerouslySetInnerHTML={{ __html: message.replace(/\\r?\\n/g, '<br />').replace(/\\[([^,]*),([ぁ-ん]*)\\]/g, '<ruby><rb>$1</rb><rt>$2</rt></ruby>') }} ></div>\n                <div className=\"text-danger mt-2\" style={{ fontSize: \"80px\", fontWeight: \"700\", lineHeight: \"60px\" }}>\n                  {reaction}\n                </div>\n              </div>\n            </div>\n            <div className=\"answer-reaction-japanese-filling-bubble\" dangerouslySetInnerHTML={{ __html: this.formatByLanguage(answer.descriptionJapaneseFeeling).replace(/\\r?\\n/g, '<br />').replace(/\\[([^,]*),([ぁ-ん]*)\\]/g, '<ruby><rb>$1</rb><rt>$2</rt></ruby>') }} ></div>\n          </Modal.Body>\n        )}\n\n        <Modal.Footer>\n          <Button variant=\"flat\" onClick={this.props.onOk}>\n            OK\n          </Button>\n        </Modal.Footer>\n      </Modal>\n    );\n  }\n}\n\nAnswerReactionModals.defaultProps = {\n  show: false,\n  onClose: () => { }\n};\n\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(AnswerReactionModals);\n\n","import React, { Component } from \"react\";\nimport { Container } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport { Spinner } from \"react-bootstrap\";\nimport Div100vh from \"react-div-100vh\";\nimport MainHeader from \"../commons/MainHeader/index\";\n\nexport class MainContainer extends Component {\n\n  render() {\n    return (\n      <>\n        <Div100vh>\n        <MainHeader isPractice={this.props.isPractice} isTest={this.props.isTest} />\n        <div\n          style={{ paddingTop: \"40px\" }}\n          className={\n            this.props.isLoading\n              ? \"d-flex justify-content-center align-items-center\"\n              : \"\"\n          }\n        >\n          {this.props.isLoading ? (\n            <Spinner\n              animation=\"grow\"\n              variant=\"primary\"\n              size=\"lg\"\n              className=\"ma-auto\"\n            />\n          ) : (\n            <Container className=\"py-4\">{this.props.children}</Container>\n          )}\n        </div>\n        </Div100vh>\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    // fullLoading: state.root.fullLoading,\n    // courseGroups: state.courses.courseGroups,\n    // progress: state.courses.progress\n  };\n}\n\nexport default connect(mapStateToProps)(MainContainer);\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport { ReactComponent as KiiibinBackSvg } from \"../../../assets/svg/kiiibin_back.svg\";\nimport { ReactComponent as KiiibinReluxSvg } from \"../../../assets/svg/kiiibin_relux.svg\";\nimport { ReactComponent as KiiibinSadSvg } from \"../../../assets/svg/kiiibin_sad.svg\";\nimport { ReactComponent as KiiibinSitSvg } from \"../../../assets/svg/kiiibin_sit.svg\";\nimport { ReactComponent as KiiibinSmileSvg } from \"../../../assets/svg/kiiibin_smile.svg\";\nimport { ReactComponent as KiiibinReachSvg } from \"../../../assets/svg/kiiibin_teach.svg\";\nimport * as langService from '../../../services/lang';\nimport \"./index.scss\";\n\nclass QuestionChatItem extends React.Component {\n\n  formatByLanguage = (value) => {\n    if (value[this.props.currentLang]) {\n      return value[this.props.currentLang];\n    } else {\n      return null\n    }\n  };\n\n  render() {\n\n    let { characterId, characters, answer } = this.props;\n\n    let character = null;\n    if (characters) {\n      character = characters.filter((item) => item.id === characterId);\n    }\n\n    return (\n      <div className=\"question-chat-item\">\n        {character && (\n          <>\n            <div>\n              <img\n                src={character[0].image.value}\n                style={{\n                  minWidth: 50,\n                  minHeight: 50,\n                  maxWidth: 50,\n                  maxHeight: 50,\n                }}\n                alt=\"イラスト\"\n              />\n              <div className=\"question-chat-item__name\">{this.formatByLanguage(character[0].name)}</div>\n            </div>\n            <div className=\"question-chat-item__speech\">\n              {this.props.reading && this.formatByLanguage(this.props.reading) && (<div className=\"reading\">{this.formatByLanguage(this.props.reading)}</div>)}\n              {this.props.text && this.formatByLanguage(this.props.text) && (<div>{this.formatByLanguage(this.props.text)}</div>)}\n            </div>\n          </>\n        )}\n        {answer && (\n          <>\n            <div>\n              {answer.descriptionKibiAvatar.value === \"kiiibin_back\" && <KiiibinBackSvg width={50} height={50} />}\n              {answer.descriptionKibiAvatar.value === \"kiiibin_relux\" && <KiiibinReluxSvg width={50} height={50} />}\n              {answer.descriptionKibiAvatar.value === \"kiiibin_sad\" && <KiiibinSadSvg width={50} height={50} />}\n              {answer.descriptionKibiAvatar.value === \"kiiibin_sit\" && <KiiibinSitSvg width={50} height={50} />}\n              {answer.descriptionKibiAvatar.value === \"kiiibin_smile\" && <KiiibinSmileSvg width={50} height={50} />}\n              {answer.descriptionKibiAvatar.value === \"kiiibin_teach\" && <KiiibinReachSvg width={50} height={50} />}\n              <div className=\"question-chat-item__name\">{langService.translate(\"kiiibin\", this.props.currentLang)}</div>\n            </div>\n            <div className=\"question-chat-item__speech kibin\">\n              {answer.descriptionKibi && (<div dangerouslySetInnerHTML={{ __html: this.formatByLanguage(answer.descriptionKibi).replace(/\\r?\\n/g, '<br />').replace(/\\[([^,]*),([ぁ-ん]*)\\]/g, '<ruby><rb>$1</rb><rt>$2</rt></ruby>') }} ></div>)}\n            </div>\n          </>\n        )}\n      </div>\n    );\n  };\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(QuestionChatItem);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar SvgIcons8Picture = function SvgIcons8Picture(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    viewBox: \"0 0 48 48\",\n    width: \"48px\",\n    height: \"48px\",\n    ref: svgRef\n  }, props), /*#__PURE__*/React.createElement(\"g\", {\n    id: \"surface1\"\n  }, /*#__PURE__*/React.createElement(\"path\", {\n    style: {\n      fill: \"#F57C00\"\n    },\n    d: \"M 40 41 L 8 41 C 5.800781 41 4 39.199219 4 37 L 4 11 C 4 8.800781 5.800781 7 8 7 L 40 7 C 42.199219 7 44 8.800781 44 11 L 44 37 C 44 39.199219 42.199219 41 40 41 Z \"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    style: {\n      fill: \"#FFF9C4\"\n    },\n    d: \"M 38 16 C 38 17.65625 36.65625 19 35 19 C 33.34375 19 32 17.65625 32 16 C 32 14.34375 33.34375 13 35 13 C 36.65625 13 38 14.34375 38 16 Z \"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    style: {\n      fill: \"#942A09\"\n    },\n    d: \"M 20 16 L 9 32 L 31 32 Z \"\n  }), /*#__PURE__*/React.createElement(\"path\", {\n    style: {\n      fill: \"#BF360C\"\n    },\n    d: \"M 31 22 L 23 32 L 39 32 Z \"\n  })));\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8Picture, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-picture.0e0e3b78.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from \"react\";\nimport {} from \"react-bootstrap\";\nimport { ReactComponent as PictureSVG } from \"../../assets/svg/icons8-picture.svg\";\n\nexport class PictureElement extends Component {\n  render() {\n    return (\n      <div\n        style={{\n          ...this.props.style,\n          width: \"100%\",\n          backgroundColor: \"white\"\n        }}\n        className=\"d-flex justify-content-center align-items-center rounded\"\n      >\n        {!this.props.src && (\n          <PictureSVG\n            style={{\n              minWidth: this.props.iconWidth,\n              minHeight: this.props.iconHeight\n            }}\n          />\n        )}\n\n        {this.props.src && (\n          <img\n            src={this.props.src}\n            style={{\n              width: \"100%\"\n              // minWidth: this.props.iconWidth,\n              // minHeight: this.props.iconHeight,\n              // maxWidth: this.props.maxWidth,\n              // maxHeight: this.props.maxHeight,\n            }}\n            alt=\"イラスト\"\n          />\n        )}\n      </div>\n    );\n  }\n}\n\nPictureElement.defaultProps = {\n  iconWidth: 300,\n  iconHeight: 300,\n  maxWidth: 300,\n  maxHeight: 300,\n};\n","import React, { Component } from \"react\";\nimport { Modal, Button } from \"react-bootstrap\";\nimport { PictureElement } from \"../../components/elements/PictureElement\";\nimport * as commonService from \"../../services/common\";\n\nexport class PracticeAnswerModal extends Component {\n\n  formatByLanguage = (value) => {\n    let array = typeof value === \"string\" ? JSON.parse(value) : value;\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return array[commonService.mainLanguage];\n    }\n  };\n\n  render() {\n    return (\n      <Modal show={this.props.show} onHide={this.props.onClose} backdrop=\"static\">\n        <Modal.Header>\n          <Modal.Title>答えは?</Modal.Title>\n        </Modal.Header>\n\n        <Modal.Body style={{backgroundColor: \"#FAFAFA\"}}>\n          {this.props.answers.map(\n            (answer, index) => (\n              <div\n                key={index}\n                className=\"cursor-hover answer__item\"\n                onClick={() => this.props.onOk(answer)}\n              >\n                <PictureElement\n                  iconWidth={100}\n                  iconHeight={100}\n                  maxWidth={100}\n                  maxHeight={164}\n                  style={{ minHeight: 164 }}\n                  src={answer.image.value}\n                />\n                <div className=\"answer__item__texts\">\n                  {answer.reading && (<div className=\"reading\">{this.formatByLanguage(answer.reading)}</div>)}\n                  <div>{this.formatByLanguage(answer.text)}</div>\n                </div>\n              </div>\n            )\n          )}\n        </Modal.Body>\n\n        <Modal.Footer>\n          <Button variant=\"flat\" onClick={this.props.onClose}>\n            キャンセル\n          </Button>\n        </Modal.Footer>\n      </Modal>\n    );\n  }\n}\n\nPracticeAnswerModal.defaultProps = {\n  show: false,\n  onClose: () => {}\n};\n","import React, { Component } from \"react\";\nimport { Button, ProgressBar } from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport AnswerReactionModals from \"../../../../components/modals/AnswerReactionModals\";\nimport MainContainer from \"../../../../components/containers/MainContainer\";\nimport QuestionChatItem from \"../../../../components/elements/QuestionChatItem\";\nimport { PracticeAnswerModal } from \"../../../../components/modals/PracticeAnswerModal\";\nimport * as accountService from \"../../../../services/account\";\nimport * as contentsService from \"../../../../services/contents\";\nimport * as practiceQuestionsService from \"../../../../services/practice-questions\";\nimport * as commonService from \"../../../../services/common\";\nimport * as langService from \"../../../../services/lang\";\nimport \"./index.scss\";\nimport { Auth } from \"aws-amplify\";\n\nclass CoursePracticePage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      authUser: null,\n      accountSettings: {},\n      nextCourseId: null,\n      course: null,\n      courseSettings: {},\n      questions: [],\n      questionsCount: 0,\n      questionIndex: -1,\n      question: null,\n      answers: [],\n      chats: [],\n      characters: [],\n\n      selectedAnswer: null,\n      showAnswerReactionModal: false,\n      showPracticeAnswerModal: false,\n      showNextCourse: false,\n\n      isDescription: false,\n\n      loading: false,\n    };\n  }\n\n  async componentDidMount() {\n    const { courseId, questionId } = this.props.match.params;\n\n    await this.fetchQuestions(courseId, questionId);\n  }\n\n  async fetchQuestions(courseId, questionId) {\n    this.setState({ loading: true });\n    let state = {\n      authUser: null,\n    };\n\n    try {\n      state.authUser = await Auth.currentAuthenticatedUser();\n    } catch (e) {\n      // do nothing\n    }\n\n    if (state.authUser) {\n      let accountSettingsResponse = await accountService.fetchAccountSetting();\n      state.accountSettings = accountSettingsResponse ? JSON.parse(accountSettingsResponse) : {};\n\n      state.showNextCourse = state.accountSettings && state.accountSettings.coursesPractice && state.accountSettings.coursesPractice[courseId] && state.accountSettings.coursesPractice[courseId].isFinished;\n    }\n\n    state.course = await contentsService.fetchContent(courseId);\n    let practiceQuestionsResponse = await practiceQuestionsService.fetchPracticeQuestions(courseId);\n\n    practiceQuestionsResponse.items[0].answers = JSON.parse(practiceQuestionsResponse.items[0].answers);\n    practiceQuestionsResponse.items[0].answers.forEach(function (val1, key1) {\n      Object.entries(val1).forEach(function (val2, key2) {\n        Object.entries(val2[1]).forEach(function (val3, key3) {\n          // console.log(val3[1].replace(/\\r?\\n/g, '<br>'));\n          // practiceQuestionsResponse.items[0].answers[key1]['descriptionBehavePoint']['jp'] = practiceQuestionsResponse.items[0].answers[key1]['descriptionBehavePoint']['jp'].replace(/\\r?\\n/g, '<br>');\n          console.log(practiceQuestionsResponse.items[0].answers[key1]['descriptionBehavePoint']['jp'].replace(/\\r?\\n/g, '<br>'));\n        });\n      });\n    });\n    // console.log(practiceQuestionsResponse.items[0].answers);\n    practiceQuestionsResponse.items[0].answers = JSON.stringify(practiceQuestionsResponse.items[0].answers);\n    state.courseSettings = state.course.settings ? JSON.parse(state.course.settings) : {};\n\n    let questions = [];\n    if (state.courseSettings && state.courseSettings.practiceQuestions) {\n      let order = state.courseSettings.practiceQuestions;\n      let items = practiceQuestionsResponse.items;\n      items = items.map(function (item) {\n        var n = order.indexOf(item.id);\n        order[n] = '';\n        return [n, item]\n      }).sort().map(function (j) {\n        return j[1]\n      });\n      questions = items;\n    } else {\n      questions = practiceQuestionsResponse.items;\n    }\n\n    state.questions = questions;\n    state.questionsCount = questions.length;\n\n    let questionsState = await this.prepareQuestions(state.questions, questionId, courseId);\n    state = { ...state, ...questionsState };\n    state.loading = false;\n\n    this.setState(state);\n  }\n\n  prepareQuestions = async (questions, questionId, courseId) => {\n    let state = {};\n\n    let courseSettingResponse = await contentsService.fetchContentSetting(\"COURSE\");\n    let courseSetting = courseSettingResponse ? courseSettingResponse : {};\n    let courseOrder = courseSetting.order ? JSON.parse(courseSetting.order) : [];\n\n    let selectedCourseIndex = courseOrder.findIndex((item) => item === courseId);\n    if (selectedCourseIndex + 1 < courseOrder.length) {\n      state.nextCourseId = courseOrder[selectedCourseIndex + 1];\n    }\n\n    if (questionId && questionId === \"finished\") {\n\n    } else if (questions.length > 0) {\n      let currentQuestionIndex = 0;\n      if (questionId) {\n        let index = questions.findIndex((item) => item.id === questionId);\n        currentQuestionIndex = index !== -1 ? index : 0;\n      }\n\n      state.questionIndex = currentQuestionIndex;\n      state.question = questions[currentQuestionIndex];\n      state.answers = commonService.shuffleArr(JSON.parse(state.question.answers));\n      state.chats = JSON.parse(state.question.chats);\n      state.characters = JSON.parse(state.question.characters);\n    }\n\n    state.selectedAnswer = null;\n    state.showAnswerReactionModal = false;\n    state.showPracticeAnswerModal = false;\n    state.isDescription = false;\n\n    return state;\n  };\n\n  formatByLanguage = (value) => {\n    try {\n      let array = typeof value === \"string\" ? JSON.parse(value) : value;\n      if (array[this.props.currentLang]) {\n        return array[this.props.currentLang];\n      } else {\n        return null;\n      }\n    } catch (e) {\n      return null;\n    }\n  };\n\n  onShowAnswerModal = () => {\n    this.setState({ showPracticeAnswerModal: true });\n  };\n\n  onCloseAnswerModal = () => {\n    this.setState({ showPracticeAnswerModal: false });\n  };\n\n  onOkAnswerModal = (answer) => {\n    this.setState({ showPracticeAnswerModal: false });\n    this.onClickAnswer(answer);\n  };\n\n  onClickAnswer = async (answer) => {\n    this.setState({ selectedAnswer: answer, showAnswerReactionModal: true });\n    if (this.state.questionsCount === this.state.questionIndex + 1) {\n      let accountSettings = this.state.accountSettings;\n      let coursesPracticeSettings = accountSettings.coursesPractice ? accountSettings.coursesPractice : {};\n      if (!coursesPracticeSettings[this.state.course.id]) {\n        coursesPracticeSettings[this.state.course.id] = {\n          isFinished: true\n        };\n        accountSettings.coursesPractice = coursesPracticeSettings;\n        if (this.state.authUser) {\n          await accountService.updateAccountSettings({\n            settings: JSON.stringify(accountSettings)\n          });\n        }\n        this.setState({ accountSettings });\n      }\n    }\n  };\n\n  onCloseAnswerReactionModal = () => {\n    this.setState({ showAnswerReactionModal: false, isDescription: true });\n  };\n\n  onOkAnswerReactionModal = () => {\n    this.setState({ showAnswerReactionModal: false, isDescription: true });\n  };\n\n  onNextQuestionClick = async () => {\n    let question = this.state.questions[this.state.questionIndex + 1];\n    this.props.history.push(`/course/${this.state.course.id}/practice/${question.id}`);\n  };\n\n  onTestClick = () => {\n    this.props.history.push(`/course/${this.state.course.id}/test`);\n  };\n\n  onNextCourseClick = async () => {\n    this.props.history.push(`/course/${this.state.nextCourseId}/practice`);\n    await this.fetchQuestions(this.state.nextCourseId);\n  };\n\n  renderHeader = () => {\n    const {\n      course,\n      question,\n      questionsCount,\n      questionIndex,\n      isDescription\n    } = this.state;\n\n    let now = Math.floor(100 / questionsCount) * (questionIndex + (isDescription ? 1 : 0));\n\n    return (\n      <div className=\"lesson__header\">\n        {course && question && (\n          <div className=\"lesson__header__text\">\n            {this.formatByLanguage(course.title)}<span className=\"secondary\">{\" \"}\n              {this.formatByLanguage(question.title)}</span>\n          </div>\n        )}\n        {questionsCount && <ProgressBar now={now} label={`${now}%`} />}\n      </div>\n    );\n  };\n\n  renderQuestion = () => {\n    const {\n      question,\n      answers,\n      chats,\n      characters,\n    } = this.state;\n\n    return (\n      <div className=\"practice\">\n        <div className=\"practice-question practice\">\n          <img src={question.svgUrl} alt=\"問題イラスト\" />\n          <div className=\"practice-question__chat\">\n            {chats.map(\n              (chatItem, index) => (\n                <QuestionChatItem\n                  key={index}\n                  characterId={chatItem.character.value}\n                  characters={characters}\n                  reading={chatItem.reading}\n                  text={chatItem.text} />\n              ))}\n          </div>\n        </div>\n\n        <div className=\"practice-question-answers my-3 d-none d-md-block\">\n          <div className=\"pl-3 pr-3 pt-1 pb-1 text-center header\">\n            {langService.translate(\"answer\", this.props.currentLang)}\n          </div>\n          <div className=\"my-3 items\" >\n            {answers.map(\n              (answer, index) => (\n                <div\n                  key={index}\n                  className=\"cursor-hover item\"\n                  onClick={this.onClickAnswer.bind(this, answer)}\n                >\n                  <img src={answer.image.value} alt=\"回答イラスト\" />\n                  <div className=\"texts\">\n                    {answer.reading && this.formatByLanguage(answer.reading) && (<div className=\"reading\">{this.formatByLanguage(answer.reading)}</div>)}\n                    <div>{this.formatByLanguage(answer.text)}</div>\n                  </div>\n                </div>\n              )\n            )}\n          </div>\n          <AnswerReactionModals\n            show={this.state.showAnswerReactionModal}\n            onClose={this.onCloseAnswerReactionModal.bind(this)}\n            onOk={this.onOkAnswerReactionModal.bind(this)}\n            currentLang={this.props.currentLang}\n            answer={this.state.selectedAnswer}\n          />\n        </div>\n\n        <div className=\"answer-mobile d-block d-md-none\">\n          <div className=\"p-3 text-center header\" onClick={() => this.onShowAnswerModal()}>\n            {langService.translate(\"answer\", this.props.currentLang)}\n          </div>\n        </div>\n        <PracticeAnswerModal\n          show={this.state.showPracticeAnswerModal}\n          onClose={this.onCloseAnswerModal.bind(this)}\n          onOk={this.onOkAnswerModal.bind(this)}\n          answers={answers}\n        />\n      </div>\n    );\n  };\n\n  renderDescription = () => {\n    const {\n      question,\n      chats,\n      selectedAnswer,\n      characters,\n      questionsCount,\n      questionIndex,\n      nextCourseId,\n      authUser,\n      showNextCourse,\n    } = this.state;\n\n    let isPracticeFinished = questionsCount === questionIndex + 1;\n    return (\n      <>\n        <div className=\"practice\">\n          <h2>解説</h2>\n          <div className=\"practice-question\">\n            <img className=\"description\" src={question.svgUrl} alt=\"説明イラスト\" />\n            <div className=\"practice-question__detail\">\n              <div className=\"practice-question__chat\">\n                {chats.map(\n                  (chatItem, index) => (\n                    <QuestionChatItem\n                      key={index}\n                      characterId={chatItem.character.value}\n                      characters={characters}\n                      reading={chatItem.reading}\n                      text={chatItem.text} />\n                  ))}\n              </div>\n            </div>\n          </div>\n        </div>\n        <div className=\"incorrect-description\">\n          <div className=\"practice-question__kibin\">\n            <QuestionChatItem answer={selectedAnswer} kibin={true} />\n          </div>\n\n          <div className=\"texts mt-2\">\n            <div className=\"header\">{langService.translate(\"pointOfJapaneseCulturesAndCustoms\", this.props.currentLang)}</div>\n            <div className=\"text\" dangerouslySetInnerHTML={{ __html: this.formatByLanguage(selectedAnswer.descriptionJapanesePoint).replace(/\\r?\\n/g, '<br />').replace(/\\[([^,]*),([ぁ-ん]*)\\]/g, '<ruby><rb>$1</rb><rt>$2</rt></ruby>') }} ></div>\n          </div>\n\n          <div className=\"texts mt-2\">\n            <div className=\"header\">{langService.translate(\"pointOfBehaviorAndReaction\", this.props.currentLang)}</div>\n            <div className=\"text\" dangerouslySetInnerHTML={{ __html: this.formatByLanguage(selectedAnswer.descriptionBehavePoint).replace(/\\r?\\n/g, '<br />').replace(/\\[([^,]*),([ぁ-ん]*)\\]/g, '<ruby><rb>$1</rb><rt>$2</rt></ruby>') }} ></div>\n          </div>\n        </div>\n        {\n          !isPracticeFinished && (\n            <Button\n              variant=\"flat\"\n              block\n              className=\"mt-3\"\n              onClick={this.onNextQuestionClick.bind(this)}\n            >\n              {langService.translate(\"goToTheNextQuestion\", this.props.currentLang)}\n            </Button>\n          )\n        }\n        {\n          isPracticeFinished && authUser && (\n            <>\n              <Button\n                variant=\"flat\"\n                block\n                className=\"mt-3\"\n                onClick={this.onTestClick.bind(this)}\n              >\n                {langService.translate(\"takeATest\", this.props.currentLang)}\n              </Button>\n              {nextCourseId && (\n                <Button\n                  variant=\"flat\"\n                  block\n                  className=\"mt-3\"\n                  disabled={!showNextCourse}\n                  onClick={this.onNextCourseClick.bind(this)}\n                >\n                  {langService.translate(\"nextCourse\", this.props.currentLang)}\n                </Button>\n              )}\n            </>\n          )\n        }\n      </>\n    );\n  };\n\n  renderNotFound = () => {\n    return (\n      <div className=\"d-flex justify-content-center align-content-center mt-4\">\n        {langService.translate(\"notFound\", this.props.currentLang)}\n      </div>\n    );\n  };\n\n  render() {\n    const {\n      isDescription,\n    } = this.state;\n\n    return (\n      <MainContainer isPractice={true} isLoading={this.state.loading}>\n        {!this.state.loading && this.state.question && (\n          <>\n            {this.renderHeader()}\n            <div className=\"content\">\n              {!isDescription && this.renderQuestion()}\n              {isDescription && this.renderDescription()}\n            </div>\n          </>\n        )}\n        {!this.state.loading && !this.state.question && this.renderNotFound()}\n      </MainContainer>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(CoursePracticePage);\n","import React, { Component } from \"react\";\nimport {ProgressBar, Button, Badge} from \"react-bootstrap\";\nimport { connect } from \"react-redux\";\nimport uuid from \"uuid\";\nimport MainContainer from \"../../../../components/containers/MainContainer\";\nimport QuestionChatItem from \"../../../../components/elements/QuestionChatItem\";\nimport * as contentsService  from \"../../../../services/contents\";\nimport * as courseTestResultsService  from \"../../../../services/course-test-results\";\nimport * as commonService  from \"../../../../services/common\";\nimport * as accountService from \"../../../../services/account\";\nimport * as testQuestionsService from \"../../../../services/test-questions\";\nimport \"./index.scss\";\n\nclass CourseTestPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      accountSettings: {},\n      course: null,\n      questions: [],\n      questionsCount: 0,\n      questionIndex: -1,\n      question: null,\n      answers: [],\n      chats: [],\n      characters: [],\n      results: [],\n      loading: false,\n    };\n  }\n\n  async componentDidMount() {\n    const {courseId, questionId} = this.props.match.params;\n\n    await this.fetchQuestions(courseId, questionId);\n  }\n\n  async fetchQuestions(courseId, questionId = null) {\n    this.setState({loading: true});\n    let state = {};\n\n    let accountSettingsResponse = await accountService.fetchAccountSetting();\n    state.accountSettings = accountSettingsResponse ? JSON.parse(accountSettingsResponse) : {};\n\n    state.course = await contentsService.fetchContent(courseId);\n    let testQuestionsResponse = await testQuestionsService.fetchTestQuestions(courseId);\n    let questions = testQuestionsResponse.items;\n    state.questions = commonService.shuffleArr(questions);\n    state.questionsCount = questions.length;\n\n    if (questionId) {\n      let questionIndex = questions.findIndex(question => question.id === questionId);\n      state.questionIndex = questionIndex;\n      state.question = questions[questionIndex];\n      state.answers = JSON.parse(state.question.answers);\n      state.chats = JSON.parse(state.question.chats);\n      state.characters = JSON.parse(state.question.characters);\n    } else {\n      let questionsState = await this.prepareQuestions(state.questions, courseId);\n      state = {...state, ...questionsState};\n    }\n\n    state.loading = false;\n\n    this.setState( state );\n  }\n\n  prepareQuestions = async (questions) => {\n    let state = {};\n\n    if (this.state.questionIndex === -1) {\n      state.questionIndex = 0;\n    } else {\n      state.questionIndex = this.state.questionIndex + 1;\n    }\n\n    if (questions.length === 0) { return state; }\n\n    state.question = questions[state.questionIndex];\n    state.answers = JSON.parse(state.question.answers);\n    state.chats = JSON.parse(state.question.chats);\n    state.characters = JSON.parse(state.question.characters);\n\n    return state;\n  };\n\n  onClickAnswer = async (answer) => {\n    let answerIndex = this.state.answers.indexOf(answer);\n\n    let results = this.state.results;\n    results.push({\n      questionId: this.state.question.id,\n      answerId: answer.id,\n      isCorrect: !!(this.state.answers[answerIndex].isCorrect && this.state.answers[answerIndex].isCorrect.value === \"1\")\n    });\n\n    if (this.state.questionIndex + 1 < this.state.questionsCount) {\n      let state = await this.prepareQuestions(this.state.questions);\n      state.results = results;\n      this.setState( state );\n    } else {\n      this.setState({ loading: true });\n      let correctAnswers = 0;\n      results.forEach((result) => {\n        if (result.isCorrect) {\n          correctAnswers += 1;\n        }\n      });\n      let storeResults = {\n        totalAnswers: results.length,\n        correctAnswers,\n        answers: results\n      };\n      try {\n        let input = {\n          id: uuid.v4(),\n          courseId: this.state.course.id,\n          results: JSON.stringify(storeResults),\n        };\n        await courseTestResultsService.createCourseTestResult(input);\n        this.setState({ loading: false });\n        this.props.history.push(`/course/${this.state.course.id}/result/${input.id}`);\n      } catch (e) {\n        console.log(e);\n        this.setState({ loading: false });\n      }\n    }\n  };\n\n  onClickBack = () => {\n    const {testId} = this.props.match.params;\n    this.props.history.push(`/course/${this.state.course.id}/result/${testId}`);\n  };\n\n  onClickFinish = () => {\n    this.props.history.push(`/`);\n  };\n\n  formatByLanguage = (value) => {\n    try {\n      let array = typeof value === \"string\" ? JSON.parse(value) : value;\n      if (array[this.props.currentLang]) {\n        return array[this.props.currentLang];\n      } else {\n        return \"Undefined\"; //array[commonService.mainLanguage];\n      }\n    } catch (e) {\n      return \"Undefined\";\n    }\n  };\n\n  renderHeader = () => {\n    const {testId} = this.props.match.params;\n    const {\n      course,\n      question,\n      questionsCount,\n      questionIndex,\n      isDescription\n    } = this.state;\n\n    let now = Math.floor(100 / questionsCount) * (questionIndex + (isDescription ? 1 : 0));\n\n    return (\n      <div className=\"lesson__header\">\n        {course && question && (\n          <div className=\"lesson__header__text\">\n            {this.formatByLanguage(course.title)}<span className=\"secondary\">{\" \"}\n            {this.formatByLanguage(question.title)}</span>\n          </div>\n        )}\n        {!testId && questionsCount && <ProgressBar now={now} label={`${now}%`} />}\n        {testId && (\n          <>\n            <Button\n              onClick={this.onClickBack}\n              className=\"ml-auto\"\n              variant=\"outline-primary\"\n            >\n              戻る\n            </Button>\n            <Button\n              onClick={this.onClickFinish}\n              className=\"ml-2\"\n              variant=\"primary\"\n            >\n              終了\n            </Button>\n          </>\n        )}\n      </div>\n    );\n  };\n\n  renderQuestion = () => {\n    const {testId, answerId} = this.props.match.params;\n    const {\n      question,\n      answers,\n      chats,\n      characters,\n    } = this.state;\n\n    let answerIndex= answerId != null && answerId!= undefined ? answers.findIndex(item => item.id === answerId) : -1;\n    let selectedAnswer = answerIndex !== -1 ? answers[answerIndex] : null;\n    let suffleAnswers = commonService.shuffleArr(answers);\n\n    return (\n      <>\n        <div className=\"test-question\">\n          <img src={question.svgUrl} alt=\"問題イラスト\" />\n          <div className=\"test-question__chat\">\n            {chats.map(\n              (chatItem, index) => (\n                <QuestionChatItem\n                  key={index}\n                  characterId={chatItem.character.value}\n                  characters={characters}\n                  reading={chatItem.reading}\n                  text={chatItem.text}/>\n              ))}\n          </div>\n        </div>\n        <div className=\"mt-3 mb-2 text-center\">\n          <strong>{this.formatByLanguage(question.subtitle)}</strong>\n        </div>\n        <div className=\"my-3\">\n          {suffleAnswers.map((answer, index) => (\n            <Button\n              key={index}\n              onClick={this.onClickAnswer.bind(this, answer)}\n              block\n              className=\"my-3\"\n              variant={selectedAnswer && answer.isCorrect && answer.isCorrect.value ? \"success\" : \"outline-dark\"}\n              disabled={!!testId}\n            >\n              {this.formatByLanguage(answer.text)}\n              {selectedAnswer && answer.id === selectedAnswer.id && <Badge variant=\"secondary\">選択済</Badge>}\n            </Button>\n          ))}\n        </div>\n      </>\n    );\n  };\n\n  renderNotFound = () => {\n    return (\n      <div className=\"d-flex justify-content-center align-content-center mt-4\">\n        テストは見つかりませんでした\n      </div>\n    );\n  };\n\n  render() {\n    return (\n      <MainContainer isTest={true} isLoading={this.state.loading}>\n        {!this.state.loading && this.state.question && (\n          <>\n            {this.renderHeader()}\n            <div className=\"content\">\n              {this.renderQuestion()}\n            </div>\n          </>\n        )}\n        {!this.state.loading && !this.state.question && this.renderNotFound()}\n      </MainContainer>\n    );\n  }\n}\n\nfunction mapStateToProps(state, props) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(CourseTestPage);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#32BEA6\",\n  d: \"M504.1,256C504.1,119,393,7.9,256,7.9C119,7.9,7.9,119,7.9,256C7.9,393,119,504.1,256,504.1          C393,504.1,504.1,393,504.1,256z\"\n})))))))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M392.6,172.9c-5.8-15.1-17.7-12.7-30.6-10.1c-7.7,1.6-42,11.6-96.1,68.8c-22.5,23.7-37.3,42.6-47.1,57     c-6-7.3-12.8-15.2-20-22.3C176.7,244.2,152,229,151,228.4c-10.3-6.3-23.8-3.1-30.2,7.3c-6.3,10.3-3.1,23.8,7.2,30.2     c0.2,0.1,21.4,13.2,39.6,31.5c18.6,18.6,35.5,43.8,35.7,44.1c4.1,6.2,11,9.8,18.3,9.8c1.2,0,2.5-0.1,3.8-0.3     c8.6-1.5,15.4-7.9,17.5-16.3c0.1-0.2,8.8-24.3,54.7-72.7c37-39.1,61.7-51.5,70.3-54.9c0.1,0,0.1,0,0.3,0c0,0,0.3-0.1,0.8-0.4     c1.5-0.6,2.3-0.8,2.3-0.8c-0.4,0.1-0.6,0.1-0.6,0.1l0-0.1c4-1.7,11.4-4.9,11.5-5C393.3,196.1,397,184.1,392.6,172.9z\"\n}))));\n\nvar SvgIcons8Checkmark = function SvgIcons8Checkmark(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"Layer_1\",\n    x: \"0px\",\n    y: \"0px\",\n    width: \"64px\",\n    height: \"64px\",\n    viewBox: \"0 0 512 512\",\n    enableBackground: \"new 0 0 512 512\",\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8Checkmark, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-checkmark.35184bac.svg\";\nexport { ForwardRef as ReactComponent };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#E04F5F\",\n  d: \"M504.1,256C504.1,119,393,7.9,256,7.9C119,7.9,7.9,119,7.9,256C7.9,393,119,504.1,256,504.1          C393,504.1,504.1,393,504.1,256z\"\n})))))))), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFFFFF\",\n  d: \"M285,256l72.5-84.2c7.9-9.2,6.9-23-2.3-31c-9.2-7.9-23-6.9-30.9,2.3L256,222.4l-68.2-79.2    c-7.9-9.2-21.8-10.2-31-2.3c-9.2,7.9-10.2,21.8-2.3,31L227,256l-72.5,84.2c-7.9,9.2-6.9,23,2.3,31c4.1,3.6,9.2,5.3,14.3,5.3    c6.2,0,12.3-2.6,16.6-7.6l68.2-79.2l68.2,79.2c4.3,5,10.5,7.6,16.6,7.6c5.1,0,10.2-1.7,14.3-5.3c9.2-7.9,10.2-21.8,2.3-31L285,256    z\"\n})));\n\nvar SvgIcons8Delete = function SvgIcons8Delete(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"Layer_1\",\n    x: \"0px\",\n    y: \"0px\",\n    width: \"64px\",\n    height: \"64px\",\n    viewBox: \"0 0 512 512\",\n    enableBackground: \"new 0 0 512 512\",\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8Delete, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-delete.1de7a8b6.svg\";\nexport { ForwardRef as ReactComponent };","import React, {Component} from \"react\";\nimport {Button, ButtonGroup} from \"react-bootstrap\";\nimport {connect} from \"react-redux\";\nimport {LinkContainer} from \"react-router-bootstrap\";\nimport MainContainer from \"../../../../components/containers/MainContainer\";\nimport {ReactComponent as CheckSVG} from \"../../../../assets/svg/icons8-checkmark.svg\";\nimport {ReactComponent as CancelSVG} from \"../../../../assets/svg/icons8-delete.svg\";\nimport * as courseTestResultsService from \"../../../../services/course-test-results\";\nimport * as contentsService from \"../../../../services/contents\";\nimport * as langService from \"../../../../services/lang\";\n\nclass CourseResultPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      testResults: null,\n      nextCourseId: null,\n      loading: false\n    };\n  }\n\n  async componentDidMount() {\n    const {testId} = this.props.match.params;\n\n  //   const { courseId } = this.props.match.params;\n  //   let testQuestionsResponse = await testQuestionsService.fetchTestQuestions(courseId);\n  //   let courseProgress = await courseProgressService.fetchUserProgress();\n  //   let items = courseProgress.filter((item) => item.courseId === courseId );\n  //\n  //   this.setState({ questions: testQuestionsResponse.items, courseProgress: items[0] });\n    await this.fetchData(testId);\n  }\n\n  async fetchData(testId) {\n    this.setState({loading: true});\n\n    let state = {\n      loading: false,\n    };\n\n    let testResults = await courseTestResultsService.fetchCourseTestResult(testId);\n    console.log('testResults', testResults);\n    if (!testResults) {\n      console.log('results not found');\n      this.setState({loading: false});\n      return ;\n    }\n\n    let courseSettingResponse = await contentsService.fetchContentSetting(\"COURSE\");\n    let courseSetting = courseSettingResponse ? courseSettingResponse : {};\n    let courseOrder = courseSetting.order ? JSON.parse(courseSetting.order) : [];\n\n    let selectedCourseIndex = courseOrder.findIndex((item) => item === testResults.course.id);\n    if (selectedCourseIndex + 1 < courseOrder.length) {\n      state.nextCourseId = courseOrder[selectedCourseIndex + 1];\n    }\n\n    testResults.results = JSON.parse(testResults.results);\n    state.testResults = testResults;\n\n    this.setState(state);\n  }\n\n  formatByLanguage = (value) => {\n    let array = typeof value === \"string\" ? JSON.parse(value) : value;\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return \"Undefined\"; //array[commonService.mainLanguage];\n    }\n  };\n\n  getAnswer = (question, answers) => {\n    let array = answers.filter((answer) => answer.questionId === question.id);\n    return array.length !== 1 ? {} : array[0];\n  };\n\n  isCorrect = (question, answers) => {\n    let array = answers.filter((answer) => answer.questionId === question.id);\n    if (array.length !== 1) { return false; }\n    return array[0].isCorrect;\n  };\n\n  onNextCourseClick = () => {\n    this.props.history.push(`/course/${this.state.nextCourseId}/practice`);\n  };\n\n  renderResults = () => {\n    const { testResults, nextCourseId } = this.state;\n    const answers = testResults.results.answers;\n    const testQuestions = testResults.course.testQuestions;\n\n    return (\n      <>\n        <h4 className=\"mt-3 font-weight-normal text-center mb-3\">\n          {Math.floor(100 / testResults.results.totalAnswers * testResults.results.correctAnswers)}点\n        </h4>\n        <ButtonGroup vertical className=\"w-100\">\n          {testQuestions.map((question, index) => (\n            <LinkContainer\n              style={{\n                display: \"flex\",\n                justifyContent: \"space-between\",\n                alignItems: \"center\",\n                width: \"100%\",\n                border: \"1px solid #CFD4D9\"\n              }}\n              to={`/course/${testResults.course.id}/test/${question.id}/${this.getAnswer(question, answers).answerId}/${testResults.id}`}\n              key={question.id}\n            >\n              <Button className=\"py-2 px-3\" variant=\"outline-dark\">\n                <div>{this.formatByLanguage(question.title)}</div>\n                <div>\n                  {this.isCorrect(question, answers) ? (\n                    <CheckSVG width={30} height={30} />\n                  ) : (\n                    <CancelSVG width={30} height={30} />\n                  )}\n                </div>\n              </Button>\n            </LinkContainer>\n          ))}\n        </ButtonGroup>\n\n        {nextCourseId && <Button\n          variant=\"flat\"\n          block\n          className=\"mt-3\"\n          onClick={this.onNextCourseClick.bind(this)}\n        >\n          {langService.translate(\"nextCourse\", this.props.currentLang)}\n        </Button>}\n      </>\n    );\n  };\n\n  renderNotFound = () => {\n    return (\n      <div className=\"d-flex justify-content-center align-content-center mt-4\">\n        テスト結果を見つかりませんでした\n      </div>\n    );\n  };\n\n  render() {\n\n\n    return (\n      <MainContainer isTest={true} isLoading={this.state.loading}>\n        {!this.state.loading && this.state.testResults && this.renderResults()}\n        {!this.state.loading && !this.state.testResults && this.renderNotFound()}\n      </MainContainer>\n    );\n  }\n}\n\nfunction mapStateToProps(state, props) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(CourseResultPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Div100vh from \"react-div-100vh\";\nimport { Container, Navbar, Nav, Button, ProgressBar, ListGroup, NavDropdown } from \"react-bootstrap\";\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport * as accountService from '../../../services/account';\nimport * as contentsService from '../../../services/contents';\nimport * as subtleTestResultsService from '../../../services/subtle-test-results';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faClock } from '@fortawesome/free-solid-svg-icons'\nimport RadarChart from 'react-svg-radar-chart';\nimport 'react-svg-radar-chart/build/css/index.css'\nimport \"./index.scss\";\nimport * as commonService from \"../../../services/common\";\nimport * as rootActions from \"../../../store/root/actions\";\nimport * as langService from \"../../../services/lang\";\nimport uuid from \"uuid\";\nimport * as courseTestResultsService from \"../../../services/course-test-results\";\n\nclass SubtleTestPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      questions: [],\n      maxTime: 30 * 60 * 1000,\n      time: 0,\n      startTime: null,\n\n      isLanding: false,\n      isMap: false,\n      isQuestion: false,\n      isFinished: false,\n      isResults: false,\n      isShowTimer: false,\n      data: null,\n      results: [],\n      questionIndex: 0,\n      resultsSelectedIndex: 0,\n\n      loading: false,\n    };\n  }\n\n  async componentDidMount() {\n    this.setState({ loading: true });\n    this.fetchData();\n  }\n\n  fetchData = async () => {\n    const { testId } = this.props.match.params;\n    try {\n      let content = await contentsService.fetchContent('SUBTLE');\n\n      let results = [];\n      if (testId) {\n        let resultsResponse = await subtleTestResultsService.fetchSubtleTestResult(testId);\n        results = JSON.parse(resultsResponse.results);\n      }\n\n      if (content) {\n        content.settings = JSON.parse(content.settings);\n      }\n\n      let state = {\n        loading: false,\n        results: results,\n      };\n      state.data = content;\n      if (results.length > 0) {\n        state.isResults = true;\n      } else if (content) {\n        state.isLanding = true;\n      }\n\n      this.setState(state);\n\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  componentWillUnmount() {\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n  }\n\n  onStart = () => {\n    this.setState({ isLanding: false, isMap: true });\n  };\n\n  onMapClose = () => {\n    this.setState({ isMap: false, isQuestion: true });\n  };\n\n  onMapNext = () => {\n    this.startTimer();\n    this.setState({ isMap: false, isQuestion: true, isShowTimer: true });\n  };\n\n  onQuestionMap = () => {\n    this.setState({ isMap: true, isQuestion: false });\n  };\n\n  onQuestionBack = () => {\n    this.setState({ questionIndex: this.state.questionIndex - 1 });\n  };\n\n  onFinishedBack = () => {\n    this.setState({ isQuestion: true, isFinished: false })\n  };\n\n  onFinishedResults = async () => {\n    const { results } = this.state;\n\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n\n    try {\n      let input = {\n        id: uuid.v4(),\n        results: JSON.stringify(results),\n      };\n      await subtleTestResultsService.createSubtleTestResult(input);\n      this.setState({ isFinished: false, isShowTimer: false, isResults: true, })\n    } catch (e) {\n      console.log(e);\n      this.setState({ loading: false });\n    }\n  };\n\n  onQuestionAnswer = (index) => {\n    const { data, results, questionIndex } = this.state;\n    const question = data.settings.questions[questionIndex];\n    const item = {\n      answer: index,\n      isCorrect: !!(question[`answer${index}IsCorrect`] && question[`answer${index}IsCorrect`].value === \"1\")\n    };\n\n    if (results[questionIndex]) {\n      results[questionIndex] = item;\n      this.setState({ results, questionIndex: questionIndex + 1 })\n    } else {\n      results.push(item);\n\n      if (questionIndex + 1 < 30) {\n        this.setState({ results, questionIndex: questionIndex + 1 })\n      } else {\n        this.setState({ results, isQuestion: false, isFinished: true })\n      }\n\n    }\n\n  };\n\n  isSelectedAnswer = (index) => {\n    const { results, questionIndex } = this.state;\n    if (results[questionIndex]) {\n      return results[questionIndex].answer === index;\n    } else {\n      return false;\n    }\n  };\n\n  startTimer = () => {\n    this.setState({\n      startTime: new Date()\n    });\n    this.timer = setInterval(() => this.setState({\n      time: Date.now() - this.state.startTime\n    }), 1);\n  };\n\n  stopTimer = () => {\n\n  };\n\n  formatByLanguage = (value) => {\n    let array = typeof value === \"string\" ? JSON.parse(value) : value;\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return \"Undefined\";\n    }\n  };\n\n  buildTime = () => {\n    const currentTime = this.state.maxTime - this.state.time;\n    const minutes = '' + (Math.floor(currentTime / 1000 / 60));\n    const seconds = '' + (Math.floor(currentTime / 1000) - (minutes * 60));\n\n    return `${minutes.padStart(2, '0')}:${seconds.padStart(2, '0')}`;\n  };\n\n  buildMaxTime = () => {\n    return Math.floor(this.state.maxTime / 60 / 1000);\n  };\n\n  buildTotalCount = () => {\n    const { results } = this.state;\n    let totalCount = 0;\n    for (let i = 0; i < results.length; i++) {\n      if (i < 20) {\n        if (results[i].isCorrect) {\n          totalCount += 3;\n        }\n      } else {\n        if (results[i].isCorrect) {\n          totalCount += 4;\n        }\n      }\n    }\n\n    return totalCount;\n  };\n\n  buildSkills = () => {\n    const { results, data } = this.state;\n    let skills = {\n      imagination: 0,\n      reaction: 0,\n      empathy: 0,\n      feeling: 0,\n      flexibility: 0,\n    };\n\n    for (let i = 0; i < results.length; i++) {\n      if (!results[i].isCorrect) {\n        continue;\n      }\n\n      let question = data.settings.questions[i];\n      if (question.imagination && question.imagination.value === '1') {\n        skills.imagination += 1;\n      }\n      if (question.reaction && question.reaction.value === '1') {\n        skills.reaction += 1;\n      }\n      if (question.empathy && question.empathy.value === '1') {\n        skills.empathy += 1;\n      }\n      if (question.feeling && question.feeling.value === '1') {\n        skills.feeling += 1;\n      }\n      if (question.flexibility && question.flexibility.value === '1') {\n        skills.flexibility += 1;\n      }\n    }\n\n    return skills;\n\n  };\n\n  renderHeader = () => {\n    return (\n      <Navbar bg=\"white\" fixed=\"top\" expand=\"lg\">\n        <Navbar.Brand\n          style={{ margin: \"-10px 0\", padding: 0 }}\n          className=\"cursor-hover\"\n        >\n          <LinkContainer to=\"/\">\n            <div>kibi-<span style={{ color: \"#0F80B4\" }}>learning</span>.jp</div>\n          </LinkContainer>\n        </Navbar.Brand>\n        <Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n        <Navbar.Collapse id=\"basic-navbar-nav\">\n          <Nav>\n            <LinkContainer to={`/`} activeClassName=\"\">\n              <Nav.Link>{langService.translate('toMarket', this.props.currentLang)}</Nav.Link>\n            </LinkContainer>\n          </Nav>\n          {this.state.isShowTimer ? (\n            <Nav className=\"ml-auto\">\n              <div className=\"d-flex justify-content-center align-items-center\"><FontAwesomeIcon icon={faClock} className=\"mr-2\" />{this.buildTime()}</div>\n              <NavDropdown\n                title={commonService.languages[this.props.currentLang]}\n                id=\"basic-nav-dropdown\"\n                className=\"mr-3\"\n              >\n                {commonService.languagesList.map(lang => (\n                  <NavDropdown.Item\n                    key={lang}\n                    onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                  >\n                    {commonService.languages[lang]}\n                  </NavDropdown.Item>\n                ))}\n              </NavDropdown>\n            </Nav>\n          ) : (\n            <Nav className=\"ml-auto\">\n              <NavDropdown\n                title={commonService.languages[this.props.currentLang]}\n                id=\"basic-nav-dropdown\"\n                className=\"mr-3\"\n              >\n                {commonService.languagesList.map(lang => (\n                  <NavDropdown.Item\n                    key={lang}\n                    onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                  >\n                    {commonService.languages[lang]}\n                  </NavDropdown.Item>\n                ))}\n              </NavDropdown>\n            </Nav>\n          )}\n        </Navbar.Collapse>\n      </Navbar>\n    );\n  };\n\n  renderLanding = () => {\n    const { data } = this.state;\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-2\" style={{ fontSize: \"20px\" }}>{langService.translate('subtle-start-text-1', this.props.currentLang)}</div>\n          <div className=\"mb-2\" style={{ fontSize: \"20px\" }}>{langService.translate('subtle-start-text-2', this.props.currentLang, [data.settings.questions.length])}</div>\n          <div className=\"mb-4 d-flex flex-row\" style={{ fontSize: \"20px\" }}>{langService.translate('subtle-start-text-3-1', this.props.currentLang)}<div className=\"ml-1 mr-1\" style={{ fontWeight: \"600\" }}>{this.buildMaxTime()}{langService.translate('subtle-start-text-3-2', this.props.currentLang)}</div>{langService.translate('subtle-start-text-3-3', this.props.currentLang)}</div>\n          <Button size=\"lg\" onClick={this.onStart}>{langService.translate('subtle-start', this.props.currentLang)}</Button>\n        </div>\n      </Container>\n    );\n  };\n\n  renderMap = () => {\n    const { data, isShowTimer } = this.state;\n    return (\n      <Container className=\"py-4 subtle-test-map\">\n        <h2 className=\"mb-2 mt-2\">{langService.translate('subtle-intro-title', this.props.currentLang)}</h2>\n        <div className=\"map\">\n          <img\n            alt=\"イラスト\"\n            src={this.formatByLanguage(data.comicIntroductionSvgUrl)} />\n        </div>\n        <div className=\"actions\">\n          {isShowTimer && <Button variant=\"outline-secondary\" className=\"mr-2\" onClick={this.onMapClose}>{langService.translate('subtle-intro-back', this.props.currentLang)}</Button>}\n          {!isShowTimer && <Button className=\"ml-2\" onClick={this.onMapNext}>{langService.translate('subtle-intro-next', this.props.currentLang)}</Button>}\n        </div>\n      </Container>\n    );\n  };\n\n  renderQuestion = () => {\n    const { data, questionIndex } = this.state;\n    const now = Math.floor(questionIndex / data.settings.questions.length * 100);\n    const question = data.settings.questions[questionIndex] ? data.settings.questions[questionIndex] : {};\n    return (\n      <Container className=\"py-4 d-flex flex-column\">\n        <div className=\"subtle-test__header\">\n          <div className=\"subtle-test__header__text\">\n            {langService.translate('subtle-question', this.props.currentLang, [questionIndex + 1])}\n          </div>\n          <ProgressBar now={now} label={`${now}%`} />\n        </div>\n        <h2 className=\"d-flex justify-content-center align-items-center mb-4\">{question.text ? this.formatByLanguage(question.text) : 'Undefined'}</h2>\n        <div className=\"subtle-test-question\">\n          <div className=\"image\">\n            {question.image &&\n              <img\n                alt=\"イラスト\"\n                src={this.formatByLanguage(question.image)} />\n            }\n          </div>\n          <div className=\"answers-block\">\n            {/*<div className=\"title\">{langService.translate('subtle-title', this.props.currentLang)}</div>*/}\n            <div className=\"title\">{question.subtitle ? this.formatByLanguage(question.subtitle) : 'Undefined'}</div>\n            <div className=\"answers\">\n              <ListGroup>\n                {question.answer1 && <ListGroup.Item className=\"pointer\" onClick={() => this.onQuestionAnswer(1)} active={this.isSelectedAnswer(1)}>{this.formatByLanguage(question.answer1)}</ListGroup.Item>}\n                {question.answer2 && <ListGroup.Item className=\"pointer\" onClick={() => this.onQuestionAnswer(2)} active={this.isSelectedAnswer(2)}>{this.formatByLanguage(question.answer2)}</ListGroup.Item>}\n                {question.answer3 && <ListGroup.Item className=\"pointer\" onClick={() => this.onQuestionAnswer(3)} active={this.isSelectedAnswer(3)}>{this.formatByLanguage(question.answer3)}</ListGroup.Item>}\n              </ListGroup>\n            </div>\n            <div className=\"actions\">\n              {questionIndex > 0 && <Button variant=\"outline-secondary\" onClick={this.onQuestionBack}>{langService.translate('subtle-intro-back', this.props.currentLang)}</Button>}\n              <Button variant=\"outline-primary\" onClick={this.onQuestionMap}>{langService.translate('subtle-view-map', this.props.currentLang)}</Button>\n            </div>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderFinished = () => {\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-4\" style={{ fontSize: \"20px\" }}>{langService.translate('subtle-finish-title', this.props.currentLang)}</div>\n          <div>\n            <Button size=\"lg\" variant=\"outline-secondary\" className=\"mr-2\" onClick={this.onFinishedBack}>{langService.translate('subtle-finish-back', this.props.currentLang)}</Button>\n            <Button size=\"lg\" className=\"ml-2\" onClick={this.onFinishedResults}>{langService.translate('subtle-finish-results', this.props.currentLang)}</Button>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderFailed = () => {\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-4\" style={{ fontSize: \"20px\" }}>時間切れです。<br />\n            練習問題を読み直して、再度チャレンジしましょう!</div>\n          <div>\n            <Button size=\"lg\" className=\"ml-2\">再度チャレンジします</Button>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderResultText = (data, points, title) => {\n\n    let index = data.findIndex(item => points >= item.min && points <= item.max);\n    if (index === -1) {\n      return null;\n    }\n\n    return (\n      <>\n        <h4 className=\"mb-4\">{langService.translate(data[index].title, this.props.currentLang)}</h4>\n        <h5 className=\"mb-4\">{langService.translate(\"subtle-results-title-3\", this.props.currentLang, [title, points])}</h5>\n        <div>{langService.translate(data[index].details, this.props.currentLang)}</div>\n      </>\n    )\n  };\n\n  renderResults = () => {\n    const { resultsSelectedIndex } = this.state;\n    const totalCount = this.buildTotalCount();\n    const skills = this.buildSkills();\n\n    const radarData = [\n      {\n        data: {\n          imagination: skills.imagination / 12,\n          reaction: skills.reaction / 12,\n          empathy: skills.empathy / 12,\n          feeling: skills.feeling / 12,\n          flexibility: skills.flexibility / 12,\n        },\n        meta: { color: 'blue' }\n      },\n    ];\n\n    const captions = {\n      imagination: langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang),\n      reaction: langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang),\n      empathy: langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang),\n      feeling: langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang),\n      flexibility: langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang),\n    };\n\n    const texts = {\n      imagination: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            jp2: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            en: \"Your ability to imagine and be proactive is not enough. Please be careful not to misunderstand and cause problems between you and your co-workers and clients.\",\n            vn: \"Không đủ khả năng để tưởng tượng tình huống.Việc thiếu trí tưởng tượng,có thể dẫn đến cách nhìn sai lệch và thiếu thiện cảm từ những người xung quanh nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            jp2: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            en: \"If you improve the ability to imagine the situation more, you will become a proactive business person.  \",\n            vn: \"Bằng cách mở rộng khả năng tưởng tượng tình huống thêm một chút, bạn sẽ có thể có được sức mạnh để tiến lên phía trước một bước.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            jp2: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            en: \"Your ability to imagine and be proactive is excellent. Please keep your ability and be an attentive business person.\",\n            vn: \"Đủ năng lực tưởng tượng để có thể nắm bắt toàn bộ tình hình đầy đủ và chính xác. Sử dụng khả năng tưởng tượng của mình để mang lại cho đối phương những giá trị và lòng tốt một cách lịch sự .\"\n          }\n        },\n      ],\n      reaction: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            jp2: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Năng lực phản ứng không đủ. Trong giao tiếp trương tác giữa người với người nó có thể là nguyên nhân gây ra sự hiểu nhầm từ phía đối phương nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            jp2: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Bằng việc tăng năng lực phản ứng của bản thân thêm 1 bước nữa thì đối phương sẽ có ấn tượng với bạn tốt đẹp hơn. Không chỉ về mặt ngôn ngữ, mà chúng ta hãy sử dụng thêm các hành động bổ trợ phi ngôn ngữ như là sự hưởng ứng, thủ thỉ, nét mặt tươi cười, giao tiếp bằng mắt.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            jp2: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            en: \"Your ability to react is excellent. Please feel, understand and react. Let's combine with the other abilities in various situations. \",\n            vn: \"Có đủ năng lực phản ứng. Hãy cảm nhận, quan sát, trong khi đó hãy nghĩ xem nên phản ứng thế nào, hãy sử dụng thêm sức mạnh khác nữa để phát huy năng lực phản ứng.\"\n          }\n        },\n      ],\n      empathy: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            jp2: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            en: \"Your ability to empathize is not enough. Please cultivate the ability to empathize because it is very important in terms of emotional communication skills.\",\n            vn: \"Không đủ sự đồng cảm để có cùng cảm nhận và suy nghĩ với đối phương. Vì nó là một loại năng lực rất quan trọng trong giao tiếp bằng cảm xúc nên cẩn trau dồi bằng cách luyện tập.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            jp2: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            en: \"If you improve your ability to empathize more, you will become a reliable business person and can close the distance between you and others.\",\n            vn: \"Bằng cách nâng cao năng lực đồng cảm thêm một bậc nữa thì sẽ có sự thay đổi to lớn rằng bạn sẽ mang lại cho  đối phương cảm giác đáng tin tưởng, và sẽ cởi mở với bạn hơn.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            jp2: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            en: \"Your ability to empathize is excellent. When you communicate with others on business, your ability to empathize will help yourself close the distance between you and others and build your network.\",\n            vn: \"Có đủ sự đồng cảm. Trong hành động mọi người có thể nương tựa vào nhau, hòa đồng với nhau, vì vậy hãy vừa phát huy năng lực đồng cảm và mở lòng thêm nữa.\"\n          }\n        },\n      ],\n      feeling: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            jp2: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            en: \"Your ability to feel and understand is not enough. Please imagine how others feel and think. To make it a habit to put yourself in other's shoes is very important.\",\n            vn: \"Không đủ năng lực phán đoán cảm xúc của người khác. Hãy luôn có thói quen nghĩ về việc đối phương bây giờ đang cảm thấy gì, nghĩ gì, suy ngẫm về điều gì.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            jp2: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            en: \"If you cultivate your ability to feel and understand more, you can know the other's suffering, joy and sadness. Human feelings can't be simulated, but can be felt and understood.\",\n            vn: \"Bằng cách nâng cao năng lực phán đoán cảm xúc một bước nữa thì bạn có khả năng cảm nhận chính xác nỗi đau, niềm hạnh phúc, sự đau buồn trong tinh thần của đối phương. Vì cảm xúc của con người là không thể tính toán được nên hãy cố gắng hết sức để nắm bắt được nó.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            jp2: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            en: \"Your ability to feel and understand is excellent. In terms of leadership and management, to feel with your five senses will help yourself greatly. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng lực phán đoán cảm xúc. Ứng với từng đối tượng, việc vừa sử dụng năm giác quan vừa phán đoán cảm xúc thì chắc chắn sẽ giúp ích rất nhiều cho bạn vào việc quản lí và lãnh đạo.\"\n          }\n        },\n      ],\n      flexibility: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            jp2: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            en: \"Your ability to be flexible is not enough. If you are not flexible, it will cause some serious problems in terms of business communication. Please try to accept the other's advice and feedback at first.\",\n            vn: \"Không đủ tính linh hoạt. Các khái niệm cố định và các giá trị cứng nhắc đôi khi sẽ dẫn đến những vấn đề nghiêm trọng trong giao tiếp như là hiểu nhầm hay ganh ghét. Vì vậy, đầu tiên hãy tiếp nhận đối phương và môi trường xung quanh sau đó hãy bắt đầu.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            jp2: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            en: \"If you cultivate your ability to be flexible more, your communication skills will be improved because you can accept various values, cultures and ideas.\",\n            vn: \"Hi vọng là hãy tăng thêm tính linh hoạt một bước nữa. Việc tăng tính linh hoạt không hề phá hủy phong cách của bạn, trái lại, nó phát triển phong cách của bạn vì bạn có thể chuyển sang việc tiếp thu những tư tưởng văn hóa, giá trị quan hay những suy nghĩ khác nhau.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            jp2: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            en: \"Your ability to be flexible is excellent. From the viewpoint of others, you will make communication go smoothly and encourage collaboration among your team. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng tính linh hoạt. Tính linh hoạt của bạn là do nhìn từ phía đối phương, do đó không chỉ tạo điều kiện cho việc giao tiếp suôn sẻ, mà còn giúp bạn nuôi dưỡng được không gian tự do cá nhân. Vì vậy, hãy giữ cho bạn luôn luôn linh hoạt và cải thiện hơn nữa.\"\n          }\n        },\n      ],\n    };\n\n    return (\n      <Container className=\"py-5 subtle-test-results\">\n        <div className=\"header\">\n          <h3>{langService.translate('subtle-results-title-0', this.props.currentLang)}</h3>\n          <h3 className=\"points\">\n            <div>{langService.translate('subtle-results-title-1', this.props.currentLang)}</div>\n            <div>{langService.translate('subtle-results-title-2', this.props.currentLang, [totalCount])}</div>\n          </h3>\n        </div>\n        <div className=\"content\">\n          {/*<div className=\"row\">*/}\n          <div className=\"radar\">\n            <RadarChart\n              captions={captions}\n              data={radarData}\n\n            />\n          </div>\n          <div className=\"tabs\">\n            <Nav variant=\"pills\">\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 0 })} active={resultsSelectedIndex === 0}>\n                  {langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 1 })} active={resultsSelectedIndex === 1}>\n                  {langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 2 })} active={resultsSelectedIndex === 2}>\n                  {langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 3 })} active={resultsSelectedIndex === 3}>\n                  {langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 4 })} active={resultsSelectedIndex === 4}>\n                  {langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n            </Nav>\n            <div className=\"tabs-content\">\n              {resultsSelectedIndex === 0 && (this.renderResultText(texts['imagination'], skills.imagination, langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 1 && (this.renderResultText(texts['reaction'], skills.reaction, langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 2 && (this.renderResultText(texts['empathy'], skills.empathy, langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 3 && (this.renderResultText(texts['feeling'], skills.feeling, langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 4 && (this.renderResultText(texts['flexibility'], skills.flexibility, langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang)))}\n            </div>\n          </div>\n          {/*</div>*/}\n        </div>\n      </Container>\n    );\n  };\n\n  render() {\n    const { loading, data } = this.state;\n\n    if (loading || !data) {\n      return (\n        <div />\n      );\n    }\n    return (\n      <Div100vh>\n        {this.renderHeader()}\n        <div className=\"d-flex\" style={{ paddingTop: \"40px\", height: \"100%\", backgroundColor: \"white\" }}>\n          {this.state.isLanding && this.renderLanding()}\n          {this.state.isMap && this.renderMap()}\n          {this.state.isQuestion && this.renderQuestion()}\n          {this.state.isFinished && this.renderFinished()}\n          {this.state.isResults && this.renderResults()}\n        </div>\n      </Div100vh>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(SubtleTestPage);\n","import { API, graphqlOperation } from \"aws-amplify\";\nimport { GetAllNursingFreeResults, GetAdminNursingFreeResults, GetNursingFreeResults, GetNursingFreeResult, CreateNursingFreeResult } from \"./graphql/nursing-free-results\";\nimport {GetContent} from \"./graphql/contents\";\n\nexport const fetchAllNursingFreeResults = async (userId) => {\n  const response = await API.graphql(graphqlOperation(\n    GetAllNursingFreeResults,\n    { userId },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAllNursingFreeResults;\n};\n\nexport const fetchAdminNursingFreeResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetAdminNursingFreeResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getAdminNursingFreeResults;\n};\n\nexport const fetchNursingFreeResults = async () => {\n  const response = await API.graphql(graphqlOperation(\n    GetNursingFreeResults,\n    { },\n    \"AMAZON_COGNITO_USER_POOLS\"\n  ));\n\n  return response.data.getNursingFreeResults;\n};\n\nexport const fetchNursingFreeResult = async (id) => {\n  // const response = await API.graphql(graphqlOperation(\n  //   GetNursingResult,\n  //   { id },\n  //   \"AMAZON_COGNITO_USER_POOLS\"\n  // ));\n  const response = await API.graphql({\n    query: GetNursingFreeResult,\n    variables: { id },\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.getNursingFreeResult;\n};\n\nexport const createNursingFreeResult = async (input) => {\n  // const response = await API.graphql(graphqlOperation(\n  //   CreateNursingResult,\n  //   { input },\n  //   \"AMAZON_COGNITO_USER_POOLS\"\n  // ));\n  const response = await API.graphql({\n    query: CreateNursingFreeResult,\n    variables: { input },\n    authMode: \"API_KEY\",\n  });\n\n  return response.data.createNursingFreeResult;\n};\n","export const GetNursingFreeResults = `\n  query {\n    getNursingFreeResults {\n        items {\n            id\n            results\n            createdAt\n        }\n    }\n  }\n`;\n\nexport const GetAllNursingFreeResults = `\n  query GetAllNursingFreeResults($userId: ID!){\n    getAllNursingResults(userId: $userId) {\n      items {\n        id\n        results\n        createdAt\n      }\n    }\n  }\n`;\n\nexport const GetAdminNursingFreeResults = `\n    query GetAdminNursingFreeResults{\n        getAdminNursingFreeResults {\n            items {\n                id\n                results\n                createdAt\n                user {\n                    id\n                    name\n                    parentId\n                }\n            }\n        }\n    }\n`;\n\nexport const GetNursingFreeResult = `\n  query GetNursingFreeResult($id: ID!) {\n    getNursingFreeResult(id: $id) {\n      id\n      results\n    }\n  }\n`;\n\nexport const CreateNursingFreeResult = `\n  mutation CreateNursingFreeResult($input: NursingResultInput!) {\n    createNursingFreeResult(input: $input) {\n      id\n    }\n  }\n`;\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport {Container, Navbar, Nav, Button, ProgressBar, ListGroup, NavDropdown, Form} from \"react-bootstrap\";\nimport * as contentsService from '../../../services/contents';\nimport * as nursingResultsService from '../../../services/nursing-results';\nimport * as nursingFreeResultsService from '../../../services/nursing-free-results';\nimport 'react-svg-radar-chart/build/css/index.css'\nimport \"./index.scss\";\nimport * as commonService from \"../../../services/common\";\nimport * as langService  from \"../../../services/lang\";\nimport * as accountService from \"../../../services/account\";\nimport * as nursingResultsMiddleware from \"../../../services/nursing/results\";\nimport uuid from \"uuid\";\nimport {Auth} from \"aws-amplify\";\nimport {\n  FacebookShareButton,\n  TwitterShareButton,\n} from \"react-share\";\n\nclass NursingPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      questions: [],\n      maxTime: 30 * 60 * 1000,\n      time: 0,\n      startTime: null,\n\n      isLanding: false,\n      isQuestion: false,\n      isAnket: false,\n      isFinished: false,\n      isResults: false,\n      isShowTimer: false,\n      data: null,\n      results: [],\n      resultsOther: null,\n      questionIndex: 0,\n      resultsSelectedIndex: 0,\n\n      account: null,\n      id: null,\n\n      anketName: {},\n      anketGender: {},\n      anketAge: {},\n      anketLocation: {},\n\n\n      touched: false,\n      loading: false,\n    };\n  }\n\n  async componentDidMount() {\n    this.setState({loading: true});\n    try {\n      await Auth.currentAuthenticatedUser();\n      let accountResponse = await accountService.fetchAccount();\n      this.setState({account: accountResponse})\n    } catch (e) {\n      // do noting\n    }\n    this.fetchData();\n  }\n\n  fetchData = async() => {\n    const {testId} = this.props.match.params;\n    try {\n      let content = await contentsService.fetchContent(this.state.account ? 'NURSING' : 'NURSING_FREE');\n\n      let results = [];\n      let resultsOther = null;\n      if (testId) {\n        if (this.state.account) {\n          let resultsResponse = await nursingResultsService.fetchNursingResult(testId);\n          let tmpResults = JSON.parse(resultsResponse.results);\n          let {items, ...other} = tmpResults;\n          results = items\n          resultsOther = other;\n        } else {\n          let resultsResponse = await nursingFreeResultsService.fetchNursingFreeResult(testId);\n          let tmpResults = JSON.parse(resultsResponse.results);\n          let {items, ...other} = tmpResults;\n          results = items\n          resultsOther = other;\n        }\n\n      }\n\n      if (content) {\n        content.settings = JSON.parse(content.settings);\n      }\n\n      let state = {\n        loading: false,\n        results,\n        resultsOther,\n      };\n      state.data = content;\n      if (results.length > 0) {\n        state.isResults = true;\n      } else if (content) {\n        state.isLanding = true;\n      }\n\n      this.setState(state);\n\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  componentWillUnmount() {\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n  }\n\n  onStart = () => {\n    // this.startTimer();\n    // this.setState({isLanding: false, isQuestion: true, isShowTimer: true});\n    this.setState({isLanding: false, isQuestion: true});\n  };\n\n  onCancel = () => {\n    const {account} = this.state;\n    window.open(account ? \"/\" : \"https://kibi-global.jp/kidukky/\")\n  };\n\n  onQuestionBack = () => {\n    const { results } = this.state;\n    let newResults = [...results]\n    if (newResults.length > 0) {\n      newResults.splice((newResults.length - 1, 1));\n    }\n    this.setState({questionIndex: this.state.questionIndex - 1, results: newResults});\n  };\n\n  onAnketBack = () => {\n    const { results } = this.state;\n    let newResults = [...results]\n    if (newResults.length > 0) {\n      newResults.splice((newResults.length - 1, 1));\n    }\n    this.setState({results: newResults, isAnket: false, isQuestion: true});\n  };\n\n  onFinishedBack = () => {\n    this.setState({isQuestion: true, isFinished: false})\n  };\n\n  onFinishedResults = async () => {\n    const {results, account} = this.state;\n\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n\n    try {\n      const user = await Auth.currentAuthenticatedUser();\n      let id = uuid.v4()\n      let input = {\n        id,\n        userId: user.getUsername(),\n        results: JSON.stringify({\n\n          items: results,\n        }),\n      };\n      await nursingResultsService.createNursingResult(input);\n      // this.setState({isFinished: false, isShowTimer: false, isResults: true,})\n      this.setState({isFinished: false, isResults: true, id})\n    } catch (e) {\n      console.log(e);\n      this.setState({ loading: false });\n    }\n  };\n\n  onQuestionAnswer = (index) => {\n    const {data, results, questionIndex, account} = this.state;\n    const question = data.settings.questions[questionIndex];\n\n    const positiveStroke = question[`answer${index}PositiveStroke`] && question[`answer${index}PositiveStroke`].hasOwnProperty('value') ? parseInt( question[`answer${index}PositiveStroke`].value, 0) : 0\n    const item = {\n      answer: index,\n      positiveStroke,\n      negativeStroke: question[`answer${index}NegativeStroke`] && question[`answer${index}NegativeStroke`].hasOwnProperty('value') ? parseInt( question[`answer${index}NegativeStroke`].value, 0) : 0,\n      discount: question[`answer${index}Discount`] && question[`answer${index}Discount`].hasOwnProperty('value') ? parseInt( question[`answer${index}Discount`].value, 0) : 0,\n\n      flexibility: positiveStroke > 0 ? (question[`flexibility`] && question[`flexibility`].hasOwnProperty('value') ? parseInt( question[`flexibility`].value, 0) : 0) : 0,\n      imagination: positiveStroke > 0 ? (question[`imagination`] && question[`imagination`].hasOwnProperty('value') ? parseInt( question[`imagination`].value, 0) : 0) : 0,\n      reaction: positiveStroke > 0 ? (question[`reaction`] && question[`reaction`].hasOwnProperty('value') ? parseInt( question[`reaction`].value, 0) : 0) : 0,\n      empathy: positiveStroke > 0 ? (question[`empathy`] && question[`empathy`].hasOwnProperty('value') ? parseInt( question[`empathy`].value, 0) : 0) : 0,\n      feeling: positiveStroke > 0 ? (question[`feeling`] && question[`feeling`].hasOwnProperty('value') ? parseInt( question[`feeling`].value, 0) : 0) : 0,\n    };\n\n    if (results[questionIndex]) {\n      results[questionIndex] = item;\n      this.setState({results, questionIndex: questionIndex + 1})\n    } else {\n      results.push(item);\n\n      if (questionIndex + 1 < (account ? 30 : 10)) {\n        this.setState({results, questionIndex: questionIndex + 1})\n      } else {\n        if (account) {\n          this.setState({results, isQuestion: false, isFinished: true})\n        } else {\n          this.setState({results, isQuestion: false, isAnket: true})\n        }\n      }\n    }\n\n  };\n\n  isSelectedAnswer = (index) => {\n    const {results, questionIndex} = this.state;\n    if (results[questionIndex]) {\n      return results[questionIndex].answer === index;\n    } else {\n      return false;\n    }\n  };\n\n  startTimer = () => {\n    this.setState({\n      startTime: new Date()\n    });\n    this.timer = setInterval(() => this.setState({\n      time: Date.now() - this.state.startTime\n    }), 1);\n  };\n\n  formatByLanguage = (value) => {\n    let array = typeof value === \"string\" ? JSON.parse(value) : value;\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return \"Undefined\";\n    }\n  };\n\n  buildTime = () => {\n    const currentTime = this.state.maxTime - this.state.time;\n    const minutes = '' + (Math.floor(currentTime / 1000 / 60));\n    const seconds = '' + (Math.floor(currentTime / 1000) - (minutes * 60));\n\n    return `${minutes.padStart(2, '0')}:${seconds.padStart(2, '0')}`;\n  };\n\n  buildMaxTime = () => {\n    return Math.floor(this.state.maxTime / 60 / 1000);\n  };\n\n  getFormControlValue = (fieldName) => {\n    // if (this.state[fieldName].separatedLanguage) {\n    //   let value = this.state[fieldName][this.state.selectedLanguage];\n    //   return value ? value : \"\";\n    // } else {\n      let value = this.state[fieldName].value;\n      return value ? value : \"\";\n    // }\n  };\n\n  onFormControlChanged = (fieldName, value) => {\n    let data = {...this.state[fieldName]};\n\n    // if (this.state[fieldName].separatedLanguage) {\n    //   data[this.state.selectedLanguage] = value;\n    // } else {\n      data.value = value;\n    // }\n\n    let state = {};\n    state[fieldName] = data;\n\n    this.setState(state);\n  };\n\n  formFieldRequiredValidation = (fieldName, isTouched = false) => {\n    if (!isTouched && !this.state.touched) {\n      return true;\n    }\n\n    // if (this.state[fieldName].separatedLanguage) {\n    //   for (let i in this.state.languages) {\n    //     let value = this.state[fieldName][this.state.languages[i]];\n    //     if (!(value && value.length > 0)) return false;\n    //   }\n    //   return true;\n    // } else {\n      let value = this.state[fieldName].value;\n      return value && value.length > 0;\n    // }\n\n  };\n\n  onAnketDone = () => {\n    document\n      .getElementById('form')\n      .dispatchEvent(new Event('submit', { cancelable: true }))\n  };\n\n  onAnketSubmit = async (event) => {\n    event.preventDefault();\n    this.setState({error: null, touched: true});\n    if (!this.formFieldRequiredValidation(\"anketName\")) return;\n    if (!this.formFieldRequiredValidation(\"anketGender\")) return;\n    if (!this.formFieldRequiredValidation(\"anketAge\")) return;\n    if (!this.formFieldRequiredValidation(\"anketLocation\")) return;\n\n    const {results} = this.state;\n\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n\n\n    try {\n      let id = uuid.v4()\n      let input = {\n        id,\n        userId: `guest-${id}`,\n        results: JSON.stringify({\n          // totalPositiveStroke,\n          // totalNegativeStroke,\n          // totalDiscount,\n          anket: {\n            name: this.getFormControlValue('anketName'),\n            gender: this.getFormControlValue('anketGender'),\n            age: this.getFormControlValue('anketAge'),\n            location: this.getFormControlValue('anketLocation'),\n          },\n          items: results,\n        }),\n      };\n      await nursingFreeResultsService.createNursingFreeResult(input);\n      // this.setState({isFinished: false, isShowTimer: false, isResults: true,})\n      this.setState({isAnket: false, isResults: true, id})\n    } catch (e) {\n      console.log(e);\n      this.setState({ loading: false });\n    }\n\n  };\n\n  renderHeader = () => {\n    const {account} = this.state;\n    return (\n      <Navbar className=\"nursing__navbar\" fixed=\"top\" expand=\"lg\">\n        <Navbar.Brand\n          style={{ margin: \"-10px 0\", paddingTop: 8, paddingBottom: 8 }}\n          className=\"cursor-hover\"\n        >\n          {account ? (\n            <a href=\"/\">\n              <img src={'/images/nursing/kiduki-logo.png'}\n                   width={113}\n                   height={56}\n              />\n            </a>\n          ) : (\n            <a href=\"https://kibi-global.jp/kidukky/\" target=\"_blank\">\n              <img src={'/images/nursing/kiduki-logo.png'}\n                   width={113}\n                   height={56}\n              />\n            </a>\n          )}\n\n        </Navbar.Brand>\n      </Navbar>\n    );\n  };\n\n  renderLanding = () => {\n    const {data} = this.state;\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"nursing-landing__banner\">\n            <img src={'/images/nursing/kiduki-logo.png'}/>\n            きづっきーは<br/>\n            全18種類の家電に例えて<br/>\n            あなたのコミュニケーションタイプを診断します。<br/>\n            <br/>\n            あなたは何タイプ?!<br/>\n            さぁ診断してみよう!\n          </div>\n          <Button size=\"lg\" className=\"nursing-landing__action\" onClick={this.onStart}>\n            診断スタート\n          </Button>\n        </div>\n      </Container>\n    );\n  };\n\n  renderQuestion = () => {\n    const {data, questionIndex, account} = this.state;\n    // const now = Math.floor(questionIndex / data.settings.questions.length * 100);\n    const now = Math.floor(questionIndex / (account ? 30 : 10) * 100);\n    const question = data.settings.questions[questionIndex]? data.settings.questions[questionIndex] : {};\n    // const answers = account ? [1,2,3] : commonService.shuffleArr([1,2,3]);\n    const answers = commonService.shuffleArr([1,2,3]);\n    return (\n      <Container className=\"py-4 d-flex flex-column\" style={{marginTop: 20}}>\n        <div className=\"nursing__header\">\n          <div className=\"nursing__header__text\">\n            {langService.translate('subtle-question', this.props.currentLang, [questionIndex + 1])}\n          </div>\n          <ProgressBar variant=\"warning\" now={now} label={''} />\n        </div>\n        <h2 className=\"nursing-question__title\">\n          {question.text ? this.formatByLanguage(question.text) : 'Undefined'}\n        </h2>\n        <div className=\"nursing-question\">\n          {account && (\n            <div className=\"nursing-question__image\">\n              {question.image &&\n              <img\n                alt=\"イラスト\"\n                src={this.formatByLanguage(question.image)} />\n              }\n            </div>\n          )}\n          <div className=\"nursing-question__answers-block\">\n            <div className=\"nursing-question__answers-block__title\">{question.subtitle ? this.formatByLanguage(question.subtitle) : 'Undefined'}</div>\n            {account ? (\n              <div className=\"answers\">\n                <ListGroup>\n                  {answers.map((item) => (\n                    <ListGroup.Item key={item} className=\"pointer\" onClick={() => this.onQuestionAnswer(item)}\n                                    active={this.isSelectedAnswer(item)}>{this.formatByLanguage(question[`answer${item}`])}</ListGroup.Item>\n                  ))}\n                </ListGroup>\n              </div>\n            ) : (\n              <div className=\"nursing-question__answers-block__answers\">\n                {answers.map((item) => (\n                  <div key={item} className=\"nursing-question__answers-block__answers__item\" onClick={() => this.onQuestionAnswer(item)}>{this.formatByLanguage(question[`answer${item}`])}</div>\n                ))}\n              </div>\n            )\n            }\n          </div>\n        </div>\n        <div className=\"nursing-question__answers-block__actions\">\n          <Button size=\"lg\" variant=\"outline-secondary\" onClick={this.onCancel}>途中でやめる</Button>\n          {questionIndex > 0 && <Button size=\"lg\" variant=\"outline-secondary\" className=\"ml-2\" onClick={this.onQuestionBack}>ひとつ戻る</Button>}\n        </div>\n      </Container>\n    );\n  };\n\n  renderAnket = () => {\n    return (\n      <Container className=\"py-4 d-flex flex-column\" style={{marginTop: 20}}>\n\n        <p className=\"nursing-anket__title\">あなたについて、宜ければ教えてください</p>\n\n        <Form id=\"form\" className=\"mt-4\" onSubmit={this.onAnketSubmit}>\n          <Form.Group>\n            <Form.Label><span className=\"nursing-anket__label\">ニックネーム</span></Form.Label>\n            <Form.Control required\n                          type=\"text\"\n                          value={this.getFormControlValue('anketName')}\n                          onChange={(e) => this.onFormControlChanged(\"anketName\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"anketName\")} />\n            <Form.Control.Feedback type=\"invalid\">\n              ニックネームを入力してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label><span className=\"nursing-anket__label\">性別</span></Form.Label>\n            <Form.Control required={true}\n                          as=\"select\"\n                          value={this.getFormControlValue('anketGender')}\n                          onChange={(e) => this.onFormControlChanged(\"anketGender\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"anketGender\")}>\n\n                <option value=\"\"></option>\n                <option value=\"male\">男性</option>\n                <option value=\"female\">女性</option>\n                <option value=\"other\">その他</option>\n            </Form.Control>\n            <Form.Control.Feedback type=\"invalid\">\n              性別を選択してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label><span className=\"nursing-anket__label\">年代</span></Form.Label>\n            <Form.Control required={true}\n                          as=\"select\"\n                          value={this.getFormControlValue('anketAge')}\n                          onChange={(e) => this.onFormControlChanged(\"anketAge\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"anketAge\")}>\n\n              <option value=\"\"></option>\n              <option value=\"10\">10代</option>\n              <option value=\"20\">20代</option>\n              <option value=\"30\">30代</option>\n              <option value=\"40\">40代</option>\n              <option value=\"50\">50代</option>\n              <option value=\"60\">60代</option>\n              <option value=\"70\">70代</option>\n              <option value=\"80\">80代</option>\n              <option value=\"90\">90代</option>\n            </Form.Control>\n            <Form.Control.Feedback type=\"invalid\">\n              性別を選択してください\n            </Form.Control.Feedback>\n          </Form.Group>\n          <Form.Group>\n            <Form.Label><span className=\"nursing-anket__label\">住んでいるのは</span></Form.Label>\n            <Form.Control required={true}\n                          as=\"select\"\n                          value={this.getFormControlValue('anketLocation')}\n                          onChange={(e) => this.onFormControlChanged(\"anketLocation\", e.target.value)}\n                          isInvalid={!this.formFieldRequiredValidation(\"anketLocation\")}>\n\n              <option value=\"\"></option>\n              {commonService.prefectureList.map((item, index) => (\n                <option key={index} value={item.key}>{item.label}</option>\n              ))}\n            </Form.Control>\n            <Form.Control.Feedback type=\"invalid\">\n              住んでいるのはを選択してください\n            </Form.Control.Feedback>\n          </Form.Group>\n        </Form>\n\n        <Button size=\"lg\" className=\"nursing-anket__action\" onClick={this.onAnketDone}>\n          診断結果を見る\n        </Button>\n\n        <div style={{marginTop: 30, display: 'flex', justifyContent: 'center'}}>\n          <Button size=\"lg\" variant=\"outline-secondary\" onClick={this.onCancel}>途中でやめる</Button>\n          <Button size=\"lg\" variant=\"outline-secondary\" className=\"ml-2\" onClick={() => this.onAnketBack()}>ひとつ戻る</Button>\n        </div>\n\n      </Container>\n    );\n  };\n\n  renderFinished = () => {\n    const {account} = this.state;\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-4\" style={{fontSize: \"20px\"}}>お疲れさまでした!</div>\n          <div>\n            <Button size=\"lg\" style={{\n              backgroundColor: '#6FF381',\n              fontSize: \"25px\",\n              fontWeight: 'bold',\n              border: 'unset',\n              borderRadius: 25,\n              minWidth: '40vw',\n              minHeight: '50px',\n              marginTop: 20,\n            }} onClick={this.onFinishedResults}>\n              {account ? '診断結果を見る' : '提出する'}\n            </Button>\n\n            <div style={{marginTop: 30, display: 'flex', justifyContent: 'center'}}>\n              <Button size=\"lg\" variant=\"outline-secondary\" onClick={this.onCancel}>途中でやめる</Button>\n              <Button size=\"lg\" variant=\"outline-secondary\" className=\"ml-2\" onClick={() => this.setState({isFinished: false, isQuestion: true})}>ひとつ戻る</Button>\n            </div>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderFailed = () => {\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-4\" style={{fontSize: \"20px\"}}>時間切れです。<br />\n            練習問題を読み直して、再度チャレンジしましょう!</div>\n          <div>\n            <Button size=\"lg\" className=\"ml-2\">再度チャレンジします</Button>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderResults = () => {\n    const {results, id, account} = this.state;\n\n    const nickname = account ? account.name : this.getFormControlValue('anketName');\n    const {\n      typeImage,\n      textTypeLong,\n      textBubble,\n      textBanner,\n      textBannerText,\n      textAdvice,\n      textShare,\n      freeUrl,\n\n      totalCorrect,\n      totalPositiveStroke,\n      totalNegativeStroke,\n      totalDiscount,\n    } = nursingResultsMiddleware.buildResult({results, id, isFree: !account, nickname})\n\n    return (\n      <div className=\"nursing-results\">\n        <div className=\"nursing-results__container\">\n          <div className=\"nursing-results__container__name\">{nickname}さんは…</div>\n          {/*<div>id: {id}</div>*/}\n          {/*<div>totalCorrect: {totalCorrect}</div>*/}\n          {/*<div>totalPositiveStroke: {totalPositiveStroke}</div>*/}\n          {/*<div>totalNegativeStroke: {totalNegativeStroke}</div>*/}\n          {/*<div>totalDiscount: {totalDiscount}</div>*/}\n          <div className=\"nursing-results__container__type-container\">\n            <div className=\"nursing-results__container__type-container__title\">{textTypeLong}</div>\n            <div className=\"nursing-results__container__type-container__image-container\">\n              <img src={`/images/nursing/types/${typeImage}.png`}\n                   width={200}\n                   height={200}\n              />\n              <div className=\"nursing-results__container__type-container__image-container__bubble\">\n                <div className=\"nursing-results__container__type-container__image-container__bubble__arrow\"/>{textBubble}\n              </div>\n            </div>\n          </div>\n          <div className=\"nursing-results__container__banner\">{textBanner}</div>\n          <div style={{padding: 30}}>↑スクリーンショットしてみんなにシェアしてね</div>\n        </div>\n\n        <div className=\"nursing-results__footer\">\n          {!account && (\n            <>\n              <div className=\"nursing-results__footer__sns\">\n                <div style={{width: 70}} className=\"nursing-results__footer__sns__image\"/>\n                <div className=\"d-flex flex-column\">\n                  <div className=\"nursing-results__footer__sns__title\">友達や家族、恋人にもやってみよう</div>\n                  <div className=\"d-flex flex-row justify-content-between mt-3\">\n                    <div>\n                      <FacebookShareButton quote={textShare} url={freeUrl}>\n                        <img src={'/images/nursing/facebook.svg'} width={70}/>\n                      </FacebookShareButton>\n                    </div>\n                    <div>\n                      <TwitterShareButton title={textShare} url={freeUrl}>\n                        <img src={'/images/nursing/twitter.svg'} width={70}/>\n                      </TwitterShareButton>\n                    </div>\n                  </div>\n\n                </div>\n              </div>\n              <div className=\"nursing-results__footer__block1\">{textShare} {freeUrl}</div>\n            </>\n          )}\n\n          <div className=\"nursing-results__container__text\">{textBannerText}</div>\n\n          <div className=\"nursing-results__footer__message\">\n            <div className=\"nursing-results__footer__message__image\"><img src={'/images/nursing/message.svg'} width={70}/></div>\n            <div className=\"d-flex flex-column\">\n              <div className=\"nursing-results__footer__message__title\">ワンポイントアドバイス</div>\n              <div className=\"nursing-results__footer__message__description\">{textAdvice}</div>\n            </div>\n          </div>\n\n          {!account && (\n            <Button size=\"lg\" className=\"nursing-anket__action\" onClick={() => window.open(\"https://kibi-global.jp/kidukky/\", \"_blank\")}>\n              製品ページはこちら\n            </Button>\n          )}\n        </div>\n      </div>\n    );\n  };\n\n  render() {\n    const {loading, data} = this.state;\n\n    if (loading || !data) {\n      return (\n        <div/>\n      );\n    }\n    return (\n      <div className={this.state.isResults ? \"\" : \"nursing\"}>\n      {/*<Div100vh>*/}\n        {this.renderHeader()}\n        <div className=\"d-flex\" style={{ paddingTop: \"40px\", height: \"100%\", backgroundColor: \"white\" }}>\n          {this.state.isLanding && this.renderLanding()}\n          {this.state.isQuestion && this.renderQuestion()}\n          {this.state.isAnket && this.renderAnket()}\n          {this.state.isFinished && this.renderFinished()}\n          {this.state.isResults && this.renderResults()}\n        </div>\n      {/*</Div100vh>*/}\n      </div>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(NursingPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Div100vh from \"react-div-100vh\";\nimport {Button, Container, Nav, Navbar, NavDropdown} from \"react-bootstrap\";\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport {faArrowLeft, faArrowRight} from '@fortawesome/free-solid-svg-icons'\nimport * as contentsService from '../../../services/contents';\nimport \"./index.scss\";\nimport {LinkContainer} from \"react-router-bootstrap\";\nimport * as commonService from \"../../../services/common\";\nimport * as rootActions from \"../../../store/root/actions\";\nimport { Auth } from 'aws-amplify';\n\nclass ComicSpiritPage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      authUser: null,\n      isMap: false,\n      isComic: false,\n      pageIndex: 0,\n      data: null,\n      loading: false,\n    };\n  }\n\n  async componentDidMount() {\n    const {contentId} = this.props.match.params;\n    this.setState({loading: true});\n    let authUser = null;\n    try {\n      authUser = await Auth.currentAuthenticatedUser();\n    } catch (e) {\n      // do noting\n    }\n    try {\n\n      let content = await contentsService.fetchContent(contentId);\n\n      if (content) {\n        content.comicPages = JSON.parse(content.comicPages);\n      }\n      let state = {\n        loading: false,\n        data: content,\n        isMap: !!content,\n        authUser,\n      };\n\n      this.setState(state);\n\n    } catch (e) {\n      console.log(e);\n    }\n  }\n\n  formatByLanguage = (value) => {\n    try {\n      let array = typeof value === \"string\" ? JSON.parse(value) : value;\n      if (array[this.props.currentLang]) {\n        return array[this.props.currentLang];\n      } else {\n        return \"Undefined\";\n      }\n    } catch (e) {\n      return null;\n    }\n  };\n\n  onNext = () => {\n    this.setState({isMap: false, isComic: true});\n  };\n\n  onNextPage = () => {\n    const {data, pageIndex} = this.state;\n    if (pageIndex + 1 < data.comicPages.length) {\n      this.setState({pageIndex: pageIndex + 1});\n    }\n  };\n\n  onPreviousPage = () => {\n    const {pageIndex} = this.state;\n    if (pageIndex - 1 >= 0) {\n      this.setState({pageIndex: this.state.pageIndex - 1});\n    }\n  };\n\n  onNextComic = () => {\n    const {comicSpiritIds} = this.props;\n    const {contentId} = this.props.match.params;\n\n    const comicIndex = comicSpiritIds.indexOf(contentId);\n    const nextComicId = comicSpiritIds[comicIndex + 1];\n\n    this.props.history.push(`/comic-spirit/${nextComicId}`);\n  };\n\n  renderHeader = () => {\n    return (\n      <Navbar bg=\"white\" fixed=\"top\" expand=\"lg\">\n        <Navbar.Brand\n          style={{ margin: \"-10px 0\", padding: 0 }}\n          className=\"cursor-hover\"\n        >\n          <LinkContainer to=\"/\">\n            <div>kibi-<span style={{color: \"#0F80B4\"}}>learning</span>.jp</div>\n          </LinkContainer>\n        </Navbar.Brand>\n        <Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n        <Navbar.Collapse id=\"basic-navbar-nav\">\n          <Nav>\n            <LinkContainer to={`/`} activeClassName=\"\">\n              <Nav.Link>マーケットへ</Nav.Link>\n            </LinkContainer>\n          </Nav>\n          <Nav className=\"ml-auto\">\n            <NavDropdown\n              title={commonService.languages[this.props.currentLang]}\n              id=\"basic-nav-dropdown\"\n              className=\"mr-3\"\n            >\n              {commonService.languagesList.map(lang => (\n                <NavDropdown.Item\n                  key={lang}\n                  onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                >\n                  {commonService.languages[lang]}\n                </NavDropdown.Item>\n              ))}\n            </NavDropdown>\n          </Nav>\n        </Navbar.Collapse>\n      </Navbar>\n    );\n  };\n\n  renderMap = () => {\n    const {data} = this.state;\n    return (\n      <>\n        <Container className=\"comic-spirit-map\">\n          <h1 className=\"comic-spirit-map-header\">Introduction</h1>\n          <div>\n            <h2 className=\"comic-spirit-map-sub-header\">人物相関図</h2>\n          </div>\n          <div className=\"comic-spirit-map-content\">\n            <div\n              className=\"comic-spirit-map-image\"\n              style={{\n                background: `url('${this.formatByLanguage(data.comicIntroductionSvgUrl)}') no-repeat`\n              }}\n            />\n            <div className=\"comic-spirit-map-introduction\">\n              <p>{this.formatByLanguage(data.comicIntroduction)}</p>\n              <div className=\"comic-spirit-map-introduction-actions\">\n                <Button className=\"ml-2\" onClick={this.onNext}>まんがを読む</Button>\n              </div>\n            </div>\n          </div>\n        </Container>\n      </>\n    );\n  };\n\n  renderComic = () => {\n    const {data, pageIndex} = this.state;\n    const {comicSpiritIds} = this.props;\n    const {contentId} = this.props.match.params;\n\n    const comicIndex = comicSpiritIds.indexOf(contentId);\n    const nextComicIndex = comicIndex === comicSpiritIds.length - 1 ? -1 : comicIndex + 1;\n\n    if (!data.comicPages[pageIndex]) {\n      return (<div/>);\n    }\n    const page = data.comicPages[pageIndex];\n\n    return (\n      <>\n        <div className=\"comic-spirit-page\">\n          <div className=\"comic-spirit-page-image\" style={{\n            background: `url('${this.formatByLanguage(page.url)}') no-repeat`,\n          }}/>\n          <div className=\"comic-spirit-page-actions\">\n            <div className={'comic-spirit-page-actions-action' + (pageIndex === 0 ? ' inactive' : '')}  onClick={this.onPreviousPage}>\n              <div>\n                <FontAwesomeIcon icon={faArrowLeft} />\n              </div>\n            </div>\n            <div className={'comic-spirit-page-actions-action' + (pageIndex + 1 >= data.comicPages.length ? ' inactive' : '')} onClick={this.onNextPage}>\n              <div>\n                <FontAwesomeIcon icon={faArrowRight} />\n              </div>\n            </div>\n            {nextComicIndex >= 0 && pageIndex === data.comicPages.length - 1 && (\n              <div className={'comic-spirit-page-actions-action'} style={{width: 100}} onClick={this.onNextComic}>\n                <div>\n                  <div>次の話へ</div>\n                </div>\n              </div>\n            )}\n          </div>\n\n        </div>\n      </>\n    );\n  };\n\n  render() {\n    const {loading, data, authUser} = this.state;\n\n    if (loading || !data) {\n      return (\n        <div/>\n      );\n    }\n\n    return (\n      <div style={{backgroundColor: 'white'}}>\n      <Div100vh>\n        {authUser && this.renderHeader()}\n        <div className=\"comic-spirit-container\">\n        {this.state.isMap && this.renderMap()}\n        {this.state.isComic && this.renderComic()}\n        </div>\n      </Div100vh>\n      </div>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang,\n    comicSpiritIds: state.root.comicSpiritIds,\n  };\n}\n\nexport default connect(mapStateToProps)(ComicSpiritPage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Div100vh from \"react-div-100vh\";\nimport {Button, Container, Nav, Navbar, NavDropdown} from \"react-bootstrap\";\nimport * as contentsService from '../../../services/contents';\nimport \"./index.scss\";\nimport {LinkContainer} from \"react-router-bootstrap\";\nimport * as rootActions from \"../../../store/root/actions\";\nimport * as commonService from \"../../../services/common\";\nimport  { Redirect } from 'react-router-dom'\n\nclass ComicLifePage extends Component {\n\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      nextContentId: null,\n      isMap: false,\n      isComic: false,\n      isSituation: false,\n      data: null,\n      loading: false,\n    };\n  }\n\n  componentDidMount() {\n    this.fetchData();\n  }\n\n  fetchData = async (nextContentId = null) => {\n    const {contentId} = this.props.match.params;\n    const {comicLifeIds} = this.props;\n\n    this.setState({loading: true});\n    try {\n      let content = await contentsService.fetchContent(nextContentId || contentId);\n\n      if (content) {\n        content.comicPages = JSON.parse(content.comicPages);\n      }\n\n      let state = {\n        nextContentId: nextContentId,\n        loading: false,\n        data: content,\n        isMap: !!content && this.props.comicLifeIntro,\n        isComic: !!content && !this.props.comicLifeIntro,\n        isSituation: false,\n      };\n\n      this.setState(state);\n      window.scrollTo(0, 0);\n\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  formatByLanguage = (value) => {\n    try {\n      let array = typeof value === \"string\" ? JSON.parse(value) : value;\n      if (array[this.props.currentLang]) {\n        return array[this.props.currentLang];\n      } else {\n        return \"Undefined\";\n      }\n    } catch (e) {\n      return null;\n    }\n  };\n\n  onComic = () => {\n    this.setState({isMap: false, isComic: true});\n    this.props.dispatch(rootActions.setComicLifeIntro(false));\n    window.scrollTo(0, 0);\n  };\n\n  onSituation = () => {\n    this.setState({isComic: false, isSituation: true});\n    window.scrollTo(0, 0);\n  };\n\n  onSituationBack = () => {\n    this.setState({isComic: true, isSituation: false});\n    window.scrollTo(0, 0);\n  };\n\n  onNextComic = () => {\n    const {comicLifeIds, nextContentId} = this.props;\n    const {contentId} = this.props.match.params;\n\n    const comicIndex = nextContentId ? comicLifeIds.indexOf(nextContentId) : comicLifeIds.indexOf(contentId);\n    const nextComicId = comicLifeIds[comicIndex + 1];\n\n    this.props.history.push(`/comic-life/${nextComicId}`);\n  };\n\n  onMarket = () => {\n    this.props.history.push('/');\n  };\n\n  renderHeader = () => {\n    return (\n      <Navbar bg=\"white\" fixed=\"top\" expand=\"lg\">\n        <Navbar.Brand\n          style={{ margin: \"-10px 0\", padding: 0 }}\n          className=\"cursor-hover\"\n        >\n          <LinkContainer to=\"/\">\n            <div>kibi-<span style={{color: \"#0F80B4\"}}>learning</span>.jp</div>\n          </LinkContainer>\n        </Navbar.Brand>\n        <Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n        <Navbar.Collapse id=\"basic-navbar-nav\">\n          <Nav>\n            <LinkContainer to={`/`} activeClassName=\"\">\n              <Nav.Link>マーケットへ</Nav.Link>\n            </LinkContainer>\n          </Nav>\n          <Nav className=\"ml-auto\">\n            <NavDropdown\n              title={commonService.languages[this.props.currentLang]}\n              id=\"basic-nav-dropdown\"\n              className=\"mr-3\"\n            >\n              {commonService.languagesList.map(lang => (\n                <NavDropdown.Item\n                  key={lang}\n                  onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                >\n                  {commonService.languages[lang]}\n                </NavDropdown.Item>\n              ))}\n            </NavDropdown>\n          </Nav>\n        </Navbar.Collapse>\n      </Navbar>\n    );\n  };\n\n  renderMap = () => {\n    const {data} = this.state;\n    return (\n      <>\n        <Container className=\"comic-life-map\">\n          <h1 className=\"comic-life-map-header\">Introduction</h1>\n          <div>\n            <h2 className=\"comic-life-map-sub-header\">人物相関図</h2>\n          </div>\n          <div className=\"comic-life-map-content\">\n            <div\n              className=\"comic-life-map-image\"\n              style={{\n                background: `url('${this.formatByLanguage(data.comicIntroductionSvgUrl)}') no-repeat`\n              }}\n            />\n            <div className=\"comic-life-map-introduction\">\n              <p>{this.formatByLanguage(data.comicIntroduction)}</p>\n              <div className=\"comic-life-map-introduction-actions\">\n                <Button className=\"ml-2\" onClick={this.onComic}>まんがを読む</Button>\n              </div>\n            </div>\n          </div>\n        </Container>\n      </>\n    );\n  };\n\n  renderComic = () => {\n    const {data} = this.state;\n\n    return (\n      <div className=\"comic-life-pages\">\n        <h2 className=\"comic-life-pages-title\">{this.formatByLanguage(data.title)}</h2>\n        <div className=\"comic-life-pages-item\">\n          {data.comicPages.map((page, index) => (\n            <div key={index} className=\"comic-life-pages-item-image\" style={{\n              background: `url('${this.formatByLanguage(page.url)}') no-repeat`,\n            }}>\n            </div>\n          ))}\n        </div>\n        <div className=\"comic-life-pages-actions\">\n          <Button onClick={this.onSituation}>解説へ</Button>\n        </div>\n      </div>\n    );\n  };\n\n  renderSituation = () => {\n    const {data, nextContentId} = this.state;\n    const {comicLifeIds} = this.props;\n    const {contentId} = this.props.match.params;\n\n    const comicIndex = comicLifeIds.indexOf(nextContentId || contentId);\n\n    if (!data) {\n      return (\n        <div/>\n      );\n    }\n\n    return (\n      <Container className=\"comic-life-situation\">\n        <h2 className=\"comic-life-situation-header\">{this.formatByLanguage(data.title)}</h2>\n        <div className=\"comic-life-situation-content\">\n          <div className=\"comic-life-situation-image\" style={{\n            background: `url('${this.formatByLanguage(data.comicSituationSvgUrl)}') no-repeat`,\n          }}>\n          </div>\n          <div className=\"comic-life-situation-description\">\n            <p>{this.formatByLanguage(data.comicSituation)}</p>\n            <div className=\"comic-life-situation-description-actions\">\n              <Button onClick={this.onSituationBack}>戻る</Button>\n              {comicIndex !== - 1 && comicIndex + 1 < comicLifeIds.length && <Button className=\"ml-2\" onClick={this.onNextComic}>次へ</Button>}\n              {!(comicIndex !== - 1 && comicIndex + 1 < comicLifeIds.length) && <Button className=\"ml-2\" onClick={this.onMarket}>マーケットへ</Button>}\n            </div>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  render() {\n    const {loading, data, redirect} = this.state;\n\n    if (loading || !data) {\n      return (\n        <div/>\n      );\n    }\n\n    return (\n      <>\n        <Div100vh>\n          {this.renderHeader()}\n          <div className=\"comic-life-container\">\n            {this.state.isMap && this.renderMap()}\n            {this.state.isComic && this.renderComic()}\n            {this.state.isSituation && this.renderSituation()}\n          </div>\n        </Div100vh>\n        {redirect && <Redirect to={redirect}  />}\n      </>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang,\n    comicLifeIntro: state.root.comicLifeIntro,\n    comicLifeIds: state.root.comicLifeIds,\n  };\n}\n\nexport default connect(mapStateToProps)(ComicLifePage);\n","import React, { Component } from \"react\";\nimport { connect } from \"react-redux\";\nimport Div100vh from \"react-div-100vh\";\nimport { Container, Navbar, Nav, Button, ProgressBar, ListGroup, NavDropdown } from \"react-bootstrap\";\nimport { LinkContainer } from \"react-router-bootstrap\";\nimport * as accountService from '../../../services/account';\nimport * as contentsService from '../../../services/contents';\nimport * as subtleTestResultsService from '../../../services/subtle-test-results';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\nimport { faClock } from '@fortawesome/free-solid-svg-icons'\nimport RadarChart from 'react-svg-radar-chart';\nimport 'react-svg-radar-chart/build/css/index.css'\nimport \"./index.scss\";\nimport * as commonService from \"../../../services/common\";\nimport * as rootActions from \"../../../store/root/actions\";\nimport * as langService from \"../../../services/lang\";\nimport uuid from \"uuid\";\nimport * as courseTestResultsService from \"../../../services/course-test-results\";\n\nclass SimpleFlowTestPage extends Component {\n  constructor(props, context) {\n    super(props, context);\n\n    this.state = {\n      questions: [{ id: \"1\" }, { id: \"2\" }],\n      maxTime: 0,\n      time: 0,\n      startTime: null,\n\n      isLanding: false,\n      isMap: false,\n      isQuestion: false,\n      isFinished: false,\n      isResults: false,\n      isShowTimer: false,\n      data: null,\n      results: [],\n      questionIndex: 0,\n      resultsSelectedIndex: 0,\n\n      loading: false,\n    };\n  }\n\n  async componentDidMount() {\n    this.setState({ loading: true });\n    this.fetchData();\n  }\n\n  fetchData = async () => {\n    const { testId } = this.props.match.params;\n    try {\n      let content = await contentsService.fetchContent('43456398-171c-470c-874d-502532c344e3');\n\n      let results = [];\n      // if (testId) {\n      //   let resultsResponse = await subtleTestResultsService.fetchSubtleTestResult(testId);\n      //   results = JSON.parse(resultsResponse.results);\n      // }\n      //\n      if (content) {\n        content.settings = JSON.parse(content.settings);\n      }\n\n      let state = {\n        loading: false,\n        results: results,\n      };\n      state.data = content;\n      state.maxTime = content.settings.testTime * 60 * 1000;\n      if (results.length > 0) {\n        state.isResults = true;\n      } else if (content) {\n        state.isLanding = true;\n      }\n\n      this.setState(state);\n\n    } catch (e) {\n      console.log(e);\n    }\n  };\n\n  componentWillUnmount() {\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n  }\n\n  onStart = () => {\n    this.setState({ isLanding: false, isQuestion: true });\n  };\n\n  // onMapClose = () => {\n  //   this.setState({isMap: false, isQuestion: true});\n  // };\n  //\n  // onMapNext = () => {\n  //   this.startTimer();\n  //   this.setState({isMap: false, isQuestion: true, isShowTimer: true});\n  // };\n\n  // onQuestionMap = () => {\n  //   this.setState({isMap: true, isQuestion: false});\n  // };\n\n  onQuestionBack = () => {\n    this.setState({ questionIndex: this.state.questionIndex - 1 });\n  };\n\n  onFinishedBack = () => {\n    this.setState({ isQuestion: true, isFinished: false })\n  };\n\n  onFinishedResults = async () => {\n    const { results } = this.state;\n\n    if (this.timer) {\n      clearInterval(this.timer);\n    }\n\n    try {\n      let input = {\n        id: uuid.v4(),\n        results: JSON.stringify(results),\n      };\n      await subtleTestResultsService.createSubtleTestResult(input);\n      this.setState({ isFinished: false, isShowTimer: false, isResults: true, })\n    } catch (e) {\n      console.log(e);\n      this.setState({ loading: false });\n    }\n  };\n\n  onQuestionAnswer = (index) => {\n    const { data, results, questionIndex } = this.state;\n    const question = data.settings.questions[questionIndex];\n    const item = {\n      answer: index,\n      isCorrect: !!(question[`answer${index}IsCorrect`] && question[`answer${index}IsCorrect`].value === \"1\")\n    };\n\n    if (results[questionIndex]) {\n      results[questionIndex] = item;\n      this.setState({ results, questionIndex: questionIndex + 1 })\n    } else {\n      results.push(item);\n\n      if (questionIndex + 1 < 29) {\n        this.setState({ results, questionIndex: questionIndex + 1 })\n      } else {\n        this.setState({ results, isQuestion: false, isFinished: true })\n      }\n\n    }\n\n  };\n\n  isSelectedAnswer = (index) => {\n    const { results, questionIndex } = this.state;\n    if (results[questionIndex]) {\n      return results[questionIndex].answer === index;\n    } else {\n      return false;\n    }\n  };\n\n  startTimer = () => {\n    this.setState({\n      startTime: new Date()\n    });\n    this.timer = setInterval(() => this.setState({\n      time: Date.now() - this.state.startTime\n    }), 1);\n  };\n\n  stopTimer = () => {\n\n  };\n\n  formatByLanguage = (value) => {\n    let array = typeof value === \"string\" ? JSON.parse(value) : value;\n    if (array[this.props.currentLang]) {\n      return array[this.props.currentLang];\n    } else {\n      return \"Undefined\";\n    }\n  };\n\n  buildTime = () => {\n    const currentTime = this.state.maxTime - this.state.time;\n    const minutes = '' + (Math.floor(currentTime / 1000 / 60));\n    const seconds = '' + (Math.floor(currentTime / 1000) - (minutes * 60));\n\n    return `${minutes.padStart(2, '0')}:${seconds.padStart(2, '0')}`;\n  };\n\n  buildMaxTime = () => {\n    return Math.floor(this.state.maxTime / 60 / 1000);\n  };\n\n  buildTotalCount = () => {\n    const { results } = this.state;\n    let totalCount = 0;\n    for (let i = 0; i < results.length; i++) {\n      if (i < 20) {\n        if (results[i].isCorrect) {\n          totalCount += 3;\n        }\n      } else {\n        if (results[i].isCorrect) {\n          totalCount += 4;\n        }\n      }\n    }\n\n    return totalCount;\n  };\n\n  buildSkills = () => {\n    const { results, data } = this.state;\n    let skills = {\n      imagination: 0,\n      reaction: 0,\n      empathy: 0,\n      feeling: 0,\n      flexibility: 0,\n    };\n\n    for (let i = 0; i < results.length; i++) {\n      if (!results[i].isCorrect) {\n        continue;\n      }\n\n      let question = data.settings.questions[i];\n      if (question.imagination && question.imagination.value === '1') {\n        skills.imagination += 1;\n      }\n      if (question.reaction && question.reaction.value === '1') {\n        skills.reaction += 1;\n      }\n      if (question.empathy && question.empathy.value === '1') {\n        skills.empathy += 1;\n      }\n      if (question.feeling && question.feeling.value === '1') {\n        skills.feeling += 1;\n      }\n      if (question.flexibility && question.flexibility.value === '1') {\n        skills.flexibility += 1;\n      }\n    }\n\n    return skills;\n\n  };\n\n  renderHeader = () => {\n    return (\n      <Navbar bg=\"white\" fixed=\"top\" expand=\"lg\">\n        <Navbar.Brand\n          style={{ margin: \"-10px 0\", padding: 0 }}\n          className=\"cursor-hover\"\n        >\n          <LinkContainer to=\"/\">\n            <div>kibi-<span style={{ color: \"#0F80B4\" }}>learning</span>.jp</div>\n          </LinkContainer>\n        </Navbar.Brand>\n        <Navbar.Toggle aria-controls=\"basic-navbar-nav\" />\n        <Navbar.Collapse id=\"basic-navbar-nav\">\n          <Nav>\n            <LinkContainer to={`/`} activeClassName=\"\">\n              <Nav.Link>{langService.translate('toMarket', this.props.currentLang)}</Nav.Link>\n            </LinkContainer>\n          </Nav>\n          {this.state.isShowTimer ? (\n            <Nav className=\"ml-auto\">\n              <div className=\"d-flex justify-content-center align-items-center\"><FontAwesomeIcon icon={faClock} className=\"mr-2\" />{this.buildTime()}</div>\n              <NavDropdown\n                title={commonService.languages[this.props.currentLang]}\n                id=\"basic-nav-dropdown\"\n                className=\"mr-3\"\n              >\n                {commonService.languagesList.map(lang => (\n                  <NavDropdown.Item\n                    key={lang}\n                    onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                  >\n                    {commonService.languages[lang]}\n                  </NavDropdown.Item>\n                ))}\n              </NavDropdown>\n            </Nav>\n          ) : (\n            <Nav className=\"ml-auto\">\n              <NavDropdown\n                title={commonService.languages[this.props.currentLang]}\n                id=\"basic-nav-dropdown\"\n                className=\"mr-3\"\n              >\n                {commonService.languagesList.map(lang => (\n                  <NavDropdown.Item\n                    key={lang}\n                    onClick={() => this.props.dispatch(rootActions.setLang(lang))}\n                  >\n                    {commonService.languages[lang]}\n                  </NavDropdown.Item>\n                ))}\n              </NavDropdown>\n            </Nav>\n          )}\n        </Navbar.Collapse>\n      </Navbar>\n    );\n  };\n\n  renderLanding = () => {\n    const { data } = this.state;\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-2\" style={{ fontSize: \"20px\" }}>{this.formatByLanguage(data.title)}</div>\n          <div className=\"mb-2\" style={{ fontSize: \"20px\" }}>{langService.translate('subtle-start-text-2', this.props.currentLang, [data.settings.questions.length])}</div>\n          <div className=\"mb-4 d-flex flex-row\" style={{ fontSize: \"20px\" }}>\n            {langService.translate('subtle-start-text-3-1', this.props.currentLang)}\n            <div className=\"ml-1 mr-1\" style={{ fontWeight: \"600\" }}>{this.buildMaxTime()}{langService.translate('subtle-start-text-3-2', this.props.currentLang)}</div>{langService.translate('subtle-start-text-3-3', this.props.currentLang)}</div>\n          <Button size=\"lg\" onClick={this.onStart}>{langService.translate('subtle-start', this.props.currentLang)}</Button>\n        </div>\n      </Container>\n    );\n  };\n\n  renderMap = () => {\n    const { data, isShowTimer } = this.state;\n    return (\n      <Container className=\"py-4 subtle-test-map\">\n        <h2 className=\"mb-2 mt-2\">{langService.translate('subtle-intro-title', this.props.currentLang)}</h2>\n        <div className=\"map\">\n          <img\n            alt=\"イラスト\"\n            src={this.formatByLanguage(data.comicIntroductionSvgUrl)} />\n        </div>\n        <div className=\"actions\">\n          {isShowTimer && <Button variant=\"outline-secondary\" className=\"mr-2\" onClick={this.onMapClose}>{langService.translate('subtle-intro-back', this.props.currentLang)}</Button>}\n          {!isShowTimer && <Button className=\"ml-2\" onClick={this.onMapNext}>{langService.translate('subtle-intro-next', this.props.currentLang)}</Button>}\n        </div>\n      </Container>\n    );\n  };\n\n  renderQuestion = () => {\n    const { data, questionIndex } = this.state;\n    const now = Math.floor(questionIndex / data.settings.questions.length * 100);\n    const question = data.settings.questions[questionIndex] ? data.settings.questions[questionIndex] : {};\n    let answers = data.settings.answers.filter(answer => answer.questionId === question.id);\n\n    return (\n      <Container className=\"py-4 d-flex flex-column\">\n        <div className=\"subtle-test__header\">\n          <div className=\"subtle-test__header__text\">\n            問題{questionIndex + 1}\n          </div>\n          <ProgressBar now={now} label={`${now}%`} />\n        </div>\n        <h2 className=\"d-flex justify-content-center align-items-center mb-4\" style={{ whiteSpace: 'pre-wrap' }}>{question.title ? this.formatByLanguage(question.title) : 'Undefined'}</h2>\n        <div className=\"answers-block\">\n          {/*<div className=\"title\">{question.subtitle ? this.formatByLanguage(question.subtitle) : 'Undefined'}</div>*/}\n          <div className=\"answers\">\n            <ListGroup>\n              {answers.map((answer, answerIndex) => (\n                <ListGroup.Item key={answerIndex} className=\"pointer\" onClick={() => { }} active={false} style={{ whiteSpace: 'pre-wrap' }}>{this.formatByLanguage(answer.text)}</ListGroup.Item>\n              ))}\n            </ListGroup>\n          </div>\n          <div className=\"actions\">\n            {/*{questionIndex > 0 && <Button variant=\"outline-secondary\" onClick={this.onQuestionBack}>{langService.translate('subtle-intro-back', this.props.currentLang)}</Button>}*/}\n            {/*<Button variant=\"outline-primary\" onClick={this.onQuestionMap}>{langService.translate('subtle-view-map', this.props.currentLang)}</Button>*/}\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderFinished = () => {\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-4\" style={{ fontSize: \"20px\" }}>{langService.translate('subtle-finish-title', this.props.currentLang)}</div>\n          <div>\n            <Button size=\"lg\" variant=\"outline-secondary\" className=\"mr-2\" onClick={this.onFinishedBack}>{langService.translate('subtle-finish-back', this.props.currentLang)}</Button>\n            <Button size=\"lg\" className=\"ml-2\" onClick={this.onFinishedResults}>{langService.translate('subtle-finish-results', this.props.currentLang)}</Button>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderFailed = () => {\n    return (\n      <Container className=\"py-4 mt-auto mb-auto\">\n        <div className=\"d-flex flex-column justify-content-center align-items-center mt-auto\">\n          <div className=\"mb-4\" style={{ fontSize: \"20px\" }}>時間切れです。<br />\n            練習問題を読み直して、再度チャレンジしましょう!</div>\n          <div>\n            <Button size=\"lg\" className=\"ml-2\">再度チャレンジします</Button>\n          </div>\n        </div>\n      </Container>\n    );\n  };\n\n  renderResultText = (data, points, title) => {\n\n    let index = data.findIndex(item => points >= item.min && points <= item.max);\n    if (index === -1) {\n      return null;\n    }\n\n    return (\n      <>\n        <h4 className=\"mb-4\">{langService.translate(data[index].title, this.props.currentLang)}</h4>\n        <h5 className=\"mb-4\">{langService.translate(\"subtle-results-title-3\", this.props.currentLang, [title, points])}</h5>\n        <div>{langService.translate(data[index].details, this.props.currentLang)}</div>\n      </>\n    )\n  };\n\n  renderResults = () => {\n    const { resultsSelectedIndex } = this.state;\n    const totalCount = this.buildTotalCount();\n    const skills = this.buildSkills();\n\n    const radarData = [\n      {\n        data: {\n          imagination: skills.imagination / 12,\n          reaction: skills.reaction / 12,\n          empathy: skills.empathy / 12,\n          feeling: skills.feeling / 12,\n          flexibility: skills.flexibility / 12,\n        },\n        meta: { color: 'blue' }\n      },\n    ];\n\n    const captions = {\n      imagination: langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang),\n      reaction: langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang),\n      empathy: langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang),\n      feeling: langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang),\n      flexibility: langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang),\n    };\n\n    const texts = {\n      imagination: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            jp2: \"状況を想像する力が不足しています。想像力の欠如は、周囲から見た場合にズレや違和感に繋がるため要注意です。\",\n            en: \"Your ability to imagine and be proactive is not enough. Please be careful not to misunderstand and cause problems between you and your co-workers and clients.\",\n            vn: \"Không đủ khả năng để tưởng tượng tình huống.Việc thiếu trí tưởng tượng,có thể dẫn đến cách nhìn sai lệch và thiếu thiện cảm từ những người xung quanh nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            jp2: \"状況を想像する力を、もう一歩伸ばすことで、あなたの一歩先回りする行動力を手に入れることに繋がります。\",\n            en: \"If you improve the ability to imagine the situation more, you will become a proactive business person.  \",\n            vn: \"Bằng cách mở rộng khả năng tưởng tượng tình huống thêm một chút, bạn sẽ có thể có được sức mạnh để tiến lên phía trước một bước.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            jp2: \"状況を十分的確に想像する力を有しています。想像力を活かして、相手に丁寧に価値や優しさを届けてまいりましょう。\",\n            en: \"Your ability to imagine and be proactive is excellent. Please keep your ability and be an attentive business person.\",\n            vn: \"Đủ năng lực tưởng tượng để có thể nắm bắt toàn bộ tình hình đầy đủ và chính xác. Sử dụng khả năng tưởng tượng của mình để mang lại cho đối phương những giá trị và lòng tốt một cách lịch sự .\"\n          }\n        },\n      ],\n      reaction: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            jp2: \"リアクション力が不足しています。相互作用のコミュニケーションにおいて、相手から誤解を生む原因となるため要注意です。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Năng lực phản ứng không đủ. Trong giao tiếp trương tác giữa người với người nó có thể là nguyên nhân gây ra sự hiểu nhầm từ phía đối phương nên cần đặc biệt chú ý.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            jp2: \"リアクション力を、もう一歩伸ばすことで、相手から見たあなたの印象はぐっと良くなります。言語面だけでなく、相槌や頷き、笑顔、アイコンタクト、様々な非言語面も駆使してまいりましょう。\",\n            en: \"Your ability to react is not enough. Please be careful not to misunderstand between you and your co-workers and clients in terms of the interpersonal communication.\",\n            vn: \"Bằng việc tăng năng lực phản ứng của bản thân thêm 1 bước nữa thì đối phương sẽ có ấn tượng với bạn tốt đẹp hơn. Không chỉ về mặt ngôn ngữ, mà chúng ta hãy sử dụng thêm các hành động bổ trợ phi ngôn ngữ như là sự hưởng ứng, thủ thỉ, nét mặt tươi cười, giao tiếp bằng mắt.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            jp2: \"十分なリアクション力を有しています。感じ取って、察して、そのうえでどのようなリアクションをとるのか、他のチカラとも連動しながらリアクション力を発揮ください。\",\n            en: \"Your ability to react is excellent. Please feel, understand and react. Let's combine with the other abilities in various situations. \",\n            vn: \"Có đủ năng lực phản ứng. Hãy cảm nhận, quan sát, trong khi đó hãy nghĩ xem nên phản ứng thế nào, hãy sử dụng thêm sức mạnh khác nữa để phát huy năng lực phản ứng.\"\n          }\n        },\n      ],\n      empathy: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            jp2: \"相手軸で、ともに感じたり考えたりする共感力が不足しています。情緒的コミュニケーションの非常に大事な能力なので、トレーニングで鍛えてまいりましょう。\",\n            en: \"Your ability to empathize is not enough. Please cultivate the ability to empathize because it is very important in terms of emotional communication skills.\",\n            vn: \"Không đủ sự đồng cảm để có cùng cảm nhận và suy nghĩ với đối phương. Vì nó là một loại năng lực rất quan trọng trong giao tiếp bằng cảm xúc nên cẩn trau dồi bằng cách luyện tập.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            jp2: \"共感力を、もう一段、引き上げることで、相手から見たあなたへの信頼感や胸襟の開き方は大きく変わってまいります。\",\n            en: \"If you improve your ability to empathize more, you will become a reliable business person and can close the distance between you and others.\",\n            vn: \"Bằng cách nâng cao năng lực đồng cảm thêm một bậc nữa thì sẽ có sự thay đổi to lớn rằng bạn sẽ mang lại cho  đối phương cảm giác đáng tin tưởng, và sẽ cởi mở với bạn hơn.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            jp2: \"十分な共感力を有しています。行動においては、一瞬で寄り添い、溶け合う場面も出てまいりますので、共感力を発揮しながら、輪を広げてまいりましょう。\",\n            en: \"Your ability to empathize is excellent. When you communicate with others on business, your ability to empathize will help yourself close the distance between you and others and build your network.\",\n            vn: \"Có đủ sự đồng cảm. Trong hành động mọi người có thể nương tựa vào nhau, hòa đồng với nhau, vì vậy hãy vừa phát huy năng lực đồng cảm và mở lòng thêm nữa.\"\n          }\n        },\n      ],\n      feeling: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            jp2: \"人の気持ちを察するチカラが不足しています。相手軸で、相手は今どう感じているか、どう思っているか、どう考えているか、常に相手軸で考える癖をつけてまいりましょう。\",\n            en: \"Your ability to feel and understand is not enough. Please imagine how others feel and think. To make it a habit to put yourself in other's shoes is very important.\",\n            vn: \"Không đủ năng lực phán đoán cảm xúc của người khác. Hãy luôn có thói quen nghĩ về việc đối phương bây giờ đang cảm thấy gì, nghĩ gì, suy ngẫm về điều gì.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            jp2: \"気持ち察し力をもう一歩、高めていただくことで、人の痛みや喜び、悲しみを精確に感じ取り、相手に寄り添うことが可能となります。気持ちは計算できないため、とにかく察することが肝要となります。\",\n            en: \"If you cultivate your ability to feel and understand more, you can know the other's suffering, joy and sadness. Human feelings can't be simulated, but can be felt and understood.\",\n            vn: \"Bằng cách nâng cao năng lực phán đoán cảm xúc một bước nữa thì bạn có khả năng cảm nhận chính xác nỗi đau, niềm hạnh phúc, sự đau buồn trong tinh thần của đối phương. Vì cảm xúc của con người là không thể tính toán được nên hãy cố gắng hết sức để nắm bắt được nó.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            jp2: \"十分な気持ち察し力を有しています。相手に応じて、五感を駆使しながら、気持ちを察することは、リーダーシップやマネジメントにおいてもあなたを大いに助けてくれることに繋がるため、引き続きチカラを磨き続けてください。\",\n            en: \"Your ability to feel and understand is excellent. In terms of leadership and management, to feel with your five senses will help yourself greatly. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng lực phán đoán cảm xúc. Ứng với từng đối tượng, việc vừa sử dụng năm giác quan vừa phán đoán cảm xúc thì chắc chắn sẽ giúp ích rất nhiều cho bạn vào việc quản lí và lãnh đạo.\"\n          }\n        },\n      ],\n      flexibility: [\n        {\n          min: 0, max: 4,\n          title: { jp: \"頑張りましょう\", jp2: \"頑張りましょう\", en: \"Try again!\", vn: 'Cùng cố gắng nào' },\n          details: {\n            jp: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            jp2: \"柔軟性が不足しています。凝り固まった価値観や固定概念は、時として、重大なコミュニケーションにおける齟齬や誤解、軋轢に繋がります。まず相手や周囲を受け入れ、そこから始めてまいりましょう。\",\n            en: \"Your ability to be flexible is not enough. If you are not flexible, it will cause some serious problems in terms of business communication. Please try to accept the other's advice and feedback at first.\",\n            vn: \"Không đủ tính linh hoạt. Các khái niệm cố định và các giá trị cứng nhắc đôi khi sẽ dẫn đến những vấn đề nghiêm trọng trong giao tiếp như là hiểu nhầm hay ganh ghét. Vì vậy, đầu tiên hãy tiếp nhận đối phương và môi trường xung quanh sau đó hãy bắt đầu.\"\n          }\n        },\n        {\n          min: 5, max: 8,\n          title: { jp: \"あと少し\", jp2: \"あと少し\", en: \"Almost!\", vn: 'Chỉ còn chút nữa thôi !' },\n          details: {\n            jp: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            jp2: \"もう一歩、柔軟性を高めることが期待されます。柔軟性を高めることは、けっして、あなたのスタイルを壊すことではなく、むしろ、あなたのスタイルを進化させてくれるため、様々な価値観や考え、文化を受容するための思考へと転換を図ってまいりましょう。\",\n            en: \"If you cultivate your ability to be flexible more, your communication skills will be improved because you can accept various values, cultures and ideas.\",\n            vn: \"Hi vọng là hãy tăng thêm tính linh hoạt một bước nữa. Việc tăng tính linh hoạt không hề phá hủy phong cách của bạn, trái lại, nó phát triển phong cách của bạn vì bạn có thể chuyển sang việc tiếp thu những tư tưởng văn hóa, giá trị quan hay những suy nghĩ khác nhau.\"\n          }\n        },\n        {\n          min: 9, max: 12,\n          title: { jp: \"素晴らしい!\", jp2: \"素晴らしい!\", en: \"Well done!\", vn: 'Thật tuyệt vời!' },\n          details: {\n            jp: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            jp2: \"十分な柔軟性を有しています。相手側から見た場合の、あなたの柔軟性は、円滑なコミュニケーションだけでなく、自由闊達な場の醸成にも一役買ってくれます。これからも、柔軟性を保ち、高めていってください。\",\n            en: \"Your ability to be flexible is excellent. From the viewpoint of others, you will make communication go smoothly and encourage collaboration among your team. Please keep trying to improve yourself.\",\n            vn: \"Đủ năng tính linh hoạt. Tính linh hoạt của bạn là do nhìn từ phía đối phương, do đó không chỉ tạo điều kiện cho việc giao tiếp suôn sẻ, mà còn giúp bạn nuôi dưỡng được không gian tự do cá nhân. Vì vậy, hãy giữ cho bạn luôn luôn linh hoạt và cải thiện hơn nữa.\"\n          }\n        },\n      ],\n    };\n\n    return (\n      <Container className=\"py-5 subtle-test-results\">\n        <div className=\"header\">\n          <h3>{langService.translate('subtle-results-title-0', this.props.currentLang)}</h3>\n          <h3 className=\"points\">\n            <div>{langService.translate('subtle-results-title-1', this.props.currentLang)}</div>\n            <div>{langService.translate('subtle-results-title-2', this.props.currentLang, [totalCount])}</div>\n          </h3>\n        </div>\n        <div className=\"content\">\n          {/*<div className=\"row\">*/}\n          <div className=\"radar\">\n            <RadarChart\n              captions={captions}\n              data={radarData}\n\n            />\n          </div>\n          <div className=\"tabs\">\n            <Nav variant=\"pills\">\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 0 })} active={resultsSelectedIndex === 0}>\n                  {langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 1 })} active={resultsSelectedIndex === 1}>\n                  {langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 2 })} active={resultsSelectedIndex === 2}>\n                  {langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 3 })} active={resultsSelectedIndex === 3}>\n                  {langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n              <Nav.Item>\n                <Nav.Link onClick={() => this.setState({ resultsSelectedIndex: 4 })} active={resultsSelectedIndex === 4}>\n                  {langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang)}\n                </Nav.Link>\n              </Nav.Item>\n            </Nav>\n            <div className=\"tabs-content\">\n              {resultsSelectedIndex === 0 && (this.renderResultText(texts['imagination'], skills.imagination, langService.translate({ jp: '状況想像力', jp2: '状況想像力', en: 'Imagine and be proactive', vn: 'Năng lực phán đoán' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 1 && (this.renderResultText(texts['reaction'], skills.reaction, langService.translate({ jp: 'リアクション力', jp2: 'リアクション力', en: 'React', vn: 'Năng lực phản ứng' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 2 && (this.renderResultText(texts['empathy'], skills.empathy, langService.translate({ jp: '共感力', jp2: '共感力', en: 'Empathize', vn: 'Năng lực đồng cảm' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 3 && (this.renderResultText(texts['feeling'], skills.feeling, langService.translate({ jp: '気持ち察し力', jp2: '気持ち察し力', en: 'Feel and understand', vn: 'Độ lí giải cảm xúc' }, this.props.currentLang)))}\n              {resultsSelectedIndex === 4 && (this.renderResultText(texts['flexibility'], skills.flexibility, langService.translate({ jp: '柔軟性', jp2: '柔軟性', en: 'Be flexible', vn: 'Tính linh hoạt' }, this.props.currentLang)))}\n            </div>\n          </div>\n          {/*</div>*/}\n        </div>\n      </Container>\n    );\n  };\n\n  render() {\n    const { loading, data } = this.state;\n\n    if (loading || !data) {\n      return (\n        <div />\n      );\n    }\n    return (\n      <Div100vh>\n        {this.renderHeader()}\n        <div className=\"d-flex\" style={{ paddingTop: \"40px\", height: \"100%\", backgroundColor: \"white\" }}>\n          {this.state.isLanding && this.renderLanding()}\n          {/*{this.state.isMap && this.renderMap()}*/}\n          {this.state.isQuestion && this.renderQuestion()}\n          {/*{this.state.isFinished && this.renderFinished()}*/}\n          {/*{this.state.isResults && this.renderResults()}*/}\n        </div>\n      </Div100vh>\n    );\n  }\n}\n\nfunction mapStateToProps(state) {\n  return {\n    currentLang: state.root.currentLang\n  };\n}\n\nexport default connect(mapStateToProps)(SimpleFlowTestPage);\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\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\nimport React from \"react\";\n\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#E84849\",\n  d: \"M7.9,256C7.9,119,119,7.9,256,7.9C393,7.9,504.1,119,504.1,256c0,137-111.1,248.1-248.1,248.1    C119,504.1,7.9,393,7.9,256z\"\n})), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#EDC92C\",\n  d: \"M436.4,357.5L266.2,83.2c-2-3.2-5.5-5.1-9.2-5.1c-3.8,0-7.3,1.9-9.2,5.1L77,358.2c-2.1,3.4-2.2,7.6-0.3,11    c1.9,3.4,5.6,5.6,9.5,5.6h341.3h0c6,0,10.9-4.9,10.9-10.9C438.5,361.5,437.7,359.3,436.4,357.5z\"\n}), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n  d: \"M244.3,261.4l-3.5-52.8c-0.7-10.3-1-17.7-1-22.2c0-6.1,1.6-10.9,4.8-14.3c3.2-3.4,7.4-5.1,12.6-5.1     c6.3,0,10.6,2.2,12.7,6.6c2.1,4.4,3.2,10.7,3.2,18.9c0,4.9-0.3,9.8-0.8,14.8l-4.7,54.3c-0.5,6.5-1.6,11.4-3.3,14.9     c-1.7,3.5-4.5,5.2-8.4,5.2c-4,0-6.7-1.7-8.3-5C246.1,273.3,245,268.2,244.3,261.4z M256.6,333.9c-4.5,0-8.4-1.4-11.7-4.3     c-3.3-2.9-5-7-5-12.2c0-4.6,1.6-8.4,4.8-11.6c3.2-3.2,7.1-4.8,11.7-4.8c4.6,0,8.6,1.6,11.9,4.8c3.3,3.2,4.9,7.1,4.9,11.6     c0,5.1-1.7,9.2-5,12.1C264.8,332.5,261,333.9,256.6,333.9z\"\n}))));\n\nvar SvgIcons8Error = function SvgIcons8Error(_ref) {\n  var svgRef = _ref.svgRef,\n      props = _objectWithoutProperties(_ref, [\"svgRef\"]);\n\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    id: \"Layer_1\",\n    x: \"0px\",\n    y: \"0px\",\n    width: \"64px\",\n    height: \"64px\",\n    viewBox: \"0 0 512 512\",\n    enableBackground: \"new 0 0 512 512\",\n    xmlSpace: \"preserve\",\n    ref: svgRef\n  }, props), _ref2);\n};\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(function (props, ref) {\n  return /*#__PURE__*/React.createElement(SvgIcons8Error, _extends({\n    svgRef: ref\n  }, props));\n});\nexport default __webpack_public_path__ + \"static/media/icons8-error.066f8978.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from \"react\";\nimport Div100vh from \"react-div-100vh\";\nimport { ReactComponent as Error } from \"../../assets/svg/icons8-error.svg\";\n\nexport default class ErrorPage extends Component {\n  render() {\n    return (\n      <Div100vh className=\"d-flex justify-content-center align-items-center flex-column\">\n        <Error\n          style={{\n            minWidth: 150,\n            minHeight: 150,\n            display: \"block\",\n            margin: \"auto\",\n          }}\n          className=\"my-4\"\n        />\n        <h1 className=\"text-center\">Error</h1>\n      </Div100vh>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport { BrowserRouter, Switch, Route } from \"react-router-dom\";\nimport Amplify from 'aws-amplify';\nimport ProtectedRoute from \"./components/commons/ProtectedRoute\";\nimport AuthGuard from \"./services/guards/AuthGuard\";\nimport PermissionsGuard from \"./services/guards/PermissionsGuard\";\n\nimport LoginPage from \"./pages/Login/index\";\nimport MarketPage from \"./pages/User/Market/index\";\nimport NotificationsPage from \"./pages/User/Notifications/index\";\nimport CourseResultsPage from \"./pages/User/CourseResults/index\";\nimport AdminPage from \"./pages/Admin/index\";\nimport ManagerPage from \"./pages/Manager/index\";\nimport CoursePracticePage from \"./pages/User/Course/CoursePractice/index\";\nimport CourseTestPage from \"./pages/User/Course/CourseTest/index\";\nimport CourseResultPage from \"./pages/User/Course/CourseResult/index\";\nimport SubtleTestPage from \"./pages/User/SubtleTest/index\";\nimport NursingPage from \"./pages/User/Nursing/index\";\nimport ComicSpiritPage from \"./pages/User/ComicSpirit/index\";\nimport ComicLifePage from \"./pages/User/ComicLife/index\";\nimport SimpleFlowTestPage from \"./pages/User/SimpleFlowTest/index\";\nimport ErrorPage from \"./pages/Error/index\";\n\nAmplify.configure({\n  Auth: {\n    identityPoolId: process.env.REACT_APP_IDENTITY_POOL_ID,\n    region: process.env.REACT_APP_REGION,\n    userPoolId: process.env.REACT_APP_USER_POOL_ID,\n    userPoolWebClientId: process.env.REACT_APP_USER_POOL_CLIENT_ID,\n  },\n  API: {\n    aws_appsync_graphqlEndpoint: process.env.REACT_APP_APPSYNC_ENDPOINT,\n    aws_appsync_region: process.env.REACT_APP_REGION,\n    aws_appsync_authenticationType: \"AMAZON_COGNITO_USER_POOLS\",\n    aws_appsync_apiKey: process.env.REACT_APP_APPSYNC_API_KEY,\n  },\n  Storage: {\n    AWSS3: {\n      bucket: process.env.REACT_APP_S3_BUCKET,\n      region: process.env.REACT_APP_REGION\n    }\n  }\n});\n\nexport default class App extends Component {\n  render() {\n    if (process.env.REACT_APP_IS_PRODUCTION === \"0\") {\n      console.log('env', process.env.REACT_APP_ENV_NAME)\n    }\n    return (\n      <BrowserRouter>\n        {/*<Suspense fallback={<FullLoading />}>*/}\n          {/*{this.props.localStorageChecked && (*/}\n            <Switch>\n              <Route path=\"/login/\" exact component={LoginPage} />\n              <Route path=\"/error/\" exact component={ErrorPage} />\n              <ProtectedRoute path=\"/\" exact component={MarketPage} guards={[AuthGuard, PermissionsGuard]} />\n              {/*<ProtectedRoute*/}\n              {/*  path=\"/course/:courseId/practice/:questionId?\"*/}\n              {/*  exact*/}\n              {/*  component={CoursePracticePage}*/}\n              {/*  guards={[AuthGuard, PermissionsGuard]}*/}\n              {/*/>*/}\n              <Route\n                path=\"/course/:courseId/practice/:questionId?\"\n                exact\n                render={props => <CoursePracticePage key={props.match.params.questionId} {...props} />}\n              />\n              <ProtectedRoute\n                path=\"/course/:courseId/test/:questionId?/:answerId?/:testId?\"\n                exact\n                component={CourseTestPage}\n                guards={[AuthGuard, PermissionsGuard]}\n              />\n              <ProtectedRoute\n                path=\"/course/:courseId/result/:testId\"\n                exact\n                component={CourseResultPage}\n              />\n              <ProtectedRoute path=\"/subtle-test/:testId?\" exact component={SubtleTestPage} guards={[AuthGuard, PermissionsGuard]} />\n              <ProtectedRoute path=\"/simple-flow-test/:testId?\" exact component={SimpleFlowTestPage} guards={[AuthGuard, PermissionsGuard]} />\n              {/*<ProtectedRoute path=\"/nursing/:testId?\" exact component={NursingPage} guards={[AuthGuard, PermissionsGuard]} />*/}\n              <Route\n                path={\"/nursing/:testId?\"}\n                render={props => <NursingPage {...props} />}\n              />\n              {/*<ProtectedRoute path=\"/comic-spirit/:contentId\" exact component={ComicSpiritPage} guards={[AuthGuard, PermissionsGuard]} />*/}\n              <Route\n                path={\"/comic-spirit/:contentId\"}\n                render={props => <ComicSpiritPage key={props.match.params.contentId} {...props} />}\n              />\n              {/*<ProtectedRoute path=\"/comic-life/:contentId\" exact component={ComicLifePage} guards={[AuthGuard, PermissionsGuard]} />*/}\n              <Route\n                path={\"/comic-life/:contentId\"}\n                render={props => <ComicLifePage key={props.match.params.contentId} {...props} />}\n              />\n              <ProtectedRoute path=\"/notifications\" component={NotificationsPage} guards={[AuthGuard, PermissionsGuard]} />\n              <ProtectedRoute path=\"/results\" exact component={CourseResultsPage} guards={[AuthGuard, PermissionsGuard]} />\n              <ProtectedRoute path=\"/admin/\" component={AdminPage} guards={[AuthGuard, PermissionsGuard]} />\n              <ProtectedRoute path=\"/manager/\" component={ManagerPage} guards={[AuthGuard, PermissionsGuard]} />\n              {/*<Route component={Index} />*/}\n            </Switch>\n          {/*)}*/}\n          {/*{!this.props.localStorageChecked && <FullLoading />}*/}\n        {/*</Suspense>*/}\n      </BrowserRouter>\n    );\n  }\n}\n\n// function mapStateToProps(state) {\n//   return {\n//     isAuth: true\n//     // isAuth: auth.isAuth(),//authSelectors.isAuth(state),\n//     // localStorageChecked: state.auth.localStorageChecked,\n//     // courseGroups: state.courses.courseGroups,\n//     // initDataLoaded: state.courses.initDataLoaded\n//   };\n// }\n\n// export default connect(mapStateToProps)(App);\n// export default withAuthenticator(App);\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n  window.location.hostname === 'localhost' ||\n    // [::1] is the IPv6 localhost address.\n    window.location.hostname === '[::1]' ||\n    // 127.0.0.1/8 is considered localhost for IPv4.\n    window.location.hostname.match(\n      /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n    )\n);\n\nexport function register(config) {\n  if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n    // The URL constructor is available in all browsers that support SW.\n    const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n    if (publicUrl.origin !== window.location.origin) {\n      // Our service worker won't work if PUBLIC_URL is on a different origin\n      // from what our page is served on. This might happen if a CDN is used to\n      // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n      return;\n    }\n\n    window.addEventListener('load', () => {\n      const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n      if (isLocalhost) {\n        // This is running on localhost. Let's check if a service worker still exists or not.\n        checkValidServiceWorker(swUrl, config);\n\n        // Add some additional logging to localhost, pointing developers to the\n        // service worker/PWA documentation.\n        navigator.serviceWorker.ready.then(() => {\n          console.log(\n            'This web app is being served cache-first by a service ' +\n              'worker. To learn more, visit https://bit.ly/CRA-PWA'\n          );\n        });\n      } else {\n        // Is not localhost. Just register service worker\n        registerValidSW(swUrl, config);\n      }\n    });\n  }\n}\n\nfunction registerValidSW(swUrl, config) {\n  navigator.serviceWorker\n    .register(swUrl)\n    .then(registration => {\n      registration.onupdatefound = () => {\n        const installingWorker = registration.installing;\n        if (installingWorker == null) {\n          return;\n        }\n        installingWorker.onstatechange = () => {\n          if (installingWorker.state === 'installed') {\n            if (navigator.serviceWorker.controller) {\n              // At this point, the updated precached content has been fetched,\n              // but the previous service worker will still serve the older\n              // content until all client tabs are closed.\n              console.log(\n                'New content is available and will be used when all ' +\n                  'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n              );\n\n              // Execute callback\n              if (config && config.onUpdate) {\n                config.onUpdate(registration);\n              }\n            } else {\n              // At this point, everything has been precached.\n              // It's the perfect time to display a\n              // \"Content is cached for offline use.\" message.\n              console.log('Content is cached for offline use.');\n\n              // Execute callback\n              if (config && config.onSuccess) {\n                config.onSuccess(registration);\n              }\n            }\n          }\n        };\n      };\n    })\n    .catch(error => {\n      console.error('Error during service worker registration:', error);\n    });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n  // Check if the service worker can be found. If it can't reload the page.\n  fetch(swUrl)\n    .then(response => {\n      // Ensure service worker exists, and that we really are getting a JS file.\n      const contentType = response.headers.get('content-type');\n      if (\n        response.status === 404 ||\n        (contentType != null && contentType.indexOf('javascript') === -1)\n      ) {\n        // No service worker found. Probably a different app. Reload the page.\n        navigator.serviceWorker.ready.then(registration => {\n          registration.unregister().then(() => {\n            window.location.reload();\n          });\n        });\n      } else {\n        // Service worker found. Proceed as normal.\n        registerValidSW(swUrl, config);\n      }\n    })\n    .catch(() => {\n      console.log(\n        'No internet connection found. App is running in offline mode.'\n      );\n    });\n}\n\nexport function unregister() {\n  if ('serviceWorker' in navigator) {\n    navigator.serviceWorker.ready.then(registration => {\n      registration.unregister();\n    });\n  }\n}\n","import {\n  SET_COMIC_LIFE_IDS,\n  SET_COMIC_SPIRIT_IDS,\n  SET_COMIC_LIFE_INTRO,\n  SET_FULL_LOADING,\n  SET_KIBIIN_NOTIFICATIONS,\n  SET_LANG,\n  SET_NOTIFICATIONS,\n  SET_READ_NOTIFICATIONS\n} from \"./actionTypes\";\nimport * as commonService from \"../../services/common\";\nconst initialState = {\n  fullLoading: false,\n  // langs,\n  currentLang: commonService.mainLanguage,\n  comicLifeIntro: true,\n  comicLifeIds: [],\n  comicSpiritIds: [],\n  notifications: {\n    list: [],\n    kibiin: [],\n    readed: [],\n  }\n};\n\nconst rootReducer = (state = initialState, action) => {\n  switch (action.type) {\n    case SET_FULL_LOADING:\n      return Object.assign({}, state, {\n        fullLoading: action.loading\n      });\n    case SET_LANG:\n      return Object.assign({}, state, {\n        currentLang: action.lang\n      });\n    case SET_COMIC_LIFE_INTRO:\n      return Object.assign({}, state, {\n        comicLifeIntro: action.intro\n      });\n    case SET_COMIC_LIFE_IDS:\n      return Object.assign({}, state, {\n        comicLifeIds: action.ids\n      });\n    case SET_COMIC_SPIRIT_IDS:\n      return Object.assign({}, state, {\n        comicSpiritIds: action.ids\n      });\n    case SET_NOTIFICATIONS:\n      return { ...state, notifications: { ...state.notifications, list: action.list } };\n    case SET_KIBIIN_NOTIFICATIONS:\n      return { ...state, notifications: { ...state.notifications, kibiin: action.kibiin } };\n    case SET_READ_NOTIFICATIONS:\n      return { ...state, notifications: { ...state.notifications, readed: action.readed } };\n    default: {\n      return state;\n    }\n  }\n};\n\nexport default rootReducer;\n","import {\n  SET_USER_DATA,\n  CLEAR_USER_DATA,\n  SET_ERROR_DATA,\n  CLEAR_ERROR_DATA,\n  LOCAL_STORAGE_CKECKED,\n  SET_LOADING\n} from \"./actionTypes\";\n\nconst emptyUser = {\n  email: null,\n  jwt: null,\n  sub: null\n};\nconst initialState = {\n  user: Object.assign({}, emptyUser),\n  error: null,\n  localStorageChecked: false,\n  loading: false\n};\n\nconst authReducer = (state = initialState, action) => {\n  switch (action.type) {\n    case SET_USER_DATA:\n      return Object.assign({}, state, {\n        user: action.user\n      });\n    case CLEAR_USER_DATA:\n      return Object.assign({}, state, { user: Object.assign({}, emptyUser) });\n    case SET_ERROR_DATA:\n      return Object.assign({}, state, { error: action.error });\n    case CLEAR_ERROR_DATA:\n      return Object.assign({}, state, { error: null });\n    case LOCAL_STORAGE_CKECKED:\n      return Object.assign({}, state, { localStorageChecked: true });\n    case SET_LOADING:\n      return Object.assign({}, state, { loading: action.loading });\n    default: {\n      return state;\n    }\n  }\n};\n\nexport function isAuth(state) {\n  return !!state.auth.user.jwt;\n}\n\nexport default authReducer;\n","export const SET_USER_DATA = 'auth.SET_USER_DATA';\nexport const CLEAR_USER_DATA = 'auth.CLEAR_USER_DATA';\nexport const SET_ERROR_DATA = 'auth.SET_ERROR_DATA';\nexport const CLEAR_ERROR_DATA = 'auth.CLEAR_ERROR_DATA';\nexport const LOCAL_STORAGE_CKECKED = 'auth.LOCAL_STORAGE_CKECKED';\nexport const SET_LOADING = 'auth.SET_LOADING';","import {\n  SET_CURRENT_COURSE_GROUP,\n  SET_COURSE_GROUPS,\n  SET_PROGRESS,\n  SET_INIT_DATA_LOADED\n} from \"./actionTypes\";\n\nconst initialState = {\n  courseGroups: null,\n  currentCourseGroup: null,\n  progress: null,\n  initDataLoaded: false,\n  initDataLoading: false\n};\n\nconst coursesReducer = (state = initialState, action) => {\n  switch (action.type) {\n    case SET_COURSE_GROUPS:\n      return Object.assign({}, state, {\n        courseGroups: action.courseGroups\n      });\n    case SET_PROGRESS:\n      return Object.assign({}, state, {\n        progress: action.progress\n      });\n    case SET_INIT_DATA_LOADED:\n      return Object.assign({}, state, {\n        initDataLoaded: action.initDataLoaded\n      });\n    case SET_CURRENT_COURSE_GROUP:\n      return Object.assign({}, state, {\n        currentCourseGroup: action.courseGroup\n      });\n    default: {\n      return state;\n    }\n  }\n};\n\nexport function getCourseProgress(state, courseId) {\n  if (state.courses.progress && state.courses.progress.length) {\n    return state.courses.progress.find(courseProgress => courseProgress.courseId === courseId);\n  } else {\n    return undefined;\n  }\n}\n\nexport default coursesReducer;\n","export const SET_CURRENT_COURSE_GROUP = 'courses.SET_CURRENT_COURSE_GROUP';\nexport const SET_COURSE_GROUPS = 'courses.SET_COURSE_GROUP';\nexport const SET_PROGRESS = 'courses.SET_PROGRESS';\nexport const SET_INIT_DATA_LOADED = 'courses.SET_INIT_DATA_LOADED';\n","import { createStore, applyMiddleware, combineReducers } from \"redux\";\nimport thunk from \"redux-thunk\";\nimport * as reducers from \"./reducers\";\n\nexport default createStore(combineReducers(reducers), applyMiddleware(thunk));\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { Provider } from \"react-redux\";\n// import { ApolloProvider } from \"react-apollo\";\nimport App from \"./App\";\nimport * as serviceWorker from \"./serviceWorker\";\n// import appSyncClient from \"./graphql/client\";\nimport store from \"./store\"\nimport \"./index.scss\";\n\nrequire('dotenv').config();\n\nReactDOM.render(\n  <Provider store={store}>\n    <App />\n  </Provider>,\n  document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n"],"sourceRoot":""}