{"version":3,"sources":["images/radioGymnastics.png","images/add-pin.svg","images/bn_468x78.png","Constants.tsx","net/NetworkClient.ts","misc/ActionSlice.tsx","openid/ApiAuthorizationConstants.js","openid/AuthorizeService.js","net/AxisUtil.ts","net/CalendarAsync.ts","net/ContentsAsync.ts","contents/items/LocalFiles.ts","contents/ContentsToolbar.tsx","contents/ContentsNavItem.tsx","contents/ContentsNav.tsx","misc/ConfirmDialog.tsx","contents/items/TitleText.tsx","misc/TimePicker.tsx","contents/items/ContentsItemConfig.tsx","contents/items/ContentsItemRadioCalisthenics.tsx","contents/items/AddBtn.tsx","contents/items/ContentsItemWorkProcedure.tsx","contents/items/ContentsItemPrecautions.tsx","contents/items/ContentsItemRollCall.tsx","contents/items/ContentsItemSafetyCall.tsx","contents/items/ContentsItemKYActivity.tsx","misc/AlertDialog.tsx","contents/NewCatItemDialog.tsx","contents/items/ContentsItemListBase.tsx","contents/items/ContentsItemSpeach.tsx","contents/items/ContentsItemText.tsx","contents/items/ContentsItemTitleText.tsx","contents/PhotoSelectDialog.tsx","contents/items/ContentsItemPhotoList.tsx","contents/items/ContentsItemQuestionnarie.tsx","net/TemplateAsync.ts","contents/NewTemplateDialog.tsx","contents/ContentsView.tsx","misc/WaitingBar.tsx","tenant/TenantSlice.tsx","net/TenantAsync.ts","tenant/ProjectCreateDialog.tsx","tenant/ProjectAdminDialog.tsx","tenant/ProjectEditDialog.tsx","tenant/TenantToolbar.tsx","tenant/TenantView.tsx","admin/AdminUserView.tsx","net/PaymentAsync.ts","admin/OrderHistoryDialog.tsx","admin/NewPaymentDialog.tsx","admin/AdminLicenseView.tsx","admin/AdminView.tsx","calendar/CalendarToolbar.tsx","calendar/CalendarCell.tsx","calendar/CalendarGrid.tsx","misc/ContentsSimpleViewer.tsx","calendar/NewContentsDialog.tsx","calendar/ContentsDetailDialog.tsx","calendar/CalendarView.tsx","openid/Login.js","openid/Logout.js","openid/ApiAuthorizationRoutes.js","openid/AuthSlice.tsx","net/ProfileAsync.ts","profile/UserProfileDialog.tsx","admin/GMOResultView.tsx","net/SysadAsync.ts","sysad/SysadEditAddressDialog.tsx","sysad/SysadAddOrderDialog.tsx","sysad/SysadTenantLicenseDialog.tsx","sysad/SysadSetOrderStateDialog.tsx","sysad/SysadOrderView.tsx","sysad/SysadView.tsx","App.tsx","serviceWorker.ts","Store.tsx","index.tsx"],"names":["module","exports","moment","tz","setDefault","ItemTypeKey","REACT_APP_UseRadioGym","process","toLowerCase","SERVER_URL","UseRadioGym","ItemMenuAction","key","label","this","ItemMenuAction_CLICK","ItemMenuAction_ADD","ItemMenuAction_UP_FIRST","ItemMenuAction_UP","ItemMenuAction_DOWN","ItemMenuAction_DOWN_LAST","ItemMenuAction_DELETE","stringToItemTypeKey","ProjectKeyToString","prj","divider","userKey","adminKey","div","re","ProjectAdminKeyToString","ProjectUserKeyToString","slice","emailValidation","value","test","phoneNumberValidation","postalCodeValidation","GetItemIcon","keyName","GetItemKeyIcon","fontsize","undefined","config","fontSize","radioCalisthenics","workProcedure","precautions","safetyCall","kyActivity","rollCall","siteUpdates","general_radioCalisthenics","general_speech","general_text","general_titletext1","general_titletext2","general_titletext3","general_titletext4","general_titletext5","general_chant","general_photoList","general_phototextList","general_photoUpload","general_registration","general_questionnaire","MAFileType","numberWithDelimiter","number","String","replace","CalendarV2Client","baseUrl","instance","jsonParseReviver","axios","create","id","cancelToken","url_","Error","options_","method","url","encodeURIComponent","headers","request","catch","_error","isAxiosError","response","then","_response","processGet","status","_headers","k","hasOwnProperty","_responseText","data","resultData404","throwException","ProblemDetails","fromJS","resultData200","MAContents","resultDatadefault","processDeleteContents","Promise","resolve","resultData400","projectId","start","end","toJSON","processFindContents","result200","Array","isArray","item","push","processGetContentsData","MorningAssemblyJson","prjid","JSON","stringify","processPostContents","resultData201","processGetContentsRollCalls","MARollCall","processGetContentsFiles","MAFile","contentsId","processExcel","ContentsV2Client","tenantId","processGetCategories","MACategoryJson","processGetProjectByContents","MAProject","processGetUploadInfo","UploadInfoResult","photoInfo","processPostContentPhoto","copyInfo","processCopyFileToContentPhoto","processGetQuestionResults","MAQuestionResult","result","processPostQuestionResult","processPut","processFindPhotos","PaymentV2Client","code","processGetPayments","MAPayment","processGetOrders","MAOrder","processGetCurrentPaymentInfo","CurrentPaymentInfo","info","processPostNPInvoice","processStopSubscription","processGMOSettlement","SettlementResult","redirectValue","processGMOGetResult","ProfileV2Client","processGetProfile","MAUser","processIsSysad","processGetAppVersion","processSetName","password","processChangePassword","errorcode","processErrorCodeToLocal","SysadV2Client","processGetTenant","MATenant","processTenants","processGetRegistTenantCsv","orderId","processGetRegistOrderCsv","processGetOrder","processDeleteOrder","processPutTenant","spanMonth","processCalcNextStartEnd","StartEndDate","processPostOrder","processPutTenantLicense","paystate","processPutOrderPaystate","TemplatesV2Client","processFind","MATemplate","processDelete","processGetData","name","srcContentsId","processPost","TenantV2Client","TenantInfo","searchName","searchInvalid","processFindProjects","ProjectInfo","processPostProject","processGetProject","processPutProject","processDeleteProject","processGetTenantUsers","userName","processDeleteTenantUser","processGetProjectAdmins","ProjectAdminResult","processInviteProjectAdmin","InviteUserResult","processCanIncrementActiveProject","invalid","processSetProjectInvalid","processSetUserAdmin","processSendConfirmMail","type","processAddInitialProject","title","detail","extensions","property","_data","init","startUTC","endUTC","createdUTC","updatedUTC","leader","place","notificationSend","attendeeInfo","Date","toString","toISOString","contentId","project","created","updated","news","contents","NewsJson","ContentsJson","uuid","content","details","DetailJson","procedures","updates","call","speakers","texts","questions","message","PrecautionJson","ProcedureJson","UpdateJson","SpeakerJson","TextJson","QuestionJson","work","company","hazardFactor","counterplan","sizeType","lines","LineJson","text","question","deviceToken","path","createUTC","updateUTC","expireUTC","originalName","kind","fileType","categories","Category","Content","description","managementNumber","clientPassword","stopNotify","isDemoProject","fileId","uploadUrl","sasToken","PostPhotoInfo","fileName","deivceToken","CopyPhotoInfo","srcFileId","results","MAQuestionResultItem","questionUUID","projectCount","intervalMonth","optional","price","paid","registered","stopSubscription","stopSubscriptionDate","payType","timeSpanMonth","validDateUTC","valid","orderDate","state","transCode","processCode","note","missionCode","stCode","contractCode","itemName","paymentCode","mailAddress","itemCode","creditDate","creditStCode","creditPayTime","verAccountNo","verBankCode","verBankName","verBranchCode","verBranchName","verAccountName","verAmount","licenses","MALicense","quantity","unpaidOrder","currentOrders","nextOrders","PostNPInvoiceInfo","tenantName","departmentName","chargePerson","phoneNumber","postalCode","region","address1","address2","address3","invoiceByEmail","errCode","errDetail","redirect","orderItems","OrderItem","orderCode","count","PostSettlementInfo","orderItemJson","paymentType","OrderRedirect","orderNumber","userId","passwordChanged","IdentityUser","normalizedUserName","email","normalizedEmail","emailConfirmed","passwordHash","securityStamp","concurrencyStamp","phoneNumberConfirmed","twoFactorEnabled","lockoutEnd","lockoutEnabled","accessFailedCount","IdentityUserOfString","codeForInvoice","nameForInvoice","category","remarks","limitUTC","maxProject","PostOrderInfo","PutTenantLicenseInfo","isDefault","orderNo","jsonData","tenant","active","admin","obayashi","projectAdmins","tenantAdmins","tenantAdmin","projectAdmin","tenantUser","user","isExistUser","isTenantUser","isTenantAdmin","isProjectAdmin","emailValidateUrl","InviteUser","SetProjectAdmin","toAdmin","ApiException","isApiException","obj","ActionType","QueryParameterNames","LogoutActions","LoginActions","prefix","ApplicationPaths","DefaultLoginRedirectPath","ApiAuthorizationClientConfigurationUrl","ApiAuthorizationPrefix","Login","LoginFailed","LoginCallback","Register","Profile","LogOut","LoggedOut","LogOutCallback","IdentityRegisterPath","IdentityManagePath","authService","_callbacks","_nextSubscriptionId","_user","_isAuthenticated","_popUpDisabled","getUser","profile","ensureUserManagerInitialized","userManager","access_token","signinSilent","createArguments","silentUser","updateState","success","console","log","signinPopup","popUpUser","error","signinRedirect","signinCallback","signoutPopup","signoutRedirect","signoutCallback","notifySubscribers","callback","subscription","subscriptionId","subscriptionIndex","map","element","index","found","filter","length","splice","i","useReplaceToNavigate","AuthenticationResultStatus","Fail","Success","Redirect","fetch","ok","json","settings","automaticSilentRenew","includeIdTokenInSilentRenew","userStore","WebStorageStateStore","UserManager","events","addUserSignedOut","a","removeUser","emptyAction","EMPTY","ActionSlice","createSlice","initialState","action","loading","reducers","setLoading","payload","doAction","clearAction","getAuthedAxisInstance","dispatch","getAccessToken","token","actions","interceptors","use","Authorization","reject","HTTP_401_ERROR","findContentsSv","createAsyncThunk","arg","findContents","getContentsDataSv","getContentsData","postContentsSv","postContents","deleteContentsSv","deleteContents","getContentsFilesSv","getContentsFiles","getContentsRollCallsSv","getContentsRollCalls","getExcelDataSv","excel","getCategoriesSv","getCategories","postFile","file","getUploadInfoSv","upinfo","promise","BlockBlobClient","uploadData","all","postContentPhotoSv","postInfo","err","getProjectByContentsSv","getProjectByContents","getUploadInfo","postContentPhoto","putContentsSv","put","findPhotosSv","findPhotos","copyFileToContentPhotoSv","copyFileToContentPhoto","revokeObjectURL","window","URL","webkitURL","localFiles","files","find","f","getFile","objectUrl","f1","f2","forEach","useStyles","makeStyles","theme","toolbar","position","paddingLeft","backgroundColor","breakpoints","up","marginLeft","width","down","toolbtnMenu","color","toolbtnSaveTemplate","toolbtnSave","toolbtnAdd","ContentsToolbar","dirty","onSave","onAddItem","onMenuToggle","onSaveTemplate","classes","Toolbar","variant","className","Hidden","smUp","implementation","IconButton","aria-label","onClick","xsDown","disabled","textPrimary","paddingTop","paddingBottom","itemCategory","spacing","itemPrimary","itemIcon","minWidth","marginRight","marginTop","btn","actionRoot","zIndex","menuList","ContentsNavItem","contentsJson","selected","uparrow","downarrow","onAction","itemKey","React","useState","menuopen","setMenuopen","anchorRef","useRef","prevOpen","onClose","event","current","contains","target","handleListKeyDown","preventDefault","useEffect","focus","ListItem","button","clsx","ListItemIcon","ListItemText","primary","ListItemSecondaryAction","Box","component","edge","size","ref","aria-controls","aria-haspopup","e","Popper","open","anchorEl","placement","role","transition","disablePortal","TransitionProps","Grow","style","transformOrigin","Paper","ClickAwayListener","onClickAway","MenuList","autoFocusItem","onKeyDown","MenuItem","Divider","ConfigNavItem","drawer","overflowX","overflowY","height","marginBottom","flexShrink","toolbtn","padding","justifyContent","ContentsNav","selectedItem","onBackCalendar","useDispatch","actionMessage","useSelector","CONTENT_ITEM_LOAD_START","CONTENT_ITEM_LOAD_END","Drawer","paper","List","display","itemId","ConfirmDialogSlice","openConfirm","closeConfirm","ConfirmDialog","confirm","handleClose","Dialog","fullWidth","maxWidth","aria-labelledby","aria-describedby","DialogContent","DialogContentText","DialogActions","Button","autoFocus","textbox","titleicon","titleBox","alignItems","titleText","TitleText","onUpdate","onChanging","setData","upflag","setUpflag","useDebounce","debouncedData","IsEditableItemTitle","Fragment","TextField","helperText","onChange","formControl","box","flexDirection","HOURS_LIST","MINUTES_LIST","TimePicker","baseDate","useOverTime","required","after","hours","setHours","minutes","setMinites","MaxHour","b","endOf","v","isBefore","add","toDate","isAfter","get","changeValue","h","m","set","checkHourDisable","ah","FormControl","InputLabel","Select","parseInt","overflow","flexGrow","margin","ctrl","arrayToString","list","val","ContentsItemConfig","onSetJson","startDateTime","endDateTime","errors","setErrors","toData","startTime","format","endTime","s","hasError","copy","Object","assign","checkErrors","str","split","Guid","date","second","millisecond","enddate","hour","minute","isSame","elevation","square","Grid","container","xs","t","d","multiline","rows","image","with","paddingRight","ContentsItemRadioCalisthenics","direction","justify","src","RadioGymImage","alt","addpin","addpinBox","textAlign","AddBtn","hide","Tooltip","AddPin","itemActions","ContentsItemWorkProcedure","setItemId","setDataAndPost","inData","c","strsrc","parse","tmp","copyData","addProcedure","newdata","idx","procedure","onShift","findIndex","p","onDelete","Procedure","checkChange","updateContentsJson","proc","Card","CardContent","CardActions","disableSpacing","visibility","PrecautionCard","precaution","prec","ContentsItemPrecautions","addPrecaution","rollcall","checkIcon","uptime","top","right","ContentsItemRollCall","isSupported","hasMessage","rollCalls","setRollCalls","rollCallsUpdated","setRollCallsUpdated","refreshData","indata","dststr","rollcalls","hidden","CircularProgress","Typography","ctr","ContentsItemSafetyCall","classNames","require","infoIcon","palette","common","white","img","maxHeight","viewerImgH","viewerImgW","saveBtn","ContentsItemKYActivity","setTitle","setFiles","selectedFile","setSelectedFile","selectedFileLandscape","setSelectedFileLandscape","filesUpdated","setFilesUpdated","isSupport","useTheme","upxl","useMediaQuery","uplg","upmd","upsm","infiles","selectedImageClass","newTitle","GridList","cellHeight","cols","GridListTile","GridListTileBar","subtitle","actionIcon","fullScreen","AppBar","href","download","onLoad","document","getElementById","naturalHeight","naturalWidth","AlertDialogSlice","openAlert","closeAlert","AlertDialog","alert","heading","caution","warning","main","progress","NewCatItemDialog","catJson","setCatJson","selectedValue","setSelectedValue","useLocalStorage","expanded","setExpanded","cat","onChangeRadio","onCreateNewItem","selectedTitle","Accordion","ev","expand","AccordionSummary","expandIcon","AccordionDetails","cnt","FormControlLabel","control","Radio","checked","labelPlacement","headerBox","cardcontent","ItemCard","props","createElement","cardContents","contentsid","delegate","getUUID","ContentsItemListBase","buildContentsJson","addItem","makeNewItem","isSuported","contentsToData","cardHeader","SpeachDelegate","SpeachCardContents","ContentsItemSpeach","TextDelegate","TextCardContents","getValue","line","ContentsItemText","typeTitle","labelCard","grey","TitlesHeader","TextCount","getTitleTarget","getTitle","jsonToData","isEqual","title1","title2","title3","title4","title5","v1","v2","eq","s1","s2","tc","ln","TitleTextCardContents","textCount","text1","getText","text2","text3","text4","text5","ContentsItemTitleText","templateItem","gridList","selectedIcon","left","borderRadius","nonselectedIcon","cameraIcon","PhotoSelectDialogSlice","openPhotoSelect","closePhotoSelect","PhotoSelectDialog","photos","setPhotos","setSelected","photoSelect","refresh","photo","titlePosition","pathLabel","bottom","fileBtn","imgPaper","minHeight","background","sizeBtnSelected","textTransform","sizeBtn","findPhotoBtn","resizeOp","PhotoListDelegate","PhotoListCardContents","vuuid","localFileObject","getObjectUrl","createObjectURL","isNoImage","isPdfFile","endsWith","checkFile","shrink","ButtonGroup","accept","addFile","ok2","newFile","FormHelperText","ContentsItemPhotoList","QuestionnaireDelegate","QuestionnaireCardContents","ContentsItemQuestionnaire","getTemplateListSv","tmplist","getTemplateDataSv","getData","templateId","postTemplateSv","post","deleteTemplateSv","delete","NewTemplateDialog","templates","setTemplates","setName","tmps","sort","t1","t2","template","root","ContentsView","history","useHistory","useParams","openNavMenu","setOpenNavMenu","setDirty","setJsonData","setProject","setSelectedItem","selectedItemWaiting","setSelectedItemWaiting","openDlgNewItem","setOpenDlgNewItem","newItemIndex","setNewItemIndex","openDlgNewTemplate","setOpenDlgNewTemplate","changing","setChanging","reloadData","getProject","clearFiles","clearAll","finally","copyJson","itemkey","filtered","n","UpdateContents","onSaveTemplateInner","withoutUI","uploadAllTempFiles","cts","u","updata","browserFile","WaitingSlice","waitingFlag","beginWaiting","stopWaiting","backdrop","WaitingBar","waiting","Backdrop","TenantSlice","currentTenant","tenants","projects","setCurrent","setTenants","updateTenants","setProjects","updateProject","removeProject","addProject","lst","tenantFindSv","putTenantSv","putTenant","getTenantSv","getTenant","findProjectsSv","findProjects","getProjectSv","canIncrementActiveProject","postProjectSv","postProject","rePrd","putProjectSv","putProject","setProjectInvalidSv","setProjectInvalid","getProjectAdminsSv","getProjectAdmins","inviteProjectAdminSv","inviteProjectAdmin","setUserAdminSv","setUserAdmin","deleteProjectSv","deleteProject","getTenantUsersSv","getTenantUsers","users","deleteTenantUserSv","deleteTenantUser","sendConfirmMailSv","sendConfirmMail","addInitialProject","clipbtn","ProjectCreateDialog","activeProject","useProject","setUseProject","setManagementNumber","setDescription","openTip","setOpenTip","setCreated","usePassword","setUsePassword","setPassword","submitting","setSubmitting","validToSubmit","match","disableBackdropClick","Switch","Checkbox","canIncrease","submit","arrow","disableHoverListener","InputProps","readOnly","flex","userText","textOverflow","whiteSpace","userIcon","disabledSwitch","cursor","pointerEvents","textField","ProjectAdminDialog","currentUser","auth","adminInfo","setAdminInfo","recheckFlag","setRecheckFlag","invitePanel","setInvitePanel","setUserName","setMailAddress","mailError","setMailError","updateProjectInfo","onSwitchAdmin","setAdmin","ProjectEditDialog","prjinfo","sp","toolbarTenantBtn","nonactive_btn","configBtn","configBox","TenantToolbar","tbtnc","listLabel","validOnlyBtn","searchBtn","addBtn","subBtn","deleteMenuItem","activeIcon","deactiveIcon","hideDownXs","cardTitle","cardContent","cardText","cardButton","TenantView","currentProjects","tenantid","openCreateProjectDialog","setOpenCreateProjectDialog","openProjectAdminDialog","setOpenProjectAdminDialog","openProjectEditDialog","setOpenProjectEditDialog","projectIdForDialog","setProjectIdForDialog","searchWord","setSearchWord","setSearchInvalid","refreshProjectList","refreshTenantInfo","retenant","prjinfos","onCalendar","EDIT_PROJECT_IN_TENANT","pid","SET_PROJECT_ADMIN_IN_TENANT","VALIDATE_PROJECT_IN_TENANT","cur","placeholder","startAdornment","InputAdornment","CardHeader","avatar","underline","subheader","gutterBottom","onSetProjectAdmin","onEditAction","inok","onInvalidate","onValidate","onDeleteAction","usersBox","avaterActive","avaterDeactive","userCard","mailbtn","delbtn","AdminUserView","tenantUsers","setTenantUsers","setCurrentTenant","reloadUsers","userItem","Avatar","inUser","GetCurrentPaymentInfoSv","getPayments","payments","getCurrentPaymentInfo","GetOrdersSv","getOrders","orders","GMOGetResultSv","gMOSettlement","res","gMOGetResult","orderRe","PostNPInvoiceSv","postNPInvoice","StopSubscriptionSv","historyList","linkStyle","OrderHistoryDialog","setOrders","order","l","light","YubinBango","styles","createStyles","closeButton","gridCenter","alignSelf","notation","postalCodeField","amountTextStyle","payBtn","actionBox","postalDiv","sendTypeBtnGroup","sendTypeBtnSelected","sendTypeBtn","NewPaymentDialog","currentOrder","setProjectCount","paytype","setPaytype","page","setPage","regions","setRegions","orderResult","setOrderResult","emptyInvoiceData","invoiceData","setInvoiceData","invoiceError","setInvoiceError","Core","REGION","prjcount","DialogTitle","withStyles","children","other","disableTypography","calcProjectCount","labelId","projectCountList","rel","InvoiceBanner","inputProps","maxLength","disableElevation","Link","addr","locality","street","PostalCodeFormat","postNVInvoice","paperSytle","columnStyle","columnDataStyle","AdminLicenseView","openNewPaymentDialog","setOpenNewPaymentDialog","openHistoryDialog","setOpenHistoryDialog","setCurrentOrder","currentInfo","setCurrentInfo","currentPlans","setCurrentPlans","registPlans","setRegistPlans","refreshInfo","o","license","idx2","update","backBox","backBtn","tabPanel","tablist","AdminView","tabIndex","setTabIndex","setTenantName","tenantNameError","setTenantNameError","Tabs","newValue","TabIndicatorProps","Tab","icon","borderBottom","toolbarSelect","borderColor","toolbarIcon","fill","toolbarLabel","toolbarKeyLabel","toolbarBtn","backbtn","CalendarToolbar","onChangeDate","year","currentYear","setCurrentYear","month","currentMonth","setCurrentMonth","years","y","editBtn","lineHeight","editText","timeText","placeText","daybtn","border","verticalAlign","wordBreak","sunday","saturday","passed","dropHighlight","nomal","today","day","btnStyle","menuBtnStyle","btnBigStyle","btnSvg","DupInfo","to","ContentsPop","setAnchorEl","Boolean","currentTarget","Popover","anchorOrigin","vertical","horizontal","ContensBtn","time","useDrag","options","dropEffect","monitor","dropResult","getDropResult","dpinfo","dropok","CONFIRM_DUPULICATE","collect","isDragging","drag","el","opacity","CalendarCell","serverChecked","onCreate","useDrop","drop","utc","isOver","canDrop","cls","TableCell","dayofweek","dayofweekcell","row4","row5","row6","CalendarGrid","onClickContents","days","setDays","refreshFlag","setRefreshFlag","getFirstLastDate","tgt","first","last","makeDays","fromDate","tmpdays","CHANGE_CONTENTS_IN_CAL","newStart","newEnd","clone","diff","duplicateContainer","copyDays","rowcls","Table","TableHead","TableRow","TableBody","procedureBox","boxShadow","procedureItem","procedureSummary","boxTop","boxBase","boxContainer","boxIcon","boxItem","procLabel","textContents","News","Details","speaker","txt","q","ContentsSimpleViewer","contentsOnly","locale","weekdays","weekdaysShort","textBottom","NewContentsDialog","initialDate","baseDataList","setBaseDataList","selectedBaseData","setSelectedBaseData","bdlist","ok1","list1","ed","endtime","tmptime","list2","tmpid","copyList","actionBtn","ContentsDetailDialog","tabValue","setTabValue","contentsData","setContentsData","filesData","setFilesData","rollcallsData","setRollcallsData","dupPopOpen","setDupPopOpen","dupDate","setDupDate","handleCloseDialog","r","setTimeout","updateIndicator","centered","red","link","body","appendChild","click","removeChild","green","OnEdit","OnDuplicate","CalendarView","projectid","currentDate","setCurrentDate","newContentsDate","setNewContentsDate","openNewDialog","setOpenNewDialog","openDetailDialog","setOpenDetailDialog","detailContents","setDetailContents","detailElement","setDetailElement","HTML5toTouch","ldg","login","getReturnUrl","processLoginCallback","URLSearchParams","location","search","setState","redirectToProfile","redirectToRegister","returnUrl","signIn","navigateToReturnUrl","completeSignIn","fromQuery","startsWith","origin","redirectToApiAuthorizationPath","encodeURI","apiAuthorizationPath","redirectUrl","Component","Logout","isReady","authenticated","logout","processLogoutCallback","populateAuthenticationState","isAuthenticated","signOut","completeSignOut","ApiAuthorizationRoutes","render","loginAction","logoutAction","ClosedPrifileDialogInfo","anchorId","AuthSlice","oidcUser","userProfileDialogInfo","sysad","setOidcUser","setUser","setProfileDialog","setSysad","getProfileSv","getProfile","setUserNameSv","setUserPasswordSv","changePassword","isSysadSv","isSysad","gridBox","buttonCenter","profileBtn","UserProfileDialog","viewIndex","setViewIndex","nameText","setNameText","passwordText","setPasswordText","confirmText","setConfirmText","dlgInfo","passwordErrors","setPasswordErrors","startIcon","column","topBtn","GMOResultView","setChecked","setOrder","params","order_number","trans_code","user_id","join","encoding","sysadGetTenantSv","sysadTenantsSv","sysadPutTenantSv","getRegistTenantCsvSv","getRegistTenantCsv","csvstr","toShiftJIS","getRegistOrderCsvSv","getRegistOrderCsv","utf8String","detected","detect","unicodeList","charCodeAt","sjisArray","convert","from","Blob","Uint8Array","SysadGetOrderSv","getOrder","CalcNextStartEndSv","calcNextStartEnd","startEnd","PostOrderSv","postOrder","DeleteOrderSv","deleteOrder","PutTenantLicenseSv","maxPrj","limitDate","putTenantLicense","SysadPutOrderPaystateSv","putOrderPaystate","SysadEditAddressDialog","onPutInfo","SysadAddOrderDialog","srcOrder","setPrice","startDate","setStartDate","endDate","setEndDate","pk","isNaN","startOf","SysadTenantLicenseDialog","setMaxProject","setLimitDate","SysadSetOrderStateDialog","setPaystate","onRadio","companyInfoPane","ordersPane","gridContainer","col","registBtn","SysadOrderView","onReload","loadingOrders","setLoadingOrders","currentOrderId","setCurrentOrderId","openTenantLicenseDialog","setOpenTenantLicenseDialog","openEditAddress","setOpenEditAddress","openOrderDialog","setOpenOrderDialog","openSetOrderStateDialog","setOpenSetOrderStateDialog","loadOrders","blobData","filename","saveAs","onDownloadRegistCSV","lic","onDeleteOrder","onDownloadOrderCSV","cardColumn","SysadView","selectedTenantIdx","setSelectedTenantIdx","selectedTenant","setSelectedTenant","refreshTenants","inTenants","tid","createMuiTheme","typography","default","overrides","MuiButton","containedPrimary","MuiDrawer","MuiListItemIcon","MuiPaper","MuiListItem","MuiFormLabel","MuiInput","MuiListItemSecondaryAction","MuiSwitch","colorSecondary","MuiCheckbox","appBar","fontWeight","appButton","toolbarButtons","profileText","footer","footerLink","textDecoration","version","hideDownSm","hideUpSm","App","buildStr","metadata","buildMajor","buildMinor","buildSubMinor","buildRevision","buildTag","authChecked","setAuthChecked","isauthed","tmpu","mauser","ThemeProvider","CssBaseline","MAAppBar","exact","TopView","ToLogin","appLoading","setMessage","hostname","rootReducer","combineReducers","reducer","AppStore","middleware","getDefaultMiddleware","serializableCheck","configureStore","devTools","setupStore","ReactDOM","store","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.762e2bb8.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/radioGymnastics.8fe74616.png\";","module.exports = __webpack_public_path__ + \"static/media/add-pin.cdd2fdcb.svg\";","module.exports = \"data:image/png;base64,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\"","import React from \"react\";\r\nimport AssignmentIcon from \"@material-ui/icons/Assignment\";\r\nimport AccessibilityNewIcon from \"@material-ui/icons/AccessibilityNew\";\r\nimport ErrorOutlineIcon from \"@material-ui/icons/ErrorOutline\";\r\nimport RecordVoiceOverIcon from \"@material-ui/icons/RecordVoiceOver\";\r\nimport GroupIcon from \"@material-ui/icons/Group\";\r\nimport ConfirmationNumberIcon from \"@material-ui/icons/ConfirmationNumber\";\r\nimport BuildIcon from \"@material-ui/icons/Build\";\r\nimport moment from \"moment-timezone\";\r\nimport PhotoIcon from '@material-ui/icons/Photo';\r\nimport { MAProject } from \"./net/NetworkClient\";\r\nimport ContactlessIcon from '@material-ui/icons/Contactless';\r\nimport DescriptionIcon from '@material-ui/icons/Description';\r\nimport CameraAltIcon from '@material-ui/icons/CameraAlt';\r\nimport QuestionAnswerIcon from '@material-ui/icons/QuestionAnswer';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\n\r\nconst REACT_APP_SERVER_URL = process.env.REACT_APP_SERVER_URL!;\r\nconst REACT_APP_AppNameForOIDC=process.env.REACT_APP_AppNameForOIDC!;\r\nconst REACT_APP_UseRadioGym=(\"\"+process.env.REACT_APP_UseRadioGym!).toLowerCase() === \"true\";\r\n\r\nexport const SERVER_URL = REACT_APP_SERVER_URL;\r\nexport const AppNameForOIDC = REACT_APP_AppNameForOIDC;\r\nexport const UseRadioGym = REACT_APP_UseRadioGym;\r\n\r\n// // //Xcodeでデバッグ用\r\n// export const SERVER_URL = \"https://localhost:5000\";\r\n// export const AppNameForOIDC = \"chorei084-debug\";\r\n// export const UseRadioGym = false;\r\n\r\n//VisualStudioでデバッグ用\r\n// export const SERVER_URL = \"https://localhost:5000\";\r\n// export const AppNameForOIDC = \"chorei084\";\r\n// export const UseRadioGym = true;\r\n\r\n//朝礼084 リリース版 Azure\r\n// export const SERVER_URL = \"https://app.chorei084.com\";\r\n// export const AppNameForOIDC = \"chorei084-release\";\r\n// export const UseRadioGym = false;\r\n\r\n// //会社開発用Azure\r\n// export const SERVER_URL = \"https://chorei084dev.azurewebsites.net\";\r\n// export const AppNameForOIDC = \"chorei084-dev\";\r\n// export const UseRadioGym = false;\r\n\r\nexport const FooterHeight = 30;\r\nexport const DrawerWidth = 280;\r\nexport const BaseBackGroundColor = \"#01a0e9\";\r\nexport const ButtonBackGround = \"#01a0e9\";\r\nexport const LinkTextColor = \"#333\";\r\nexport const EyeCatchColor = \"#FF9A44\";\r\nexport const ToolbarBackGroundColor = \"#FFF\";\r\nexport const DrawerBackColor = \"#fff\";\r\nexport const DrawerSelectedColor = ButtonBackGround;\r\nexport const UnregisteredUpdateURL = \"[unregistered]\";\r\n\r\nexport enum ItemTypeKey {\r\n config = \"config\",\r\n radioCalisthenics = \"radioCalisthenics\",\r\n workProcedure = \"workProcedure\",\r\n precautions = \"precautions\",\r\n safetyCall = \"safetyCall\",\r\n kyActivity = \"kyActivity\",\r\n rollCall = \"rollCall\",\r\n siteUpdates = \"siteUpdates\",\r\n\r\n general_radioCalisthenics = \"general_radioCalisthenics\",\r\n general_speech = \"general_speech\",\r\n general_text = \"general_text\",\r\n general_titletext1 = \"general_titletext1\",\r\n general_titletext2 = \"general_titletext2\",\r\n general_titletext3 = \"general_titletext3\",\r\n general_titletext4 = \"general_titletext4\",\r\n general_titletext5 = \"general_titletext5\",\r\n general_chant = \"general_chant\",\r\n general_photoList = \"general_photoList\",\r\n general_phototextList = \"general_phototextList\",\r\n general_photoUpload = \"general_photoUpload\",\r\n general_registration = \"general_registration\",\r\n general_questionnaire = \"general_questionnaire\",\r\n}\r\n\r\nexport class ItemMenuAction {\r\n key: string = \"\";\r\n label: string = \"\";\r\n constructor(key: string, label: string) {\r\n this.key = key;\r\n this.label = label;\r\n }\r\n}\r\nexport const ItemMenuAction_CLICK = new ItemMenuAction(\"CLICK\", \"選択\");\r\nexport const ItemMenuAction_ADD = new ItemMenuAction(\"ADD\", \"この下へ項目を追加\");\r\nexport const ItemMenuAction_UP_FIRST = new ItemMenuAction(\"UP_FIRST\", \"最初へ移動\");\r\nexport const ItemMenuAction_UP = new ItemMenuAction(\"UP\", \"1つ上へ移動\");\r\nexport const ItemMenuAction_DOWN = new ItemMenuAction(\"DOWN\", \"1つ下へ移動\");\r\nexport const ItemMenuAction_DOWN_LAST = new ItemMenuAction(\"DOWN_LAST\", \"最後へ移動\");\r\nexport const ItemMenuAction_DELETE = new ItemMenuAction(\"DELETE\", \"削除\");\r\n\r\nexport function stringToItemTypeKey(key: string) {\r\n let keyType = key as keyof typeof ItemTypeKey;\r\n return ItemTypeKey[keyType];\r\n}\r\n\r\n//プロジェクトからログインキーを文字列にして返す\r\nexport function ProjectKeyToString(prj?: MAProject, divider?: string): string {\r\n\r\n if (!prj)\r\n return \"データ不正\";\r\n\r\n if ((prj.userKey ?? -1) < 0 || (prj.adminKey ?? -1) < 0) {\r\n return \"利用停止中\";\r\n }\r\n var div = divider ?? \"/\";\r\n\r\n var re = \"管理番号:\" + ProjectAdminKeyToString(prj) ?? \"\";\r\n re += \"\" + div;\r\n re += \"朝礼番号:\" + ProjectUserKeyToString(prj) ?? \"\";\r\n return re;\r\n}\r\nexport function ProjectAdminKeyToString(prj?: MAProject): string | undefined {\r\n if (!prj)\r\n return undefined;\r\n\r\n if ((prj.userKey ?? -1) < 0 || (prj.adminKey ?? -1) < 0)\r\n return undefined;\r\n\r\n return (\"000000\" + prj?.adminKey).slice(-7);\r\n}\r\nexport function ProjectUserKeyToString(prj?: MAProject): string | undefined {\r\n if (!prj)\r\n return undefined;\r\n\r\n if ((prj.userKey ?? -1) < 0 || (prj.adminKey ?? -1) < 0)\r\n return undefined;\r\n\r\n return (\"00000\" + prj?.userKey).slice(-5);\r\n}\r\n\r\nexport const PostalCodeFormat = (str: string): string => {\r\n var s = str.replace(/\\D/g, '-');\r\n if (s.length <= 3)\r\n return s;\r\n return s.slice(0, 3) + '-' + s.slice(3, s.length);\r\n}\r\nexport const emailValidation = (value: string): boolean => {\r\n if (!value) return false;\r\n const regex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$/;\r\n if (!regex.test(value)) return false;\r\n return true;\r\n}\r\nexport const phoneNumberValidation = (value: string): boolean => {\r\n if (!value) return false;\r\n const regex = /^(((0(\\d{1}[-(]?\\d{4}|\\d{2}[-(]?\\d{3}|\\d{3}[-(]?\\d{2}|\\d{4}[-(]?\\d{1}|[5789]0[-(]?\\d{4})[-)]?)|\\d{1,4}-?)\\d{4}|0120[-(]?\\d{3}[-)]?\\d{3})$/;\r\n if (!regex.test(value)) return false;\r\n return true;\r\n}\r\nexport const postalCodeValidation = (value: string): boolean => {\r\n if (!value) return false;\r\n const regex = /^[0-9]{3}-?[0-9]{4}$/;\r\n if (!regex.test(value)) return false;\r\n return true;\r\n}\r\n\r\n\r\nexport function GetItemIcon(keyName:string,fontsize:any = undefined):Object{\r\n return GetItemKeyIcon(stringToItemTypeKey(keyName));\r\n}\r\nexport function GetItemKeyIcon(key: ItemTypeKey,fontsize:any = undefined): Object{\r\n switch (key) {\r\n case ItemTypeKey.config: return ;\r\n case ItemTypeKey.radioCalisthenics: return ;\r\n case ItemTypeKey.workProcedure: return ;\r\n case ItemTypeKey.precautions: return ;\r\n case ItemTypeKey.safetyCall: return ;\r\n case ItemTypeKey.kyActivity: return ;\r\n case ItemTypeKey.rollCall: return ;\r\n case ItemTypeKey.siteUpdates: return ;\r\n\r\n case ItemTypeKey.general_radioCalisthenics: return ;\r\n case ItemTypeKey.general_speech: return ;\r\n case ItemTypeKey.general_text: return ;\r\n case ItemTypeKey.general_titletext1: return ;\r\n case ItemTypeKey.general_titletext2: return ;\r\n case ItemTypeKey.general_titletext3: return ;\r\n case ItemTypeKey.general_titletext4: return ;\r\n case ItemTypeKey.general_titletext5: return ;\r\n case ItemTypeKey.general_chant: return ;\r\n case ItemTypeKey.general_photoList: return ;\r\n case ItemTypeKey.general_phototextList: return ;\r\n case ItemTypeKey.general_photoUpload: return ;\r\n case ItemTypeKey.general_registration: return ;\r\n case ItemTypeKey.general_questionnaire: return ;\r\n }\r\n return ;\r\n}\r\nexport function IsEditableItemTitle(key: ItemTypeKey): boolean {\r\n switch (key) {\r\n case ItemTypeKey.config: return false;\r\n case ItemTypeKey.radioCalisthenics: return false;\r\n case ItemTypeKey.workProcedure: return false;\r\n case ItemTypeKey.precautions: return false;\r\n case ItemTypeKey.safetyCall: return false;\r\n case ItemTypeKey.kyActivity: return false;\r\n case ItemTypeKey.rollCall: return false;\r\n case ItemTypeKey.siteUpdates: return false;\r\n\r\n case ItemTypeKey.general_radioCalisthenics: return false;\r\n case ItemTypeKey.general_speech: return true;\r\n case ItemTypeKey.general_text: return true;\r\n case ItemTypeKey.general_titletext1: return true;\r\n case ItemTypeKey.general_titletext2: return true;\r\n case ItemTypeKey.general_titletext3: return true;\r\n case ItemTypeKey.general_titletext4: return true;\r\n case ItemTypeKey.general_titletext5: return true;\r\n case ItemTypeKey.general_chant: return true;\r\n case ItemTypeKey.general_photoList: return true;\r\n case ItemTypeKey.general_phototextList: return true;\r\n case ItemTypeKey.general_photoUpload: return true;\r\n case ItemTypeKey.general_registration: return true;\r\n case ItemTypeKey.general_questionnaire: return true;\r\n }\r\n return false;\r\n}\r\n\r\nexport const numberWithDelimiter = (number: string | number) => {\r\n return String(number).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,');\r\n}\r\n","/* tslint:disable */\r\n/* eslint-disable */\r\n//----------------------\r\n// \r\n// Generated using the NSwag toolchain v13.13.2.0 (NJsonSchema v10.5.2.0 (Newtonsoft.Json v11.0.0.0)) (http://NSwag.org)\r\n// \r\n//----------------------\r\n// ReSharper disable InconsistentNaming\r\n\r\nimport axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse, CancelToken } from 'axios';\r\n\r\nexport class CalendarV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * コンテンツ取得\r\n * @param id コンテンツID\r\n */\r\n get(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MAContents.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツ削除\r\n * @param id コンテンツID\r\n */\r\n deleteContents(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processDeleteContents(_response);\r\n });\r\n }\r\n\r\n protected processDeleteContents(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツ検索\r\n * @param projectId (optional) プロジェクトID\r\n * @param start (optional) 検索対象の開始日時UTC(オプション)\r\n * @param end (optional) 検索対象の終了日時UTC(オプション)\r\n */\r\n findContents(projectId: string | undefined, start: Date | null | undefined, end: Date | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar?\";\r\n if (projectId === null)\r\n throw new Error(\"The parameter 'projectId' cannot be null.\");\r\n else if (projectId !== undefined)\r\n url_ += \"projectId=\" + encodeURIComponent(\"\" + projectId) + \"&\";\r\n if (start !== undefined && start !== null)\r\n url_ += \"start=\" + encodeURIComponent(start ? \"\" + start.toJSON() : \"\") + \"&\";\r\n if (end !== undefined && end !== null)\r\n url_ += \"end=\" + encodeURIComponent(end ? \"\" + end.toJSON() : \"\") + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processFindContents(_response);\r\n });\r\n }\r\n\r\n protected processFindContents(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAContents.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツのJSONデータ取得\r\n * @param id コンテンツID\r\n */\r\n getContentsData(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{id}/data\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetContentsData(_response);\r\n });\r\n }\r\n\r\n protected processGetContentsData(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MorningAssemblyJson.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツ登録\r\n * @param prjid プロジェクトID\r\n * @param value 設定するデータ\r\n */\r\n postContents(prjid: string, value: MorningAssemblyJson , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{prjid}\";\r\n if (prjid === undefined || prjid === null)\r\n throw new Error(\"The parameter 'prjid' must be defined.\");\r\n url_ = url_.replace(\"{prjid}\", encodeURIComponent(\"\" + prjid));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostContents(_response);\r\n });\r\n }\r\n\r\n protected processPostContents(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAContents.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * ロールコール取得\r\n * @param id コンテンツID\r\n */\r\n getContentsRollCalls(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{id}/rollcall\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetContentsRollCalls(_response);\r\n });\r\n }\r\n\r\n protected processGetContentsRollCalls(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MARollCall.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * ファイル一覧を取得\r\n * @return プロジェクト一覧\r\n */\r\n getContentsFiles(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{id}/file\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetContentsFiles(_response);\r\n });\r\n }\r\n\r\n protected processGetContentsFiles(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAFile.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n excel(contentsId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/calendar/{contentsId}/excel\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processExcel(_response);\r\n });\r\n }\r\n\r\n protected processExcel(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class ContentsV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n getCategories(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/categories/{tenantId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetCategories(_response);\r\n });\r\n }\r\n\r\n protected processGetCategories(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MACategoryJson.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツIDを指定してプロジェクト情報を取得\r\n * @param contentsId コンテンツID\r\n */\r\n getProjectByContents(contentsId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{contentsId}/project\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetProjectByContents(_response);\r\n });\r\n }\r\n\r\n protected processGetProjectByContents(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MAProject.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * アップロード先のURLを生成する。利用されない場合8時間後に自動削除する。\r\n * @return content.json\r\n */\r\n getUploadInfo( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/uploadinfo\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetUploadInfo(_response);\r\n });\r\n }\r\n\r\n protected processGetUploadInfo(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = UploadInfoResult.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 朝礼に関連する写真を登録する\r\n * @param contentsId 朝礼ID\r\n * @param photoInfo 登録する写真情報\r\n */\r\n postContentPhoto(contentsId: string, photoInfo: PostPhotoInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{contentsId}/contentphoto\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(photoInfo);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostContentPhoto(_response);\r\n });\r\n }\r\n\r\n protected processPostContentPhoto(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAFile.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 登録済みのファイルを別の朝礼へコピーして登録する\r\n * @param contentsId 朝礼ID\r\n * @param copyInfo 複製する写真情報\r\n */\r\n copyFileToContentPhoto(contentsId: string, copyInfo: CopyPhotoInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{contentsId}/copycontentphoto\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(copyInfo);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processCopyFileToContentPhoto(_response);\r\n });\r\n }\r\n\r\n protected processCopyFileToContentPhoto(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAFile.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * アンケートへの解答一覧取得\r\n * @return content.json\r\n */\r\n getQuestionResults(contentsId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{contentsId}/question_results\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetQuestionResults(_response);\r\n });\r\n }\r\n\r\n protected processGetQuestionResults(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAQuestionResult.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * アンケート結果を登録する\r\n * @param contentsId 朝礼ID\r\n * @param result 登録する結果\r\n */\r\n postQuestionResult(contentsId: string, result: MAQuestionResult , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{contentsId}/questionresult\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(result);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostQuestionResult(_response);\r\n });\r\n }\r\n\r\n protected processPostQuestionResult(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAFile.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツデータ更新\r\n * @param id コンテンツID\r\n * @param value 設定するデータ\r\n */\r\n put(id: string, value: MorningAssemblyJson , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPut(_response);\r\n });\r\n }\r\n\r\n protected processPut(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * コンテンツIDを指定して過去の画像を取得する\r\n * @param contentsId コンテンツID\r\n */\r\n findPhotos(contentsId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/contents/{contentsId}/photolist\";\r\n if (contentsId === undefined || contentsId === null)\r\n throw new Error(\"The parameter 'contentsId' must be defined.\");\r\n url_ = url_.replace(\"{contentsId}\", encodeURIComponent(\"\" + contentsId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processFindPhotos(_response);\r\n });\r\n }\r\n\r\n protected processFindPhotos(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAFile.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class MobileV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * テナント認証。認証キーを指定してトークンを取得する\r\n * @param model 認証キーを含むモデル\r\n * @return 生成したJWTトークン\r\n */\r\n authTenant(model: AuthModel , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/auth\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(model);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processAuthTenant(_response);\r\n });\r\n }\r\n\r\n protected processAuthTenant(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = AuthResult.fromJS(resultData201);\r\n return result201;\r\n } else if (status === 403) {\r\n const _responseText = response.data;\r\n let result403: any = null;\r\n let resultData403 = _responseText;\r\n result403 = ProblemDetails.fromJS(resultData403);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result403);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n\r\n /**\r\n * 朝礼データ個別取得、IDを指定した朝礼のJsonデータを取得する\r\n * @param contentId 朝礼ID\r\n * @return 取得したJSONデータ\r\n */\r\n getContentData(contentId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetContentData(_response);\r\n });\r\n }\r\n\r\n protected processGetContentData(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MorningAssemblyJson.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 朝礼の内容を表すcontent.jsonのリストを取得する。\r\n 指定プロジェクトの開始時刻が当日(JST)の朝礼データをすべて返す。\r\n 該当する朝礼がない場合は空の配列を返す\r\n * @return content.json\r\n */\r\n getContentList( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/list\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetContentList(_response);\r\n });\r\n }\r\n\r\n protected processGetContentList(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MorningAssemblyJson.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 参加確認を登録\r\n * @param contentId 朝礼ID\r\n * @param rollcall 参加登録情報\r\n */\r\n postRollCall(contentId: string, rollcall: MARollCall , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}/rollcall\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(rollcall);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostRollCall(_response);\r\n });\r\n }\r\n\r\n protected processPostRollCall(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAContents.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * アップロード先のURLを生成する。利用されない場合8時間後に自動削除する。\r\n * @return content.json\r\n */\r\n getUploadInfo( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/uploadinfo\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetUploadInfo(_response);\r\n });\r\n }\r\n\r\n protected processGetUploadInfo(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = UploadInfoResult.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 朝礼に登録済みのファイル一覧を取得\r\n * @return ファイル一覧\r\n */\r\n getContentPhoto(contentId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}/contentphoto\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetContentPhoto(_response);\r\n });\r\n }\r\n\r\n protected processGetContentPhoto(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAFile.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 朝礼に関連する写真を登録する\r\n * @param contentId 朝礼ID\r\n * @param photoInfo 登録する写真情報\r\n */\r\n postContentPhoto(contentId: string, photoInfo: PostPhotoInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}/contentphoto\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(photoInfo);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostContentPhoto(_response);\r\n });\r\n }\r\n\r\n protected processPostContentPhoto(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAFile.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトに関連する写真を登録する\r\n * @param projectKey プロジェクト番号(4桁または6桁の数字)\r\n * @param photoInfo 登録する写真情報\r\n */\r\n postProjectPhoto(projectKey: string | null, photoInfo: PostPhotoInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{projectKey}/projectphoto\";\r\n if (projectKey === undefined || projectKey === null)\r\n throw new Error(\"The parameter 'projectKey' must be defined.\");\r\n url_ = url_.replace(\"{projectKey}\", encodeURIComponent(\"\" + projectKey));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(photoInfo);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostProjectPhoto(_response);\r\n });\r\n }\r\n\r\n protected processPostProjectPhoto(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAFile.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 朝礼の出席者を取得する\r\n * @param contentId 朝礼ID\r\n * @return 出席情報一覧\r\n */\r\n getAttendee(contentId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}/attendee\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetAttendee(_response);\r\n });\r\n }\r\n\r\n protected processGetAttendee(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAAttendee.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトの出席者を登録する\r\n * @param contentId 朝礼ID\r\n * @param attendees 出席情報\r\n */\r\n postAttendee(contentId: string, attendees: MAAttendee[] , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}/attendee\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(attendees);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostAttendee(_response);\r\n });\r\n }\r\n\r\n protected processPostAttendee(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAFile.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 朝礼参加者(複数可能)にSkyWay経由で通話する\r\n * @param contentId 朝礼ID\r\n * @param call 呼び出し情報\r\n */\r\n postCall(contentId: string, call: DeviceCall , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{contentId}/call\";\r\n if (contentId === undefined || contentId === null)\r\n throw new Error(\"The parameter 'contentId' must be defined.\");\r\n url_ = url_.replace(\"{contentId}\", encodeURIComponent(\"\" + contentId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(call);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostCall(_response);\r\n });\r\n }\r\n\r\n protected processPostCall(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * デバイスIDを指定して登録してあるプロジェクト一覧を取得\r\n * @param deviceid デバイスID\r\n * @return 取得したJSONデータ\r\n */\r\n getNotifyProjectList(deviceid: string | null , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/{deviceid}/notification\";\r\n if (deviceid === undefined || deviceid === null)\r\n throw new Error(\"The parameter 'deviceid' must be defined.\");\r\n url_ = url_.replace(\"{deviceid}\", encodeURIComponent(\"\" + deviceid));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetNotifyProjectList(_response);\r\n });\r\n }\r\n\r\n protected processGetNotifyProjectList(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(ProjectResult.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 通知のOn/Off\r\n * @param notif 設定する値\r\n */\r\n postNotification(notif: Notification , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/mobile/notification\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(notif);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostNotification(_response);\r\n });\r\n }\r\n\r\n protected processPostNotification(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class PaymentV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * 支払いの種類一覧取得\r\n * @param code 特別処理\r\n */\r\n getPayments(code: string | null , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/payments/{code}\";\r\n if (code === undefined || code === null)\r\n throw new Error(\"The parameter 'code' must be defined.\");\r\n url_ = url_.replace(\"{code}\", encodeURIComponent(\"\" + code));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetPayments(_response);\r\n });\r\n }\r\n\r\n protected processGetPayments(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAPayment.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n getOrders(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/{tenantId}/orders\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetOrders(_response);\r\n });\r\n }\r\n\r\n protected processGetOrders(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAOrder.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 支払いの種類一覧取得\r\n * @param tenantId 会社ID\r\n */\r\n getCurrentPaymentInfo(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/{tenantId}/CurrentInfo\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetCurrentPaymentInfo(_response);\r\n });\r\n }\r\n\r\n protected processGetCurrentPaymentInfo(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = CurrentPaymentInfo.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n postNPInvoice(tenantId: string, info: PostNPInvoiceInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/{tenantId}/NPInvoice\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(info);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostNPInvoice(_response);\r\n });\r\n }\r\n\r\n protected processPostNPInvoice(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAOrder.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n stopSubscription(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/{tenantId}/StopSubscription\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processStopSubscription(_response);\r\n });\r\n }\r\n\r\n protected processStopSubscription(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 発注する\r\n * @param tenantId 会社ID\r\n * @param info 注文内容\r\n */\r\n gMOSettlement(tenantId: string, info: PostSettlementInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/{tenantId}/GMOSettlement\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(info);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGMOSettlement(_response);\r\n });\r\n }\r\n\r\n protected processGMOSettlement(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = SettlementResult.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 売上状況をGMOへ確認に行ってDBに反映させる\r\n * @param redirectValue リダイレクトで取得した値\r\n */\r\n gMOGetResult(redirectValue: OrderRedirect , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/payment/GMOGetResult\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(redirectValue);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGMOGetResult(_response);\r\n });\r\n }\r\n\r\n protected processGMOGetResult(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAOrder.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class ProfileV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * ログイン中のユーザー情報取得\r\n */\r\n getProfile( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/profile/current\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetProfile(_response);\r\n });\r\n }\r\n\r\n protected processGetProfile(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MAUser.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n isSysad( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/profile/issysad\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processIsSysad(_response);\r\n });\r\n }\r\n\r\n protected processIsSysad(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n getAppVersion( cancelToken?: CancelToken | undefined): Promise<{ [key: string]: any; }> {\r\n let url_ = this.baseUrl + \"/api/v2.0/profile/appversion\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetAppVersion(_response);\r\n });\r\n }\r\n\r\n protected processGetAppVersion(response: AxiosResponse): Promise<{ [key: string]: any; }> {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (resultData200) {\r\n result200 = {} as any;\r\n for (let key in resultData200) {\r\n if (resultData200.hasOwnProperty(key))\r\n (result200)![key] = resultData200[key];\r\n }\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * ユーザー名設定\r\n * @param value 新しく設定するユーザー名\r\n */\r\n setName(value: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/profile/name\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processSetName(_response);\r\n });\r\n }\r\n\r\n protected processSetName(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * パスワード設定\r\n * @param password 設定するパスワード\r\n */\r\n changePassword(password: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/profile/password\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(password);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processChangePassword(_response);\r\n });\r\n }\r\n\r\n protected processChangePassword(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n errorCodeToLocal(errorcode: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/profile?\";\r\n if (errorcode !== undefined && errorcode !== null)\r\n url_ += \"errorcode=\" + encodeURIComponent(\"\" + errorcode) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processErrorCodeToLocal(_response);\r\n });\r\n }\r\n\r\n protected processErrorCodeToLocal(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n return result200;\r\n } else if (status !== 200 && status !== 204) {\r\n const _responseText = response.data;\r\n return throwException(\"An unexpected server error occurred.\", status, _responseText, _headers);\r\n }\r\n return Promise.resolve(null);\r\n }\r\n}\r\n\r\nexport class SysadV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * 会社情報を取得\r\n */\r\n getTenant(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{tenantId}/tenant\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetTenant(_response);\r\n });\r\n }\r\n\r\n protected processGetTenant(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MATenant.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 会社一覧を取得\r\n */\r\n tenants( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/tenant\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processTenants(_response);\r\n });\r\n }\r\n\r\n protected processTenants(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MATenant.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 会社登録用CSVデータを取得\r\n * @param tenantId 会社ID\r\n */\r\n getRegistTenantCsv(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/npregistcsv/{tenantId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetRegistTenantCsv(_response);\r\n });\r\n }\r\n\r\n protected processGetRegistTenantCsv(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 注文登録用CSVデータを取得\r\n * @param orderId 注文ID\r\n */\r\n getRegistOrderCsv(orderId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/npordercsv/{orderId}\";\r\n if (orderId === undefined || orderId === null)\r\n throw new Error(\"The parameter 'orderId' must be defined.\");\r\n url_ = url_.replace(\"{orderId}\", encodeURIComponent(\"\" + orderId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetRegistOrderCsv(_response);\r\n });\r\n }\r\n\r\n protected processGetRegistOrderCsv(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 注文情報を取得\r\n */\r\n getOrder(orderId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{orderId}/order\";\r\n if (orderId === undefined || orderId === null)\r\n throw new Error(\"The parameter 'orderId' must be defined.\");\r\n url_ = url_.replace(\"{orderId}\", encodeURIComponent(\"\" + orderId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetOrder(_response);\r\n });\r\n }\r\n\r\n protected processGetOrder(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MAOrder.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 注文削除、請求書登録済み、支払い済みはエラーを返す\r\n */\r\n deleteOrder(orderId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{orderId}/order\";\r\n if (orderId === undefined || orderId === null)\r\n throw new Error(\"The parameter 'orderId' must be defined.\");\r\n url_ = url_.replace(\"{orderId}\", encodeURIComponent(\"\" + orderId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processDeleteOrder(_response);\r\n });\r\n }\r\n\r\n protected processDeleteOrder(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 注文一覧を取得\r\n */\r\n getOrders(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{tenantId}/orders\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetOrders(_response);\r\n });\r\n }\r\n\r\n protected processGetOrders(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAOrder.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 更新\r\n * @param tenantId テナントID\r\n * @param value 設定するデータ\r\n */\r\n putTenant(tenantId: string, value: MATenant , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{tenantId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPutTenant(_response);\r\n });\r\n }\r\n\r\n protected processPutTenant(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 次の有効期限を計算する\r\n * @param tenantId 会社ID\r\n * @param spanMonth ライセンス有効月数\r\n */\r\n calcNextStartEnd(tenantId: string, spanMonth: number , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{tenantId}/nextstartend/{spanMonth}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (spanMonth === undefined || spanMonth === null)\r\n throw new Error(\"The parameter 'spanMonth' must be defined.\");\r\n url_ = url_.replace(\"{spanMonth}\", encodeURIComponent(\"\" + spanMonth));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processCalcNextStartEnd(_response);\r\n });\r\n }\r\n\r\n protected processCalcNextStartEnd(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = StartEndDate.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n postOrder(tenantId: string, info: PostOrderInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{tenantId}/order\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(info);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostOrder(_response);\r\n });\r\n }\r\n\r\n protected processPostOrder(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAOrder.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 更新\r\n * @param tenantId テナントID\r\n * @param value 設定するデータ\r\n */\r\n putTenantLicense(tenantId: string, value: PutTenantLicenseInfo , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{tenantId}/tenantLicense\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPutTenantLicense(_response);\r\n });\r\n }\r\n\r\n protected processPutTenantLicense(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 注文のステータスを設定する\r\n * @param orderId 注文ID\r\n * @param paystate 0=未設定、1=請求書登録済み、2=支払い確認済み\r\n */\r\n putOrderPaystate(orderId: string, paystate: number , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/sysad/{orderId}/paystate\";\r\n if (orderId === undefined || orderId === null)\r\n throw new Error(\"The parameter 'orderId' must be defined.\");\r\n url_ = url_.replace(\"{orderId}\", encodeURIComponent(\"\" + orderId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(paystate);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPutOrderPaystate(_response);\r\n });\r\n }\r\n\r\n protected processPutOrderPaystate(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class TemplatesV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * テンプレート検索、全データを配列で取得\r\n * @param tenantId 会社ID\r\n * @return テンプレート情報の配列\r\n */\r\n find(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/template/{tenantId}/list\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processFind(_response);\r\n });\r\n }\r\n\r\n protected processFind(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MATemplate.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * テンプレート情報をID指定で取得する\r\n * @param id テンプレートID\r\n * @return テンプレート情報\r\n */\r\n get(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/template/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGet(_response);\r\n });\r\n }\r\n\r\n protected processGet(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MATemplate.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * データ更新\r\n * @param id 更新対象のID\r\n * @param value 更新データ\r\n */\r\n put(id: string | null, value: MATemplate , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/template/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPut(_response);\r\n });\r\n }\r\n\r\n protected processPut(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 削除\r\n * @param id 対象のID\r\n */\r\n delete(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/template/{id}\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processDelete(_response);\r\n });\r\n }\r\n\r\n protected processDelete(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * テンプレート情報をID指定で取得する\r\n * @param id テンプレートID\r\n * @return テンプレート情報\r\n */\r\n getData(id: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/template/{id}/data\";\r\n if (id === undefined || id === null)\r\n throw new Error(\"The parameter 'id' must be defined.\");\r\n url_ = url_.replace(\"{id}\", encodeURIComponent(\"\" + id));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetData(_response);\r\n });\r\n }\r\n\r\n protected processGetData(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = MorningAssemblyJson.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 新規登録\r\n * @param tenantId 会社ID\r\n * @param name (optional) テンプレート名\r\n * @param srcContentsId (optional) 元になる朝礼ID\r\n * @return 登録結果\r\n */\r\n post(tenantId: string, name: string | null | undefined, srcContentsId: string | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/template/{tenantId}?\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (name !== undefined && name !== null)\r\n url_ += \"name=\" + encodeURIComponent(\"\" + name) + \"&\";\r\n if (srcContentsId === null)\r\n throw new Error(\"The parameter 'srcContentsId' cannot be null.\");\r\n else if (srcContentsId !== undefined)\r\n url_ += \"srcContentsId=\" + encodeURIComponent(\"\" + srcContentsId) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPost(_response);\r\n });\r\n }\r\n\r\n protected processPost(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MATemplate.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class TenantV2Client {\r\n private instance: AxiosInstance;\r\n private baseUrl: string;\r\n protected jsonParseReviver: ((key: string, value: any) => any) | undefined = undefined;\r\n\r\n constructor(baseUrl?: string, instance?: AxiosInstance) {\r\n this.instance = instance ? instance : axios.create();\r\n this.baseUrl = baseUrl !== undefined && baseUrl !== null ? baseUrl : \"https://localhost:5000\";\r\n }\r\n\r\n /**\r\n * テナント一覧を取得\r\n * @return テナント一覧\r\n */\r\n find( cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processFind(_response);\r\n });\r\n }\r\n\r\n protected processFind(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(TenantInfo.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * テナントIDを指定してプロジェクト一覧を取得\r\n * @param tenantId テナントID\r\n * @param searchName (optional) 名前の部分検索\r\n * @param searchInvalid (optional) 利用停止中を含むかどうか\r\n */\r\n findProjects(tenantId: string, searchName: string | null | undefined, searchInvalid: boolean | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects?\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (searchName !== undefined && searchName !== null)\r\n url_ += \"searchName=\" + encodeURIComponent(\"\" + searchName) + \"&\";\r\n if (searchInvalid !== undefined && searchInvalid !== null)\r\n url_ += \"searchInvalid=\" + encodeURIComponent(\"\" + searchInvalid) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processFindProjects(_response);\r\n });\r\n }\r\n\r\n protected processFindProjects(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(ProjectInfo.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトを新規作成\r\n * @param tenantId テナントID\r\n * @param value 設定値\r\n */\r\n postProject(tenantId: string, value: MAProject , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPostProject(_response);\r\n });\r\n }\r\n\r\n protected processPostProject(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = MAProject.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * テナントIDを指定して情報を取得\r\n * @param tenantId テナントID\r\n */\r\n getTenant(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetTenant(_response);\r\n });\r\n }\r\n\r\n protected processGetTenant(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = TenantInfo.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * テナント更新\r\n * @param tenantId テナントID\r\n * @param value 設定するデータ\r\n */\r\n putTenant(tenantId: string, value: MATenant , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPutTenant(_response);\r\n });\r\n }\r\n\r\n protected processPutTenant(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトIDを指定してプロジェクト情報を取得\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクID\r\n */\r\n getProject(tenantId: string, projectId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetProject(_response);\r\n });\r\n }\r\n\r\n protected processGetProject(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ProjectInfo.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトIDを指定してプロジェクト情報を取得\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクID\r\n * @param value 更新内容\r\n */\r\n putProject(tenantId: string, projectId: string, value: MAProject , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processPutProject(_response);\r\n });\r\n }\r\n\r\n protected processPutProject(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクト削除\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクトID\r\n */\r\n deleteProject(tenantId: string, projectId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processDeleteProject(_response);\r\n });\r\n }\r\n\r\n protected processDeleteProject(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * テナントに参加しているユーザーの一覧を取得する\r\n * @param tenantId テナントID\r\n */\r\n getTenantUsers(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/users\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetTenantUsers(_response);\r\n });\r\n }\r\n\r\n protected processGetTenantUsers(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n if (Array.isArray(resultData200)) {\r\n result200 = [] as any;\r\n for (let item of resultData200)\r\n result200!.push(MAUser.fromJS(item));\r\n }\r\n else {\r\n result200 = null;\r\n }\r\n return result200;\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * ユーザーをテナント登録から解除する。その際全てのテナントと関係がなくなった場合、ユーザーの登録自体を削除する\r\n * @param tenantId テナントID\r\n * @param userName (optional) ユーザーID\r\n */\r\n deleteTenantUser(tenantId: string, userName: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/users?\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (userName !== undefined && userName !== null)\r\n url_ += \"userName=\" + encodeURIComponent(\"\" + userName) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"DELETE\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processDeleteTenantUser(_response);\r\n });\r\n }\r\n\r\n protected processDeleteTenantUser(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトIDを指定して管理者一覧を取得\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクID\r\n */\r\n getProjectAdmins(tenantId: string, projectId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}/admins\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processGetProjectAdmins(_response);\r\n });\r\n }\r\n\r\n protected processGetProjectAdmins(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = ProjectAdminResult.fromJS(resultData200);\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクト管理者を招待する\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクトID\r\n * @param value 設定値\r\n */\r\n inviteProjectAdmin(tenantId: string, projectId: string, value: InviteUser , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}/invite\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processInviteProjectAdmin(_response);\r\n });\r\n }\r\n\r\n protected processInviteProjectAdmin(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n let result201: any = null;\r\n let resultData201 = _responseText;\r\n result201 = InviteUserResult.fromJS(resultData201);\r\n return result201;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n canIncrementActiveProject(tenantId: string , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/canIncrementActiveProject\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"GET\",\r\n url: url_,\r\n headers: {\r\n \"Accept\": \"application/json\"\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processCanIncrementActiveProject(_response);\r\n });\r\n }\r\n\r\n protected processCanIncrementActiveProject(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 200) {\r\n const _responseText = response.data;\r\n let result200: any = null;\r\n let resultData200 = _responseText;\r\n result200 = resultData200 !== undefined ? resultData200 : null;\r\n return result200;\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * プロジェクトを使用可/不可を切り替える\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクID\r\n * @param invalid true=不可にする\r\n */\r\n setProjectInvalid(tenantId: string, projectId: string, invalid: boolean , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}/invalidate\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(invalid);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processSetProjectInvalid(_response);\r\n });\r\n }\r\n\r\n protected processSetProjectInvalid(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * ユーザーを現場管理者に設定したり外したりする\r\n * @param tenantId テナントID\r\n * @param projectId プロジェクトID\r\n * @param value 設定\r\n */\r\n setUserAdmin(tenantId: string, projectId: string, value: SetProjectAdmin , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/projects/{projectId}/setadmin\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (projectId === undefined || projectId === null)\r\n throw new Error(\"The parameter 'projectId' must be defined.\");\r\n url_ = url_.replace(\"{projectId}\", encodeURIComponent(\"\" + projectId));\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n const content_ = JSON.stringify(value);\r\n\r\n let options_ = {\r\n data: content_,\r\n method: \"PUT\",\r\n url: url_,\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processSetUserAdmin(_response);\r\n });\r\n }\r\n\r\n protected processSetUserAdmin(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 204) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else if (status === 404) {\r\n const _responseText = response.data;\r\n let result404: any = null;\r\n let resultData404 = _responseText;\r\n result404 = ProblemDetails.fromJS(resultData404);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result404);\r\n } else if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * ユーザーに承認メールを送信する\r\n * @param tenantId テナントID\r\n * @param userName (optional) 送信先\r\n */\r\n sendConfirmMail(tenantId: string, userName: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/sendmail?\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (userName !== undefined && userName !== null)\r\n url_ += \"userName=\" + encodeURIComponent(\"\" + userName) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processSendConfirmMail(_response);\r\n });\r\n }\r\n\r\n protected processSendConfirmMail(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n\r\n /**\r\n * 初期プロジェクトを作成する\r\n * @param tenantId テナントID\r\n * @param type (optional) general,construction\r\n */\r\n addInitialProject(tenantId: string, type: string | null | undefined , cancelToken?: CancelToken | undefined): Promise {\r\n let url_ = this.baseUrl + \"/api/v2.0/tenant/{tenantId}/addInitial?\";\r\n if (tenantId === undefined || tenantId === null)\r\n throw new Error(\"The parameter 'tenantId' must be defined.\");\r\n url_ = url_.replace(\"{tenantId}\", encodeURIComponent(\"\" + tenantId));\r\n if (type !== undefined && type !== null)\r\n url_ += \"type=\" + encodeURIComponent(\"\" + type) + \"&\";\r\n url_ = url_.replace(/[?&]$/, \"\");\r\n\r\n let options_ = {\r\n method: \"POST\",\r\n url: url_,\r\n headers: {\r\n },\r\n cancelToken\r\n };\r\n\r\n return this.instance.request(options_).catch((_error: any) => {\r\n if (isAxiosError(_error) && _error.response) {\r\n return _error.response;\r\n } else {\r\n throw _error;\r\n }\r\n }).then((_response: AxiosResponse) => {\r\n return this.processAddInitialProject(_response);\r\n });\r\n }\r\n\r\n protected processAddInitialProject(response: AxiosResponse): Promise {\r\n const status = response.status;\r\n let _headers: any = {};\r\n if (response.headers && typeof response.headers === \"object\") {\r\n for (let k in response.headers) {\r\n if (response.headers.hasOwnProperty(k)) {\r\n _headers[k] = response.headers[k];\r\n }\r\n }\r\n }\r\n if (status === 400) {\r\n const _responseText = response.data;\r\n let result400: any = null;\r\n let resultData400 = _responseText;\r\n result400 = ProblemDetails.fromJS(resultData400);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, result400);\r\n } else if (status === 201) {\r\n const _responseText = response.data;\r\n return Promise.resolve(null);\r\n } else {\r\n const _responseText = response.data;\r\n let resultdefault: any = null;\r\n let resultDatadefault = _responseText;\r\n resultdefault = ProblemDetails.fromJS(resultDatadefault);\r\n return throwException(\"A server side error occurred.\", status, _responseText, _headers, resultdefault);\r\n }\r\n }\r\n}\r\n\r\nexport class ProblemDetails implements IProblemDetails {\r\n type?: string | undefined;\r\n title?: string | undefined;\r\n status?: number | undefined;\r\n detail?: string | undefined;\r\n instance?: string | undefined;\r\n extensions?: { [key: string]: any; } | undefined;\r\n\r\n constructor(data?: IProblemDetails) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.type = _data[\"type\"];\r\n this.title = _data[\"title\"];\r\n this.status = _data[\"status\"];\r\n this.detail = _data[\"detail\"];\r\n this.instance = _data[\"instance\"];\r\n if (_data[\"extensions\"]) {\r\n this.extensions = {} as any;\r\n for (let key in _data[\"extensions\"]) {\r\n if (_data[\"extensions\"].hasOwnProperty(key))\r\n (this.extensions)![key] = _data[\"extensions\"][key];\r\n }\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ProblemDetails {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ProblemDetails();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"type\"] = this.type;\r\n data[\"title\"] = this.title;\r\n data[\"status\"] = this.status;\r\n data[\"detail\"] = this.detail;\r\n data[\"instance\"] = this.instance;\r\n if (this.extensions) {\r\n data[\"extensions\"] = {};\r\n for (let key in this.extensions) {\r\n if (this.extensions.hasOwnProperty(key))\r\n (data[\"extensions\"])[key] = this.extensions[key];\r\n }\r\n }\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IProblemDetails {\r\n type?: string | undefined;\r\n title?: string | undefined;\r\n status?: number | undefined;\r\n detail?: string | undefined;\r\n instance?: string | undefined;\r\n extensions?: { [key: string]: any; } | undefined;\r\n}\r\n\r\n/** 朝礼1回分のJsonデータを管理するデータベスモデル */\r\nexport class MAContents implements IMAContents {\r\n /** プロジェクトID */\r\n id?: string;\r\n /** 朝礼開始時刻(UTC) */\r\n startUTC?: Date;\r\n /** 朝礼終了時刻(UTC) */\r\n endUTC?: Date;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** 司会者 */\r\n leader?: string | undefined;\r\n /** 場所 */\r\n place?: string | undefined;\r\n /** 現場への参照 */\r\n projectId?: string;\r\n /** ノティフィケーション送信済み */\r\n notificationSend?: boolean;\r\n /** 参加情報データMorningAssembly.Models.MAAttendee[]のJSON文字列 */\r\n attendeeInfo?: string | undefined;\r\n\r\n constructor(data?: IMAContents) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.startUTC = _data[\"startUTC\"] ? new Date(_data[\"startUTC\"].toString()) : undefined;\r\n this.endUTC = _data[\"endUTC\"] ? new Date(_data[\"endUTC\"].toString()) : undefined;\r\n this.createdUTC = _data[\"createdUTC\"] ? new Date(_data[\"createdUTC\"].toString()) : undefined;\r\n this.updatedUTC = _data[\"updatedUTC\"] ? new Date(_data[\"updatedUTC\"].toString()) : undefined;\r\n this.leader = _data[\"leader\"];\r\n this.place = _data[\"place\"];\r\n this.projectId = _data[\"projectId\"];\r\n this.notificationSend = _data[\"notificationSend\"];\r\n this.attendeeInfo = _data[\"attendeeInfo\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAContents {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAContents();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"startUTC\"] = this.startUTC ? this.startUTC.toISOString() : undefined;\r\n data[\"endUTC\"] = this.endUTC ? this.endUTC.toISOString() : undefined;\r\n data[\"createdUTC\"] = this.createdUTC ? this.createdUTC.toISOString() : undefined;\r\n data[\"updatedUTC\"] = this.updatedUTC ? this.updatedUTC.toISOString() : undefined;\r\n data[\"leader\"] = this.leader;\r\n data[\"place\"] = this.place;\r\n data[\"projectId\"] = this.projectId;\r\n data[\"notificationSend\"] = this.notificationSend;\r\n data[\"attendeeInfo\"] = this.attendeeInfo;\r\n return data; \r\n }\r\n}\r\n\r\n/** 朝礼1回分のJsonデータを管理するデータベスモデル */\r\nexport interface IMAContents {\r\n /** プロジェクトID */\r\n id?: string;\r\n /** 朝礼開始時刻(UTC) */\r\n startUTC?: Date;\r\n /** 朝礼終了時刻(UTC) */\r\n endUTC?: Date;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** 司会者 */\r\n leader?: string | undefined;\r\n /** 場所 */\r\n place?: string | undefined;\r\n /** 現場への参照 */\r\n projectId?: string;\r\n /** ノティフィケーション送信済み */\r\n notificationSend?: boolean;\r\n /** 参加情報データMorningAssembly.Models.MAAttendee[]のJSON文字列 */\r\n attendeeInfo?: string | undefined;\r\n}\r\n\r\nexport class MorningAssemblyJson implements IMorningAssemblyJson {\r\n projectId?: string | undefined;\r\n contentId?: string | undefined;\r\n project?: string | undefined;\r\n start?: Date;\r\n end?: Date;\r\n created?: Date;\r\n updated?: Date;\r\n leader?: string | undefined;\r\n place?: string | undefined;\r\n news?: NewsJson | undefined;\r\n contents?: ContentsJson[] | undefined;\r\n\r\n constructor(data?: IMorningAssemblyJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.projectId = _data[\"projectId\"];\r\n this.contentId = _data[\"contentId\"];\r\n this.project = _data[\"project\"];\r\n this.start = _data[\"start\"] ? new Date(_data[\"start\"].toString()) : undefined;\r\n this.end = _data[\"end\"] ? new Date(_data[\"end\"].toString()) : undefined;\r\n this.created = _data[\"created\"] ? new Date(_data[\"created\"].toString()) : undefined;\r\n this.updated = _data[\"updated\"] ? new Date(_data[\"updated\"].toString()) : undefined;\r\n this.leader = _data[\"leader\"];\r\n this.place = _data[\"place\"];\r\n this.news = _data[\"news\"] ? NewsJson.fromJS(_data[\"news\"]) : undefined;\r\n if (Array.isArray(_data[\"contents\"])) {\r\n this.contents = [] as any;\r\n for (let item of _data[\"contents\"])\r\n this.contents!.push(ContentsJson.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): MorningAssemblyJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MorningAssemblyJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"projectId\"] = this.projectId;\r\n data[\"contentId\"] = this.contentId;\r\n data[\"project\"] = this.project;\r\n data[\"start\"] = this.start ? this.start.toISOString() : undefined;\r\n data[\"end\"] = this.end ? this.end.toISOString() : undefined;\r\n data[\"created\"] = this.created ? this.created.toISOString() : undefined;\r\n data[\"updated\"] = this.updated ? this.updated.toISOString() : undefined;\r\n data[\"leader\"] = this.leader;\r\n data[\"place\"] = this.place;\r\n data[\"news\"] = this.news ? this.news.toJSON() : undefined;\r\n if (Array.isArray(this.contents)) {\r\n data[\"contents\"] = [];\r\n for (let item of this.contents)\r\n data[\"contents\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IMorningAssemblyJson {\r\n projectId?: string | undefined;\r\n contentId?: string | undefined;\r\n project?: string | undefined;\r\n start?: Date;\r\n end?: Date;\r\n created?: Date;\r\n updated?: Date;\r\n leader?: string | undefined;\r\n place?: string | undefined;\r\n news?: NewsJson | undefined;\r\n contents?: ContentsJson[] | undefined;\r\n}\r\n\r\nexport class NewsJson implements INewsJson {\r\n uuid?: string | undefined;\r\n content?: string[] | undefined;\r\n\r\n constructor(data?: INewsJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n if (Array.isArray(_data[\"content\"])) {\r\n this.content = [] as any;\r\n for (let item of _data[\"content\"])\r\n this.content!.push(item);\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): NewsJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new NewsJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n if (Array.isArray(this.content)) {\r\n data[\"content\"] = [];\r\n for (let item of this.content)\r\n data[\"content\"].push(item);\r\n }\r\n return data; \r\n }\r\n}\r\n\r\nexport interface INewsJson {\r\n uuid?: string | undefined;\r\n content?: string[] | undefined;\r\n}\r\n\r\nexport class ContentsJson implements IContentsJson {\r\n uuid?: string | undefined;\r\n title?: string | undefined;\r\n type?: string | undefined;\r\n details?: DetailJson | undefined;\r\n\r\n constructor(data?: IContentsJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n this.title = _data[\"title\"];\r\n this.type = _data[\"type\"];\r\n this.details = _data[\"details\"] ? DetailJson.fromJS(_data[\"details\"]) : undefined;\r\n }\r\n }\r\n\r\n static fromJS(data: any): ContentsJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ContentsJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n data[\"title\"] = this.title;\r\n data[\"type\"] = this.type;\r\n data[\"details\"] = this.details ? this.details.toJSON() : undefined;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IContentsJson {\r\n uuid?: string | undefined;\r\n title?: string | undefined;\r\n type?: string | undefined;\r\n details?: DetailJson | undefined;\r\n}\r\n\r\nexport class DetailJson implements IDetailJson {\r\n precautions?: PrecautionJson[] | undefined;\r\n procedures?: ProcedureJson[] | undefined;\r\n updates?: UpdateJson[] | undefined;\r\n call?: string | undefined;\r\n response?: string | undefined;\r\n speakers?: SpeakerJson[] | undefined;\r\n texts?: TextJson[] | undefined;\r\n questions?: QuestionJson[] | undefined;\r\n message?: string | undefined;\r\n\r\n constructor(data?: IDetailJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"precautions\"])) {\r\n this.precautions = [] as any;\r\n for (let item of _data[\"precautions\"])\r\n this.precautions!.push(PrecautionJson.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"procedures\"])) {\r\n this.procedures = [] as any;\r\n for (let item of _data[\"procedures\"])\r\n this.procedures!.push(ProcedureJson.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"updates\"])) {\r\n this.updates = [] as any;\r\n for (let item of _data[\"updates\"])\r\n this.updates!.push(UpdateJson.fromJS(item));\r\n }\r\n this.call = _data[\"call\"];\r\n this.response = _data[\"response\"];\r\n if (Array.isArray(_data[\"speakers\"])) {\r\n this.speakers = [] as any;\r\n for (let item of _data[\"speakers\"])\r\n this.speakers!.push(SpeakerJson.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"texts\"])) {\r\n this.texts = [] as any;\r\n for (let item of _data[\"texts\"])\r\n this.texts!.push(TextJson.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"questions\"])) {\r\n this.questions = [] as any;\r\n for (let item of _data[\"questions\"])\r\n this.questions!.push(QuestionJson.fromJS(item));\r\n }\r\n this.message = _data[\"message\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): DetailJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new DetailJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.precautions)) {\r\n data[\"precautions\"] = [];\r\n for (let item of this.precautions)\r\n data[\"precautions\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.procedures)) {\r\n data[\"procedures\"] = [];\r\n for (let item of this.procedures)\r\n data[\"procedures\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.updates)) {\r\n data[\"updates\"] = [];\r\n for (let item of this.updates)\r\n data[\"updates\"].push(item.toJSON());\r\n }\r\n data[\"call\"] = this.call;\r\n data[\"response\"] = this.response;\r\n if (Array.isArray(this.speakers)) {\r\n data[\"speakers\"] = [];\r\n for (let item of this.speakers)\r\n data[\"speakers\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.texts)) {\r\n data[\"texts\"] = [];\r\n for (let item of this.texts)\r\n data[\"texts\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.questions)) {\r\n data[\"questions\"] = [];\r\n for (let item of this.questions)\r\n data[\"questions\"].push(item.toJSON());\r\n }\r\n data[\"message\"] = this.message;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IDetailJson {\r\n precautions?: PrecautionJson[] | undefined;\r\n procedures?: ProcedureJson[] | undefined;\r\n updates?: UpdateJson[] | undefined;\r\n call?: string | undefined;\r\n response?: string | undefined;\r\n speakers?: SpeakerJson[] | undefined;\r\n texts?: TextJson[] | undefined;\r\n questions?: QuestionJson[] | undefined;\r\n message?: string | undefined;\r\n}\r\n\r\nexport class PrecautionJson implements IPrecautionJson {\r\n uuid?: string | undefined;\r\n item?: string | undefined;\r\n\r\n constructor(data?: IPrecautionJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n this.item = _data[\"item\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): PrecautionJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PrecautionJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n data[\"item\"] = this.item;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IPrecautionJson {\r\n uuid?: string | undefined;\r\n item?: string | undefined;\r\n}\r\n\r\nexport class ProcedureJson implements IProcedureJson {\r\n uuid?: string | undefined;\r\n work?: string | undefined;\r\n content?: string | undefined;\r\n company?: string | undefined;\r\n hazardFactor?: string | undefined;\r\n counterplan?: string | undefined;\r\n\r\n constructor(data?: IProcedureJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n this.work = _data[\"work\"];\r\n this.content = _data[\"content\"];\r\n this.company = _data[\"company\"];\r\n this.hazardFactor = _data[\"hazardFactor\"];\r\n this.counterplan = _data[\"counterplan\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ProcedureJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ProcedureJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n data[\"work\"] = this.work;\r\n data[\"content\"] = this.content;\r\n data[\"company\"] = this.company;\r\n data[\"hazardFactor\"] = this.hazardFactor;\r\n data[\"counterplan\"] = this.counterplan;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IProcedureJson {\r\n uuid?: string | undefined;\r\n work?: string | undefined;\r\n content?: string | undefined;\r\n company?: string | undefined;\r\n hazardFactor?: string | undefined;\r\n counterplan?: string | undefined;\r\n}\r\n\r\nexport class UpdateJson implements IUpdateJson {\r\n uuid?: string | undefined;\r\n title?: string | undefined;\r\n detail?: string | undefined;\r\n url?: string | undefined;\r\n sizeType?: number;\r\n\r\n constructor(data?: IUpdateJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n this.title = _data[\"title\"];\r\n this.detail = _data[\"detail\"];\r\n this.url = _data[\"url\"];\r\n this.sizeType = _data[\"sizeType\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): UpdateJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new UpdateJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n data[\"title\"] = this.title;\r\n data[\"detail\"] = this.detail;\r\n data[\"url\"] = this.url;\r\n data[\"sizeType\"] = this.sizeType;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IUpdateJson {\r\n uuid?: string | undefined;\r\n title?: string | undefined;\r\n detail?: string | undefined;\r\n url?: string | undefined;\r\n sizeType?: number;\r\n}\r\n\r\nexport class SpeakerJson implements ISpeakerJson {\r\n uuid?: string | undefined;\r\n name?: string | undefined;\r\n\r\n constructor(data?: ISpeakerJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n this.name = _data[\"name\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): SpeakerJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SpeakerJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n data[\"name\"] = this.name;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ISpeakerJson {\r\n uuid?: string | undefined;\r\n name?: string | undefined;\r\n}\r\n\r\nexport class TextJson implements ITextJson {\r\n uuid?: string | undefined;\r\n lines?: LineJson[] | undefined;\r\n\r\n constructor(data?: ITextJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n if (Array.isArray(_data[\"lines\"])) {\r\n this.lines = [] as any;\r\n for (let item of _data[\"lines\"])\r\n this.lines!.push(LineJson.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): TextJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TextJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n if (Array.isArray(this.lines)) {\r\n data[\"lines\"] = [];\r\n for (let item of this.lines)\r\n data[\"lines\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ITextJson {\r\n uuid?: string | undefined;\r\n lines?: LineJson[] | undefined;\r\n}\r\n\r\nexport class LineJson implements ILineJson {\r\n title?: string | undefined;\r\n text?: string | undefined;\r\n\r\n constructor(data?: ILineJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.title = _data[\"title\"];\r\n this.text = _data[\"text\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): LineJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new LineJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"title\"] = this.title;\r\n data[\"text\"] = this.text;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ILineJson {\r\n title?: string | undefined;\r\n text?: string | undefined;\r\n}\r\n\r\nexport class QuestionJson implements IQuestionJson {\r\n uuid?: string | undefined;\r\n question?: string | undefined;\r\n\r\n constructor(data?: IQuestionJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.uuid = _data[\"uuid\"];\r\n this.question = _data[\"question\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): QuestionJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new QuestionJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"uuid\"] = this.uuid;\r\n data[\"question\"] = this.question;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IQuestionJson {\r\n uuid?: string | undefined;\r\n question?: string | undefined;\r\n}\r\n\r\n/** 参加確認情報 */\r\nexport class MARollCall implements IMARollCall {\r\n /** 参加確認ID */\r\n id?: string;\r\n /** 参加者名 */\r\n name?: string | undefined;\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** 作成時刻(UTC) */\r\n createdUTC?: Date;\r\n /** Json内のコンテンツuuid */\r\n uuid?: string | undefined;\r\n /** 朝礼への参照 */\r\n contentsId?: string;\r\n\r\n constructor(data?: IMARollCall) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.name = _data[\"name\"];\r\n this.deviceToken = _data[\"deviceToken\"];\r\n this.createdUTC = _data[\"createdUTC\"] ? new Date(_data[\"createdUTC\"].toString()) : undefined;\r\n this.uuid = _data[\"uuid\"];\r\n this.contentsId = _data[\"contentsId\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MARollCall {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MARollCall();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"name\"] = this.name;\r\n data[\"deviceToken\"] = this.deviceToken;\r\n data[\"createdUTC\"] = this.createdUTC ? this.createdUTC.toISOString() : undefined;\r\n data[\"uuid\"] = this.uuid;\r\n data[\"contentsId\"] = this.contentsId;\r\n return data; \r\n }\r\n}\r\n\r\n/** 参加確認情報 */\r\nexport interface IMARollCall {\r\n /** 参加確認ID */\r\n id?: string;\r\n /** 参加者名 */\r\n name?: string | undefined;\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** 作成時刻(UTC) */\r\n createdUTC?: Date;\r\n /** Json内のコンテンツuuid */\r\n uuid?: string | undefined;\r\n /** 朝礼への参照 */\r\n contentsId?: string;\r\n}\r\n\r\nexport class MAFile implements IMAFile {\r\n /** ファイルID */\r\n id?: string;\r\n /** ファイルが有るBlobへのURL */\r\n path?: string | undefined;\r\n /** 作成日時(UTC) */\r\n createUTC?: Date;\r\n /** 編集日時(UTC) */\r\n updateUTC?: Date;\r\n /** 自動削除日時(UTC) */\r\n expireUTC?: Date | undefined;\r\n /** もとのファイル名 */\r\n originalName?: string | undefined;\r\n /** アップロードしたユーザー名 */\r\n userName?: string | undefined;\r\n /** ファイルの種類 */\r\n kind?: string | undefined;\r\n /** Json内のコンテンツuuid */\r\n uuid?: string | undefined;\r\n /** ファイルの種類 */\r\n fileType?: MAFileType;\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** タイトル */\r\n title?: string | undefined;\r\n /** 朝礼への参照 */\r\n contentsId?: string | undefined;\r\n /** プロジェクトへの参照 */\r\n projectId?: string | undefined;\r\n\r\n constructor(data?: IMAFile) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.path = _data[\"path\"];\r\n this.createUTC = _data[\"createUTC\"] ? new Date(_data[\"createUTC\"].toString()) : undefined;\r\n this.updateUTC = _data[\"updateUTC\"] ? new Date(_data[\"updateUTC\"].toString()) : undefined;\r\n this.expireUTC = _data[\"expireUTC\"] ? new Date(_data[\"expireUTC\"].toString()) : undefined;\r\n this.originalName = _data[\"originalName\"];\r\n this.userName = _data[\"userName\"];\r\n this.kind = _data[\"kind\"];\r\n this.uuid = _data[\"uuid\"];\r\n this.fileType = _data[\"fileType\"];\r\n this.deviceToken = _data[\"deviceToken\"];\r\n this.title = _data[\"title\"];\r\n this.contentsId = _data[\"contentsId\"];\r\n this.projectId = _data[\"projectId\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAFile {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAFile();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"path\"] = this.path;\r\n data[\"createUTC\"] = this.createUTC ? this.createUTC.toISOString() : undefined;\r\n data[\"updateUTC\"] = this.updateUTC ? this.updateUTC.toISOString() : undefined;\r\n data[\"expireUTC\"] = this.expireUTC ? this.expireUTC.toISOString() : undefined;\r\n data[\"originalName\"] = this.originalName;\r\n data[\"userName\"] = this.userName;\r\n data[\"kind\"] = this.kind;\r\n data[\"uuid\"] = this.uuid;\r\n data[\"fileType\"] = this.fileType;\r\n data[\"deviceToken\"] = this.deviceToken;\r\n data[\"title\"] = this.title;\r\n data[\"contentsId\"] = this.contentsId;\r\n data[\"projectId\"] = this.projectId;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IMAFile {\r\n /** ファイルID */\r\n id?: string;\r\n /** ファイルが有るBlobへのURL */\r\n path?: string | undefined;\r\n /** 作成日時(UTC) */\r\n createUTC?: Date;\r\n /** 編集日時(UTC) */\r\n updateUTC?: Date;\r\n /** 自動削除日時(UTC) */\r\n expireUTC?: Date | undefined;\r\n /** もとのファイル名 */\r\n originalName?: string | undefined;\r\n /** アップロードしたユーザー名 */\r\n userName?: string | undefined;\r\n /** ファイルの種類 */\r\n kind?: string | undefined;\r\n /** Json内のコンテンツuuid */\r\n uuid?: string | undefined;\r\n /** ファイルの種類 */\r\n fileType?: MAFileType;\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** タイトル */\r\n title?: string | undefined;\r\n /** 朝礼への参照 */\r\n contentsId?: string | undefined;\r\n /** プロジェクトへの参照 */\r\n projectId?: string | undefined;\r\n}\r\n\r\nexport enum MAFileType {\r\n UPLOAD = 0,\r\n PROJECT = 1,\r\n CONTENT = 2,\r\n}\r\n\r\n/** 朝礼のカテゴリ管理用Json形式 */\r\nexport class MACategoryJson implements IMACategoryJson {\r\n /** カテゴリリスト */\r\n categories?: Category[] | undefined;\r\n\r\n constructor(data?: IMACategoryJson) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"categories\"])) {\r\n this.categories = [] as any;\r\n for (let item of _data[\"categories\"])\r\n this.categories!.push(Category.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): MACategoryJson {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MACategoryJson();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.categories)) {\r\n data[\"categories\"] = [];\r\n for (let item of this.categories)\r\n data[\"categories\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** 朝礼のカテゴリ管理用Json形式 */\r\nexport interface IMACategoryJson {\r\n /** カテゴリリスト */\r\n categories?: Category[] | undefined;\r\n}\r\n\r\n/** カテゴリ情報 */\r\nexport class Category implements ICategory {\r\n /** カテゴリ表示名 */\r\n label?: string | undefined;\r\n /** 識別用のキー */\r\n key?: string | undefined;\r\n /** 項目情報の配列 */\r\n contents?: Content[] | undefined;\r\n\r\n constructor(data?: ICategory) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.label = _data[\"label\"];\r\n this.key = _data[\"key\"];\r\n if (Array.isArray(_data[\"contents\"])) {\r\n this.contents = [] as any;\r\n for (let item of _data[\"contents\"])\r\n this.contents!.push(Content.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): Category {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Category();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"label\"] = this.label;\r\n data[\"key\"] = this.key;\r\n if (Array.isArray(this.contents)) {\r\n data[\"contents\"] = [];\r\n for (let item of this.contents)\r\n data[\"contents\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** カテゴリ情報 */\r\nexport interface ICategory {\r\n /** カテゴリ表示名 */\r\n label?: string | undefined;\r\n /** 識別用のキー */\r\n key?: string | undefined;\r\n /** 項目情報の配列 */\r\n contents?: Content[] | undefined;\r\n}\r\n\r\n/** カテゴリに含まれる項目 */\r\nexport class Content implements IContent {\r\n /** 表示名 */\r\n title?: string | undefined;\r\n /** 識別用の種類 */\r\n type?: string | undefined;\r\n\r\n constructor(data?: IContent) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.title = _data[\"title\"];\r\n this.type = _data[\"type\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): Content {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Content();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"title\"] = this.title;\r\n data[\"type\"] = this.type;\r\n return data; \r\n }\r\n}\r\n\r\n/** カテゴリに含まれる項目 */\r\nexport interface IContent {\r\n /** 表示名 */\r\n title?: string | undefined;\r\n /** 識別用の種類 */\r\n type?: string | undefined;\r\n}\r\n\r\n/** 現場情報用データベースモデル */\r\nexport class MAProject implements IMAProject {\r\n /** プロジェクトID */\r\n id?: string;\r\n /** 未使用フラグ */\r\n invalid?: boolean;\r\n /** 現場名称 */\r\n name?: string | undefined;\r\n /** 現場説明 */\r\n description?: string | undefined;\r\n /** 15桁の管理番号 or 住所 */\r\n managementNumber?: string | undefined;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** 一般ユーザーのキー */\r\n userKey?: number;\r\n /** クライアントからアクセス用パスワード */\r\n clientPassword?: string | undefined;\r\n /** 管理者キー */\r\n adminKey?: number;\r\n /** 端末への通知を停止するためのフラグ */\r\n stopNotify?: boolean;\r\n /** デモプロジェクトかどうかのフラグ */\r\n isDemoProject?: boolean;\r\n /** テナントへの参照 */\r\n tenantId?: string;\r\n\r\n constructor(data?: IMAProject) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.invalid = _data[\"invalid\"];\r\n this.name = _data[\"name\"];\r\n this.description = _data[\"description\"];\r\n this.managementNumber = _data[\"managementNumber\"];\r\n this.createdUTC = _data[\"createdUTC\"] ? new Date(_data[\"createdUTC\"].toString()) : undefined;\r\n this.updatedUTC = _data[\"updatedUTC\"] ? new Date(_data[\"updatedUTC\"].toString()) : undefined;\r\n this.userKey = _data[\"userKey\"];\r\n this.clientPassword = _data[\"clientPassword\"];\r\n this.adminKey = _data[\"adminKey\"];\r\n this.stopNotify = _data[\"stopNotify\"];\r\n this.isDemoProject = _data[\"isDemoProject\"];\r\n this.tenantId = _data[\"tenantId\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAProject {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAProject();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"invalid\"] = this.invalid;\r\n data[\"name\"] = this.name;\r\n data[\"description\"] = this.description;\r\n data[\"managementNumber\"] = this.managementNumber;\r\n data[\"createdUTC\"] = this.createdUTC ? this.createdUTC.toISOString() : undefined;\r\n data[\"updatedUTC\"] = this.updatedUTC ? this.updatedUTC.toISOString() : undefined;\r\n data[\"userKey\"] = this.userKey;\r\n data[\"clientPassword\"] = this.clientPassword;\r\n data[\"adminKey\"] = this.adminKey;\r\n data[\"stopNotify\"] = this.stopNotify;\r\n data[\"isDemoProject\"] = this.isDemoProject;\r\n data[\"tenantId\"] = this.tenantId;\r\n return data; \r\n }\r\n}\r\n\r\n/** 現場情報用データベースモデル */\r\nexport interface IMAProject {\r\n /** プロジェクトID */\r\n id?: string;\r\n /** 未使用フラグ */\r\n invalid?: boolean;\r\n /** 現場名称 */\r\n name?: string | undefined;\r\n /** 現場説明 */\r\n description?: string | undefined;\r\n /** 15桁の管理番号 or 住所 */\r\n managementNumber?: string | undefined;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** 一般ユーザーのキー */\r\n userKey?: number;\r\n /** クライアントからアクセス用パスワード */\r\n clientPassword?: string | undefined;\r\n /** 管理者キー */\r\n adminKey?: number;\r\n /** 端末への通知を停止するためのフラグ */\r\n stopNotify?: boolean;\r\n /** デモプロジェクトかどうかのフラグ */\r\n isDemoProject?: boolean;\r\n /** テナントへの参照 */\r\n tenantId?: string;\r\n}\r\n\r\nexport class UploadInfoResult implements IUploadInfoResult {\r\n fileId?: string;\r\n uploadUrl?: string | undefined;\r\n sasToken?: string | undefined;\r\n\r\n constructor(data?: IUploadInfoResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.fileId = _data[\"fileId\"];\r\n this.uploadUrl = _data[\"uploadUrl\"];\r\n this.sasToken = _data[\"sasToken\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): UploadInfoResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new UploadInfoResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"fileId\"] = this.fileId;\r\n data[\"uploadUrl\"] = this.uploadUrl;\r\n data[\"sasToken\"] = this.sasToken;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IUploadInfoResult {\r\n fileId?: string;\r\n uploadUrl?: string | undefined;\r\n sasToken?: string | undefined;\r\n}\r\n\r\nexport class PostPhotoInfo implements IPostPhotoInfo {\r\n userName?: string | undefined;\r\n fileName?: string | undefined;\r\n fileId?: string;\r\n kind?: string | undefined;\r\n uuid?: string;\r\n deivceToken?: string | undefined;\r\n sizeType?: number;\r\n\r\n constructor(data?: IPostPhotoInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.userName = _data[\"userName\"];\r\n this.fileName = _data[\"fileName\"];\r\n this.fileId = _data[\"fileId\"];\r\n this.kind = _data[\"kind\"];\r\n this.uuid = _data[\"uuid\"];\r\n this.deivceToken = _data[\"deivceToken\"];\r\n this.sizeType = _data[\"sizeType\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): PostPhotoInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PostPhotoInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"userName\"] = this.userName;\r\n data[\"fileName\"] = this.fileName;\r\n data[\"fileId\"] = this.fileId;\r\n data[\"kind\"] = this.kind;\r\n data[\"uuid\"] = this.uuid;\r\n data[\"deivceToken\"] = this.deivceToken;\r\n data[\"sizeType\"] = this.sizeType;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IPostPhotoInfo {\r\n userName?: string | undefined;\r\n fileName?: string | undefined;\r\n fileId?: string;\r\n kind?: string | undefined;\r\n uuid?: string;\r\n deivceToken?: string | undefined;\r\n sizeType?: number;\r\n}\r\n\r\nexport class CopyPhotoInfo implements ICopyPhotoInfo {\r\n srcFileId?: string;\r\n uuid?: string;\r\n\r\n constructor(data?: ICopyPhotoInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.srcFileId = _data[\"srcFileId\"];\r\n this.uuid = _data[\"uuid\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): CopyPhotoInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new CopyPhotoInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"srcFileId\"] = this.srcFileId;\r\n data[\"uuid\"] = this.uuid;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ICopyPhotoInfo {\r\n srcFileId?: string;\r\n uuid?: string;\r\n}\r\n\r\n/** アンケート結果 */\r\nexport class MAQuestionResult implements IMAQuestionResult {\r\n /** 参加確認ID */\r\n id?: string;\r\n /** 朝礼への参照 */\r\n contentsId?: string;\r\n /** Json内の対象アンケートのUUID */\r\n uuid?: string;\r\n /** デバイス情報 */\r\n deviceToken?: string | undefined;\r\n /** ユーザー名 */\r\n userName?: string | undefined;\r\n /** 結果データ */\r\n results?: MAQuestionResultItem[] | undefined;\r\n\r\n constructor(data?: IMAQuestionResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.contentsId = _data[\"contentsId\"];\r\n this.uuid = _data[\"uuid\"];\r\n this.deviceToken = _data[\"deviceToken\"];\r\n this.userName = _data[\"userName\"];\r\n if (Array.isArray(_data[\"results\"])) {\r\n this.results = [] as any;\r\n for (let item of _data[\"results\"])\r\n this.results!.push(MAQuestionResultItem.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAQuestionResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAQuestionResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"contentsId\"] = this.contentsId;\r\n data[\"uuid\"] = this.uuid;\r\n data[\"deviceToken\"] = this.deviceToken;\r\n data[\"userName\"] = this.userName;\r\n if (Array.isArray(this.results)) {\r\n data[\"results\"] = [];\r\n for (let item of this.results)\r\n data[\"results\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** アンケート結果 */\r\nexport interface IMAQuestionResult {\r\n /** 参加確認ID */\r\n id?: string;\r\n /** 朝礼への参照 */\r\n contentsId?: string;\r\n /** Json内の対象アンケートのUUID */\r\n uuid?: string;\r\n /** デバイス情報 */\r\n deviceToken?: string | undefined;\r\n /** ユーザー名 */\r\n userName?: string | undefined;\r\n /** 結果データ */\r\n results?: MAQuestionResultItem[] | undefined;\r\n}\r\n\r\n/** アンケート解答1つ分 */\r\nexport class MAQuestionResultItem implements IMAQuestionResultItem {\r\n /** 質問ID */\r\n questionUUID?: string;\r\n /** 解答 */\r\n result?: string | undefined;\r\n\r\n constructor(data?: IMAQuestionResultItem) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.questionUUID = _data[\"questionUUID\"];\r\n this.result = _data[\"result\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAQuestionResultItem {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAQuestionResultItem();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"questionUUID\"] = this.questionUUID;\r\n data[\"result\"] = this.result;\r\n return data; \r\n }\r\n}\r\n\r\n/** アンケート解答1つ分 */\r\nexport interface IMAQuestionResultItem {\r\n /** 質問ID */\r\n questionUUID?: string;\r\n /** 解答 */\r\n result?: string | undefined;\r\n}\r\n\r\n/** auth実行時の返り値 */\r\nexport class AuthResult implements IAuthResult {\r\n /** JWTトークン */\r\n token?: string | undefined;\r\n /** 管理者かどうかのフラグ */\r\n admin?: boolean;\r\n\r\n constructor(data?: IAuthResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.token = _data[\"token\"];\r\n this.admin = _data[\"admin\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): AuthResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new AuthResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"token\"] = this.token;\r\n data[\"admin\"] = this.admin;\r\n return data; \r\n }\r\n}\r\n\r\n/** auth実行時の返り値 */\r\nexport interface IAuthResult {\r\n /** JWTトークン */\r\n token?: string | undefined;\r\n /** 管理者かどうかのフラグ */\r\n admin?: boolean;\r\n}\r\n\r\n/** 現場ログイン情報 */\r\nexport class AuthModel implements IAuthModel {\r\n /** プロジェクトキー5桁or7桁 */\r\n projectKey?: string | undefined;\r\n /** プロジェクトログインのためのパスワード(オプション) */\r\n password?: string | undefined;\r\n /** 端末のタイムゾーン。UTCとの時差(Hour)を渡す。JSTでは9。 */\r\n timezone?: number;\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** 端末の種類。現在はapple, androidのいずれかを指定する。 */\r\n type?: string | undefined;\r\n /** 通知停止フラグ。true=デバイスへの通知をしない */\r\n stopNotify?: boolean;\r\n\r\n constructor(data?: IAuthModel) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.projectKey = _data[\"projectKey\"];\r\n this.password = _data[\"password\"];\r\n this.timezone = _data[\"timezone\"];\r\n this.deviceToken = _data[\"deviceToken\"];\r\n this.type = _data[\"type\"];\r\n this.stopNotify = _data[\"stopNotify\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): AuthModel {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new AuthModel();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"projectKey\"] = this.projectKey;\r\n data[\"password\"] = this.password;\r\n data[\"timezone\"] = this.timezone;\r\n data[\"deviceToken\"] = this.deviceToken;\r\n data[\"type\"] = this.type;\r\n data[\"stopNotify\"] = this.stopNotify;\r\n return data; \r\n }\r\n}\r\n\r\n/** 現場ログイン情報 */\r\nexport interface IAuthModel {\r\n /** プロジェクトキー5桁or7桁 */\r\n projectKey?: string | undefined;\r\n /** プロジェクトログインのためのパスワード(オプション) */\r\n password?: string | undefined;\r\n /** 端末のタイムゾーン。UTCとの時差(Hour)を渡す。JSTでは9。 */\r\n timezone?: number;\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** 端末の種類。現在はapple, androidのいずれかを指定する。 */\r\n type?: string | undefined;\r\n /** 通知停止フラグ。true=デバイスへの通知をしない */\r\n stopNotify?: boolean;\r\n}\r\n\r\n/** MAContents.AttendeeInfo内のJSONデータ形式 */\r\nexport class MAAttendee implements IMAAttendee {\r\n /** デバイス情報 */\r\n deviceToken?: string | undefined;\r\n /** ユーザー名 */\r\n userName?: string | undefined;\r\n /** 登録日時 */\r\n timeUTC?: Date;\r\n\r\n constructor(data?: IMAAttendee) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.deviceToken = _data[\"deviceToken\"];\r\n this.userName = _data[\"userName\"];\r\n this.timeUTC = _data[\"timeUTC\"] ? new Date(_data[\"timeUTC\"].toString()) : undefined;\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAAttendee {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAAttendee();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"deviceToken\"] = this.deviceToken;\r\n data[\"userName\"] = this.userName;\r\n data[\"timeUTC\"] = this.timeUTC ? this.timeUTC.toISOString() : undefined;\r\n return data; \r\n }\r\n}\r\n\r\n/** MAContents.AttendeeInfo内のJSONデータ形式 */\r\nexport interface IMAAttendee {\r\n /** デバイス情報 */\r\n deviceToken?: string | undefined;\r\n /** ユーザー名 */\r\n userName?: string | undefined;\r\n /** 登録日時 */\r\n timeUTC?: Date;\r\n}\r\n\r\n/** 通話呼び出し */\r\nexport class DeviceCall implements IDeviceCall {\r\n /** 呼び出し元 */\r\n caller?: DeviceUser | undefined;\r\n /** 呼び出し先 */\r\n callee?: DeviceUser[] | undefined;\r\n\r\n constructor(data?: IDeviceCall) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.caller = _data[\"caller\"] ? DeviceUser.fromJS(_data[\"caller\"]) : undefined;\r\n if (Array.isArray(_data[\"callee\"])) {\r\n this.callee = [] as any;\r\n for (let item of _data[\"callee\"])\r\n this.callee!.push(DeviceUser.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): DeviceCall {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new DeviceCall();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"caller\"] = this.caller ? this.caller.toJSON() : undefined;\r\n if (Array.isArray(this.callee)) {\r\n data[\"callee\"] = [];\r\n for (let item of this.callee)\r\n data[\"callee\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** 通話呼び出し */\r\nexport interface IDeviceCall {\r\n /** 呼び出し元 */\r\n caller?: DeviceUser | undefined;\r\n /** 呼び出し先 */\r\n callee?: DeviceUser[] | undefined;\r\n}\r\n\r\n/** デバイストークンとユーザー名のセット */\r\nexport class DeviceUser implements IDeviceUser {\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** ユーザー名 */\r\n userName?: string | undefined;\r\n\r\n constructor(data?: IDeviceUser) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.deviceToken = _data[\"deviceToken\"];\r\n this.userName = _data[\"userName\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): DeviceUser {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new DeviceUser();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"deviceToken\"] = this.deviceToken;\r\n data[\"userName\"] = this.userName;\r\n return data; \r\n }\r\n}\r\n\r\n/** デバイストークンとユーザー名のセット */\r\nexport interface IDeviceUser {\r\n /** デバイストークン */\r\n deviceToken?: string | undefined;\r\n /** ユーザー名 */\r\n userName?: string | undefined;\r\n}\r\n\r\n/** 通知登録済みのプロジェクト情報 */\r\nexport class ProjectResult implements IProjectResult {\r\n /** プロジェクトID */\r\n id?: string;\r\n /** 現場名称 */\r\n name?: string | undefined;\r\n /** 現場説明 */\r\n description?: string | undefined;\r\n /** 15桁の管理番号 or 住所 */\r\n managementNumber?: string | undefined;\r\n\r\n constructor(data?: IProjectResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.name = _data[\"name\"];\r\n this.description = _data[\"description\"];\r\n this.managementNumber = _data[\"managementNumber\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): ProjectResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ProjectResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"name\"] = this.name;\r\n data[\"description\"] = this.description;\r\n data[\"managementNumber\"] = this.managementNumber;\r\n return data; \r\n }\r\n}\r\n\r\n/** 通知登録済みのプロジェクト情報 */\r\nexport interface IProjectResult {\r\n /** プロジェクトID */\r\n id?: string;\r\n /** 現場名称 */\r\n name?: string | undefined;\r\n /** 現場説明 */\r\n description?: string | undefined;\r\n /** 15桁の管理番号 or 住所 */\r\n managementNumber?: string | undefined;\r\n}\r\n\r\nexport class Notification implements INotification {\r\n /** プロジェクトID */\r\n projectId?: string;\r\n /** デバイスID */\r\n deviceId?: string | undefined;\r\n /** 端末の種類。現在はapple, androidのいずれかを指定する。 */\r\n type?: string | undefined;\r\n /** 通知をOnにする */\r\n notificationOn?: boolean;\r\n\r\n constructor(data?: INotification) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.projectId = _data[\"projectId\"];\r\n this.deviceId = _data[\"deviceId\"];\r\n this.type = _data[\"type\"];\r\n this.notificationOn = _data[\"notificationOn\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): Notification {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new Notification();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"projectId\"] = this.projectId;\r\n data[\"deviceId\"] = this.deviceId;\r\n data[\"type\"] = this.type;\r\n data[\"notificationOn\"] = this.notificationOn;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface INotification {\r\n /** プロジェクトID */\r\n projectId?: string;\r\n /** デバイスID */\r\n deviceId?: string | undefined;\r\n /** 端末の種類。現在はapple, androidのいずれかを指定する。 */\r\n type?: string | undefined;\r\n /** 通知をOnにする */\r\n notificationOn?: boolean;\r\n}\r\n\r\n/** 支払い情報用JSONモデル */\r\nexport class MAPayment implements IMAPayment {\r\n /** 名称 */\r\n name?: string | undefined;\r\n /** 種類 */\r\n type?: string | undefined;\r\n /** 有効にするプロジェクト数 */\r\n projectCount?: number;\r\n /** 有効な期間 */\r\n intervalMonth?: number;\r\n /** 追加ライセンスかどうか */\r\n optional?: boolean;\r\n /** 価格 */\r\n price?: number;\r\n /** 特殊コード、キャンペーンやトライアルなどの */\r\n code?: string | undefined;\r\n\r\n constructor(data?: IMAPayment) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data[\"name\"];\r\n this.type = _data[\"type\"];\r\n this.projectCount = _data[\"projectCount\"];\r\n this.intervalMonth = _data[\"intervalMonth\"];\r\n this.optional = _data[\"optional\"];\r\n this.price = _data[\"price\"];\r\n this.code = _data[\"code\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAPayment {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAPayment();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"name\"] = this.name;\r\n data[\"type\"] = this.type;\r\n data[\"projectCount\"] = this.projectCount;\r\n data[\"intervalMonth\"] = this.intervalMonth;\r\n data[\"optional\"] = this.optional;\r\n data[\"price\"] = this.price;\r\n data[\"code\"] = this.code;\r\n return data; \r\n }\r\n}\r\n\r\n/** 支払い情報用JSONモデル */\r\nexport interface IMAPayment {\r\n /** 名称 */\r\n name?: string | undefined;\r\n /** 種類 */\r\n type?: string | undefined;\r\n /** 有効にするプロジェクト数 */\r\n projectCount?: number;\r\n /** 有効な期間 */\r\n intervalMonth?: number;\r\n /** 追加ライセンスかどうか */\r\n optional?: boolean;\r\n /** 価格 */\r\n price?: number;\r\n /** 特殊コード、キャンペーンやトライアルなどの */\r\n code?: string | undefined;\r\n}\r\n\r\n/** 支払情報 */\r\nexport class MAOrder implements IMAOrder {\r\n /** 支払いID GMO:order_number */\r\n id?: string;\r\n /** 支払い済フラグ */\r\n paid?: boolean;\r\n /** 登録済みフラグ */\r\n registered?: boolean;\r\n /** 定期購入の停止 */\r\n stopSubscription?: boolean;\r\n /** 定期購入停止日時 */\r\n stopSubscriptionDate?: Date | undefined;\r\n /** 支払いの種類CARD=GMOクレジットカード,BANK=GMO銀行振込 */\r\n payType?: string | undefined;\r\n /** 適応期間(月数) */\r\n timeSpanMonth?: number;\r\n /** 適用開始日時(UTC) */\r\n startUTC?: Date;\r\n /** 適用終了日時(UTC) */\r\n endUTC?: Date;\r\n /** 有効にした日時(UTC) */\r\n validDateUTC?: Date | undefined;\r\n /** 有効フラグ */\r\n valid?: boolean;\r\n /** 受付日時 */\r\n orderDate?: Date;\r\n /** 決済状態\r\nGMO:state */\r\n state?: number;\r\n /** トランザクションコード\r\nGMO:trans_code */\r\n transCode?: string | undefined;\r\n /** 契約者\r\nGMO:user_name */\r\n userName?: string | undefined;\r\n /** 処理区分\r\nGMO:process_code */\r\n processCode?: number;\r\n /** 価格\r\nGMO:item_price */\r\n price?: number;\r\n /** 備考\r\nGMO:memo1 */\r\n note?: string | undefined;\r\n /** 課金区分\r\nGMO:mission_code */\r\n missionCode?: number;\r\n /** 決済区分\r\nGMO:st_code */\r\n stCode?: string | undefined;\r\n /** 契約コード\r\nGMO:contract_code */\r\n contractCode?: string | undefined;\r\n /** 商品名\r\nGMO:item_name */\r\n itemName?: string | undefined;\r\n /** 決済番号\r\nGMO:payment_code */\r\n paymentCode?: number;\r\n /** メールアドレス\r\nGMO:user_mail_add */\r\n mailAddress?: string | undefined;\r\n /** 商品コード\r\nGMO:item_code */\r\n itemCode?: string | undefined;\r\n /** クレジットカード決済の認証日時\r\nGMO:credit_time */\r\n creditDate?: Date | undefined;\r\n /** クレジット決済方法\r\nGMO:cred_st_code */\r\n creditStCode?: number;\r\n /** クレジット分割回数\r\nGMO:pay_time */\r\n creditPayTime?: number;\r\n /** 口座番号\r\nGMO:account_no */\r\n verAccountNo?: number;\r\n /** 銀行コード\r\nGMO:bank_code */\r\n verBankCode?: number;\r\n /** 銀行名\r\nGMO:bank_name */\r\n verBankName?: string | undefined;\r\n /** 支店コード\r\nGMO:branch_code */\r\n verBranchCode?: number;\r\n /** 支店名\r\nGMO:branch_name */\r\n verBranchName?: string | undefined;\r\n /** 口座名義\r\nGMO:account_name */\r\n verAccountName?: string | undefined;\r\n /** 入金金額\r\nGMO:amount */\r\n verAmount?: number;\r\n /** テナントへの参照\r\n会社ID:GMO:user_id */\r\n tenantId?: string;\r\n /** ライセンス情報 */\r\n licenses?: MALicense[] | undefined;\r\n\r\n constructor(data?: IMAOrder) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.paid = _data[\"paid\"];\r\n this.registered = _data[\"registered\"];\r\n this.stopSubscription = _data[\"stopSubscription\"];\r\n this.stopSubscriptionDate = _data[\"stopSubscriptionDate\"] ? new Date(_data[\"stopSubscriptionDate\"].toString()) : undefined;\r\n this.payType = _data[\"payType\"];\r\n this.timeSpanMonth = _data[\"timeSpanMonth\"];\r\n this.startUTC = _data[\"startUTC\"] ? new Date(_data[\"startUTC\"].toString()) : undefined;\r\n this.endUTC = _data[\"endUTC\"] ? new Date(_data[\"endUTC\"].toString()) : undefined;\r\n this.validDateUTC = _data[\"validDateUTC\"] ? new Date(_data[\"validDateUTC\"].toString()) : undefined;\r\n this.valid = _data[\"valid\"];\r\n this.orderDate = _data[\"orderDate\"] ? new Date(_data[\"orderDate\"].toString()) : undefined;\r\n this.state = _data[\"state\"];\r\n this.transCode = _data[\"transCode\"];\r\n this.userName = _data[\"userName\"];\r\n this.processCode = _data[\"processCode\"];\r\n this.price = _data[\"price\"];\r\n this.note = _data[\"note\"];\r\n this.missionCode = _data[\"missionCode\"];\r\n this.stCode = _data[\"stCode\"];\r\n this.contractCode = _data[\"contractCode\"];\r\n this.itemName = _data[\"itemName\"];\r\n this.paymentCode = _data[\"paymentCode\"];\r\n this.mailAddress = _data[\"mailAddress\"];\r\n this.itemCode = _data[\"itemCode\"];\r\n this.creditDate = _data[\"creditDate\"] ? new Date(_data[\"creditDate\"].toString()) : undefined;\r\n this.creditStCode = _data[\"creditStCode\"];\r\n this.creditPayTime = _data[\"creditPayTime\"];\r\n this.verAccountNo = _data[\"verAccountNo\"];\r\n this.verBankCode = _data[\"verBankCode\"];\r\n this.verBankName = _data[\"verBankName\"];\r\n this.verBranchCode = _data[\"verBranchCode\"];\r\n this.verBranchName = _data[\"verBranchName\"];\r\n this.verAccountName = _data[\"verAccountName\"];\r\n this.verAmount = _data[\"verAmount\"];\r\n this.tenantId = _data[\"tenantId\"];\r\n if (Array.isArray(_data[\"licenses\"])) {\r\n this.licenses = [] as any;\r\n for (let item of _data[\"licenses\"])\r\n this.licenses!.push(MALicense.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAOrder {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAOrder();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"paid\"] = this.paid;\r\n data[\"registered\"] = this.registered;\r\n data[\"stopSubscription\"] = this.stopSubscription;\r\n data[\"stopSubscriptionDate\"] = this.stopSubscriptionDate ? this.stopSubscriptionDate.toISOString() : undefined;\r\n data[\"payType\"] = this.payType;\r\n data[\"timeSpanMonth\"] = this.timeSpanMonth;\r\n data[\"startUTC\"] = this.startUTC ? this.startUTC.toISOString() : undefined;\r\n data[\"endUTC\"] = this.endUTC ? this.endUTC.toISOString() : undefined;\r\n data[\"validDateUTC\"] = this.validDateUTC ? this.validDateUTC.toISOString() : undefined;\r\n data[\"valid\"] = this.valid;\r\n data[\"orderDate\"] = this.orderDate ? this.orderDate.toISOString() : undefined;\r\n data[\"state\"] = this.state;\r\n data[\"transCode\"] = this.transCode;\r\n data[\"userName\"] = this.userName;\r\n data[\"processCode\"] = this.processCode;\r\n data[\"price\"] = this.price;\r\n data[\"note\"] = this.note;\r\n data[\"missionCode\"] = this.missionCode;\r\n data[\"stCode\"] = this.stCode;\r\n data[\"contractCode\"] = this.contractCode;\r\n data[\"itemName\"] = this.itemName;\r\n data[\"paymentCode\"] = this.paymentCode;\r\n data[\"mailAddress\"] = this.mailAddress;\r\n data[\"itemCode\"] = this.itemCode;\r\n data[\"creditDate\"] = this.creditDate ? this.creditDate.toISOString() : undefined;\r\n data[\"creditStCode\"] = this.creditStCode;\r\n data[\"creditPayTime\"] = this.creditPayTime;\r\n data[\"verAccountNo\"] = this.verAccountNo;\r\n data[\"verBankCode\"] = this.verBankCode;\r\n data[\"verBankName\"] = this.verBankName;\r\n data[\"verBranchCode\"] = this.verBranchCode;\r\n data[\"verBranchName\"] = this.verBranchName;\r\n data[\"verAccountName\"] = this.verAccountName;\r\n data[\"verAmount\"] = this.verAmount;\r\n data[\"tenantId\"] = this.tenantId;\r\n if (Array.isArray(this.licenses)) {\r\n data[\"licenses\"] = [];\r\n for (let item of this.licenses)\r\n data[\"licenses\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** 支払情報 */\r\nexport interface IMAOrder {\r\n /** 支払いID GMO:order_number */\r\n id?: string;\r\n /** 支払い済フラグ */\r\n paid?: boolean;\r\n /** 登録済みフラグ */\r\n registered?: boolean;\r\n /** 定期購入の停止 */\r\n stopSubscription?: boolean;\r\n /** 定期購入停止日時 */\r\n stopSubscriptionDate?: Date | undefined;\r\n /** 支払いの種類CARD=GMOクレジットカード,BANK=GMO銀行振込 */\r\n payType?: string | undefined;\r\n /** 適応期間(月数) */\r\n timeSpanMonth?: number;\r\n /** 適用開始日時(UTC) */\r\n startUTC?: Date;\r\n /** 適用終了日時(UTC) */\r\n endUTC?: Date;\r\n /** 有効にした日時(UTC) */\r\n validDateUTC?: Date | undefined;\r\n /** 有効フラグ */\r\n valid?: boolean;\r\n /** 受付日時 */\r\n orderDate?: Date;\r\n /** 決済状態\r\nGMO:state */\r\n state?: number;\r\n /** トランザクションコード\r\nGMO:trans_code */\r\n transCode?: string | undefined;\r\n /** 契約者\r\nGMO:user_name */\r\n userName?: string | undefined;\r\n /** 処理区分\r\nGMO:process_code */\r\n processCode?: number;\r\n /** 価格\r\nGMO:item_price */\r\n price?: number;\r\n /** 備考\r\nGMO:memo1 */\r\n note?: string | undefined;\r\n /** 課金区分\r\nGMO:mission_code */\r\n missionCode?: number;\r\n /** 決済区分\r\nGMO:st_code */\r\n stCode?: string | undefined;\r\n /** 契約コード\r\nGMO:contract_code */\r\n contractCode?: string | undefined;\r\n /** 商品名\r\nGMO:item_name */\r\n itemName?: string | undefined;\r\n /** 決済番号\r\nGMO:payment_code */\r\n paymentCode?: number;\r\n /** メールアドレス\r\nGMO:user_mail_add */\r\n mailAddress?: string | undefined;\r\n /** 商品コード\r\nGMO:item_code */\r\n itemCode?: string | undefined;\r\n /** クレジットカード決済の認証日時\r\nGMO:credit_time */\r\n creditDate?: Date | undefined;\r\n /** クレジット決済方法\r\nGMO:cred_st_code */\r\n creditStCode?: number;\r\n /** クレジット分割回数\r\nGMO:pay_time */\r\n creditPayTime?: number;\r\n /** 口座番号\r\nGMO:account_no */\r\n verAccountNo?: number;\r\n /** 銀行コード\r\nGMO:bank_code */\r\n verBankCode?: number;\r\n /** 銀行名\r\nGMO:bank_name */\r\n verBankName?: string | undefined;\r\n /** 支店コード\r\nGMO:branch_code */\r\n verBranchCode?: number;\r\n /** 支店名\r\nGMO:branch_name */\r\n verBranchName?: string | undefined;\r\n /** 口座名義\r\nGMO:account_name */\r\n verAccountName?: string | undefined;\r\n /** 入金金額\r\nGMO:amount */\r\n verAmount?: number;\r\n /** テナントへの参照\r\n会社ID:GMO:user_id */\r\n tenantId?: string;\r\n /** ライセンス情報 */\r\n licenses?: MALicense[] | undefined;\r\n}\r\n\r\n/** ライセンス情報 */\r\nexport class MALicense implements IMALicense {\r\n /** ライセンスID */\r\n id?: string;\r\n /** 作成日時(UTC) */\r\n createUTC?: Date;\r\n /** 編集日時(UTC) */\r\n updateUTC?: Date;\r\n /** ライセンスで提供されるプロジェクト数 */\r\n projectCount?: number;\r\n /** 種類 */\r\n type?: string | undefined;\r\n /** 名称 */\r\n name?: string | undefined;\r\n /** 個数(追加ライセンスのような場合) */\r\n quantity?: number;\r\n /** テナントへの参照\r\n会社ID:GMO:user_id */\r\n orderId?: string;\r\n\r\n constructor(data?: IMALicense) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.createUTC = _data[\"createUTC\"] ? new Date(_data[\"createUTC\"].toString()) : undefined;\r\n this.updateUTC = _data[\"updateUTC\"] ? new Date(_data[\"updateUTC\"].toString()) : undefined;\r\n this.projectCount = _data[\"projectCount\"];\r\n this.type = _data[\"type\"];\r\n this.name = _data[\"name\"];\r\n this.quantity = _data[\"quantity\"];\r\n this.orderId = _data[\"orderId\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MALicense {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MALicense();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"createUTC\"] = this.createUTC ? this.createUTC.toISOString() : undefined;\r\n data[\"updateUTC\"] = this.updateUTC ? this.updateUTC.toISOString() : undefined;\r\n data[\"projectCount\"] = this.projectCount;\r\n data[\"type\"] = this.type;\r\n data[\"name\"] = this.name;\r\n data[\"quantity\"] = this.quantity;\r\n data[\"orderId\"] = this.orderId;\r\n return data; \r\n }\r\n}\r\n\r\n/** ライセンス情報 */\r\nexport interface IMALicense {\r\n /** ライセンスID */\r\n id?: string;\r\n /** 作成日時(UTC) */\r\n createUTC?: Date;\r\n /** 編集日時(UTC) */\r\n updateUTC?: Date;\r\n /** ライセンスで提供されるプロジェクト数 */\r\n projectCount?: number;\r\n /** 種類 */\r\n type?: string | undefined;\r\n /** 名称 */\r\n name?: string | undefined;\r\n /** 個数(追加ライセンスのような場合) */\r\n quantity?: number;\r\n /** テナントへの参照\r\n会社ID:GMO:user_id */\r\n orderId?: string;\r\n}\r\n\r\n/** 現在の支払状況 */\r\nexport class CurrentPaymentInfo implements ICurrentPaymentInfo {\r\n stopSubscription?: boolean;\r\n /** 未払いの項目 */\r\n unpaidOrder?: MAOrder[] | undefined;\r\n /** 現在有効な項目 */\r\n currentOrders?: MAOrder[] | undefined;\r\n /** 次回の請求項目 */\r\n nextOrders?: MAOrder[] | undefined;\r\n\r\n constructor(data?: ICurrentPaymentInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.stopSubscription = _data[\"stopSubscription\"];\r\n if (Array.isArray(_data[\"unpaidOrder\"])) {\r\n this.unpaidOrder = [] as any;\r\n for (let item of _data[\"unpaidOrder\"])\r\n this.unpaidOrder!.push(MAOrder.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"currentOrders\"])) {\r\n this.currentOrders = [] as any;\r\n for (let item of _data[\"currentOrders\"])\r\n this.currentOrders!.push(MAOrder.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"nextOrders\"])) {\r\n this.nextOrders = [] as any;\r\n for (let item of _data[\"nextOrders\"])\r\n this.nextOrders!.push(MAOrder.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): CurrentPaymentInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new CurrentPaymentInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"stopSubscription\"] = this.stopSubscription;\r\n if (Array.isArray(this.unpaidOrder)) {\r\n data[\"unpaidOrder\"] = [];\r\n for (let item of this.unpaidOrder)\r\n data[\"unpaidOrder\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.currentOrders)) {\r\n data[\"currentOrders\"] = [];\r\n for (let item of this.currentOrders)\r\n data[\"currentOrders\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.nextOrders)) {\r\n data[\"nextOrders\"] = [];\r\n for (let item of this.nextOrders)\r\n data[\"nextOrders\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** 現在の支払状況 */\r\nexport interface ICurrentPaymentInfo {\r\n stopSubscription?: boolean;\r\n /** 未払いの項目 */\r\n unpaidOrder?: MAOrder[] | undefined;\r\n /** 現在有効な項目 */\r\n currentOrders?: MAOrder[] | undefined;\r\n /** 次回の請求項目 */\r\n nextOrders?: MAOrder[] | undefined;\r\n}\r\n\r\n/** NP架け払い登録時の情報 */\r\nexport class PostNPInvoiceInfo implements IPostNPInvoiceInfo {\r\n /** ライセンス期間 */\r\n timeSpanMonth?: number;\r\n /** プロジェクト数 */\r\n projectCount?: number;\r\n /** 請求書用のメールアドレス */\r\n mailAddress?: string | undefined;\r\n /** 請求書用の会社名 */\r\n tenantName?: string | undefined;\r\n /** 部署名 */\r\n departmentName?: string | undefined;\r\n /** 責任者 */\r\n chargePerson?: string | undefined;\r\n /** 電話番号 */\r\n phoneNumber?: string | undefined;\r\n /** 郵便番号 */\r\n postalCode?: string | undefined;\r\n /** 都道府県 */\r\n region?: string | undefined;\r\n /** 市区町村 */\r\n address1?: string | undefined;\r\n /** 町名・番地 */\r\n address2?: string | undefined;\r\n /** アパート・マンション・ビル */\r\n address3?: string | undefined;\r\n /** 請求書を郵送せずEメールで送信 */\r\n invoiceByEmail?: boolean;\r\n\r\n constructor(data?: IPostNPInvoiceInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.timeSpanMonth = _data[\"timeSpanMonth\"];\r\n this.projectCount = _data[\"projectCount\"];\r\n this.mailAddress = _data[\"mailAddress\"];\r\n this.tenantName = _data[\"tenantName\"];\r\n this.departmentName = _data[\"departmentName\"];\r\n this.chargePerson = _data[\"chargePerson\"];\r\n this.phoneNumber = _data[\"phoneNumber\"];\r\n this.postalCode = _data[\"postalCode\"];\r\n this.region = _data[\"region\"];\r\n this.address1 = _data[\"address1\"];\r\n this.address2 = _data[\"address2\"];\r\n this.address3 = _data[\"address3\"];\r\n this.invoiceByEmail = _data[\"invoiceByEmail\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): PostNPInvoiceInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PostNPInvoiceInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"timeSpanMonth\"] = this.timeSpanMonth;\r\n data[\"projectCount\"] = this.projectCount;\r\n data[\"mailAddress\"] = this.mailAddress;\r\n data[\"tenantName\"] = this.tenantName;\r\n data[\"departmentName\"] = this.departmentName;\r\n data[\"chargePerson\"] = this.chargePerson;\r\n data[\"phoneNumber\"] = this.phoneNumber;\r\n data[\"postalCode\"] = this.postalCode;\r\n data[\"region\"] = this.region;\r\n data[\"address1\"] = this.address1;\r\n data[\"address2\"] = this.address2;\r\n data[\"address3\"] = this.address3;\r\n data[\"invoiceByEmail\"] = this.invoiceByEmail;\r\n return data; \r\n }\r\n}\r\n\r\n/** NP架け払い登録時の情報 */\r\nexport interface IPostNPInvoiceInfo {\r\n /** ライセンス期間 */\r\n timeSpanMonth?: number;\r\n /** プロジェクト数 */\r\n projectCount?: number;\r\n /** 請求書用のメールアドレス */\r\n mailAddress?: string | undefined;\r\n /** 請求書用の会社名 */\r\n tenantName?: string | undefined;\r\n /** 部署名 */\r\n departmentName?: string | undefined;\r\n /** 責任者 */\r\n chargePerson?: string | undefined;\r\n /** 電話番号 */\r\n phoneNumber?: string | undefined;\r\n /** 郵便番号 */\r\n postalCode?: string | undefined;\r\n /** 都道府県 */\r\n region?: string | undefined;\r\n /** 市区町村 */\r\n address1?: string | undefined;\r\n /** 町名・番地 */\r\n address2?: string | undefined;\r\n /** アパート・マンション・ビル */\r\n address3?: string | undefined;\r\n /** 請求書を郵送せずEメールで送信 */\r\n invoiceByEmail?: boolean;\r\n}\r\n\r\nexport class SettlementResult implements ISettlementResult {\r\n /** 呼び出し結果 */\r\n result?: number;\r\n /** エラーコード */\r\n errCode?: string | undefined;\r\n /** エラー内容 */\r\n errDetail?: string | undefined;\r\n /** リダイレクト先 */\r\n redirect?: string | undefined;\r\n /** DB上のオーダーID */\r\n orderId?: string;\r\n /** 登録時のオーダー情報 */\r\n orderItems?: OrderItem[] | undefined;\r\n\r\n constructor(data?: ISettlementResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.result = _data[\"result\"];\r\n this.errCode = _data[\"errCode\"];\r\n this.errDetail = _data[\"errDetail\"];\r\n this.redirect = _data[\"redirect\"];\r\n this.orderId = _data[\"orderId\"];\r\n if (Array.isArray(_data[\"orderItems\"])) {\r\n this.orderItems = [] as any;\r\n for (let item of _data[\"orderItems\"])\r\n this.orderItems!.push(OrderItem.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): SettlementResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SettlementResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"result\"] = this.result;\r\n data[\"errCode\"] = this.errCode;\r\n data[\"errDetail\"] = this.errDetail;\r\n data[\"redirect\"] = this.redirect;\r\n data[\"orderId\"] = this.orderId;\r\n if (Array.isArray(this.orderItems)) {\r\n data[\"orderItems\"] = [];\r\n for (let item of this.orderItems)\r\n data[\"orderItems\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ISettlementResult {\r\n /** 呼び出し結果 */\r\n result?: number;\r\n /** エラーコード */\r\n errCode?: string | undefined;\r\n /** エラー内容 */\r\n errDetail?: string | undefined;\r\n /** リダイレクト先 */\r\n redirect?: string | undefined;\r\n /** DB上のオーダーID */\r\n orderId?: string;\r\n /** 登録時のオーダー情報 */\r\n orderItems?: OrderItem[] | undefined;\r\n}\r\n\r\n/** 注文1つ分の情報 */\r\nexport class OrderItem implements IOrderItem {\r\n /** 注文した商品 */\r\n orderCode?: string | undefined;\r\n /** 注文数 */\r\n count?: number;\r\n\r\n constructor(data?: IOrderItem) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.orderCode = _data[\"orderCode\"];\r\n this.count = _data[\"count\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): OrderItem {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new OrderItem();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"orderCode\"] = this.orderCode;\r\n data[\"count\"] = this.count;\r\n return data; \r\n }\r\n}\r\n\r\n/** 注文1つ分の情報 */\r\nexport interface IOrderItem {\r\n /** 注文した商品 */\r\n orderCode?: string | undefined;\r\n /** 注文数 */\r\n count?: number;\r\n}\r\n\r\nexport class PostSettlementInfo implements IPostSettlementInfo {\r\n /** 注文項目 */\r\n orderItemJson?: string | undefined;\r\n /** 支払い方法(CARD or BANK) */\r\n paymentType?: string | undefined;\r\n /** 請求先氏名 */\r\n userName?: string | undefined;\r\n /** 銀行払の際のメールアドレス */\r\n mailAddress?: string | undefined;\r\n /** 備考 */\r\n note?: string | undefined;\r\n\r\n constructor(data?: IPostSettlementInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.orderItemJson = _data[\"orderItemJson\"];\r\n this.paymentType = _data[\"paymentType\"];\r\n this.userName = _data[\"userName\"];\r\n this.mailAddress = _data[\"mailAddress\"];\r\n this.note = _data[\"note\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): PostSettlementInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PostSettlementInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"orderItemJson\"] = this.orderItemJson;\r\n data[\"paymentType\"] = this.paymentType;\r\n data[\"userName\"] = this.userName;\r\n data[\"mailAddress\"] = this.mailAddress;\r\n data[\"note\"] = this.note;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IPostSettlementInfo {\r\n /** 注文項目 */\r\n orderItemJson?: string | undefined;\r\n /** 支払い方法(CARD or BANK) */\r\n paymentType?: string | undefined;\r\n /** 請求先氏名 */\r\n userName?: string | undefined;\r\n /** 銀行払の際のメールアドレス */\r\n mailAddress?: string | undefined;\r\n /** 備考 */\r\n note?: string | undefined;\r\n}\r\n\r\n/** GMOサーバからリダイレクトで帰ってきたデータ */\r\nexport class OrderRedirect implements IOrderRedirect {\r\n /** 注文番号 */\r\n orderNumber?: string | undefined;\r\n /** 処理結果 */\r\n result?: string | undefined;\r\n /** トランザクションコード */\r\n transCode?: string | undefined;\r\n /** ユーザーID */\r\n userId?: string | undefined;\r\n\r\n constructor(data?: IOrderRedirect) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.orderNumber = _data[\"orderNumber\"];\r\n this.result = _data[\"result\"];\r\n this.transCode = _data[\"transCode\"];\r\n this.userId = _data[\"userId\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): OrderRedirect {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new OrderRedirect();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"orderNumber\"] = this.orderNumber;\r\n data[\"result\"] = this.result;\r\n data[\"transCode\"] = this.transCode;\r\n data[\"userId\"] = this.userId;\r\n return data; \r\n }\r\n}\r\n\r\n/** GMOサーバからリダイレクトで帰ってきたデータ */\r\nexport interface IOrderRedirect {\r\n /** 注文番号 */\r\n orderNumber?: string | undefined;\r\n /** 処理結果 */\r\n result?: string | undefined;\r\n /** トランザクションコード */\r\n transCode?: string | undefined;\r\n /** ユーザーID */\r\n userId?: string | undefined;\r\n}\r\n\r\nexport class IdentityUserOfString implements IIdentityUserOfString {\r\n id?: string | undefined;\r\n userName?: string | undefined;\r\n normalizedUserName?: string | undefined;\r\n email?: string | undefined;\r\n normalizedEmail?: string | undefined;\r\n emailConfirmed?: boolean;\r\n passwordHash?: string | undefined;\r\n securityStamp?: string | undefined;\r\n concurrencyStamp?: string | undefined;\r\n phoneNumber?: string | undefined;\r\n phoneNumberConfirmed?: boolean;\r\n twoFactorEnabled?: boolean;\r\n lockoutEnd?: Date | undefined;\r\n lockoutEnabled?: boolean;\r\n accessFailedCount?: number;\r\n\r\n constructor(data?: IIdentityUserOfString) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.userName = _data[\"userName\"];\r\n this.normalizedUserName = _data[\"normalizedUserName\"];\r\n this.email = _data[\"email\"];\r\n this.normalizedEmail = _data[\"normalizedEmail\"];\r\n this.emailConfirmed = _data[\"emailConfirmed\"];\r\n this.passwordHash = _data[\"passwordHash\"];\r\n this.securityStamp = _data[\"securityStamp\"];\r\n this.concurrencyStamp = _data[\"concurrencyStamp\"];\r\n this.phoneNumber = _data[\"phoneNumber\"];\r\n this.phoneNumberConfirmed = _data[\"phoneNumberConfirmed\"];\r\n this.twoFactorEnabled = _data[\"twoFactorEnabled\"];\r\n this.lockoutEnd = _data[\"lockoutEnd\"] ? new Date(_data[\"lockoutEnd\"].toString()) : undefined;\r\n this.lockoutEnabled = _data[\"lockoutEnabled\"];\r\n this.accessFailedCount = _data[\"accessFailedCount\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): IdentityUserOfString {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new IdentityUserOfString();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"userName\"] = this.userName;\r\n data[\"normalizedUserName\"] = this.normalizedUserName;\r\n data[\"email\"] = this.email;\r\n data[\"normalizedEmail\"] = this.normalizedEmail;\r\n data[\"emailConfirmed\"] = this.emailConfirmed;\r\n data[\"passwordHash\"] = this.passwordHash;\r\n data[\"securityStamp\"] = this.securityStamp;\r\n data[\"concurrencyStamp\"] = this.concurrencyStamp;\r\n data[\"phoneNumber\"] = this.phoneNumber;\r\n data[\"phoneNumberConfirmed\"] = this.phoneNumberConfirmed;\r\n data[\"twoFactorEnabled\"] = this.twoFactorEnabled;\r\n data[\"lockoutEnd\"] = this.lockoutEnd ? this.lockoutEnd.toISOString() : undefined;\r\n data[\"lockoutEnabled\"] = this.lockoutEnabled;\r\n data[\"accessFailedCount\"] = this.accessFailedCount;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IIdentityUserOfString {\r\n id?: string | undefined;\r\n userName?: string | undefined;\r\n normalizedUserName?: string | undefined;\r\n email?: string | undefined;\r\n normalizedEmail?: string | undefined;\r\n emailConfirmed?: boolean;\r\n passwordHash?: string | undefined;\r\n securityStamp?: string | undefined;\r\n concurrencyStamp?: string | undefined;\r\n phoneNumber?: string | undefined;\r\n phoneNumberConfirmed?: boolean;\r\n twoFactorEnabled?: boolean;\r\n lockoutEnd?: Date | undefined;\r\n lockoutEnabled?: boolean;\r\n accessFailedCount?: number;\r\n}\r\n\r\nexport class IdentityUser extends IdentityUserOfString implements IIdentityUser {\r\n\r\n constructor(data?: IIdentityUser) {\r\n super(data);\r\n }\r\n\r\n init(_data?: any) {\r\n super.init(_data);\r\n }\r\n\r\n static fromJS(data: any): IdentityUser {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new IdentityUser();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n super.toJSON(data);\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IIdentityUser extends IIdentityUserOfString {\r\n}\r\n\r\n/** ユーザー情報 */\r\nexport class MAUser extends IdentityUser implements IMAUser {\r\n name?: string | undefined;\r\n passwordChanged?: boolean;\r\n\r\n constructor(data?: IMAUser) {\r\n super(data);\r\n }\r\n\r\n init(_data?: any) {\r\n super.init(_data);\r\n if (_data) {\r\n this.name = _data[\"name\"];\r\n this.passwordChanged = _data[\"passwordChanged\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MAUser {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MAUser();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"name\"] = this.name;\r\n data[\"passwordChanged\"] = this.passwordChanged;\r\n super.toJSON(data);\r\n return data; \r\n }\r\n}\r\n\r\n/** ユーザー情報 */\r\nexport interface IMAUser extends IIdentityUser {\r\n name?: string | undefined;\r\n passwordChanged?: boolean;\r\n}\r\n\r\n/** テナントデータベースモデル */\r\nexport class MATenant implements IMATenant {\r\n /** テナントID */\r\n id?: string;\r\n /** 名称 */\r\n name?: string | undefined;\r\n /** 詳細情報 */\r\n description?: string | undefined;\r\n /** 請求書用の会社コード */\r\n codeForInvoice?: string | undefined;\r\n /** 請求書用の会社名 */\r\n nameForInvoice?: string | undefined;\r\n /** 請求書用のメールアドレス */\r\n mailAddress?: string | undefined;\r\n /** 責任者 */\r\n chargePerson?: string | undefined;\r\n /** 部署名 */\r\n departmentName?: string | undefined;\r\n /** 電話番号 */\r\n phoneNumber?: string | undefined;\r\n /** 郵便番号 */\r\n postalCode?: string | undefined;\r\n /** 都道府県 */\r\n region?: string | undefined;\r\n /** 市区町村 */\r\n address1?: string | undefined;\r\n /** 町名・番地 */\r\n address2?: string | undefined;\r\n /** アパート・マンション・ビル */\r\n address3?: string | undefined;\r\n /** データタイプ */\r\n category?: string | undefined;\r\n /** 備考 */\r\n remarks?: string | undefined;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** ライセンス終了日時(UTC) */\r\n limitUTC?: Date;\r\n /** 最大プロジェクト数 */\r\n maxProject?: number;\r\n /** 請求書を郵送せずEメールで送信 */\r\n invoiceByEmail?: boolean;\r\n\r\n constructor(data?: IMATenant) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.name = _data[\"name\"];\r\n this.description = _data[\"description\"];\r\n this.codeForInvoice = _data[\"codeForInvoice\"];\r\n this.nameForInvoice = _data[\"nameForInvoice\"];\r\n this.mailAddress = _data[\"mailAddress\"];\r\n this.chargePerson = _data[\"chargePerson\"];\r\n this.departmentName = _data[\"departmentName\"];\r\n this.phoneNumber = _data[\"phoneNumber\"];\r\n this.postalCode = _data[\"postalCode\"];\r\n this.region = _data[\"region\"];\r\n this.address1 = _data[\"address1\"];\r\n this.address2 = _data[\"address2\"];\r\n this.address3 = _data[\"address3\"];\r\n this.category = _data[\"category\"];\r\n this.remarks = _data[\"remarks\"];\r\n this.createdUTC = _data[\"createdUTC\"] ? new Date(_data[\"createdUTC\"].toString()) : undefined;\r\n this.updatedUTC = _data[\"updatedUTC\"] ? new Date(_data[\"updatedUTC\"].toString()) : undefined;\r\n this.limitUTC = _data[\"limitUTC\"] ? new Date(_data[\"limitUTC\"].toString()) : undefined;\r\n this.maxProject = _data[\"maxProject\"];\r\n this.invoiceByEmail = _data[\"invoiceByEmail\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MATenant {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MATenant();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"name\"] = this.name;\r\n data[\"description\"] = this.description;\r\n data[\"codeForInvoice\"] = this.codeForInvoice;\r\n data[\"nameForInvoice\"] = this.nameForInvoice;\r\n data[\"mailAddress\"] = this.mailAddress;\r\n data[\"chargePerson\"] = this.chargePerson;\r\n data[\"departmentName\"] = this.departmentName;\r\n data[\"phoneNumber\"] = this.phoneNumber;\r\n data[\"postalCode\"] = this.postalCode;\r\n data[\"region\"] = this.region;\r\n data[\"address1\"] = this.address1;\r\n data[\"address2\"] = this.address2;\r\n data[\"address3\"] = this.address3;\r\n data[\"category\"] = this.category;\r\n data[\"remarks\"] = this.remarks;\r\n data[\"createdUTC\"] = this.createdUTC ? this.createdUTC.toISOString() : undefined;\r\n data[\"updatedUTC\"] = this.updatedUTC ? this.updatedUTC.toISOString() : undefined;\r\n data[\"limitUTC\"] = this.limitUTC ? this.limitUTC.toISOString() : undefined;\r\n data[\"maxProject\"] = this.maxProject;\r\n data[\"invoiceByEmail\"] = this.invoiceByEmail;\r\n return data; \r\n }\r\n}\r\n\r\n/** テナントデータベースモデル */\r\nexport interface IMATenant {\r\n /** テナントID */\r\n id?: string;\r\n /** 名称 */\r\n name?: string | undefined;\r\n /** 詳細情報 */\r\n description?: string | undefined;\r\n /** 請求書用の会社コード */\r\n codeForInvoice?: string | undefined;\r\n /** 請求書用の会社名 */\r\n nameForInvoice?: string | undefined;\r\n /** 請求書用のメールアドレス */\r\n mailAddress?: string | undefined;\r\n /** 責任者 */\r\n chargePerson?: string | undefined;\r\n /** 部署名 */\r\n departmentName?: string | undefined;\r\n /** 電話番号 */\r\n phoneNumber?: string | undefined;\r\n /** 郵便番号 */\r\n postalCode?: string | undefined;\r\n /** 都道府県 */\r\n region?: string | undefined;\r\n /** 市区町村 */\r\n address1?: string | undefined;\r\n /** 町名・番地 */\r\n address2?: string | undefined;\r\n /** アパート・マンション・ビル */\r\n address3?: string | undefined;\r\n /** データタイプ */\r\n category?: string | undefined;\r\n /** 備考 */\r\n remarks?: string | undefined;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** ライセンス終了日時(UTC) */\r\n limitUTC?: Date;\r\n /** 最大プロジェクト数 */\r\n maxProject?: number;\r\n /** 請求書を郵送せずEメールで送信 */\r\n invoiceByEmail?: boolean;\r\n}\r\n\r\nexport class StartEndDate implements IStartEndDate {\r\n startUTC?: Date;\r\n endUTC?: Date;\r\n\r\n constructor(data?: IStartEndDate) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.startUTC = _data[\"startUTC\"] ? new Date(_data[\"startUTC\"].toString()) : undefined;\r\n this.endUTC = _data[\"endUTC\"] ? new Date(_data[\"endUTC\"].toString()) : undefined;\r\n }\r\n }\r\n\r\n static fromJS(data: any): StartEndDate {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new StartEndDate();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"startUTC\"] = this.startUTC ? this.startUTC.toISOString() : undefined;\r\n data[\"endUTC\"] = this.endUTC ? this.endUTC.toISOString() : undefined;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IStartEndDate {\r\n startUTC?: Date;\r\n endUTC?: Date;\r\n}\r\n\r\n/** 注文登録情報 */\r\nexport class PostOrderInfo implements IPostOrderInfo {\r\n /** ライセンス開始日 */\r\n startUTC?: Date;\r\n /** ライセンス終了日 */\r\n endUTC?: Date;\r\n /** プロジェクト数 */\r\n projectCount?: number;\r\n /** 価格 */\r\n price?: number;\r\n /** ライセンス期間 */\r\n timeSpanMonth?: number;\r\n\r\n constructor(data?: IPostOrderInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.startUTC = _data[\"startUTC\"] ? new Date(_data[\"startUTC\"].toString()) : undefined;\r\n this.endUTC = _data[\"endUTC\"] ? new Date(_data[\"endUTC\"].toString()) : undefined;\r\n this.projectCount = _data[\"projectCount\"];\r\n this.price = _data[\"price\"];\r\n this.timeSpanMonth = _data[\"timeSpanMonth\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): PostOrderInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PostOrderInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"startUTC\"] = this.startUTC ? this.startUTC.toISOString() : undefined;\r\n data[\"endUTC\"] = this.endUTC ? this.endUTC.toISOString() : undefined;\r\n data[\"projectCount\"] = this.projectCount;\r\n data[\"price\"] = this.price;\r\n data[\"timeSpanMonth\"] = this.timeSpanMonth;\r\n return data; \r\n }\r\n}\r\n\r\n/** 注文登録情報 */\r\nexport interface IPostOrderInfo {\r\n /** ライセンス開始日 */\r\n startUTC?: Date;\r\n /** ライセンス終了日 */\r\n endUTC?: Date;\r\n /** プロジェクト数 */\r\n projectCount?: number;\r\n /** 価格 */\r\n price?: number;\r\n /** ライセンス期間 */\r\n timeSpanMonth?: number;\r\n}\r\n\r\nexport class PutTenantLicenseInfo implements IPutTenantLicenseInfo {\r\n maxProject?: number;\r\n /** ライセンス期限日 */\r\n limitUTC?: Date;\r\n\r\n constructor(data?: IPutTenantLicenseInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.maxProject = _data[\"maxProject\"];\r\n this.limitUTC = _data[\"limitUTC\"] ? new Date(_data[\"limitUTC\"].toString()) : undefined;\r\n }\r\n }\r\n\r\n static fromJS(data: any): PutTenantLicenseInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new PutTenantLicenseInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"maxProject\"] = this.maxProject;\r\n data[\"limitUTC\"] = this.limitUTC ? this.limitUTC.toISOString() : undefined;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IPutTenantLicenseInfo {\r\n maxProject?: number;\r\n /** ライセンス期限日 */\r\n limitUTC?: Date;\r\n}\r\n\r\n/** 朝礼JSONをテンプレートとして保存しておくためのデータベースモデル */\r\nexport class MATemplate implements IMATemplate {\r\n /** テンプレートID */\r\n id?: string;\r\n /** テンプレート名 */\r\n name?: string | undefined;\r\n /** 詳細説明 */\r\n description?: string | undefined;\r\n /** デフォルトのテンプレートかどうかのフラグ */\r\n isDefault?: boolean;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** 並び順 */\r\n orderNo?: number;\r\n /** JSONデータ */\r\n jsonData?: string | undefined;\r\n /** テナントへの参照 */\r\n tenantId?: string | undefined;\r\n\r\n constructor(data?: IMATemplate) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.id = _data[\"id\"];\r\n this.name = _data[\"name\"];\r\n this.description = _data[\"description\"];\r\n this.isDefault = _data[\"isDefault\"];\r\n this.createdUTC = _data[\"createdUTC\"] ? new Date(_data[\"createdUTC\"].toString()) : undefined;\r\n this.updatedUTC = _data[\"updatedUTC\"] ? new Date(_data[\"updatedUTC\"].toString()) : undefined;\r\n this.orderNo = _data[\"orderNo\"];\r\n this.jsonData = _data[\"jsonData\"];\r\n this.tenantId = _data[\"tenantId\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): MATemplate {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new MATemplate();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"id\"] = this.id;\r\n data[\"name\"] = this.name;\r\n data[\"description\"] = this.description;\r\n data[\"isDefault\"] = this.isDefault;\r\n data[\"createdUTC\"] = this.createdUTC ? this.createdUTC.toISOString() : undefined;\r\n data[\"updatedUTC\"] = this.updatedUTC ? this.updatedUTC.toISOString() : undefined;\r\n data[\"orderNo\"] = this.orderNo;\r\n data[\"jsonData\"] = this.jsonData;\r\n data[\"tenantId\"] = this.tenantId;\r\n return data; \r\n }\r\n}\r\n\r\n/** 朝礼JSONをテンプレートとして保存しておくためのデータベースモデル */\r\nexport interface IMATemplate {\r\n /** テンプレートID */\r\n id?: string;\r\n /** テンプレート名 */\r\n name?: string | undefined;\r\n /** 詳細説明 */\r\n description?: string | undefined;\r\n /** デフォルトのテンプレートかどうかのフラグ */\r\n isDefault?: boolean;\r\n /** 作成日時(UTC) */\r\n createdUTC?: Date;\r\n /** 修正日時(UTC) */\r\n updatedUTC?: Date;\r\n /** 並び順 */\r\n orderNo?: number;\r\n /** JSONデータ */\r\n jsonData?: string | undefined;\r\n /** テナントへの参照 */\r\n tenantId?: string | undefined;\r\n}\r\n\r\nexport class TenantInfo implements ITenantInfo {\r\n /** テナント情報 */\r\n tenant?: MATenant | undefined;\r\n /** アクティブなプロジェクト数 */\r\n active?: number;\r\n /** 会社管理者かどうかのフラグ */\r\n admin?: boolean;\r\n /** 大林組専用かどうかのフラグ */\r\n obayashi?: boolean;\r\n\r\n constructor(data?: ITenantInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.tenant = _data[\"tenant\"] ? MATenant.fromJS(_data[\"tenant\"]) : undefined;\r\n this.active = _data[\"active\"];\r\n this.admin = _data[\"admin\"];\r\n this.obayashi = _data[\"obayashi\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): TenantInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new TenantInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"tenant\"] = this.tenant ? this.tenant.toJSON() : undefined;\r\n data[\"active\"] = this.active;\r\n data[\"admin\"] = this.admin;\r\n data[\"obayashi\"] = this.obayashi;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ITenantInfo {\r\n /** テナント情報 */\r\n tenant?: MATenant | undefined;\r\n /** アクティブなプロジェクト数 */\r\n active?: number;\r\n /** 会社管理者かどうかのフラグ */\r\n admin?: boolean;\r\n /** 大林組専用かどうかのフラグ */\r\n obayashi?: boolean;\r\n}\r\n\r\nexport class ProjectInfo implements IProjectInfo {\r\n /** プロジェクト情報 */\r\n project?: MAProject | undefined;\r\n /** プロジェクトリーダー情報 */\r\n projectAdmins?: MAUser[] | undefined;\r\n /** 会社管理者情報 */\r\n tenantAdmins?: MAUser[] | undefined;\r\n\r\n constructor(data?: IProjectInfo) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.project = _data[\"project\"] ? MAProject.fromJS(_data[\"project\"]) : undefined;\r\n if (Array.isArray(_data[\"projectAdmins\"])) {\r\n this.projectAdmins = [] as any;\r\n for (let item of _data[\"projectAdmins\"])\r\n this.projectAdmins!.push(MAUser.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"tenantAdmins\"])) {\r\n this.tenantAdmins = [] as any;\r\n for (let item of _data[\"tenantAdmins\"])\r\n this.tenantAdmins!.push(MAUser.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ProjectInfo {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ProjectInfo();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"project\"] = this.project ? this.project.toJSON() : undefined;\r\n if (Array.isArray(this.projectAdmins)) {\r\n data[\"projectAdmins\"] = [];\r\n for (let item of this.projectAdmins)\r\n data[\"projectAdmins\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.tenantAdmins)) {\r\n data[\"tenantAdmins\"] = [];\r\n for (let item of this.tenantAdmins)\r\n data[\"tenantAdmins\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IProjectInfo {\r\n /** プロジェクト情報 */\r\n project?: MAProject | undefined;\r\n /** プロジェクトリーダー情報 */\r\n projectAdmins?: MAUser[] | undefined;\r\n /** 会社管理者情報 */\r\n tenantAdmins?: MAUser[] | undefined;\r\n}\r\n\r\n/** プロジェクト管理者情報を取得したときの返り値 */\r\nexport class ProjectAdminResult implements IProjectAdminResult {\r\n tenantAdmin?: MAUser[] | undefined;\r\n projectAdmin?: MAUser[] | undefined;\r\n tenantUser?: MAUser[] | undefined;\r\n\r\n constructor(data?: IProjectAdminResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n if (Array.isArray(_data[\"tenantAdmin\"])) {\r\n this.tenantAdmin = [] as any;\r\n for (let item of _data[\"tenantAdmin\"])\r\n this.tenantAdmin!.push(MAUser.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"projectAdmin\"])) {\r\n this.projectAdmin = [] as any;\r\n for (let item of _data[\"projectAdmin\"])\r\n this.projectAdmin!.push(MAUser.fromJS(item));\r\n }\r\n if (Array.isArray(_data[\"tenantUser\"])) {\r\n this.tenantUser = [] as any;\r\n for (let item of _data[\"tenantUser\"])\r\n this.tenantUser!.push(MAUser.fromJS(item));\r\n }\r\n }\r\n }\r\n\r\n static fromJS(data: any): ProjectAdminResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new ProjectAdminResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n if (Array.isArray(this.tenantAdmin)) {\r\n data[\"tenantAdmin\"] = [];\r\n for (let item of this.tenantAdmin)\r\n data[\"tenantAdmin\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.projectAdmin)) {\r\n data[\"projectAdmin\"] = [];\r\n for (let item of this.projectAdmin)\r\n data[\"projectAdmin\"].push(item.toJSON());\r\n }\r\n if (Array.isArray(this.tenantUser)) {\r\n data[\"tenantUser\"] = [];\r\n for (let item of this.tenantUser)\r\n data[\"tenantUser\"].push(item.toJSON());\r\n }\r\n return data; \r\n }\r\n}\r\n\r\n/** プロジェクト管理者情報を取得したときの返り値 */\r\nexport interface IProjectAdminResult {\r\n tenantAdmin?: MAUser[] | undefined;\r\n projectAdmin?: MAUser[] | undefined;\r\n tenantUser?: MAUser[] | undefined;\r\n}\r\n\r\nexport class InviteUserResult implements IInviteUserResult {\r\n user?: MAUser | undefined;\r\n isExistUser?: boolean;\r\n isTenantUser?: boolean;\r\n isTenantAdmin?: boolean;\r\n isProjectAdmin?: boolean;\r\n emailValidateUrl?: string | undefined;\r\n\r\n constructor(data?: IInviteUserResult) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.user = _data[\"user\"] ? MAUser.fromJS(_data[\"user\"]) : undefined;\r\n this.isExistUser = _data[\"isExistUser\"];\r\n this.isTenantUser = _data[\"isTenantUser\"];\r\n this.isTenantAdmin = _data[\"isTenantAdmin\"];\r\n this.isProjectAdmin = _data[\"isProjectAdmin\"];\r\n this.emailValidateUrl = _data[\"emailValidateUrl\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): InviteUserResult {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new InviteUserResult();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"user\"] = this.user ? this.user.toJSON() : undefined;\r\n data[\"isExistUser\"] = this.isExistUser;\r\n data[\"isTenantUser\"] = this.isTenantUser;\r\n data[\"isTenantAdmin\"] = this.isTenantAdmin;\r\n data[\"isProjectAdmin\"] = this.isProjectAdmin;\r\n data[\"emailValidateUrl\"] = this.emailValidateUrl;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IInviteUserResult {\r\n user?: MAUser | undefined;\r\n isExistUser?: boolean;\r\n isTenantUser?: boolean;\r\n isTenantAdmin?: boolean;\r\n isProjectAdmin?: boolean;\r\n emailValidateUrl?: string | undefined;\r\n}\r\n\r\nexport class InviteUser implements IInviteUser {\r\n name?: string | undefined;\r\n email?: string | undefined;\r\n\r\n constructor(data?: IInviteUser) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.name = _data[\"name\"];\r\n this.email = _data[\"email\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): InviteUser {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new InviteUser();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"name\"] = this.name;\r\n data[\"email\"] = this.email;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface IInviteUser {\r\n name?: string | undefined;\r\n email?: string | undefined;\r\n}\r\n\r\nexport class SetProjectAdmin implements ISetProjectAdmin {\r\n userId?: string | undefined;\r\n toAdmin?: boolean;\r\n\r\n constructor(data?: ISetProjectAdmin) {\r\n if (data) {\r\n for (var property in data) {\r\n if (data.hasOwnProperty(property))\r\n (this)[property] = (data)[property];\r\n }\r\n }\r\n }\r\n\r\n init(_data?: any) {\r\n if (_data) {\r\n this.userId = _data[\"userId\"];\r\n this.toAdmin = _data[\"toAdmin\"];\r\n }\r\n }\r\n\r\n static fromJS(data: any): SetProjectAdmin {\r\n data = typeof data === 'object' ? data : {};\r\n let result = new SetProjectAdmin();\r\n result.init(data);\r\n return result;\r\n }\r\n\r\n toJSON(data?: any) {\r\n data = typeof data === 'object' ? data : {};\r\n data[\"userId\"] = this.userId;\r\n data[\"toAdmin\"] = this.toAdmin;\r\n return data; \r\n }\r\n}\r\n\r\nexport interface ISetProjectAdmin {\r\n userId?: string | undefined;\r\n toAdmin?: boolean;\r\n}\r\n\r\nexport class ApiException extends Error {\r\n message: string;\r\n status: number;\r\n response: string;\r\n headers: { [key: string]: any; };\r\n result: any;\r\n\r\n constructor(message: string, status: number, response: string, headers: { [key: string]: any; }, result: any) {\r\n super();\r\n\r\n this.message = message;\r\n this.status = status;\r\n this.response = response;\r\n this.headers = headers;\r\n this.result = result;\r\n }\r\n\r\n protected isApiException = true;\r\n\r\n static isApiException(obj: any): obj is ApiException {\r\n return obj.isApiException === true;\r\n }\r\n}\r\n\r\nfunction throwException(message: string, status: number, response: string, headers: { [key: string]: any; }, result?: any): any {\r\n throw new ApiException(message, status, response, headers, result);\r\n}\r\n\r\nfunction isAxiosError(obj: any | undefined): obj is AxiosError {\r\n return obj && obj.isAxiosError === true;\r\n}","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\n\r\nexport enum ActionType {\r\n EMPTY = \"EMPTY\",\r\n\r\n DEL_PROJECT = \"DEL_PROJECT\",\r\n CONFIRM_SAVE = \"CONFIRM_SAVE\",\r\n //CONFIRM_OK = \"CONFIRM_OK\",\r\n CHANGE_CONTENTS_IN_CAL = \"CHANGE_CONTENTS_IN_CAL\",\r\n CONFIRM_DUPULICATE = \"CONFIRM_DUPULICATE\",\r\n\r\n CONFIRM_DEL_PROJECT_IN_TENANT = \"CONFIRM_DEL_PROJECT_IN_TENANT\",\r\n CONFIRM_INVALIDATE_IN_TENANT = \"CONFIRM_INVALIDATE_IN_TENANT\",\r\n EDIT_PROJECT_IN_TENANT = \"EDIT_PROJECT_IN_TENANT\",\r\n SET_PROJECT_ADMIN_IN_TENANT = \"SET_PROJECT_ADMIN_IN_TENANT\",\r\n VALIDATE_PROJECT_IN_TENANT = \"VALIDATE_PROJECT_IN_TENANT\",\r\n\r\n \r\n CONTENT_ITEM_LOAD_START = \"CONTENT_ITEM_LOAD_START\",\r\n CONTENT_ITEM_LOAD_END = \"CONTENT_ITEM_LOAD_END\",\r\n\r\n HTTP_401_ERROR = \"HTTP_401_ERROR\",\r\n}\r\nexport type ActionMessage = {\r\n type: ActionType;\r\n value?: string;\r\n value2?: string;\r\n};\r\n\r\nexport const emptyAction: ActionMessage = { type: ActionType.EMPTY };\r\nconst ActionSlice = createSlice({\r\n name: \"action\",\r\n initialState: {\r\n action: emptyAction,\r\n loading:false,\r\n },\r\n reducers: {\r\n setLoading:(state, action: PayloadAction) => {\r\n state.loading = action.payload;\r\n },\r\n doAction: (state, action: PayloadAction) => {\r\n state.action = action.payload;\r\n },\r\n clearAction:(state,action)=>{\r\n state.action = emptyAction;\r\n }\r\n },\r\n});\r\n\r\nexport default ActionSlice;\r\n","\r\nimport { SERVER_URL ,AppNameForOIDC} from '../Constants';\r\n\r\nexport const ApplicationName = AppNameForOIDC;\r\n\r\nexport const QueryParameterNames = {\r\n ReturnUrl: 'returnUrl',\r\n Message: 'message'\r\n};\r\n\r\nexport const LogoutActions = {\r\n LogoutCallback: 'logout-callback',\r\n Logout: 'logout',\r\n LoggedOut: 'logged-out'\r\n};\r\n\r\nexport const LoginActions = {\r\n Login: 'login',\r\n LoginCallback: 'login-callback',\r\n LoginFailed: 'login-failed',\r\n Profile: 'profile',\r\n Register: 'register'\r\n};\r\n\r\nconst prefix = '/authentication';\r\n\r\nexport const ApplicationPaths = {\r\n DefaultLoginRedirectPath: '/',\r\n ApiAuthorizationClientConfigurationUrl: `${SERVER_URL}/_configuration/${AppNameForOIDC}`,\r\n ApiAuthorizationPrefix: prefix,\r\n Login: `${prefix}/${LoginActions.Login}`,\r\n LoginFailed: `${prefix}/${LoginActions.LoginFailed}`,\r\n LoginCallback: `${prefix}/${LoginActions.LoginCallback}`,\r\n Register: `${prefix}/${LoginActions.Register}`,\r\n Profile: `${prefix}/${LoginActions.Profile}`,\r\n LogOut: `${prefix}/${LogoutActions.Logout}`,\r\n LoggedOut: `${prefix}/${LogoutActions.LoggedOut}`,\r\n LogOutCallback: `${prefix}/${LogoutActions.LogoutCallback}`,\r\n IdentityRegisterPath: '/Identity/Account/Register',\r\n IdentityManagePath: '/Identity/Account/Manage'\r\n};\r\n","import { UserManager, WebStorageStateStore } from 'oidc-client';\r\nimport { ApplicationPaths, ApplicationName } from './ApiAuthorizationConstants';\r\n\r\nexport class AuthorizeService {\r\n _callbacks = [];\r\n _nextSubscriptionId = 0;\r\n _user = null;\r\n _isAuthenticated = false;\r\n\r\n // By default pop ups are disabled because they don't work properly on Edge.\r\n // If you want to enable pop up authentication simply set this flag to false.\r\n _popUpDisabled = true;\r\n\r\n async isAuthenticated() {\r\n const user = await this.getUser();\r\n return !!user;\r\n }\r\n\r\n async getUser() {\r\n if (this._user && this._user.profile) {\r\n return this._user.profile;\r\n }\r\n\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.profile;\r\n }\r\n\r\n async getAccessToken() {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.getUser();\r\n return user && user.access_token;\r\n }\r\n\r\n // We try to authenticate the user in three different ways:\r\n // 1) We try to see if we can authenticate the user silently. This happens\r\n // when the user is already logged in on the IdP and is done using a hidden iframe\r\n // on the client.\r\n // 2) We try to authenticate the user using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 3) If the two methods above fail, we redirect the browser to the IdP to perform a traditional\r\n // redirect flow.\r\n async signIn(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const silentUser = await this.userManager.signinSilent(this.createArguments());\r\n this.updateState(silentUser);\r\n return this.success(state);\r\n } catch (silentError) {\r\n // User might not be authenticated, fallback to popup authentication\r\n console.log(\"Silent authentication error: \", silentError);\r\n\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n const popUpUser = await this.userManager.signinPopup(this.createArguments());\r\n this.updateState(popUpUser);\r\n return this.success(state);\r\n } catch (popUpError) {\r\n if (popUpError.message === \"Popup window closed\") {\r\n // The user explicitly cancelled the login action by closing an opened popup.\r\n return this.error(\"The user closed the window.\");\r\n } else if (!this._popUpDisabled) {\r\n console.log(\"Popup authentication error: \", popUpError);\r\n }\r\n\r\n // PopUps might be blocked by the user, fallback to redirect\r\n try {\r\n await this.userManager.signinRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectError) {\r\n console.log(\"Redirect authentication error: \", redirectError);\r\n return this.error(redirectError);\r\n }\r\n }\r\n }\r\n }\r\n\r\n async completeSignIn(url) {\r\n try {\r\n await this.ensureUserManagerInitialized();\r\n const user = await this.userManager.signinCallback(url);\r\n this.updateState(user);\r\n return this.success(user && user.state);\r\n } catch (error) {\r\n console.log('There was an error signing in: ', error);\r\n return this.error('There was an error signing in.');\r\n }\r\n }\r\n\r\n // We try to sign out the user in two different ways:\r\n // 1) We try to do a sign-out using a PopUp Window. This might fail if there is a\r\n // Pop-Up blocker or the user has disabled PopUps.\r\n // 2) If the method above fails, we redirect the browser to the IdP to perform a traditional\r\n // post logout redirect flow.\r\n async signOut(state) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n if (this._popUpDisabled) {\r\n throw new Error('Popup disabled. Change \\'AuthorizeService.js:AuthorizeService._popupDisabled\\' to false to enable it.')\r\n }\r\n\r\n await this.userManager.signoutPopup(this.createArguments());\r\n this.updateState(undefined);\r\n return this.success(state);\r\n } catch (popupSignOutError) {\r\n console.log(\"Popup signout error: \", popupSignOutError);\r\n try {\r\n await this.userManager.signoutRedirect(this.createArguments(state));\r\n return this.redirect();\r\n } catch (redirectSignOutError) {\r\n console.log(\"Redirect signout error: \", redirectSignOutError);\r\n return this.error(redirectSignOutError);\r\n }\r\n }\r\n }\r\n\r\n async completeSignOut(url) {\r\n await this.ensureUserManagerInitialized();\r\n try {\r\n const response = await this.userManager.signoutCallback(url);\r\n this.updateState(null);\r\n return this.success(response && response.data);\r\n } catch (error) {\r\n console.log(`There was an error trying to log out '${error}'.`);\r\n return this.error(error);\r\n }\r\n }\r\n\r\n updateState(user) {\r\n this._user = user;\r\n this._isAuthenticated = !!this._user;\r\n this.notifySubscribers();\r\n }\r\n\r\n subscribe(callback) {\r\n this._callbacks.push({ callback, subscription: this._nextSubscriptionId++ });\r\n return this._nextSubscriptionId - 1;\r\n }\r\n\r\n unsubscribe(subscriptionId) {\r\n const subscriptionIndex = this._callbacks\r\n .map((element, index) => element.subscription === subscriptionId ? { found: true, index } : { found: false })\r\n .filter(element => element.found === true);\r\n if (subscriptionIndex.length !== 1) {\r\n throw new Error(`Found an invalid number of subscriptions ${subscriptionIndex.length}`);\r\n }\r\n\r\n this._callbacks.splice(subscriptionIndex[0].index, 1);\r\n }\r\n\r\n notifySubscribers() {\r\n for (let i = 0; i < this._callbacks.length; i++) {\r\n const callback = this._callbacks[i].callback;\r\n callback();\r\n }\r\n }\r\n\r\n createArguments(state) {\r\n return { useReplaceToNavigate: true, data: state };\r\n }\r\n\r\n error(message) {\r\n return { status: AuthenticationResultStatus.Fail, message };\r\n }\r\n\r\n success(state) {\r\n return { status: AuthenticationResultStatus.Success, state };\r\n }\r\n\r\n redirect() {\r\n return { status: AuthenticationResultStatus.Redirect };\r\n }\r\n\r\n async ensureUserManagerInitialized() {\r\n if (this.userManager !== undefined) {\r\n return;\r\n }\r\n\r\n let response = await fetch(ApplicationPaths.ApiAuthorizationClientConfigurationUrl);\r\n if (!response.ok) {\r\n throw new Error(`Could not load settings for '${ApplicationName}'`);\r\n }\r\n\r\n let settings = await response.json();\r\n settings.automaticSilentRenew =true;\r\n settings.includeIdTokenInSilentRenew =true;\r\n settings.userStore = new WebStorageStateStore({\r\n prefix: ApplicationName\r\n });\r\n\r\n this.userManager = new UserManager(settings);\r\n\r\n this.userManager.events.addUserSignedOut(async () => {\r\n await this.userManager.removeUser();\r\n this.updateState(undefined);\r\n });\r\n }\r\n\r\n static get instance() { return authService }\r\n}\r\n\r\nconst authService = new AuthorizeService();\r\n\r\nexport default authService;\r\n\r\nexport const AuthenticationResultStatus = {\r\n Redirect: 'redirect',\r\n Success: 'success',\r\n Fail: 'fail'\r\n};\r\n","\r\nimport authService from '../openid/AuthorizeService';\r\n\r\nimport axios from 'axios';\r\nimport { Dispatch } from 'react';\r\nimport ActionSlice, { ActionType } from '../misc/ActionSlice';\r\n\r\n//JWTの認証情報を付加するAxisインスタンスを生成する\r\nexport async function getAuthedAxisInstance(dispatch: Dispatch) {\r\n var instance = axios.create();\r\n var token = await authService.getAccessToken();\r\n dispatch(ActionSlice.actions.setLoading(true));\r\n instance.interceptors.request.use((config) => {\r\n if (token) {\r\n config.headers.Authorization = `Bearer ${token}`\r\n return config\r\n }\r\n return config\r\n }, function (error) {\r\n return Promise.reject(error)\r\n });\r\n\r\n instance.interceptors.response.use((response) => {\r\n dispatch(ActionSlice.actions.setLoading(false));\r\n return response;\r\n }, (error) => {\r\n dispatch(ActionSlice.actions.setLoading(false));\r\n if (error.response.status === 401) {\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.HTTP_401_ERROR }));\r\n }\r\n return error;\r\n });\r\n\r\n return instance;\r\n}","import { createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { CalendarV2Client, MAContents, MAFile, MARollCall, MorningAssemblyJson } from \"./NetworkClient\";\r\nimport { SERVER_URL } from \"../Constants\";\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\n\r\n//コンテンツ検索\r\nexport const findContentsSv = createAsyncThunk void }>(\r\n \"calendar/findContents\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n\r\n var re = await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).findContents(arg.projectId, arg.start, arg.end);\r\n arg.callback(true, re);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//コンテンツデータ取得\r\nexport const getContentsDataSv = createAsyncThunk void }>(\r\n \"calendar/getContentsData\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var re = await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getContentsData(arg.contentsId);\r\n arg.callback(true, re);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//コンテンツデータ登録\r\nexport const postContentsSv = createAsyncThunk void }>(\r\n \"calendar/postContents\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var re = await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).postContents(arg.projectId,arg.data);\r\n arg.callback(true, re);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//コンテンツ削除\r\nexport const deleteContentsSv = createAsyncThunk void }>(\r\n \"calendar/deleteContents\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).deleteContents(arg.contentsId);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//コンテンツ内のファイル一覧取得\r\nexport const getContentsFilesSv = createAsyncThunk void }>(\r\n \"calendar/getContentsFiles\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var re = await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getContentsFiles(arg.contentsId);\r\n arg.callback(true, re);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//コンテンツ内の参加確認一覧取得\r\nexport const getContentsRollCallsSv = createAsyncThunk void }>(\r\n \"calendar/getContentsRollCalls\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var re = await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getContentsRollCalls(arg.contentsId);\r\n arg.callback(true, re);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//Excelデータを生成\r\nexport const getExcelDataSv = createAsyncThunk void }>(\r\n \"calendar/excel\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var url = await (new CalendarV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).excel(arg.contentsId);\r\n arg.callback(true,url);\r\n return url;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,\"\");\r\n throw err;\r\n }\r\n }\r\n );","import { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport {\r\n ContentsV2Client, MAFile, MAProject, MorningAssemblyJson, PostPhotoInfo, UploadInfoResult,MACategoryJson, CopyPhotoInfo\r\n} from './NetworkClient';\r\nimport { ItemTypeKey, SERVER_URL } from '../Constants';\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\nimport { Dispatch } from 'react';\r\nimport { BlockBlobClient } from '@azure/storage-blob';\r\n\r\n//カテゴリJson取得\r\nexport const getCategoriesSv = createAsyncThunk void }>(\r\n \"tenants/getCategories\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var categories = await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getCategories(arg.tenantId);\r\n arg.callback(true,categories);\r\n return categories;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n/**\r\n * サーバへファイルをアップロードして、コンテンツに結びつけて登録する\r\n * @param file 登録するファイル\r\n * @param contentsId 朝礼ID\r\n * @param key アップロードするファイルに結びついている朝礼項目の種類\r\n * @param uuid アップロードするファイルに結びついている朝礼項目ID\r\n * @param dispatch ディスパッチ処理\r\n */\r\nexport const postFile =\r\n (file: File,\r\n contentsId: string,\r\n key: ItemTypeKey,\r\n uuid: string,\r\n sizeType:number,\r\n dispatch: Dispatch): Promise<{ ok: boolean, file?: MAFile }> => {\r\n return new Promise((resolve, reject) => {\r\n dispatch(getUploadInfoSv({\r\n callback: (ok, upinfo) => {\r\n if (!ok || !upinfo) {\r\n resolve({ ok: false });\r\n return;\r\n }\r\n try {\r\n var url =\"\"+ upinfo.uploadUrl + \"?\" + upinfo.sasToken;\r\n const blob = new BlockBlobClient(url);\r\n const promise = blob.uploadData(file);\r\n Promise.all([promise]).then(() => {\r\n var photoInfo = new PostPhotoInfo();\r\n photoInfo.fileId = upinfo.fileId;\r\n photoInfo.fileName = file.name;\r\n photoInfo.kind = key;\r\n photoInfo.userName = \"browser\";\r\n photoInfo.uuid = uuid;\r\n photoInfo.sizeType = sizeType;\r\n dispatch(postContentPhotoSv({\r\n contentsId, postInfo: photoInfo, callback: (ok, file) => {\r\n if (file) {\r\n resolve({ ok: true, file: file });\r\n } else {\r\n resolve({ ok: false });\r\n }\r\n }\r\n }));\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n resolve({ ok: false });\r\n }\r\n }\r\n }));\r\n });\r\n }\r\n\r\n//コンテンツデータ取得\r\nexport const getProjectByContentsSv = createAsyncThunk void }>(\r\n \"contents/getProjectByContents\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n var re = await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getProjectByContents(arg.contentsId);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//アップロード先URLを取得\r\nexport const getUploadInfoSv = createAsyncThunk void }>(\r\n \"contents/getUploadInfo\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var re = await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getUploadInfo();\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//アップロードしたファイルを朝礼へ結びつけ\r\nexport const postContentPhotoSv = createAsyncThunk void }>(\r\n \"contents/postContentPhoto\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var re = await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).postContentPhoto(arg.contentsId, arg.postInfo);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//朝礼データを編集\r\nexport const putContentsSv = createAsyncThunk void }>(\r\n \"contents/contentsPut\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).put(arg.id, arg.data);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//過去の写真一覧を取得\r\nexport const findPhotosSv = createAsyncThunk void }>(\r\n \"contents/findPhotos\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var re = await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).findPhotos(arg.contentsId);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//サーバにあるファイルをコピーして指定の朝礼へ関連付ける\r\nexport const copyFileToContentPhotoSv = createAsyncThunk void }>(\r\n \"contents/copyFileToContentPhoto\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var info = new CopyPhotoInfo();\r\n info.srcFileId = arg.srcFileId;\r\n info.uuid = arg.uuid;\r\n var re = await (new ContentsV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).copyFileToContentPhoto(arg.contentsId,info);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n","\r\n\r\nvar revokeObjectURL = (window.URL || window.webkitURL).revokeObjectURL;\r\n\r\ntype FILE_TYPE = {uuid:string,file:any,objectUrl:string};\r\n\r\nclass LocalFiles{\r\n files:FILE_TYPE[] = [];\r\n\r\n getFile(uuid:string):FILE_TYPE|undefined{\r\n return this.files.find((f)=>{return f.uuid === uuid})\r\n }\r\n\r\n getObjectUrl(uuid:string):string\r\n {\r\n const f = this.getFile(uuid);\r\n return f?.objectUrl ?? \"\";\r\n }\r\n getFileObject(uuid:string):any{\r\n const f = this.getFile(uuid);\r\n return f?.file;\r\n }\r\n\r\n //ファイル追加\r\n addFile(file:FILE_TYPE){\r\n const uuid = file.uuid;\r\n const f1 = this.files.find((f)=>{return f.uuid === uuid});\r\n if(f1){\r\n this.files = this.files.map((f2)=>{return f2.uuid !== uuid ? f2 : file});\r\n }else{\r\n this.files = [...this.files,file];\r\n }\r\n }\r\n\r\n //ファイル削除\r\n removeFile(uuid:string){\r\n const f1 = this.files.find((f)=>{return f.uuid === uuid});\r\n if(f1){\r\n if(f1.file && f1.objectUrl){\r\n revokeObjectURL(f1.objectUrl);\r\n }\r\n this.files = this.files.filter((f2)=>{return f2.uuid !== uuid});\r\n }\r\n }\r\n\r\n //すべてのファイルを削除\r\n clearFiles(){\r\n this.files.forEach((f)=>{\r\n if(f.file && f.objectUrl){\r\n revokeObjectURL(f.objectUrl);\r\n }\r\n });\r\n this.files = [];\r\n }\r\n}\r\n\r\nconst localFiles = new LocalFiles();\r\n\r\nexport default localFiles;","\r\nimport React from \"react\";\r\n\r\nimport { Toolbar, IconButton, Hidden } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n DrawerWidth,\r\n ToolbarBackGroundColor,\r\n LinkTextColor,\r\n} from \"../Constants\";\r\nimport SaveIcon from \"@material-ui/icons/Save\";\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport PermDataSettingIcon from '@material-ui/icons/PermDataSetting';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n toolbar: {\r\n position:\"fixed\",\r\n paddingLeft: \"0px\",\r\n backgroundColor: ToolbarBackGroundColor,\r\n [theme.breakpoints.up('sm')]: {\r\n marginLeft: \"\" + DrawerWidth + \"px\",\r\n width: \"calc(100% - \" + DrawerWidth + \"px)\",\r\n },\r\n [theme.breakpoints.down('xs')]: {\r\n marginLeft: \"0px\",\r\n width: \"100%\",\r\n },\r\n borderBottom: \"1px solid rgba(0, 0, 0, 0.12);\"\r\n \r\n },\r\n toolbtnMenu: {\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n },\r\n \r\n toolbtnSaveTemplate: {\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n marginLeft: \"auto\",\r\n },\r\n toolbtnSave: {\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n },\r\n toolbtnAdd: {\r\n //padding: \"0px\",\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n paddingLeft: \"0px\",\r\n },\r\n}));\r\n\r\nconst ContentsToolbar: React.FunctionComponent<{\r\n dirty: boolean;\r\n onSave: () => void;\r\n onAddItem:()=>void;\r\n onMenuToggle: () => void;\r\n onSaveTemplate:()=>void;\r\n}> = ({ dirty, onSave,onAddItem, onMenuToggle ,onSaveTemplate}) => {\r\n\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {\r\n onMenuToggle();\r\n }}>\r\n \r\n\r\n \r\n {\r\n onAddItem();\r\n }}>項目追加\r\n \r\n\r\n {\r\n onSaveTemplate();\r\n }}>\r\n テンプレート管理\r\n \r\n\r\n {\r\n onSave();\r\n }}>\r\n 保存\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default ContentsToolbar;","import React from \"react\";\r\nimport {\r\n ItemTypeKey,\r\n stringToItemTypeKey,\r\n ItemMenuAction,\r\n ItemMenuAction_CLICK,\r\n ItemMenuAction_ADD,\r\n ItemMenuAction_UP_FIRST,\r\n ItemMenuAction_UP,\r\n ItemMenuAction_DOWN,\r\n ItemMenuAction_DOWN_LAST,\r\n ItemMenuAction_DELETE,\r\n LinkTextColor,\r\n GetItemKeyIcon,\r\n} from \"../Constants\";\r\nimport {\r\n Box,\r\n IconButton,\r\n ListItem,\r\n ListItemIcon,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n makeStyles,\r\n Popper,\r\n Grow,\r\n Paper,\r\n ClickAwayListener,\r\n MenuList,\r\n MenuItem,\r\n Divider,\r\n} from \"@material-ui/core\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport { ContentsJson } from \"../net/NetworkClient\";\r\nimport clsx from \"clsx\";\r\nconst useStyles = makeStyles((theme) => ({\r\n textPrimary: {\r\n fontSize: \"0.8rem\",\r\n },\r\n item: {\r\n paddingTop: 1,\r\n paddingBottom: 1,\r\n color: LinkTextColor,\r\n },\r\n itemCategory: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n paddingLeft: theme.spacing(2),\r\n },\r\n \r\n itemPrimary: {\r\n fontSize: \"inherit\",\r\n },\r\n itemIcon: {\r\n fontSize: \"1rem\",\r\n minWidth: \"auto\",\r\n marginRight: theme.spacing(1),\r\n },\r\n divider: {\r\n marginTop: theme.spacing(2),\r\n },\r\n btn: {\r\n color: LinkTextColor,\r\n },\r\n actionRoot: {\r\n zIndex: 100,\r\n },\r\n menuList: {\r\n zIndex: 110,\r\n },\r\n}));\r\n\r\nconst ContentsNavItem: React.FunctionComponent<{\r\n contentsJson: ContentsJson;\r\n selected: boolean;\r\n uparrow: boolean;\r\n downarrow: boolean;\r\n loading:boolean;\r\n onAction: (itemId: string | undefined, itemkey: ItemTypeKey, action: ItemMenuAction) => void;\r\n}> = ({\r\n contentsJson, selected, uparrow, downarrow,loading, onAction\r\n}) => {\r\n\r\n const classes = useStyles();\r\n const itemKey = stringToItemTypeKey(contentsJson.type ?? \"\");\r\n const itemIcon = GetItemKeyIcon(itemKey);\r\n const [menuopen, setMenuopen] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n const prevOpen = React.useRef(menuopen);\r\n\r\n\r\n const onClose = (\r\n event: React.MouseEvent,\r\n action?: ItemMenuAction\r\n ) => {\r\n if (\r\n anchorRef.current &&\r\n anchorRef.current.contains(event.target as HTMLElement)\r\n ) {\r\n return;\r\n }\r\n setMenuopen(false);\r\n if (action) {\r\n onAction(contentsJson.uuid, itemKey, action);\r\n }\r\n };\r\n \r\n function handleListKeyDown(event: React.KeyboardEvent) {\r\n if (event.key === \"Tab\") {\r\n event.preventDefault();\r\n setMenuopen(false);\r\n }\r\n }\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && menuopen === false) {\r\n anchorRef.current!.focus();\r\n }\r\n \r\n prevOpen.current = menuopen;\r\n }, [menuopen]);\r\n\r\n\r\n return (\r\n {\r\n onAction(contentsJson.uuid, itemKey, ItemMenuAction_CLICK);\r\n }}\r\n selected={selected}\r\n disabled={loading}\r\n >\r\n {itemIcon}\r\n \r\n {contentsJson.title ?? \"\"}\r\n \r\n \r\n \r\n {\r\n setMenuopen((prevOpen) => !prevOpen);\r\n }}\r\n >\r\n \r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n {\r\n onClose(e, undefined);\r\n }}\r\n >\r\n \r\n {\r\n onClose(e, ItemMenuAction_ADD);\r\n }}\r\n >\r\n この下へ項目を追加\r\n \r\n {\r\n onClose(e, ItemMenuAction_UP_FIRST);\r\n }}\r\n >\r\n 最初へ移動\r\n {\r\n onClose(e, ItemMenuAction_UP);\r\n }}\r\n >\r\n 1つ上へ移動\r\n {\r\n onClose(e, ItemMenuAction_DOWN);\r\n }}\r\n >\r\n 1つ下へ移動\r\n {\r\n onClose(e, ItemMenuAction_DOWN_LAST);\r\n }}\r\n >\r\n 最後へ移動\r\n\r\n \r\n\r\n {\r\n onClose(e, ItemMenuAction_DELETE);\r\n }}\r\n >\r\n 削除\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n\r\n }\r\n\r\nexport default ContentsNavItem;\r\n\r\n/**\r\n * 基本設定用のナビ項目\r\n */\r\nexport const ConfigNavItem: React.FunctionComponent<{\r\n\r\n selected: boolean;\r\n loading:boolean;\r\n onAction: (itemId: string | undefined, itemkey: ItemTypeKey, action: ItemMenuAction) => void;\r\n}> = ({\r\n selected, loading,onAction\r\n}) => {\r\n const classes = useStyles();\r\n const itemKey = ItemTypeKey.config;\r\n const itemIcon = GetItemKeyIcon(itemKey);\r\n \r\n return (\r\n {\r\n onAction(undefined, itemKey, ItemMenuAction_CLICK);\r\n }}\r\n selected={selected}\r\n disabled={loading}\r\n >\r\n {itemIcon}\r\n \r\n {\"基本設定\"}\r\n \r\n \r\n )\r\n }","\r\nimport React, { useEffect } from \"react\";\r\n\r\nimport {\r\n Drawer, IconButton, Hidden,\r\n List,\r\n ListItem,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n DrawerWidth,\r\n FooterHeight,\r\n ItemMenuAction,\r\n ItemMenuAction_ADD,\r\n ItemTypeKey,\r\n LinkTextColor\r\n} from \"../Constants\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport KeyboardBackspaceIcon from \"@material-ui/icons/KeyboardBackspace\";\r\nimport { MAProject, MorningAssemblyJson } from \"../net/NetworkClient\";\r\nimport ContentsNavItem, { ConfigNavItem } from \"./ContentsNavItem\"\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport ActionSlice, { ActionType } from \"../misc/ActionSlice\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n drawer: {\r\n paddingTop: \"8px\",\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\",\r\n //overflow: \"hidden\",\r\n height: \"calc(100vh - 48px - \" + FooterHeight + \"px)\",\r\n marginBottom: \"\" + FooterHeight + \"px\",\r\n [theme.breakpoints.up('sm')]: {\r\n width: DrawerWidth,\r\n marginTop: \"48px\",\r\n flexShrink: 0,\r\n //paddingLeft: \"16px\",\r\n },\r\n },\r\n toolbtn: {\r\n padding: \"4px\",\r\n paddingLeft: \"0px\",\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n justifyContent: \"left\",\r\n marginLeft: theme.spacing(1),\r\n\r\n },\r\n item: {\r\n //paddingTop: 0,\r\n //paddingBottom: 0,\r\n paddingLeft: 0,\r\n color: LinkTextColor,\r\n marginLeft: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst ContentsNav: React.FunctionComponent<{\r\n open: boolean;\r\n project: MAProject | undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n\r\n onAction: (itemId: string | undefined, itemkey: ItemTypeKey | undefined, action: ItemMenuAction) => void;\r\n onBackCalendar: () => void;\r\n onClose: () => void;\r\n}> = ({ open, jsonData, selectedItem, project, onAction, onBackCalendar, onClose }) => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = React.useState(false);\r\n const actionMessage = useSelector((state: RootState) => state.action.action);\r\n\r\n useEffect(() => {\r\n switch (actionMessage.type) {\r\n case ActionType.CONTENT_ITEM_LOAD_START: \r\n setLoading(true);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n break;\r\n case ActionType.CONTENT_ITEM_LOAD_END: \r\n setLoading(false);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [actionMessage]);\r\n\r\n\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default ContentsNav;","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport {useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\n\r\nexport type ConfirmAction = {\r\n title:string,\r\n message:string,\r\n callback:((ok:boolean) => void)\r\n}\r\nexport type ConfirmDialogProp = {\r\n title:string,\r\n message:string,\r\n callback:((ok:boolean) => void) | undefined,\r\n open:boolean\r\n}\r\nconst initialState: ConfirmDialogProp = {\r\n title:\"\",\r\n message: \"\",\r\n callback:undefined,\r\n open: false,\r\n};\r\n\r\nexport const ConfirmDialogSlice = createSlice({\r\n name: \"ConfirmDialog\",\r\n initialState: initialState,\r\n reducers: {\r\n openConfirm: (state, action:PayloadAction) => {\r\n state.open = true;\r\n state.title = action.payload.title;\r\n state.message = action.payload.message;\r\n state.callback = action.payload.callback;\r\n },\r\n closeConfirm:(state,action) => {\r\n state.open = false;\r\n state.title = \"\";\r\n state.message = \"\";\r\n state.callback = undefined;\r\n }\r\n },\r\n});\r\n\r\n\r\n\r\nfunction ConfirmDialog() {\r\n const {title,message,callback,open} = useSelector((state: RootState) => state.confirm);\r\n const dispatch = useDispatch();\r\n\r\n const handleClose = () => {\r\n dispatch(ConfirmDialogSlice.actions.closeConfirm(undefined));\r\n if(callback){\r\n callback(false);\r\n }\r\n };\r\n const handleOK = () => {\r\n dispatch(ConfirmDialogSlice.actions.closeConfirm(undefined));\r\n if(callback){\r\n callback(true);\r\n }\r\n };\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\nexport default ConfirmDialog;","import React, { useEffect } from 'react';\r\n\r\nimport {\r\n Box,\r\n makeStyles, TextField\r\n} from '@material-ui/core';\r\nimport { GetItemKeyIcon, IsEditableItemTitle, ItemTypeKey } from '../../Constants';\r\nimport { useDebounce } from \"use-debounce\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n textbox: {\r\n width: \"calc(100% - 50px)\",\r\n paddingLeft:\"0.3rem\"\r\n },\r\n\r\n titleicon: {\r\n fontSize: \"3rem\"\r\n },\r\n\r\n titleBox:{\r\n display:\"flex\",\r\n alignItems:\"center\"\r\n },\r\n titleText:{\r\n fontSize: \"1.5rem\",\r\n paddingLeft:\"0.3rem\"\r\n }\r\n\r\n\r\n}));\r\n\r\nconst TitleText: React.FunctionComponent<{\r\n type: ItemTypeKey;\r\n value: string;\r\n onUpdate: (title: string) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ type, value, onUpdate, onChanging }) => {\r\n const classes = useStyles();\r\n const [data, setData] = React.useState(value ?? \"\");\r\n const [upflag, setUpflag] = React.useState(false);\r\n\r\n //アクション処理\r\n useEffect(() => {\r\n setData(value);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [value]);\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if(upflag && value !== debouncedData){\r\n setUpflag(false);\r\n onUpdate(debouncedData);\r\n onChanging(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n\r\n if (!IsEditableItemTitle(type)) {\r\n return (\r\n \r\n {GetItemKeyIcon(type, \"large\")} {value}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {GetItemKeyIcon(type, \"large\")}\r\n\r\n タイトル}\r\n value={data}\r\n error={!data}\r\n helperText={!data ? \"値を入力して下さい\" : \"\"}\r\n onChange={(e) => {\r\n setUpflag(true);\r\n onChanging(true);\r\n setData(e.target.value);\r\n }}\r\n >\r\n \r\n );\r\n }\r\n};\r\nexport default TitleText;\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { FormControl, InputLabel, Select, MenuItem, Box } from \"@material-ui/core\";\r\nimport { useState } from \"react\";\r\nimport { useEffect } from \"react\";\r\n\r\nimport moment from \"moment-timezone\";\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n formControl: {\r\n },\r\n item: {\r\n marginRight: theme.spacing(1)\r\n },\r\n box: {\r\n display: \"inline-flex\",\r\n flexDirection: \"row\",\r\n alignItems: \"baseline\",\r\n marginTop: theme.spacing(2)\r\n }\r\n}));\r\n\r\nconst HOURS_LIST = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];\r\nconst MINUTES_LIST = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59];\r\n\r\n//時間設定のためのコントローラー\r\nconst TimePicker: React.FunctionComponent<{\r\n baseDate?: Date;\r\n value?: Date;\r\n useOverTime: boolean;\r\n label: string;\r\n required?: boolean;\r\n after?: Date\r\n onChange: (newDate: Date) => void;\r\n}> = ({ baseDate, value, useOverTime, label, required, after, onChange }) => {\r\n\r\n const classes = useStyles();\r\n\r\n\r\n const [hours, setHours] = useState(0);\r\n const [minutes, setMinites] = useState(0);\r\n\r\n const MaxHour: number = useOverTime ? 30 : 24;\r\n\r\n useEffect(() => {\r\n if (!!baseDate && !!value) {\r\n var b = moment(baseDate).endOf(\"days\");\r\n var v = moment(value);\r\n\r\n //最小制限\r\n if (!!after && v.isBefore(after)) {\r\n v = moment(after).add(1, \"minute\");\r\n onChange(v.toDate());\r\n return;\r\n }\r\n\r\n if (v.isAfter(b)) {\r\n //次の日\r\n if (hours !== v.get(\"hour\") + 24)\r\n setHours(v.get(\"hour\") + 24);\r\n if (minutes !== v.get(\"minute\"))\r\n setMinites(v.get(\"minute\"));\r\n } else {\r\n //同じ日\r\n if (hours !== v.get(\"hour\"))\r\n setHours(v.get(\"hour\"));\r\n if (minutes !== v.get(\"minute\"))\r\n setMinites(v.get(\"minute\"));\r\n }\r\n } else {\r\n setHours(0);\r\n setMinites(0);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [baseDate, value, after]);\r\n\r\n const changeValue = (h: number, m: number) => {\r\n if (!!baseDate && !!value) {\r\n var b = moment(baseDate).endOf(\"days\");\r\n if (h > 23) {\r\n //翌日処理\r\n b.add(1, \"day\");\r\n b.set(\"hour\", h - 24);\r\n b.set(\"minute\", m);\r\n } else {\r\n //当日処理\r\n b.set(\"hour\", h);\r\n b.set(\"minute\", m);\r\n }\r\n onChange(b.toDate());\r\n }\r\n }\r\n\r\n const checkHourDisable = (h: number): boolean => {\r\n if (!after)\r\n return false;\r\n var ah = moment(after).get(\"hour\");\r\n if (ah > h) {\r\n return true;\r\n }\r\n if (ah === h) {\r\n var am = moment(after).get(\"minute\");\r\n return am === 59 ? true : false;\r\n }\r\n return false;\r\n }\r\n\r\n const checkMinuteDisable = (m: number): boolean => {\r\n if (!after)\r\n return false;\r\n var ah = moment(after).get(\"hour\");\r\n if (ah === hours) {\r\n var am = moment(after).get(\"minute\");\r\n return am < m ? false : true;\r\n }\r\n return false;\r\n }\r\n\r\n\r\n return (\r\n \r\n\r\n\r\n \r\n \r\n {label}\r\n { var h = parseInt(\"\" + e.target.value, 10); setHours(h); changeValue(h, minutes) }}\r\n >\r\n {\r\n HOURS_LIST.map((v) => {\r\n\r\n return (MaxHour <= v ? null :\r\n v <= 23 ? {v}\r\n : {\"\" + v + \"(午前 \" + (v - 24) + \")\"})\r\n })\r\n }\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n {\" \"}\r\n { var m = parseInt(\"\" + e.target.value, 10); setMinites(m); changeValue(hours, m) }}\r\n >\r\n {\r\n MINUTES_LIST.map((v) => {\r\n return ({('00' + v).slice(-2)})\r\n })\r\n }\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport default TimePicker;","import moment from \"moment-timezone\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Guid } from \"guid-typescript\";\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n TextField,\r\n Box,\r\n /*FormControl,\r\n InputLabel,\r\n Select,\r\n MenuItem,*/\r\n} from \"@material-ui/core\";\r\n\r\nimport {\r\n ItemTypeKey\r\n} from \"../../Constants\";\r\nimport { MorningAssemblyJson, NewsJson } from \"../../net/NetworkClient\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\nimport TitleText from \"./TitleText\";\r\nimport TimePicker from \"../../misc/TimePicker\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n //margin: \"auto\",\r\n height: \"100%\",\r\n overflow: \"hidden\",\r\n flexGrow: 1,\r\n },\r\n box: {\r\n margin: \"20px\",\r\n },\r\n ctrl: {\r\n minWidth: \"180px\",\r\n //width: \"100%\",\r\n },\r\n}));\r\n\r\n//文字列の配列を1つの文字列に合成\r\nfunction arrayToString(list: string[] | undefined): string {\r\n if (!list) return \"\";\r\n var re = \"\";\r\n\r\n list.forEach((val, i) => {\r\n if (i > 0) re += \"\\n\";\r\n re += val;\r\n });\r\n return re;\r\n}\r\n//文字列を改行文字で分割\r\nfunction stringToArray(str: string): string[] {\r\n if (!str) return [];\r\n var tmp = str.split(/[\\r\\n]/);\r\n return tmp;\r\n}\r\n\r\nconst ContentsItemConfig: React.FunctionComponent<{\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onSetJson: (json: MorningAssemblyJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ jsonData, selectedItem, onSetJson, onChanging }) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [data, setData] = React.useState<{\r\n leader: string;\r\n place:string;\r\n news: string;\r\n startDateTime:Date;\r\n endDateTime:Date;\r\n }>({\r\n leader: jsonData?.leader ?? \"\",\r\n place:jsonData?.place ?? \"\",\r\n news: arrayToString(jsonData?.news?.content),\r\n startDateTime : jsonData?.start ?? new Date(),\r\n endDateTime : jsonData?.end ?? new Date()\r\n });\r\n\r\n const [errors, setErrors] = React.useState({\r\n leader: \"\",\r\n place:\"\",\r\n // startTime: \"\",\r\n // endTime: \"\",\r\n news: \"\",\r\n });\r\n\r\n //JSONデータの更新\r\n useEffect(() => {\r\n if (selectedItem?.key !== ItemTypeKey.config)\r\n return;\r\n if (!jsonData) {\r\n var s = moment().set({\"hour\":8,\"minute\":0}).toDate();\r\n var e = moment().set({\"hour\":23,\"minute\":59}).toDate();\r\n\r\n setData({ leader: \"\",place:\"\", news: \"\" ,startDateTime:s,endDateTime:e});\r\n } else {\r\n\r\n const toData = {\r\n leader: jsonData?.leader ?? \"\",\r\n place:jsonData.place ?? \"\",\r\n startTime: moment(jsonData?.start).format(\"HH:mm\"),\r\n endTime: moment(jsonData?.end).format(\"HH:mm\"),\r\n news: arrayToString(jsonData?.news?.content),\r\n startDateTime:jsonData?.start ?? moment().set({\"hour\":8,\"minute\":0}).toDate(),\r\n endDateTime:jsonData?.end ?? moment().set({\"hour\":23,\"minute\":59}).toDate(),\r\n };\r\n\r\n if (JSON.stringify(data) !== JSON.stringify(toData)) {\r\n setData(toData);\r\n }\r\n }\r\n\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [jsonData, selectedItem]);\r\n\r\n function checkErrors(): boolean {\r\n var hasError = false;\r\n var copy = Object.assign({}, errors);\r\n if (!data.leader) {\r\n copy.leader = \"値を入力して下さい\";\r\n hasError = true;\r\n } else {\r\n copy.leader = \"\";\r\n }\r\n\r\n // if (moment(data.endTime, \"HH:mm\").isBefore(moment(data.startTime, \"HH:mm\"))) {\r\n // copy.endTime = \"開催時刻以前になっています\";\r\n // }\r\n\r\n if (JSON.stringify(errors) !== JSON.stringify(copy)) {\r\n setErrors(copy);\r\n }\r\n return hasError;\r\n }\r\n\r\n //内部データの更新\r\n useEffect(() => {\r\n checkErrors();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data]);\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n var news = new NewsJson();\r\n news.content = stringToArray(data.news);\r\n news.uuid = jsonData?.news?.uuid ? jsonData?.news?.uuid : Guid.create().toString();\r\n\r\n\r\n const date = moment(data.startDateTime)\r\n .second(0)\r\n .millisecond(0);\r\n\r\n var enddate = moment(data.endDateTime)\r\n .second(0)\r\n .millisecond(0);\r\n\r\n if (enddate.isBefore(date)) {\r\n enddate = moment(jsonData?.start)\r\n .hour(0)\r\n .minute(0)\r\n .second(0)\r\n .millisecond(0);\r\n enddate = enddate.add(1, \"day\");\r\n }\r\n //const enddate = moment(date).add(data.timespan, \"minutes\");\r\n if (data.leader === jsonData?.leader\r\n && data.place === jsonData.place\r\n && date.isSame(jsonData?.start, \"minute\")\r\n && enddate.isSame(jsonData?.end, \"minute\")\r\n && JSON.stringify(news) === JSON.stringify(jsonData?.news)) {\r\n return;\r\n }\r\n\r\n var json = Object.assign({}, jsonData, {\r\n leader: data.leader,\r\n place:data.place,\r\n start: date.toDate(),\r\n end: enddate.toDate(),\r\n news: news,\r\n });\r\n onSetJson(json);\r\n onChanging(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n /* type TimeMenuItem = {\r\n label:string;\r\n value:number;\r\n }\r\n function endTimes():TimeMenuItem[] {\r\n var list: TimeMenuItem[] = new Array();\r\n var t = moment()\r\n .hour(0)\r\n .minute(0)\r\n .second(0)\r\n .millisecond(0);\r\n\r\n for(var i = 0; i <= 60 ; i++ ){\r\n var mi:TimeMenuItem = {label:t.format(\"HH:mm\"),value:i*30};\r\n list.push(mi);\r\n t.add(15,\"minutes\");\r\n }\r\n return list;\r\n }*/\r\n\r\n if (selectedItem?.key !== ItemTypeKey.config) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n { }}\r\n onChanging={(f) => { }} />\r\n \r\n\r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n leader: e.target.value,\r\n })\r\n );\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n place: e.target.value,\r\n })\r\n );\r\n }}\r\n />\r\n \r\n{/** \r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n startTime: e.target.value,\r\n })\r\n );\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n endTime: e.target.value,\r\n })\r\n );\r\n }}\r\n />\r\n \r\n*/}\r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n startDateTime:d,\r\n })\r\n );\r\n }}>\r\n \r\n\r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n endDateTime:d,\r\n })\r\n );\r\n }}>\r\n\r\n \r\n \r\n{/** \r\n \r\n \r\n Name\r\n \r\n \r\n {endTimes().map((item) => {\r\nreturn (\r\n\r\n{item.label}\r\n\r\n)\r\n }\r\n )}\r\n \r\n \r\n \r\n*/}\r\n \r\n {\r\n onChanging(true);\r\n setData(\r\n Object.assign({}, data, {\r\n news: e.target.value,\r\n })\r\n );\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsItemConfig;\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport { Grid, makeStyles, Paper } from \"@material-ui/core\";\r\n\r\nimport RadioGymImage from \"../../images/radioGymnastics.png\";\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n margin: \"auto\",\r\n overflow: \"hidden\",\r\n height: \"100%\"\r\n },\r\n content: {\r\n margin: \"20px 16px\",\r\n },\r\n image: {\r\n maxWidth: \"676px\",\r\n with: \"100%\",\r\n height: \"auto\",\r\n paddingRight: \"16px\"\r\n }\r\n}));\r\n\r\nconst ContentsItemRadioCalisthenics: React.FunctionComponent<{\r\n selectedItem: { key: string; id: string } | undefined;\r\n}> = ({ selectedItem }) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n\r\n useEffect(() => {\r\n if (selectedItem?.key !== ItemTypeKey.radioCalisthenics\r\n && selectedItem?.key !== ItemTypeKey.general_radioCalisthenics)\r\n return;\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem]);\r\n\r\n if (selectedItem?.key !== ItemTypeKey.radioCalisthenics\r\n && selectedItem?.key !== ItemTypeKey.general_radioCalisthenics)\r\n return null;\r\n\r\n\r\n return (\r\n \r\n \r\n

\r\n \"ラジオ体操\"\r\n

\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsItemRadioCalisthenics;\r\n","import React from 'react';\r\n\r\nimport {\r\n IconButton, makeStyles, Tooltip\r\n} from '@material-ui/core';\r\nimport AddPin from '../../images/add-pin.svg';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n addpin: {\r\n height: \"30px\",\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n },\r\n addpinBox: {\r\n padding: \"0 !important\" as any,\r\n textAlign: \"right\",\r\n marginRight: \"1px\",\r\n },\r\n}));\r\n\r\nconst AddBtn: React.FunctionComponent<{\r\n index: number;\r\n onClick: (idx: number) => void;\r\n hide?: boolean;\r\n}> = ({ index, onClick, hide = false }) => {\r\n const classes = useStyles();\r\n if (hide) return null;\r\n return (\r\n \r\n {\r\n onClick(index);\r\n }}\r\n >\r\n \"add\"\r\n \r\n \r\n );\r\n};\r\nexport default AddBtn;\r\n","import React, { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\r\nimport ArrowUpwardIcon from \"@material-ui/icons/ArrowUpward\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n Card,\r\n CardContent,\r\n CardActions,\r\n Box,\r\n IconButton,\r\n TextField,\r\n Tooltip,\r\n} from \"@material-ui/core\";\r\n\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport {\r\n ProcedureJson,\r\n ContentsJson,\r\n DetailJson,\r\n MorningAssemblyJson,\r\n} from \"../../net/NetworkClient\";\r\nimport AddBtn from \"./AddBtn\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\nimport { ConfirmDialogSlice } from \"../../misc/ConfirmDialog\";\r\nimport TitleText from \"./TitleText\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n //margin: \"auto\",\r\n overflow: \"hidden\",\r\n },\r\n content: {\r\n padding: \"20px 16px\",\r\n flexGrow: 1,\r\n },\r\n itemActions: {\r\n justifyContent: \"flex-end\",\r\n },\r\n addpinBox: {\r\n padding: \"0 !important\" as any,\r\n textAlign: \"right\",\r\n marginRight: \"1px\",\r\n },\r\n}));\r\n\r\n//作業内容と安全注意事項\r\n\r\nconst ContentsItemWorkProcedure: React.FunctionComponent<{\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ jsonData, selectedItem, onUpdate, onChanging }) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n\r\n const [itemId, setItemId] = React.useState(\"\");\r\n\r\n //表示データ\r\n const [data, setData] = React.useState<{\r\n uuid: string;\r\n title: string;\r\n procedures: ProcedureJson[];\r\n }>({\r\n uuid: \"\",\r\n title: \"\",\r\n procedures: [],\r\n });\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (selectedItem?.key !== ItemTypeKey.workProcedure)\r\n return;\r\n\r\n if (selectedItem?.id && jsonData) {\r\n if (itemId !== selectedItem.id)\r\n setItemId(selectedItem.id);\r\n const contents = jsonData.contents?.find(\r\n (c) => c.uuid === selectedItem.id\r\n );\r\n if (contents?.details) {\r\n const toData = {\r\n uuid: contents.uuid ?? \"\",\r\n title: contents.title ?? \"\",\r\n procedures: contents.details.procedures ?? [],\r\n };\r\n if (JSON.stringify(data) !== JSON.stringify(toData)) {\r\n setData(toData);\r\n }\r\n }\r\n }\r\n \r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem, jsonData]);\r\n\r\n\r\n\r\n //データの保存とReduxデータへの反映\r\n function setDataAndPost(inData: {\r\n uuid: string;\r\n title: string;\r\n procedures: ProcedureJson[];\r\n }) {\r\n setData(inData);\r\n const contents = jsonData?.contents?.find((c) => c.uuid === itemId);\r\n const strsrc = JSON.stringify(contents);\r\n var copy = ContentsJson.fromJS(JSON.parse(strsrc));\r\n\r\n const tmp = new DetailJson();\r\n tmp.procedures = inData.procedures;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n\r\n const dststr = JSON.stringify(copy);\r\n if (strsrc !== dststr) {\r\n onUpdate(copy);\r\n }\r\n }\r\n\r\n //表示データのコピー\r\n function copyData() {\r\n return {\r\n uuid: data.uuid,\r\n title: \"\" + data.title,\r\n procedures: data.procedures,\r\n };\r\n }\r\n\r\n //項目追加\r\n function addProcedure(index: number) {\r\n const item = new ProcedureJson();\r\n item.uuid = uuid();\r\n item.work = \"\";\r\n item.content = \"\";\r\n item.company = \"\";\r\n item.hazardFactor = \"\";\r\n item.counterplan = \"\";\r\n var list = [\r\n ...data.procedures.slice(0, index),\r\n item,\r\n ...data.procedures.slice(index),\r\n ];\r\n const newdata = copyData();\r\n newdata.procedures = list;\r\n setDataAndPost(newdata);\r\n }\r\n\r\n\r\n if (selectedItem?.key !== ItemTypeKey.workProcedure) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {}}\r\n onChanging={(f)=>{}}/>\r\n \r\n \r\n {\r\n addProcedure(index);\r\n }}\r\n />\r\n \r\n\r\n {data.procedures.map((val, idx) => (\r\n \r\n \r\n c.uuid === itemId\r\n )}\r\n procedure={val}\r\n uparrow={idx > 0}\r\n downarrow={(data.procedures.length ?? 0) > idx + 1}\r\n selectedItem={selectedItem}\r\n onUpdate={(newdata) => {\r\n onUpdate(newdata);\r\n }}\r\n onShift={(up, uuid) => {\r\n const newdata = copyData();\r\n var idx = data.procedures.findIndex((p) => p.uuid === uuid);\r\n if (idx >= 0) {\r\n const item = newdata.procedures.splice(idx, 1)[0];\r\n newdata.procedures.splice(idx + (up ? -1 : +1), 0, item);\r\n setDataAndPost(newdata);\r\n }\r\n }}\r\n onDelete={(uuid) => {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message: \"本当に削除してもよろしいですか?\",\r\n callback: (ok) => {\r\n if (ok) {\r\n const newdata = copyData();\r\n newdata.procedures = newdata.procedures.filter(\r\n (p) => p.uuid !== uuid\r\n );\r\n setDataAndPost(newdata);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n }\r\n })\r\n );\r\n }}\r\n onChanging={onChanging}\r\n />\r\n \r\n \r\n {\r\n addProcedure(index);\r\n }}\r\n />\r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsItemWorkProcedure;\r\n\r\n//作業項目1つ分\r\nconst Procedure: React.FunctionComponent<{\r\n contents?: ContentsJson;\r\n procedure: ProcedureJson;\r\n selectedItem: { key: string; id: string } | undefined;\r\n uparrow: boolean;\r\n downarrow: boolean;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onShift: (up: boolean, uuid: string) => void;\r\n onDelete: (uuid: string) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contents, procedure, selectedItem, uparrow, downarrow, onUpdate, onShift, onDelete, onChanging }) => {\r\n const classes = useStyles();\r\n\r\n //表示データ\r\n const [data, setData] = React.useState<{\r\n uuid?: string;\r\n work?: string;\r\n content?: string;\r\n company?: string;\r\n hazardFactor?: string;\r\n counterplan?: string;\r\n }>({\r\n uuid: procedure.uuid,\r\n work: procedure.work,\r\n content: procedure.content,\r\n company: procedure.company,\r\n hazardFactor: procedure.hazardFactor,\r\n counterplan: procedure.counterplan,\r\n });\r\n\r\n //データコピー\r\n function copyData() {\r\n return JSON.parse(JSON.stringify(data));\r\n }\r\n\r\n function checkChange(): boolean {\r\n if (\r\n procedure.work === data.work &&\r\n procedure.content === data.content &&\r\n procedure.company === data.company &&\r\n procedure.hazardFactor === data.hazardFactor &&\r\n procedure.counterplan === data.counterplan\r\n )\r\n return false;\r\n return true;\r\n }\r\n\r\n function updateContentsJson() {\r\n const proc = ProcedureJson.fromJS(data);\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.procedures = newdata.details?.procedures?.map((p) =>\r\n p.uuid === proc.uuid ? proc : p\r\n );\r\n onUpdate(newdata);\r\n }\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (!checkChange()) return;\r\n updateContentsJson();\r\n onChanging(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //表示対象が変わるときに\r\n useEffect(() => {\r\n if (checkChange()) {\r\n updateContentsJson();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem]);\r\n\r\n return (\r\n \r\n \r\n {\r\n onChanging(true);\r\n setData({ ...copyData(), work: e.target.value });\r\n }}\r\n />\r\n {\r\n onChanging(true);\r\n setData({ ...copyData(), content: e.target.value });\r\n }}\r\n />\r\n {\r\n onChanging(true);\r\n setData({ ...copyData(), company: e.target.value });\r\n }}\r\n />\r\n {\r\n onChanging(true);\r\n setData({ ...copyData(), hazardFactor: e.target.value });\r\n }}\r\n />\r\n {\r\n onChanging(true);\r\n setData({ ...copyData(), counterplan: e.target.value });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n {\r\n onShift(true, data.uuid ?? \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onShift(false, data.uuid ?? \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onDelete(data.uuid ?? \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n TextField,\r\n Card,\r\n CardContent,\r\n CardActions,\r\n Box,\r\n Tooltip,\r\n IconButton,\r\n} from \"@material-ui/core\";\r\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\r\nimport ArrowUpwardIcon from \"@material-ui/icons/ArrowUpward\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport AddBtn from \"./AddBtn\";\r\nimport {\r\n PrecautionJson,\r\n ContentsJson,\r\n DetailJson,\r\n MorningAssemblyJson,\r\n} from \"../../net/NetworkClient\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\nimport { ConfirmDialogSlice } from \"../../misc/ConfirmDialog\";\r\nimport TitleText from \"./TitleText\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n //margin: \"auto\",\r\n overflow: \"hidden\",\r\n },\r\n content: {\r\n padding: \"20px 16px\",\r\n flexGrow: 1,\r\n },\r\n\r\n addpin: {\r\n height: \"30px\",\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n },\r\n addpinBox: {\r\n padding: \"0 !important\" as any,\r\n textAlign: \"right\",\r\n marginRight: \"1px\",\r\n },\r\n itemActions: {\r\n justifyContent: \"flex-end\",\r\n },\r\n}));\r\n\r\nconst ContentsItemPrecautions: React.FunctionComponent<{\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging:(changing:boolean)=>void;\r\n}> = ({ jsonData, selectedItem, onUpdate,onChanging }) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n \r\n const [itemId, setItemId] = React.useState(\"\");\r\n\r\n //表示データ\r\n const [data, setData] = React.useState<{\r\n title: string;\r\n precautions: PrecautionJson[];\r\n }>({\r\n title: \"\",\r\n precautions: [],\r\n });\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if(selectedItem?.key !== ItemTypeKey.precautions)\r\n return;\r\n\r\n if (selectedItem?.id && jsonData) {\r\n if (selectedItem?.id !== itemId) {\r\n setItemId(selectedItem?.id);\r\n }\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n if (contents?.details) {\r\n const toData = {\r\n title: contents.title ?? \"\",\r\n precautions: contents.details.precautions ?? [],\r\n };\r\n if (JSON.stringify(data) !== JSON.stringify(toData)) {\r\n setData(toData);\r\n }\r\n }\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END}));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n },[selectedItem,jsonData]);\r\n\r\n\r\n function setDataAndPost(inData: {\r\n title: string;\r\n precautions: PrecautionJson[];\r\n }) {\r\n setData(inData);\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n const strsrc = JSON.stringify(contents);\r\n var copy = ContentsJson.fromJS(JSON.parse(strsrc));\r\n\r\n const tmp = new DetailJson();\r\n tmp.precautions = inData.precautions;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n\r\n const dststr = JSON.stringify(copy);\r\n if (strsrc !== dststr) {\r\n onUpdate(copy);\r\n }\r\n }\r\n\r\n //表示データのコピー\r\n function copyData() {\r\n return {\r\n title: \"\" + data.title,\r\n precautions: data.precautions.map((p) => new PrecautionJson(p)),\r\n };\r\n }\r\n\r\n //項目追加\r\n function addPrecaution(index: number) {\r\n const item = new PrecautionJson();\r\n item.uuid = uuid();\r\n item.item = \"\";\r\n var list = [\r\n ...data.precautions.slice(0, index),\r\n item,\r\n ...data.precautions.slice(index),\r\n ];\r\n const newdata = copyData();\r\n newdata.precautions = list;\r\n //setData(newdata);\r\n setDataAndPost(newdata);\r\n }\r\n\r\nif(selectedItem?.key !== ItemTypeKey.precautions) return null;\r\n\r\n return (\r\n \r\n \r\n \r\n {}}\r\n onChanging={(f)=>{}}/>\r\n \r\n \r\n {\r\n addPrecaution(index);\r\n }}\r\n />\r\n \r\n\r\n {data.precautions.map((val, idx) => (\r\n \r\n \r\n c.uuid === itemId\r\n )}\r\n precaution={val}\r\n uparrow={idx > 0}\r\n downarrow={(data.precautions.length ?? 0) > idx + 1}\r\n selectedItem={selectedItem}\r\n onUpdate={onUpdate}\r\n onShift={(up, uuid) => {\r\n const newdata = copyData();\r\n var idx = data.precautions.findIndex((p) => p.uuid === uuid);\r\n if (idx >= 0) {\r\n const item = newdata.precautions.splice(idx, 1)[0];\r\n newdata.precautions.splice(idx + (up ? -1 : +1), 0, item);\r\n setDataAndPost(newdata);\r\n }\r\n }}\r\n onDelete={(uuid) => {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message: \"本当に削除してもよろしいですか?\",\r\n callback:(ok)=>{\r\n if(ok){\r\n const newdata = copyData();\r\n newdata.precautions = newdata.precautions.filter(\r\n (p) => p.uuid !== uuid\r\n );\r\n setDataAndPost(newdata);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n }\r\n })\r\n );\r\n }}\r\n onChanging={onChanging}\r\n >\r\n \r\n \r\n {\r\n addPrecaution(index);\r\n }}\r\n />\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\n//作業項目1つ分\r\nconst PrecautionCard: React.FunctionComponent<{\r\n contents?: ContentsJson;\r\n precaution: PrecautionJson;\r\n uparrow: boolean;\r\n downarrow: boolean;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onShift: (up: boolean, uuid: string) => void;\r\n onDelete: (uuid: string) => void;\r\n onChanging:(changing:boolean)=>void;\r\n}> = ({ contents, precaution, uparrow, downarrow, selectedItem,onUpdate,onShift, onDelete ,onChanging}) => {\r\n const classes = useStyles();\r\n\r\n //表示データ\r\n const [data, setData] = React.useState(precaution.item ?? \"\");\r\n \r\n \r\n\r\n function updateContentsJson() {\r\n const prec = new PrecautionJson(precaution);\r\n prec.item = data;\r\n\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.precautions = newdata.details?.precautions?.map((p) =>\r\n p.uuid === prec.uuid ? prec : p\r\n );\r\n onUpdate(newdata);\r\n onChanging(false);\r\n }\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (precaution.item !== data) {\r\n updateContentsJson();\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //表示対象が変わるときに\r\n useEffect(() => {\r\n if (precaution.item !== data) {\r\n updateContentsJson();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem]);\r\n\r\n return (\r\n \r\n \r\n {\r\n onChanging(true);\r\n setData(e.target.value);\r\n }}\r\n >\r\n \r\n\r\n \r\n \r\n \r\n {\r\n onShift(true, precaution.uuid ?? \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onShift(false, precaution.uuid ?? \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onDelete(precaution.uuid ?? \"\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default ContentsItemPrecautions;\r\n","import React, { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n Typography,\r\n Tooltip,\r\n IconButton,\r\n Box,\r\n CircularProgress,\r\n TextField,\r\n} from \"@material-ui/core\";\r\n\r\nimport { ItemTypeKey, stringToItemTypeKey } from \"../../Constants\";\r\nimport HowToRegIcon from \"@material-ui/icons/HowToReg\";\r\nimport moment, { Moment } from \"moment-timezone\";\r\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\r\nimport { getContentsRollCallsSv } from \"../../net/CalendarAsync\"\r\nimport { ContentsJson, DetailJson, MARollCall, MorningAssemblyJson } from \"../../net/NetworkClient\";\r\nimport TitleText from \"./TitleText\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n overflow: \"hidden\",\r\n height: \"100%\"\r\n },\r\n content: {\r\n margin: \"20px 16px\",\r\n },\r\n message: {\r\n marginRight: theme.spacing(6)\r\n },\r\n\r\n rollcall: {\r\n marginLeft: \"30px\",\r\n display: \"inline-flex\",\r\n },\r\n checkIcon: {\r\n marginRight: \"5px\",\r\n color: \"green\",\r\n },\r\n uptime: {\r\n position: \"absolute\",\r\n top: \"12px\",\r\n right: \"12px\",\r\n },\r\n}));\r\n\r\nconst ContentsItemRollCall: React.FunctionComponent<{\r\n contentsId: string | undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsId, jsonData, selectedItem, onUpdate, onChanging }) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n function isSupported(key: string | undefined) {\r\n return (key === ItemTypeKey.rollCall\r\n || key === ItemTypeKey.general_registration);\r\n }\r\n const hasMessage = selectedItem?.key === ItemTypeKey.general_registration;\r\n\r\n const [rollCalls, setRollCalls] = React.useState([]);\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const [data, setData] = React.useState({ title: \"\", message: \"\" });\r\n\r\n const [rollCallsUpdated, setRollCallsUpdated] = React.useState();\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (!isSupported(selectedItem?.key))\r\n return;\r\n\r\n if (selectedItem?.id && jsonData) {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n\r\n setData({\r\n title: contents?.title ?? \"\",\r\n message: contents?.details?.message ?? \"\"\r\n });\r\n\r\n refreshData();\r\n }\r\n\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem, jsonData]);\r\n\r\n\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n updateContentsJson(debouncedData);\r\n onChanging(false);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n\r\n\r\n const refreshData = () => {\r\n setLoading(true);\r\n dispatch(\r\n getContentsRollCallsSv({\r\n contentsId: contentsId ?? \"\",\r\n callback: (ok, rollcalls) => {\r\n setLoading(false);\r\n setRollCalls(rollcalls ?? []);\r\n setRollCallsUpdated(moment());\r\n },\r\n })\r\n );\r\n };\r\n\r\n\r\n\r\n function updateContentsJson(indata: { title: string, message: string }) {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n if (!isSupported(contents?.type))\r\n return;\r\n if (contents) {\r\n const strsrc = JSON.stringify(contents);\r\n const copy = new ContentsJson(contents);\r\n copy.title = indata.title;\r\n if (hasMessage) {\r\n if (!copy.details)\r\n copy.details = new DetailJson();\r\n copy.details.message = indata.message;\r\n }\r\n const dststr = JSON.stringify(copy);\r\n if (strsrc !== dststr) {\r\n onUpdate(copy);\r\n }\r\n }\r\n }\r\n if (!isSupported(selectedItem?.key)) return null;\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n {\r\n setData({ title: t, message: data.message });\r\n //updateContentsJson(t);\r\n }}\r\n onChanging={onChanging}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onChanging(true);\r\n setData({ title: data.title, message: e.target.value });\r\n }}\r\n >\r\n \r\n {rollCalls.map((val, idx) => {\r\n if (val.uuid === selectedItem?.id) {\r\n return (\r\n \r\n \r\n \r\n {val.name}({moment(val.createdUTC).format(\"HH:mm:ss\")})\r\n \r\n \r\n );\r\n } else {\r\n return null;\r\n }\r\n })}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsItemRollCall;\r\n","import React, { useEffect } from \"react\";\r\n\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n TextField,\r\n CardContent,\r\n Card,\r\n} from \"@material-ui/core\";\r\n\r\nimport { ItemTypeKey, stringToItemTypeKey } from \"../../Constants\";\r\nimport {\r\n DetailJson,\r\n ContentsJson,\r\n MorningAssemblyJson,\r\n} from \"../../net/NetworkClient\";\r\nimport TitleText from \"./TitleText\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n overflow: \"hidden\",\r\n height: \"100%\"\r\n },\r\n content: {\r\n padding: \"20px 16px\",\r\n flexGrow: 1,\r\n },\r\n ctr: {\r\n marginTop: \"12px\",\r\n marginBottom: \"12px\",\r\n },\r\n}));\r\n\r\ninterface SafetyCallData {\r\n\r\n title: string;\r\n call: string;\r\n response: string;\r\n}\r\n\r\nconst ContentsItemSafetyCall: React.FunctionComponent<{\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ jsonData, selectedItem, onUpdate ,onChanging}) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [data, setData] = React.useState({\r\n title: \"\",\r\n call: \"\",\r\n response: \"\",\r\n });\r\n\r\n function isSupported(key:string|undefined) {\r\n return key === ItemTypeKey.safetyCall\r\n || key === ItemTypeKey.general_chant;\r\n }\r\n function copyData(): SafetyCallData {\r\n return JSON.parse(JSON.stringify(data));\r\n }\r\n\r\n //JSONデータの更新\r\n useEffect(() => {\r\n if (!isSupported(selectedItem?.key))\r\n return;\r\n\r\n if (selectedItem?.id && jsonData) {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n if (contents?.details) {\r\n setData({\r\n title: contents.title ?? \"\",\r\n call: contents.details.call ?? \"\",\r\n response: contents.details.response ?? \"\",\r\n });\r\n }else{\r\n setData({ title: \"\", call: \"\", response: \"\" });\r\n }\r\n }\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem, jsonData]);\r\n\r\n //データ更新\r\n /*useEffect(() => {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n if (contents && (contents.details?.call !== data.call || contents.details.response !== data.response)) {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n const detail = new DetailJson();\r\n detail.call = data.call;\r\n detail.response = data.response;\r\n copy.details = detail;\r\n onUpdate(copy);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data]);*/\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n if(!isSupported(contents?.type))\r\n return;\r\n if (contents && (contents.details?.call !== data.call || contents.details.response !== data.response || contents.title !== data.title)) {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n copy.title = data.title;\r\n const detail = new DetailJson();\r\n detail.call = data.call;\r\n detail.response = data.response;\r\n copy.details = detail;\r\n onUpdate(copy);\r\n onChanging(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n\r\n if (!isSupported(selectedItem?.key))\r\n return null;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n var copy = copyData();\r\n copy.title = title;\r\n setData(copy);\r\n }}\r\n onChanging={onChanging}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n {\r\n onChanging(true);\r\n var d = copyData();\r\n d.call = e.target.value;\r\n setData(d);\r\n }}\r\n >\r\n {\r\n onChanging(true);\r\n var d = copyData();\r\n d.response = e.target.value;\r\n setData(d);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsItemSafetyCall;\r\n","import React, { useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n Typography,\r\n GridList,\r\n GridListTile,\r\n GridListTileBar,\r\n IconButton,\r\n Dialog,\r\n AppBar,\r\n Toolbar,\r\n Button,\r\n Box,\r\n DialogContent,\r\n useMediaQuery,\r\n useTheme,\r\n Tooltip,\r\n CircularProgress,\r\n} from \"@material-ui/core\";\r\n\r\nimport { ItemTypeKey, stringToItemTypeKey } from \"../../Constants\";\r\nimport moment, { Moment } from \"moment-timezone\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport { ContentsJson, MAFile, MorningAssemblyJson } from \"../../net/NetworkClient\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport RefreshIcon from \"@material-ui/icons/Refresh\";\r\nimport { getContentsFilesSv } from \"../../net/CalendarAsync\"\r\nimport TitleText from \"./TitleText\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nvar classNames = require(\"classnames\");\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n overflow: \"hidden\",\r\n },\r\n content: {\r\n margin: \"20px 16px\",\r\n },\r\n file: {\r\n marginLeft: \"30px\",\r\n display: \"inline-flex\",\r\n },\r\n infoIcon: {\r\n color: theme.palette.common.white,\r\n },\r\n img: {\r\n maxWidth: \"200px\",\r\n maxHeight: \"200px\",\r\n },\r\n viewerImgH: {\r\n width: \"auto\",\r\n height: \"100%\",\r\n marginTop: theme.spacing(2),\r\n },\r\n viewerImgW: {\r\n width: \"100%\",\r\n height: \"auto\",\r\n marginTop: theme.spacing(2),\r\n },\r\n\r\n saveBtn: {\r\n marginLeft: \"auto\",\r\n },\r\n}));\r\n\r\nconst ContentsItemKYActivity: React.FunctionComponent<{\r\n contentsId: string | undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsId, jsonData, selectedItem, onUpdate, onChanging }) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n\r\n const [title, setTitle] = React.useState(\"\");\r\n const [files, setFiles] = React.useState([]);\r\n\r\n const [selectedFile, setSelectedFile] = React.useState();\r\n const [selectedFileLandscape, setSelectedFileLandscape] = React.useState(true);\r\n\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [filesUpdated, setFilesUpdated] = React.useState();\r\n\r\n function isSupport(): boolean {\r\n return selectedItem?.key === ItemTypeKey.kyActivity\r\n || selectedItem?.key === ItemTypeKey.general_photoUpload;\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (!isSupport())\r\n return;\r\n\r\n if (selectedItem?.id && jsonData) {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n if (contents && contents.title && title !== contents.title) {\r\n setTitle(contents.title);\r\n }\r\n\r\n refreshData();\r\n }\r\n \r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END}));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedItem, jsonData]);\r\n const theme = useTheme();\r\n const upxl = useMediaQuery(theme.breakpoints.up(\"xl\"));\r\n const uplg = useMediaQuery(theme.breakpoints.up(\"lg\"));\r\n const upmd = useMediaQuery(theme.breakpoints.up(\"md\"));\r\n const upsm = useMediaQuery(theme.breakpoints.up(\"sm\"));\r\n const getGridListCols = () => {\r\n if (upxl) {\r\n return 5;\r\n }\r\n if (uplg) {\r\n return 4;\r\n }\r\n if (upmd) {\r\n return 3;\r\n }\r\n if (upsm) {\r\n return 2;\r\n }\r\n return 1;\r\n };\r\n const refreshData = () => {\r\n setLoading(true);\r\n dispatch(\r\n getContentsFilesSv({\r\n contentsId: contentsId ?? \"\",\r\n callback: (ok, infiles) => {\r\n setFiles(infiles ?? []);\r\n setFilesUpdated(moment());\r\n setLoading(false);\r\n }\r\n })\r\n );\r\n };\r\n\r\n var selectedImageClass = classNames(\r\n { [classes.viewerImgH]: !selectedFileLandscape },\r\n { [classes.viewerImgW]: selectedFileLandscape }\r\n );\r\n\r\n const handleClose = () => {\r\n setSelectedFile(undefined);\r\n };\r\n\r\n function updateContentsJson(newTitle: string) {\r\n const contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n );\r\n\r\n if (contents) {\r\n const strsrc = JSON.stringify(contents);\r\n const copy = new ContentsJson(contents);\r\n copy.title = newTitle;\r\n\r\n const dststr = JSON.stringify(copy);\r\n if (strsrc !== dststr) {\r\n onUpdate(copy);\r\n }\r\n }\r\n }\r\n\r\n if (!isSupport()) return null;\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n\r\n \r\n {\r\n setTitle(t);\r\n updateContentsJson(t);\r\n }}\r\n onChanging={onChanging}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n {files.map((val) => {\r\n if (val.uuid !== selectedItem?.id) {\r\n return null;\r\n }\r\n return (\r\n \r\n \"thumbnail\"\r\n {val.userName}}\r\n actionIcon={\r\n {\r\n setSelectedFile(val);\r\n }}\r\n >\r\n \r\n \r\n }\r\n />\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedFile\r\n ? moment(selectedFile.createUTC).format(\"YYYY/MM/DD HH:mm:ss\") +\r\n \"(\" +\r\n selectedFile.userName +\r\n \")\"\r\n : \"\"}\r\n \r\n \r\n \r\n ダウンロード\r\n \r\n \r\n \r\n\r\n \r\n {selectedFile && (\r\n \r\n \r\n {\r\n var img = document.getElementById(\"sourceImage\") as HTMLImageElement;\r\n if (img) {\r\n setSelectedFileLandscape(img.naturalHeight < img.naturalWidth);\r\n }\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsItemKYActivity;\r\n","import React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport {useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\n\r\nexport type AlertDialogProp = {\r\n title:string,\r\n message:string,\r\n callback?:()=>void\r\n}\r\n\r\nexport const AlertDialogSlice = createSlice({\r\n name: \"alertDialog\",\r\n initialState: {\r\n title:\"\",\r\n message: \"\",\r\n open: false,\r\n callback: (() => {}) as (() => void)\r\n },\r\n reducers: {\r\n openAlert: (state, action:PayloadAction) => {\r\n state.open = true;\r\n state.title = action.payload.title;\r\n state.message = action.payload.message;\r\n state.callback = action.payload.callback ?? (() => {});\r\n },\r\n closeAlert:(state,action) => {\r\n state.open = false;\r\n state.title = \"\";\r\n state.message = \"\";\r\n }\r\n },\r\n});\r\n\r\n\r\n\r\nfunction AlertDialog() {\r\n const title = useSelector((state: RootState) => state.alert.title);\r\n const message = useSelector((state: RootState) => state.alert.message);\r\n const open = useSelector((state: RootState) => state.alert.open);\r\n const callback = useSelector((state: RootState) => state.alert.callback);\r\n const dispatch = useDispatch();\r\n\r\n const handleClose = () => {\r\n if(callback)\r\n callback();\r\n \r\n dispatch(AlertDialogSlice.actions.closeAlert(undefined));\r\n };\r\n\r\n return (\r\n \r\n {title}\r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\nexport default AlertDialog;","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport useLocalStorage from 'react-use-localstorage';\r\n\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n FormControl,\r\n FormControlLabel,\r\n Radio,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { GetItemIcon, ItemTypeKey, UseRadioGym } from \"../Constants\";\r\nimport { ContentsJson, DetailJson, MACategoryJson } from \"../net/NetworkClient\";\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { getCategoriesSv } from \"../net/ContentsAsync\";\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n heading: {\r\n\r\n },\r\n caution:{\r\n color:theme.palette.warning.main,\r\n fontSize:\"0.75em\",\r\n paddingLeft:theme.spacing(1)\r\n },\r\n label: {\r\n display: \"flex\"\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n}));\r\n\r\nconst NewCatItemDialog: React.FC<{\r\n open: boolean;\r\n tenantId: string;\r\n onClose: (ok: boolean, contents?: ContentsJson) => void;\r\n}> = ({ open, tenantId, onClose }) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(false);\r\n const [catJson, setCatJson] = useState();\r\n const [selectedValue, setSelectedValue] = useState(\"\" + ItemTypeKey.radioCalisthenics);\r\n // const [expanded, setExpanded] = React.useState('general');\r\n const [expanded, setExpanded] = useLocalStorage('newitem.expandedAccordion', 'general');\r\n\r\n\r\n //ダイアログを開いた・閉じた\r\n useEffect(() => {\r\n if (open) {\r\n setLoading(true);\r\n dispatch(\r\n getCategoriesSv({\r\n tenantId: tenantId,\r\n callback: async function (ok, cat) {\r\n setLoading(false);\r\n setCatJson(cat);\r\n console.log(cat);\r\n }\r\n }));\r\n\r\n } else {\r\n setCatJson(undefined);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n\r\n const onChangeRadio = (event: React.ChangeEvent) => {\r\n setSelectedValue(event.target.value);\r\n };\r\n\r\n const selectedTitle = (): string => {\r\n var re = \"\";\r\n if (catJson) {\r\n catJson.categories?.map((v) => {\r\n v.contents?.map((c) => {\r\n if (c.type === selectedValue) {\r\n re = c.title ?? \"\";\r\n }\r\n })\r\n })\r\n }\r\n return re;\r\n }\r\n\r\n const onCreateNewItem = (): ContentsJson | undefined => {\r\n var contents = new ContentsJson();\r\n var title = selectedTitle();\r\n contents.uuid = uuid();\r\n contents.title = title;\r\n contents.type = selectedValue;\r\n var detail = new DetailJson();\r\n switch (selectedValue) {\r\n case ItemTypeKey.radioCalisthenics:\r\n case ItemTypeKey.general_radioCalisthenics:\r\n case ItemTypeKey.kyActivity:\r\n case ItemTypeKey.rollCall:\r\n case ItemTypeKey.general_registration:\r\n return contents;\r\n case ItemTypeKey.workProcedure:\r\n detail.procedures = [];\r\n contents.details = detail;\r\n return contents;\r\n case ItemTypeKey.precautions:\r\n detail.precautions = [];\r\n contents.details = detail;\r\n return contents;\r\n case ItemTypeKey.safetyCall:\r\n case ItemTypeKey.general_chant:\r\n detail.call = \"\";\r\n detail.response = \"\";\r\n contents.details = detail;\r\n return contents;\r\n case ItemTypeKey.siteUpdates:\r\n case ItemTypeKey.general_photoList:\r\n case ItemTypeKey.general_phototextList:\r\n detail.updates = [];\r\n contents.details = detail;\r\n return contents;\r\n case ItemTypeKey.general_text:\r\n case ItemTypeKey.general_titletext1:\r\n case ItemTypeKey.general_titletext2:\r\n case ItemTypeKey.general_titletext3:\r\n case ItemTypeKey.general_titletext4:\r\n case ItemTypeKey.general_titletext5:\r\n detail.texts = [];\r\n contents.details = detail;\r\n return contents;\r\n case ItemTypeKey.general_speech:\r\n detail.speakers = [];\r\n contents.details = detail;\r\n return contents;\r\n case ItemTypeKey.general_questionnaire:\r\n detail.questions = [];\r\n contents.details = detail;\r\n return contents;\r\n }\r\n return undefined;\r\n };\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n 新しい項目を追加します\r\n \r\n \r\n \r\n \r\n \r\n \r\n 追加したい項目の種類を選択して追加ボタンを押してください。\r\n \r\n {\r\n catJson?.categories?.map((cat) => {\r\n if (cat.key === \"demo\") return null;\r\n\r\n return (\r\n {\r\n setExpanded(expand ? cat.key ?? \"\" : \"\");\r\n }}>\r\n }\r\n >\r\n {cat.label ?? \"\"}\r\n
\r\n
※スマホアプリでのご利用には、iPhone/AndroidアプリVer 2.0.1以上が必要です。
\r\n
\r\n \r\n\r\n \r\n \r\n {\r\n cat.contents?.map((cnt) => {\r\n if (!UseRadioGym &&\r\n (cnt.type === ItemTypeKey.radioCalisthenics\r\n || cnt.type === ItemTypeKey.general_radioCalisthenics)) {\r\n return null;\r\n } else if(cnt.type === ItemTypeKey.general_questionnaire){\r\n return null;\r\n }else{\r\n return (\r\n \r\n }\r\n label={{GetItemIcon(cnt.type ?? \"\")}{cnt.title}}\r\n labelPlacement=\"end\"\r\n />)\r\n }\r\n })\r\n }\r\n \r\n \r\n
\r\n )\r\n })\r\n }\r\n\r\n\r\n\r\n
\r\n \r\n {\r\n onClose(false);\r\n }}\r\n className={classes.btn}\r\n >\r\n キャンセル\r\n \r\n {\r\n const contents = onCreateNewItem();\r\n if (contents) {\r\n onClose(true, contents);\r\n }\r\n }}\r\n className={classes.btn}\r\n disabled={selectedValue === \"\"}\r\n >\r\n 追加\r\n \r\n \r\n \r\n );\r\n};\r\nexport default NewCatItemDialog;\r\n","import React, { ReactNode, useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport {\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n Card,\r\n CardContent,\r\n CardActions,\r\n Box,\r\n Tooltip,\r\n IconButton,\r\n} from \"@material-ui/core\";\r\nimport ArrowDownwardIcon from \"@material-ui/icons/ArrowDownward\";\r\nimport ArrowUpwardIcon from \"@material-ui/icons/ArrowUpward\";\r\nimport HighlightOffIcon from \"@material-ui/icons/HighlightOff\";\r\nimport { stringToItemTypeKey } from \"../../Constants\";\r\nimport AddBtn from \"./AddBtn\";\r\nimport {\r\n ContentsJson,\r\n MorningAssemblyJson,\r\n} from \"../../net/NetworkClient\";\r\nimport ActionSlice, { ActionType } from \"../../misc/ActionSlice\";\r\nimport { ConfirmDialogSlice } from \"../../misc/ConfirmDialog\";\r\nimport TitleText from \"./TitleText\";\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n //margin: \"auto\",\r\n overflow: \"hidden\",\r\n },\r\n content: {\r\n padding: \"20px 16px\",\r\n flexGrow: 1,\r\n },\r\n\r\n addpin: {\r\n height: \"30px\",\r\n color: \"rgba(0, 0, 0, 0.54)\",\r\n },\r\n addpinBox: {\r\n padding: \"0 !important\" as any,\r\n textAlign: \"right\",\r\n marginRight: \"1px\",\r\n },\r\n headerBox: {\r\n padding: \"0 !important\" as any,\r\n marginRight: \"1px\",\r\n },\r\n cardcontent: {\r\n \r\n paddingBottom:\"8px\"\r\n },\r\n itemActions: {\r\n justifyContent: \"flex-end\",\r\n paddingTop:\"0px\",\r\n paddingBottom:\"0px\"\r\n },\r\n}));\r\n\r\nexport interface DataType {\r\n title: string;\r\n list: T[];\r\n}\r\n\r\nexport interface IContentsItemListDelegate {\r\n getUUID(item: T): string;\r\n isSuported(type: string | undefined): boolean;\r\n copyData(data: DataType): DataType;\r\n contentsToData(contents: ContentsJson): DataType;\r\n buildContentsJson(contents: ContentsJson, data: DataType): ContentsJson;\r\n makeNewItem(): T;\r\n}\r\n\r\n\r\n\r\nexport interface IItemCardContentsProp {\r\n index:number;\r\n item?: object;\r\n contents?: ContentsJson;\r\n onUpdate?: (newData: ContentsJson) => void;\r\n onChanging?: (changing: boolean) => void;\r\n contentsid?:string;\r\n}\r\n\r\n\r\nexport interface IContentsItemListProps,H> {\r\n contentsid:string;\r\n delegate: IContentsItemListDelegate;\r\n cardContents: U\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n cardHeader?:H;\r\n}\r\n\r\n\r\nexport const ContentsItemListBase \r\n= ,H>\r\n(props: IContentsItemListProps & { children?: ReactNode }) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const [itemId, setItemId] = React.useState(\"\");\r\n\r\n\r\n //表示データ\r\n const [data, setData] = React.useState>({\r\n title: \"\",\r\n list: [],\r\n });\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n useEffect(() => {\r\n if (!props.delegate.isSuported(props.selectedItem?.key)){\r\n setItemId(\"\");\r\n setData({\r\n title: \"\",\r\n list: [],\r\n });\r\n return;\r\n }\r\n\r\n if (props.selectedItem?.id && props.jsonData) {\r\n if (props.selectedItem?.id !== itemId) {\r\n setItemId(props.selectedItem?.id);\r\n }\r\n const contents = props.jsonData?.contents?.find(\r\n (c) => c.uuid === props.selectedItem?.id\r\n );\r\n if (contents?.details) {\r\n const toData = props.delegate.contentsToData(contents);\r\n if (JSON.stringify(data) !== JSON.stringify(toData)) {\r\n setData(toData);\r\n }\r\n }\r\n }\r\n \r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_END}));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [props.selectedItem, props.jsonData]);\r\n\r\n function setDataAndPost(inData: DataType) {\r\n setData(inData);\r\n\r\n\r\n const contents = props.jsonData?.contents?.find(\r\n (c) => c.uuid === props.selectedItem?.id\r\n );\r\n\r\n if (contents) {\r\n const strsrc = JSON.stringify(contents);\r\n var copy = props.delegate.buildContentsJson(contents, inData);\r\n\r\n const dststr = JSON.stringify(copy);\r\n if (strsrc !== dststr) {\r\n props.onUpdate(copy);\r\n }\r\n }\r\n }\r\n\r\n //表示データのコピー\r\n function copyData() {\r\n return props.delegate.copyData(data);\r\n }\r\n\r\n //項目追加\r\n function addItem(index: number) {\r\n const item = props.delegate.makeNewItem();\r\n var list = [\r\n ...data.list.slice(0, index),\r\n item,\r\n ...data.list.slice(index),\r\n ];\r\n const newdata = copyData();\r\n newdata.list = list;\r\n setDataAndPost(newdata);\r\n }\r\n\r\n if (!props.delegate.isSuported(props.selectedItem?.key))\r\n return null;\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n var copy = copyData();\r\n copy.title = title;\r\n setDataAndPost(copy);\r\n }}\r\n onChanging={props.onChanging}\r\n />\r\n \r\n\r\n \r\n {props.cardHeader}\r\n \r\n\r\n \r\n {\r\n addItem(index);\r\n }}\r\n />\r\n \r\n\r\n {data.list.map((val, idx) => (\r\n \r\n \r\n c.uuid === itemId\r\n )}\r\n item={val}\r\n uparrow={idx > 0}\r\n downarrow={(data.list.length ?? 0) > idx + 1}\r\n selectedItem={props.selectedItem}\r\n onUpdate={props.onUpdate}\r\n onShift={(up, uuid) => {\r\n const newdata = copyData();\r\n var idx = data.list.findIndex((p) => props.delegate.getUUID(p) === uuid);\r\n if (idx >= 0) {\r\n const item = newdata.list.splice(idx, 1)[0];\r\n newdata.list.splice(idx + (up ? -1 : +1), 0, item);\r\n setDataAndPost(newdata);\r\n }\r\n }}\r\n onDelete={(uuid) => {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message: \"本当に削除してもよろしいですか?\",\r\n callback: (ok) => {\r\n if (ok) {\r\n const newdata = copyData();\r\n newdata.list = newdata.list.filter(\r\n (p) => props.delegate.getUUID(p) !== uuid\r\n );\r\n setDataAndPost(newdata);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n }\r\n })\r\n );\r\n }}\r\n onChanging={props.onChanging}\r\n >\r\n \r\n \r\n {\r\n addItem(index);\r\n }}\r\n />\r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\n\r\n\r\nexport interface ItemCardProps {\r\n index:number;\r\n contentsid:string;\r\n delegate: IContentsItemListDelegate;\r\n cardContents: U;\r\n contents?: ContentsJson;\r\n item: T;\r\n uparrow: boolean;\r\n downarrow: boolean;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onShift: (up: boolean, uuid: string) => void;\r\n onDelete: (uuid: string) => void;\r\n onChanging: (changing: boolean) => void;\r\n}\r\n\r\n//作業項目1つ分\r\nconst ItemCard = >(props: ItemCardProps) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {\r\n React.createElement(props.cardContents,{ \r\n index:props.index,\r\n contentsid:props.contentsid,\r\n item: props.item,\r\n contents: props.contents,\r\n onUpdate:props.onUpdate,\r\n onChanging:props.onChanging})\r\n }\r\n \r\n\r\n \r\n \r\n \r\n {\r\n props.onShift(true, props.delegate.getUUID(props.item));\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.onShift(false, props.delegate.getUUID(props.item));\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.onDelete(props.delegate.getUUID(props.item));\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentsItemListBase;\r\n","import { TextField } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport { ContentsJson, DetailJson, MorningAssemblyJson, SpeakerJson } from \"../../net/NetworkClient\";\r\nimport ContentsItemListBase, { DataType, IContentsItemListDelegate, IItemCardContentsProp } from \"./ContentsItemListBase\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { v4 as uuid } from \"uuid\";\r\n\r\n///スピーチパネル\r\nconst ContentsItemSpeach: React.FunctionComponent<{\r\n contentsid: string | undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsid, jsonData, selectedItem, onUpdate, onChanging }) => {\r\n\r\n return (\r\n \r\n\r\n \r\n )\r\n}\r\n\r\n///スピーチ処理デリゲート\r\nclass SpeachDelegate implements IContentsItemListDelegate{\r\n getUUID(item: SpeakerJson): string {\r\n return item.uuid ?? \"\";\r\n }\r\n isSuported(type: string | undefined): boolean {\r\n return type === ItemTypeKey.general_speech;\r\n }\r\n\r\n copyData(data: DataType): DataType {\r\n return {\r\n title: \"\" + data.title,\r\n list: data.list.map((p) => new SpeakerJson(p)),\r\n }\r\n }\r\n\r\n contentsToData(contents: ContentsJson): DataType {\r\n return {\r\n title: contents.title ?? \"\",\r\n list: contents.details?.speakers ?? []\r\n }\r\n }\r\n\r\n buildContentsJson(contents: ContentsJson, data: DataType): ContentsJson {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n copy.title = \"\" + data.title;\r\n\r\n const tmp = new DetailJson();\r\n tmp.speakers = data.list;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n return copy;\r\n }\r\n\r\n makeNewItem(): SpeakerJson {\r\n var re = new SpeakerJson();\r\n re.uuid = uuid();\r\n return re;\r\n }\r\n}\r\n\r\n\r\n///スピーチのカード内容\r\nconst SpeachCardContents: React.FunctionComponent\r\n = ({ index, item, contents, onUpdate, onChanging }) => {\r\n\r\n const [data, setData] = React.useState(item instanceof SpeakerJson ? item.name ?? \"\" : \"\");\r\n\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (item instanceof SpeakerJson) {\r\n if (item.name !== data) {\r\n updateContentsJson();\r\n }\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //データ更新\r\n function updateContentsJson() {\r\n const prec = new SpeakerJson(item);\r\n prec.name = data;\r\n\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.speakers = newdata.details?.speakers?.map((p) =>\r\n p.uuid === prec.uuid ? prec : p\r\n );\r\n if (onUpdate)\r\n onUpdate(newdata);\r\n if (onChanging)\r\n onChanging(false);\r\n }\r\n\r\n\r\n if (!item) return null;\r\n\r\n return (\r\n {\r\n if (onChanging)\r\n onChanging(true);\r\n setData(e.target.value);\r\n }}\r\n >\r\n )\r\n }\r\n\r\n\r\nexport default ContentsItemSpeach;\r\n","import { TextField } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport { ContentsJson, DetailJson, LineJson, MorningAssemblyJson, TextJson } from \"../../net/NetworkClient\";\r\nimport ContentsItemListBase, { DataType, IContentsItemListDelegate, IItemCardContentsProp } from \"./ContentsItemListBase\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { v4 as uuid } from \"uuid\";\r\n\r\n\r\n\r\n///テキストパネル\r\nconst ContentsItemText: React.FunctionComponent<{\r\n contentsid:string|undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsid,jsonData, selectedItem, onUpdate, onChanging }) => {\r\n\r\n return (\r\n \r\n\r\n \r\n )\r\n}\r\n\r\n///テキスト処理デリゲート\r\nclass TextDelegate implements IContentsItemListDelegate{\r\n getUUID(item: TextJson): string {\r\n return item.uuid ?? \"\";\r\n }\r\n isSuported(type: string | undefined): boolean {\r\n return type === ItemTypeKey.general_text;\r\n }\r\n\r\n copyData(data: DataType): DataType {\r\n return {\r\n title: \"\" + data.title,\r\n list: data.list.map((p) => new TextJson(p)),\r\n }\r\n }\r\n\r\n contentsToData(contents: ContentsJson): DataType {\r\n return {\r\n title: contents.title ?? \"\",\r\n list: contents.details?.texts ?? []\r\n }\r\n }\r\n\r\n buildContentsJson(contents: ContentsJson, data: DataType): ContentsJson {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n copy.title = \"\" + data.title;\r\n\r\n const tmp = new DetailJson();\r\n tmp.texts = data.list;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n return copy;\r\n }\r\n\r\n makeNewItem(): TextJson {\r\n var re = new TextJson();\r\n re.uuid = uuid();\r\n return re;\r\n }\r\n}\r\n\r\n\r\n///テキストのカード内容\r\nconst TextCardContents: React.FunctionComponent\r\n = ({ index, item, contents, onUpdate, onChanging }) => {\r\n\r\n const [data, setData] = React.useState(item instanceof TextJson ? getValue(item) : \"\");\r\n\r\n function getValue(json: TextJson | undefined): string {\r\n if (json && json.lines) {\r\n return json.lines[0].text ?? \"\";\r\n }\r\n return \"\";\r\n }\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (item instanceof TextJson) {\r\n if (getValue(item) !== data) {\r\n updateContentsJson();\r\n }\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //データ更新\r\n function updateContentsJson() {\r\n const prec = new TextJson(item);\r\n var line = new LineJson();\r\n line.text = data;\r\n prec.lines = [line];\r\n\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.texts = newdata.details?.texts?.map((p) =>\r\n p.uuid === prec.uuid ? prec : p\r\n );\r\n if (onUpdate)\r\n onUpdate(newdata);\r\n if (onChanging)\r\n onChanging(false);\r\n }\r\n\r\n\r\n if (!item) return null;\r\n\r\n return (\r\n {\r\n if (onChanging)\r\n onChanging(true);\r\n setData(e.target.value);\r\n }}\r\n >\r\n )\r\n }\r\n\r\n\r\nexport default ContentsItemText;\r\n","import { Card, CardContent, TextField } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport { ContentsJson, DetailJson, LineJson, MorningAssemblyJson, TextJson } from \"../../net/NetworkClient\";\r\nimport ContentsItemListBase, { DataType, IContentsItemListDelegate, IItemCardContentsProp } from \"./ContentsItemListBase\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n typeTitle: {\r\n textAlign: \"left\",\r\n marginTop: theme.spacing(2)\r\n },\r\n labelCard:{\r\n backgroundColor:theme.palette.grey[200]\r\n }\r\n}));\r\n\r\n///テキストパネル\r\nconst ContentsItemTitleText: React.FunctionComponent<{\r\n contentsid:string|undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsid,jsonData, selectedItem, onUpdate, onChanging }) => {\r\n\r\n var contents = jsonData?.contents?.find(\r\n (c) => c.uuid === selectedItem?.id\r\n )\r\n return (\r\n }\r\n >\r\n\r\n \r\n )\r\n}\r\ninterface TitleData {\r\n title1: string;\r\n title2: string;\r\n title3: string;\r\n title4: string;\r\n title5: string;\r\n}\r\nconst TitlesHeader: React.FunctionComponent<{\r\n contents?: ContentsJson;\r\n onUpdate?: (newData: ContentsJson) => void;\r\n onChanging?: (changing: boolean) => void;\r\n}>\r\n = ({ contents, onUpdate, onChanging }) => {\r\n var TextCount = (): number => {\r\n switch (contents?.type) {\r\n case ItemTypeKey.general_titletext1:\r\n return 1;\r\n case ItemTypeKey.general_titletext2:\r\n return 2;\r\n case ItemTypeKey.general_titletext3:\r\n return 3;\r\n case ItemTypeKey.general_titletext4:\r\n return 4;\r\n case ItemTypeKey.general_titletext5:\r\n return 5;\r\n }\r\n return 0;\r\n };\r\n function getTitleTarget(): object | undefined {\r\n if (contents?.details?.texts)\r\n return contents.details.texts[0];\r\n return undefined;\r\n }\r\n function getTitle(index: number, json: object | undefined): string {\r\n if (!(json instanceof TextJson))\r\n return \"\";\r\n\r\n if (json && json.lines && json.lines.length > index) {\r\n return json.lines[index].title ?? \"\";\r\n }\r\n return \"\";\r\n }\r\n const [data, setData] = React.useState(jsonToData());\r\n\r\n useEffect(() => {\r\n var copy = jsonToData();\r\n if (copy && !isEqual(copy, data)) {\r\n setData(copy);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [contents]);\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (!isEqual(jsonToData(), data)) {\r\n updateContentsJson();\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n function jsonToData(): TitleData | undefined {\r\n var tc = TextCount();\r\n if (tc <= 0)\r\n return undefined;\r\n return {\r\n title1: getTitle(0, getTitleTarget()),\r\n title2: getTitle(1, getTitleTarget()),\r\n title3: getTitle(2, getTitleTarget()),\r\n title4: getTitle(3, getTitleTarget()),\r\n title5: getTitle(4, getTitleTarget())\r\n }\r\n }\r\n\r\n //データ更新\r\n function updateContentsJson() {\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details)\r\n newdata.details = new DetailJson();\r\n \r\n var tc = TextCount();\r\n\r\n //全体のラベルを設定\r\n newdata.details.texts?.map((val, idx) => {\r\n if(!val.lines || val.lines.length < tc){\r\n if(!val.lines)\r\n val.lines = [];\r\n while(val.lines.length < tc){\r\n val.lines.push(new LineJson());\r\n }\r\n }\r\n\r\n val.lines?.map((line, ln) => {\r\n switch (ln) {\r\n case 0:\r\n line.title = data?.title1;\r\n break;\r\n\r\n case 1:\r\n line.title = data?.title2;\r\n break;\r\n\r\n case 2:\r\n line.title = data?.title3;\r\n break;\r\n\r\n case 3:\r\n line.title = data?.title4;\r\n break;\r\n\r\n case 4:\r\n line.title = data?.title5;\r\n break;\r\n }\r\n })\r\n });\r\n\r\n if (onUpdate)\r\n onUpdate(newdata);\r\n if (onChanging)\r\n onChanging(false);\r\n }\r\n\r\n function isEqual(v1?: TitleData, v2?: TitleData) {\r\n const eq = (s1?: string, s2?: string): boolean => {\r\n if (!s1 && !s2)\r\n return true;\r\n return s1 === s2;\r\n }\r\n return (\r\n eq(v1?.title1, v2?.title1)\r\n && eq(v1?.title2, v2?.title2)\r\n && eq(v1?.title3, v2?.title3)\r\n && eq(v1?.title4, v2?.title4)\r\n && eq(v1?.title5, v2?.title5)\r\n );\r\n }\r\n\r\n\r\n function copyData(): TitleData {\r\n return JSON.parse(JSON.stringify(data));\r\n }\r\n const classes = useStyles();\r\n\r\n if(!getTitleTarget())\r\n return null;\r\n\r\n return (\r\n \r\n \r\n タイトル設定\r\n {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.title1 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n\r\n = 2 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.title2 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n\r\n = 3 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.title3 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n\r\n = 4 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.title4 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n\r\n\r\n = 5 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.title5 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n \r\n \r\n );\r\n }\r\n\r\n///テキスト処理デリゲート\r\nclass TextDelegate implements IContentsItemListDelegate{\r\n getUUID(item: TextJson): string {\r\n return item.uuid ?? \"\";\r\n }\r\n isSuported(type: string | undefined): boolean {\r\n switch (type) {\r\n case ItemTypeKey.general_titletext1:\r\n case ItemTypeKey.general_titletext2:\r\n case ItemTypeKey.general_titletext3:\r\n case ItemTypeKey.general_titletext4:\r\n case ItemTypeKey.general_titletext5:\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n copyData(data: DataType): DataType {\r\n return {\r\n title: \"\" + data.title,\r\n list: data.list.map((p) => new TextJson(p)),\r\n }\r\n }\r\n\r\n contentsToData(contents: ContentsJson): DataType {\r\n return {\r\n title: contents.title ?? \"\",\r\n list: contents.details?.texts ?? []\r\n }\r\n }\r\n\r\n buildContentsJson(contents: ContentsJson, data: DataType): ContentsJson {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n copy.title = \"\" + data.title;\r\n\r\n const tmp = new DetailJson();\r\n tmp.texts = data.list;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n return copy;\r\n }\r\n\r\n makeNewItem(): TextJson {\r\n var re = new TextJson();\r\n re.uuid = uuid();\r\n return re;\r\n }\r\n}\r\n\r\ninterface TitleTextData {\r\n text1: string;\r\n text2: string;\r\n text3: string;\r\n text4: string;\r\n text5: string;\r\n}\r\n\r\n///テキストのカード内容\r\nconst TitleTextCardContents: React.FunctionComponent\r\n = ({ index, item, contents, onUpdate, onChanging }) => {\r\n var textCount = 0;\r\n switch (contents?.type) {\r\n case ItemTypeKey.general_titletext1:\r\n textCount = 1;\r\n break;\r\n case ItemTypeKey.general_titletext2:\r\n textCount = 2;\r\n break;\r\n case ItemTypeKey.general_titletext3:\r\n textCount = 3;\r\n break;\r\n case ItemTypeKey.general_titletext4:\r\n textCount = 4;\r\n break;\r\n case ItemTypeKey.general_titletext5:\r\n textCount = 5;\r\n break;\r\n }\r\n const [data, setData] = React.useState({\r\n text1: getText(0, item),\r\n text2: getText(1, item),\r\n text3: getText(2, item),\r\n text4: getText(3, item),\r\n text5: getText(4, item),\r\n });\r\n function copyData(): TitleTextData {\r\n return JSON.parse(JSON.stringify(data));\r\n }\r\n function getTitle(index: number): string {\r\n if(!contents?.details?.texts)\r\n return \"\";\r\n \r\n if(!contents?.details?.texts[0])\r\n return \"\";\r\n var lines = contents?.details?.texts[0].lines;\r\n if(!lines)\r\n return \"\";\r\n \r\n if(lines.length <= index)\r\n return \"\";\r\n \r\n return lines[index].title ?? \"\";\r\n }\r\n function getText(index: number, json: object | undefined): string {\r\n if (!(json instanceof TextJson))\r\n return \"\";\r\n if (json && json.lines && json.lines.length > index) {\r\n return json.lines[index].text ?? \"\";\r\n }\r\n return \"\";\r\n }\r\n\r\n //データが等しいかどうか確認する\r\n function isEqual(v1: TitleTextData, v2: TitleTextData): boolean {\r\n const eq = (s1: string, s2: string): boolean => {\r\n if (!s1 && !s2)\r\n return true;\r\n return s1 === s2;\r\n }\r\n return (eq(v1.text1, v2.text1)\r\n && eq(v1.text2, v2.text2)\r\n && eq(v1.text3, v2.text3)\r\n && eq(v1.text4, v2.text4)\r\n && eq(v1.text5, v2.text5)\r\n );\r\n }\r\n\r\n function toData(d: TextJson): TitleTextData {\r\n return {\r\n text1: getText(0, d),\r\n text2: getText(1, d),\r\n text3: getText(2, d),\r\n text4: getText(3, d),\r\n text5: getText(4, d),\r\n } as TitleTextData;\r\n }\r\n\r\n useEffect(() => {\r\n var copy = copyData();\r\n if (!isEqual(copy, data)) {\r\n setData(copy);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [item]);\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (item instanceof TextJson) {\r\n if (!isEqual(toData(item), data)) {\r\n updateContentsJson();\r\n }\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //データ更新\r\n function updateContentsJson() {\r\n\r\n const prec = new TextJson(item);\r\n var lines: LineJson[] = [];\r\n\r\n for (var i = 0; i < textCount; i++) {\r\n var line = new LineJson();\r\n switch (i) {\r\n case 0:\r\n line.title = getTitle(0);\r\n line.text = data.text1;\r\n break;\r\n case 1:\r\n line.title = getTitle(1);\r\n line.text = data.text2;\r\n break;\r\n case 2:\r\n line.title = getTitle(2);\r\n line.text = data.text3;\r\n break;\r\n case 3:\r\n line.title = getTitle(3);\r\n line.text = data.text4;\r\n break;\r\n case 4:\r\n line.title = getTitle(4);\r\n line.text = data.text5;\r\n break;\r\n }\r\n lines.push(line);\r\n }\r\n\r\n prec.lines = lines;\r\n\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.texts = newdata.details?.texts?.map((p) =>\r\n p.uuid === prec.uuid ? prec : p\r\n );\r\n\r\n if (onUpdate)\r\n onUpdate(newdata);\r\n if (onChanging)\r\n onChanging(false);\r\n }\r\n\r\n\r\n if (!item) return null;\r\n\r\n return (\r\n \r\n\r\n {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.text1 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n = 2 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.text2 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n = 3 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.text3 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n = 4 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.text4 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n\r\n = 5 ? \"block\" : \"none\") }}\r\n onChange={(e) => {\r\n if (onChanging)\r\n onChanging(true);\r\n var copy = copyData();\r\n copy.text5 = e.target.value;\r\n setData(copy);\r\n }}\r\n >\r\n \r\n )\r\n }\r\n\r\n\r\nexport default ContentsItemTitleText;\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n GridList,\r\n GridListTile,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { MAFile } from \"../net/NetworkClient\";\r\nimport { findPhotosSv } from \"../net/ContentsAsync\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { RootState } from \"../Store\";\r\nimport moment from \"moment-timezone\";\r\nimport { GridListTileBar } from \"@material-ui/core\";\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport { ButtonBackGround } from \"../Constants\";\r\nimport CameraIcon from '@material-ui/icons/Camera';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n heading: {\r\n\r\n },\r\n templateItem: {\r\n paddingLeft: \"1em\",\r\n fontSize: \"0.9em\"\r\n },\r\n label: {\r\n display: \"flex\"\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n caution: {\r\n color: theme.palette.error.main,\r\n fontSize: \"0.9em\",\r\n paddingTop: theme.spacing(2)\r\n },\r\n gridList: {\r\n width: \"570px\",\r\n height: \"400px\"\r\n },\r\n selectedIcon:{\r\n color:ButtonBackGround,\r\n position:\"absolute\",\r\n top:theme.spacing(1),\r\n left:theme.spacing(1),\r\n backgroundColor:theme.palette.common.white,\r\n borderRadius:\"5px\"\r\n },\r\n nonselectedIcon:{\r\n display:\"none\"\r\n },\r\n cameraIcon:{\r\n color:theme.palette.common.white,\r\n display:\"flex\",\r\n right:0,\r\n top:0,\r\n position:\"absolute\",\r\n zIndex:100\r\n }\r\n\r\n}));\r\n\r\n\r\nexport type PhotoSelectDialogProp = {\r\n callback: ((ok: boolean, file: MAFile | undefined) => void) | undefined,\r\n contentsid: string,\r\n open: boolean\r\n}\r\nconst initialState: PhotoSelectDialogProp = {\r\n callback: undefined,\r\n contentsid: \"\",\r\n open: false,\r\n};\r\nexport const PhotoSelectDialogSlice = createSlice({\r\n name: \"PhotoSelectDialog\",\r\n initialState: initialState,\r\n reducers: {\r\n openPhotoSelect: (state, action: PayloadAction<{ contentsid: string, callback: ((ok: boolean, file: MAFile | undefined) => void) }>) => {\r\n state.open = true;\r\n state.contentsid = action.payload.contentsid;\r\n state.callback = action.payload.callback;\r\n },\r\n closePhotoSelect: (state, action) => {\r\n state.open = false;\r\n state.contentsid = \"\";\r\n state.callback = undefined;\r\n }\r\n },\r\n});\r\n\r\n\r\n\r\nconst PhotoSelectDialog = () => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(false);\r\n const [photos, setPhotos] = useState();\r\n\r\n const [selected, setSelected] = useState();\r\n\r\n const { contentsid, open } = useSelector((state: RootState) => state.photoSelect);\r\n const onClose = useSelector((state: RootState) => state.photoSelect.callback);\r\n //ダイアログを開いた・閉じた\r\n useEffect(() => {\r\n if (open) {\r\n refresh();\r\n } else {\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n const refresh = () => {\r\n setLoading(true);\r\n\r\n dispatch(findPhotosSv({\r\n contentsId: contentsid ?? \"\",\r\n callback: (ok, files) => {\r\n setSelected(undefined);\r\n setPhotos(files);\r\n setLoading(false);\r\n console.log(files)\r\n }\r\n }))\r\n }\r\n\r\n\r\n return (\r\n {\r\n if (onClose)\r\n onClose(false, undefined);\r\n }}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n 画像選択\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {!photos ? : photos.map((photo) => (\r\n\r\n\r\n {setSelected(photo)}}\r\n >\r\n\r\n \"thumbnail\"\r\n \r\n \r\n {photo.title }}\r\n />\r\n {moment(photo.createUTC).format(\"YYYY/MM/DD HH:mm\")}}\r\n />\r\n \r\n\r\n\r\n ))}\r\n \r\n\r\n\r\n\r\n \r\n \r\n {\r\n if (onClose)\r\n onClose(false, undefined);\r\n }}\r\n className={classes.btn}>\r\n キャンセル\r\n {\r\n if (onClose){\r\n onClose(true, selected);\r\n }\r\n }}\r\n className={classes.btn}\r\n disabled={loading || !selected}>\r\n\r\n 選択\r\n \r\n \r\n );\r\n};\r\nexport default PhotoSelectDialog;\r\n","import { Button, FormControl, FormControlLabel, FormHelperText, InputLabel, Paper, Radio, TextField, Tooltip } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { ButtonBackGround, ItemTypeKey, UnregisteredUpdateURL } from \"../../Constants\";\r\nimport { ContentsJson, DetailJson, MorningAssemblyJson, UpdateJson } from \"../../net/NetworkClient\";\r\nimport ContentsItemListBase, { DataType, IContentsItemListDelegate, IItemCardContentsProp } from \"./ContentsItemListBase\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { v4 as uuid } from \"uuid\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport localFiles from \"./LocalFiles\";\r\nimport PictureAsPdfIcon from '@material-ui/icons/PictureAsPdf';\r\nimport InsertPhotoIcon from '@material-ui/icons/InsertPhoto';\r\nimport { ButtonGroup } from \"@material-ui/core\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { copyFileToContentPhotoSv } from \"../../net/ContentsAsync\";\r\nimport { PhotoSelectDialogSlice } from \"../PhotoSelectDialog\";\r\nimport { AlertDialogSlice } from \"../../misc/AlertDialog\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n overflow: \"hidden\",\r\n },\r\n content: {\r\n padding: \"20px 16px\",\r\n flexGrow: 1,\r\n },\r\n itemActions: {\r\n justifyContent: \"flex-end\",\r\n },\r\n addpinBox: {\r\n padding: \"0 !important\" as any,\r\n textAlign: \"right\",\r\n marginRight: \"1px\",\r\n },\r\n pathLabel: {\r\n paddingLeft: \"8px\",\r\n bottom: 0,\r\n },\r\n fileBtn: {\r\n padding: 0,\r\n marginTop: theme.spacing(2)\r\n },\r\n ctrl: {\r\n paddingBottom: theme.spacing(2),\r\n },\r\n img: {\r\n maxWidth: \"100px\",\r\n maxHeight: \"100px\",\r\n },\r\n imgPaper: {\r\n marginTop: theme.spacing(2),\r\n minWidth: \"100px\",\r\n minHeight: \"100px\",\r\n background: \"rgba(200,200,200,0.1)\",\r\n padding: theme.spacing(1),\r\n marginRight:\"100%\"\r\n },\r\n sizeBtnSelected: {\r\n textTransform: \"none\",\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround,\r\n },\r\n sizeBtn: {\r\n textTransform: \"none\",\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.common.white,\r\n },\r\n\r\n findPhotoBtn: {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.common.white,\r\n marginBottom: theme.spacing(1)\r\n },\r\n\r\n resizeOp: {\r\n flexDirection: \"row\"\r\n }\r\n}));\r\n\r\n\r\n///テキストパネル\r\nconst ContentsItemPhotoList: React.FunctionComponent<{\r\n contentsid: string | undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsid, jsonData, selectedItem, onUpdate, onChanging }) => {\r\n\r\n return (\r\n \r\n\r\n \r\n )\r\n}\r\n\r\n///テキスト処理デリゲート\r\nclass PhotoListDelegate implements IContentsItemListDelegate{\r\n getUUID(item: UpdateJson): string {\r\n return item.uuid ?? \"\";\r\n }\r\n isSuported(type: string | undefined): boolean {\r\n return type === ItemTypeKey.siteUpdates\r\n || type === ItemTypeKey.general_photoList\r\n || type === ItemTypeKey.general_phototextList;\r\n }\r\n\r\n copyData(data: DataType): DataType {\r\n return {\r\n title: \"\" + data.title,\r\n list: data.list.map((p) => new UpdateJson(p)),\r\n }\r\n }\r\n\r\n contentsToData(contents: ContentsJson): DataType {\r\n return {\r\n title: contents.title ?? \"\",\r\n list: contents.details?.updates ?? []\r\n }\r\n }\r\n\r\n buildContentsJson(contents: ContentsJson, data: DataType): ContentsJson {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n copy.title = \"\" + data.title;\r\n\r\n const tmp = new DetailJson();\r\n tmp.updates = data.list;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n return copy;\r\n }\r\n\r\n makeNewItem(): UpdateJson {\r\n var re = new UpdateJson();\r\n re.uuid = uuid();\r\n return re;\r\n }\r\n}\r\n\r\ninterface PhotoListData {\r\n\r\n}\r\n\r\ninterface PhotoListData {\r\n uuid: string;\r\n title: string;\r\n detail: string;\r\n sizeType: number;\r\n url: string;\r\n localFileObject: any;\r\n objectUrl: string;\r\n}\r\n\r\n///写真のカード内容\r\nconst PhotoListCardContents: React.FunctionComponent\r\n = ({ index, item, contents, onUpdate, onChanging, contentsid }) => {\r\n\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n const [data, setData] = React.useState(getValue(item));\r\n const hasDetail = (): boolean => { return contents?.type === ItemTypeKey.general_phototextList };\r\n var createObjectURL = (window.URL || window.webkitURL).createObjectURL;\r\n\r\n\r\n\r\n function getValue(json: object | undefined): PhotoListData {\r\n if (json && json instanceof UpdateJson) {\r\n var vuuid = json.uuid ?? uuid()\r\n return {\r\n uuid: vuuid,\r\n title: json.title ?? \"\",\r\n detail: json.detail ?? \"\",\r\n sizeType: json.sizeType ?? 0,\r\n url: json.url ?? \"\",\r\n localFileObject: undefined,\r\n objectUrl: localFiles.getObjectUrl(vuuid)\r\n };\r\n }\r\n return {\r\n uuid: uuid(),\r\n title: \"\",\r\n detail: \"\",\r\n sizeType: 0,\r\n url: \"\",\r\n localFileObject: undefined,\r\n objectUrl: \"\"\r\n };\r\n }\r\n\r\n function copyData(): PhotoListData {\r\n return {\r\n uuid: \"\" + data.uuid ?? uuid(),\r\n title: \"\" + data.title,\r\n detail: \"\" + data.detail,\r\n sizeType: data.sizeType,\r\n url: \"\" + data.url,\r\n localFileObject: data.localFileObject,\r\n objectUrl: data.objectUrl\r\n }\r\n }\r\n\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (item instanceof UpdateJson) {\r\n if (item.title !== data.title || item.detail !== data.detail || item.url !== data.url || data.objectUrl) {\r\n updateContentsJson();\r\n }\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //データ更新\r\n function updateContentsJson() {\r\n const prec = new UpdateJson(item);\r\n\r\n prec.title = data?.title;\r\n prec.detail = data?.detail;\r\n prec.sizeType = data.sizeType;\r\n if (!!data?.objectUrl) {\r\n prec.url = UnregisteredUpdateURL;\r\n } else if (prec.url !== data.url) {\r\n prec.url = data.url;\r\n }\r\n\r\n\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.updates = newdata.details?.updates?.map((p) =>\r\n p.uuid === prec.uuid ? prec : p\r\n );\r\n if (onUpdate)\r\n onUpdate(newdata);\r\n if (onChanging)\r\n onChanging(false);\r\n }\r\n\r\n const isNoImage = (): boolean => {\r\n return (!data.url || data.url === UnregisteredUpdateURL) && !data.objectUrl;;\r\n }\r\n const isPdfFile = (): boolean => {\r\n return (\"\" + data.url).toLowerCase().endsWith(\".pdf\")\r\n || (\"\" + data.localFileObject?.name).toLowerCase().endsWith(\".pdf\");\r\n }\r\n //ファイルが登録されているかどうかの確認\r\n const checkFile = (): boolean => {\r\n if (data.url) {\r\n if (UnregisteredUpdateURL === data.url) {\r\n //サーバ未登録\r\n return !!data.localFileObject;\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n if (!item) return null;\r\n\r\n return (\r\n \r\n {\r\n const copy = copyData();\r\n copy.title = e.target.value;\r\n if (onChanging)\r\n onChanging(true);\r\n setData(copy);\r\n }}\r\n >\r\n\r\n {\r\n const copy = copyData();\r\n copy.detail = e.target.value;\r\n if (onChanging)\r\n onChanging(true);\r\n setData(copy);\r\n }}\r\n >\r\n\r\n \r\n リサイズオプション\r\n \r\n {\r\n const copy = copyData();\r\n copy.sizeType = 0;\r\n if (onChanging)\r\n onChanging(true);\r\n setData(copy);\r\n }}\r\n value=\"0\"\r\n />}\r\n label=\"低画質\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n\r\n \r\n {\r\n const copy = copyData();\r\n copy.sizeType = 1;\r\n if (onChanging)\r\n onChanging(true);\r\n setData(copy);\r\n }}\r\n value=\"1\"\r\n />}\r\n label=\"標準画質\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n\r\n \r\n {\r\n const copy = copyData();\r\n copy.sizeType = 2;\r\n if (onChanging)\r\n onChanging(true);\r\n setData(copy);\r\n }}\r\n value=\"2\"\r\n />}\r\n label=\"高画質\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n\r\n \r\n {\r\n const copy = copyData();\r\n copy.sizeType = 99;\r\n if (onChanging)\r\n onChanging(true);\r\n setData(copy);\r\n }}\r\n value=\"99\"\r\n />}\r\n label=\"リサイズ無し\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n\r\n \r\n ファイル\r\n \r\n \r\n PCからアップロード...\r\n {\r\n if (e.target.files && e.target.files.length > 0) {\r\n var url = createObjectURL(e.target.files[0]);\r\n localFiles.addFile({\r\n uuid: data.uuid,\r\n file: e.target.files[0],\r\n objectUrl: url,\r\n });\r\n var copy = copyData();\r\n copy.objectUrl = url;\r\n copy.localFileObject = e.target.files[0];\r\n setData(copy);\r\n }\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n\r\n \r\n {checkFile() ? \"\" : \"ファイルを選択して下さい\"}\r\n \r\n \r\n \r\n \r\n \"thumbnail\"\r\n\r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n\r\nexport default ContentsItemPhotoList;\r\n","import { TextField } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { ItemTypeKey } from \"../../Constants\";\r\nimport { ContentsJson, DetailJson, MorningAssemblyJson, QuestionJson } from \"../../net/NetworkClient\";\r\nimport ContentsItemListBase, { DataType, IContentsItemListDelegate, IItemCardContentsProp } from \"./ContentsItemListBase\";\r\nimport { useDebounce } from \"use-debounce\";\r\nimport { v4 as uuid } from \"uuid\";\r\n\r\n\r\n///テキストパネル\r\nconst ContentsItemQuestionnaire: React.FunctionComponent<{\r\n contentsid: string | undefined;\r\n jsonData: MorningAssemblyJson | undefined;\r\n selectedItem: { key: string; id: string } | undefined;\r\n onUpdate: (newData: ContentsJson) => void;\r\n onChanging: (changing: boolean) => void;\r\n}> = ({ contentsid, jsonData, selectedItem, onUpdate, onChanging }) => {\r\n\r\n return (\r\n \r\n\r\n \r\n )\r\n}\r\n\r\n///テキスト処理デリゲート\r\nclass QuestionnaireDelegate implements IContentsItemListDelegate{\r\n getUUID(item: QuestionJson): string {\r\n return item.uuid ?? \"\";\r\n }\r\n isSuported(type: string | undefined): boolean {\r\n return type === ItemTypeKey.general_questionnaire;\r\n }\r\n\r\n copyData(data: DataType): DataType {\r\n return {\r\n title: \"\" + data.title,\r\n list: data.list.map((p) => new QuestionJson(p)),\r\n }\r\n }\r\n\r\n contentsToData(contents: ContentsJson): DataType {\r\n return {\r\n title: contents.title ?? \"\",\r\n list: contents.details?.questions ?? []\r\n }\r\n }\r\n\r\n buildContentsJson(contents: ContentsJson, data: DataType): ContentsJson {\r\n var copy = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n copy.title = \"\" + data.title;\r\n\r\n const tmp = new DetailJson();\r\n tmp.questions = data.list;\r\n const detail = DetailJson.fromJS(JSON.parse(JSON.stringify(tmp)));\r\n copy.details = detail;\r\n return copy;\r\n }\r\n\r\n makeNewItem(): QuestionJson {\r\n var re = new QuestionJson();\r\n re.uuid = uuid();\r\n return re;\r\n }\r\n}\r\n\r\n\r\n///テキストのカード内容\r\nconst QuestionnaireCardContents: React.FunctionComponent\r\n = ({ index, item, contents, onUpdate, onChanging }) => {\r\n\r\n const [data, setData] = React.useState(item instanceof QuestionJson ? item.question ?? \"\" : \"\");\r\n\r\n //OnChangeの度にJsonを更新すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(data, 500);\r\n useEffect(() => {\r\n if (item instanceof QuestionJson) {\r\n if (item.question !== data) {\r\n updateContentsJson();\r\n }\r\n }\r\n return;\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData]);\r\n\r\n //データ更新\r\n function updateContentsJson() {\r\n const prec = new QuestionJson(item);\r\n\r\n prec.question = data;\r\n\r\n var newdata = ContentsJson.fromJS(JSON.parse(JSON.stringify(contents)));\r\n\r\n if (!newdata.details) newdata.details = new DetailJson();\r\n newdata.details.questions = newdata.details?.questions?.map((p) =>\r\n p.uuid === prec.uuid ? prec : p\r\n );\r\n if (onUpdate)\r\n onUpdate(newdata);\r\n if (onChanging)\r\n onChanging(false);\r\n }\r\n\r\n\r\n if (!item) return null;\r\n\r\n return (\r\n {\r\n if (onChanging)\r\n onChanging(true);\r\n setData(e.target.value);\r\n }}\r\n >\r\n )\r\n }\r\n\r\n\r\nexport default ContentsItemQuestionnaire;\r\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { MorningAssemblyJson, TemplatesV2Client, MATemplate } from \"./NetworkClient\";\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport { SERVER_URL } from \"../Constants\";\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\n\r\n//テンプレートリスト取得\r\nexport const getTemplateListSv = createAsyncThunk void }>(\r\n \"template/find\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n const tmplist = await (new TemplatesV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).find(arg.tenantId);\r\n arg.callback(true, tmplist);\r\n return tmplist;\r\n } catch (err) {\r\n console.log(err);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"テンプレートリストの読み込みに失敗しました\",\r\n })\r\n );\r\n arg.callback(false, []);\r\n throw err;\r\n }\r\n }\r\n );\r\n\r\n\r\n//テンプレートJSONデータ取得\r\nexport const getTemplateDataSv = createAsyncThunk void }>(\r\n \"template/getData\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n const json = await (new TemplatesV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getData(arg.templateId);\r\n arg.callback(true, json);\r\n return json;\r\n } catch (err) {\r\n console.log(err);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"テンプレートデータの読み込みに失敗しました\",\r\n })\r\n );\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n );\r\n\r\n//テンプレート作成\r\nexport const postTemplateSv = createAsyncThunk void }>(\r\n \"contents/postTemplate\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var re = await (new TemplatesV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).post(arg.tenantId, arg.name, arg.contentsId);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//テンプレート削除\r\nexport const deleteTemplateSv = createAsyncThunk void }>(\r\n \"contents/deleteTemplate\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TemplatesV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).delete(arg.templateId);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);","import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemSecondaryAction,\r\n ListItemText,\r\n TextField,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { MATemplate } from \"../net/NetworkClient\";\r\nimport { deleteTemplateSv, getTemplateListSv } from \"../net/TemplateAsync\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport { ConfirmDialogSlice } from \"../misc/ConfirmDialog\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n heading: {\r\n\r\n },\r\n templateItem: {\r\n paddingLeft: \"1em\",\r\n fontSize: \"0.9em\"\r\n },\r\n label: {\r\n display: \"flex\"\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n caution: {\r\n color: theme.palette.error.main,\r\n fontSize: \"0.9em\",\r\n paddingTop: theme.spacing(2)\r\n },\r\n list:{\r\n overflowY:\"auto\",\r\n maxHeight:\"250px\",\r\n overflowX:\"hidden\"\r\n }\r\n}));\r\n\r\nconst NewTemplateDialog: React.FC<{\r\n open: boolean;\r\n tenantId: string;\r\n dirty: boolean;\r\n onClose: (ok: boolean, name: string) => void;\r\n}> = ({ open, tenantId, dirty, onClose }) => {\r\n\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(false);\r\n const [templates, setTemplates] = useState([]);\r\n\r\n const [name, setName] = useState(\"\");\r\n\r\n //ダイアログを開いた・閉じた\r\n useEffect(() => {\r\n if (open) {\r\n setName(\"\");\r\n refresh();\r\n } else {\r\n setTemplates([]);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n const refresh = () => {\r\n setLoading(true);\r\n dispatch(\r\n getTemplateListSv({\r\n tenantId: tenantId,\r\n callback: (ok, list) => {\r\n if (ok) {\r\n var tmps = list.filter(t => !t.isDefault);\r\n tmps = tmps.sort((t1, t2) => (t1.orderNo ?? 0) - (t2.orderNo ?? 0));\r\n setTemplates(tmps);\r\n }\r\n setLoading(false);\r\n },\r\n })\r\n );\r\n }\r\n\r\n //既存項目の削除ボタン\r\n const onDelete = (template: MATemplate) => {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message: \"本当に「\" + template.name + \"」を削除してもよろしいですか?\",\r\n callback: (ok) => {\r\n if (ok) {\r\n dispatch(deleteTemplateSv({\r\n templateId: template.id ?? \"\", callback: (ok) => {\r\n refresh();\r\n }\r\n }));\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n\r\n return (\r\n {\r\n onClose(false, name);\r\n }}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n テンプレート管理\r\n \r\n \r\n \r\n \r\n \r\n \r\n 登録済みのテンプレート\r\n \r\n 0 ? \"none\" : \"block\") }}>未登録\r\n \r\n {templates.map((t) => {\r\n return (\r\n \r\n {t.name}\r\n \r\n { onDelete(t) }}>\r\n \r\n \r\n \r\n \r\n )\r\n })}\r\n \r\n \r\n 現在の朝礼内容を新規作成時のテンプレートとして
登録できます(最大10件)。\r\n
\r\n\r\n = 10 ? \"block\" : \"none\") }}>\r\n 既に10件のテンプレートが登録されているため、これ以上追加できません。
\r\n 上記の登録済みの項目を削除してから追加してください。\r\n
\r\n\r\n\r\n\r\n {\r\n setName(ev.target.value);\r\n }}\r\n />\r\n 注)追加ボタンを押すと、現在編集中のデータも同時に保存されます\r\n
\r\n \r\n {\r\n onClose(false, name);\r\n }}\r\n className={classes.btn}>\r\n キャンセル\r\n {\r\n onClose(true, name);\r\n }}\r\n className={classes.btn}\r\n disabled={loading || !name || templates.length >= 10}>\r\n\r\n 追加\r\n \r\n \r\n );\r\n};\r\nexport default NewTemplateDialog;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { Box, CircularProgress } from \"@material-ui/core\";\r\nimport { getContentsDataSv } from \"../net/CalendarAsync\"\r\nimport { getProjectByContentsSv, postFile, putContentsSv } from \"../net/ContentsAsync\"\r\nimport localFiles from \"./items/LocalFiles\";\r\nimport { MorningAssemblyJson, MAProject, ContentsJson } from \"../net/NetworkClient\";\r\nimport ContentsToolbar from \"./ContentsToolbar\";\r\nimport ContentsNav from \"./ContentsNav\";\r\nimport { FooterHeight, ItemMenuAction, ItemMenuAction_ADD, ItemTypeKey, UnregisteredUpdateURL } from \"../Constants\";\r\nimport { ConfirmDialogSlice } from \"../misc/ConfirmDialog\";\r\nimport ActionSlice, { ActionType } from \"../misc/ActionSlice\";\r\nimport ContentsItemConfig from \"./items/ContentsItemConfig\";\r\nimport ContentsItemRadioCalisthenics from \"./items/ContentsItemRadioCalisthenics\";\r\nimport ContentsItemWorkProcedure from \"./items/ContentsItemWorkProcedure\";\r\nimport ContentsItemPrecautions from \"./items/ContentsItemPrecautions\";\r\nimport ContentsItemRollCall from \"./items/ContentsItemRollCall\";\r\nimport ContentsItemSafetyCall from \"./items/ContentsItemSafetyCall\";\r\nimport ContentsItemKYActivity from \"./items/ContentsItemKYActivity\";\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport NewCatItemDialog from \"./NewCatItemDialog\";\r\nimport ContentsItemSpeach from \"./items/ContentsItemSpeach\";\r\nimport ContentsItemText from \"./items/ContentsItemText\";\r\nimport ContentsItemTitleText from \"./items/ContentsItemTitleText\";\r\nimport ContentsItemPhotoList from \"./items/ContentsItemPhotoList\";\r\nimport ContentsItemQuestionnaire from \"./items/ContentsItemQuestionnarie\";\r\nimport NewTemplateDialog from \"./NewTemplateDialog\";\r\nimport { postTemplateSv } from \"../net/TemplateAsync\";\r\nimport PhotoSelectDialog from \"./PhotoSelectDialog\";\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n //flexDirection: \"column\",\r\n //alignItems: \"stretch\",\r\n height: \"calc(100vh - 48px - \" + FooterHeight + \"px)\",\r\n backgroundColor: theme.palette.common.white\r\n },\r\n contents: {\r\n //flex: 1,\r\n //padding: theme.spacing(6, 4),\r\n flexGrow: 1,\r\n //background: \"#000\",\r\n marginTop: \"49px\",\r\n height: \"calc(100vh - 97px - \" + FooterHeight + \"px)\",\r\n overflow: \"auto\",\r\n },\r\n}));\r\n\r\nfunction ContentsView() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const { contentsid } = useParams<{ contentsid: string }>();\r\n\r\n\r\n const [openNavMenu, setOpenNavMenu] = useState(false);\r\n\r\n const [loading, setLoading] = useState(false);\r\n const [dirty, setDirty] = useState(false);\r\n const [jsonData, setJsonData] = useState();\r\n const [project, setProject] = useState();\r\n const [selectedItem, setSelectedItem] = useState<{ key: string; id: string } | undefined>();\r\n const [selectedItemWaiting, setSelectedItemWaiting] = useState<{ key: string; id: string } | undefined>();\r\n\r\n //新規作成ダイアログ\r\n const [openDlgNewItem, setOpenDlgNewItem] = React.useState(false);\r\n const [newItemIndex, setNewItemIndex] = React.useState();\r\n const [openDlgNewTemplate, setOpenDlgNewTemplate] = React.useState(false);\r\n\r\n\r\n const [changing, setChanging] = useState(false);\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (contentsid) {\r\n setLoading(true);\r\n reloadData()\r\n .then(() => {\r\n console.log(\"load all data\");\r\n })\r\n .catch(() => {\r\n clearAll();\r\n })\r\n .finally(() => { setLoading(false); })\r\n } else {\r\n clearAll();\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [contentsid]);\r\n\r\n /**\r\n * データのリロード\r\n */\r\n async function reloadData() {\r\n\r\n //プロジェクトデータ\r\n var prj = await getProject();\r\n setProject(prj.project);\r\n\r\n //Jsonデータ取得\r\n var json = await getContentsData();\r\n setJsonData(json.json);\r\n\r\n //選択項目設定\r\n setSelectedItem({\r\n key: ItemTypeKey.config,\r\n id: \"\",\r\n });\r\n\r\n //ローカルファイル情報をクリア\r\n localFiles.clearFiles();\r\n //JSON設定\r\n setDirty(false);\r\n }\r\n /**\r\n * 表示データクリア\r\n */\r\n function clearAll() {\r\n setProject(undefined);\r\n setJsonData(undefined);\r\n setSelectedItem({\r\n key: ItemTypeKey.config,\r\n id: \"\",\r\n });\r\n localFiles.clearFiles();\r\n setDirty(false);\r\n }\r\n\r\n\r\n /**\r\n * プロジェクトデータ取得\r\n */\r\n async function getProject(): Promise<{ ok: boolean; project?: MAProject }> {\r\n return new Promise((resolve, reject) => {\r\n dispatch(\r\n getProjectByContentsSv({\r\n contentsId: contentsid,\r\n callback: async function (ok, prj) {\r\n resolve({ ok: ok, project: prj })\r\n }\r\n }));\r\n });\r\n }\r\n\r\n //コンテンツのJSONデータ取得\r\n async function getContentsData(): Promise<{ ok: boolean; json?: MorningAssemblyJson }> {\r\n return new Promise((resolve, reject) => {\r\n dispatch(\r\n getContentsDataSv({\r\n contentsId: contentsid,\r\n callback: async function (ok, data) {\r\n resolve({ ok: ok, json: data })\r\n }\r\n }));\r\n });\r\n }\r\n\r\n\r\n /**\r\n * JSONデータの複製を作成\r\n */\r\n const copyJson = (): MorningAssemblyJson => {\r\n return MorningAssemblyJson.fromJS(JSON.parse(JSON.stringify(jsonData)));\r\n };\r\n\r\n //修正が反映されるまで待機して選択項目を変更する\r\n function setSelectedItemWait(val: { key: string; id: string } | undefined) {\r\n if (changing) {\r\n setLoading(true);\r\n setSelectedItemWaiting(val);\r\n } else {\r\n setSelectedItem(val);\r\n }\r\n }\r\n useEffect(() => {\r\n if (!changing && selectedItemWaiting) {\r\n setSelectedItem(selectedItemWaiting);\r\n setSelectedItemWaiting(undefined);\r\n setLoading(false);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [changing]);\r\n\r\n /**\r\n * 各メニューなどからのアクション実行\r\n * @param itemId ContentsJsonのID\r\n * @param itemkey 種類\r\n * @param action 実行するアクション\r\n */\r\n function onAction(itemId: string | undefined, itemkey: ItemTypeKey | undefined, action: ItemMenuAction) {\r\n switch (action.key) {\r\n //項目を開く\r\n case \"CLICK\":\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.CONTENT_ITEM_LOAD_START}));\r\n setSelectedItemWait({\r\n key: itemkey?.toString() ?? \"\",\r\n id: itemId ?? \"\",\r\n });\r\n break;\r\n\r\n //新規追加\r\n case \"ADD\":\r\n if (itemId !== undefined) {\r\n var index =\r\n jsonData?.contents?.findIndex((c) => {\r\n return c.uuid === itemId;\r\n });\r\n if (itemId !== undefined && index !== undefined)\r\n index += 1;\r\n setNewItemIndex(index);\r\n } else {\r\n setNewItemIndex(undefined);\r\n }\r\n setOpenDlgNewItem(true);\r\n break;\r\n\r\n //最上段へ移動\r\n case \"UP_FIRST\":\r\n var json = copyJson();\r\n var target = json.contents?.find((c) => {\r\n return c.uuid === itemId;\r\n });\r\n if (target) {\r\n var filtered =\r\n json.contents?.filter((c) => {\r\n return c.uuid !== itemId;\r\n }) ?? [];\r\n json.contents = [target, ...filtered];\r\n setJsonData(json);\r\n setDirty(true);\r\n }\r\n break;\r\n\r\n //1つ上へ移動\r\n case \"UP\":\r\n json = copyJson();\r\n index =\r\n json.contents?.findIndex((c) => {\r\n return c.uuid === itemId;\r\n });\r\n if (index) {\r\n const item = json.contents?.splice(index, 1)[0];\r\n if (item) {\r\n json.contents?.splice(index - 1, 0, item);\r\n setJsonData(json);\r\n setDirty(true);\r\n }\r\n }\r\n break;\r\n\r\n //1つ下へ移動\r\n case \"DOWN\":\r\n json = copyJson();\r\n index =\r\n json.contents?.findIndex((c) => {\r\n return c.uuid === itemId;\r\n });\r\n if (index) {\r\n const item = json.contents?.splice(index, 1)[0];\r\n if (item) {\r\n json.contents?.splice(index + 1, 0, item);\r\n setJsonData(json);\r\n setDirty(true);\r\n }\r\n }\r\n break;\r\n\r\n //最下段へ移動\r\n case \"DOWN_LAST\":\r\n json = copyJson();\r\n target = json.contents?.find((c) => {\r\n return c.uuid === itemId;\r\n });\r\n if (target) {\r\n filtered =\r\n json.contents?.filter((c) => {\r\n return c.uuid !== itemId;\r\n }) ?? [];\r\n json.contents = [...filtered, target];\r\n setJsonData(json);\r\n setDirty(true);\r\n }\r\n break;\r\n\r\n //削除\r\n case \"DELETE\":\r\n target = jsonData?.contents?.find((c) => {\r\n return c.uuid === itemId;\r\n });\r\n if (target) {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message:\r\n \"本当に「\" + target.title + \"」を削除してもよろしいですか?\",\r\n callback: (ok) => {\r\n if (ok) {\r\n //項目削除\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n var uuid = itemId;\r\n var json = copyJson();\r\n //現在選択中のインデックス取得\r\n var idx = -1;\r\n json.contents?.forEach((c, n) => {\r\n if (c.uuid === uuid) idx = n;\r\n });\r\n //データ削除\r\n json.contents =\r\n json.contents?.filter((c) => {\r\n return c.uuid !== uuid;\r\n }) ?? [];\r\n setJsonData(json);\r\n setDirty(true);\r\n\r\n if (json.contents.length > 0 && json.contents.length > idx) {\r\n const cnt = json.contents[idx];\r\n\r\n setSelectedItem({ key: cnt.type ?? \"\", id: cnt.uuid ?? \"\", });\r\n } else {\r\n setSelectedItem({ key: ItemTypeKey.config, id: \"\", });\r\n }\r\n }\r\n }\r\n })\r\n );\r\n }\r\n break;\r\n }\r\n }\r\n\r\n\r\n /**\r\n * 1項目を更新する\r\n * @param contents 更新するコンテンツ\r\n */\r\n function UpdateContents(contents: ContentsJson) {\r\n var json = copyJson();\r\n json.contents = json.contents?.map((v) => {\r\n if (v.uuid === contents.uuid)\r\n return contents;\r\n else\r\n return v;\r\n });\r\n setJsonData(json);\r\n setDirty(true);\r\n }\r\n\r\n /**\r\n * テンプレート保存\r\n */\r\n function onSaveTemplate(name: string) {\r\n if (dirty) {\r\n onSave((ok)=>{\r\n onSaveTemplateInner(name);\r\n },true);\r\n }else{\r\n onSaveTemplateInner(name);\r\n }\r\n }\r\n\r\n function onSaveTemplateInner(name: string) {\r\n \r\n dispatch(postTemplateSv({\r\n tenantId: project?.tenantId ?? \"\", contentsId: contentsid, name: name, callback: (ok, template) => {\r\n if (ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"保存完了\",\r\n message: \"「\"+template?.name+\"」を保存しましました。\",\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"テンプレートの保存に失敗しました。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n\r\n //Jsonデータをサーバへ保存\r\n async function onSave(callback?:(ok:boolean)=>void,withoutUI: boolean = false) {\r\n if (contentsid && jsonData) {\r\n setLoading(true);\r\n var json = await uploadAllTempFiles();\r\n\r\n if (json) {\r\n //Newsの空行削除\r\n if(!!json.news?.content){\r\n json.news.content = json.news?.content.filter((v)=>{return !!v})\r\n }\r\n //画像がない写真項目を削除\r\n json?.contents?.forEach(cts => {\r\n if(cts.details?.updates && cts.details?.updates.length > 0){\r\n cts.details.updates = cts.details.updates.filter((u)=>{return !!u.url;})\r\n }\r\n });\r\n\r\n\r\n\r\n dispatch(\r\n putContentsSv({\r\n id: contentsid,\r\n data: json,\r\n callback: (ok) => {\r\n setLoading(false);\r\n if (ok) {\r\n if (!withoutUI) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"保存完了\",\r\n message: \"サーバへデータを保存しました\",\r\n })\r\n );\r\n }\r\n setDirty(false);\r\n reloadData();\r\n if(callback)\r\n callback(true);\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"データの保存に失敗しました。\",\r\n })\r\n );\r\n \r\n if(callback)\r\n callback(false);\r\n }\r\n },\r\n })\r\n );\r\n } else {\r\n setLoading(false);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"ファイルのアップロードに失敗しました。\",\r\n })\r\n );\r\n \r\n if(callback)\r\n callback(false);\r\n }\r\n }else{\r\n if(callback)\r\n callback(false);\r\n }\r\n }\r\n /**\r\n * アップロード待ちのファイルを全てサーバへアップロードする\r\n */\r\n async function uploadAllTempFiles(): Promise {\r\n var copy = copyJson();\r\n var updata = false;\r\n if (!copy.contents) return jsonData;\r\n for (const cnt of copy.contents) {\r\n if (cnt.details?.updates) {\r\n for (const up of cnt.details?.updates) {\r\n if (up.url === UnregisteredUpdateURL) {\r\n const browserFile = localFiles.getFile(up.uuid ?? \"\");\r\n if (browserFile) {\r\n var re = await postFile(\r\n browserFile.file,\r\n contentsid,\r\n ItemTypeKey.siteUpdates,\r\n cnt.uuid ?? \"\",\r\n up.sizeType ?? 0,\r\n dispatch\r\n );\r\n if (re.ok && re.file) {\r\n up.url = re.file.path;\r\n updata = true;\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n if (updata)\r\n setJsonData(copy);\r\n return updata ? copy : jsonData;\r\n }\r\n\r\n /**\r\n * カレンダーへ戻るボタンが押された\r\n */\r\n function onBackCalendar() {\r\n if (!dirty) {\r\n history.push(\"/calendar/\" + project?.tenantId + \"/\" + project?.id);\r\n } else {\r\n //OKの場合の複製処理はContentsListCalendar内で処理\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"保存の確認\",\r\n message: \"修正したデータを保存せずにカレンダーへ戻ってもよろしいですか?\",\r\n callback: (ok) => {\r\n if (ok) {\r\n history.push(\"/calendar/\" + project?.tenantId + \"/\" + project?.id);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n }\r\n })\r\n );\r\n }\r\n }\r\n\r\n return (\r\n \r\n {\r\n onSave();\r\n }}\r\n onMenuToggle={() => {\r\n setOpenNavMenu(!openNavMenu);\r\n }}\r\n onAddItem={() => { onAction(undefined, undefined, ItemMenuAction_ADD) }}\r\n onSaveTemplate={() => {\r\n setOpenDlgNewTemplate(true);\r\n }}\r\n />\r\n { setOpenNavMenu(false) }}\r\n onBackCalendar={onBackCalendar}\r\n onAction={onAction} />\r\n \r\n \r\n {\r\n setJsonData(json);\r\n setDirty(true);\r\n }}\r\n onChanging={(c) => { setChanging(c); }}\r\n />\r\n \r\n { setChanging(c); }}\r\n />\r\n { setChanging(c); }}\r\n />\r\n {\r\n /* { setChanging(c); }}\r\n />*/\r\n }\r\n { setChanging(c); }}\r\n />\r\n\r\n { setChanging(c); }}\r\n />\r\n\r\n { setChanging(c); }}\r\n />\r\n\r\n { setChanging(c); }}\r\n />\r\n { setChanging(c); }}\r\n />\r\n\r\n { setChanging(c); }}\r\n />\r\n\r\n { setChanging(c); }}\r\n />\r\n\r\n { setChanging(c); }}\r\n />\r\n\r\n \r\n {\r\n setOpenDlgNewItem(false);\r\n if (ok && item) {\r\n var json = copyJson();\r\n if (newItemIndex !== undefined && (json.contents?.length ?? 0) > newItemIndex) {\r\n json.contents?.splice(newItemIndex, 0, item);\r\n setJsonData(json);\r\n setDirty(true);\r\n } else {\r\n json.contents = [...json.contents ?? [], item];\r\n setJsonData(json);\r\n setDirty(true);\r\n }\r\n }\r\n }} />\r\n {\r\n setOpenDlgNewTemplate(false);\r\n if(ok){\r\n onSaveTemplate(name);\r\n }\r\n }} />\r\n \r\n \r\n );\r\n}\r\n\r\n\r\nexport default ContentsView;","import React from \"react\";\r\nimport CircularProgress from \"@material-ui/core/CircularProgress\";\r\nimport Backdrop from \"@material-ui/core/Backdrop\";\r\nimport { useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport Typography from \"@material-ui/core/Typography\";\r\n\r\nexport const WaitingSlice = createSlice({\r\n name: \"waiting\",\r\n initialState: {\r\n message: \"\",\r\n waitingFlag: false,\r\n },\r\n reducers: {\r\n beginWaiting: (state, action: PayloadAction) => {\r\n state.waitingFlag = true;\r\n state.message = action.payload;\r\n },\r\n stopWaiting: (state, action) => {\r\n state.waitingFlag = false;\r\n state.message = \"\";\r\n },\r\n },\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n backdrop: {\r\n zIndex: 100000,\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n margin: theme.spacing(2),\r\n },\r\n}));\r\n\r\nexport default function WaitingBar() {\r\n const message = useSelector((state: RootState) => state.waiting.message);\r\n const waitingFlag = useSelector(\r\n (state: RootState) => state.waiting.waitingFlag\r\n );\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {message}\r\n \r\n );\r\n}\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { ProjectInfo, TenantInfo } from '../net/NetworkClient';\r\n\r\n\r\nconst TenantSlice = createSlice({\r\n name: \"tenants\",\r\n initialState: {\r\n currentTenant:null as TenantInfo | null,\r\n tenants: [] as TenantInfo[],\r\n projects: [] as ProjectInfo[],\r\n },\r\n reducers: {\r\n //選択中のテナント設定\r\n setCurrent:(state,action:PayloadAction) =>{\r\n state.currentTenant = action.payload;\r\n },\r\n\r\n //テナント配列設定\r\n setTenants: (state, action: PayloadAction) => {\r\n state.tenants = action.payload;\r\n },\r\n\r\n //テナントデータ更新\r\n updateTenants:(state,action:PayloadAction) =>{\r\n state.tenants = state.tenants.map((tenant)=>{\r\n return action.payload.tenant?.id === tenant.tenant?.id ? action.payload : tenant;\r\n });\r\n if(state.currentTenant?.tenant?.id === action.payload.tenant?.id){\r\n state.currentTenant = action.payload;\r\n }\r\n },\r\n \r\n //プロジェクト配列設定\r\n setProjects: (state, action: PayloadAction) => {\r\n state.projects = action.payload;\r\n },\r\n //プロジェクト更新\r\n updateProject: (state, action: PayloadAction) => {\r\n state.projects = state.projects.map(v => { return (v.project?.id === action.payload.project?.id ? action.payload : v) });\r\n },\r\n\r\n //プロジェクト削除\r\n removeProject: (state, action: PayloadAction) => {\r\n state.projects = state.projects.filter(v => { return v.project?.id !== action.payload });\r\n },\r\n\r\n //プロジェクトを追加\r\n addProject: (state, action: PayloadAction) => {\r\n var lst = [...state.projects, action.payload];\r\n state.projects = lst.sort((a, b) => {\r\n if ((a.project?.name??\"\") < (b.project?.name??\"\"))\r\n return -1;\r\n if ((a.project?.name??\"\") > (b.project?.name??\"\"))\r\n return 1;\r\n return 0;\r\n })\r\n },\r\n },\r\n});\r\n\r\nexport default TenantSlice;\r\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { InviteUser, MAProject, MATenant, ProjectAdminResult, TenantV2Client ,InviteUserResult, SetProjectAdmin, MAUser, TenantInfo, ProjectInfo} from \"./NetworkClient\";\r\nimport { SERVER_URL } from \"../Constants\";\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\n\r\n\r\n//テナント一覧検索\r\nexport const tenantFindSv = createAsyncThunk void }>(\r\n \"tenants/tenantFind\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var tenants = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).find();\r\n arg.callback(true, tenants);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//テナント更新\r\nexport const putTenantSv = createAsyncThunk void }>(\r\n \"tenants/putTenant\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch)))\r\n .putTenant(arg.tenantId,arg.value);\r\n arg.callback(true);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//テナント情報をID指定をして取得\r\nexport const getTenantSv = createAsyncThunk void }>(\r\n \"tenants/getTenant\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var tenant = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch)))\r\n .getTenant(arg.tenantId);\r\n arg.callback(true,tenant);\r\n return tenant;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//プロジェクト一覧検索\r\nexport const findProjectsSv = createAsyncThunk void }>(\r\n \"tenants/findProjects\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var tenants = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).findProjects(arg.tenantId,arg.searchName,arg.searchInvalid);\r\n arg.callback(true, tenants);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//プロジェクト情報取得\r\nexport const getProjectSv = createAsyncThunk void }>(\r\n \"tenants/getProject\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var prj = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getProject(arg.tenantId,arg.projectId);\r\n arg.callback(true, prj);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n//利用可能なプロジェクトを追加できるかどうか確認\r\nexport const canIncrementActiveProject = createAsyncThunk void }>(\r\n \"tenants/canIncrementActiveProject\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var v = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).canIncrementActiveProject(arg.tenantId);\r\n arg.callback(v);\r\n return v;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//テナント管理者かどうかの確認\r\n/*export const isTenantAdminSv= createAsyncThunk void }>(\r\n \"tenants/isTenantAdmin\",\r\n async (arg) => {\r\n try {\r\n var isAdmin = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance())).isTenantAdmin(arg.tenantId);\r\n arg.callback(true, isAdmin);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, false);\r\n throw err;\r\n }\r\n }\r\n);*/\r\n\r\n//プロジェクト登録\r\nexport const postProjectSv= createAsyncThunk void }>(\r\n \"tenants/postProject\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n\r\n var rePrd = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).postProject(arg.tenantId,arg.project);\r\n arg.callback(true, rePrd,null);\r\n return rePrd;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null,err.response);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//プロジェクト編集\r\nexport const putProjectSv= createAsyncThunk void }>(\r\n \"tenants/putProject\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).putProject(arg.tenantId,arg.project.id??\"\",arg.project);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n//プロジェクトの有効・無効の切り替え\r\nexport const setProjectInvalidSv= createAsyncThunk void }>(\r\n \"tenants/setProjectInvalid\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).setProjectInvalid(arg.tenantId,arg.projectId,arg.invalid);\r\n arg.callback(true,null);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,err.response);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//プロジェクト管理者取得\r\nexport const getProjectAdminsSv= createAsyncThunk void }>(\r\n \"tenants/getProjectAdmins\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var re = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getProjectAdmins(arg.tenantId,arg.projectId);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//プロジェクト管理者取得\r\nexport const inviteProjectAdminSv= createAsyncThunk void }>(\r\n \"tenants/inviteProjectAdmin\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var val = new InviteUser();\r\n val.name = arg.name;\r\n val.email = arg.email;\r\n\r\n var re = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).inviteProjectAdmin(arg.tenantId,arg.projectId,val);\r\n arg.callback(true, re);\r\n return re;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//現場管理者への切り替え\r\nexport const setUserAdminSv= createAsyncThunk void }>(\r\n \"tenants/setUserAdmin\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var val = new SetProjectAdmin();\r\n val.userId = arg.userId;\r\n val.toAdmin = arg.toAdmin;\r\n\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).setUserAdmin(arg.tenantId,arg.projectId,val);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//現場削除\r\nexport const deleteProjectSv= createAsyncThunk void }>(\r\n \"tenants/deleteProject\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).deleteProject(arg.tenantId,arg.projectId);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//参加ユーザー一覧取得\r\nexport const getTenantUsersSv= createAsyncThunk void }>(\r\n \"tenants/getTenantUsers\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var users = await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getTenantUsers(arg.tenantId);\r\n arg.callback(true,users);\r\n return users;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//テナントからユーザーを削除\r\nexport const deleteTenantUserSv= createAsyncThunk void }>(\r\n \"tenants/deleteTenantUser\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).deleteTenantUser(arg.tenantId,arg.userName);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//テナント参加者へ承認のためのメールを再送信する\r\nexport const sendConfirmMailSv= createAsyncThunk void }>(\r\n \"tenants/sendConfirmMail\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).sendConfirmMail(arg.tenantId,arg.userName);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//会社に新規プロジェクトを追加する\r\nexport const addInitialProjectSv= createAsyncThunk void }>(\r\n \"tenants/sendConfirmMail\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new TenantV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).addInitialProject(arg.tenantId,arg.type);\r\n arg.callback(true);\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);","import React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport AssignmentIcon from \"@material-ui/icons/Assignment\";\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n makeStyles,\r\n TextField,\r\n Typography,\r\n Tooltip,\r\n FormControlLabel,\r\n Checkbox,\r\n Switch,\r\n} from \"@material-ui/core\";\r\n\r\nimport { canIncrementActiveProject, postProjectSv } from \"../net/TenantAsync\";\r\nimport { MAProject } from \"../net/NetworkClient\";\r\nimport { BaseBackGroundColor, ProjectKeyToString, ProjectUserKeyToString, ProjectAdminKeyToString } from \"../Constants\";\r\nimport CopyToClipBoard from \"react-copy-to-clipboard\";\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n clipbtn: {\r\n backgroundColor: BaseBackGroundColor,\r\n },\r\n}));\r\nconst ProjectCreateDialog: FunctionComponent<{\r\n open: boolean;\r\n tenantId: string;\r\n activeProject: number;\r\n maxProject: number;\r\n obayashi: boolean;\r\n onClose: (ok: boolean, prj?: MAProject | undefined) => void;\r\n}> = ({ open, tenantId, activeProject, maxProject, obayashi, onClose }) => {\r\n const classes = useStyles();\r\n\r\n\r\n const [useProject, setUseProject] = useState(false);\r\n const [name, setName] = useState(\"\");\r\n const [managementNumber, setManagementNumber] = useState(\"\");\r\n const [description, setDescription] = useState(\"\");\r\n const [title, setTitle] = useState(\"\");\r\n const [openTip, setOpenTip] = useState(false);\r\n const [created, setCreated] = useState();\r\n const [errors, setErrors] = useState({\r\n name: \"\",\r\n description: \"\",\r\n managementNumber: \"\",\r\n password: \"\"\r\n });\r\n const [usePassword, setUsePassword] = useState(false);\r\n const [password, setPassword] = useState(\"\");\r\n\r\n\r\n const [submitting, setSubmitting] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n //開くときに初期化\r\n useEffect(() => {\r\n if (open) {\r\n setUseProject(maxProject > activeProject);\r\n setName(\"\");\r\n setManagementNumber(\"\");\r\n setDescription(\"\");\r\n setCreated(undefined);\r\n setTitle(\"新しいプロジェクトを追加します\");\r\n setUsePassword(false);\r\n setPassword(\"\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n //エラーチェック\r\n useEffect(() => {\r\n var copy = Object.assign({}, errors);\r\n if (!name) {\r\n copy.name = \"プロジェクト名を入力して下さい\";\r\n } else {\r\n copy.name = \"\";\r\n }\r\n copy.password = \"\";\r\n if (usePassword) {\r\n if (password == null || password.length < 4) {\r\n copy.password = \"4文字以上入力してください\";\r\n } else if (!password.match(/^[A-Za-z0-9]*$/)) {\r\n copy.password = \"英数字で入力してください\";\r\n }\r\n }\r\n setErrors(copy);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [name, managementNumber, description, password, usePassword]);\r\n\r\n //登録可能かどうかの確認\r\n function validToSubmit(){\r\n return (!errors.name && !errors.managementNumber && !errors.password);\r\n }\r\n\r\n //サーバへ登録\r\n function submit() {\r\n if (validToSubmit()) {\r\n setSubmitting(true);\r\n var prj = new MAProject();\r\n prj.invalid = !useProject;\r\n prj.name = name;\r\n prj.managementNumber = managementNumber;\r\n prj.description = description;\r\n if (usePassword) {\r\n prj.clientPassword = password;\r\n } else {\r\n prj.clientPassword = \"\";\r\n }\r\n dispatch(\r\n postProjectSv({\r\n project: prj,\r\n tenantId: tenantId,\r\n callback: (ok, project, response) => {\r\n setSubmitting(false);\r\n if (ok && project) {\r\n setTitle(\"プロジェクトが作成されました\");\r\n if(project.invalid){\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"プロジェクトが作成されました。\",\r\n message: \"「\"+project.name+\"」が作成されました。\",\r\n })\r\n );\r\n onClose(true, project);\r\n }else{\r\n setCreated(project);\r\n }\r\n } else {\r\n dispatch(canIncrementActiveProject({\r\n tenantId:tenantId,\r\n callback:(canIncrease)=>{\r\n if (!canIncrease) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"利用上限エラー\",\r\n message: \"すでに利用上限に達しているのでいずれかのプロジェクトを利用停止にするか、契約プロジェクト数を増やしてください。\",\r\n })\r\n );\r\n }else{\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"問題が発生してプロジェクトを作成することができませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n }))\r\n\r\n }\r\n },\r\n })\r\n );\r\n }\r\n }\r\n\r\n return (\r\n {\r\n setCreated(undefined);\r\n onClose(false);\r\n }}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { setUseProject(e.target.checked) }}\r\n color=\"secondary\"\r\n />\r\n }\r\n label={\"端末で利用可能(\" + activeProject + \"/\" + maxProject + \"利用中)\"}\r\n />\r\n \r\n \r\n {\r\n setName(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n setDescription(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n setManagementNumber(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n { setUsePassword(e.target.checked) }}\r\n />\r\n }\r\n label=\"端末から利用する時にパスワードを使用する\"\r\n />\r\n {\r\n setPassword(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n onClose(false);\r\n }}\r\n disabled={submitting }\r\n >\r\n キャンセル\r\n \r\n \r\n \r\n {\r\n submit();\r\n }}\r\n disabled={submitting || !validToSubmit()}\r\n >\r\n 登録\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 朝礼番号と朝礼管理番号は、編集や朝礼ログイン時に必要ですので別途控えておいて下さい。\r\n \r\n \r\n \r\n {\r\n setOpenTip(false);\r\n }}\r\n disableHoverListener\r\n placement=\"top\"\r\n title=\"コピーしました\"\r\n >\r\n \r\n {\r\n setOpenTip(true);\r\n }}\r\n >\r\n \r\n クリップボードにコピー\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n {\r\n onClose(true, created);\r\n }}\r\n disabled={submitting}\r\n >\r\n 閉じる\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default ProjectCreateDialog;\r\n","\r\n\r\nimport React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n makeStyles,\r\n TextField,\r\n Typography,\r\n Tooltip,\r\n Switch,\r\n} from \"@material-ui/core\";\r\n\r\nimport { RootState } from \"../Store\";\r\nimport { getProjectAdminsSv, getProjectSv, inviteProjectAdminSv, setUserAdminSv } from \"../net/TenantAsync\";\r\nimport { ProjectAdminResult, MAUser } from \"../net/NetworkClient\";\r\nimport FlagIcon from '@material-ui/icons/Flag';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutline';\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport TenantSlice from \"./TenantSlice\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n contents: {\r\n flex: 1,\r\n height: \"280px\",\r\n width: \"400px\",\r\n overflowY: \"auto\",\r\n overflowX: \"hidden\"\r\n //padding: theme.spacing(0, 1),\r\n },\r\n userText: {\r\n margin: \"auto\",\r\n marginLeft: \"1px\",\r\n textOverflow: \"ellipsis\",\r\n overflow: \"hidden\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n userIcon: {\r\n margin: \"auto\",\r\n marginRight: \"0px\",\r\n marginLeft: \"0px\"\r\n },\r\n disabledSwitch: {\r\n cursor: \"default\",\r\n pointerEvents: \"none\"\r\n },\r\n textField: {\r\n margin: \"0px\",\r\n width: \"100%\",\r\n },\r\n}));\r\n\r\n\r\nconst ProjectAdminDialog: FunctionComponent<{\r\n open: boolean;\r\n tenantId: string;\r\n projectId: string;\r\n onClose: () => void;\r\n}> = ({ open, tenantId, projectId, onClose }) => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n\r\n const currentUser = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n const [adminInfo, setAdminInfo] = useState();\r\n const [submitting, setSubmitting] = useState(false);\r\n const [recheckFlag, setRecheckFlag] = useState(false);\r\n const [invitePanel, setInvitePanel] = useState(false);\r\n const [userName, setUserName] = useState(\"\");\r\n const [mailAddress, setMailAddress] = useState(\"\");\r\n const [mailError, setMailError] = useState(\"メールアドレスを入力してください。\");\r\n \r\n const [dirty, setDirty] = useState(false);\r\n\r\n useEffect(() => {\r\n if (open || recheckFlag) {\r\n if (recheckFlag)\r\n setRecheckFlag(false);\r\n setSubmitting(true);\r\n dispatch(getProjectAdminsSv({\r\n projectId: projectId, tenantId: tenantId, callback(ok, result) {\r\n setAdminInfo(result ?? undefined);\r\n setSubmitting(false);\r\n }\r\n }));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open, recheckFlag]);\r\n\r\n useEffect(() => {\r\n let re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n if ((mailAddress?.length ?? \"\") <= 0) {\r\n setMailError(\"メールアドレスを入力してください。\");\r\n } else if (!re.test(mailAddress)) {\r\n setMailError(\"有効なメールアドレスではありません。\");\r\n } else {\r\n setMailError(\"\");\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [mailAddress]);\r\n\r\n function updateProjectInfo(){\r\n if(!dirty)\r\n return;\r\n setSubmitting(true);\r\n dispatch(getProjectSv({\r\n projectId: projectId, tenantId: tenantId, callback(ok, result) {\r\n if(result)\r\n dispatch(TenantSlice.actions.updateProject(result));\r\n setSubmitting(false);\r\n }\r\n }));\r\n }\r\n\r\n\r\n //プロジェクトリーダーとして登録\r\n function onInvite() {\r\n if (mailError.length > 0 || (userName?.length ?? \"\") <= 0)\r\n return;\r\n setDirty(true);\r\n setSubmitting(true);\r\n dispatch(inviteProjectAdminSv({\r\n name: userName, email: mailAddress, projectId: projectId, tenantId: tenantId, callback: (ok, result) => {\r\n setSubmitting(false);\r\n if (ok && result) {\r\n if (result.isExistUser) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"登録済みユーザー\",\r\n message: \"既存ユーザーのためプロジェクトリーダーとして登録できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"登録完了\",\r\n message: \"ユーザー登録をして、確認メールをお送りしました。\",\r\n })\r\n );\r\n setRecheckFlag(true);\r\n setInvitePanel(false);\r\n }\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"登録に失敗しました。管理者へお問い合わせください。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n\r\n //ユーザーの権限を切り替える\r\n function onSwitchAdmin(user: MAUser, setAdmin: boolean) {\r\n setDirty(true);\r\n setSubmitting(true);\r\n dispatch(\r\n setUserAdminSv({\r\n projectId: projectId,\r\n tenantId: tenantId,\r\n userId: user.id ?? \"\",\r\n toAdmin: setAdmin,\r\n callback: (ok) => {\r\n setSubmitting(false);\r\n if(ok){\r\n setRecheckFlag(true);\r\n }else{\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"ユーザーのプロジェクトリーダー設定に失敗しました。\",\r\n })\r\n );\r\n }\r\n }\r\n })\r\n )\r\n }\r\n\r\n return (\r\n {updateProjectInfo();onClose()}}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n \r\n プロジェクトリーダー\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n adminInfo?.tenantUser?.map((user, idx) => {\r\n if (!!adminInfo.tenantAdmin?.find((u) => { return u.id === user.id })) {\r\n //テナント管理者\r\n return (\r\n \r\n \r\n\r\n \r\n {user.name + \"(\" + user.email + \")\"}\r\n\r\n \r\n \r\n \r\n )\r\n } else if (currentUser?.id === user.id) {\r\n //自分自身\r\n return (\r\n \r\n \r\n\r\n \r\n {user.name + \"(\" + user.email + \")\"}\r\n\r\n \r\n \r\n \r\n )\r\n } else if (!!adminInfo.projectAdmin?.find((u) => { return u.id === user.id })) {\r\n //プロジェクト管理者\r\n return (\r\n \r\n\r\n \r\n {user.name + \"(\" + user.email + \")\"}\r\n\r\n { onSwitchAdmin(user, e.target.checked); }} />\r\n \r\n )\r\n } else {\r\n //未登録ユーザー\r\n return (\r\n \r\n\r\n \r\n {user.name + \"(\" + user.email + \")\"}\r\n\r\n { onSwitchAdmin(user, e.target.checked); }} />\r\n \r\n )\r\n }\r\n\r\n })\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n 新しくプロジェクトリーダーとして登録し、指定のアドレスへ招待メールを送信します。\r\n \r\n \r\n {\r\n setUserName(e.target.value);\r\n }}\r\n error={(userName?.length ?? \"\") <= 0}\r\n helperText={(userName?.length ?? 0) <= 0 ? \"名称を入力してください。\" : \"\"}\r\n />\r\n \r\n \r\n {\r\n setMailAddress(e.target.value);\r\n }}\r\n error={mailError.length > 0}\r\n helperText={mailError}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n\r\n}\r\n\r\n\r\nexport default ProjectAdminDialog;\r\n","import React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport {\r\n Box,\r\n Button,\r\n Checkbox,\r\n CircularProgress,\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n FormControlLabel,\r\n Grid,\r\n makeStyles,\r\n Switch,\r\n TextField,\r\n} from \"@material-ui/core\";\r\n\r\nimport { getProjectSv, putProjectSv } from \"../net/TenantAsync\";\r\nimport { MAProject } from \"../net/NetworkClient\";\r\nimport { BaseBackGroundColor } from \"../Constants\";\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n clipbtn: {\r\n backgroundColor: BaseBackGroundColor,\r\n },\r\n}));\r\nconst ProjectEditDialog: FunctionComponent<{\r\n tenantId: string;\r\n projectId: string;\r\n open: boolean;\r\n activeProject:number;\r\n maxProject:number;\r\n obayashi: boolean;\r\n onClose: (ok: boolean, prj?: MAProject | undefined) => void;\r\n}> = ({ open, tenantId, projectId,activeProject,maxProject, obayashi, onClose }) => {\r\n const classes = useStyles();\r\n\r\n const [name, setName] = useState(\"\");\r\n \r\n const [useProject, setUseProject] = useState(false);\r\n const [usePassword, setUsePassword] = useState(false);\r\n const [password, setPassword] = useState(\"\");\r\n const [description, setDescription] = useState(\"\");\r\n const [managementNumber, setManagementNumber] = useState(\"\");\r\n const [errors, setErrors] = useState({\r\n name: \"\",\r\n description: \"\",\r\n managementNumber: \"\",\r\n password: \"\"\r\n });\r\n\r\n const [submitting, setSubmitting] = useState(false);\r\n const dispatch = useDispatch();\r\n\r\n //開くときに初期化\r\n useEffect(() => {\r\n if (open) {\r\n setSubmitting(true);\r\n dispatch(getProjectSv({\r\n tenantId: tenantId, projectId: projectId, callback(ok, prjinfo) {\r\n setUseProject(!(prjinfo?.project?.invalid ?? true))\r\n setName(prjinfo?.project?.name ?? \"\");\r\n setManagementNumber(prjinfo?.project?.managementNumber ?? \"\");\r\n setDescription(prjinfo?.project?.description ?? \"\");\r\n setSubmitting(false);\r\n if (prjinfo?.project?.clientPassword && prjinfo?.project?.clientPassword.length > 0) {\r\n setPassword(prjinfo?.project.clientPassword);\r\n setUsePassword(true);\r\n } else {\r\n setPassword(\"\");\r\n setUsePassword(false);\r\n }\r\n }\r\n }));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n //エラーチェック\r\n useEffect(() => {\r\n var copy = Object.assign({}, errors);\r\n if (!name) {\r\n copy.name = \"プロジェクト名を入力して下さい\";\r\n } else {\r\n copy.name = \"\";\r\n }\r\n copy.password = \"\";\r\n if (usePassword) {\r\n if (password == null || password.length < 4) {\r\n copy.password = \"4文字以上入力してください\";\r\n } else if (!password.match(/^[A-Za-z0-9]*$/)) {\r\n copy.password = \"英数字で入力してください\";\r\n }\r\n }\r\n\r\n setErrors(copy);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [name, managementNumber, description, password, usePassword]);\r\n\r\n //登録可能かどうかの確認\r\n function validToSubmit(){\r\n return (!errors.name && !errors.managementNumber && !errors.description && !errors.password);\r\n }\r\n\r\n //サーバへ登録\r\n function submit() {\r\n if (validToSubmit()) {\r\n setSubmitting(true);\r\n var prj = new MAProject();\r\n \r\n prj.invalid = !useProject;\r\n prj.id = projectId;\r\n prj.name = name;\r\n prj.managementNumber = managementNumber;\r\n prj.description = description;\r\n if (usePassword) {\r\n prj.clientPassword = password;\r\n } else {\r\n prj.clientPassword = \"\";\r\n }\r\n dispatch(\r\n putProjectSv({\r\n tenantId: tenantId,\r\n project: prj,\r\n callback: (ok) => {\r\n if (ok) {\r\n dispatch(getProjectSv({\r\n tenantId: tenantId, projectId: projectId, callback(ok, sp) {\r\n setSubmitting(false);\r\n onClose(true, sp ?? undefined);\r\n }\r\n }));\r\n } else {\r\n\r\n setSubmitting(false);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"現場情報編集に失敗しました。\",\r\n })\r\n );\r\n }\r\n },\r\n })\r\n );\r\n }\r\n }\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n aria-labelledby=\"form-dialog-title\"\r\n >\r\n \r\n プロジェクト編集\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n { setUseProject(e.target.checked) }}\r\n color=\"secondary\"\r\n />\r\n }\r\n label={\"端末で利用可能(\"+activeProject+\"/\"+maxProject+\"利用中)\"}\r\n />\r\n \r\n \r\n {\r\n setName(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n\r\n \r\n {\r\n setDescription(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n setManagementNumber(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n { setUsePassword(e.target.checked) }}\r\n />\r\n }\r\n label=\"端末から利用する時にパスワードを使用する\"\r\n />\r\n {\r\n setPassword(e.target.value);\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n onClose(false);\r\n }}\r\n disabled={submitting}\r\n >\r\n キャンセル\r\n \r\n \r\n \r\n {\r\n submit();\r\n }}\r\n disabled={submitting || !validToSubmit()}\r\n >\r\n 更新\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default ProjectEditDialog;\r\n","\r\nimport React from \"react\";\r\n\r\nimport { Toolbar, IconButton, Box, CircularProgress } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n ToolbarBackGroundColor,\r\n LinkTextColor,\r\n} from \"../Constants\";\r\nimport BusinessIcon from '@material-ui/icons/Business';\r\nimport { TenantInfo } from \"../net/NetworkClient\";\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n toolbar: {\r\n backgroundColor: ToolbarBackGroundColor,\r\n paddingLeft: \"0px\",\r\n },\r\n toolbarTenantBtn: {\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n },\r\n nonactive_btn: {\r\n cursor: \"default\",\r\n pointerEvents: \"none\",\r\n },\r\n configBtn: {\r\n color: LinkTextColor\r\n },\r\n configBox: {\r\n marginLeft: \"auto\",\r\n marginRight: \"0px\"\r\n },\r\n\r\n}));\r\n\r\nconst TenantToolbar: React.FunctionComponent<{\r\n loading: boolean;\r\n tenant: TenantInfo|null;\r\n}> = ({ loading,tenant }) => {\r\n const classes = useStyles();\r\n\r\n var tbtnc = classNames(\r\n classes.toolbarTenantBtn,\r\n { [classes.nonactive_btn]: true }\r\n );\r\n\r\n return (\r\n \r\n {\r\n\r\n }}>\r\n \r\n {(tenant?.tenant?.name ?? \"\") + \" > プロジェクト一覧\"} \r\n \r\n \r\n {/* \r\n \r\n */}\r\n \r\n )\r\n}\r\n\r\n\r\nexport default TenantToolbar;","\r\nimport React, { useEffect } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport TenantSlice from \"./TenantSlice\";\r\nimport { Box, Grid, Button, Card, CardHeader, CardActions, InputAdornment, TextField, FormControlLabel, Switch, CardContent, Typography, Link as MLink, Tooltip } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n ButtonBackGround,\r\n FooterHeight,\r\n ProjectKeyToString,\r\n} from \"../Constants\";\r\nimport { ConfirmDialogSlice } from \"../misc/ConfirmDialog\";\r\nimport ActionSlice, { ActionType } from \"../misc/ActionSlice\";\r\nimport { findProjectsSv, deleteProjectSv, setProjectInvalidSv, getProjectSv, getTenantSv, /*addInitialProjectSv,*/ canIncrementActiveProject } from \"../net/TenantAsync\";\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\nimport PlaceIcon from '@material-ui/icons/Place';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport TodayIcon from '@material-ui/icons/Today';\r\nimport GroupIcon from '@material-ui/icons/Group';\r\nimport ProjectCreateDialog from \"./ProjectCreateDialog\";\r\nimport ProjectAdminDialog from \"./ProjectAdminDialog\";\r\nimport ProjectEditDialog from \"./ProjectEditDialog\";\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { useDebounce } from \"use-debounce\";\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { MAProject } from '../net/NetworkClient';\r\nimport TenantToolbar from './TenantToolbar';\r\n\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n height: \"calc(100vh - 48px - \" + FooterHeight + \"px)\",\r\n },\r\n contents: {\r\n flex: 1,\r\n height: \"100%\",\r\n overflow: \"auto\",\r\n padding: theme.spacing(0, 1),\r\n },\r\n listLabel: {\r\n marginTop: \"auto\",\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(2),\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"none\"\r\n }\r\n },\r\n validOnlyBtn: {\r\n marginRight: theme.spacing(1),\r\n marginTop: 14\r\n },\r\n searchBtn: {\r\n marginLeft: theme.spacing(1),\r\n marginTop: 18\r\n },\r\n addBtn: {\r\n marginRight: theme.spacing(1),\r\n backgroundColor: ButtonBackGround,\r\n marginTop: 12,\r\n marginLeft: \"auto\",\r\n },\r\n subBtn: {\r\n marginRight: theme.spacing(1),\r\n backgroundColor: ButtonBackGround,\r\n marginTop: 12\r\n },\r\n deleteMenuItem: {\r\n color: theme.palette.error.main\r\n },\r\n activeIcon: {\r\n color: ButtonBackGround\r\n },\r\n deactiveIcon: {\r\n color: theme.palette.text.disabled\r\n },\r\n hideDownXs: {\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"none\"\r\n },\r\n },\r\n cardTitle: {\r\n color: theme.palette.text.primary,\r\n cursor: \"pointer\",\r\n },\r\n cardContent: {\r\n paddingLeft: theme.spacing(4),\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n },\r\n cardText: {\r\n fontSize: \"0.8rem\",\r\n },\r\n cardButton: {\r\n fontSize: \"0.8rem\",\r\n }\r\n\r\n}));\r\n\r\nfunction TenantView() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n //ログイン中のユーザー情報\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n\r\n //テナント一覧\r\n const tenants = useSelector(\r\n (state: RootState) => state.tenants.tenants\r\n );\r\n //選択中のテナント\r\n const currentTenant = useSelector(\r\n (state: RootState) => state.tenants.currentTenant\r\n )\r\n //選択中のプロジェクト\r\n const currentProjects = useSelector(\r\n (state: RootState) => state.tenants.projects\r\n );\r\n\r\n\r\n const { tenantid } = useParams<{ tenantid: string }>();\r\n //const [currentTenant, setCurrentTenant] = React.useState();\r\n const [loading, setLoading] = React.useState(false);\r\n const [openCreateProjectDialog, setOpenCreateProjectDialog] = React.useState(false);\r\n const [openProjectAdminDialog, setOpenProjectAdminDialog] = React.useState(false);\r\n const [openProjectEditDialog, setOpenProjectEditDialog] = React.useState(false);\r\n const [projectIdForDialog, setProjectIdForDialog] = React.useState(\"\");\r\n\r\n\r\n const [searchWord, setSearchWord] = React.useState(\"\");\r\n const [searchInvalid, setSearchInvalid] = React.useState(false);\r\n\r\n //表示中のテナントが変更された場合\r\n useEffect(() => {\r\n if (!!currentTenant) {\r\n refreshProjectList();\r\n } else {\r\n setSearchWord(\"\");\r\n setSearchInvalid(false);\r\n dispatch(TenantSlice.actions.setProjects([]));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [currentTenant]);\r\n\r\n\r\n\r\n //OnChangeの度に検索すると処理が重たいので、debounce処理\r\n const [debouncedData] = useDebounce(searchWord, 500);\r\n useEffect(() => {\r\n //検索条件が変更された\r\n refreshProjectList();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [debouncedData, searchInvalid]);\r\n\r\n function refreshTenantInfo() {\r\n dispatch(getTenantSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", callback: (ok, retenant) => {\r\n if (!ok || retenant == null) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"会社情報を取得できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n TenantSlice.actions.updateTenants(retenant)\r\n );\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\r\n function refreshProjectList() {\r\n if (!currentTenant?.tenant?.id)\r\n return;\r\n setLoading(true);\r\n dispatch(findProjectsSv({\r\n tenantId: currentTenant.tenant?.id,\r\n searchName: searchWord,\r\n searchInvalid: searchInvalid,\r\n callback: (ok, prjinfos) => {\r\n if (ok && prjinfos) {\r\n dispatch(TenantSlice.actions.setProjects(prjinfos));\r\n } else {\r\n dispatch(TenantSlice.actions.setProjects([]));\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"プロジェクト一覧情報を取得できませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n setLoading(false);\r\n }\r\n }));\r\n }\r\n\r\n\r\n //アクション処理\r\n const actionMessage = useSelector((state: RootState) => state.action.action);\r\n useEffect(() => {\r\n switch (actionMessage.type) {\r\n case ActionType.EDIT_PROJECT_IN_TENANT: {\r\n //プロジェクト編集が押された\r\n const pid = actionMessage.value ?? \"\";\r\n setProjectIdForDialog(pid);\r\n setOpenProjectEditDialog(true);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n } break;\r\n case ActionType.SET_PROJECT_ADMIN_IN_TENANT: {\r\n //管理者設定が押された\r\n const pid = actionMessage.value ?? \"\";\r\n setProjectIdForDialog(pid);\r\n setOpenProjectAdminDialog(true);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n } break;\r\n case ActionType.VALIDATE_PROJECT_IN_TENANT: {\r\n //利用可能にするボタンが押された\r\n const pid = actionMessage.value ?? \"\";\r\n dispatch(setProjectInvalidSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\",\r\n projectId: pid,\r\n invalid: false,\r\n callback(ok, error) {\r\n if (!ok) {\r\n dispatch(canIncrementActiveProject({\r\n tenantId:currentTenant?.tenant?.id ?? \"\",\r\n callback:(canIncrease)=>{\r\n if (!canIncrease) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"利用上限エラー\",\r\n message: \"すでに利用上限に達しているのでいずれかのプロジェクトを利用停止にするか、契約プロジェクト数を増やしてください。\",\r\n })\r\n );\r\n }else{\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"プロジェクトを利用可能にできませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n }))\r\n } else {\r\n dispatch(getProjectSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", projectId: pid, callback(ok2, sp) {\r\n if (ok2 && sp)\r\n dispatch(TenantSlice.actions.updateProject(sp));\r\n }\r\n }));\r\n refreshTenantInfo();\r\n }\r\n }\r\n }));\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n } break;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [actionMessage]);\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (!!tenantid) {\r\n var cur = tenants.find(t => { return tenantid === t.tenant?.id });\r\n dispatch(TenantSlice.actions.setCurrent(cur ?? null));\r\n } else {\r\n dispatch(TenantSlice.actions.setCurrent(null));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenantid, tenants]);\r\n\r\n function onCalendar(prj: MAProject | undefined) {\r\n history.push(\"/calendar/\" + tenantid + \"/\" + prj?.id);\r\n }\r\n /**\r\n * 管理者設定を押された\r\n */\r\n function onSetProjectAdmin(prj: MAProject | undefined) {\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.SET_PROJECT_ADMIN_IN_TENANT, value: prj?.id }));\r\n }\r\n\r\n //編集メニューが押された\r\n function onEditAction(prj: MAProject | undefined) {\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.EDIT_PROJECT_IN_TENANT, value: prj?.id }));\r\n }\r\n //プロジェクトを利用停止する\r\n function onInvalidate(prj: MAProject | undefined) {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"利用停止の確認\",\r\n message:\r\n \"本当に「\" + prj?.name + \"」の利用を停止してもよろしいですか?利用再開するまで端末での利用ができません。\",\r\n callback: (inok) => {\r\n if (inok) {\r\n dispatch(setProjectInvalidSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\",\r\n projectId: prj?.id ?? \"\",\r\n invalid: true,\r\n callback(ok) {\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"プロジェクトを利用停止できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(getProjectSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", projectId: prj?.id ?? \"\", callback(ok2, sp) {\r\n if (ok && sp)\r\n dispatch(TenantSlice.actions.updateProject(sp));\r\n }\r\n }));\r\n refreshTenantInfo();\r\n }\r\n }\r\n }));\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n }\r\n })\r\n );\r\n }\r\n //プロジェクトを利用再開する\r\n function onValidate(prj: MAProject | undefined) {\r\n dispatch(ActionSlice.actions.doAction({ type: ActionType.VALIDATE_PROJECT_IN_TENANT, value: prj?.id }));\r\n }\r\n\r\n //削除メニューが押された。確認ダイアログを表示。\r\n function onDeleteAction(prj: MAProject | undefined) {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message:\r\n \"本当に「\" + prj?.name + \"」を削除してもよろしいですか?登録済みの朝礼データなども削除され、復旧することはできません。\",\r\n callback: (inok) => {\r\n if (inok) {\r\n dispatch(deleteProjectSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\",\r\n projectId: prj?.id ?? \"\",\r\n callback(ok) {\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"プロジェクトを削除できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(TenantSlice.actions.removeProject(prj?.id ?? \"\"));\r\n }\r\n }\r\n }));\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n }\r\n }\r\n })\r\n );\r\n }\r\n if (!user)\r\n return null;\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n { setSearchWord(e.target.value) }}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n\r\n\r\n { setSearchInvalid(!e.target.checked) }}\r\n color=\"secondary\"\r\n />\r\n }\r\n label=\"利用中のみ\"\r\n />\r\n {/*\r\n \r\n \r\n */}\r\n \r\n \r\n \r\n {currentProjects.map((prj, idx) => {\r\n return (\r\n \r\n \r\n \r\n }\r\n\r\n title={ { onCalendar(prj.project) }} underline=\"always\" className={classes.cardTitle} >{prj.project?.name + \" (\" + ProjectKeyToString(prj.project, \" / \") + \")\"}}\r\n subheader={moment(prj.project?.updatedUTC).format(\"YYYY/MM/DD HH:mm:ss\")}\r\n />\r\n \r\n \r\n {prj.project?.description}\r\n \r\n \r\n {prj.project?.managementNumber}\r\n \r\n \r\n リーダー:{\r\n [...(prj.projectAdmins ?? []), ...(prj.tenantAdmins ?? [])]?.map((user => {\r\n return user.name + \" \";\r\n }))\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n { onCalendar(prj.project) }}>\r\n カレンダー\r\n \r\n \r\n \r\n \r\n \r\n\r\n )\r\n })}\r\n\r\n \r\n \r\n {\r\n setOpenCreateProjectDialog(false);\r\n if (ok && prj) {\r\n dispatch(TenantSlice.actions.addProject(prj));\r\n refreshTenantInfo();\r\n }\r\n }}\r\n />\r\n {\r\n setOpenProjectAdminDialog(false);\r\n }}\r\n />\r\n {\r\n setOpenProjectEditDialog(false);\r\n if (ok && project) {\r\n dispatch(TenantSlice.actions.updateProject(project));\r\n refreshTenantInfo();\r\n }\r\n }} />\r\n \r\n )\r\n}\r\n\r\n\r\nexport default TenantView;\r\n\r\n","import React, { useEffect } from 'react';\r\nimport {\r\n Box,\r\n Button,\r\n makeStyles,\r\n Card, CardHeader, Avatar, CardActions\r\n} from \"@material-ui/core\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport { getTenantUsersSv, sendConfirmMailSv, deleteTenantUserSv } from \"../net/TenantAsync\";\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\n\r\nimport { MAUser, TenantInfo } from '../net/NetworkClient';\r\nimport HighlightOffIcon from '@material-ui/icons/HighlightOff';\r\nimport MailOutlineIcon from '@material-ui/icons/MailOutline';\r\nimport { ConfirmDialogSlice } from '../misc/ConfirmDialog';\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n usersBox: {\r\n },\r\n\r\n avaterActive: {\r\n backgroundColor: theme.palette.success.main,\r\n },\r\n avaterDeactive: {\r\n\r\n },\r\n userCard: {\r\n marginBottom: \"2px\",\r\n },\r\n\r\n mailbtn: {\r\n marginLeft: \"auto\",\r\n },\r\n delbtn: {\r\n marginLeft: \"auto\",\r\n color: theme.palette.error.main\r\n }\r\n}));\r\n\r\nconst AdminUserView: React.FunctionComponent<{\r\n active: boolean;\r\n tenantid: string;\r\n setLoading: (loading: boolean) => void;\r\n}> = ({ active, tenantid, setLoading }) => {\r\n var classes = useStyles();\r\n var dispatch = useDispatch();\r\n\r\n const tenants = useSelector(\r\n (state: RootState) => state.tenants.tenants\r\n );\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n const [tenantUsers, setTenantUsers] = React.useState();\r\n const [currentTenant, setCurrentTenant] = React.useState();\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (!!tenantid) {\r\n var cur = tenants.find(t => { return tenantid === t.tenant?.id });\r\n if(cur?.tenant?.id !== currentTenant?.tenant?.id)\r\n setCurrentTenant(cur ?? undefined);\r\n } else {\r\n setCurrentTenant(undefined);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenantid, tenants]);\r\n\r\n //表示時の呼び出し\r\n useEffect(() => {\r\n if(active)\r\n reloadUsers();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [active]);\r\n\r\n //ユーザー一覧の再読み込み\r\n function reloadUsers() {\r\n setLoading(true);\r\n dispatch(getTenantUsersSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", callback: (ok, users) => {\r\n setLoading(false);\r\n if (ok) {\r\n if (users && users.length > 0) {\r\n setTenantUsers(users);\r\n } else {\r\n setTenantUsers([]);\r\n }\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"参加者一覧を取得するのに失敗しました。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n\r\n //認証メールを再送信する\r\n function onSendMail(inUser: MAUser) {\r\n if (inUser.emailConfirmed)\r\n return;\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"メール送信の確認\",\r\n message:\r\n \"メールアドレスの認証してもらうために、メールを送りますか?\",\r\n callback: (inok) => {\r\n if (inok) {\r\n dispatch(sendConfirmMailSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", userName: inUser.userName ?? \"\", callback: (ok) => {\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"メールを送信できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"送信完了\",\r\n message: \"メールを送信しました。\",\r\n })\r\n );\r\n }\r\n }\r\n }))\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n //ユーザーを削除する\r\n function onDeleteUser(inUser: MAUser) {\r\n if (inUser.id === user?.id)\r\n return;\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message:\r\n \"本当に「\" + inUser.name + \"」を登録から削除してもよろしいですか?\",\r\n callback: (inok) => {\r\n if (inok) {\r\n dispatch(deleteTenantUserSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", userName: inUser.userName ?? \"\", callback: (ok) => {\r\n reloadUsers();\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"ユーザーを削除できませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n }))\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n\r\n\r\n if (!user)\r\n return null;\r\n if (!currentTenant?.admin)\r\n return null;\r\n\r\n return (\r\n \r\n {\r\n tenantUsers?.map((userItem) => {\r\n return (\r\n \r\n \r\n {userItem.name?.slice(0, 1) ?? \"x\"}\r\n \r\n }\r\n title={userItem.name}\r\n subheader={userItem.email + (userItem.emailConfirmed ? \"\" : \"(認証待ち)\")}\r\n />\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n )\r\n })\r\n }\r\n \r\n )\r\n}\r\n\r\n\r\n\r\nexport default AdminUserView;","\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport {\r\n MAPayment,\r\n MAOrder,\r\n OrderItem,\r\n OrderRedirect,\r\n PaymentV2Client, PostSettlementInfo, SettlementResult, CurrentPaymentInfo, PostNPInvoiceInfo\r\n} from './NetworkClient';\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\nimport { SERVER_URL } from '../Constants';\r\n\r\n\r\nexport type Order = {\r\n orderCode: string,\r\n count: number\r\n}\r\n//支払い項目マスター取得\r\nexport const GetPaymentsSv = createAsyncThunk void }>(\r\n \"GMO/GetPayments\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var payments = await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getPayments(arg.code);\r\n arg.callback(true,payments);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//現在の支払状況表示\r\nexport const GetCurrentPaymentInfoSv = createAsyncThunk void }>(\r\n \"GMO/GetCurrentPaymentInfo\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var info = await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getCurrentPaymentInfo(arg.tenantId);\r\n arg.callback(true,info);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//支払い履歴\r\nexport const GetOrdersSv = createAsyncThunk void }>(\r\n \"GMO/GetOrders\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var orders = await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getOrders(arg.tenantId);\r\n arg.callback(true,orders);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//支払い開始\r\nexport const GMOSettlementSv = createAsyncThunk void }>(\r\n \"GMO/Settlement\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var data = new PostSettlementInfo();\r\n data.orderItemJson = JSON.stringify(arg.orders);\r\n data.paymentType = arg.paymentType;\r\n data.userName = arg.userName;\r\n data.mailAddress = arg.mailAddress;\r\n data.note = arg.note ?? \"\"; \r\n\r\n var res = await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).gMOSettlement(arg.tenantId,data);\r\n arg.callback(true, res);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//支払い開始\r\nexport const GMOGetResultSv = createAsyncThunk void }>(\r\n \"GMO/GetResult\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var res = await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).gMOGetResult(arg.orderRe);\r\n arg.callback(true,res);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//架け払い開始\r\nexport const PostNPInvoiceSv = createAsyncThunk void }>(\r\n \"Payment/PostNPInvoice\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var res = await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).postNPInvoice(arg.tenantId,arg.info);\r\n arg.callback(true, res);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\nexport const StopSubscriptionSv = createAsyncThunk void }>(\r\n \"Payment/StopSubscription\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new PaymentV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).stopSubscription(arg.tenantId);\r\n arg.callback(true, \"\");\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, \"\"+err);\r\n throw err;\r\n }\r\n }\r\n);","import moment from \"moment-timezone\";\r\nimport React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\n\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n Divider, DialogActions\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport {\r\n MAOrder,\r\n} from \"../net/NetworkClient\";\r\n\r\nimport { GetOrdersSv } from \"../net/PaymentAsync\";\r\nimport { ButtonBackGround, numberWithDelimiter } from \"../Constants\";\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n historyList: {\r\n maxHeight: \"350px\",\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n}));\r\n\r\nconst OrderHistoryDialog: FunctionComponent<{\r\n open: boolean;\r\n tenantId: string;\r\n onClose: () => void;\r\n}> = ({ open, onClose, tenantId }) => {\r\n const classes = useStyles();\r\n\r\n const [orders, setOrders] = useState([]);\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n if (open) {\r\n dispatch(GetOrdersSv({\r\n tenantId: tenantId, callback: (ok, orders) => {\r\n if (ok && orders) {\r\n setOrders(orders);\r\n console.log(orders)\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"支払履歴の取得に失敗しました。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n\r\n return (\r\n {\r\n onClose();\r\n }}\r\n maxWidth=\"md\"\r\n fullWidth\r\n >\r\n \r\n 履歴\r\n \r\n \r\n \r\n\r\n {\r\n orders.map((order) => {return (!order.paid && !order.registered) ? null : (\r\n \r\n \r\n 請求番号\r\n \r\n {order.id}\r\n \r\n \r\n\r\n \r\n 状態\r\n \r\n {order.paid ? \"支払い完了\" : ( order.registered ? \"料金確定\":\"料金未確定\")}\r\n \r\n \r\n\r\n\r\n \r\n 金額\r\n \r\n ¥{numberWithDelimiter(order.price ?? 0)}\r\n \r\n \r\n\r\n\r\n \r\n 品目\r\n \r\n {\r\n order.licenses?.map((l) => (\r\n \r\n {l.name} ({(l.projectCount ?? 0) * (l.quantity ?? 0)}プロジェクト)\r\n {moment(order.startUTC).add(1, \"second\").format(\"YYYY/M/D\")} ~ {moment(order.endUTC).format(\"YYYY/M/D\")}\r\n \r\n ))\r\n }\r\n \r\n \r\n\r\n{/* \r\n \r\n \r\n { alert(\"未実装\") }} className={classes.linkStyle}>\r\n 請求書ダウンロード\r\n \r\n\r\n { alert(\"未実装\") }} className={classes.linkStyle}>\r\n 領収書ダウンロード\r\n \r\n \r\n \r\n*/}\r\n \r\n \r\n )})\r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default OrderHistoryDialog;\r\n","import moment from \"moment-timezone\";\r\nimport React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport LabelIcon from '@material-ui/icons/Label';\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@material-ui/core/styles';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\n\r\nimport InvoiceBanner from \"../images/bn_468x78.png\";\r\n\r\nimport {\r\n Box,\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n TextField, Divider, Link, DialogActions, Radio, FormControlLabel, Typography, IconButton\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport {\r\n MAOrder,\r\n MATenant,\r\n PostNPInvoiceInfo,\r\n} from \"../net/NetworkClient\";\r\n\r\nimport { RootState } from \"../Store\";\r\nimport { PostNPInvoiceSv } from \"../net/PaymentAsync\";\r\nimport { ButtonBackGround, emailValidation, numberWithDelimiter, phoneNumberValidation, PostalCodeFormat, postalCodeValidation } from \"../Constants\";\r\nimport { WaitingSlice } from \"../misc/WaitingBar\";\r\nimport { ButtonGroup } from \"@material-ui/core\";\r\n\r\nlet YubinBango = require('yubinbango-core2')\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n });\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n historyList: {\r\n\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n gridCenter: {\r\n alignSelf: \"flex-start\",\r\n fontSize: \"1rem\",\r\n height: theme.spacing(6)\r\n },\r\n divider: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(1)\r\n },\r\n notation: {\r\n fontSize: \"0.7rem\",\r\n paddingLeft: theme.spacing(1)\r\n },\r\n textField: {\r\n //marginTop: theme.spacing(1),\r\n //marginBottom: theme.spacing(1)\r\n },\r\n postalCodeField: {\r\n //marginTop: theme.spacing(1),\r\n width: \"180px\"\r\n },\r\n amountTextStyle: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: \"2rem\",\r\n justifyContent: \"center\"\r\n },\r\n payBtn: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround\r\n },\r\n actionBox: {\r\n width: \"100%\"\r\n },\r\n postalDiv: {\r\n display: \"flex\",\r\n alignItems: \"baseline\"\r\n },\r\n sendTypeBtnGroup: {\r\n width: \"100%\"\r\n },\r\n sendTypeBtnSelected: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround,\r\n width: \"50%\",\r\n },\r\n sendTypeBtn: {\r\n color: \"white\",\r\n backgroundColor: theme.palette.grey[500],\r\n width: \"50%\",\r\n },\r\n}));\r\n\r\nexport interface DialogTitleProps extends WithStyles {\r\n id: string;\r\n children: React.ReactNode;\r\n onClose: () => void;\r\n}\r\n\r\n\r\ntype InvoiceData = {\r\n mailAddress: string,\r\n tenantName: string,\r\n departmentName: string,\r\n chargePerson: string,\r\n phoneNumber: string,\r\n postalCode: string,\r\n region: string,\r\n address1: string,\r\n address2: string,\r\n address3: string,\r\n invoiceByEmail: boolean\r\n}\r\n\r\nconst NewPaymentDialog: FunctionComponent<{\r\n open: boolean;\r\n tenant: MATenant | undefined;\r\n currentOrder: MAOrder | undefined;\r\n onClose: (update: boolean) => void;\r\n}> = ({ open, onClose, tenant, currentOrder }) => {\r\n const classes = useStyles();\r\n\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n\r\n const [projectCount, setProjectCount] = useState(10);\r\n const [paytype, setPaytype] = useState(\"INVOICE\");\r\n\r\n //const [name, setName] = React.useState('');\r\n //const [mailAddress, setMailAddress] = React.useState('');\r\n\r\n const [page, setPage] = React.useState(0);\r\n\r\n const [regions, setRegions] = React.useState([]);\r\n\r\n const [orderResult, setOrderResult] = React.useState();\r\n\r\n const emptyInvoiceData: InvoiceData = {\r\n mailAddress: \"\",\r\n tenantName: \"\",\r\n departmentName: \"\",\r\n chargePerson: \"\",\r\n phoneNumber: \"\",\r\n postalCode: \"\",\r\n region: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n address3: \"\",\r\n invoiceByEmail: false\r\n };\r\n\r\n const [invoiceData, setInvoiceData] = React.useState(emptyInvoiceData);\r\n const [invoiceError, setInvoiceError] = React.useState(emptyInvoiceData);\r\n\r\n const dispatch = useDispatch();\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (!!tenant) {\r\n\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenant]);\r\n\r\n //架け払いのデータが変更された\r\n useEffect(() => {\r\n var error: InvoiceData = {\r\n mailAddress: \"\",\r\n tenantName: \"\",\r\n departmentName: \"\",\r\n chargePerson: \"\",\r\n phoneNumber: \"\",\r\n postalCode: \"\",\r\n region: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n address3: \"\",\r\n invoiceByEmail: false\r\n };\r\n\r\n error.tenantName = !invoiceData.tenantName ? \"会社名を入力してください\" : \"\";\r\n\r\n error.postalCode = !invoiceData.postalCode ? \"郵便番号を入力してください\" :\r\n !postalCodeValidation(invoiceData.postalCode) ? \"不正な形式です\" : \"\";\r\n\r\n error.mailAddress = !invoiceData.mailAddress ? \"メールアドレスを入力してください\" :\r\n !emailValidation(invoiceData.mailAddress) ? \"不正な形式です\" : \"\";\r\n\r\n error.phoneNumber = !invoiceData.phoneNumber ? \"電話番号を入力してください\" :\r\n !phoneNumberValidation(invoiceData.phoneNumber) ? \"不正な形式です\" : \"\";\r\n\r\n\r\n error.address1 = !invoiceData.address1 ? \"市区町村を入力してください\" : \"\";\r\n error.address2 = !invoiceData.address2 ? \"町名・番地を入力してください\" : \"\";\r\n\r\n var add = invoiceData.region + invoiceData.address1 + invoiceData.address2 + invoiceData.address3;\r\n if (!error.address1 && !error.address1 && add.length > 50) {\r\n error.address1 = error.address2 = error.address3 = \"住所は全体で50文字以内になるように入力してください\";\r\n }\r\n\r\n setInvoiceError(error);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [invoiceData]);\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (open) {\r\n setPaytype(\"INVOICE\");\r\n setRegions(new YubinBango.Core().REGION);\r\n\r\n setPage(0);\r\n if (tenant) {\r\n //setName(tenant.name + \" \" + user?.name);\r\n\r\n var data: InvoiceData = {\r\n mailAddress: tenant.mailAddress ?? user?.email ?? \"\",\r\n tenantName: tenant.nameForInvoice ?? (tenant.name ?? \"\"),\r\n departmentName: tenant.departmentName ?? \"\",\r\n chargePerson: tenant.chargePerson ?? (user?.name ?? \"\"),\r\n phoneNumber: tenant.phoneNumber ?? \"\",\r\n postalCode: tenant.postalCode ?? \"\",\r\n region: tenant.region ?? \"\",\r\n address1: tenant.address1 ?? \"\",\r\n address2: tenant.address2 ?? \"\",\r\n address3: tenant.address3 ?? \"\",\r\n invoiceByEmail: tenant.invoiceByEmail ?? false\r\n };\r\n setInvoiceData(data);\r\n }\r\n if (currentOrder != null) {\r\n var prjcount = 0;\r\n currentOrder.licenses?.map((l) => {\r\n prjcount += (l.projectCount ?? 0);\r\n })\r\n if (prjcount < 10)\r\n prjcount = 10;\r\n setProjectCount(prjcount);\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n const projectCountList = (): number[] => {\r\n var re: number[] = [];\r\n var i = 0;\r\n re[i++] = 10;\r\n re[i++] = 15;\r\n re[i++] = 20;\r\n re[i++] = 25;\r\n re[i++] = 30;\r\n re[i++] = 40;\r\n re[i++] = 50;\r\n re[i++] = 75;\r\n re[i++] = 100;\r\n\r\n return re;\r\n }\r\n\r\n\r\n const DialogTitle = withStyles(styles)((props: DialogTitleProps) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n });\r\n\r\n const postNVInvoice = () => {\r\n\r\n dispatch(WaitingSlice.actions.beginWaiting(\"接続中...\"));\r\n var info = new PostNPInvoiceInfo();\r\n info.timeSpanMonth = 1;\r\n info.projectCount = projectCount;\r\n info.mailAddress = invoiceData.mailAddress;\r\n info.tenantName = invoiceData.tenantName;\r\n info.departmentName = invoiceData.departmentName;\r\n info.chargePerson = invoiceData.chargePerson;\r\n info.phoneNumber = invoiceData.phoneNumber;\r\n info.postalCode = invoiceData.postalCode;\r\n info.region = invoiceData.region;\r\n info.address1 = invoiceData.address1;\r\n info.address2 = invoiceData.address2;\r\n info.address3 = invoiceData.address3;\r\n info.invoiceByEmail = invoiceData.invoiceByEmail;\r\n\r\n dispatch(PostNPInvoiceSv({\r\n tenantId: tenant?.id ?? \"\", info: info, callback: (ok, order) => {\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n setOrderResult(order);\r\n if (ok && order) {\r\n setPage(3);\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"購入情報の登録に失敗しました\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n\r\n const checkError = (): boolean => {\r\n return (!invoiceError.mailAddress &&\r\n !invoiceError.tenantName &&\r\n !invoiceError.departmentName &&\r\n !invoiceError.chargePerson &&\r\n !invoiceError.phoneNumber &&\r\n !invoiceError.postalCode &&\r\n !invoiceError.region &&\r\n !invoiceError.address1 &&\r\n !invoiceError.address2 &&\r\n !invoiceError.address3);\r\n }\r\n\r\n const calcProjectCount = (): number => {\r\n if (!currentOrder || !currentOrder.licenses)\r\n return 10;\r\n var count = 0;\r\n currentOrder.licenses.forEach(v => {\r\n count += v.projectCount ?? 0;\r\n });\r\n\r\n return count;\r\n }\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n maxWidth=\"sm\"\r\n fullWidth\r\n >\r\n {\r\n onClose(false);\r\n }}>\r\n {currentOrder ? \"ライセンス内容変更\" : \"ライセンス購入\"}\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\nexport default NewPaymentDialog;\r\n","import React, { useEffect } from 'react';\r\nimport {\r\n\r\n makeStyles,\r\n Grid, Paper, Divider, Link, Box\r\n} from \"@material-ui/core\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\n\r\nimport { CurrentPaymentInfo, MAOrder, TenantInfo } from '../net/NetworkClient';\r\nimport moment from \"moment-timezone\";\r\nimport { ButtonBackGround } from '../Constants';\r\nimport { GetCurrentPaymentInfoSv, StopSubscriptionSv } from '../net/PaymentAsync';\r\nimport { WaitingSlice } from '../misc/WaitingBar';\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\nimport OrderHistoryDialog from './OrderHistoryDialog';\r\nimport NewPaymentDialog from './NewPaymentDialog';\r\nimport { tenantFindSv } from '../net/TenantAsync';\r\nimport TenantSlice from '../tenant/TenantSlice';\r\nimport { ConfirmDialogSlice } from '../misc/ConfirmDialog';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n paperSytle: {\r\n height: \"100%\",\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n columnStyle: {\r\n padding: theme.spacing(2),\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n backgroundColor: theme.palette.grey[200]\r\n },\r\n\r\n columnDataStyle: {\r\n padding: theme.spacing(2),\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n backgroundColor: theme.palette.grey[200],\r\n textAlign: \"right\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n divider: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(1)\r\n },\r\n caution: {\r\n color: theme.palette.error.main,\r\n fontSize: \"0.9em\",\r\n paddingTop: theme.spacing(2)\r\n }\r\n\r\n}));\r\n\r\nconst AdminLicenseView: React.FunctionComponent<{\r\n active: boolean;\r\n tenantid: string;\r\n setLoading: (loading: boolean) => void;\r\n}> = ({ active, tenantid, setLoading }) => {\r\n var classes = useStyles();\r\n var dispatch = useDispatch();\r\n\r\n const tenants = useSelector(\r\n (state: RootState) => state.tenants.tenants\r\n );\r\n\r\n const [currentTenant, setCurrentTenant] = React.useState();\r\n\r\n const [openNewPaymentDialog, setOpenNewPaymentDialog] = React.useState(false);\r\n\r\n const [openHistoryDialog, setOpenHistoryDialog] = React.useState(false);\r\n\r\n // const [name, setName] = React.useState('');\r\n\r\n // const [mailAddress, setMailAddress] = React.useState('');\r\n\r\n const [currentOrder, setCurrentOrder] = React.useState();\r\n const [currentInfo, setCurrentInfo] = React.useState();\r\n\r\n\r\n const [currentPlans, setCurrentPlans] = React.useState();\r\n\r\n const [registPlans, setRegistPlans] = React.useState();\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (!!tenantid && !!tenants) {\r\n var cur = tenants.find(t => { return tenantid === t.tenant?.id });\r\n //if (cur?.tenant?.id !== currentTenant?.tenant?.id) {\r\n setCurrentTenant(cur ?? undefined);\r\n //setName(cur?.tenant?.name + \" \" + user?.name);\r\n //setMailAddress(user?.email ?? \"\");\r\n refreshInfo();\r\n //}\r\n } else {\r\n setCurrentTenant(undefined);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenantid, tenants]);\r\n\r\n //初期設定\r\n useEffect(() => {\r\n // refreshPayments();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const refreshInfo = () => {\r\n dispatch(WaitingSlice.actions.beginWaiting(\"接続中...\"));\r\n dispatch(GetCurrentPaymentInfoSv({\r\n tenantId: tenantid, callback: (ok, info) => {\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n if (ok && info) {\r\n setCurrentInfo(info);\r\n if (info.currentOrders && info.currentOrders.length > 0) {\r\n setCurrentPlans(info.currentOrders.filter((o) => {return !o.paid && !o.registered }));\r\n setRegistPlans(info.currentOrders.filter((o) => {return !o.paid && o.registered }));\r\n } else {\r\n setCurrentPlans(undefined);\r\n setRegistPlans(undefined);\r\n }\r\n } else {\r\n setCurrentInfo(undefined);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"現在の支払い状況を取得することができませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n\r\n const stopSubscription = ()=>{\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"請求停止の確認\",\r\n message:\r\n \"現在の請求を停止しますか?\",\r\n callback: (inok) => {\r\n if (inok) {\r\n dispatch(StopSubscriptionSv({\r\n tenantId: tenantid , callback: (ok) => {\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"請求の停止に失敗しました\",\r\n })\r\n );\r\n } else {\r\n refreshInfo();\r\n }\r\n }\r\n }))\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n const numberWithDelimiter = (number: string | number) => {\r\n return String(number).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, '$1,');\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n\r\n\r\n\r\n \r\n \r\n \r\n お支払い情報
\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n 現在のプラン\r\n \r\n {(\r\n (currentPlans && currentPlans.length > 0) ?\r\n currentPlans.map((order, idx) => {\r\n return (\r\n \r\n {order.licenses?.map((license) => {\r\n return (\r\n
\r\n \r\n {idx <= 0 ? <> :
}\r\n {license.name ?? \"\"}\r\n
{\"有効期間:\" + moment(order.startUTC).add(1, \"minutes\").format(\"YYYY/MM/DD\")\r\n + \"~\" + moment(order.endUTC).format(\"YYYY/MM/DD\")}\r\n\r\n
{\"料金:\" + numberWithDelimiter(order.price ?? 0) + \"円\"}\r\n
)\r\n })}\r\n
)\r\n\r\n })\r\n :\r\n \"現在ご利用中のプランはありません\"\r\n )}\r\n
\r\n \r\n
\r\n\r\n \r\n \r\n 請求確定\r\n \r\n {(\r\n (registPlans && registPlans.length > 0) ?\r\n registPlans.map((order, idx) => \r\n (\r\n \r\n {order.licenses?.map((license) => {\r\n return (\r\n
\r\n {idx <= 0 ? <> :
}\r\n {license.name ?? \"\"}\r\n
{\"有効期間:\" + moment(order.startUTC).add(1, \"minutes\").format(\"YYYY/MM/DD\")\r\n + \"~\" + moment(order.endUTC).format(\"YYYY/MM/DD\")}\r\n\r\n
{\"料金:\" + numberWithDelimiter(order.price ?? 0) + \"円\"}\r\n
)\r\n })}\r\n
)\r\n )\r\n :\r\n \"請求確定したプランはありません\"\r\n )}\r\n
\r\n \r\n
\r\n \r\n \r\n 次回のご請求\r\n \r\n {(\r\n (currentInfo && currentInfo.nextOrders && currentInfo.nextOrders.length > 0) ?\r\n currentInfo.nextOrders.map((order, idx) => {\r\n return (\r\n \r\n {idx <= 0 ? <> :
}\r\n {order.licenses?.map((license, idx2) => {\r\n return (\r\n
\r\n {license.name ?? \"\"}\r\n
{\"有効期間:\" + moment(order.startUTC).add(1, \"minutes\").format(\"YYYY/MM/DD\")\r\n + \"~\" + moment(order.endUTC).format(\"YYYY/MM/DD\")}\r\n
)\r\n })}\r\n {order.missionCode ?? 0 >= 21 ? \"※ご利用前月の25日にご登録のクレジットカードから継続課金されます\" : \"\"}\r\n
)\r\n })\r\n :\r\n \"現在ご利用中のプランはありません\"\r\n )}\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n\r\n \r\n 履歴\r\n \r\n\r\n { setOpenHistoryDialog(true); }} className={classes.linkStyle}>\r\n お支払い履歴\r\n \r\n \r\n \r\n\r\n \r\n\r\n
\r\n {\r\n setOpenNewPaymentDialog(false);\r\n if (update) {\r\n dispatch(tenantFindSv({\r\n callback: (ok, tenants) => {\r\n dispatch(TenantSlice.actions.setTenants(tenants ?? []));\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"会社情報を取得できませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n }\r\n }}>\r\n { setOpenHistoryDialog(false); }}>\r\n
\r\n );\r\n}\r\n\r\n\r\n\r\nexport default AdminLicenseView;","\r\nimport React, { useEffect } from 'react';\r\nimport { useParams, useHistory } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport TenantSlice from \"../tenant/TenantSlice\";\r\nimport { Toolbar, Box, CircularProgress, Tabs, Tab, TextField, Button } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { putTenantSv, getTenantSv } from \"../net/TenantAsync\";\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { MATenant, TenantInfo } from '../net/NetworkClient';\r\nimport { ToolbarBackGroundColor, ButtonBackGround, FooterHeight, LinkTextColor } from '../Constants';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport AdminUserView from './AdminUserView';\r\nimport PaymentIcon from '@material-ui/icons/Payment';\r\nimport AdminLicenseView from './AdminLicenseView';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n height: \"calc(100vh - 48px -\" + FooterHeight + \"px)\",\r\n },\r\n toolbarTenantBtn: {\r\n color: theme.palette.common.white,\r\n fontSize: \"0.8rem\",\r\n },\r\n nonactive_btn: {\r\n cursor: \"default\",\r\n pointerEvents: \"none\",\r\n },\r\n toolbar: {\r\n backgroundColor: ToolbarBackGroundColor,\r\n paddingLeft: \"0px\",\r\n },\r\n contents: {\r\n flex: 1,\r\n height: \"100%\",\r\n overflow: \"hidden\",\r\n padding: theme.spacing(0, 1),\r\n\r\n position: \"relative\",\r\n },\r\n backBox: {\r\n marginLeft: \"auto\",\r\n marginRight: \"0px\"\r\n },\r\n backBtn: {\r\n color: LinkTextColor,\r\n fontSize: \"0.8rem\",\r\n },\r\n tabPanel: {\r\n padding: theme.spacing(2),\r\n height: \"calc(100vh - 170px - \" + FooterHeight + \"px)\",\r\n overflowY: \"auto\"\r\n },\r\n btn: {\r\n marginTop: theme.spacing(2),\r\n backgroundColor: \"#1976d2\",\r\n color: theme.palette.common.white,\r\n },\r\n tablist: {\r\n height: \"75px\"\r\n },\r\n usersBox: {\r\n\r\n\r\n },\r\n avaterActive: {\r\n backgroundColor: theme.palette.success.main,\r\n },\r\n avaterDeactive: {\r\n\r\n },\r\n userCard: {\r\n marginBottom: \"2px\",\r\n },\r\n\r\n mailbtn: {\r\n marginLeft: \"auto\",\r\n },\r\n delbtn: {\r\n marginLeft: \"auto\",\r\n color: theme.palette.error.main\r\n }\r\n}));\r\n\r\nfunction AdminView() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n const tenants = useSelector(\r\n (state: RootState) => state.tenants.tenants\r\n );\r\n\r\n const { tenantid } = useParams<{ tenantid: string }>();\r\n const [currentTenant, setCurrentTenant] = React.useState();\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const [tabIndex, setTabIndex] = React.useState(0);\r\n\r\n const [tenantName, setTenantName] = React.useState(\"\");\r\n const [tenantNameError, setTenantNameError] = React.useState(\"\");\r\n\r\n //表示中のテナントが変更された場合\r\n useEffect(() => {\r\n if (!!currentTenant) {\r\n setTenantName(currentTenant.tenant?.name ?? \"\");\r\n } else {\r\n setTenantName(\"\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [currentTenant]);\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (!!tenantid) {\r\n var cur = tenants.find(t => { return tenantid === t.tenant?.id });\r\n if (cur?.tenant?.id !== currentTenant?.tenant?.id)\r\n setCurrentTenant(cur ?? undefined);\r\n } else {\r\n setCurrentTenant(undefined);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenantid, tenants]);\r\n\r\n //テナント更新\r\n function onUpdateTenant() {\r\n if (!!tenantNameError)\r\n return;\r\n\r\n var tenant = new MATenant();\r\n tenant.name = tenantName;\r\n dispatch(putTenantSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", value: tenant, callback: (ok) => {\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"会社情報を更新できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(getTenantSv({\r\n tenantId: currentTenant?.tenant?.id ?? \"\", callback: (ok2, retenant) => {\r\n if (!ok2 || retenant == null) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"更新した会社情報を取得できませんでした。\",\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n TenantSlice.actions.updateTenants(retenant)\r\n );\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"更新しました\",\r\n message: \"会社情報を更新しました。\",\r\n })\r\n );\r\n }\r\n }\r\n }))\r\n }\r\n }\r\n }))\r\n }\r\n\r\n //エラーチェック\r\n useEffect(() => {\r\n if (!!tenantName) {\r\n setTenantNameError(\"\");\r\n } else {\r\n setTenantNameError(\"名称を入力してください。\")\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenantName]);\r\n\r\n //タブ選択が変更された\r\n function onChangeTab(event: React.ChangeEvent<{}>, newValue: any) {\r\n setTabIndex(newValue);\r\n }\r\n\r\n if (!user)\r\n return null;\r\n\r\n if (!currentTenant?.admin)\r\n return null;\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n {\r\n history.push(\"/tenants/\" + tenantid);\r\n }}>\r\n \r\n プロジェクト一覧へ戻る\r\n \r\n \r\n \r\n \r\n\r\n \r\n } />\r\n } />\r\n } />\r\n \r\n\r\n {/**登録情報 */}\r\n \r\n {/**ユーザー管理 */}\r\n \r\n {/**課金管理 */}\r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default AdminView;\r\n\r\n","\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { MAProject } from '../net/NetworkClient';\r\nimport moment, { Moment } from \"moment-timezone\";\r\n\r\nimport { Toolbar, Box, IconButton, CircularProgress, MenuItem, Select, Tooltip } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport {\r\n ToolbarBackGroundColor, LinkTextColor, ProjectKeyToString,\r\n} from \"../Constants\";\r\nimport TodayIcon from \"@material-ui/icons/Today\";\r\nimport KeyboardBackspaceIcon from \"@material-ui/icons/KeyboardBackspace\";\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n main: {\r\n flex: 1,\r\n height: \"calc(100vh - 48px)\",\r\n overflow: \"hide\",\r\n },\r\n toolbar: {\r\n backgroundColor: ToolbarBackGroundColor,\r\n borderBottom: \"solid 1px #fff\",\r\n alignItems: \"flex-end\",\r\n paddingLeft:0,\r\n },\r\n toolbarSelect: {\r\n \"&:before\": {\r\n borderColor: LinkTextColor,\r\n },\r\n \"&:after\": {\r\n borderColor: LinkTextColor,\r\n },\r\n color: LinkTextColor,\r\n width: \"100px\",\r\n marginRight: \"8px\",\r\n },\r\n toolbarIcon: {\r\n fill: LinkTextColor,\r\n },\r\n toolbarLabel: {\r\n color: LinkTextColor,\r\n display: \"inline\",\r\n fontSize: \"1.2rem\",\r\n overflow: \"hidden\",\r\n paddingBottom: \"3px\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n },\r\n\r\n toolbarKeyLabel: {\r\n display: \"inline\",\r\n fontSize: \"0.8rem\",\r\n color: LinkTextColor,\r\n paddingBottom: \"6px\",\r\n },\r\n toolbarBtn: {\r\n color: LinkTextColor,\r\n fontSize: \"0.9rem\",\r\n marginRight: \"20px\",\r\n marginLeft: \"auto\",\r\n paddingBottom: \"6px\",\r\n },\r\n progress: {},\r\n contents: {\r\n flex: 1,\r\n height: \"100%\",\r\n overflow: \"auto\",\r\n padding: theme.spacing(0, 1),\r\n },\r\n backbtn: {\r\n color: LinkTextColor,\r\n fontSize: \"0.9rem\",\r\n padding:theme.spacing(1),\r\n }\r\n}));\r\n\r\nconst CalendarToolbar: React.FunctionComponent<{\r\n date?: Moment;\r\n project?: MAProject;\r\n loading: boolean;\r\n onChangeDate: (date: Moment) => void;\r\n}> = ({ date, project, loading, onChangeDate }) => {\r\n\r\n const classes = useStyles();\r\n const history = useHistory();\r\n\r\n const [currentYear, setCurrentYear] = useState(moment().year());\r\n const [currentMonth, setCurrentMonth] = useState(moment().month());\r\n\r\n var years = [];\r\n for (var i = 2020; i < moment().year() + 5; i++) {\r\n years.push(i);\r\n }\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (date) {\r\n setCurrentYear(date.year());\r\n setCurrentMonth(date.month());\r\n } else {\r\n setCurrentYear(moment().year());\r\n setCurrentMonth(moment().month());\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [date]);\r\n\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n {history.push(\"/tenants/\"+project?.tenantId)}}>\r\n \r\n \r\n \r\n \r\n \r\n {\"「\" + (project?.name ?? \"\") + \"」\"}\r\n \r\n \r\n {ProjectKeyToString(project,\"/\")}\r\n \r\n \r\n {\r\n onChangeDate(moment(new Date()));\r\n }}\r\n >\r\n \r\n 今日\r\n \r\n\r\n {\r\n onChangeDate(\r\n moment(date).year(parseInt(\"\" + e.target.value, 10))\r\n );\r\n }}\r\n >\r\n {years.map((y) => (\r\n \r\n {y}年\r\n \r\n ))}\r\n \r\n {\r\n onChangeDate(\r\n moment(date).month(parseInt(\"\" + e.target.value))\r\n );\r\n }}\r\n >\r\n {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((m) => (\r\n \r\n {m + 1}月\r\n \r\n ))}\r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default CalendarToolbar;\r\n","import moment, { Moment } from \"moment-timezone\";\r\nimport React from \"react\";\r\nimport AddIcon from \"@material-ui/icons/Add\";\r\nimport { MAContents } from \"../net/NetworkClient\";\r\nimport {\r\n Box,\r\n Button,\r\n makeStyles,\r\n TableCell,\r\n Typography,\r\n IconButton,\r\n Popover\r\n} from \"@material-ui/core\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useDrag, useDrop, DragSourceMonitor } from \"react-dnd\";\r\nimport ActionSlice, { ActionType } from \"../misc/ActionSlice\";\r\nimport { ConfirmDialogSlice } from \"../misc/ConfirmDialog\";\r\nimport { ButtonBackGround } from \"../Constants\";\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nvar classNames = require(\"classnames\");\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n editBtn: {\r\n marginTop: \"2px\",\r\n padding: \"2px\",\r\n //backgroundColor:\"#333\",\r\n borderRadius: \"5px\",\r\n lineHeight: \"1.1\",\r\n },\r\n editText: {\r\n fontSize: \"0.9rem\",\r\n whiteSpace:\"nowrap\",\r\n textOverflow:\"ellipsis\",\r\n overflow:\"hidden\",\r\n width:\"calc(100vw / 7 - 12px)\",\r\n textAlign:\"left\",\r\n },\r\n timeText: {\r\n fontSize: \"0.9rem\",\r\n whiteSpace:\"nowrap\",\r\n overflow:\"hidden\",\r\n width:\"42px\",\r\n textAlign:\"left\",\r\n position:\"absolute\",\r\n left:0\r\n },\r\n placeText: {\r\n fontSize: \"0.9rem\",\r\n whiteSpace:\"nowrap\",\r\n overflow:\"hidden\",\r\n textAlign:\"left\",\r\n marginLeft:\"42px\",\r\n },\r\n daybtn: {\r\n width: \"14.286%\",\r\n borderRadius: 0,\r\n minWidth: \"initial\",\r\n border: \"#dadce0 1px solid \",\r\n textAlign: \"center\",\r\n verticalAlign: \"top\",\r\n padding: \"6px\",\r\n wordBreak: \"break-word\",\r\n position: \"relative\",\r\n },\r\n sunday: {\r\n color: \"red\",\r\n },\r\n saturday: {\r\n color: \"blue\",\r\n },\r\n passed: {\r\n backgroundColor: \"rgba(240,240,240,0.8)\",\r\n },\r\n dropHighlight: {\r\n backgroundColor: \"rgba(255,255,0,0.5)\",\r\n },\r\n nomal: {\r\n backgroundColor: \"white\",\r\n },\r\n today: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround,\r\n borderRadius: \"20px\",\r\n fontSize: \"0.8rem\",\r\n marginLeft: \"22px\",\r\n marginRight: \"22px\",\r\n whiteSpace:\"nowrap\"\r\n },\r\n day: {\r\n fontSize: \"0.8rem\",\r\n },\r\n btnStyle: {\r\n borderRadius: 25,\r\n padding: \"1px\",\r\n minWidth: \"10px\",\r\n position: \"absolute\",\r\n top: \"6px\",\r\n left: \"5px\",\r\n },\r\n menuBtnStyle: {\r\n borderRadius: 25,\r\n padding: \"1px\",\r\n minWidth: \"10px\",\r\n position: \"absolute\",\r\n top: \"6px\",\r\n right: \"5px\",\r\n },\r\n\r\n btnBigStyle: {\r\n marginTop: \"5px\",\r\n minWidth:\"10px\",\r\n paddingLeft:\"8px\",\r\n paddingRight:\"8px\"\r\n },\r\n btnSvg: {\r\n fontSize: \"1rem\"\r\n },\r\n hideDownXs: {\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"none\"\r\n },\r\n },\r\n}));\r\n\r\nconst today = moment()\r\n .hour(0)\r\n .minute(0)\r\n .second(0)\r\n .millisecond(0);\r\n\r\nexport class DupInfo {\r\n contentsId: string = \"\";\r\n to: Date = new Date();\r\n}\r\n\r\nconst ContentsPop: React.FunctionComponent<{\r\n contents: MAContents[];\r\n onClick: (contents: MAContents, anchorElement: Element) => void;\r\n}> = ({ contents, onClick }) => {\r\n var classes = useStyles();\r\n\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n if ((contents?.length ?? 0) <= 0)\r\n return null;\r\n\r\n const handleClick = (event: React.MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const open = Boolean(anchorEl);\r\n\r\n return (\r\n \r\n \r\n\r\n \r\n \r\n {\r\n contents?.map((cnt) => )\r\n }\r\n \r\n \r\n \r\n );\r\n\r\n};\r\n\r\nconst ContensBtn: React.FunctionComponent<{\r\n contents: MAContents;\r\n onClick: (contents: MAContents, anchorElement: Element) => void\r\n}> = ({ contents, onClick }) => {\r\n var classes = useStyles();\r\n var dispatch = useDispatch();\r\n\r\n var str = \"\";\r\n var time = moment(contents.startUTC).format(\"HH:mm\");\r\n var place = \"\";\r\n\r\n if(!contents.place){\r\n str = moment(contents.startUTC).format(\"HH:mm\") +\r\n \"~\" +\r\n moment(contents.endUTC).format(\"HH:mm\");\r\n place = \"終了:\"+moment(contents.endUTC).format(\"HH:mm\")\r\n }else{\r\n str = moment(contents.startUTC).format(\"HH:mm\") +\r\n \" \" +\r\n (contents.place ?? \"\");\r\n place = (contents.place ?? \"\");\r\n }\r\n \r\n \r\n var month = moment(contents.startUTC).format(\"M/d\");\r\n\r\n const [{ isDragging }, drag] = useDrag({\r\n item: { name: str, type: \"Contents\", id: contents.id },\r\n options: {\r\n dropEffect: \"copy\",\r\n },\r\n end: (item: { name: string } | undefined, monitor: DragSourceMonitor) => {\r\n const dropResult = monitor.getDropResult();\r\n if (item && dropResult) {\r\n var dpinfo = new DupInfo();\r\n dpinfo.contentsId = contents.id ?? \"\";\r\n dpinfo.to = dropResult.date;\r\n if (dropResult.dropok) {\r\n //OKの場合の複製処理はContentsListCalendar内で処理\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"複製の確認\",\r\n message:\r\n \"「\" +\r\n month +\r\n \" \" +\r\n str +\r\n \"」の朝礼を「\" +\r\n dropResult.name +\r\n \"」へ複製してもよろしいですか?\",\r\n callback:(ok)=>{\r\n if(ok){\r\n dispatch(ActionSlice.actions.doAction({type:ActionType.CONFIRM_DUPULICATE,value:JSON.stringify(dpinfo)}));\r\n }\r\n }\r\n })\r\n );\r\n }\r\n }\r\n },\r\n collect: (monitor) => ({\r\n isDragging: monitor.isDragging(),\r\n }),\r\n });\r\n\r\n const onClickMenu = (event: React.MouseEvent) => {\r\n var el = document.getElementById(contents.id ?? \"\");\r\n if (el) {\r\n onClick(contents, el);\r\n }\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n {time}{place}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst CalendarCell: React.FunctionComponent<{\r\n date?: Moment;\r\n contents: MAContents[];\r\n serverChecked: boolean;\r\n onClick: (contents: MAContents, anchorElement: Element) => void;\r\n onCreate: (date: Moment) => void;\r\n}> = ({ date, contents, serverChecked, onClick, onCreate }) => {\r\n var classes = useStyles();\r\n\r\n const [{ isOver }, drop] = useDrop({\r\n accept: \"Contents\",\r\n drop: () => ({\r\n name: \"\" + date?.format(\"M/D\"),\r\n date: moment(date).utc().toDate(),\r\n dropok: !(date?.isBefore(today) ?? false),\r\n }),\r\n collect: (monitor) => ({\r\n isOver: monitor.isOver(),\r\n canDrop: () => !(date?.isBefore(today) ?? false),\r\n }),\r\n });\r\n\r\n if (!date) return ;\r\n\r\n var cls = classNames(\r\n classes.daybtn,\r\n { [classes.sunday]: date.day() === 0 },\r\n { [classes.saturday]: date.day() === 6 },\r\n { [classes.passed]: !isOver && date.isBefore(today) },\r\n { [classes.nomal]: !isOver && !date.isBefore(today) },\r\n { [classes.dropHighlight]: isOver && !date.isBefore(today) }\r\n );\r\n return (\r\n \r\n
\r\n \r\n {date.format(\"M/D\")}\r\n \r\n\r\n {\r\n /*3件未満の場合*/\r\n (contents?.length ?? 0) <= 3 &&\r\n contents?.map((cnt) => )\r\n }\r\n\r\n {\r\n /*3件以上の場合のトップ2つ*/\r\n (contents?.length ?? 0) > 3 &&\r\n contents\r\n ?.slice(0, 2)\r\n ?.map((cnt) => )\r\n }\r\n {\r\n /*3件以上の場合のポップアップ*/\r\n (contents?.length ?? 0) > 3 && (\r\n \r\n )\r\n }\r\n\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default CalendarCell;\r\n","import moment, { Moment } from \"moment-timezone\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\n\r\nimport { makeStyles, Table, TableBody, TableCell, TableHead, TableRow } from \"@material-ui/core\";\r\n\r\nimport { findContentsSv, getContentsDataSv, postContentsSv } from \"../net/CalendarAsync\"\r\nimport { MAContents, MAProject } from \"../net/NetworkClient\";\r\nimport { RootState } from \"../Store\";\r\nimport ActionSlice, { ActionType } from \"../misc/ActionSlice\";\r\nimport { WaitingSlice } from \"../misc/WaitingBar\";\r\nimport CalendarCell, { DupInfo } from \"./CalendarCell\"\r\nimport { FooterHeight } from \"../Constants\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nvar classNames = require(\"classnames\");\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n dayofweek: {\r\n height: \"24px\",\r\n },\r\n dayofweekcell: {\r\n padding: \"0px\",\r\n textAlign: \"center\",\r\n border: \"#dadce0 1px solid \",\r\n backgroundColor: \"white\"\r\n },\r\n sunday: {\r\n color: \"red\",\r\n },\r\n saturday: {\r\n color: \"blue\",\r\n },\r\n row4: {\r\n height: \"25%\",\r\n },\r\n row5: {\r\n height: \"20%\",\r\n },\r\n row6: {\r\n height: \"16%\",\r\n },\r\n /*caltable: {\r\n tableLayout: \"fixed\",\r\n height: \"calc(100% - 48px)\",\r\n },*/\r\n contents: {\r\n height: \"calc(100vh - 96px - \" + FooterHeight + \"px)\"\r\n },\r\n}));\r\n\r\n//1日分の表示情報\r\ninterface DayInfo {\r\n date: Moment;\r\n contents: MAContents[];\r\n serverChecked: boolean;\r\n}\r\n\r\nconst CalendarGrid: React.FunctionComponent<{\r\n month: Moment;\r\n project?: MAProject;\r\n onClickContents: (contents: MAContents, anchorElement: Element) => void\r\n onCreate: (date: Moment) => void;\r\n setLoading: (loading: boolean) => void;\r\n}> = ({ month, project, onClickContents, onCreate, setLoading }) => {\r\n var classes = useStyles();\r\n const dispatch = useDispatch();\r\n const [days, setDays] = useState();\r\n const [refreshFlag, setRefreshFlag] = useState(false);\r\n const actionMessage = useSelector((state: RootState) => state.action.action);\r\n\r\n /**\r\n * 表示日時から、月の1日と最後の日付を取得する\r\n * @param date 表示日時\r\n */\r\n function getFirstLastDate(date: Date): { first: Moment; last: Moment } {\r\n var tgt = moment(date);\r\n var first = moment().year(tgt.year()).month(tgt.month()).date(1);\r\n var last = moment(first).add(1, \"months\").add(-1, \"days\");\r\n\r\n if (first.day() > 0) first.add(-first.day(), \"days\");\r\n if (last.day() < 6) last.add(6 - last.day(), \"days\");\r\n\r\n first.hour(0).minute(0).second(0).millisecond(0);\r\n last.hour(0).minute(0).second(0).millisecond(0);\r\n return { first: first, last: last };\r\n }\r\n /**\r\n * 特定の日時から、含まれる日時を週単位で切り分けた配列を生成する\r\n * @param fromDate 表示対象の日時\r\n */\r\n function makeDays(fromDate: Date): DayInfo[][] {\r\n const { first, last } = getFirstLastDate(fromDate);\r\n var current = moment(first);\r\n var re: DayInfo[][] = [];\r\n var tmpdays: DayInfo[] = [];\r\n\r\n while (!current.isAfter(last, \"days\")) {\r\n tmpdays.push({\r\n date: moment(current),\r\n contents: [],\r\n serverChecked: false,\r\n });\r\n if (tmpdays.length >= 7) {\r\n re.push(tmpdays);\r\n tmpdays = [];\r\n }\r\n\r\n current.add(1, \"days\");\r\n }\r\n return re;\r\n }\r\n\r\n //---------------------\r\n //アクション処理\r\n useEffect(() => {\r\n switch (actionMessage.type) {\r\n case ActionType.CHANGE_CONTENTS_IN_CAL:\r\n setRefreshFlag(true);\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n break;\r\n case ActionType.CONFIRM_DUPULICATE:\r\n //D&Dで複製するときの処理\r\n var dpinfo = JSON.parse(actionMessage.value ?? \"\") as DupInfo;\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n duplicateContainer(dpinfo);\r\n break;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [actionMessage]);\r\n\r\n //表示月、表示現場が変更されたとき\r\n useEffect(() => {\r\n if (refreshFlag) {\r\n setRefreshFlag(false);\r\n // return; \r\n }\r\n if (project) {\r\n setLoading(true);\r\n const { first, last } = getFirstLastDate(month?.toDate());\r\n last.add(1, \"day\");\r\n dispatch(\r\n findContentsSv({\r\n projectId: project.id ?? \"\",\r\n start: first?.utc().toDate(),\r\n end: last?.utc().toDate(),\r\n callback: (ok, contents) => {\r\n if (ok) {\r\n var copyDays = makeDays(month?.toDate());\r\n if (contents) {\r\n contents.forEach((c) => {\r\n copyDays.forEach((lst) => {\r\n const data = lst.find((d) => {\r\n return d.date.isSame(moment(c.startUTC), \"day\");\r\n });\r\n if (data) {\r\n data.contents.push(c);\r\n }\r\n });\r\n });\r\n }\r\n //サーバのチェックフラグ設定\r\n copyDays.forEach((lst) => {\r\n lst.forEach((d) => {\r\n d.serverChecked = true;\r\n });\r\n });\r\n setDays(copyDays);\r\n }\r\n setLoading(false);\r\n },\r\n })\r\n );\r\n\r\n\r\n } else {\r\n setDays(makeDays(month.toDate()));\r\n }\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [month, project, refreshFlag]);\r\n\r\n //朝礼データの複製\r\n function duplicateContainer(dpinfo: DupInfo) {\r\n dispatch(WaitingSlice.actions.beginWaiting(\"データ複製中...\"));\r\n //JSONデータ取得\r\n dispatch(\r\n getContentsDataSv({\r\n contentsId: dpinfo.contentsId,\r\n callback: (ok, json) => {\r\n if (ok && json) {\r\n var start = moment(json.start);\r\n var end = moment(json.end);\r\n const newStart = moment(dpinfo.to)\r\n .hour(start.hour())\r\n .minute(start.minute())\r\n .second(0)\r\n .millisecond(0);\r\n const newEnd = newStart.clone().add(end.diff(start));\r\n json.start = newStart.utc().toDate();\r\n json.end = newEnd.utc().toDate();\r\n dispatch(\r\n postContentsSv({\r\n projectId: json.projectId ?? \"\",\r\n data: json,\r\n callback: (ok, contents) => {\r\n if (ok && contents) {\r\n dispatch(\r\n ActionSlice.actions.doAction({\r\n type: ActionType.CHANGE_CONTENTS_IN_CAL\r\n })\r\n );\r\n }\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n },\r\n })\r\n );\r\n\r\n } else {\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n }\r\n },\r\n })\r\n );\r\n }\r\n\r\n\r\n if (!days) return null;\r\n\r\n\r\n\r\n var rowcls = classNames(\r\n { [classes.row4]: days.length === 4 },\r\n { [classes.row5]: days.length === 5 },\r\n { [classes.row6]: days.length === 6 }\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {days.map((lst, index) => (\r\n \r\n {lst.map((d) => (\r\n {\r\n onClickContents(contents, element);\r\n }}\r\n onCreate={(date) => {\r\n onCreate(date);\r\n }}\r\n >\r\n ))}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n}\r\n\r\n\r\n\r\nexport default CalendarGrid;","import React, { FunctionComponent } from \"react\";\r\n\r\nimport { makeStyles } from \"@material-ui/core\";\r\nimport Box from \"@material-ui/core/Box\";\r\nimport {\r\n MorningAssemblyJson,\r\n ContentsJson,\r\n DetailJson,\r\n NewsJson,\r\n} from \"../net/NetworkClient\";\r\nimport TodayIcon from \"@material-ui/icons/Today\";\r\nimport FaceIcon from \"@material-ui/icons/Face\";\r\nimport NotificationsNoneIcon from \"@material-ui/icons/NotificationsNone\";\r\nimport moment from \"moment-timezone\";\r\nimport PlaceIcon from '@material-ui/icons/Place';\r\n\r\nimport { GetItemKeyIcon, stringToItemTypeKey } from \"../Constants\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nvar classNames = require(\"classnames\");\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n news: {\r\n paddingLeft: theme.spacing(2),\r\n fontSize: \"0.8rem\",\r\n },\r\n precaution: {\r\n paddingLeft: theme.spacing(2),\r\n fontSize: \"0.8rem\",\r\n },\r\n procedureBox: {\r\n backgroundColor: \"transparent\",\r\n boxShadow: \"none\",\r\n },\r\n procedure: {\r\n fontSize: \"0.8rem\",\r\n },\r\n procedureItem: {\r\n paddingLeft: theme.spacing(3),\r\n fontSize: \"0.8rem\",\r\n },\r\n procedureSummary: {\r\n maxHeight: \"30px\",\r\n minHeight: \"30px\",\r\n },\r\n boxTop: {\r\n paddingTop: \"10px\",\r\n },\r\n boxBase: {\r\n paddingLeft: \"33px\",\r\n },\r\n boxContainer: {\r\n position: \"relative\",\r\n },\r\n boxIcon: {\r\n position: \"absolute\",\r\n top: \"5px\",\r\n left: \"5px\",\r\n },\r\n boxItem: {\r\n paddingLeft: \"46px\",\r\n },\r\n procLabel: {\r\n display: \"inline-block\",\r\n width: \"110px\",\r\n },\r\n textContents: {\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\"\r\n }\r\n}));\r\n\r\n/**\r\n *ContentsSimpleViewer用プロパティ\r\n *\r\n * @export\r\n * @interface ContentsSimpleViewerProps\r\n */\r\nexport interface ContentsSimpleViewerProps {\r\n /**\r\n *JSONデータ\r\n *\r\n * @type {MorningAssemblyJson}\r\n * @memberof ContentsSimpleViewerProps\r\n */\r\n data?: MorningAssemblyJson;\r\n\r\n /**\r\n *プロジェクトや開催日などを表示するかどうかのフラグ\r\n *\r\n * @type {boolean}\r\n * @memberof ContentsSimpleViewerProps\r\n */\r\n contentsOnly: boolean;\r\n}\r\nconst News: FunctionComponent<{ data?: NewsJson }> = ({ data = undefined }) => {\r\n const classes = useStyles();\r\n if (!data) return null;\r\n return (\r\n \r\n \r\n \r\n 今日のお知らせ\r\n \r\n {data.content?.map((val, index) => {\r\n return (\r\n \r\n {val}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\nconst Content: FunctionComponent<{ index: number; data: ContentsJson }> = ({\r\n index,\r\n data,\r\n}) => {\r\n const classes = useStyles();\r\n const key = stringToItemTypeKey(data.type ?? \"\");\r\n //const type = getItemType(key);\r\n const itemIcon = GetItemKeyIcon(key);\r\n\r\n return (\r\n \r\n {itemIcon}\r\n \r\n {data.title}\r\n \r\n
\r\n \r\n );\r\n};\r\nconst Details: FunctionComponent<{ detail?: DetailJson, uuid: string }> = ({\r\n detail = undefined,\r\n uuid = \"\",\r\n}) => {\r\n const classes = useStyles();\r\n if (!detail) return null;\r\n\r\n return (\r\n \r\n {detail?.procedures?.map((proc) => {\r\n return (\r\n \r\n \r\n 工種\r\n {proc.work}\r\n \r\n \r\n 作業内容\r\n {proc.content}\r\n \r\n \r\n 協力会社\r\n {proc.company}\r\n \r\n \r\n 危険有害要因\r\n {proc.hazardFactor}\r\n \r\n \r\n 対策\r\n {proc.counterplan}\r\n \r\n \r\n );\r\n })}\r\n {detail?.precautions?.map((prec) => {\r\n return (\r\n \r\n {prec.item}\r\n \r\n );\r\n })}\r\n {detail?.updates?.map((file) => {\r\n return (\r\n \r\n {file.title}\r\n \r\n );\r\n })}\r\n {detail?.speakers?.map((speaker) => {\r\n return (\r\n \r\n {speaker.name}\r\n \r\n );\r\n })}\r\n {detail?.texts?.map((txt) => (\r\n \r\n {txt.lines?.map((l, idx) => (\r\n \r\n {l.title + \" : \" +l.text}\r\n \r\n ))}\r\n \r\n )\r\n )}\r\n {detail?.questions?.map((q) => (\r\n \r\n {q.question}\r\n \r\n ))}\r\n\r\n {detail?.call ? (\r\n {detail?.call}\r\n ) : null}\r\n {detail?.response ? (\r\n {detail?.response}\r\n ) : null}\r\n \r\n );\r\n};\r\n/**\r\n *コンテンツJSONデータを解析して、内容の一覧を表示するコンポーネント\r\n *\r\n * @param {ContentsSimpleViewerProps} {\r\n * data,\r\n * contentsOnly = false,\r\n * }\r\n * @returns コンポーネント\r\n */\r\nfunction ContentsSimpleViewer({\r\n data,\r\n contentsOnly = false,\r\n}: ContentsSimpleViewerProps) {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n \r\n {moment(data?.start).format(\"Y/M/D\")}\r\n \r\n \r\n {moment(data?.start).format(\"H:mm\")}~{moment(data?.end).format(\"H:mm\")}\r\n \r\n \r\n \r\n \r\n \r\n {data?.leader}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {data?.place}\r\n \r\n \r\n\r\n \r\n\r\n \r\n {data?.contents?.map((cnt, index) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default ContentsSimpleViewer;\r\n","import moment from \"moment-timezone\";\r\nimport React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { v4 as uuid } from \"uuid\";\r\n\r\nimport {\r\n Box,\r\n Button,\r\n CircularProgress,\r\n Dialog,\r\n DialogContent,\r\n DialogTitle,\r\n FormControl,\r\n FormHelperText,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n Paper,\r\n Select,\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport {\r\n MATemplate,\r\n MorningAssemblyJson,\r\n MAContents,\r\n} from \"../net/NetworkClient\";\r\nimport { getTemplateDataSv, getTemplateListSv } from \"../net/TemplateAsync\";\r\nimport ContentsSimpleViewer from \"../misc/ContentsSimpleViewer\";\r\n\r\n\r\nimport { findContentsSv, getContentsDataSv, postContentsSv } from \"../net/CalendarAsync\"\r\nimport { RootState } from \"../Store\";\r\nimport TimePicker from \"../misc/TimePicker\";\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nmoment.locale(\"ja\", {\r\n weekdays: [\r\n \"日曜日\",\r\n \"月曜日\",\r\n \"火曜日\",\r\n \"水曜日\",\r\n \"木曜日\",\r\n \"金曜日\",\r\n \"土曜日\",\r\n ],\r\n weekdaysShort: [\"日\", \"月\", \"火\", \"水\", \"木\", \"金\", \"土\"],\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n btn: {\r\n color: theme.palette.text.primary,\r\n },\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n contents: {\r\n width: \"100%\",\r\n height: \"300px\",\r\n overflow: \"auto\",\r\n padding: \"5px\",\r\n },\r\n textBottom: {\r\n verticalAlign: \"bottom\",\r\n },\r\n ctrl: {\r\n minWidth: \"180px\",\r\n },\r\n}));\r\n\r\ninterface BaseData {\r\n id: string;\r\n label: string;\r\n time: string;\r\n endtime: string;\r\n contents?: MAContents;\r\n template?: MATemplate;\r\n json?: MorningAssemblyJson;\r\n}\r\n\r\nconst NewContentsDialog: FunctionComponent<{\r\n open: boolean;\r\n initialDate: Date;\r\n tenantId: string;\r\n projectId: string;\r\n onClose: (ok: boolean, id?: string) => void;\r\n}> = ({ open, initialDate, tenantId, projectId, onClose }) => {\r\n const classes = useStyles();\r\n\r\n const [data, setData] = useState({\r\n startDateTime: moment(initialDate).hour(8).minute(0),\r\n endDateTime: moment(initialDate).hour(23).minute(59),\r\n });\r\n\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n\r\n const [submitting, setSubmitting] = useState(false);\r\n const [loading, setLoading] = useState(false);\r\n const [baseDataList, setBaseDataList] = useState([]);\r\n const [selectedBaseData, setSelectedBaseData] = useState();\r\n const [jsonData, setJsonData] = useState();\r\n const [errors, setErrors] = useState({\r\n template: \"\",\r\n });\r\n const dispatch = useDispatch();\r\n\r\n useEffect(() => {\r\n setData({\r\n startDateTime: moment(initialDate).hour(8).minute(0),\r\n endDateTime: moment(initialDate).hour(23).minute(59),\r\n });\r\n setErrors({ template: \"\" });\r\n setLoading(false);\r\n setSubmitting(false);\r\n setBaseDataList([]);\r\n setSelectedBaseData(undefined);\r\n setJsonData(undefined);\r\n moment.locale(\"ja\");\r\n if (open) {\r\n setLoading(true);\r\n var end = moment(new Date())\r\n .hour(0)\r\n .minute(0)\r\n .second(0)\r\n .add(1, \"days\")\r\n .utc()\r\n .toDate();\r\n var start = moment(end).add(-7, \"days\").toDate();\r\n var bdlist: BaseData[] = [];\r\n\r\n dispatch(\r\n findContentsSv({\r\n projectId: projectId,\r\n start: start,\r\n end: end,\r\n callback: (ok1, list1) => {\r\n if (ok1) {\r\n list1?.forEach((v) => {\r\n var d = moment(v.startUTC);\r\n var ed = moment(v.endUTC);\r\n const label = d.format(\"MM/DD(ddd)\");\r\n bdlist.push({\r\n id: uuid(),\r\n label: label,\r\n time: d.format(\"HH:mm\"),\r\n endtime: ed.format(\"HH:mm\"),\r\n contents: v,\r\n });\r\n });\r\n var tmptime = moment().format(\"HH:mm\");\r\n /*var timespan = 120;\r\n if (bdlist.length > 0) {\r\n tmptime = bdlist[bdlist.length - 1].time;\r\n timespan = bdlist[bdlist.length - 1].timespan;\r\n }*/\r\n //テンプレートを追加読み込み\r\n dispatch(\r\n getTemplateListSv({\r\n tenantId: tenantId,\r\n callback: (ok2, list2) => {\r\n if (ok2) {\r\n list2?.forEach((v) => {\r\n bdlist.push({\r\n id: uuid(),\r\n label: v.name ?? \"テンプレート\",\r\n time: tmptime,\r\n endtime: \"23:59\",\r\n template: v,\r\n });\r\n });\r\n }\r\n setBaseDataList(bdlist);\r\n if (bdlist.length > 0) {\r\n setSelectedBaseData(bdlist[bdlist.length - 1]);\r\n }\r\n setLoading(false);\r\n },\r\n })\r\n );\r\n } else {\r\n setLoading(false);\r\n }\r\n },\r\n })\r\n );\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n\r\n //テンプレートの選択が変更されたときの処理\r\n useEffect(() => {\r\n if (selectedBaseData) {\r\n if (selectedBaseData.json) {\r\n setData(\r\n Object.assign({}, data, {\r\n time: selectedBaseData.time,\r\n endtime: selectedBaseData.endtime,\r\n })\r\n );\r\n setJsonData(selectedBaseData.json);\r\n return;\r\n }\r\n setLoading(true);\r\n if (selectedBaseData.contents) {\r\n //コンテンツを選択\r\n const tmpid = selectedBaseData.contents.id ?? \"\";\r\n dispatch(\r\n getContentsDataSv({\r\n contentsId: tmpid,\r\n callback: (ok, data) => {\r\n if (ok && data) {\r\n const idx = baseDataList.findIndex((v) => {\r\n return v.contents?.id === tmpid;\r\n });\r\n if (idx >= 0) {\r\n var copy = Object.assign({}, selectedBaseData);\r\n copy.json = data;\r\n var copyList = baseDataList.slice();\r\n copyList[idx] = copy;\r\n setBaseDataList(copyList);\r\n setSelectedBaseData(copy);\r\n }\r\n }\r\n setLoading(false);\r\n },\r\n })\r\n );\r\n } else if (selectedBaseData.template) {\r\n //テンプレートを選択\r\n const tmpid = selectedBaseData.template.id ?? \"\";\r\n dispatch(\r\n getTemplateDataSv({\r\n templateId: tmpid,\r\n callback: (ok, json) => {\r\n if (ok && json !== undefined) {\r\n const idx = baseDataList.findIndex((v) => {\r\n return v.template?.id === tmpid;\r\n });\r\n if (idx >= 0) {\r\n var copy = Object.assign({}, selectedBaseData);\r\n copy.json = json;\r\n if (user)\r\n copy.json.leader = user.name;\r\n var copyList = baseDataList.slice();\r\n copyList[idx] = copy;\r\n setBaseDataList(copyList);\r\n setSelectedBaseData(copy);\r\n }\r\n }\r\n setLoading(false);\r\n },\r\n })\r\n );\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [selectedBaseData]);\r\n\r\n useEffect(() => {\r\n var copy = Object.assign({}, errors);\r\n\r\n if (!selectedBaseData) {\r\n copy.template = \"選択して下さい\";\r\n } else {\r\n copy.template = \"\";\r\n }\r\n setErrors(copy);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [data, selectedBaseData]);\r\n\r\n function submit() {\r\n if (!errors.template) {\r\n setSubmitting(true);\r\n var json = MorningAssemblyJson.fromJS(\r\n JSON.parse(JSON.stringify(jsonData))\r\n );\r\n json.leader = jsonData?.leader ?? \"責任者\";\r\n const date = moment(data.startDateTime)\r\n .second(0)\r\n .millisecond(0);\r\n var enddate = moment(data.endDateTime)\r\n .second(0)\r\n .millisecond(0);\r\n\r\n if (enddate.isBefore(date)) {\r\n enddate = moment(initialDate)\r\n .hour(0)\r\n .minute(0)\r\n .second(0)\r\n .millisecond(0);\r\n enddate = enddate.add(1, \"day\");\r\n }\r\n\r\n json.start = new Date(date.toISOString());\r\n json.end = new Date(enddate.toISOString());\r\n dispatch(\r\n postContentsSv({\r\n projectId: projectId,\r\n data: json,\r\n callback: (ok, contents) => {\r\n setSubmitting(false);\r\n if (ok && contents) {\r\n onClose(true, contents.id ?? \"\");\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"データの登録に失敗しました\",\r\n })\r\n );\r\n }\r\n },\r\n })\r\n );\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"入力エラー\",\r\n message: \"入力項目に問題があります。エラー表示に従って内容を修正してください。\",\r\n })\r\n );\r\n }\r\n }\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n aria-labelledby=\"form-dialog-title\"\r\n maxWidth=\"sm\"\r\n fullWidth\r\n >\r\n \r\n 「{moment(initialDate).format(\"M月D日\")}」に新しい朝礼を登録します\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setData(\r\n Object.assign({}, data, {\r\n startDateTime: moment(d),\r\n })\r\n );\r\n }}>\r\n \r\n\r\n \r\n {\r\n setData(\r\n Object.assign({}, data, {\r\n endDateTime: moment(d),\r\n })\r\n );\r\n }}>\r\n \r\n \r\n {/** \r\n \r\n {\r\n setData(\r\n Object.assign({}, data, {\r\n time: e.target.value,\r\n })\r\n );\r\n }}\r\n hidden={submitting === false}\r\n />\r\n \r\n \r\n \r\n {\r\n setData(\r\n Object.assign({}, data, {\r\n endtime: e.target.value,\r\n })\r\n );\r\n }}\r\n hidden={submitting === false}\r\n />\r\n\r\n \r\n \r\n*/}\r\n \r\n \r\n テンプレート\r\n {\r\n const v = baseDataList.find((d) => {\r\n return d.id === e.target.value;\r\n });\r\n setSelectedBaseData(v);\r\n }}\r\n >\r\n {baseDataList.map((d) => (\r\n \r\n {d.label}\r\n \r\n ))}\r\n \r\n {errors.template}\r\n \r\n \r\n \r\n \r\n \r\n 内容\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n onClose(false);\r\n }}\r\n disabled={submitting}\r\n >\r\n キャンセル\r\n \r\n \r\n \r\n {\r\n submit();\r\n }}\r\n disabled={submitting}\r\n >\r\n 登録\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default NewContentsDialog;\r\n","import React, { useEffect } from \"react\";\r\nimport {\r\n Popover,\r\n Typography,\r\n Tabs,\r\n Tab,\r\n AppBar,\r\n makeStyles,\r\n GridList,\r\n GridListTile,\r\n GridListTileBar,\r\n IconButton,\r\n Dialog,\r\n Toolbar,\r\n Button,\r\n DialogContent,\r\n Box,\r\n Grid,\r\n DialogTitle,\r\n TextField,\r\n DialogActions,\r\n} from \"@material-ui/core\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { setTimeout } from \"timers\";\r\nimport ContentsSimpleViewer from \"../misc/ContentsSimpleViewer\";\r\nimport { MAFile, MARollCall, MorningAssemblyJson, MAContents } from \"../net/NetworkClient\";\r\nimport { WaitingSlice } from \"../misc/WaitingBar\";\r\n\r\n/*import {\r\n createContentsSv,\r\n deleteContentsSv,\r\n getContentsDataSv,\r\n getRollCallSv,\r\n} from \"../net/ContentsAsync\";*/\r\n//import { getContentsFilesSv } from \"../net/FileAsync\";\r\n\r\nimport { getContentsDataSv, getContentsRollCallsSv, getContentsFilesSv, postContentsSv, deleteContentsSv, getExcelDataSv } from \"../net/CalendarAsync\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\nimport GetAppIcon from \"@material-ui/icons/GetApp\";\r\nimport CloseIcon from \"@material-ui/icons/Close\";\r\nimport HowToRegIcon from \"@material-ui/icons/HowToReg\";\r\nimport DeleteIcon from \"@material-ui/icons/Delete\";\r\nimport FileCopyIcon from \"@material-ui/icons/FileCopy\";\r\nimport EditIcon from \"@material-ui/icons/Edit\";\r\nimport moment from \"moment-timezone\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { green, red, grey } from \"@material-ui/core/colors\";\r\nimport ActionSlice, { ActionType } from \"../misc/ActionSlice\";\r\nimport { ConfirmDialogSlice } from \"../misc/ConfirmDialog\";\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\nvar classNames = require(\"classnames\");\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n tabPanel: {\r\n height: \"350px\",\r\n overflow: \"auto\",\r\n padding: \"5px\",\r\n },\r\n infoIcon: {\r\n color: theme.palette.common.white,\r\n },\r\n viewerImgH: {\r\n width: \"auto\",\r\n height: \"100%\",\r\n marginTop: theme.spacing(2),\r\n },\r\n viewerImgW: {\r\n width: \"100%\",\r\n height: \"auto\",\r\n marginTop: theme.spacing(2),\r\n },\r\n\r\n saveBtn: {\r\n marginLeft: \"auto\",\r\n },\r\n rollcall: {\r\n marginLeft: \"30px\",\r\n display: \"inline-flex\",\r\n },\r\n checkIcon: {\r\n marginRight: \"5px\",\r\n color: \"green\",\r\n },\r\n actionBtn: {\r\n margin: \"3px\",\r\n },\r\n}));\r\n\r\nconst ContentsDetailDialog: React.FunctionComponent<{\r\n open: boolean;\r\n contents?: MAContents;\r\n position?: Element;\r\n onClose: () => void;\r\n}> = ({ open, contents, position, onClose }) => {\r\n\r\n var dispatch = useDispatch();\r\n var classes = useStyles();\r\n const history = useHistory();\r\n\r\n const [tabValue, setTabValue] = React.useState(0);\r\n\r\n const [contentsData, setContentsData] = React.useState<\r\n MorningAssemblyJson | undefined\r\n >(undefined);\r\n const [filesData, setFilesData] = React.useState(\r\n undefined\r\n );\r\n\r\n const [rollcallsData, setRollcallsData] = React.useState<\r\n MARollCall[] | undefined\r\n >(undefined);\r\n const [selectedFile, setSelectedFile] = React.useState();\r\n\r\n const [selectedFileLandscape, setSelectedFileLandscape] = React.useState(true);\r\n const [dupPopOpen, setDupPopOpen] = React.useState(false);\r\n\r\n const [dupDate, setDupDate] = React.useState(moment());\r\n // const [downloadPath, setDownloadPath] = React.useState(\"\");\r\n\r\n const handleClose = () => {\r\n setContentsData(undefined);\r\n setFilesData(undefined);\r\n setRollcallsData(undefined);\r\n onClose();\r\n };\r\n const handleTabChange = (event: React.ChangeEvent<{}>, newValue: number) => {\r\n setTabValue(newValue);\r\n };\r\n const handleCloseDialog = () => {\r\n setSelectedFile(undefined);\r\n };\r\n\r\n\r\n var selectedImageClass = classNames(\r\n { [classes.viewerImgH]: !selectedFileLandscape },\r\n { [classes.viewerImgW]: selectedFileLandscape }\r\n );\r\n\r\n //ダイアログ表示情報が変更されたとき\r\n useEffect(() => {\r\n if (open && contents) {\r\n setTabValue(0);\r\n setContentsData(undefined);\r\n setFilesData(undefined);\r\n setRollcallsData(undefined);\r\n dispatch(WaitingSlice.actions.beginWaiting(\"読み込み中...\"));\r\n dispatch(\r\n getContentsDataSv({\r\n contentsId: contents?.id ?? \"\",\r\n callback: (ok, data) => {\r\n if (ok && data) {\r\n setContentsData(data);\r\n // setDownloadPath(SERVER_URL+\"/api/print/\"+contents?.projectId+\"/excel?contentsId=\"+contents?.id);\r\n\r\n }\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n if(!ok){\r\n handleClose();\r\n }\r\n },\r\n })\r\n );\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open, contents]);\r\n\r\n //タブが切り替わったとき\r\n useEffect(() => {\r\n if (open) {\r\n //KYにタブ変更\r\n if (tabValue === 1 && filesData === undefined) {\r\n dispatch(WaitingSlice.actions.beginWaiting(\"KYデータ読み込み中\"));\r\n dispatch(\r\n getContentsFilesSv({\r\n contentsId: contents?.id ?? \"\",\r\n callback: (ok, files) => {\r\n if (ok && files) {\r\n setFilesData(files);\r\n } else {\r\n setFilesData([]);\r\n }\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n },\r\n })\r\n );\r\n } else if (tabValue === 2 && rollcallsData === undefined) {\r\n dispatch(WaitingSlice.actions.beginWaiting(\"参加データ読み込み中\"));\r\n dispatch(\r\n getContentsRollCallsSv({\r\n contentsId: contents?.id ?? \"\",\r\n callback: (ok, rollcalls) => {\r\n if (ok && rollcalls) {\r\n setRollcallsData(rollcalls);\r\n } else {\r\n setRollcallsData([]);\r\n }\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n },\r\n })\r\n );\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tabValue]);\r\n\r\n //---------------------\r\n //編集ハンドラー\r\n function OnEdit() {\r\n handleClose();\r\n history.push(\"/contents/\" + contents?.id ?? \"\");\r\n }\r\n //---------------------\r\n //削除確認コールバック\r\n function OnDeleteConfirm() {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message: \"本当に削除してもよろしいですか?\",\r\n callback: (ok) => {\r\n if (ok) {\r\n //項目削除の確認\r\n dispatch(ActionSlice.actions.clearAction(undefined));\r\n dispatch(WaitingSlice.actions.beginWaiting(\"削除中\"));\r\n dispatch(\r\n deleteContentsSv({\r\n contentsId: contents?.id ?? \"\",\r\n callback: (ok) => {\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n if (ok) {\r\n dispatch(\r\n ActionSlice.actions.doAction({\r\n type: ActionType.CHANGE_CONTENTS_IN_CAL\r\n })\r\n );\r\n handleClose();\r\n }\r\n },\r\n })\r\n );\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n //---------------------\r\n //複製処理\r\n function OnDuplicate() {\r\n dispatch(WaitingSlice.actions.beginWaiting(\"複製中...\"));\r\n var json = MorningAssemblyJson.fromJS(\r\n JSON.parse(JSON.stringify(contentsData))\r\n );\r\n\r\n var start = moment(contentsData?.start);\r\n var end = moment(contentsData?.end);\r\n const newStart = moment(dupDate)\r\n .hour(start.hour())\r\n .minute(start.minute())\r\n .second(0)\r\n .millisecond(0);\r\n const newEnd = newStart.clone().add(end.diff(start));\r\n json.start = newStart.utc().toDate();\r\n json.end = newEnd.utc().toDate();\r\n dispatch(\r\n postContentsSv({\r\n projectId: json.projectId ?? \"\",\r\n data: json,\r\n callback: (ok, contents) => {\r\n if (ok && contents) {\r\n dispatch(\r\n ActionSlice.actions.doAction({\r\n type: ActionType.CHANGE_CONTENTS_IN_CAL\r\n })\r\n );\r\n handleClose();\r\n }\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n },\r\n })\r\n );\r\n\r\n }\r\n\r\n\r\n /**\r\n * 出力ボタンが押されたときの処理\r\n */\r\n function onExcel() {\r\n dispatch(WaitingSlice.actions.beginWaiting(\"ファイル生成中...\"));\r\n dispatch(\r\n getExcelDataSv({\r\n contentsId: contents?.id ?? \"\",\r\n callback: (ok, url) => {\r\n if (ok && url) {\r\n /*\r\n const blob = new BlockBlobClient(url);\r\n blob.download();\r\n console.log(url);*/\r\n const link = document.createElement('a');\r\n link.href = url;\r\n document.body.appendChild(link);\r\n link.click();\r\n document.body.removeChild(link);\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"データ生成に失敗しました。\",\r\n })\r\n );\r\n }\r\n dispatch(WaitingSlice.actions.stopWaiting(undefined));\r\n },\r\n })\r\n );\r\n\r\n }\r\n\r\n\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n {\r\n if (r) {\r\n setTimeout(() => {\r\n if (open) {\r\n r.updateIndicator();\r\n }\r\n }, 200);\r\n }\r\n }}\r\n value={tabValue}\r\n onChange={handleTabChange}\r\n centered\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n OnDeleteConfirm();\r\n }}\r\n >\r\n \r\n 削除\r\n \r\n \r\n \r\n 出力\r\n \r\n {\r\n setDupDate(moment(contentsData?.start));\r\n setDupPopOpen(true);\r\n }}\r\n >\r\n \r\n 複製\r\n \r\n {\r\n OnEdit();\r\n }}\r\n >\r\n \r\n 編集\r\n \r\n
\r\n
\r\n \r\n\r\n {\r\n setDupPopOpen(false);\r\n }}\r\n aria-labelledby=\"simple-dialog-title\"\r\n open={dupPopOpen}\r\n >\r\n \r\n 複製先の日付を指定してください\r\n \r\n\r\n \r\n {\r\n setDupDate(moment(e.target.value));\r\n }}\r\n />\r\n \r\n \r\n {\r\n setDupPopOpen(false);\r\n }}\r\n autoFocus\r\n >\r\n キャンセル\r\n \r\n {\r\n setDupPopOpen(false);\r\n OnDuplicate();\r\n }}\r\n >\r\n OK\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {selectedFile\r\n ? moment(selectedFile.createUTC).format(\"YYYY/MM/DD HH:mm:ss\") +\r\n \"(\" +\r\n selectedFile.userName +\r\n \")\"\r\n : \"\"}\r\n \r\n \r\n \r\n ダウンロード\r\n \r\n \r\n \r\n\r\n \r\n {selectedFile && (\r\n \r\n \r\n {\r\n var img = document.getElementById(\"sourceImage\") as HTMLImageElement;\r\n if (img) {\r\n setSelectedFileLandscape(img.naturalHeight < img.naturalWidth);\r\n }\r\n }}\r\n />\r\n \r\n )}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ContentsDetailDialog;\r\n","\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useParams,useHistory } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"../Store\";\r\nimport { Box } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { getProjectSv } from \"../net/TenantAsync\";\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { MAContents, MAProject } from '../net/NetworkClient';\r\nimport CalendarToolbar from './CalendarToolbar';\r\nimport CalendarGrid from \"./CalendarGrid\";\r\nimport { DndProvider } from 'react-dnd-multi-backend';\r\nimport HTML5toTouch from 'react-dnd-multi-backend/dist/esm/HTML5toTouch'; // or any other pipeline\r\nimport NewContentsDialog from './NewContentsDialog';\r\nimport ContentsDetailDialog from './ContentsDetailDialog';\r\nimport { FooterHeight } from '../Constants';\r\n\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n height: \"calc(100vh - 48px - \"+FooterHeight+\"px)\",\r\n },\r\n contents: {\r\n height: \"calc(100vh - 96px - \"+FooterHeight+\"px)\",\r\n },\r\n}));\r\n\r\nfunction CalendarView() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n //ログイン中のユーザー情報\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n\r\n\r\n const { tenantid } = useParams<{ tenantid: string }>();\r\n const { projectid } = useParams<{ projectid: string }>();\r\n\r\n\r\n const [project, setProject] = useState();\r\n const [currentDate, setCurrentDate] = useState(moment());\r\n const [loading, setLoading] = useState(false);\r\n\r\n //新規ダイアログ\r\n const [newContentsDate, setNewContentsDate] = useState(new Date());\r\n const [openNewDialog, setOpenNewDialog] = useState(false);\r\n\r\n //詳細ダイアログ\r\n const [openDetailDialog, setOpenDetailDialog] = useState(false);\r\n const [detailContents, setDetailContents] = useState();\r\n const [detailElement, setDetailElement] = useState();\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (projectid && tenantid) {\r\n setLoading(true);\r\n dispatch(getProjectSv({\r\n tenantId: tenantid, projectId: projectid, callback: (ok, prj) => {\r\n setLoading(false);\r\n if (ok && prj) {\r\n setProject(prj.project);\r\n }\r\n }\r\n }));\r\n } else {\r\n setProject(undefined);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [projectid, tenantid]);\r\n\r\n if (!user)\r\n return null;\r\n return (\r\n\r\n \r\n \r\n {\r\n setCurrentDate(date);\r\n }}\r\n />\r\n\r\n { setLoading(ldg) }}\r\n onClickContents={(contents, element) => {\r\n setDetailContents(contents);\r\n setDetailElement(element);\r\n setOpenDetailDialog(true);\r\n }}\r\n onCreate={(date) => {\r\n setNewContentsDate(date.toDate());\r\n setOpenNewDialog(true);\r\n }}>\r\n \r\n \r\n {\r\n setOpenNewDialog(false);\r\n if (ok && id) {\r\n setOpenNewDialog(false);\r\n history.push(\"/contents/\" + id);\r\n }\r\n }}\r\n />\r\n {\r\n console.log(\"onclose ContentsDetailDialog\")\r\n setOpenDetailDialog(false);\r\n setDetailContents(undefined);\r\n setDetailElement(undefined);\r\n }}\r\n />\r\n \r\n )\r\n}\r\n\r\n\r\nexport default CalendarView;\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { LoginActions, QueryParameterNames, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's login process.\r\n// This is the starting point for the login process. Any component that needs to authenticate\r\n// a user can simply perform a redirect to this component with a returnUrl query parameter and\r\n// let the component perform the login and return back to the return url.\r\nexport class Login extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n console.log(\"action = \"+action);\r\n switch (action) {\r\n case LoginActions.Login:\r\n this.login(this.getReturnUrl());\r\n break;\r\n case LoginActions.LoginCallback:\r\n this.processLoginCallback();\r\n break;\r\n case LoginActions.LoginFailed:\r\n const params = new URLSearchParams(window.location.search);\r\n const error = params.get(QueryParameterNames.Message);\r\n this.setState({ message: error });\r\n break;\r\n case LoginActions.Profile:\r\n this.redirectToProfile();\r\n break;\r\n case LoginActions.Register:\r\n this.redirectToRegister();\r\n break;\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n render() {\r\n const action = this.props.action;\r\n const { message } = this.state;\r\n\r\n if (!!message) {\r\n return
{message}
\r\n } else {\r\n switch (action) {\r\n case LoginActions.Login:\r\n return (
...
);\r\n case LoginActions.LoginCallback:\r\n return (
...
);\r\n case LoginActions.Profile:\r\n case LoginActions.Register:\r\n return (
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async login(returnUrl) {\r\n const state = { returnUrl };\r\n const result = await authService.signIn(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid status result ${result.status}.`);\r\n }\r\n }\r\n\r\n async processLoginCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignIn(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeSignIn finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(`Invalid authentication result status '${result.status}'.`);\r\n }\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) || fromQuery || `${window.location.origin}/`;\r\n }\r\n\r\n redirectToRegister() {\r\n this.redirectToApiAuthorizationPath(`${ApplicationPaths.IdentityRegisterPath}?${QueryParameterNames.ReturnUrl}=${encodeURI(ApplicationPaths.Login)}`);\r\n }\r\n\r\n redirectToProfile() {\r\n this.redirectToApiAuthorizationPath(ApplicationPaths.IdentityManagePath);\r\n }\r\n\r\n redirectToApiAuthorizationPath(apiAuthorizationPath) {\r\n const redirectUrl = `${window.location.origin}${apiAuthorizationPath}`;\r\n // It's important that we do a replace here so that when the user hits the back arrow on the\r\n // browser he gets sent back to where it was on the app instead of to an endpoint on this\r\n // component.\r\n window.location.replace(redirectUrl);\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n // It's important that we do a replace here so that we remove the callback uri with the\r\n // fragment containing the tokens from the browser history.\r\n window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React from 'react'\r\nimport { Component } from 'react';\r\nimport authService from './AuthorizeService';\r\nimport { AuthenticationResultStatus } from './AuthorizeService';\r\nimport { QueryParameterNames, LogoutActions, ApplicationPaths } from './ApiAuthorizationConstants';\r\n\r\n// The main responsibility of this component is to handle the user's logout process.\r\n// This is the starting point for the logout process, which is usually initiated when a\r\n// user clicks on the logout button on the LoginMenu component.\r\nexport class Logout extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n message: undefined,\r\n isReady: false,\r\n authenticated: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n /* if (!!window.history.state.state.local) {\r\n console.log(\"logout 2\");*/\r\n this.logout(this.getReturnUrl());\r\n /*} else {\r\n console.log(\"logout 3\");\r\n // This prevents regular links to /authentication/logout from triggering a logout\r\n this.setState({ isReady: true, message: \"The logout was not initiated from within the page.\" });\r\n }*/\r\n break;\r\n case LogoutActions.LogoutCallback:\r\n this.processLogoutCallback();\r\n break;\r\n case LogoutActions.LoggedOut:\r\n //this.setState({ isReady: true, message: \"You successfully logged out!\" });\r\n break;\r\n default:{\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n\r\n this.populateAuthenticationState();\r\n }\r\n\r\n render() {\r\n const { isReady, message } = this.state;\r\n if (!isReady) {\r\n return
\r\n }\r\n if (!!message) {\r\n return (
{message}
);\r\n } else {\r\n const action = this.props.action;\r\n switch (action) {\r\n case LogoutActions.Logout:\r\n return (
ログアウト処理中...
);\r\n case LogoutActions.LogoutCallback:\r\n return (
...
);\r\n case LogoutActions.LoggedOut:\r\n return (
{message}
);\r\n default:\r\n throw new Error(`Invalid action '${action}'`);\r\n }\r\n }\r\n }\r\n\r\n async logout(returnUrl) {\r\n const state = { returnUrl };\r\n const isauthenticated = await authService.isAuthenticated();\r\n if (isauthenticated) {\r\n const result = await authService.signOut(state);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n break;\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(returnUrl);\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n } else {\r\n //this.setState({ message: \"You successfully logged out!\" });\r\n }\r\n }\r\n\r\n async processLogoutCallback() {\r\n const url = window.location.href;\r\n const result = await authService.completeSignOut(url);\r\n switch (result.status) {\r\n case AuthenticationResultStatus.Redirect:\r\n // There should not be any redirects as the only time completeAuthentication finishes\r\n // is when we are doing a redirect sign in flow.\r\n throw new Error('Should not redirect.');\r\n case AuthenticationResultStatus.Success:\r\n await this.navigateToReturnUrl(this.getReturnUrl(result.state));\r\n break;\r\n case AuthenticationResultStatus.Fail:\r\n this.setState({ message: result.message });\r\n break;\r\n default:\r\n throw new Error(\"Invalid authentication result status.\");\r\n }\r\n }\r\n\r\n async populateAuthenticationState() {\r\n const authenticated = await authService.isAuthenticated();\r\n this.setState({ isReady: true, authenticated });\r\n }\r\n\r\n getReturnUrl(state) {\r\n const params = new URLSearchParams(window.location.search);\r\n const fromQuery = params.get(QueryParameterNames.ReturnUrl);\r\n if (fromQuery && !fromQuery.startsWith(`${window.location.origin}/`)) {\r\n // This is an extra check to prevent open redirects.\r\n throw new Error(\"Invalid return url. The return url needs to have the same origin as the current page.\")\r\n }\r\n return (state && state.returnUrl) ||\r\n fromQuery ||\r\n `${window.location.origin}${ApplicationPaths.LoggedOut}`;\r\n }\r\n\r\n navigateToReturnUrl(returnUrl) {\r\n return window.location.replace(returnUrl);\r\n }\r\n}\r\n","import React, { Component, Fragment } from 'react';\r\nimport { Route } from 'react-router';\r\nimport { Login } from './Login'\r\nimport { Logout } from './Logout'\r\nimport { ApplicationPaths, LoginActions, LogoutActions } from './ApiAuthorizationConstants';\r\n\r\nexport default class ApiAuthorizationRoutes extends Component {\r\n render () {\r\n return(\r\n \r\n loginAction(LoginActions.Login)} />\r\n loginAction(LoginActions.LoginFailed)} />\r\n loginAction(LoginActions.LoginCallback)} />\r\n loginAction(LoginActions.Profile)} />\r\n loginAction(LoginActions.Register)} />\r\n logoutAction(LogoutActions.Logout)} />\r\n logoutAction(LogoutActions.LogoutCallback)} />\r\n logoutAction(LogoutActions.LoggedOut)} />\r\n \r\n );\r\n }\r\n}\r\n\r\nfunction loginAction(name){\r\n return ();\r\n}\r\n\r\nfunction logoutAction(name) {\r\n return ();\r\n}\r\n","import { createSlice, PayloadAction } from \"@reduxjs/toolkit\";\r\nimport { Profile } from \"oidc-client\";\r\nimport { MAUser } from \"../net/NetworkClient\"\r\n\r\nexport type UserProfileDialogInfo = {\r\n open: boolean;\r\n anchorId: string;\r\n};\r\nexport const ClosedPrifileDialogInfo: UserProfileDialogInfo = {\r\n open: false,\r\n anchorId: \"\",\r\n}\r\n\r\nconst AuthSlice = createSlice({\r\n name: \"action\",\r\n initialState: {\r\n oidcUser: null as (Profile | null),\r\n user: null as (MAUser | null),\r\n userProfileDialogInfo: ClosedPrifileDialogInfo,\r\n sysad: false\r\n },\r\n reducers: {\r\n //OpenIDのユーザー情報を登録\r\n setOidcUser: (state, action: PayloadAction) => {\r\n state.oidcUser = action.payload;\r\n },\r\n //DB上のユーザ情報を登録\r\n setUser: (state, action: PayloadAction) => {\r\n state.user = action.payload;\r\n },\r\n setProfileDialog: (state, action: PayloadAction) => {\r\n state.userProfileDialogInfo = action.payload;\r\n },\r\n //システム管理者かどうかを登録\r\n setSysad: (state, action: PayloadAction) => {\r\n state.sysad = action.payload;\r\n },\r\n },\r\n});\r\n\r\nexport default AuthSlice;\r\n","\r\nimport { createAsyncThunk } from '@reduxjs/toolkit';\r\n\r\nimport {\r\n ProfileV2Client, MAUser\r\n} from './NetworkClient';\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\nimport { SERVER_URL } from '../Constants';\r\n\r\n//ユーザープロファイルを取得\r\nexport const getProfileSv = createAsyncThunk void }>(\r\n \"profile/getProfile\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var user = await (new ProfileV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getProfile();\r\n arg.callback(true, user);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//ユーザー名を設定\r\nexport const setUserNameSv = createAsyncThunk void }>(\r\n \"profile/setName\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n await (new ProfileV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).setName(arg.name)\r\n arg.callback(true,null);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,err);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//パスワードを設定\r\nexport const setUserPasswordSv = createAsyncThunk void }>(\r\n \"profile/changePassword\",\r\n async (arg,{dispatch}) => {\r\n try {\r\n await (new ProfileV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).changePassword(arg.password)\r\n arg.callback(true,null);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false,err);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//システム管理者かどうかを確認\r\nexport const isSysadSv = createAsyncThunk void }>(\r\n \"profile/isSysad\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var sysad = await (new ProfileV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).isSysad();\r\n arg.callback(sysad);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);","import React, { useEffect, FunctionComponent } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport {\r\n Popover,\r\n Typography,\r\n makeStyles,\r\n Button,\r\n Box,\r\n Grid,\r\n TextField,\r\n Divider,\r\n CircularProgress,\r\n Avatar,\r\n} from \"@material-ui/core\";\r\nimport { RootState } from \"../Store\";\r\nimport AuthSlice, { ClosedPrifileDialogInfo } from \"../openid/AuthSlice\";\r\nimport VpnKeyIcon from '@material-ui/icons/VpnKey';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\n\r\nimport { getProfileSv, setUserNameSv, setUserPasswordSv } from \"../net/ProfileAsync\";\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport { ButtonBackGround } from \"../Constants\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n gridCenter: {\r\n textAlign: 'center',\r\n width: \"100%\"\r\n },\r\n gridBox: {\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n textAlign: 'center',\r\n width: \"100%\"\r\n },\r\n button: {\r\n padding: 0,\r\n paddingLeft: theme.spacing(3),\r\n width: \"100%\",\r\n justifyContent: \"flex-start\"\r\n },\r\n buttonCenter: {\r\n width: \"100%\",\r\n },\r\n textField: {\r\n margin: \"8px\",\r\n width: \"100%\",\r\n },\r\n top: {\r\n position: \"absolute\",\r\n left: 25,\r\n top: 20,\r\n },\r\n progress: {\r\n color: \"#1a90ff\",\r\n },\r\n\r\n profileBtn: {\r\n color: theme.palette.common.white,\r\n backgroundColor: ButtonBackGround,\r\n width: theme.spacing(5),\r\n height: theme.spacing(5),\r\n marginLeft: \"auto\",\r\n marginRight: \"auto\"\r\n },\r\n}));\r\n\r\n//***************************\r\n// ユーザープロファイルダイアログ\r\n//***************************\r\nconst UserProfileDialog: FunctionComponent = () => {\r\n var dispatch = useDispatch();\r\n const classes = useStyles();\r\n\r\n\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n /* authService.getAccessToken().then(function (token) {\r\n console.log(\"accesstoken=\" + token);\r\n })*/\r\n\r\n //表示ビューインデックス\r\n const [viewIndex, setViewIndex] = React.useState(0);\r\n //変更名称\r\n const [nameText, setNameText] = React.useState(user?.name);\r\n //パスワード\r\n const [passwordText, setPasswordText] = React.useState(\"\");\r\n //パスワード確認用\r\n const [confirmText, setConfirmText] = React.useState(\"\");\r\n //待機中フラグ\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n const dlgInfo = useSelector(\r\n (state: RootState) => state.auth.userProfileDialogInfo\r\n );\r\n\r\n //パスワード設定時のエラー\r\n const [passwordErrors, setPasswordErrors] = React.useState([]);\r\n\r\n //パスワードのエラー配列を表示形式に変換\r\n const toPassErrorToHelperText = () => {\r\n if (passwordErrors.length <= 0)\r\n return \"(※英数字6文字以上で、必ず数字を含めてください)\";\r\n else\r\n return (
{passwordErrors.map((err) => { return
{err}
})}
);\r\n }\r\n useEffect(() => {\r\n if (!passwordText) {\r\n setPasswordErrors([]);\r\n return;\r\n }\r\n if (passwordText.length < 6) {\r\n setPasswordErrors([\"6文字以上入力してください\"]);\r\n return;\r\n }\r\n if (!/[0-9]/.test(passwordText)) {\r\n\r\n setPasswordErrors([\"数字を含めてください\"]);\r\n return;\r\n }\r\n setPasswordErrors([]);\r\n }, [passwordText]);\r\n\r\n useEffect(() => {\r\n if (dlgInfo.open) {\r\n setViewIndex(0);\r\n setPasswordText(\"\");\r\n setConfirmText(\"\");\r\n }\r\n }, [dlgInfo]);\r\n\r\n //***************************\r\n // 閉じる処理\r\n //***************************\r\n const handleClose = () => {\r\n dispatch(\r\n AuthSlice.actions.setProfileDialog(ClosedPrifileDialogInfo)\r\n );\r\n };\r\n\r\n //***************************\r\n // ログアウト\r\n //***************************\r\n /*const onLogout = () => {\r\n handleClose();\r\n history.push(ApplicationPaths.LogOut);\r\n }*/\r\n\r\n //***************************\r\n // 名称変更\r\n //***************************\r\n const onSetName = () => {\r\n if ((nameText?.length ?? 0) <= 0)\r\n return;\r\n\r\n setLoading(true);\r\n dispatch(\r\n setUserNameSv({\r\n name: nameText ?? \"\", callback: (ok, error) => {\r\n setLoading(false);\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"設定できませんでした。\" + error?.response,\r\n })\r\n );\r\n } else {\r\n dispatch(getProfileSv({\r\n callback: (ok2, inUser) => {\r\n if (ok2) {\r\n dispatch(AuthSlice.actions.setUser(inUser));\r\n\r\n handleClose();\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"変更完了\",\r\n message: \"名称を変更しました。\",\r\n })\r\n );\r\n } else {\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"ユーザー情報を取得できませんでした。\"\r\n })\r\n }\r\n }\r\n }))\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n //***************************\r\n // パスワード変更\r\n //***************************\r\n const onChangePassword = () => {\r\n if (passwordText !== confirmText || passwordErrors.length > 0 || !passwordText)\r\n return;\r\n setLoading(true);\r\n dispatch(\r\n setUserPasswordSv({\r\n password: passwordText, callback: (ok, error) => {\r\n setLoading(false);\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"サーバに問題が発生してパスワードを変更できませんでした。\",\r\n })\r\n );\r\n } else {\r\n handleClose();\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"変更完了\",\r\n message: \"パスワードを変更しました。\",\r\n })\r\n );\r\n }\r\n }\r\n })\r\n );\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {user?.name?.slice(0, 1) ?? \" \"}\r\n \r\n \r\n \r\n \r\n \r\n {user?.name}\r\n \r\n \r\n ({user?.email})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n onClick={() => { setViewIndex(1) }}\r\n >氏名変更\r\n \r\n \r\n }\r\n onClick={() => { setViewIndex(2) }}\r\n >パスワード変更\r\n \r\n {/* \r\n \r\n }\r\n >ログアウト\r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setNameText(e.target.value);\r\n }}\r\n error={(nameText?.length ?? \"\") <= 0}\r\n helperText={(nameText?.length ?? 0) <= 0 ? \"氏名を入力してください。\" : \"\"}\r\n />\r\n \r\n \r\n { setNameText(user?.name); setViewIndex(0) }}\r\n className={classes.buttonCenter}\r\n disabled={loading}\r\n >キャンセル\r\n \r\n \r\n 設定\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setPasswordText(e.target.value);\r\n }}\r\n error={passwordErrors?.length > 0}\r\n helperText={toPassErrorToHelperText()}\r\n />\r\n \r\n \r\n {\r\n setConfirmText(e.target.value);\r\n }}\r\n error={passwordText !== confirmText}\r\n helperText={(passwordText !== confirmText ? \"パスワードと内容が違います\" : \"\")}\r\n />\r\n \r\n \r\n { setPasswordText(\"\"); setConfirmText(\"\"); setViewIndex(0) }}\r\n className={classes.buttonCenter}\r\n disabled={loading}\r\n >キャンセル\r\n \r\n \r\n 0 || !passwordText}\r\n >設定\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n\r\n}\r\n\r\n\r\nexport default UserProfileDialog;","\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch } from \"react-redux\";\r\nimport { CircularProgress, Grid, Paper, Divider, Typography } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { MAOrder, OrderRedirect } from '../net/NetworkClient';\r\nimport { ButtonBackGround, FooterHeight } from '../Constants';\r\nimport { GMOGetResultSv } from '../net/PaymentAsync';\r\nimport { Button } from '@material-ui/core';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n\r\n root: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"stretch\",\r\n height: \"calc(100vh - \" + (48 + FooterHeight) + \"px)\",\r\n },\r\n paperSytle: {\r\n height: \"100%\"\r\n },\r\n column: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n topBtn: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround\r\n },\r\n}));\r\n\r\nfunction GMOResultView() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n // const history = useHistory();\r\n // const user = useSelector(\r\n // (state: RootState) => state.auth.user\r\n //);\r\n //テナント一覧\r\n //const tenants = useSelector(\r\n // (state: RootState) => state.tenants.tenants\r\n // );\r\n\r\n const [checked, setChecked] = React.useState(false);\r\n const [order, setOrder] = React.useState();\r\n /*\r\n function findValue(key: string): string {\r\n if (!keyValues)\r\n return \"\";\r\n var re = \"\";\r\n keyValues.forEach((kv) => {\r\n if (kv.key === key) {\r\n re = kv.value ?? \"\";\r\n }\r\n });\r\n return re;\r\n }*/\r\n\r\n //クレジット決済\r\n function isCredit(): boolean {\r\n if (!order?.paymentCode)\r\n return false;\r\n return order.paymentCode === 1 || order.paymentCode === 2;\r\n }\r\n\r\n //銀行振込決済\r\n function isTransfer(): boolean {\r\n if (!order?.paymentCode)\r\n return false;\r\n return order.paymentCode === 22;\r\n }\r\n\r\n //初回呼び出し時\r\n useEffect(() => {\r\n const params = new URLSearchParams(window.location.search);\r\n var order_number = params.get(\"order_number\") ?? \"\";\r\n var res = params.get(\"result\") ?? \"0\";\r\n var trans_code = params.get(\"trans_code\") ?? \"\";\r\n var user_id = params.get(\"user_id\") ?? \"\";\r\n\r\n var orderRe = new OrderRedirect();\r\n orderRe.result = res;\r\n orderRe.orderNumber = (order_number ?? \"\");\r\n orderRe.transCode = trans_code;\r\n orderRe.userId = user_id;\r\n\r\n dispatch(GMOGetResultSv({\r\n orderRe: orderRe, callback: (ok, res) => {\r\n if (ok && res) {\r\n setOrder(res);\r\n setChecked(true);\r\n } else {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"サーバへの接続に失敗しました\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n  手続きを確認しました。決済サーバからデータを取得中です...\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n クレジットカードでのお支払いを確認しました\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n 注文番号\r\n {(order?.id ?? \"\").split(\"-\").join(\"\")}\r\n \r\n\r\n \r\n 価格\r\n {order?.price}円\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n 銀行振込でのご注文を受け付けました
\r\n 下記口座へ有効期限内に\r\n 代金をお振込いただきますようお願いいたします。\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n 注文番号\r\n {(order?.id ?? \"\").split(\"-\").join(\"\")}\r\n \r\n\r\n \r\n 価格\r\n {order?.price}円\r\n \r\n\r\n\r\n \r\n 金融機関名\r\n {order?.verBankName}\r\n \r\n\r\n\r\n \r\n 金融機関コード\r\n {order?.verBankCode}\r\n \r\n\r\n\r\n \r\n 支店名\r\n {order?.verBranchName}\r\n \r\n\r\n\r\n \r\n 支店コード\r\n {order?.verBranchCode}\r\n \r\n\r\n\r\n \r\n 口座番号\r\n {order?.verAccountNo}\r\n \r\n\r\n\r\n \r\n 口座名義\r\n {order?.verAccountName}\r\n \r\n\r\n \r\n ご案内メールアドレス\r\n {order?.mailAddress}\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n ※振込み手数料はお客様負担となりますのでご了承ください。\r\n \r\n \r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n )\r\n}\r\n\r\n\r\nexport default GMOResultView;\r\n\r\n","import { createAsyncThunk } from \"@reduxjs/toolkit\";\r\nimport { MATenant, SysadV2Client, MAOrder, StartEndDate, PostOrderInfo, PutTenantLicenseInfo} from \"./NetworkClient\";\r\nimport { SERVER_URL } from \"../Constants\";\r\nimport { getAuthedAxisInstance } from \"./AxisUtil\";\r\nvar encoding = require('encoding-japanese');\r\n\r\n//テナント情報取得\r\nexport const sysadGetTenantSv = createAsyncThunk void }>(\r\n \"sysad/getTenantSv\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var tenant = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getTenant(arg.tenantId)\r\n arg.callback(true, tenant);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//テナント一覧取得\r\nexport const sysadTenantsSv = createAsyncThunk void }>(\r\n \"sysad/tenantsSv\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var tenants = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).tenants();\r\n arg.callback(true, tenants);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, null);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//請求書送付先設定\r\nexport const sysadPutTenantSv = createAsyncThunk void }>(\r\n \"sysad/putTenant\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).putTenant(arg.tenantId,arg.data);\r\n arg.callback(true);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n\r\n//会社登録用CSVファイル生成\r\nexport const getRegistTenantCsvSv = createAsyncThunk void }>(\r\n \"sysad/getRegistTenantCsv\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var csvstr = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getRegistTenantCsv(arg.tenantId);\r\n arg.callback(true, toShiftJIS(csvstr));\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//注文登録用CSVファイル生成\r\nexport const getRegistOrderCsvSv = createAsyncThunk void }>(\r\n \"sysad/getRegistOrderCsv\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var csvstr = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getRegistOrderCsv(arg.orderId);\r\n arg.callback(true, toShiftJIS(csvstr));\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//文字列をShiftJisのBLOBに変換する\r\nvar toShiftJIS = (utf8String:string):Blob => {\r\n const detected = encoding.detect(utf8String)\r\n const unicodeList = []\r\n \r\n for (let i = 0; i < utf8String.length; i += 1) {\r\n unicodeList.push(utf8String.charCodeAt(i))\r\n }\r\n \r\n const sjisArray = encoding.convert(unicodeList, {\r\n to: 'SJIS',\r\n from: detected\r\n })\r\n \r\n return new Blob([new Uint8Array(sjisArray)], { type: 'text/plain' })\r\n}\r\n\r\n\r\n//注文履歴取得\r\nexport const GetOrdersSv = createAsyncThunk void }>(\r\n \"sysad/getOrders\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var orders = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getOrders(arg.tenantId);\r\n arg.callback(true,orders);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//注文情報取得\r\nexport const SysadGetOrderSv = createAsyncThunk void }>(\r\n \"sysad/getOrder\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var order = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).getOrder(arg.orderId);\r\n arg.callback(true,order);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//次のライセンス時刻の計算\r\nexport const CalcNextStartEndSv = createAsyncThunk void }>(\r\n \"sysad/calcNextStartEnd\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var startEnd = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).calcNextStartEnd(arg.tenantId,1);\r\n arg.callback(true,startEnd);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n///注文情報の登録\r\nexport const PostOrderSv = createAsyncThunk void }>(\r\n \"sysad/postOrder\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var order = await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).postOrder(arg.tenantId,arg.order);\r\n arg.callback(true,order);\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, undefined);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//注文削除\r\nexport const DeleteOrderSv = createAsyncThunk void }>(\r\n \"sysad/deleteOrder\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).deleteOrder(arg.orderId);\r\n arg.callback(true,\"\");\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, \"\"+err);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n\r\n//会社の最大プロジェクト数とライセンス期限を設定\r\nexport const PutTenantLicenseSv = createAsyncThunk void }>(\r\n \"sysad/putTenantLicense\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n var info = new PutTenantLicenseInfo();\r\n info.maxProject = arg.maxPrj;\r\n info.limitUTC = arg.limitDate;\r\n await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).putTenantLicense(arg.tenantId,info);\r\n arg.callback(true,\"\");\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, \"\"+err);\r\n throw err;\r\n }\r\n }\r\n);\r\n\r\n//注文のステータス変更\r\n//paystate 0=未設定,1=請求書登録済,2=支払い確認済み\r\nexport const SysadPutOrderPaystateSv = createAsyncThunk void }>(\r\n \"sysad/putOrderPaystate\",\r\n async (arg, { dispatch }) => {\r\n try {\r\n await (new SysadV2Client(SERVER_URL, await getAuthedAxisInstance(dispatch))).putOrderPaystate(arg.orderId,arg.paystate);\r\n arg.callback(true,\"\");\r\n return true;\r\n } catch (err) {\r\n console.log(err);\r\n arg.callback(false, \"\"+err);\r\n throw err;\r\n }\r\n }\r\n);","import moment from \"moment-timezone\";\r\nimport React, { useEffect, FunctionComponent } from \"react\";\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@material-ui/core/styles';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n Select,\r\n TextField, Divider, Link, DialogActions, Typography, IconButton,ButtonGroup\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport {\r\n MATenant,\r\n} from \"../net/NetworkClient\";\r\n\r\nimport { RootState } from \"../Store\";\r\nimport { ButtonBackGround, emailValidation, phoneNumberValidation, postalCodeValidation } from \"../Constants\";\r\n\r\nimport { sysadPutTenantSv } from \"../net/SysadAsync\";\r\n\r\nlet YubinBango = require('yubinbango-core2')\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n });\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n historyList: {\r\n\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n gridCenter: {\r\n alignSelf: \"flex-start\",\r\n fontSize: \"1rem\",\r\n height: theme.spacing(6)\r\n },\r\n divider: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(1)\r\n },\r\n notation: {\r\n fontSize: \"0.7rem\",\r\n paddingLeft: theme.spacing(1)\r\n },\r\n textField: {\r\n //marginTop: theme.spacing(1),\r\n //marginBottom: theme.spacing(1)\r\n },\r\n postalCodeField: {\r\n //marginTop: theme.spacing(1),\r\n width: \"180px\"\r\n },\r\n amountTextStyle: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: \"2rem\",\r\n justifyContent: \"center\"\r\n },\r\n payBtn: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround\r\n },\r\n actionBox: {\r\n width: \"100%\"\r\n },\r\n postalDiv: {\r\n display: \"flex\",\r\n alignItems: \"baseline\"\r\n },\r\n sendTypeBtnGroup: {\r\n width: \"100%\"\r\n },\r\n sendTypeBtnSelected: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround,\r\n width: \"50%\",\r\n },\r\n sendTypeBtn: {\r\n color: \"white\",\r\n backgroundColor: theme.palette.grey[500],\r\n width: \"50%\",\r\n },\r\n}));\r\n\r\nexport interface DialogTitleProps extends WithStyles {\r\n id: string;\r\n children: React.ReactNode;\r\n onClose: () => void;\r\n}\r\n\r\n\r\ntype InvoiceData = {\r\n nameForInvoice: string,\r\n mailAddress: string,\r\n departmentName: string,\r\n chargePerson: string,\r\n phoneNumber: string,\r\n postalCode: string,\r\n region: string,\r\n address1: string,\r\n address2: string,\r\n address3: string,\r\n invoiceByEmail : boolean\r\n}\r\n\r\nconst SysadEditAddressDialog: FunctionComponent<{\r\n open: boolean;\r\n tenant: MATenant | undefined;\r\n onClose: (update: boolean) => void;\r\n}> = ({ open, onClose, tenant }) => {\r\n const classes = useStyles();\r\n\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n\r\n const [regions, setRegions] = React.useState([]);\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n\r\n const emptyInvoiceData: InvoiceData = {\r\n\r\n nameForInvoice: \"\",\r\n mailAddress: \"\",\r\n departmentName: \"\",\r\n chargePerson: \"\",\r\n phoneNumber: \"\",\r\n postalCode: \"\",\r\n region: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n address3: \"\",\r\n invoiceByEmail : false\r\n };\r\n\r\n const [invoiceData, setInvoiceData] = React.useState(emptyInvoiceData);\r\n const [invoiceError, setInvoiceError] = React.useState(emptyInvoiceData);\r\n\r\n const dispatch = useDispatch();\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (!!tenant) {\r\n\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenant]);\r\n\r\n //架け払いのデータが変更された\r\n useEffect(() => {\r\n var error: InvoiceData = {\r\n nameForInvoice: \"\",\r\n mailAddress: \"\",\r\n departmentName: \"\",\r\n chargePerson: \"\",\r\n phoneNumber: \"\",\r\n postalCode: \"\",\r\n region: \"\",\r\n address1: \"\",\r\n address2: \"\",\r\n address3: \"\",\r\n invoiceByEmail : false\r\n };\r\n\r\n error.nameForInvoice = !invoiceData.nameForInvoice ? \"会社名を入力してください\" : \"\";\r\n\r\n error.postalCode = !invoiceData.postalCode ? \"郵便番号を入力してください\" :\r\n !postalCodeValidation(invoiceData.postalCode) ? \"不正な形式です\" : \"\";\r\n\r\n error.mailAddress = !invoiceData.mailAddress ? \"メールアドレスを入力してください\" :\r\n !emailValidation(invoiceData.mailAddress) ? \"不正な形式です\" : \"\";\r\n\r\n error.phoneNumber = !invoiceData.phoneNumber ? \"電話番号を入力してください\" :\r\n !phoneNumberValidation(invoiceData.phoneNumber) ? \"不正な形式です\" : \"\";\r\n\r\n\r\n error.address1 = !invoiceData.address1 ? \"市区町村を入力してください\" : \"\";\r\n error.address2 = !invoiceData.address2 ? \"町名・番地を入力してください\" : \"\";\r\n\r\n var add = invoiceData.region + invoiceData.address1 + invoiceData.address2 + invoiceData.address3;\r\n if (!error.address1 && !error.address1 && add.length > 50) {\r\n error.address1 = error.address2 = error.address3 = \"住所は全体で50文字以内になるように入力してください\";\r\n }\r\n\r\n setInvoiceError(error);\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [invoiceData]);\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (open) {\r\n setRegions(new YubinBango.Core().REGION);\r\n if (tenant) {\r\n var data: InvoiceData = {\r\n mailAddress: tenant.mailAddress ?? user?.email ?? \"\",\r\n nameForInvoice: tenant.nameForInvoice ?? tenant.name ?? \"\",\r\n departmentName: tenant.departmentName ?? \"\",\r\n chargePerson: tenant.chargePerson ?? user?.name ?? \"\",\r\n phoneNumber: tenant.phoneNumber ?? \"\",\r\n postalCode: tenant.postalCode ?? \"\",\r\n region: tenant.region ?? \"\",\r\n address1: tenant.address1 ?? \"\",\r\n address2: tenant.address2 ?? \"\",\r\n address3: tenant.address3 ?? \"\",\r\n invoiceByEmail : tenant.invoiceByEmail ?? false\r\n };\r\n setInvoiceData(data);\r\n }\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n\r\n const DialogTitle = withStyles(styles)((props: DialogTitleProps) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n });\r\n\r\n\r\n const checkError = (): boolean => {\r\n return (!invoiceError.mailAddress &&\r\n !invoiceError.nameForInvoice &&\r\n !invoiceError.departmentName &&\r\n !invoiceError.chargePerson &&\r\n !invoiceError.phoneNumber &&\r\n !invoiceError.postalCode &&\r\n !invoiceError.region &&\r\n !invoiceError.address1 &&\r\n !invoiceError.address2 &&\r\n !invoiceError.address3);\r\n }\r\n\r\n //変更内容をサーバへ送信する\r\n const onPutInfo = () => {\r\n let t = new MATenant();\r\n t.nameForInvoice = invoiceData.nameForInvoice;\r\n t.mailAddress = invoiceData.mailAddress;\r\n t.departmentName = invoiceData.departmentName;\r\n t.chargePerson = invoiceData.chargePerson;\r\n t.phoneNumber = invoiceData.phoneNumber;\r\n t.postalCode = invoiceData.postalCode;\r\n t.region = invoiceData.region;\r\n t.address1 = invoiceData.address1;\r\n t.address2 = invoiceData.address2;\r\n t.address3 = invoiceData.address3;\r\n t.invoiceByEmail = invoiceData.invoiceByEmail;\r\n\r\n setLoading(true);\r\n dispatch(sysadPutTenantSv({\r\n tenantId: tenant?.id ?? \"\",\r\n data: t,\r\n callback: (ok) => {\r\n setLoading(false);\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"請求書配送先の設定に失敗しました\",\r\n })\r\n );\r\n } else {\r\n onClose(true);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n maxWidth=\"sm\"\r\n fullWidth\r\n >\r\n {\r\n onClose(false);\r\n }}>請求先情報編集\r\n \r\n \r\n\r\n \r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.nameForInvoice = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.departmentName = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.chargePerson = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n 請求書のお届方法\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.mailAddress = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.phoneNumber = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.postalCode = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n /*onKeyUp={(ev) => {\r\n if (ev.target instanceof HTMLInputElement) {\r\n let data = Object.assign({}, invoiceData);\r\n data.postalCode = ev.target.value;\r\n setInvoiceData(data);\r\n }\r\n }}*/\r\n />\r\n\r\n {\r\n new YubinBango.Core(invoiceData.postalCode, (addr: any) => {\r\n let data = Object.assign({}, invoiceData);\r\n if (!addr.region) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"郵便番号エラー\",\r\n message: \"住所が取得できませんでした。郵便番号が正確か再度ご確認ください。\",\r\n })\r\n );\r\n }\r\n data.region = addr.region;\r\n data.address1 = addr.locality;\r\n data.address2 = addr.street;\r\n setInvoiceData(data);\r\n })\r\n }} className={classes.linkStyle}>\r\n 住所を自動入力\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n 都道府県\r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.region = \"\" + ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n >\r\n {\r\n regions.map((val, idx) => (\r\n \r\n ))\r\n }\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.address1 = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.address2 = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {\r\n let data = Object.assign({}, invoiceData);\r\n data.address3 = ev.target.value;\r\n setInvoiceData(data);\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\nexport default SysadEditAddressDialog;\r\n","import moment from \"moment-timezone\";\r\nimport React, { useEffect, useState, FunctionComponent } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@material-ui/core/styles';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n Grid,\r\n MenuItem,\r\n Select,\r\n TextField, DialogActions, Typography, IconButton,\r\n Box,CircularProgress\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\nimport {\r\n MAOrder,\r\n PostOrderInfo,\r\n} from \"../net/NetworkClient\";\r\n\r\nimport { ButtonBackGround } from \"../Constants\";\r\nimport { CalcNextStartEndSv, PostOrderSv } from \"../net/SysadAsync\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n });\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n historyList: {\r\n\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n gridCenter: {\r\n alignSelf: \"flex-start\",\r\n fontSize: \"1rem\",\r\n height: theme.spacing(6)\r\n },\r\n divider: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(1)\r\n },\r\n notation: {\r\n fontSize: \"0.7rem\",\r\n paddingLeft: theme.spacing(1)\r\n },\r\n textField: {\r\n //marginTop: theme.spacing(1),\r\n //marginBottom: theme.spacing(1)\r\n },\r\n postalCodeField: {\r\n //marginTop: theme.spacing(1),\r\n width: \"180px\"\r\n },\r\n amountTextStyle: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: \"2rem\",\r\n justifyContent: \"center\"\r\n },\r\n payBtn: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround\r\n },\r\n actionBox: {\r\n width: \"100%\"\r\n },\r\n postalDiv: {\r\n display: \"flex\",\r\n alignItems: \"baseline\"\r\n }\r\n}));\r\n\r\nexport interface DialogTitleProps extends WithStyles {\r\n id: string;\r\n children: React.ReactNode;\r\n onClose: () => void;\r\n}\r\n\r\nconst SysadAddOrderDialog: FunctionComponent<{\r\n open: boolean;\r\n tenantId: string | undefined;\r\n srcOrder: MAOrder | undefined;\r\n onClose: (update: boolean) => void;\r\n}> = ({ open, onClose, tenantId, srcOrder }) => {\r\n const classes = useStyles();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [projectCount, setProjectCount] = useState(10);\r\n\r\n const [price, setPrice] = useState(10 * 1100);\r\n\r\n //const [order, setOrder] = React.useState();\r\n\r\n const [startDate, setStartDate] = React.useState(moment());\r\n const [endDate, setEndDate] = React.useState(moment());\r\n const dispatch = useDispatch();\r\n\r\n\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (open) {\r\n setLoading(true);\r\n if(!!srcOrder){\r\n var prj = 0;\r\n srcOrder.licenses?.map((l)=>{\r\n prj += l.projectCount ?? 0;\r\n })\r\n if(prj < 10)\r\n prj = 10;\r\n setProjectCount(prj);\r\n setPrice(1100*prj);\r\n }\r\n\r\n dispatch(CalcNextStartEndSv({\r\n tenantId:tenantId??\"\",\r\n callback: (ok, startEnd) => {\r\n setLoading(false);\r\n if (!ok || !startEnd) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"ライセンス時刻の計算ができませんでした\",\r\n })\r\n );\r\n } else {\r\n setStartDate(moment(startEnd.startUTC))\r\n setEndDate(moment(startEnd.endUTC))\r\n }\r\n }\r\n }))\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n const projectCountList = (): number[] => {\r\n var re: number[] = [];\r\n var i = 0;\r\n re[i++] = 10;\r\n re[i++] = 15;\r\n re[i++] = 20;\r\n re[i++] = 25;\r\n re[i++] = 30;\r\n re[i++] = 40;\r\n re[i++] = 50;\r\n re[i++] = 75;\r\n re[i++] = 100;\r\n\r\n return re;\r\n }\r\n\r\n\r\n const DialogTitle = withStyles(styles)((props: DialogTitleProps) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n });\r\n\r\n const calcProjectCount = (): number => {\r\n if (!srcOrder || !srcOrder.licenses)\r\n return 10;\r\n var count = 0;\r\n srcOrder.licenses.forEach(v => {\r\n count += v.projectCount ?? 0;\r\n });\r\n\r\n return count;\r\n }\r\n\r\n const postOrder = () =>{\r\n var info = new PostOrderInfo();\r\n info.startUTC = new Date(startDate.startOf(\"day\").utc().format(\"YYYY-MM-DDTHH:mm:ss\"));\r\n info.endUTC = new Date(endDate.endOf(\"day\").utc().format(\"YYYY-MM-DDTHH:mm:ss\"));\r\n info.price = price;\r\n info.projectCount = projectCount;\r\n info.timeSpanMonth = 1;\r\n\r\n setLoading(true);\r\n dispatch(PostOrderSv({\r\n tenantId:tenantId??\"\",\r\n order:info,\r\n callback: (ok, order) => {\r\n setLoading(false);\r\n if (!ok || !order) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"注文を登録できませんでした\",\r\n })\r\n );\r\n } else {\r\n onClose(true);\r\n }\r\n }\r\n }))\r\n }\r\n \r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n maxWidth=\"sm\"\r\n fullWidth\r\n >\r\n {\r\n onClose(false);\r\n }}>\r\n 注文登録\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n ライセンス開始\r\n \r\n {\r\n setStartDate(moment(e.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n ライセンス終了\r\n \r\n {\r\n setEndDate(moment(e.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n 最大有効プロジェクト数\r\n \r\n\r\n {\r\n var pk = parseInt(\"\" + e.target.value);\r\n setProjectCount(pk);\r\n setPrice(pk * 1100);\r\n }}\r\n >\r\n {\r\n projectCountList().map((v) => (\r\n {v}\r\n ))\r\n }\r\n \r\n \r\n \r\n\r\n\r\n \r\n 料金\r\n \r\n {\r\n var pk = parseInt(ev.target.value, 10);\r\n if(!isNaN(pk))\r\n setPrice( pk );\r\n }}\r\n />\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n );\r\n};\r\nexport default SysadAddOrderDialog;\r\n","import moment from \"moment-timezone\";\r\nimport React, { useEffect, FunctionComponent } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@material-ui/core/styles';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n Grid,\r\n TextField, DialogActions, Typography, IconButton,\r\n Box, CircularProgress\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\n\r\nimport { ButtonBackGround } from \"../Constants\";\r\nimport { PutTenantLicenseSv, sysadGetTenantSv } from \"../net/SysadAsync\";\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n });\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n historyList: {\r\n\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n gridCenter: {\r\n alignSelf: \"flex-start\",\r\n fontSize: \"1rem\",\r\n height: theme.spacing(6)\r\n },\r\n divider: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(1)\r\n },\r\n notation: {\r\n fontSize: \"0.7rem\",\r\n paddingLeft: theme.spacing(1)\r\n },\r\n textField: {\r\n //marginTop: theme.spacing(1),\r\n //marginBottom: theme.spacing(1)\r\n },\r\n postalCodeField: {\r\n //marginTop: theme.spacing(1),\r\n width: \"180px\"\r\n },\r\n amountTextStyle: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: \"2rem\",\r\n justifyContent: \"center\"\r\n },\r\n payBtn: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround\r\n },\r\n actionBox: {\r\n width: \"100%\"\r\n },\r\n postalDiv: {\r\n display: \"flex\",\r\n alignItems: \"baseline\"\r\n }\r\n}));\r\n\r\nexport interface DialogTitleProps extends WithStyles {\r\n id: string;\r\n children: React.ReactNode;\r\n onClose: () => void;\r\n}\r\n\r\nconst SysadTenantLicenseDialog: FunctionComponent<{\r\n open: boolean;\r\n tenantId: string | undefined;\r\n onClose: (update: boolean) => void;\r\n}> = ({ open, onClose, tenantId }) => {\r\n const classes = useStyles();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n \r\n const [maxProject, setMaxProject] = React.useState(10);\r\n const [limitDate, setLimitDate] = React.useState(moment());\r\n\r\n const dispatch = useDispatch();\r\n\r\n\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (open) {\r\n setLoading(true);\r\n \r\n dispatch(sysadGetTenantSv({\r\n tenantId: tenantId ?? \"\",\r\n callback: (ok, t) => {\r\n setLoading(false);\r\n if (!ok || !t) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"会社情報の取得に失敗しました。\",\r\n })\r\n );\r\n } else {\r\n setMaxProject(t.maxProject ?? 10);\r\n setLimitDate(moment(t.limitUTC));\r\n }\r\n }\r\n }))\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n const postTenantLicense = () => {\r\n\r\n setLoading(true);\r\n\r\n dispatch(PutTenantLicenseSv({\r\n tenantId:tenantId ?? \"\",\r\n maxPrj:maxProject,\r\n limitDate:new Date(limitDate.endOf(\"day\").utc().format(\"YYYY-MM-DDTHH:mm:ss\")),\r\n callback:(ok,error)=>{\r\n setLoading(false);\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"登録に失敗しました\",\r\n })\r\n );\r\n } else {\r\n onClose(true);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n const DialogTitle = withStyles(styles)((props: DialogTitleProps) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n });\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n maxWidth=\"sm\"\r\n fullWidth\r\n >\r\n {\r\n onClose(false);\r\n }}>\r\n 最大プロジェクト数と期限設定\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n 最大プロジェクト数\r\n \r\n {\r\n setMaxProject(parseInt(e.target.value, 10));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n ライセンス終了日\r\n \r\n {\r\n setLimitDate(moment(e.target.value));\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n );\r\n};\r\nexport default SysadTenantLicenseDialog;\r\n","import moment from \"moment-timezone\";\r\nimport React, { useEffect, FunctionComponent } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { createStyles, Theme, withStyles, WithStyles } from '@material-ui/core/styles';\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport {\r\n Button,\r\n Dialog,\r\n DialogContent,\r\n Grid, DialogActions, Typography, IconButton,\r\n Box, CircularProgress, FormControl, FormControlLabel, Radio\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport { AlertDialogSlice } from \"../misc/AlertDialog\";\r\n\r\nimport { ButtonBackGround } from \"../Constants\";\r\nimport { SysadGetOrderSv, SysadPutOrderPaystateSv } from \"../net/SysadAsync\";\r\n\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n root: {\r\n margin: 0,\r\n padding: theme.spacing(2),\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n });\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n top: {\r\n position: \"absolute\",\r\n right: 25,\r\n top: 20,\r\n },\r\n historyList: {\r\n\r\n overflowX: \"hidden\",\r\n overflowY: \"auto\"\r\n },\r\n linkStyle: {\r\n color: ButtonBackGround\r\n },\r\n gridCenter: {\r\n alignSelf: \"flex-start\",\r\n fontSize: \"1rem\",\r\n height: theme.spacing(17)\r\n },\r\n divider: {\r\n marginTop: theme.spacing(0),\r\n marginBottom: theme.spacing(1)\r\n },\r\n notation: {\r\n fontSize: \"0.7rem\",\r\n paddingLeft: theme.spacing(1)\r\n },\r\n textField: {\r\n //marginTop: theme.spacing(1),\r\n //marginBottom: theme.spacing(1)\r\n },\r\n postalCodeField: {\r\n //marginTop: theme.spacing(1),\r\n width: \"180px\"\r\n },\r\n amountTextStyle: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: \"2rem\",\r\n justifyContent: \"center\"\r\n },\r\n payBtn: {\r\n color: \"white\",\r\n backgroundColor: ButtonBackGround\r\n },\r\n actionBox: {\r\n width: \"100%\"\r\n },\r\n postalDiv: {\r\n display: \"flex\",\r\n alignItems: \"baseline\"\r\n }\r\n}));\r\n\r\nexport interface DialogTitleProps extends WithStyles {\r\n id: string;\r\n children: React.ReactNode;\r\n onClose: () => void;\r\n}\r\n\r\nconst SysadSetOrderStateDialog: FunctionComponent<{\r\n open: boolean;\r\n orderId: string | undefined;\r\n onClose: (update: boolean) => void;\r\n}> = ({ open, onClose, orderId }) => {\r\n const classes = useStyles();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n\r\n\r\n const [paystate, setPaystate] = React.useState(0);\r\n\r\n const dispatch = useDispatch();\r\n\r\n\r\n\r\n\r\n //選択中のテナント情報が変更された\r\n useEffect(() => {\r\n if (open) {\r\n setLoading(true);\r\n\r\n dispatch(SysadGetOrderSv({\r\n orderId: orderId ?? \"\",\r\n callback: (ok, o) => {\r\n setLoading(false);\r\n if (!ok || !o) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"注文情報の取得に失敗しました。\",\r\n })\r\n );\r\n } else {\r\n if (o.paid) {\r\n setPaystate(2);\r\n } else if (o.registered) {\r\n setPaystate(1);\r\n } else {\r\n setPaystate(0);\r\n }\r\n }\r\n }\r\n }))\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [open]);\r\n\r\n const postTenantLicense = () => {\r\n\r\n setLoading(true);\r\n\r\n dispatch(SysadPutOrderPaystateSv({\r\n orderId: orderId ?? \"\",\r\n paystate:paystate,\r\n callback: (ok, error) => {\r\n setLoading(false);\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"登録に失敗しました\",\r\n })\r\n );\r\n } else {\r\n onClose(true);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n const DialogTitle = withStyles(styles)((props: DialogTitleProps) => {\r\n const { children, classes, onClose, ...other } = props;\r\n return (\r\n \r\n {children}\r\n {onClose ? (\r\n \r\n \r\n \r\n ) : null}\r\n \r\n );\r\n });\r\n const onRadio = (event:any) => {\r\n setPaystate(parseInt(\"\"+event.target.value,10));\r\n };\r\n\r\n return (\r\n {\r\n onClose(false);\r\n }}\r\n maxWidth=\"sm\"\r\n fullWidth\r\n >\r\n {\r\n onClose(false);\r\n }}>\r\n 注文の状態設定\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n } label=\"登録のみ\" />\r\n } label=\"請求書登録済\" />\r\n } label=\"支払い確認済み\" />\r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n );\r\n};\r\nexport default SysadSetOrderStateDialog;\r\n","\r\nimport React, { useEffect } from 'react';\r\nimport { Box, CircularProgress, Grid, Button, Divider } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { MAOrder, MATenant } from '../net/NetworkClient';\r\nimport { useDispatch } from 'react-redux';\r\nimport { DeleteOrderSv, GetOrdersSv, getRegistOrderCsvSv, getRegistTenantCsvSv } from '../net/SysadAsync';\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\nimport { saveAs } from 'file-saver';\r\nimport SysadEditAddressDialog from './SysadEditAddressDialog';\r\nimport SysadAddOrderDialog from './SysadAddOrderDialog';\r\nimport { ConfirmDialogSlice } from '../misc/ConfirmDialog';\r\nimport SysadTenantLicenseDialog from './SysadTenantLicenseDialog';\r\nimport SysadSetOrderStateDialog from './SysadSetOrderStateDialog';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n height: \"100%\",\r\n margin: 0,\r\n position: \"relative\"\r\n },\r\n toolbar: {\r\n height: \"40px\",\r\n margin: 0,\r\n overflowY: \"hidden\",\r\n },\r\n companyInfoPane: {\r\n height: \"200px\",\r\n margin: 0,\r\n\r\n overflowY: \"auto\",\r\n },\r\n ordersPane: {\r\n maxHeight: \"100%\",\r\n margin: 0,\r\n\r\n overflowY: \"auto\",\r\n },\r\n contents: {\r\n //flex: 1,\r\n height: \"100%\",\r\n overflow: \"hidden\",\r\n padding: theme.spacing(0, 1),\r\n position: \"relative\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n gridContainer: {\r\n //flex: 1,\r\n height: \"100%\",\r\n margin: 0\r\n },\r\n col: {\r\n textAlign: \"right\",\r\n paddingRight: theme.spacing(1)\r\n },\r\n title: {\r\n textAlign: \"center\"\r\n },\r\n registBtn: {\r\n position: \"absolute\",\r\n top: theme.spacing(1),\r\n left: theme.spacing(1),\r\n },\r\n caution: {\r\n backgroundColor:theme.palette.error.main,\r\n color: theme.palette.common.white\r\n }\r\n}));\r\n\r\n\r\n\r\nconst SysadOrderView: React.FunctionComponent<{\r\n tenant: MATenant | undefined;\r\n onReload: (tenantId: string) => void;\r\n}> = ({ tenant, onReload }) => {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [loadingOrders, setLoadingOrders] = React.useState(false);\r\n const [orders, setOrders] = React.useState([]);\r\n\r\n const [currentOrderId, setCurrentOrderId] = React.useState();\r\n\r\n\r\n const [openTenantLicenseDialog, setOpenTenantLicenseDialog] = React.useState(false);\r\n const [openEditAddress, setOpenEditAddress] = React.useState(false);\r\n const [openOrderDialog, setOpenOrderDialog] = React.useState(false);\r\n const [openSetOrderStateDialog, setOpenSetOrderStateDialog] = React.useState(false);\r\n\r\n //表示中のテナントが変更された場合\r\n useEffect(() => {\r\n loadOrders();\r\n //refreshTenants();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenant]);\r\n\r\n var loadOrders = () => {\r\n if (!tenant)\r\n return;\r\n setLoadingOrders(true);\r\n dispatch(GetOrdersSv({\r\n tenantId: tenant?.id ?? \"\",\r\n callback: (ok, orders) => {\r\n setLoadingOrders(false);\r\n if (!ok || !orders) {\r\n setOrders([]);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"注文情報を取得できませんでした\",\r\n })\r\n );\r\n } else {\r\n setOrders(orders);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n ///会社登録用CSVデータダウンロード\r\n var onDownloadRegistCSV = () => {\r\n setLoading(true);\r\n dispatch(getRegistTenantCsvSv({\r\n tenantId: tenant?.id ?? \"\",\r\n callback: (ok, blobData) => {\r\n setLoading(false);\r\n if (!ok || !blobData) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"CSVファイル生成に失敗しました\",\r\n })\r\n );\r\n } else {\r\n var filename = (tenant?.name ?? \"\") + \"登録.csv\"\r\n saveAs(blobData, filename);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\r\n ///注文登録用CSVデータダウンロード\r\n var onDownloadOrderCSV = (order: MAOrder) => {\r\n setLoading(true);\r\n dispatch(getRegistOrderCsvSv({\r\n orderId: order.id ?? \"\",\r\n callback: (ok, blobData) => {\r\n setLoading(false);\r\n if (!ok || !blobData) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"CSVファイル生成に失敗しました\",\r\n })\r\n );\r\n } else {\r\n var filename = (tenant?.nameForInvoice ?? tenant?.name) + \"_\";\r\n filename += moment(order.startUTC).add(1, \"minutes\").format(\"YYYYMMDD\") + \"-\" + moment(order.endUTC).format(\"YYYYMMDD\");\r\n filename += \"請求分.csv\"\r\n saveAs(blobData, filename);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\r\n ///注文登録用CSVデータダウンロード\r\n var onDeleteOrder = (order: MAOrder) => {\r\n dispatch(\r\n ConfirmDialogSlice.actions.openConfirm({\r\n title: \"削除の確認\",\r\n message:\r\n \"指定の注文情報を本当に削除してもよろしいですか?\",\r\n callback: (inok) => {\r\n if (inok) {\r\n setLoading(true);\r\n dispatch(DeleteOrderSv({\r\n orderId: order.id ?? \"\",\r\n callback: (ok, error) => {\r\n setLoading(false);\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"注文の削除に失敗しました\",\r\n })\r\n );\r\n } else {\r\n loadOrders();\r\n }\r\n }\r\n }))\r\n }\r\n }\r\n })\r\n );\r\n\r\n\r\n\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n 会社名\r\n {(tenant?.nameForInvoice ?? tenant?.name ?? \"未選択\") + \"(ID:\" + (tenant?.codeForInvoice ?? \"-\") + \")\"}\r\n\r\n 住所\r\n {\"〒\" + (tenant?.postalCode ?? \"-\") + \" \" + (tenant?.region ?? \"\") + (tenant?.address1 ?? \"\") + (tenant?.address2 ?? \"\") + (tenant?.address3 ?? \"\")}\r\n\r\n 支払い担当者\r\n {tenant?.chargePerson ?? \"-\"}\r\n\r\n 電話番号\r\n {tenant?.phoneNumber ?? \"-\"}\r\n\r\n\r\n メールアドレス\r\n {tenant?.mailAddress ?? \"-\"}\r\n\r\n 最大プロジェクト数\r\n {tenant?.maxProject ?? \"-\"}\r\n\r\n ライセンス期限\r\n {tenant?.limitUTC ? moment(tenant?.limitUTC).format(\"YYYY/MM/DD\") : \"-\"}\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n {\r\n orders.map((order) => (\r\n order.licenses?.map((lic) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {order.paid ? \"支払い済み\" : (order.registered ? \"請求書登録済み\" : \"登録のみ\")}\r\n \r\n \r\n {lic.name}\r\n \r\n\r\n \r\n {order.payType === \"INVOICE\" ? \"請求書払い\" : (order.payType === \"CARD\" ? \"カード\" : order.payType)}\r\n \r\n\r\n\r\n \r\n \r\n \r\n {moment(order.startUTC).add(1, \"minutes\").format(\"YYYY/MM/DD\") + \"~\" + moment(order.endUTC).add(-1, \"minutes\").format(\"MM/DD\")}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n ))\r\n ))\r\n\r\n }\r\n\r\n \r\n\r\n {\r\n setOpenTenantLicenseDialog(false);\r\n if (up) {\r\n onReload(tenant?.id ?? \"\");\r\n }\r\n }}>\r\n\r\n\r\n {\r\n setOpenEditAddress(false);\r\n if (up) {\r\n onReload(tenant?.id ?? \"\");\r\n }\r\n }}>\r\n {\r\n setOpenOrderDialog(false);\r\n if (up) {\r\n loadOrders();\r\n onReload(tenant?.id ?? \"\");\r\n }\r\n }}>\r\n\r\n\r\n {\r\n setOpenSetOrderStateDialog(false);\r\n if (up) {\r\n onReload(tenant?.id ?? \"\");\r\n }\r\n }}>\r\n \r\n )\r\n}\r\n\r\n\r\nexport default SysadOrderView;\r\n\r\n","\r\nimport React, { useEffect } from 'react';\r\nimport { Box, CircularProgress, Grid, List, ListItem, ListItemText } from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\n\r\nimport moment from \"moment-timezone\"\r\nimport { FooterHeight } from '../Constants';\r\nimport { MATenant } from '../net/NetworkClient';\r\nimport { useDispatch } from 'react-redux';\r\nimport { sysadGetTenantSv, sysadTenantsSv } from '../net/SysadAsync';\r\nimport { AlertDialogSlice } from '../misc/AlertDialog';\r\nimport SysadOrderView from './SysadOrderView';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n //display: \"flex\",\r\n //flexDirection: \"column\",\r\n //alignItems: \"stretch\",\r\n height: \"calc(100vh - \" + (FooterHeight + 48) + \"px)\",\r\n },\r\n contents: {\r\n //flex: 1,\r\n height: \"100%\",\r\n overflow: \"hidden\",\r\n padding: theme.spacing(0, 1),\r\n position: \"relative\",\r\n backgroundColor: theme.palette.background.paper\r\n },\r\n gridContainer: {\r\n //flex: 1,\r\n height: \"100%\",\r\n margin: 0\r\n },\r\n cardColumn: {\r\n\r\n height: \"100%\",\r\n overflowY: \"auto\"\r\n },\r\n\r\n cardTitle: {\r\n color: theme.palette.text.primary,\r\n cursor: \"pointer\",\r\n fontSize: \"1.0rem\",\r\n },\r\n cardContent: {\r\n paddingLeft: theme.spacing(1),\r\n paddingTop: theme.spacing(1),\r\n paddingBottom: theme.spacing(1),\r\n },\r\n cardText: {\r\n fontSize: \"0.8rem\",\r\n },\r\n}));\r\n\r\n\r\n\r\n\r\nfunction SysadView() {\r\n const classes = useStyles();\r\n\r\n const dispatch = useDispatch();\r\n\r\n const [loading, setLoading] = React.useState(false);\r\n const [tenants, setTenants] = React.useState([]);\r\n const [selectedTenantIdx, setSelectedTenantIdx] = React.useState(0);\r\n const [selectedTenant, setSelectedTenant] = React.useState();\r\n\r\n //表示中のテナントが変更された場合\r\n useEffect(() => {\r\n refreshTenants();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const refreshTenants = () => {\r\n setLoading(true);\r\n dispatch(sysadTenantsSv({\r\n callback: (ok, inTenants) => {\r\n setLoading(false);\r\n if (!ok || inTenants == null) {\r\n setTenants([]);\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"会社一覧の取得に失敗しました\",\r\n })\r\n );\r\n } else {\r\n setTenants(inTenants);\r\n setSelectedTenantIdx(0);\r\n setSelectedTenant(inTenants.length > 0 ? inTenants[0] : undefined);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n const refreshOneTenant = (tenantId: string) => {\r\n setLoading(true);\r\n dispatch(sysadGetTenantSv({\r\n tenantId: tenantId,\r\n callback: (ok, tenant) => {\r\n setLoading(false);\r\n if (!ok || tenant == null) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"更新した会社情報の取得に失敗しました\",\r\n })\r\n );\r\n } else {\r\n var index = 0;\r\n var list = tenants.map((t, idx) => {\r\n if (t.id === tenant.id) {\r\n index = idx;\r\n return tenant;\r\n } else {\r\n return t;\r\n }\r\n })\r\n setTenants(list);\r\n setSelectedTenantIdx(index);\r\n setSelectedTenant(tenant);\r\n }\r\n }\r\n }))\r\n }\r\n\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n tenants.map((tenant, idx) => (\r\n { setSelectedTenantIdx(idx); setSelectedTenant(tenant); }}>\r\n \r\n \r\n ))\r\n }\r\n\r\n \r\n \r\n \r\n {\r\n refreshOneTenant(tid);\r\n }} />\r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\n\r\nexport default SysadView;\r\n\r\n","import './App.css';\r\n\r\nimport React, { useEffect } from 'react';\r\nimport { BrowserRouter as Router, Link, Route, useHistory } from 'react-router-dom';\r\nimport { useDispatch, useSelector } from \"react-redux\";\r\nimport { RootState } from \"./Store\";\r\n\r\nimport {\r\n AppBar, Box, CssBaseline, IconButton, Toolbar, Tooltip, Typography, Link as MLink, CircularProgress, Avatar\r\n} from '@material-ui/core';\r\nimport { createMuiTheme, makeStyles, ThemeProvider } from '@material-ui/core/styles';\r\n\r\nimport { BaseBackGroundColor, EyeCatchColor, DrawerBackColor, DrawerSelectedColor, ButtonBackGround, FooterHeight } from './Constants';\r\nimport ContentsView from './contents/ContentsView';\r\nimport AlertDialog, { AlertDialogSlice } from './misc/AlertDialog';\r\nimport ConfirmDialog from './misc/ConfirmDialog';\r\nimport WaitingBar from './misc/WaitingBar';\r\n//import ProjectsView from './projects/ProjectsView';\r\nimport TenantView from './tenant/TenantView';\r\nimport AdminView from './admin/AdminView';\r\nimport CalendarView from './calendar/CalendarView';\r\n//import ContentsListView from './contents-list/ContentsListView';\r\n//import preval from 'preval.macro'\r\nimport moment from \"moment-timezone\"\r\n\r\n\r\nimport ApiAuthorizationRoutes from './openid/ApiAuthorizationRoutes';\r\nimport { ApplicationPaths } from './openid/ApiAuthorizationConstants';\r\nimport authService from './openid/AuthorizeService';\r\n//import {Profile} from \"oidc-client\";\r\n\r\n//import ContentsListSlice from \"./contents-list/ContentsListSlice\";\r\nimport AuthSlice, { UserProfileDialogInfo } from './openid/AuthSlice';\r\nimport UserProfileDialog from './profile/UserProfileDialog';\r\nimport { getProfileSv, isSysadSv } from './net/ProfileAsync';\r\nimport TenantSlice from './tenant/TenantSlice';\r\nimport { tenantFindSv } from './net/TenantAsync';\r\nimport metadata from './metadata.json';\r\nimport ActionSlice, { ActionType } from './misc/ActionSlice';\r\nimport GMOResultView from './admin/GMOResultView';\r\nimport SysadView from './sysad/SysadView';\r\n\r\nmoment.tz.setDefault('Asia/Tokyo');\r\n\r\nconst theme = createMuiTheme({\r\n typography: {\r\n fontSize: 14,\r\n },\r\n palette: {\r\n primary: {\r\n main: \"#fff\",\r\n },\r\n background: {\r\n default: \"#eee\",\r\n },\r\n text: {\r\n primary: \"rgba(0, 0, 0, 0.8)\",\r\n },\r\n },\r\n overrides: {\r\n MuiButton: {\r\n containedPrimary: { color: \"#fff\" },\r\n },\r\n MuiDrawer: {\r\n paper: {\r\n backgroundColor: DrawerBackColor,\r\n },\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n color: \"none\",\r\n marginRight: 0,\r\n \"& svg\": {\r\n fontSize: 20,\r\n },\r\n },\r\n },\r\n MuiPaper: {\r\n root: {\r\n backgroundColor: \"#ffffff\",\r\n color: \"rgba(0, 0, 0, 0.8)\",\r\n },\r\n },\r\n MuiListItem: {\r\n root: {\r\n \"&$selected\": {\r\n backgroundColor: DrawerSelectedColor,\r\n color: \"#FFF\",\r\n },\r\n },\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n fontSize: \"0.9rem\",\r\n \"&$focused\": {\r\n color: EyeCatchColor,\r\n },\r\n },\r\n },\r\n MuiInput: {\r\n underline: {\r\n borderBottom: \"1px solid gray\",\r\n },\r\n },\r\n MuiListItemSecondaryAction: {\r\n root: {\r\n right: 5,\r\n },\r\n },\r\n MuiSwitch: {\r\n colorSecondary: {\r\n '&$checked': {\r\n color: ButtonBackGround,\r\n },\r\n '&$checked + $track': {\r\n backgroundColor: ButtonBackGround,\r\n },\r\n }\r\n },\r\n MuiCheckbox: {\r\n colorSecondary: {\r\n '&$checked': {\r\n color: ButtonBackGround,\r\n },\r\n }\r\n },\r\n\r\n },\r\n});\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n minHeight: \"cals(100vh - \" + FooterHeight + \"px)\",\r\n flex: 1,\r\n flexDirection: \"column\",\r\n },\r\n appBar: {\r\n backgroundColor: BaseBackGroundColor,\r\n color: \"rgba(255, 255, 255, 1)\",\r\n position: \"relative\",\r\n zIndex: theme.zIndex.drawer + 1,\r\n },\r\n title: {\r\n color: \"rgba(255, 255, 255, 1)\",\r\n flexGrow: 1,\r\n fontWeight: 600,\r\n whiteSpace: \"nowrap\"\r\n },\r\n appButton: {\r\n color: theme.palette.common.white,\r\n marginRight: theme.spacing(0),\r\n },\r\n toolbarButtons: {\r\n marginLeft: \"auto\",\r\n color: theme.palette.primary.main,\r\n },\r\n toolbarBtn: {\r\n color: theme.palette.common.white,\r\n },\r\n profileBtn: {\r\n color: ButtonBackGround,\r\n backgroundColor: theme.palette.common.white,\r\n\r\n width: theme.spacing(4),\r\n height: theme.spacing(4),\r\n marginRight: theme.spacing(1),\r\n cursor: \"pointer\"\r\n },\r\n profileText: {\r\n color: ButtonBackGround,\r\n cursor: \"pointer\"\r\n },\r\n tenantAdmin: {\r\n marginRight: theme.spacing(2)\r\n },\r\n logout: {\r\n cursor: \"pointer\"\r\n },\r\n footer: {\r\n position: \"fixed\",\r\n bottom: 0,\r\n left: 0,\r\n right: 0,\r\n height: \"\" + FooterHeight + \"px\",\r\n backgroundColor: BaseBackGroundColor,\r\n zIndex: 5000,\r\n paddingLeft: theme.spacing(1),\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n footerLink: {\r\n color: theme.palette.common.white,\r\n textDecoration: \"none\",\r\n marginRight: theme.spacing(3),\r\n whiteSpace: \"nowrap\"\r\n },\r\n version: {\r\n color: theme.palette.common.white,\r\n marginLeft: \"auto\",\r\n marginRight: theme.spacing(1),\r\n },\r\n hideDownSm: {\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"none\"\r\n },\r\n },\r\n hideUpSm: {\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"none\"\r\n },\r\n },\r\n}));\r\n\r\n\r\n\r\nconst App = () => {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const buildStr = \"\" + metadata.buildMajor + \".\" + metadata.buildMinor + \".\" + metadata.buildSubMinor + \"(\" + metadata.buildRevision + \") \" + metadata.buildTag;\r\n\r\n const [authChecked, setAuthChecked] = React.useState(false);\r\n\r\n const actionMessage = useSelector((state: RootState) => state.action.action);\r\n\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n useEffect(() => {\r\n if (authChecked)\r\n return;\r\n\r\n const f = async () => {\r\n await authService.signIn();\r\n const [isauthed, tmpu] = await Promise.all([authService.isAuthenticated(), authService.getUser()])\r\n\r\n dispatch(AuthSlice.actions.setOidcUser(tmpu));\r\n if (!tmpu) {\r\n setAuthChecked(true);\r\n }\r\n\r\n if (isauthed) {\r\n dispatch(getProfileSv({\r\n callback: (ok, mauser) => {\r\n dispatch(AuthSlice.actions.setUser(mauser));\r\n if (ok) {\r\n\r\n } else {\r\n\r\n }\r\n }\r\n }));\r\n }\r\n }\r\n f();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n //ログイン後のテナント読み込み\r\n useEffect(() => {\r\n if (!!user) {\r\n dispatch(tenantFindSv({\r\n callback: (ok, tenants) => {\r\n dispatch(TenantSlice.actions.setTenants(tenants ?? []));\r\n if (!ok) {\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"エラー\",\r\n message: \"会社情報を取得できませんでした。\",\r\n })\r\n );\r\n }\r\n }\r\n }));\r\n\r\n //システム管理者かどうかの確認\r\n dispatch(isSysadSv({\r\n callback: (isSysad) => {\r\n dispatch(AuthSlice.actions.setSysad(isSysad));\r\n }\r\n }));\r\n } else {\r\n dispatch(TenantSlice.actions.setTenants([]));\r\n }\r\n if (!authChecked && user) {\r\n setAuthChecked(true);\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [user]);\r\n\r\n\r\n\r\n //---------------------\r\n //アクション処理\r\n useEffect(() => {\r\n switch (actionMessage.type) {\r\n case ActionType.HTTP_401_ERROR:\r\n authService.signIn(window.location.origin).then((v)=>{\r\n if(v.status === \"success\"){\r\n dispatch(\r\n AlertDialogSlice.actions.openAlert({\r\n title: \"セッション再接続\",\r\n message: \"セッションの有効期限が切れていたため再接続しました。処理を再度実行してください。\",\r\n callback: async () => {\r\n //console.log(await authService.signIn(window.location.origin));\r\n window.location.replace(window.location.href);\r\n //window.location.replace(window.location.origin);\r\n }\r\n })\r\n );\r\n }\r\n })\r\n \r\n dispatch(ActionSlice.actions.setLoading(false));\r\n break;\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [actionMessage]);\r\n\r\n if (!authChecked) {\r\n //ログイン情報確認待ち\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n
...
\r\n \r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n //ログインしてないのでログインページへ移動\r\n if (!user) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n\r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n ホーム\r\n 084NEWS\r\n サービス概要\r\n\r\n {/*\r\n \r\n 利用規約・個人情報の取り扱いについて\r\n 利用規約・個人情報\r\n \r\n */}\r\n トライアルサービス利用約款\r\n\r\n 運営会社\r\n 特定商取引法に基づく表記\r\n お支払い方法について\r\n\r\n \r\n Ver.{buildStr}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n\r\n//****************************************\r\n//メニューバー\r\n//****************************************\r\nfunction MAAppBar() {\r\n const classes = useStyles();\r\n const dispatch = useDispatch();\r\n const history = useHistory();\r\n\r\n const appLoading = useSelector((state: RootState) => state.action.loading);\r\n const [loading, setLoading] = React.useState(false);\r\n const user = useSelector(\r\n (state: RootState) => state.auth.user\r\n );\r\n const sysad = useSelector(\r\n (state: RootState) => state.auth.sysad\r\n );\r\n //選択中のテナント\r\n const currentTenant = useSelector(\r\n (state: RootState) => state.tenants.currentTenant\r\n )\r\n\r\n function onClickProfile() {\r\n var info: UserProfileDialogInfo = {\r\n open: true,\r\n anchorId: \"UserProfileBtn\",\r\n };\r\n dispatch(AuthSlice.actions.setProfileDialog(info));\r\n }\r\n\r\n //---------------------\r\n //アクション処理\r\n useEffect(() => {\r\n setLoading(appLoading);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [appLoading]);\r\n\r\n useEffect(() => {\r\n if (sysad) {\r\n history.push(\"/sysad\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [sysad]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \"ロゴ画像\"\r\n \r\n \r\n \r\n \r\n 朝礼アプリ\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {user?.name?.slice(0, 1) ?? \" \"}\r\n \r\n \r\n \r\n { history.push(ApplicationPaths.LogOut); }}>\r\n ログアウト\r\n \r\n\r\n\r\n \r\n \r\n )\r\n}\r\n\r\n\r\n//************************************************\r\n//ログイン画面へジャンプするためのコンポーネント\r\n//************************************************\r\nfunction ToLogin() {\r\n const history = useHistory();\r\n history.push(ApplicationPaths.Login);\r\n return null;\r\n}\r\n\r\n\r\n\r\n\r\nfunction TopView() {\r\n const history = useHistory();\r\n\r\n //テナント一覧情報\r\n const tenants = useSelector(\r\n (state: RootState) => state.tenants.tenants\r\n );\r\n //表示メッセージ\r\n const [message, setMessage] = React.useState(\"\");\r\n\r\n\r\n //ユーザーのログイン情報が変更された場合\r\n\r\n\r\n //テナントの登録が変更された\r\n useEffect(() => {\r\n if (tenants.length > 0 && tenants[0].tenant) {\r\n history.push(\"/tenants/\" + tenants[0].tenant.id);\r\n } else {\r\n setMessage(\"会社情報がありません。\");\r\n }\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [tenants]);\r\n\r\n\r\n return (\r\n \r\n \r\n
{message}
\r\n
\r\n );\r\n}","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import { combineReducers, configureStore ,getDefaultMiddleware} from \"@reduxjs/toolkit\";\r\n//import logger from \"redux-logger\";\r\n\r\n//import ContentsSlice from \"./contents/ContentsSlice\";\r\n//import ProjectsSlice from \"./projects/ProjectsSlice\";\r\n//import ContentsListSlice from \"./contents-list/ContentsListSlice\";\r\nimport {WaitingSlice} from \"./misc/WaitingBar\"\r\nimport {AlertDialogSlice} from \"./misc/AlertDialog\";\r\nimport {ConfirmDialogSlice} from \"./misc/ConfirmDialog\";\r\nimport ActionSlice from \"./misc/ActionSlice\";\r\nimport AuthSlice from \"./openid/AuthSlice\"\r\nimport TenantSlice from \"./tenant/TenantSlice\"\r\nimport { PhotoSelectDialogSlice } from \"./contents/PhotoSelectDialog\";\r\n \r\n// rootReducer の準備\r\nconst rootReducer = combineReducers({\r\n // contents: ContentsSlice.reducer,\r\n // projects:ProjectsSlice.reducer,\r\n // contentsList:ContentsListSlice.reducer,\r\n waiting:WaitingSlice.reducer,\r\n action:ActionSlice.reducer,\r\n\r\n alert:AlertDialogSlice.reducer,\r\n confirm:ConfirmDialogSlice.reducer,\r\n auth:AuthSlice.reducer,\r\n tenants:TenantSlice.reducer,\r\n photoSelect:PhotoSelectDialogSlice.reducer,\r\n});\r\n\r\nexport type RootState = ReturnType;\r\n\r\n// setup 関数を用意してエクスポートする。\r\nconst setupStore = () => {\r\n const middleware = getDefaultMiddleware({ serializableCheck: false });\r\n const store = configureStore({\r\n reducer: rootReducer,devTools: true,middleware\r\n });\r\n return store;\r\n};\r\n\r\nconst AppStore = setupStore();\r\nexport default AppStore;","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport { Provider } from \"react-redux\";\r\nimport AppStore from \"./Store\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}