{"version":3,"sources":["utils/Server.ts","Redux/Redux.ts","Components/Icon/Icon.tsx","Components/FormManager/FormManagerTypes.ts","utils/Tools.ts","Components/Organizations/OrgPageHeader.tsx","Pages/BasicApp/AboutThisApp.tsx","Pages/BasicApp/ContactUs.tsx","Pages/BasicApp/GettingStarted.tsx","Components/Modal/Modal.tsx","Assets/default_thumbnail_image.jpg","Components/Tools/Pdf/PdfBasicToolbar.tsx","Components/Tools/Pdf/PdfInput.tsx","Components/Tools/Pdf/PdfFooterToolbar.tsx","Components/Tools/Pdf/PdfViewer.tsx","Components/Tools/ExpandableDiv.tsx","Components/Tools/Editor.tsx","Pages/BasicApp/ReleaseNotes.tsx","Components/WorkbookTemplate/WorkbookTypes.ts","Components/Tools/InputGradeRange.tsx","Components/Tools/EasyFileInput.tsx","Components/FormManager/LabelHtmlRender.tsx","Components/FormManager/FormSection.tsx","Components/FormManager/FormModal.tsx","Components/FormManager/ConfigFormEditor.tsx","Components/FormManager/FormManagerLanding.tsx","Pages/Landing/UserLanding.tsx","Pages/Legal/PrivacyPolicy.tsx","Components/Organizations/Admin/OrganizationsManager.tsx","Components/User/Login.tsx","Components/User/help.tsx","Components/User/Profile.tsx","Components/User/RegisterUser.tsx","Components/User/Users.tsx","Components/WorkbookTemplate/Owners/InviteAccept.tsx","Components/Tools/pointer.tsx","Components/WorkbookTemplate/WorkbookInput.tsx","Components/WorkbookTemplate/WorkbookCalculations.tsx","Components/WorkbookTemplate/WorkbookFunctions.ts","Components/WorkbookTemplate/WorkbookFormGroup.tsx","Components/Workbook/WorkbookShareManager.tsx","utils/CopyToClipboard.tsx","Components/WorkbookTemplate/Approvals/ApprovalRequest.tsx","Components/WorkbookTemplate/Approvals/Approve.tsx","Components/WorkbookTemplate/Messages/Comment.tsx","Components/WorkbookTemplate/Messages/CommentWriter.tsx","Components/WorkbookTemplate/WorkbookMilestone.tsx","Components/Tools/Image.tsx","Components/WorkbookTemplate/WorkbookElement.tsx","Components/WorkbookTemplate/Page.tsx","Components/WorkbookTemplate/PageThumbnail.tsx","Components/User/LoginOrRegister.tsx","Components/WorkbookTemplate/Messages/CommentViewer.tsx","Components/Menu/Menu.tsx","Components/WorkbookTemplate/WorkbookFaqContainer.tsx","Components/WorkbookTemplate/Workbook.tsx","Components/WorkbookTemplate/Setup/WorkbookTemplateManager.tsx","Components/WorkbookTemplate/Owners/InviteOwner.tsx","Components/WorkbookTemplate/WorkbookStart.tsx","Pages/Legal/TermsOfService.tsx","Components/Organizations/OrganizationWorkbookTemplateSearchableList.tsx","Components/Organizations/Signers/UserSignerAccessManager.tsx","Components/Organizations/Users/UsersOrganizationRoleManager.tsx","Components/Organizations/OrganizationUserSearchableList.tsx","Components/Organizations/OrganizationWorkbookSignerAssignments.tsx","Components/Organizations/OrganizationsOrgTree.tsx","Components/Organizations/OrganizationsRequestedReviews.tsx","Pages/Organizations/OrganizationDashboard.tsx","Components/User/UsersOrganizations.tsx","Pages/Organizations/UsersOrganizationManagerPage.tsx","Pages/Organizations/OrganizationWork.tsx","routes.tsx","Components/Loading/loading.tsx","App.tsx","reportWebVitals.js","index.js"],"names":["Server","loadingScreen","isDev","loggedIn","getApi","then","x","Value","console","log","redux","setUser","user","setBaseUser","baseUser","endLoading","loadingFunction","startLoading","this","window","location","host","indexOf","fairId","URLSearchParams","search","get","queryStringAddParam","loaded","addEventListener","iframeResponse","iframe","document","getElementById","instance","url","callParentShim","makeUrl","catch","error","result","axios","resp","URL","createObjectURL","data","filesArray","length","postWithFiles","postNoFiles","formData","FormData","Object","entries","forEach","entry","append","JSON","stringify","f","name","post","headers","onUploadProgress","event","uploadProgress","postApi","response","Success","Message","trim","toLocaleLowerCase","substr","origin","filePath","ext","substring","lastIndexOf","toLowerCase","isPdf","isImage","isVideo","find","isText","type","path","GetDevHost","replace","fileKey","scale","hasQueryString","GetQueryStringValue","iframeReady","preMessageQueue","call","msg","total","id","callback","messageQueue","messageId","promiseExecutor","resolve","reject","contentWindow","postMessage","action","push","Promise","template","project","selectedProject","selectedTemplate","key","params","newParams","value","Actions","_server","state","createStore","reducer","composeWithDevTools","applyMiddleware","promiseMiddleware","dispatch","SetUser","SetBaseUser","ShowLogin","SetWorkbookTemplates","SetHasNav","SetShowNav","orgId","getApiQuiet","SetOrgWorkbooks","SetOrgUsers","setUsersWorkbooks","SetUsersWorkbooks","setTemplates","setOrgInfo","SetOrgInfo","loadMyFiles","workbookId","postApiQuite","SetMyFiles","IconType","connectMap","connect","main","ReduxMapper","component","combineReducers","currentState","UsersWorkbooks","User","undefined","BaseUser","WorkbookTemplates","UploadProgress","MyFiles","OrgInfo","HasNav","ShowNav","OrgUsers","OrgWorkbooks","SetProgressUpdate","FieldTypes","RequirementInputType","SecurityRole","Icon","props","className","addClass","FormatDate","format","date","Date","currentDate","timeOffsetInMS","getTimezoneOffset","date2","parseInt","setTime","getTime","ToDate","hours","getHours","min","getMinutes","pm","noTime","getSeconds","getMilliseconds","getFullYear","getMonth","getDate","LimitStringSize","str","maxLength","isValidEmail","email","isValidPhone","phone","OrgPageHeader","useState","org","setOrg","useEffect","setHasNav","goTo","relUrl","href","BuildUrl","onClick","homeRelativeUrl","Logo","src","title","Name","ShowJustLogoInHeader","titlePostfix","AllowSubOrgs","UserRelationship","ReviewGroups","work","Admin","IsAdmin","manage","showLogin","signIn","setShowNav","bars","showSent","setShowSent","setFormData","hasErrors","setHasErrors","exclamationTriangle","htmlFor","onChange","e","target","placeholder","autoFocus","nameError","phoneError","emailError","rows","message","messageError","errors","fd","emailValid","phoneValid","rqst","Phone","Email","send","Modal","sizeClassName","setSizeClassName","querySelector","classList","add","remove","size","close","onClose","setModalOpen","onMouseDown","noCloseOnBackgroundClick","stopPropagation","noClose","handleModalClick","children","PdfBasicToolbar","page","pages","changePage","zoom","changeZoom","save","viewOnly","isSigning","sign","downloadFormUrl","download","up","down","PdfInput","fieldMetaData","SignatureOwner","isSignature","setIsSignature","signer","SignatureInfoId","isSigner","left","position","width","height","bottom","isTextArea","edit","setEdit","values","setValue","startingValue","setStartingValue","newValue","exportValue","editClosed","SignatureType","PublicId","d","Initials","hasFocus","canEdit","big","MaxLength","editValue","onBlur","onKeyDown","keyPressed","valueChange","preventDefault","tabToNext","index","v","valueUpdated","Hidden","AllowOwnerToEdit","missingFields","style","minHeight","fieldSelected","isSetupMode","requestSign","checkSquareO","squareO","displayValue","PdfFooterToolbar","PdfViewer","canvasRef","useRef","pdfjsLib","GlobalWorkerOptions","workerSrc","pdfjsWorker","pdfRef","setPdfRef","currentPage","setCurrentPage","setScale","setZoom","pageAnnotations","setAnnotations","formValues","setFormValues","formValuesSet","setFormValuesSet","tabIndex","setTabIndex","setSigner","setMissingFields","fmd","FormKey","fieldsMetaData","renderPage","useCallback","pageNum","pdf","getPage","viewport","getViewport","s","canvas","current","renderContext","canvasContext","getContext","render","getAnnotations","items","fullUrl","source","getDocument","promise","loadedPdf","reason","inputValueChanged","newValues","valuesSet","saveClick","updateValues","signerFields","filter","Type","missing","missingDic","valuesToSave","toast","warning","Label","keys","confirm","i","fieldType","numPages","signingRequested","signatureOwner","signRequested","n","ref","map","active","rect","fieldValue","fieldName","ExpandableImg","imageSrc","images","setIndex","open","setOpen","alt","onError","currentTarget","onerror","imgClouds","LinkToView","setUrl","u","urlSource","startsWith","getUrl","thumbnail","urlThumbnailArgs","renderPdfClosed","hasThumbnail","fill","filePdf","renderImageClosed","renderVideoClosed","film","viewer","onMouseUp","onTouchEnd","image","renderImage","renderPdf","renderVideo","controls","renderIt","renderItOpen","Editor","EditorState","createEmpty","editorState","setEditorState","expanded","setExpanded","blocksFromHtml","htmlToDraft","contentBlocks","entityMap","content","ContentState","createFromBlockArray","createWithContent","toHtml","draft","convertToRaw","getCurrentContent","reload","blocks","b","inlineStyleRanges","options","html","draftToHtml","wrapperClassName","editorClassName","toolbarClassName","toolbar","inline","list","inDropdown","textAlign","fontSize","customElements","getOptions","onTab","onEditorStateChange","changed","onblur","onFocus","onfocus","readOnly","toolbarCustomButtons","expandDown","expand","showNoteModel","setShowNoteModel","BlankNote","note","setNote","notes","setNotes","isAdmin","setIsAdmin","Id","Notes","v4","At","GetNotesFromServer","autoClose","SelectNote","new","dangerouslySetInnerHTML","__html","dark","MilestoneStates","isFieldGood","field","regex","ValidationRegularExpression","Key","RegExp","match","isFieldRegexSatisfied","required","Required","Alert","AlertInfo","Header","ReCaptcha","x_reCaptcha","Checkbox","ProfileImage","ProjectFile","Files","MultiSelect","isFieldSatisfied","Confirm","isConfirmSatisfied","passwordRequirements","Password","RequireMinLength","RequireAltCase","RequireNumber","RequireSpecialChar","SpecialChars","_errors","isPasswordValid","Good","RegExPass","ConfirmPass","PasswordRequirements","RequiredPass","join","InputGradeRange","gradeList","setGradeList","setReady","range","setRange","gradeRange","setGradeRange","gs","label","init","a","g","low","high","delimiter","grades","split","getRange","getValue","r","selected","y","onValueChange","selectGrade","info","setFileInfo","setShowInput","fileInputRef","showOptions","setShowOptions","loadImagesInReduxCalled","setLoadImagesInReduxCalled","fileName","dataType","fi","getFileInfo","optionsFromRedux","selectExistingFile","onSelect","removeFile","FirstName","onChangeFile","files","isFileValid","file","fileInfo","onSelectFile","readURL","res","rej","reader","FileReader","onload","readAsDataURL","nameOrFile","GetUrl","upload","valueOptions","trashO","showFile","Extension","htmlId","accept","exts","LabelHtmlRender","customText","FormSection","getReturnByFieldType","jsx","defaultThing","DefaultValue","Fragment","onInputBlur","Placeholder","handleFieldChange","ReadOnly","AdditionalInformation","Textbox","Textarea","marginTop","marginLeft","checked","disabled","DropDown","initialValue","handleSelectChangeWithCall","ValueOptions","opt","NotListSpecial","PhoneNumber","Picture","buildLabelAndSearchForLink","inputId","mappedValues","isMulti","isClearable","menuPlacement","classNamePrefix","Color","HTML","GetValue","HTMLFull","DateTime","Time","Number","onWheel","blur","GradeRange","forLow","File","FileExts","handleFileChange","letters","replaceAll","stack","parts","startIndex","makeLink","found","A","B","section","HtmlBody","Fields","j","Show","GroupId","IsParent","groupIds","formErrors","gIdField","BodyBootstrapSize","HeaderBootstrapSize","control-label","mapFieldsFromForm","FormModal","setFormErrors","setValues","sections","setSections","noEdit","setNoEdit","setFiles","canSave","targetId","xSections","projectFileChanged","z","xValues","fieldOnBlur","isValid","fs","foundProblems","sect","valid","copyIt","copy","canRemove","mapForms","itemChildren","mapMainForm","mapForm","child","subType","onUpdate","isChild","idCalledInApi","submitBtnText","copyItem","linkToManager","cog","linkToManagerText","show","noModal","setShow","modalSize","modalNoClose","ConfigFormEditor","setData","showEditModal","setShowEditModal","item","getForm","managerControler","itemKey","onSave","dontRefreshOnSaveOrRemove","fields","request","Values","SubType","requestData","filesToUpload","Failed","success","Form","Sections","LinkToManager","LinkToManagerLabelText","SubmitBtnText","CopyItem","onRemove","withRouter","setType","setSubType","setKey","setSearch","filteredItems","setFilteredItems","selectedItem","setSelectedItem","startClosed","getFormData","Items","text","addNew","addSearchFilter","FileInfo","FilePath","mapItems","borderLeft","IsStaff","NoEdit","Description","mapConfigGroups","ConfigGroups","Title","expandable","expandUp","plus","ItemsChildTypes","MyWorkbooks","Templates","onEdit","history","SubOrgHeader","RemovedAtUtc","t","TemplatePublicId","ThumbnailImage","LastModifyAtUtc","onOpen","folderOpen","MaxNumberOfWorkbooks","startNew","Footer","MissionStatement","setEmail","password","setPassword","handleSubmit","onKeyPress","submitOnEnter","userPlus","help","showRecoverySent","setShowRecoverySent","showChangePassword","setShowChangePassword","showSignIn","setShowSignIn","code","fullCode","shortCode","lock","password2","isValidPassword","RegisterUpdated","setFormErrros","showErrors","registered","setRegistered","ValidateForm","okayIfEmpty","acceptTerms","firstName","lastName","terms","Users","needsLogin","setNeedsLogin","setWorkbookId","setInfo","onJoin","Owners","arrowRight","input","setInput","setNewValue","savedValue","setSavedValue","valueType","setValueType","fileUploaded","setFileUploaded","setId","valueX","IsComputed","el","elFg","closest","scrollIntoView","behavior","block","inputEl","showPicker","onChecked","onStringValueChange","pass","reg","RegExFieldValidator","test","RegExCustomFieldValidator","RegExValidationFailedMessage","focus","buildInput","eventPhase","Options","o","WorkbookId","jsonValue","getArrayFromJson","isDisabled","parse","updated","p","TemplateDic","inlineLabel","preview","onEditClick","labelOverride","RequiredNotEnforced","Calculation","ValueOf","Signer","ValueFromOwner","buildInputGroup","RunCalculations","Template","DataPointCalculations","SetValueOfEachCalculation","SetValueOfCalculatedFields","calculation","BasicFunction","CalculateTrueFalse","CalculateCombine","CalculateEqualTo","CalculateEqualToSome","CalculateNotEqualTo","CalculateNotEqualToSome","CompareToValue","DataPoints","CalculatedValue","toString","Delimiter","trueValues","TrueWhenTrue","falseValues","TrueWhenFalse","TrueWhenTrueOr","ValueTruthy","TrueWhenFalseOr","toUpperCase","points","myPoints","point","buildTemplateDic","pagesToAdd","Pages","c","SetId","Preview","set","Sets","OwnersAreSet","childrent","ChildrenPages","ownerPages","np","selectPageButtonText","LastName","_setGroupKey","skipToNextWhenNotShown","showWhenTrue","showWhenTrueOr","Order","Elements","FormGroups","Milestones","Signers","Themes","workbookOnValueChanged","infoX","dp","DataPointId","WorkbookSpecialType","reslove","valueDic","SetGroupKey","WorkbookTemplateId","canShow","validPath","validPathOr","validPathFalse","validPathFalseOr","showWhenFalse","_validPath","showWhenFalseOr","setPagesMissingDataPoints","dataPoints","getAllRequiredDataPoints","missingPoints","_missingDataPoints","_requiredDataPoints","groups","ElementType","Children","getPagesMilestones","approvalOnly","milestones","WorkbookProperType","getStateOfMilestones","requests","stones","NA","m","Approvers","SignRequests","SignerId","MilestoneId","NotStarted","Started","allComplete","ApprovedAtUtc","Completed","NewGuid","regExTokens","regexReplace","part1","getReplaceValue","formGroup","setFormGroup","group","sort","ie","LabelOverride","WorkbookShareManager","shared","setShared","form","setForm","workbookPublicId","LoadShared","share","shareId","Remove","CreatedAtUtc","CopyToClipboard","toolTip","valueToCopy","navigator","clipboard","writeText","hideCopyIcon","signRequest","setSignRequest","isSelf","setIsSelf","reviewGroups","setReviewGroups","workbooksGroups","setWorkbooksGroups","showShareWorkbook","setShowShareWorkbook","IsSignerUser","IsSetBasedOnOwner","_ownerId","LoadReviewGroups","sendEmail","defaultEmailMessageForSignRequest","textMessage","defaultTextMessageForSignRequest","milestone","OwnerId","OwnerInstructions","OrgName","ReviewGroupName","reviewGroupPublicId","ReviewGroupRequest","ReviewGroupOrgPublicId","ReviewGroupTemplatePublicId","onRequest","sendSignRequestToReviewGroup","OrgPublicId","ReviewGroupPublicId","signature","sendText","sendLink","RequestMessage","RequestTextMessage","Sms","EmailSent","mail","TextSent","textMsg","DirectSignLink","onStartSign","fileAlt","workbookName","comments","signRequestId","onSign","Comment","comment","Author","sent","setSent","messageResponse","setMessageResponse","links","SourceType","sourceType","mileStone","onSend","clearWaitingQueue","setMilestone","showApproveRequest","setShowApproveRequest","activeSigner","setActiveSigner","activeRequest","setActiveRequest","showResponseModal","setShowResponseModal","isForApproval","setIsForApproval","isOwner","setIsOwner","owner","userIsAdmin","requestSignature","mile","milestoneRequirementsMet","Pass","removeApproval","approveRequestSent","buildApprovers","readyToBeApproved","listOfSigners","xx","xi","xsigner","RequestedAtUtc","sms","Instructions","openResponseModel","check","SignedByUserPublicId","onSignRequest","approve","missingRequirements","approvers","dic","requested","approved","onJumpToPage","buildMilestone","selectedIndex","fileSignature","startPage","StartPage","getAllValidPages","getAllDataPoints","missingPageRequirements","pageSetId","startDic","pagesResults","pagesDic","_canAccess","preFilteredPages","skippedPages","skippedPage","pop","spPages","endFound","hasMilestone","ImagePlus","imgDefault","element","setElement","showNow","IndentLevel","Content","Image","FileUrl","ContentFile","alteredUrl","includes","charArray","inqueryString","formatVideoUrl","buildType","setPage","setFirstPage","setSet","setSetKey","css","setCss","backgroudImage","setBackgroundImage","onBack","firstPage","BackgroundImage","StyleTheme","Css","onValueChanged","xSetId","xSetKey","buildElements","buildSetList","dataKeys","dataPoint","fullId","hash","hashDeleted","setKeys","SetDeletedWhenDataPointTrue","SetNameFromDataPoint","EditLabel","Limit","AddLabel","canContinue","missingDPs","signers","backgroundImage","CloseLabel","buildSet","arrowLeft","showPages","btnText","nextButtonText","icon","confirmNextButtonText","onNext","buildNextPageButtons","NextPageIsDonePage","showDonePage","finished","activePage","notAccessableYet","_milestones","_milestonesState","ThumbnailPath","formSignIn","setFormSignIn","showSignInHelp","setShowSignInHelp","onSignInClick","Username","register","signin","SendRecoveryEmail","OAuths","callSSO","provider","canClose","magic","buildOAuthButtons","onKeyUp","setComments","getComments","setTemplate","setProject","currentPageId","setCurrentPageId","pathname","pageIndex","sub","timesSquare","home","users","Path","MenuName","here","menuItems","signOut","UserCheck","start","refresh","WorkbookFaqContainer","faqs","SortOrder","Answer","requestId","setRequestId","workbookTemplateId","setWorkbookTemplateId","setPreview","pageHistory","setPageHistory","editItem","setEditItem","onEditCallback","setOnEditCallback","signRequestSigner","setSignRequestSigner","showPageThumbnails","setShowPageThumbnails","showComments","setShowComments","showSignNotAllowed","setShowSignNotAllowed","showSignerInstructionsModal","setShowSignerInstructionsModal","showAllDataPoints","setShowAllDataPoints","isCallingInfo","setIsCallingInfo","showFaq","setShowFaq","setShowDonePage","pageDic","access","requiresSubscription","_nextPagesAll","ParentPages","calculatePageAccess","getInfoFromServer","caller","isSignRequest","SignerNotAllowedToSign","LastPages","MarkedDoneAtUtc","onSelctPage","setGroupKey","valueContainer","valuesDic","onTemplateUpdate","buildThumbnail","pg","level","used","pagesUsed","hasMileStoneOnEnter","_notYet","onDone","undo","Done","Undo","onPublish","Publish","PublishedAtUtc","lite","searchPlus","Faqs","questionCircle","AllowDownloadOfPdf","downloadPdf","HideMessage","buildPagesThumbnails","scrollTo","top","PageId","pageId","DoneHeader","MarkAsDone","undoAlt","MarkAsDoneUndoBtnText","MarkAsDoneBtnText","force","duration","MarkAsDoneDescription","MarkAsDoneDescriptionUndo","MarkAsPublished","MarkAsPublishedUndoBtnText","MarkAsPublishedBtnText","MarkAsPublishedDescription","MarkAsPublishedDescriptionUndo","DoneFooter","templateId","setTemplateId","details","setDetails","Init","invited","setInvited","AccountFoundAndLinked","exclamation","Link","sendInvite","setSignIn","showAddWorkbookOwner","setShowAddWorkbookOwner","showManageSharing","setShowManageSharing","ix","onNew","exit","PrimaryOwner","admin","dismiss","userId","MaxNumberOfOwners","onOpen2","OrganizationUserSearchableList","workbooks","setWorkbooks","setOrgWorkbooks","workbook","lookFor","filterWorkbooks","folderPlus","UserSignerAccessManager","setWorkbook","userPublicId","WorkbookTemplateReviewGroups","rg","OrganizationWorkbookTemplateSearchableList","wb","UsersOrganizationRoleManager","userRole","setUserRole","ready","changeUserRole","removed","delete","orgUsers","setOrgUsers","openSigner","setOpenSigner","openContext","setOpenContext","openManageUserRole","setOpenManageUserRole","activeOrgUser","setActiveOgrUser","filterUsers","isOrgUser","UserApprovedAtUtc","UserRemovedAtUtc","PreferredName","AllowSms","Workbooks","pi","shareSquareSolid","TemplateName","NumberOfUpdates","Race","Ethnicity","w","OrganizationWorkbookSignerAssignments","groupMembers","setGroupMembers","members","OrganizationsOrgTree","tree","setTree","openNewRelationship","mapOrgs","orgs","keyPrefix","ParentOrgs","OrganizationsRequestedReviews","reviews","setReviews","myGroups","setMyGroups","canSign","WorkbookName","WorkbookTemplateName","SignatureName","checkCircle","loadOrg","UsersOrganzations","partOfThisOrg","setPartOfThisOrg","Orgs","IsPrimary","Domain","removeFromOrg","TermsOfSerive","PrivacyPolicy","GettingStarted","AboutThisApp","RegisterUser","Profile","Login","UsersOrganizationManagerPage","OrganizationsManager","OrganizationWork","OrganizationDashboard","WorkbookTemplateManager","ContactUs","ReleaseNotes","WorkbookStart","InviteAccept","Workbook","UserLanding","progress","setProgress","showProgress","setShowProgress","toFixed","loading","setLoading","loadOrgInfo","SiteTitle","MetaDescription","setAttribute","MetaKeywords","CssText","routes","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","State","ReactDOM","StrictMode","store"],"mappings":"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AA,E,mBAAAA,E,wBAAAA,E,oCAAAA,E,yBAAAA,E,0BAAAA,E,+BAAAA,E,0BAAAA,E,uBAAAA,E,0BAAAA,E,mBAAAA,E,0BAAAA,E,mBAAAA,E,qBAAAA,E,uBAAAA,E,kCAAAA,E,wCAAAA,E,gCAAAA,E,kCAAAA,E,sCAAAA,E,kCAAAA,E,6BAAAA,E,iCAAAA,E,mCAAAA,E,iCAAAA,E,sCAAAA,E,4BAAAA,E,yBAAAA,E,kCAAAA,E,kBAAAA,E,0BAAAA,E,wBAAAA,E,sBAAAA,E,gBAAAA,E,qBAAAA,E,6BAAAA,E,kBAAAA,E,qBAAAA,E,gCAAAA,E,8BAAAA,E,oBAAAA,E,4BAAAA,E,4BAAAA,E,4BAAAA,E,+BAAAA,E,iCAAAA,E,2BAAAA,E,uBAAAA,E,kCAAAA,E,qBAAAA,E,kCAAAA,E,iCAAAA,E,2BAAAA,E,mBAAAA,E,qBAAAA,E,8BAAAA,E,yCAAAA,E,oCAAAA,E,+CAAAA,E,+BAAAA,E,oBAAAA,E,gCAAAA,E,2BAAAA,E,+BAAAA,E,gBAAAA,E,yBAAAA,E,8BAAAA,E,+BAAAA,E,mCAAAA,E,sBAAAA,E,yBAAAA,E,uCAAAA,E,6BAAAA,E,iCAAAA,E,8BAAAA,E,yBAAAA,E,uBAAAA,E,0BAAAA,E,8BAAAA,E,mBAAAA,E,sBAAAA,E,uBAAAA,E,kCAAAA,E,gCAAAA,E,kCAAAA,E,yBAAAA,E,uCAAAA,E,yCAAAA,E,uBAAAA,E,gCAAAA,E,uCAAAA,E,oCAAAA,E,kCAAAA,E,qBAAAA,E,0BAAAA,E,8BAAAA,E,4BAAAA,E,8BAAAA,E,sCAAAA,E,6CAAAA,E,yBAAAA,E,yBAAAA,E,yBAAAA,E,qBAAAA,E,kDAAAA,E,sCAAAA,E,qBAAAA,E,iCAAAA,E,uBAAAA,E,6BAAAA,E,2BAAAA,E,4BAAAA,E,sCAAAA,E,sCAAAA,E,2BAAAA,E,6BAAAA,E,qBAAAA,E,uBAAAA,E,iBAAAA,E,mBAAAA,E,yBAAAA,E,0BAAAA,E,kDAAAA,E,uBAAAA,E,mBAAAA,E,wBAAAA,E,0BAAAA,E,6BAAAA,E,yBAAAA,E,mBAAAA,E,iBAAAA,E,uBAAAA,E,gCAAAA,E,qBAAAA,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","file":"static/js/main.0e6242f1.chunk.js","sourcesContent":["import axios, { AxiosResponse } from \"axios\";\r\nimport { Interface } from \"readline\";\r\nimport redux from \"../Redux/Redux\";\r\nimport { IUser } from \"../Types/basic\";\r\nimport { IProject } from \"../Types/Project\";\r\nimport { Template } from \"../Types/Template\";\r\n\r\nexport type IFileInfo = {\r\n type: \"pdf\" | \"image\" | \"video\" | \"text\" | \"other\";\r\n path: string;\r\n ext: string;\r\n};\r\n\r\nexport type ServerResponse = {\r\n Success: boolean;\r\n LoginRequired: boolean;\r\n Message: string;\r\n Value: T;\r\n};\r\n\r\nexport class ServerCallOptions {\r\n loadingScreenShow: boolean = true;\r\n loadingScreenText: string = \"loading\";\r\n}\r\n\r\nexport class Server {\r\n loadingScreen: boolean;\r\n isDev: boolean = false;\r\n\r\n static iframeReady: boolean = false;\r\n static preMessageQueue: any = [];\r\n static messageQueue: any = {};\r\n static iframe: any;\r\n static loaded: boolean = false;\r\n static messageId: number = 0;\r\n static queryStringAddParam: any = null;\r\n static loadingFunction: Function;\r\n public static instance: Server;\r\n\r\n constructor(loadingScreen?: any) {\r\n this.loadingScreen = loadingScreen;\r\n\r\n let isDev = (this.isDev = window.location.host.indexOf(\"localhost:\") > -1);\r\n let params = new URLSearchParams(window.location.search);\r\n let fairId = params.get(\"f\");\r\n if (fairId) {\r\n Server.queryStringAddParam = `f=${fairId}`;\r\n }\r\n\r\n if (isDev && !Server.loaded) {\r\n window.addEventListener(\"message\", Server.iframeResponse, false); \r\n if (!Server.iframe) {\r\n Server.iframe = document.getElementById(\"fms-shim\");\r\n }\r\n }\r\n\r\n if(!Server.loaded){\r\n Server.instance = this;\r\n this.loggedIn();\r\n }\r\n\r\n\r\n Server.loaded = true;\r\n }\r\n\r\n static FileInfo(filePath: string | undefined) {\r\n if (!filePath) return null;\r\n let ext = filePath.substring(filePath.lastIndexOf(\".\")).toLowerCase();\r\n let isPdf = ext === \".pdf\";\r\n let isImage =\r\n ext === \".jpg\" ||\r\n ext === \".jpeg\" ||\r\n ext === \".png\" ||\r\n ext === \".tif\" ||\r\n ext === \".tiff\" ||\r\n ext === \".gif\";\r\n let isVideo = [\".mov\", \".mp4\"].find((x) => x === ext);\r\n let isText = [\".csv\", \".xml\", \".txt\"].find((x) => x === ext);\r\n let type:\"pdf\" | \"image\" | \"video\" | \"text\" | \"other\" = isPdf\r\n ? \"pdf\"\r\n : isImage\r\n ? \"image\"\r\n : isVideo\r\n ? \"video\"\r\n : isText\r\n ? \"text\"\r\n : \"other\";\r\n\r\n let result: IFileInfo = { type: type, path: filePath, ext: ext };\r\n return result;\r\n }\r\n static BuildUrl(path: string) {\r\n if (path.indexOf(\"http:\") === 0 || path.indexOf(\"https:\") === 0)\r\n return path;\r\n let isDev = window.location.host.indexOf(\"localhost:\") > -1;\r\n let host = isDev ? Server.GetDevHost(): window.location.origin;\r\n path = path.replace(\"../\", \"/\");\r\n return `${host}${path}`;\r\n }\r\n public static FileUrl(fileKey: string, scale?:number) {\r\n let path = `../file/x/${fileKey}`;\r\n if(scale) path += `?x=${scale}`\r\n if (path.indexOf(\"http:\") === 0 || path.indexOf(\"https:\") === 0)\r\n return path;\r\n let isDev = window.location.host.indexOf(\"localhost:\") > -1;\r\n let host = isDev ? Server.GetDevHost(): window.location.origin;\r\n path = path.replace(\"../\", \"/\");\r\n return `${host}${path}`;\r\n }\r\n\r\n static BuildUrlWithFair(path: string) {\r\n let isDev = window.location.host.indexOf(\"localhost:\") > -1;\r\n let host = isDev ? Server.GetDevHost() : window.location.origin;\r\n path = path.replace(\"../\", \"/\");\r\n let hasQueryString = path.indexOf('?') > -1;\r\n \r\n return `${host}${path}${hasQueryString?'&':'?'}f=${this.GetQueryStringValue(\"f\")}`;\r\n }\r\n\r\n public static GetDevHost(){\r\n \r\n let params = new URLSearchParams(window.location.search);\r\n const host = params.get('host') ?? 'http://localhost:9000';\r\n return host;\r\n }\r\n\r\n public static GetUrl(url:string){\r\n url = url.replace('../','');\r\n if(window.location.origin.indexOf('localhost') > -1){\r\n return `http://localhost:9000/${url}`;\r\n }\r\n return `${window.location.origin}/${url}`;\r\n }\r\n\r\n public loggedIn=()=>{\r\n this.getApi('../UserApi/Hello').then(x=>{\r\n if(x.Value.loggedIn){\r\n console.log(x);\r\n redux.setUser(x.Value.user);\r\n redux.setBaseUser(x.Value.baseUser);\r\n } else {\r\n console.log('failed',x);\r\n redux.setUser(null);\r\n redux.setBaseUser(null);\r\n }\r\n });\r\n }\r\n\r\n public async GetDataUrl(url:string) {\r\n if (this.loadingScreen) {\r\n //this.startLoading();\r\n }\r\n if (this.isDev) {\r\n let result = await Server.callParentShim(false, this.makeUrl(url), null).catch(error => { throw error })\r\n if (this.loadingScreen) {\r\n //this.endLoading();\r\n }\r\n return result;\r\n }\r\n\r\n let resp = await axios\r\n .get(this.makeUrl(url));\r\n\r\n if(this.loadingScreen){\r\n //this.endLoading();\r\n }\r\n\r\n return URL.createObjectURL(resp.data);\r\n };\r\n\r\n\r\n public async getApi(url: string): Promise> {\r\n if (this.loadingScreen) {\r\n this.startLoading();\r\n }\r\n if (this.isDev) {\r\n let result = await Server.callParentShim(false, this.makeUrl(url), null).catch(error => { \r\n console.log('ERROR!!!', error);\r\n throw error })\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n return result;\r\n }\r\n\r\n let resp = await axios\r\n .get>(this.makeUrl(url));\r\n\r\n if(this.loadingScreen){\r\n this.endLoading();\r\n }\r\n\r\n return resp.data;\r\n }\r\n\r\n \r\n public async getApiQuiet(url: string): Promise> {\r\n if (this.isDev) {\r\n let result = await Server.callParentShim(false, url, null).catch(error => { throw error })\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n return result;\r\n }\r\n\r\n return await axios\r\n .get(this.makeUrl(url))\r\n .then((x: any) => {\r\n return x.data;\r\n })\r\n .catch((x: any) => {\r\n console.log(`Error on GET: ${url}`, x);\r\n });\r\n };\r\n\r\n\r\n public async postApi(url: string, data: any, filesArray: File[] = []): Promise> {\r\n if (this.loadingScreen) {\r\n this.startLoading();\r\n }\r\n if (this.isDev) {\r\n let result = await Server.callParentShim(true, this.makeUrl(url), data, filesArray);\r\n //console.log('post api shim', result);\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n return result;\r\n }\r\n if (filesArray.length) {\r\n return await this.postWithFiles(data, filesArray, url);\r\n } else {\r\n return await this.postNoFiles(url, data);\r\n\r\n }\r\n }\r\n\r\n private async postWithFiles(data: any, filesArray: File[], url: string) : Promise> {\r\n //TODO: This needs to be tested. Not sure if it will work. Do we need to set content type for each item in the multi part form data?\r\n const formData = new FormData();\r\n Object.entries(data).forEach((entry) => {\r\n formData.append(entry[0], JSON.stringify(entry[1]));\r\n });\r\n filesArray.forEach(f => {\r\n formData.append('file', f, f.name);\r\n });\r\n let result = await axios.post>(this.makeUrl(url), formData, { \r\n headers:{\"Content-Type\": \"multipart/form-data\"},\r\n onUploadProgress:(event:ProgressEvent)=> {\r\n redux.uploadProgress(event);\r\n },\r\n })\r\n .catch((x) => {\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n console.log(`Error on POST: ${url}`, x);\r\n throw x;\r\n });\r\n\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n return result.data;\r\n }\r\n\r\n private async postNoFiles(url: string, data: any) : Promise> {\r\n let result = await axios\r\n .post>(this.makeUrl(url), data, {\r\n headers: { \"Content-Type\": \"application/json; charset=utf-8\" },\r\n })\r\n .catch((x) => {\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n console.log(`Error on POST: ${url}`, x);\r\n throw x;\r\n });\r\n if (this.loadingScreen) {\r\n this.endLoading();\r\n }\r\n return result.data;\r\n }\r\n\r\n \r\n public async postApiQuite(url: string, data: any): Promise> {\r\n if (this.isDev) {\r\n let result = await Server.callParentShim(true, this.makeUrl(url), data);\r\n return result;\r\n }\r\n let result = await axios\r\n .post>(this.makeUrl(url), data, {\r\n headers: { \"Content-Type\": \"application/json; charset=utf-8\" },\r\n })\r\n .catch((x) => {\r\n console.log(`Error on POST: ${url}`, x);\r\n throw x;\r\n });\r\n return result.data;\r\n }\r\n /**This overvariation of postApi handles server response errors. If serverResponse.Success === false, it will throw an error. */\r\n public async postApiWithServerResponse(url: string, data: any, filesArray: File[] = []): Promise> {\r\n let response = await this.postApi(url, data, filesArray).catch(error => { throw (error); });\r\n if (!response.Success) {\r\n throw response.Message;\r\n }\r\n return response;\r\n }\r\n\r\n public makeUrl(url: string|null|undefined): string {\r\n if(!url) return '';\r\n if(url && url[0] === 'd' && url[1] === 'a'&& url[2] === 't'&& url[3] === 'a'&& url[4] === ':') return url;\r\n url = url.trim();\r\n\r\n if(url.toLocaleLowerCase().indexOf('http') === 0) return url;\r\n \r\n if (url.indexOf(\"/\") === 0 || url.indexOf(\"\\\\\") === 0) {\r\n url = url.substr(1);\r\n }\r\n\r\n if (this.isDev) {\r\n //return \"https://national.zfairs.com/\" + url;\r\n url = \"http://localhost:9000/\" + url;\r\n\r\n if (Server.queryStringAddParam) {\r\n if (url.indexOf(\"?\") > -1) {\r\n url += `&${Server.queryStringAddParam}`;\r\n } else {\r\n url += `?${Server.queryStringAddParam}`;\r\n }\r\n }\r\n\r\n return url;\r\n } else {\r\n while(url[0] === '.' || url[0] === '/') url = url.substr(1);\r\n url = `${window.location.origin}/${url}`;\r\n if (Server.queryStringAddParam) {\r\n if (url.indexOf(\"?\") > -1) {\r\n url += `&${Server.queryStringAddParam}`;\r\n } else {\r\n url += `?${Server.queryStringAddParam}`;\r\n }\r\n }\r\n }\r\n\r\n return url;\r\n }\r\n\r\n private static async iframeResponse(event: any) {\r\n if (event.data.type !== \"shim\") {\r\n if (event.data.type === \"shim-ready\") {\r\n Server.iframeReady = true;\r\n //send all messages that where waiting...\r\n Server.preMessageQueue.forEach((call: any) => {\r\n call();\r\n });\r\n Server.preMessageQueue = [];\r\n }\r\n else if (event.data.type === \"progress\"){ \r\n let data = await event.data;\r\n let {loaded,total} = data.msg;\r\n redux.uploadProgress(data.msg);\r\n }\r\n\r\n return;\r\n }\r\n let { msg, id } = await event.data;\r\n let callback = Server.messageQueue[id];\r\n if (callback) callback(msg);\r\n }\r\n\r\n private static callParentShim(post: boolean, url: string, data: any, filesArray: File[] = []): Promise> {\r\n let id = Server.messageId + url;\r\n Server.messageId++;\r\n\r\n let promiseExecutor = (resolve: any, reject: any) => {\r\n let callback = (response: any) => {\r\n //console.log('callback response: ', response)\r\n resolve(response);\r\n };\r\n\r\n Server.messageQueue[id] = callback;\r\n if (!Server.iframe) {\r\n Server.iframe = document.getElementById(\"fms-shim\");\r\n }\r\n let call = () => {\r\n Server.iframe.contentWindow.postMessage(\r\n {\r\n type: \"shim\",\r\n id,\r\n action: post ? \"post\" : \"get\",\r\n data,\r\n url: url,\r\n filesArray: filesArray\r\n },\r\n \"*\"\r\n );\r\n };\r\n\r\n if (Server.iframeReady) {\r\n call();\r\n } else {\r\n this.preMessageQueue.push(call);\r\n console.log(`Shim not ready`);\r\n }\r\n };\r\n\r\n\r\n return new window.Promise(promiseExecutor);\r\n }\r\n\r\n \r\n private endLoading = () => {\r\n Server.loadingFunction?.(false);\r\n}\r\n\r\nprivate startLoading = () => {\r\n Server.loadingFunction?.(true);\r\n}\r\n\r\npublic static selectedTemplate:Template|undefined|null;\r\npublic static selectedProject:IProject|undefined|null;\r\npublic static SetCurrentProject(template: Template|undefined|null, project: IProject|undefined|null) {\r\n this.selectedProject = project;\r\n this.selectedTemplate = template;\r\n}\r\npublic static GetQueryStringValue(key: string) {\r\n let params:any = new URLSearchParams(window.location.search);\r\n const newParams = new URLSearchParams();\r\n for (const [name, value] of params) {\r\n newParams.append(name.toLowerCase(), value);\r\n }\r\n return newParams.get(key.toLowerCase());\r\n}\r\n\r\n}\r\n\r\nexport const _server = new Server(true);\r\n\r\ninterface IHelloResponse {\r\n loggedIn:boolean,\r\n user:IUser,\r\n baseUser:IUser,\r\n}","import { applyMiddleware, createStore, combineReducers, Store, AnyAction } from 'redux';\r\nimport promiseMiddleware from 'redux-promise-middleware';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport { connect } from 'react-redux';\r\nimport { IWorkbookSummary, IWorkbookTemplateSummary } from '../Components/WorkbookTemplate/WorkbookTypes';\r\nimport { IUser } from '../Types/basic';\r\nimport { _server } from '../utils/Server';\r\nimport { IOrganizationInfo } from '../Components/Organizations/OrganizationTypes';\r\nimport { IOrgUserSummary, IUserSummary } from '../Types/User';\r\n\r\nexport interface IState {\r\n User?: IUser;\r\n BaseUser?: IUser;\r\n UsersWorkbooks?: IWorkbookSummary[];\r\n WorkbookTemplates?: IWorkbookTemplateSummary[];\r\n ShowLogin?: boolean;\r\n MyFiles?: IFileInfo[];\r\n OrgInfo?: IOrganizationInfo;\r\n OrgWorkbooks?: IWorkbookTemplateSummary[];\r\n OrgUsers?: IOrgUserSummary[];\r\n UploadProgress?: IProgressUpdate;\r\n HasNav?: boolean;\r\n ShowNav?: boolean;\r\n}\r\n\r\nexport interface IFileInfo {\r\n PublicId: string;\r\n Name: string;\r\n Comments: string;\r\n Extension: string;\r\n ContentType: string;\r\n IsImage: boolean;\r\n IsPdf: boolean;\r\n IsVideo: boolean;\r\n SizeMB: number;\r\n}\r\n\r\nexport interface IProgressUpdate {\r\n total: number;\r\n loaded: number;\r\n}\r\n\r\nexport default class redux {\r\n static state: Store;\r\n static State() {\r\n if (!redux.state)\r\n redux.state =\r\n window.location.origin.indexOf('localhost') > -1 ? createStore(reducer, composeWithDevTools(applyMiddleware(promiseMiddleware))) : createStore(reducer, applyMiddleware(promiseMiddleware));\r\n\r\n return redux.state;\r\n }\r\n\r\n //======================================================\r\n //Place dispatch methods below this line; redux.yourMethod\r\n //======================================================\r\n\r\n static setUser(value: IUser | null) {\r\n return redux.state.dispatch({\r\n type: Actions.SetUser,\r\n value,\r\n });\r\n }\r\n static setBaseUser(value: IUser | null) {\r\n return redux.state.dispatch({\r\n type: Actions.SetBaseUser,\r\n value,\r\n });\r\n }\r\n\r\n static showLogin(value: boolean) {\r\n return redux.state.dispatch({\r\n type: Actions.ShowLogin,\r\n value,\r\n });\r\n }\r\n\r\n static setUsersWorkbooks = (value: IWorkbookSummary[]) => {\r\n return redux.state.dispatch({\r\n type: Actions.SetUsersWorkbooks,\r\n value,\r\n });\r\n };\r\n\r\n static uploadProgress(value: IProgressUpdate) {\r\n return redux.state.dispatch({\r\n type: Actions.SetWorkbookTemplates,\r\n value,\r\n });\r\n }\r\n\r\n static setTemplates = (value: IWorkbookTemplateSummary[]) => {\r\n return redux.state.dispatch({\r\n type: Actions.SetWorkbookTemplates,\r\n value,\r\n });\r\n };\r\n\r\n static setOrgInfo = (value: IOrganizationInfo) => {\r\n return redux.state.dispatch({\r\n type: Actions.SetOrgInfo,\r\n value,\r\n });\r\n };\r\n\r\n static setHasNav(value: boolean) {\r\n return redux.state.dispatch({\r\n type: Actions.SetHasNav,\r\n value,\r\n });\r\n }\r\n static setShowNav(value: boolean) {\r\n return redux.state.dispatch({\r\n type: Actions.SetShowNav,\r\n value,\r\n });\r\n }\r\n\r\n static loadMyFiles = (workbookId?: string, orgId?: string) => {\r\n _server.postApiQuite(`../File/MyFiles`, { workbookId, orgId }).then((x) => {\r\n if (x.Success) {\r\n return redux.state.dispatch({ type: Actions.SetMyFiles, value: x.Value });\r\n } else {\r\n console.log('failed to load my files...');\r\n }\r\n });\r\n };\r\n\r\n static setOrgWorkbooks(orgId: string | undefined) {\r\n _server.getApiQuiet(`../OrgApi/OrgWorkbooks/${orgId}`).then((x) => {\r\n if (x.Success) {\r\n return redux.state.dispatch({ type: Actions.SetOrgWorkbooks, value: x.Value });\r\n } else {\r\n console.log('failed to Org Workbooks...');\r\n }\r\n });\r\n }\r\n static setOrgUsers(orgId: string | undefined) {\r\n _server.getApiQuiet(`../OrgApi/OrgUsers/${orgId}`).then((x) => {\r\n if (x.Success) {\r\n return redux.state.dispatch({ type: Actions.SetOrgUsers, value: x.Value });\r\n } else {\r\n console.log('failed to Org Users...');\r\n }\r\n });\r\n }\r\n}\r\nenum Actions {\r\n Unknown,\r\n SetUsersWorkbooks,\r\n SetUser,\r\n SetBaseUser,\r\n SetWorkbookTemplates,\r\n ShowLogin,\r\n SetMyFiles,\r\n SetOrgInfo,\r\n SetOrgWorkbooks,\r\n SetOrgUsers,\r\n SetProgressUpdate,\r\n SetHasNav,\r\n SetShowNav,\r\n}\r\n\r\nexport const AppReducer = (currentState: IState, action: AnyAction): IState => {\r\n let state = currentState ?? {};\r\n switch (action.type) {\r\n case Actions.SetUsersWorkbooks:\r\n return { ...state, UsersWorkbooks: action.value };\r\n break;\r\n case Actions.SetUser:\r\n return { ...state, User: action.value ?? undefined };\r\n break;\r\n case Actions.SetBaseUser:\r\n return { ...state, BaseUser: action.value ?? undefined };\r\n break;\r\n case Actions.SetWorkbookTemplates:\r\n return { ...state, WorkbookTemplates: action.value ?? [] };\r\n break;\r\n case Actions.ShowLogin:\r\n return { ...state, ShowLogin: action.value ?? false, UploadProgress: undefined };\r\n break;\r\n case Actions.SetMyFiles:\r\n return { ...state, MyFiles: action.value ?? [] };\r\n break;\r\n case Actions.SetOrgInfo:\r\n return { ...state, OrgInfo: action.value ?? [] };\r\n break;\r\n case Actions.SetHasNav:\r\n return { ...state, HasNav: action.value ?? [] };\r\n break;\r\n case Actions.SetShowNav:\r\n return { ...state, ShowNav: action.value ?? [] };\r\n break;\r\n case Actions.SetOrgUsers:\r\n return { ...state, OrgUsers: action.value ?? [] };\r\n break;\r\n case Actions.SetOrgWorkbooks:\r\n return { ...state, OrgWorkbooks: action.value ?? [] };\r\n break;\r\n case Actions.SetProgressUpdate:\r\n return { ...state, UploadProgress: action.value ?? undefined };\r\n break;\r\n }\r\n return state;\r\n};\r\n\r\ninterface IStateAction {\r\n type: Actions;\r\n value: any;\r\n}\r\n\r\nexport const connectMap = () => {\r\n const map = (x: any) => {\r\n return x.main;\r\n };\r\n return connect(map, {});\r\n};\r\n\r\nexport const ReduxMapper = (component: any) => {\r\n const map = (x: any) => {\r\n return x.main;\r\n };\r\n return connect(map, {})(component);\r\n};\r\n\r\nconst reducer = combineReducers({\r\n main: AppReducer,\r\n});\r\n","import React from 'react';\r\n\r\ninterface IconProps {\r\n type: IconType\r\n addClass?: string\r\n}\r\n\r\n\r\nexport enum IconType {\r\n new = 'fal fa-sparkles',\r\n admin = 'fa fa-user-crown',\r\n org = 'fal fa-people-group',\r\n requiredFiles = 'fad fa-file-exclamation',\r\n magic = 'fad fa-wand-magic',\r\n map = 'fad fa-map-signs',\r\n here = 'fal fa-thumbtack',\r\n save = 'fal fa-save',\r\n sign = \"fal fa-signature\",\r\n checkSquareO = 'fa fa-check-square-o',\r\n squareO = 'fa fa-square-o',\r\n info = \"fal fa-info-square\",\r\n start = 'fal fa-hourglass-start',\r\n delete = 'fal fa-trash-alt',\r\n trashO = 'fa fa-trash-o',\r\n send = 'fal fa-paper-plane',\r\n file = 'far fa-file',\r\n fileAlt = 'fal fa-file-alt',\r\n edit = 'fad fa-edit',\r\n check = 'fas fa-check',\r\n circle = 'far fa-circle',\r\n checkCircle = 'fad fa-check-circle',\r\n questionCircle = 'far fa-question-circle',\r\n plusCircle = 'far fa-plus-circle',\r\n timesCircle = 'fas fa-times-circle',\r\n timesCircleLite = 'fal fa-times-circle',\r\n timesSquare = 'fal fa-times-square',\r\n chevronUp = 'fa fa-chevron-up',\r\n chevronDown = 'fa fa-chevron-down',\r\n chevronRight = 'fa fa-chevron-right',\r\n chevronLeft = 'fa fa-chevron-left',\r\n commentDots = 'fas fa-comment-alt-dots',\r\n comment = 'fa fa-comment-alt',\r\n dropbox = 'fab fa-dropbox',\r\n googleDrive = 'fab fa-google-drive',\r\n bars = 'fa fa-bars',\r\n signOut = 'fad fa-sign-out',\r\n signIn = 'fad fa-sign-in',\r\n settings = 'fas fa-cog',\r\n cog = 'fa fa-cog',\r\n manage = 'fad fa-cogs',\r\n work = 'fad fa-person-digging',\r\n user = 'fa fa-user',\r\n userO = 'fa fa-user-o',\r\n userCircle = 'fal fa-user-circle',\r\n userSlash = 'far fa-user-slash',\r\n users = 'fa fa-users',\r\n usersRegular = 'far fa-users',\r\n usersCog = 'fal fa-users-cog',\r\n userPlus = 'far fa-user-plus',\r\n userPlusDuo = 'fad fa-user-plus',\r\n userPlusSolid = 'fas fa-user-plus',\r\n help = 'fad fa-user-headset',\r\n lock = 'fad fa-lock-alt',\r\n personBooth = 'fad fa-person-booth',\r\n phone = 'fas fa-phone',\r\n phoneRotary = 'fas fa-phone-rotary',\r\n exclamation = 'fas fa-exclamation',\r\n question = 'fas fa-question',\r\n plus = 'far fa-plus',\r\n minus = 'far fa-minus',\r\n microphone = 'fa fa-microphone',\r\n microphoneSlash = 'fa fa-microphone-slash',\r\n microphoneSolid = 'fas fa-microphone',\r\n microphoneSlashSolid = 'fas fa-microphone-slash',\r\n videoSlash = 'fa fa-video-slash',\r\n video = 'fa fa-video',\r\n expandWide = 'far fa-expand-wide',\r\n arrows = 'fal fa-arrows-alt',\r\n volumeMute = 'fa fa-volume-mute',\r\n ban = 'fa fa-ban',\r\n sirenOn = 'fa fa-siren-on',\r\n userClock = 'far fa-user-clock',\r\n chalkboard = 'fal fa-chalkboard',\r\n mousePointer = 'fa fa-mouse-pointer',\r\n pen = 'fa fa-pen-fancy',\r\n cursor = 'fas fa-i-cursor',\r\n rectangle = 'far fa-rectangle-landscape',\r\n signature = 'fas fa-signature',\r\n clearBoard = 'fa fa-hand-sparkles',\r\n fileImage = 'far fa-file-image',\r\n palette = 'fas fa-palette',\r\n qrCode = 'far fa-qrcode',\r\n angleUp = 'fas fa-angle-up',\r\n angleDown = 'fas fa-angle-down',\r\n link = 'fal fa-link',\r\n unlink = 'fa fa-unlink',\r\n search = 'fas fa-search',\r\n\r\n searchMinus = 'fas fa-search-minus',\r\n searchPlus = 'fas fa-search-plus',\r\n windowClose = 'far fa-window-close',\r\n //share = 'fas fa-share',\r\n share = 'fad fa-share-all',\r\n shareSquareSolid = 'fas fa-share-square',\r\n shareSquareRegular = 'far fa-share-square',\r\n folder = 'fal fa-folder',\r\n folderOpen = 'fal fa-folder-open',\r\n arrowToBottom = 'far fa-arrow-to-bottom',\r\n arrowRight = 'fas fa-arrow-alt-right',\r\n arrowLeft = 'fas fa-arrow-alt-left',\r\n image = 'fal fa-image',\r\n filePdf = 'fal fa-file-pdf',\r\n fileVideo = 'far fa-file-video',\r\n fileWord = 'fal fa-file-word',\r\n fileExcel = 'fal fa-file-excel',\r\n fileSignature = 'fad fa-file-signature',\r\n fileSignatureRegular = 'far fa-file-signature',\r\n redoAlt = 'fa fa-redo-alt',\r\n undoAlt = 'fa fa-undo-alt',\r\n refresh = 'fa fa-undo-alt',\r\n slash = 'far fa-slash',\r\n exclamationTriangle = 'fal fa-exclamation-triangle',\r\n warning = 'fal fa-exclamation-triangle',\r\n clone = 'far fa-clone',\r\n highlighter = 'far fa-highlighter',\r\n readMe = 'fab fa-readme',\r\n handshake = 'far fa-handshake',\r\n download = 'far fa-download',\r\n thumbsUp = 'fas fa-thumbs-up',\r\n hourglassHalf = 'fas fa-hourglass-half',\r\n cloudDownload = 'far fa-cloud-download',\r\n envelope = 'far fa-envelope',\r\n ellipsisH = 'fa fa-ellipsis-h',\r\n store = 'fad fa-store',\r\n meteor = 'fad fa-meteor',\r\n eye = 'fad fa-eye',\r\n shown = 'fad fa-eye',\r\n eyeNo = 'fad fa-eye-slash',\r\n hidden = 'fad fa-eye-slash',\r\n arrowAltCircleLeft = 'far fa-arrow-alt-circle-left',\r\n home = 'fal fa-home-alt',\r\n copy = 'far fa-copy',\r\n mail = 'fa fa-envelope-o',\r\n letter = 'fa fa-envelope-o',\r\n textMsg = 'fa fa-comments-alt',\r\n trashSolid = 'fa fa-trash',\r\n text = 'far fa-text',\r\n sms = 'fad fa-sms',\r\n upload = 'fal fa-upload',\r\n folderPlus = 'fad fa-folder-plus',\r\n find = \"fas fa-search\",\r\n expand = \"fas fa-expand\",\r\n compress = \"fas fa-compress\",\r\n UserCheck = \"fas fa-user-check\",\r\n expandDown = 'fa fa-angle-down',\r\n expandUp = 'fa fa-angle-up',\r\n up = \"fa fa-arrow-up\",\r\n down = \"fa fa-arrow-down\",\r\n close = 'fal fa-times-square',\r\n exit = 'fal fa-times-square',\r\n film = 'fad fa-film',\r\n pages = 'fa-thin fa-grid-dividers',\r\n filter = 'fa-thin fa-filters',\r\n finished = \"fa-duotone fa-flag-checkered\",\r\n} \r\n\r\nconst Icon = (props: IconProps) => {\r\n return \r\n}\r\n\r\nexport default Icon","export interface IConfigFormData {\r\n IsStaff:boolean;\r\n Title: string;\r\n Description?: string;\r\n Items:IConfigItemSummary[];\r\n ItemsChildTypes?:IConfigItemChildType[];\r\n NoEdit?:boolean;\r\n ConfigGroups?:string[];\r\n}\r\n\r\nexport interface IConfigItemChildType{\r\n Name:string;\r\n Type:string;\r\n Key:string;\r\n}\r\n\r\nexport interface IConfigItemSummary{\r\n FilePath?: string;\r\n Name:string;\r\n SortBy?:string;\r\n Id?:string;\r\n Key?:string;\r\n Type?:string;\r\n SubType?:string;\r\n Description?:string;\r\n Color?:string;\r\n Failed?:boolean;\r\n Message?:string;\r\n NoEdit?:boolean;\r\n}\r\n\r\nexport interface IConfigFormEditorData{ \r\n Id?:string;\r\n Type?:string;\r\n Values?:Record;\r\n Form:IFormInfo;\r\n}\r\n\r\nexport interface IFormInfo{\r\n Sections:UiFormSection[];\r\n LinkToManager?:string;\r\n LinkToManagerLabelText?:string;\r\n CopyItem?:boolean;\r\n SubmitBtnText?:string;\r\n}\r\n\r\nexport interface UiFormData {\r\n targetId: string;\r\n Tabs: UiFormTab[];\r\n NewRecord: boolean;\r\n FirstTimeLogin:boolean;\r\n ByPassRequired:boolean;\r\n NextRecordPath: string;\r\n Requirements: ParticipantRequirement[] | null;\r\n CanSave:boolean; \r\n SubForm:UiFormData;\r\n VerifyEmail:boolean;\r\n PageTitle:string;\r\n role:SecurityRole;\r\n BackTo:UiBackTo;\r\n}\r\n\r\nexport interface UiBackTo\r\n{\r\n ClassName:string;\r\n Label:string;\r\n Path:string;\r\n}\r\n\r\nexport interface SavePersonFormResponse{\r\n errors: string[],\r\n targetId: string;\r\n role: SecurityRole;\r\n redirectTo:string;\r\n}\r\n\r\nexport interface UiFormTab {\r\n Label: string;\r\n HtmlBody:string;\r\n Active: boolean;\r\n Order: number;\r\n Sections: UiFormSection[];\r\n Show: boolean; \r\n SpecialType:string;\r\n DataPoint:string;\r\n DataPoint2:string;\r\n targetId: string;\r\n}\r\n\r\nexport interface UiFormSection {\r\n Label: string;\r\n Active: boolean;\r\n Order: number;\r\n ReadOnly: boolean;\r\n Fields: UiFormField[];\r\n HtmlBody:string;\r\n}\r\n\r\nexport interface UiFormField {\r\n DefaultValue: string | null;\r\n GroupId: string | null;\r\n Order: number;\r\n Confirm: boolean;\r\n Required: boolean;\r\n ReadOnly: boolean;\r\n Label: string;\r\n Placeholder: string;\r\n Key: string;\r\n Value: string[];\r\n Files: IFileDetails[];\r\n FileType:string;\r\n FileExts:string;\r\n Type: FieldTypes;\r\n ValueOptions: UiValuePairs[] | null;\r\n MaxLength: number;\r\n IsParent: boolean;\r\n OnChangeCallUpdate: Record // key = api call, value = key of input to update\r\n OnChangeCallUpdateQueryString:string;\r\n // OnChangeCall: string;\r\n // OnChangeUpdate: string;\r\n RequireMinLength: number;\r\n RequireAltCase: boolean;\r\n RequireNumber: boolean;\r\n RequireSpecialChar: boolean;\r\n SpecialChars: string[]|null;\r\n HeaderBootstrapSize:number;\r\n BodyBootstrapSize:number;\r\n ValidationRegularExpression:string;\r\n Show:boolean;\r\n NotListSpecial:string;\r\n NotListedSchoolsDataKey:string;\r\n AdditionalInformation:string;\r\n _errors?:string[];\r\n}\r\n\r\nexport interface IFileDetails{\r\n IsImage:boolean;\r\n IsPdf:boolean;\r\n Caption:string;\r\n Key:string;\r\n Extension:string;\r\n Name:string;\r\n FlipKey?:number;\r\n File?:File;\r\n Base64Url?:string;\r\n}\r\n\r\nexport enum FieldTypes {\r\n Textbox = 0,\r\n Textarea = 1,\r\n Checkbox = 2,\r\n DropDown = 3,\r\n PhoneNumber = 4,\r\n Date = 5,\r\n Picture = 6,\r\n Header = 7,\r\n Button = 8,\r\n MultiSelect = 9,\r\n ProfileImage = 10,\r\n ProjectFile = 11,\r\n Password = 12,\r\n AlertInfo = 13,\r\n Alert = 14,\r\n ReCaptcha = 15,\r\n Color = 16,\r\n HTML = 17,\r\n DateTime = 18,\r\n Number = 19,\r\n GradeRange = 20,\r\n File = 21,\r\n Time = 22,\r\n HTMLFull = 23,\r\n}\r\n\r\nexport interface UiValuePairs {\r\n Value: string;\r\n Name: string;\r\n}\r\n\r\nexport interface ParticipantRequirement{\r\n description:string,\r\n label:string,\r\n inputType: RequirementInputType,\r\n value: string,\r\n sort:number,\r\n key:string,\r\n}\r\n\r\nexport enum RequirementInputType{\r\n checkbox = 0,\r\n yesNoDropdown =1,\r\n displayOnly=2,\r\n SignatureTyped=3,\r\n}\r\n\r\nexport interface FileUploadData {\r\n caption: string;\r\n dataUrl: string;\r\n filename: string;\r\n }\r\n\r\n \r\nexport interface Tag {\r\n FairId: number; // 1\r\n Id: number; // 2\r\n Type: string; // \"person\"\r\n Value: string; // \"Best Judge\"\r\n }\r\n \r\n export interface PasswordRequirements {\r\n MinLength: number;\r\n RequireAltCase: boolean;\r\n RequireNumber: boolean;\r\n RequireSpecialChar: boolean;\r\n specialChars: string;\r\n }\r\n \r\n export enum SecurityRole {\r\n Yoda = 100,\r\n Admin = 10,\r\n Staff = 7,\r\n DistrictCoordinator = 6,\r\n Judge = 5,\r\n Volunteer = 3,\r\n Teacher = 1,\r\n Student = 0,\r\n Attendee = -100,\r\n Unknown = -1000\r\n }\r\n\r\n export interface Selectable {\r\n label: string;\r\n value: number|string;\r\n options?:Selectable[]\r\n }\r\n \r\n export interface ColumnData {\r\n value: string;\r\n id: string;\r\n }\r\n\r\n export const isFieldRegexSatisfied = (\r\n field: UiFormField,\r\n formValues: Record\r\n ) => {\r\n if (!field.ValidationRegularExpression) return true;\r\n \r\n let value = field.Value ? field.Value[0] : null;\r\n if (formValues[field.Key] && formValues[field.Key][0])\r\n value = formValues[field.Key][0];\r\n \r\n if (!value) return true;\r\n \r\n var regex = new RegExp(field.ValidationRegularExpression, `g`);\r\n if (regex && value.match(regex)) return true;\r\n else return false;\r\n };\r\n \r\n export const isFieldSatisfied = (\r\n field: UiFormField,\r\n formValues: Record\r\n ) => {\r\n if (!field.Required) return true;\r\n if (\r\n field.Type === FieldTypes.Alert ||\r\n field.Type === FieldTypes.AlertInfo ||\r\n field.Type === FieldTypes.Header\r\n )\r\n return true;\r\n \r\n if (field.Type === FieldTypes.ReCaptcha) {\r\n let w: any = window;\r\n let value = w.x_reCaptcha;\r\n if (value) {\r\n formValues[field.Key] = [value, \"Added By Extra...\"];\r\n }\r\n console.log(\"reCaptcah Value\", value);\r\n }\r\n \r\n if (field.Type === FieldTypes.Checkbox) {\r\n //must be true...\r\n if (formValues[field.Key]) {\r\n //new value set, is this value valid?\r\n if (formValues[field.Key]?.find((x) => x === \"true\" || x===\"True\")) return true;\r\n return false;\r\n }\r\n if (field.Value && field.Value[0] === \"true\" || field.Value[0] ===\"True\") return true;\r\n return false;\r\n }\r\n if(field.Type === FieldTypes.ProfileImage || field.Type === FieldTypes.ProjectFile){\r\n if(field.Files && field.Files.length > 0) return true;\r\n }\r\n if(field.Type === FieldTypes.MultiSelect){\r\n let valueArray = formValues[field.Key] ?? field.Value ?? [];\r\n let value = valueArray[0];\r\n if(!value) return false;\r\n return true;\r\n }\r\n if (formValues[field.Key]) {\r\n //new value set, is this value valid?\r\n if (formValues[field.Key]?.find((x) => x)) return true;\r\n else return false;\r\n }\r\n if (field.Value && field.Value[0]) return true;\r\n return false;\r\n };\r\n \r\n export const isConfirmSatisfied = (\r\n field: UiFormField,\r\n formValues: Record\r\n ) => {\r\n if (!field.Confirm) return true;\r\n \r\n if (formValues[field.Key] || formValues[field.Key + \"confirm\"]) {\r\n try{\r\n return formValues[field.Key + \"confirm\"] && formValues[field.Key] && formValues[field.Key][0] === formValues[field.Key + \"confirm\"][0];\r\n }catch{\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n\r\n export const isPasswordValid = (\r\n field: UiFormField,\r\n formValues: Record) => {\r\n let errors: string[] = [];\r\n if (!field.Confirm) {\r\n } else if (\r\n field.Type === FieldTypes.Password &&\r\n formValues[field.Key]\r\n ) {\r\n let value = formValues[field.Key][0];\r\n if (field.RequireMinLength > value.length)\r\n errors.push(\r\n `${field.Label} must be at least ${field.RequireMinLength} characters long.`\r\n );\r\n if (\r\n field.RequireAltCase &&\r\n (!value.match(/[A-Z]/g) || !value.match(/[a-z]/g))\r\n )\r\n errors.push(\r\n `${field.Label} must have both an uppercase and lowercase letter.`\r\n );\r\n if (\r\n field.RequireNumber &&\r\n (!value.match(/[A-Za-z]/g) || !value.match(/[0-9]/g))\r\n )\r\n errors.push(\r\n `${field.Label} must have at least one number and one letter.`\r\n );\r\n if (\r\n field.RequireSpecialChar &&\r\n field.SpecialChars &&\r\n !field.SpecialChars.find((x) => value.indexOf(x) > -1)\r\n )\r\n errors.push(`${field.Label} must have a special charater.`);\r\n }\r\n\r\n field._errors = errors;\r\n\r\n return errors;\r\n }\r\n\r\n export interface IFieldGoodResponse {\r\n Good:boolean;\r\n RegExPass:boolean;\r\n RequiredPass:boolean;\r\n ConfirmPass:boolean;\r\n PasswordRequirements:boolean;\r\n Message?:string;\r\n }\r\n\r\n export const isFieldGood=(field:UiFormField, formValues: Record)=>{\r\n let regex = isFieldRegexSatisfied(field, formValues);\r\n let required = isFieldSatisfied(field, formValues);\r\n let confirm = isConfirmSatisfied(field, formValues);\r\n let passwordRequirements = isPasswordValid(field, formValues);\r\n\r\n let response:IFieldGoodResponse = {\r\n Good: regex && required && confirm && passwordRequirements.length === 0,\r\n RegExPass: regex,\r\n ConfirmPass:confirm,\r\n PasswordRequirements:passwordRequirements.length === 0,\r\n RequiredPass:required, \r\n } \r\n\r\n if(response.Good) return response;\r\n\r\n let msg:string[] = [];\r\n\r\n passwordRequirements.forEach(x=>{msg.push(x);});\r\n //build message\r\n if(!required) msg.push(`${field.Label} is required.`);\r\n else if(!regex) msg.push(`${field.Label} is not valid please provide valid data.`);\r\n else if (!confirm) msg.push(`${field.Label} needs to be confirmed.`);\r\n\r\n //set message\r\n response.Message = msg.join(' ');\r\n\r\n return response;\r\n }","\r\nimport { stringify } from \"querystring\";\r\nimport redux from \"../Redux/Redux\";\r\nimport { emailRegex, urlRegex, usPhoneRegex } from \"./Constants\";\r\nimport { Server } from \"./Server\";\r\nexport const checkEmailValid = (email: string) => {\r\n return emailRegex.test(email.toLowerCase());\r\n}\r\n\r\nexport const checkPhoneValid = (phoneNum: string) => {\r\n return usPhoneRegex.test(phoneNum);\r\n}\r\n\r\nexport const checkUrlValid = (url: string) => {\r\n return urlRegex.test(url);\r\n}\r\n\r\n\r\nexport const sleep = (ms: number) => {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n}\r\n\r\n\r\nexport const formatVideoUrl = (url) => {\r\n let alteredUrl:string;\r\n if (url.includes('.be/')) {\r\n // shortened youtube link\r\n alteredUrl = `https://youtube.com/embed/${url.split('.be/')[1]}`;\r\n } else if (url.includes('watch?v=')) {\r\n //long youtube link\r\n alteredUrl = url.replace('watch?v=', 'embed/');\r\n } else {\r\n alteredUrl = url;\r\n }\r\n\r\n let value = alteredUrl;\r\n let charArray: any[] = [];\r\n let inqueryString = false;\r\n\r\n for (let i = 0; i < value.length; i++) {\r\n if (value[i] === '?') {\r\n if (!inqueryString) {\r\n inqueryString = true;\r\n } else {\r\n charArray.push('&');\r\n continue;\r\n }\r\n }\r\n charArray.push(value[i]);\r\n }\r\n value = charArray.join('');\r\n alteredUrl = value;\r\n\r\n if (alteredUrl.indexOf('&v=') > -1) {\r\n alteredUrl = `https://youtube.com/embed/${alteredUrl.split('&v=')[1]}`\r\n }\r\n if (alteredUrl.indexOf('?v=') > -1) {\r\n alteredUrl = `https://youtube.com/embed/${alteredUrl.split('?v=')[1]}`\r\n }\r\n\r\n if (alteredUrl.toLowerCase().indexOf('google.com') > 0 && alteredUrl.toLowerCase().indexOf('/view')) {\r\n alteredUrl = alteredUrl.replace('/view', '/preview');\r\n }\r\n\r\n if (alteredUrl.toLowerCase().indexOf('youtube') > 0 && alteredUrl.indexOf('&') > 0) {\r\n alteredUrl = alteredUrl.substring(0, alteredUrl.indexOf('&'));\r\n }\r\n\r\n if(alteredUrl.toLowerCase().indexOf('youtube') > -1 && alteredUrl.toLowerCase().indexOf('http:') > -1){\r\n alteredUrl = 'https'+alteredUrl.substr(4);\r\n }\r\n\r\n return alteredUrl;\r\n}\r\n\r\nexport const scrollToTop = () => window.scrollTo({top: 0, left: 0, behavior: 'smooth'});\r\n\r\nexport const formatDateForInput = (date: string) => {\r\n var d = new Date(date),\r\n month = '' + (d.getMonth() + 1),\r\n day = '' + d.getDate(),\r\n year = d.getFullYear();\r\n\r\n if (month.length < 2) \r\n month = '0' + month;\r\n if (day.length < 2) \r\n day = '0' + day;\r\n\r\n return [year, month, day].join('-');\r\n}\r\n\r\nexport const ToDate=(value:string|number)=>{\r\n \r\n let currentDate = new Date();\r\n let timeOffsetInMS:number = currentDate.getTimezoneOffset() * 60000;\r\n\r\n if(typeof value === \"string\" && value.indexOf('/Date(')>-1){ \r\n let date2 = new Date(parseInt(value.substring(6)))\r\n date2.setTime(date2.getTime() - timeOffsetInMS);\r\n\r\n return date2;\r\n \r\n } else {\r\n let date2 = new Date(value);\r\n date2.setTime(date2.getTime() - timeOffsetInMS);\r\n \r\n console.log('ToDate', date2, currentDate);\r\n \r\n return date2;\r\n}\r\n};\r\n\r\nexport const FormatDate=(value:string|Date|undefined, format?:'input'|'date'|'date-time')=>{\r\n if(!value) return undefined;\r\n let date = (value instanceof Date) ? value : ToDate(value);\r\n if(!date) return undefined;\r\n\r\n let hours = date.getHours();\r\n let min:string|number = date.getMinutes();\r\n let pm = false;\r\n if(hours > 11) pm = true;\r\n if(hours === 0) hours = 12;\r\n else if (hours>12) hours -=12;\r\n if(min < 10) min = '0'+min;\r\n\r\n let noTime = date.getSeconds() === 0 && date.getHours() === 0 && date.getMinutes() === 0 && date.getMilliseconds() === 0; \r\n\r\n switch(format ?? 'date-time'){\r\n case 'input':\r\n return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()}`;\r\n break;\r\n case 'date':\r\n return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}`;\r\n break;\r\n case 'date-time':\r\n default:\r\n if(noTime) return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()}`;\r\n return `${date.getMonth()+1}/${date.getDate()}/${date.getFullYear()} ${hours}:${min} ${pm?'pm':'am'}`;\r\n break;\r\n }\r\n \r\n};\r\n\r\nexport const LimitStringSize = (str:string, maxLength:number)=>{\r\n if(str && str.length > maxLength){\r\n return str.substring(0, maxLength-3) + '...';\r\n }\r\n\r\n return str;\r\n};\r\n\r\nexport const isValidEmail = (email?:string) =>{\r\n if(!email || email.indexOf(\"@\") === -1 || email.indexOf(\".\") === -1) return false;\r\n\r\n return true;\r\n};\r\nexport const isValidPhone = (phone?:string) =>{\r\n if(!phone || phone.length < 10) return false;\r\n \r\n return true;\r\n};\r\n\r\nexport const isValidPassword = (password:string, password2:string, errors:string[], e:any) =>{\r\n if (password) {\r\n if (password != password2) {\r\n errors.push(`The passwords you provided do not match`);\r\n e.match = true;\r\n }\r\n\r\n if (8 > password.length) {\r\n errors.push(`Password must be at least 8 charaters`);\r\n e.password = true;\r\n }\r\n if (!password.match(/[A-Z]/g) || !password.match(/[a-z]/g)) {\r\n errors.push(\r\n `Password must have at least one upper and lower case letter`\r\n );\r\n e.password = true;\r\n }\r\n if (!password.match(/[0-9]/g)) {\r\n errors.push(`Password must have at least one number.`);\r\n e.password = true;\r\n }\r\n if (\r\n !password.match(\r\n /[\\!\\@\\#\\$\\%\\^\\&\\*\\:\\;\\'\\?\\<\\>\\,\\.\\|\\[\\]\\{\\}\\=\\_\\+\\(\\)]/g\r\n )\r\n ) {\r\n errors.push(\r\n `Password must have at least one special character. Such as: !@#$%^&*()=+{}[].`\r\n );\r\n e.password = true;\r\n }\r\n } else {\r\n errors.push(`Password must be provided.`);\r\n e.password = true;\r\n }\r\n\r\n return errors.length === 0;\r\n}\r\n\r\n","import { useEffect, useState } from 'react';\r\nimport redux, { IState } from '../../Redux/Redux';\r\nimport { IOrganizationInfo } from './OrganizationTypes';\r\nimport { Server } from '../../utils/Server';\r\nimport Icon, { IconType } from '../Icon/Icon';\r\nimport { LimitStringSize } from '../../utils/Tools';\r\n\r\ninterface IProps {\r\n state: IState;\r\n org?: IOrganizationInfo;\r\n titlePostfix?: string;\r\n homeRelativeUrl?: string;\r\n}\r\n\r\nconst OrgPageHeader = (props: IProps) => {\r\n const [org, setOrg] = useState();\r\n\r\n useEffect(() => {\r\n setOrg(props.org ?? props.state.OrgInfo);\r\n }, [props.org, props.state.OrgInfo]);\r\n\r\n useEffect(() => {\r\n return () => {\r\n redux.setHasNav(false);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n redux.setHasNav(org ? true : false);\r\n }, [org]);\r\n\r\n const goHome = () => {\r\n goTo(props.homeRelativeUrl ?? `../`);\r\n };\r\n\r\n const goTo = (relUrl: string) => {\r\n window.location.href = Server.BuildUrl(relUrl);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n {org && (\r\n <>\r\n

\r\n {org.Logo && }\r\n
\r\n {!org.ShowJustLogoInHeader && <>{LimitStringSize(org.Name, 400)}}\r\n {props.titlePostfix && <>{props.titlePostfix}}\r\n
\r\n

\r\n \r\n )}\r\n
\r\n
\r\n {props.state.User ? (\r\n <>\r\n {org && org.AllowSubOrgs && org.UserRelationship?.ReviewGroups?.length > 0 && (\r\n {\r\n goTo('../organization/work');\r\n }}>\r\n Work\r\n \r\n )}\r\n {org && org.AllowSubOrgs && (org.UserRelationship?.Admin || props.state.User.IsAdmin) && (\r\n {\r\n goTo('../organization');\r\n }}>\r\n Organization\r\n \r\n )}\r\n {org && org.AllowSubOrgs && (\r\n {\r\n goTo('../user/organization');\r\n }}>\r\n My Organizations\r\n \r\n )}\r\n \r\n ) : (\r\n <>\r\n {\r\n redux.showLogin(true);\r\n }}>\r\n Sign In\r\n \r\n {\r\n redux.showLogin(true);\r\n }}>\r\n Sign up for free\r\n \r\n \r\n )}\r\n {\r\n redux.setShowNav(true);\r\n }}>\r\n Menu\r\n \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default OrgPageHeader;\r\n","import { useState } from \"react\";\r\nimport OrgPageHeader from \"../../Components/Organizations/OrgPageHeader\";\r\nimport { IState, ReduxMapper } from \"../../Redux/Redux\";\r\n\r\ninterface IProps extends IState{\r\n\r\n}\r\n\r\nconst AboutThisApp = (props:IProps) => {\r\n const [name, setName] = useState(\"zFairs Project App\");\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

About zFairs Project App

\r\n
\r\n

What is the Project App?

\r\n
\r\n The Project App is a content delivery platform geared towards helping\r\n Event Participants complete a series of prebuilt guided steps with the\r\n end goal being to simplify creating, organizing, documenting and\r\n presenting Science Fair Projects, Invention Convention Logbooks, NHD\r\n entries, book reports, training courses, etc.\r\n
\r\n
\r\n\r\n

Who does it benefit?

\r\n
\r\n

\r\n The Project App benefits a wide variety of individuals albeit in\r\n very different ways.\r\n

\r\n
Students
\r\n
    \r\n
  • \r\n Students receive their benefit from having a tool to help walk\r\n them through each process and attain the best end result possible.\r\n They'll utilize features such as Brainstorming Sessions, Forms\r\n Wizard, Data Docker and Chart / Presentation Builder to come up\r\n with the best ideas for each project, fill out and know they have\r\n all of the paperwork in order, store all of the data they collect\r\n during testing / throughout the process and create & present\r\n informative and concise presentation boards / PDF displays that\r\n will show their efforts and highlight their newfound knowledge and\r\n skills.\r\n
  • \r\n
\r\n
Teachers
\r\n
    \r\n
  • \r\n Teachers are in the unique position of being able to subscribe to\r\n various different templates that can assist their students with\r\n the various event projects (Science Fair, Invention Convention,\r\n National History Day, etc) but will also be able to assign Book\r\n Reports, Essays and Papers to their students in the same platform.\r\n Their students will then be guided through the necessary steps to\r\n complete each assignment in the best way possible.\r\n
  • \r\n
\r\n
Event Coordinators
\r\n
    \r\n
  • \r\n You can know that your event participants are following the\r\n correct steps and flows so that there is a much reduced chance of\r\n needing to scramble at the end because they didn't get everything\r\n accounted for that they should have.\r\n
  • \r\n
\r\n
Board of Trustees
\r\n
    \r\n
  • \r\n Board Members or any vested party interested in the anonymous\r\n statistics of their users will have access to a plethora of\r\n helpful reports. These reports will help them see which areas are\r\n utilizing the software more than others (thus having the ability\r\n to target marketing to the areas, regions, states and countries\r\n that use the platform the least). The Project App will also give\r\n them real time numbers on just how many participants they have at\r\n any given event and see what the Category, Ethnicity, Grade Level,\r\n etc breakdown is for all users as a whole or for any one event\r\n they have an interest in.\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ReduxMapper(AboutThisApp);\r\n","import { send } from \"process\";\r\nimport { useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Server } from \"../../utils/Server\";\r\nimport { isValidEmail, isValidPhone } from \"../../utils/Tools\";\r\nimport Icon, { IconType } from \"../../Components/Icon/Icon\";\r\nimport OrgPageHeader from \"../../Components/Organizations/OrgPageHeader\";\r\nimport { IState, ReduxMapper } from \"../../Redux/Redux\";\r\n\r\ninterface IContactUsProps extends IState {} \r\n\r\n\r\nconst ContactUs = (props: IContactUsProps) => {\r\n const [showSent, setShowSent] = useState(false);\r\n const [formData, setFormData] = useState({});\r\n const [hasErrors, setHasErrors] = useState(false);\r\n\r\n const sendContactUs = () => {\r\n let errors = false;\r\n let fd = formData;\r\n\r\n if (!fd.name) {\r\n fd.nameError = true;\r\n errors = true;\r\n } else fd.nameError = false;\r\n\r\n if (!fd.message) {\r\n fd.messageError = true;\r\n errors = true;\r\n } else fd.messageError = false;\r\n\r\n // if (!fd.subject) {\r\n // fd.subjectError = true;\r\n // errors = true;\r\n // }else fd.subjectError = false;\r\n\r\n let emailValid = fd.email && isValidEmail(fd.email);\r\n let phoneValid = fd.phone && isValidPhone(fd.phone);\r\n fd.emailError = !emailValid;\r\n fd.phoneError = !phoneValid;\r\n\r\n if (!emailValid && !phoneValid) {\r\n errors = true;\r\n }\r\n\r\n if (errors) {\r\n setFormData(fd);\r\n setHasErrors(true);\r\n console.log(\"Has errors\");\r\n return;\r\n }\r\n\r\n setHasErrors(false);\r\n\r\n let rqst = {\r\n //Subject: formData.subject,\r\n Message: formData.message ?? \"Message\",\r\n Phone: formData.phone ?? \"Phone Number\",\r\n Email: formData.email ?? \"bob@example.com\",\r\n Name: formData.name ?? \"bob snert\",\r\n };\r\n\r\n console.log(\"Sending...\", rqst);\r\n Server.instance.postApi(`../Contact/ContactUs`, rqst).then((x) => {\r\n if (x.Success) {\r\n setShowSent(true);\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {!showSent && (\r\n <>\r\n

Contact Us

\r\n Let us know how we can help, it is our desire to provide the best\r\n service possible. Currently use are using an early release version of\r\n zFairs Project App, let us know how we can make it better.\r\n
\r\n Please note that if you\r\n use a school email our response will likely be blocked.{\" \"}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, name: e.target.value });\r\n }}\r\n type=\"text\"\r\n maxLength={100}\r\n className=\"form-control\"\r\n placeholder=\"What shall we call you?\"\r\n autoFocus={true}\r\n />\r\n {hasErrors && formData.nameError && (\r\n Please provide your name.\r\n )}\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, phone: e.target.value });\r\n }}\r\n type=\"tel\"\r\n maxLength={100}\r\n className=\"form-control\"\r\n placeholder=\"Phone number?\"\r\n />\r\n {hasErrors && formData.phoneError && (\r\n \r\n Please provide a valid phone number.\r\n \r\n )}\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, email: e.target.value });\r\n }}\r\n type=\"email\"\r\n maxLength={100}\r\n className=\"form-control\"\r\n placeholder=\"Email?\"\r\n />\r\n {hasErrors && formData.emailError && (\r\n \r\n Please provide a valid email address.\r\n \r\n )}\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, message: e.target.value });\r\n }}\r\n maxLength={3000}\r\n className=\"form-control\"\r\n placeholder=\"Tell us how we can help, give as much detail as possible.\"\r\n />\r\n {hasErrors && formData.messageError && (\r\n \r\n Please tell us how we can help or improve.\r\n \r\n )}\r\n
\r\n
\r\n \r\n Send\r\n \r\n
\r\n
\r\n \r\n )}\r\n {showSent && (\r\n <>\r\n

Message Sent!

\r\n Hi {formData.name},\r\n
\r\n
\r\n We've sent your message and will get back to you as fast as possible. In the mean time you can \r\n check out our wiki page at https://wiki.zfairs.com/index.php?title=Category:Project_App\r\n
\r\n
\r\n Thank you,\r\n
\r\n zFairs ISEF App Support Team\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default ReduxMapper(ContactUs);","import { useState } from \"react\";import { IState, ReduxMapper } from \"../../Redux/Redux\";\r\nimport OrgPageHeader from \"../../Components/Organizations/OrgPageHeader\";\r\n\r\ninterface IProps extends IState{\r\n\r\n}\r\n\r\nconst GettingStarted = (props:IProps) => {\r\n const [name, setName] = useState(\"zFairs Project App\");\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

Getting Started

\r\n
Creating an Account
\r\n
    \r\n
  1. \r\n Click the Menu in the top right and then Register OR Click the New\r\n Project tile and walking through the prompts there\r\n
  2. \r\n
  3. \r\n Select the Template that Best Applies to what you are trying to\r\n accomplish\r\n
    Be sure to enter an email you have easy access to
    \r\n
  4. \r\n
\r\n
Start a New Project
\r\n
    \r\n
  1. Click the New Project tile
  2. \r\n
  3. \r\n Select the appropriate template and walk through the Project Setup\r\n steps\r\n
  4. \r\n
  5. \r\n Walk through the process flow\r\n
    \r\n Be sure to take full advantage of a Brainstorming Session or two,\r\n the Notes, Files and Sources tabs as well any Template Specific\r\n features your sponsor is providing\r\n
    \r\n
  6. \r\n
\r\n
Project App Terms
\r\n
    \r\n
  • \r\n Template The full set of pages, page elements, videos and related\r\n configurations associated with any one process / Curriculum set.\r\n Users will select which Template they are using just prior to\r\n beginning to enter information about any new projects they start and\r\n their project, along with its associated data, will show on their\r\n list of existing projects. Users can have multiple projects using\r\n the same template but any one project will only ever use a single\r\n template.\r\n
  • \r\n
  • \r\n Page Each tile on the Pages subtab inside of each project counts\r\n as a page. A page is a piece of a template and contains elements\r\n that will get information from or display information to the user.\r\n
  • \r\n
  • \r\n Element Elements are contained inside of a Page and are the fields\r\n or information received from or presented to a user.\r\n
  • \r\n
  • \r\n Notes The \"Notes\" sub tab in the project app is a quick reference\r\n list of things the user wants to document. They can be as extensive\r\n or short as desired.\r\n
  • \r\n
  • \r\n Files All of the files (images, PDFs, Word Docs, etc.) submitted\r\n to the app can be found on the Files sub tab.\r\n
  • \r\n
  • \r\n Sources The Sources sub tab will be a collection of all the cited\r\n sources for the applicable project.\r\n
  • \r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ReduxMapper(GettingStarted);\r\n","import React, {useState, useEffect} from 'react';\r\nimport './Modal.css';\r\n\r\ninterface IModalProps {\r\n setModalOpen:Function,\r\n className?:string,\r\n title:string,\r\n children?:React.ReactNode,\r\n size?:'m'|'l'|'xl'|'xxl'|'full',\r\n noClose?:boolean,\r\n noCloseOnBackgroundClick?:boolean,\r\n onClose?:()=>void;\r\n}\r\n\r\nconst Modal = (props:IModalProps) => {\r\n const [sizeClassName, setSizeClassName] = useState('');\r\n\r\n useEffect(()=>{\r\n //set body as no scroll\r\n\r\n document.querySelector('body')?.classList.add('modal-open');\r\n return ()=>{\r\n //remove class from body\r\n document.querySelector('body')?.classList.remove('modal-open');\r\n };\r\n },[]);\r\n\r\n useEffect(()=>{\r\n let value = '';\r\n switch(props.size){\r\n \r\n case 'm':\r\n value = `modal-m`;\r\n break;\r\n case 'l':\r\n value = `modal-l`;\r\n break;\r\n case 'xl':\r\n value = `modal-xl`;\r\n break;\r\n case 'xxl':\r\n value = `modal-xxl`;\r\n break;\r\n \r\n case 'full':\r\n value = `modal-full`;\r\n break;\r\n }\r\n setSizeClassName(value);\r\n }, [props.size]);\r\n\r\n const handleModalClick = (e) => {\r\n\r\n if(!props.noCloseOnBackgroundClick && e.target.id === 'modal' && props.setModalOpen) {\r\n e.stopPropagation();\r\n\r\n if(props.noClose) return;\r\n close();\r\n }\r\n }\r\n\r\n const close = () => {\r\n if(props.onClose) props.onClose();\r\n \r\n if(props.setModalOpen) props.setModalOpen(false)\r\n\r\n }\r\n\r\n return(\r\n\r\n handleModalClick(e)}\r\n >\r\n
\r\n
\r\n\r\n
\r\n

{props.title || 'Title'}

\r\n {!props.noClose && {close()}}>}\r\n
\r\n
\r\n {props.children || 'add children'}\r\n
\r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\n\r\n\r\nexport default Modal","export default __webpack_public_path__ + \"static/media/default_thumbnail_image.6e863fcd.jpg\";","import React, { useState, useEffect } from \"react\";\r\nimport Icon, { IconType } from \"../../Icon/Icon\";\r\n\r\ninterface IPdfBasicToolbar {\r\n pages: number;\r\n page: number;\r\n zoom: number;\r\n changePage: Function;\r\n changeZoom: Function;\r\n viewOnly: boolean;\r\n save?: Function;\r\n isSigning?:boolean;\r\n downloadFormUrl?:string;\r\n}\r\n\r\nconst PdfBasicToolbar = (props: IPdfBasicToolbar) => {\r\n const { page, pages, zoom, changePage, changeZoom } = props;\r\n\r\n const nextPage = () => {\r\n page < pages && changePage(page + 1);\r\n };\r\n\r\n const prevPage = () => {\r\n page > 1 && changePage(page - 1);\r\n };\r\n\r\n return (\r\n
\r\n <>\r\n
\r\n {props.save && !props.viewOnly && !props.isSigning && (\r\n <>\r\n {\r\n if(props.save) props.save(true, false);\r\n }}\r\n >\r\n Save\r\n \r\n {\r\n if(props.save) props.save(true, true);\r\n }}\r\n >\r\n Save & Close\r\n \r\n {\r\n if(props.save) props.save(false, true);\r\n }}\r\n >\r\n Close\r\n \r\n \r\n )}\r\n {props.save && props.isSigning && (\r\n <>\r\n {\r\n if(props.save) props.save(true, false);\r\n }}\r\n >\r\n Submit\r\n \r\n {/* {\r\n props.save(true, true);\r\n }}\r\n >\r\n Submit & Close\r\n */}\r\n {\r\n if(props.save) props.save(false, true);\r\n }}\r\n >\r\n Close\r\n \r\n \r\n )}\r\n
\r\n {props.downloadFormUrl && \r\n
\r\n \r\n download\r\n \r\n
}\r\n\r\n {pages > 1 && (\r\n <>\r\n
\r\n
\r\n {page > 1 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n {page} of {pages}\r\n \r\n
\r\n {page < pages && (\r\n \r\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 PdfBasicToolbar;\r\n","import { useState, useEffect } from \"react\";\r\nimport Icon, { IconType } from \"../../Icon/Icon\";\r\nimport { IFieldInfo, ISigner } from \"./PdfTypes\";\r\n\r\n\r\ninterface IPdfInput {\r\n hasFocus: boolean;\r\n index: number;\r\n tabToNext: Function;\r\n position: number[];\r\n values: any;\r\n value: string;\r\n exportValue: string;\r\n type: string;\r\n name: string;\r\n id: string;\r\n scale: number;\r\n lineHeight?: number;\r\n valueUpdated: Function;\r\n fieldMetaData?: IFieldInfo;\r\n canEdit: boolean;\r\n signer?: ISigner;\r\n requestSign: Function;\r\n isSetupMode?:boolean;\r\n fieldSelected?:()=>void;\r\n missingFields?:Record;\r\n}\r\n\r\nconst PdfInput = (props: IPdfInput) => {\r\n const [scale, setScale] = useState(props.scale);\r\n const [isSignature, setIsSignature] = useState(\r\n props.fieldMetaData && props.fieldMetaData.SignatureOwner ? true : false\r\n );\r\n const [isSigner, setIsSigner] = useState(\r\n props.signer &&\r\n props.signer?.SignatureInfoId === props.fieldMetaData?.SignatureOwner\r\n ? true\r\n : false\r\n );\r\n const left = props.position[0] * scale;\r\n const width = (props.position[2] - props.position[0]) * scale + 2;\r\n const height = (props.position[3] - props.position[1]) * scale - 2;\r\n const bottom = props.position[3] * scale - height;\r\n const isTextArea = height > 30;\r\n\r\n const [edit, setEdit] = useState(false);\r\n const [value, setValue] = useState(\r\n props.values[props.id] ?? props.value\r\n );\r\n const [startingValue, setStartingValue] = useState(\r\n props.values[props.id] ?? props.value\r\n );\r\n\r\n useEffect(()=>{\r\n setIsSignature(props.fieldMetaData && props.fieldMetaData.SignatureOwner ? true : false);\r\n }, [props.fieldMetaData, props.fieldMetaData?.SignatureOwner, props.id])\r\n\r\n useEffect(() => {\r\n if (edit && props.type === \"Btn\") {\r\n let newValue = value === props.exportValue ? \"\" : props.exportValue;\r\n setValue(newValue);\r\n editClosed(newValue);\r\n }\r\n let newValue = '';\r\n if (edit && isSignature) {\r\n switch (props.fieldMetaData?.SignatureType) {\r\n case \"Name\":\r\n if (!value) {\r\n newValue = `${props.signer?.Name}`;\r\n setValue(newValue);\r\n }\r\n editClosed(newValue);\r\n break;\r\n case \"Signature\":\r\n if (!value) {\r\n newValue = `/${props.signer?.Name} ${props.signer?.PublicId}/`;\r\n setValue(newValue);\r\n }\r\n editClosed(newValue);\r\n break;\r\n case \"DateSigned\":\r\n if (!value) {\r\n let d = new Date();\r\n setValue(`${d.getMonth() + 1}/${d.getDate()}/${d.getFullYear()}`);\r\n }\r\n break;\r\n case \"Initials\":\r\n if (!value) {\r\n newValue = `${props.signer?.Initials}`;\r\n setValue(newValue);\r\n }\r\n editClosed(newValue);\r\n break;\r\n case \"Email\":\r\n if (!value) {\r\n setValue(`${props.signer?.Email}`);\r\n }\r\n break;\r\n case \"Phone\":\r\n if (!value) {\r\n setValue(`${props.signer?.Phone}`);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n }, [edit]);\r\n\r\n useEffect(() => {\r\n if (props.hasFocus && props.canEdit && !props.signer) {\r\n setEdit(true);\r\n }\r\n }, [props.hasFocus]);\r\n\r\n const maxLength = (big:boolean):number=>{\r\n if(props.fieldMetaData?.MaxLength){\r\n return props.fieldMetaData.MaxLength; \r\n }\r\n return big?20000 : 2000;\r\n };\r\n\r\n const displayValue = () => {\r\n switch (props.type) {\r\n case \"Tx\":\r\n case \"Sig\":\r\n if(props.isSetupMode){\r\n return {props.name}\r\n }\r\n if (value) return {value} ;\r\n else if (isSignature && !isSigner && props.signer) return  ;\r\n else if (isSignature) {\r\n switch (props.fieldMetaData?.SignatureType) {\r\n case \"Signature\":\r\n return (\r\n \r\n Sign\r\n \r\n );\r\n case \"DateSigned\":\r\n return (\r\n \r\n Date Signed\r\n \r\n );\r\n case \"Name\":\r\n return (\r\n \r\n Name of Signer\r\n \r\n );\r\n default:\r\n return {props.fieldMetaData?.SignatureType};\r\n }\r\n } \r\n else if (props.signer) {\r\n return  ;\r\n } \r\n else {\r\n return click to enter value;\r\n }\r\n\r\n break;\r\n case \"Btn\":\r\n return value === props.exportValue ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n );\r\n break;\r\n default:\r\n return unknown type: {props.type};\r\n }\r\n };\r\n const editValue = () => {\r\n switch (props.type) {\r\n case \"Tx\":\r\n case \"Sig\":\r\n if (isTextArea)\r\n return (\r\n {\r\n editClosed();\r\n }}\r\n maxLength={maxLength(true)}\r\n onKeyDown={keyPressed}\r\n onChange={valueChange}\r\n />\r\n );\r\n return (\r\n {\r\n editClosed();\r\n }}\r\n onKeyDown={keyPressed}\r\n onChange={valueChange}\r\n />\r\n );\r\n break;\r\n case \"Btn\":\r\n return <>;\r\n break;\r\n default:\r\n return unknown type: {props.type};\r\n }\r\n };\r\n const valueChange = (e: any) => {\r\n switch (props.type) {\r\n case \"Tx\":\r\n case \"Sig\":\r\n setValue(e.target.value);\r\n break;\r\n default:\r\n console.log(`can't save type: ${props.type}`);\r\n }\r\n };\r\n\r\n const keyPressed = (e: any) => {\r\n if (e.key === \"Enter\" && !isTextArea) {\r\n editClosed();\r\n e.preventDefault();\r\n }\r\n if (e.key === \"Tab\") {\r\n console.log(\"Tab pressed\");\r\n e.preventDefault();\r\n editClosed();\r\n props.tabToNext(props.index);\r\n }\r\n };\r\n\r\n const editClosed = (newValue?: string) => {\r\n let v = newValue ?? value;\r\n if (startingValue !== v) {\r\n props.valueUpdated(props.id, v);\r\n setStartingValue(v);\r\n }\r\n\r\n setEdit(false);\r\n };\r\n\r\n const inputClicked = () => {\r\n if(props.fieldSelected) props.fieldSelected();\r\n if(props.isSetupMode) return;\r\n\r\n if(isSignature && props.fieldMetaData?.AllowOwnerToEdit && !isSigner && props.canEdit && !edit){\r\n setEdit(true);\r\n }\r\n else if (isSignature) {\r\n if (isSigner) {\r\n //do stuff\r\n setEdit(true);\r\n } else if (!props.signer && !value) {\r\n props.requestSign(props.fieldMetaData?.SignatureOwner);\r\n } else if(!props.signer) {\r\n //todo give option to remove signatures... this would need to remove all signature fields from this signer on this file.\r\n }\r\n } else if (!edit && props.canEdit && !props.signer) {\r\n setEdit(true);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n {!props.fieldMetaData?.Hidden && \r\n {(!edit || props.isSetupMode) && <>{displayValue()}}\r\n {!isSignature && edit && !props.isSetupMode && <>{editValue()}}\r\n {isSignature && (isSigner || props.fieldMetaData?.AllowOwnerToEdit) && edit && !props.isSetupMode && <>{editValue()}}\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default PdfInput;\r\n","import React, { useState, useEffect } from \"react\";\r\nimport Icon, { IconType } from \"../../Icon/Icon\";\r\n\r\ninterface IPdfFooterToolbar {\r\n pages: number;\r\n page: number;\r\n zoom: number;\r\n changePage: Function;\r\n changeZoom: Function;\r\n save?: Function;\r\n isSigning?:boolean;\r\n downloadFormUrl?:string;\r\n}\r\n\r\nconst PdfFooterToolbar = (props: IPdfFooterToolbar) => {\r\n const { page, pages, zoom, changePage, changeZoom } = props;\r\n\r\n const nextPage = () => {\r\n page < pages && changePage(page + 1);\r\n };\r\n\r\n const prevPage = () => {\r\n page > 1 && changePage(page - 1);\r\n };\r\n\r\n return (\r\n
\r\n <>\r\n
\r\n \r\n
\r\n {pages > 1 && (\r\n <>\r\n
\r\n
\r\n {page > 1 && (\r\n \r\n \r\n \r\n )}\r\n
\r\n \r\n {page} of {pages}\r\n \r\n
\r\n {page < pages && (\r\n \r\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 PdfFooterToolbar;\r\n","import React, { useEffect, useState, useRef, useCallback } from \"react\";\r\n//import pdf from \"pdfjs\"\r\nimport pdfjsLib from \"pdfjs-dist/build/pdf\";\r\nimport pdfjsWorker from \"pdfjs-dist/build/pdf.worker.entry\";\r\nimport \"./PdfStyle.css\";\r\nimport PdfBasicToolbar from \"./PdfBasicToolbar\";\r\nimport PdfInput from \"./PdfInput\";\r\nimport { isPropertyAccessOrQualifiedName } from \"typescript\";\r\nimport { toast } from \"react-toastify\";\r\nimport PdfFooterToolbar from \"./PdfFooterToolbar\";\r\nimport { IFieldInfo, ISigner } from \"./PdfTypes\";\r\n\r\ninterface IPdfViewerProps {\r\n id: string;\r\n source?: string;\r\n values?: any;\r\n updateValues?: Function;\r\n close?: Function;\r\n fieldMetaData?:IFieldInfo[];\r\n signer?:ISigner;\r\n signRequested?:Function;\r\n downloadFormUrl?:string;\r\n viewOnly?:boolean;\r\n isSetupMode?:boolean;\r\n fieldSelected?:(field: IFieldInfo)=>void;\r\n}\r\n\r\nconst PdfViewer = (props: IPdfViewerProps) => {\r\n const canvasRef = useRef();\r\n pdfjsLib.GlobalWorkerOptions.workerSrc = pdfjsWorker;\r\n\r\n const [pdfRef, setPdfRef] = useState();\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const [scale, setScale] = useState(1.5);\r\n const [zoom, setZoom] = useState(1);\r\n const [pageAnnotations, setAnnotations] = useState([]);\r\n const [formValues, setFormValues] = useState(props.values ?? {});\r\n const [formValuesSet, setFormValuesSet] = useState({});\r\n const [tabIndex, setTabIndex] = useState(0);\r\n const [signer, setSigner] = useState();\r\n const [missingFields, setMissingFields] = useState>({});\r\n \r\n let fmd = {};\r\n if(props.fieldMetaData){\r\n props.fieldMetaData.forEach(x=>{if(x.FormKey) fmd[x.FormKey] = x});\r\n }\r\n\r\n const [fieldsMetaData, setFieldsMetaData] = useState(fmd);\r\n\r\n\r\n useEffect(()=>{\r\n setSigner(props.signer);\r\n }, [props.signer])\r\n\r\n const renderPage = useCallback(\r\n (pageNum, pdf = pdfRef) => {\r\n pdf &&\r\n pdf.getPage(pageNum).then(function (page) {\r\n let viewport = page.getViewport({ scale: scale });\r\n \r\n if(viewport.width > 1000){\r\n let w = viewport.width / scale;\r\n let s = 950 / w;\r\n setScale(scale);\r\n viewport = page.getViewport({ scale: s });\r\n }\r\n\r\n const canvas: any = canvasRef.current;\r\n if (!canvas) {\r\n return;\r\n }\r\n canvas.height = viewport.height;\r\n canvas.width = viewport.width;\r\n const renderContext = {\r\n canvasContext: canvas.getContext(\"2d\"),\r\n viewport: viewport,\r\n };\r\n page.render(renderContext);\r\n page.getAnnotations().then((items) => {\r\n setAnnotations(items);\r\n });\r\n });\r\n },\r\n [pdfRef, props.values]\r\n );\r\n\r\n useEffect(() => {\r\n renderPage(currentPage, pdfRef);\r\n }, [pdfRef, currentPage, renderPage]);\r\n\r\n useEffect(() => {\r\n const fullUrl = props.source ?? \"\";\r\n const loadingTask = pdfjsLib.getDocument(fullUrl);\r\n loadingTask.promise.then(\r\n (loadedPdf) => {\r\n setPdfRef(loadedPdf);\r\n },\r\n function (reason) {\r\n console.error(reason);\r\n }\r\n );\r\n }, [props.source]);\r\n\r\n const inputValueChanged = (id: string, value: string) => {\r\n console.log('Value Set: ',id, value);\r\n let newValues = { ...formValues, [id]: value }; \r\n setFormValues(newValues);\r\n\r\n let valuesSet = {...formValuesSet, [id]: value};\r\n setFormValuesSet(valuesSet);\r\n\r\n };\r\n\r\n const saveClick = (save: boolean, close: boolean) => {\r\n if(props.signer){\r\n //this is to submit signed stuff...\r\n if(save && props.updateValues){\r\n\r\n //was everything signed that needed to be?\r\n let signerFields = props?.fieldMetaData?.filter(x=> x.SignatureOwner === props.signer?.SignatureInfoId && x.Type !== 'Btn' && !x.Hidden) ?? [];\r\n\r\n let missing = signerFields.filter(x=> !formValuesSet[x.FormKey ?? '|#|'] && !formValues[x.FormKey ?? '|#|']);\r\n let missingDic:Record = {};\r\n missing.forEach(x=>{missingDic[x.PublicId]=x});\r\n setMissingFields(missingDic);\r\n\r\n let valuesToSave = {...formValuesSet};\r\n\r\n signerFields.forEach(x=>{\r\n if(!valuesToSave[x.FormKey ?? '|#|']){\r\n valuesToSave[x.FormKey ?? '|#|'] = formValues[x.FormKey ?? '|#|'];\r\n }\r\n });\r\n\r\n if(missing.length > 0){\r\n toast.warning(`You have not filled out / signed all of the information you need to on this page.`);\r\n missing.forEach(x=>{\r\n console.log(`\"\"${x.FormKey}\"\"`, x.Label, x.Type, x.FormKey, x.Hidden);\r\n console.log(x);\r\n console.log(formValuesSet);\r\n console.log(formValues);\r\n })\r\n //if(!window.confirm('Are you sure you want to submit? You have not filled everything out yet.'))\r\n return;\r\n }\r\n\r\n props.updateValues(props.id, valuesToSave, close);\r\n setFormValuesSet({});\r\n return;\r\n }\r\n\r\n if(close && props.close){\r\n if(Object.keys(formValuesSet).length > 0 && !window.confirm(`If you close now your signature will not be saved. Are you sure you want to close?`)){\r\n return;\r\n }\r\n props.close();\r\n }\r\n }\r\n if (save && props.updateValues) {\r\n props.updateValues(props.id, formValues, close);\r\n return;\r\n }\r\n if (close && props.close) {\r\n props.close();\r\n }\r\n };\r\n\r\n const tabToNext = (index) => {\r\n for (let i = index + 1; i < pageAnnotations.length; i++) {\r\n let a = pageAnnotations[i];\r\n //if (a.hasAppearance && a.fieldType === \"Tx\") {\r\n if (a.fieldType === \"Tx\") {\r\n setTabIndex(i);\r\n return;\r\n }\r\n }\r\n if(pdfRef.numPages > currentPage){\r\n setTabIndex(0);\r\n setCurrentPage(currentPage+1);\r\n }\r\n };\r\n\r\n const signingRequested = (signatureOwner:string)=>{\r\n if(props.signRequested)\r\n props.signRequested(signatureOwner);\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n
\r\n
\r\n {\r\n setCurrentPage(n);\r\n }}\r\n zoom={zoom}\r\n changeZoom={(n) => {\r\n setZoom(n);\r\n }}\r\n save={saveClick}\r\n isSigning={signer?true:false}\r\n downloadFormUrl={props.downloadFormUrl}\r\n />\r\n
\r\n \r\n {!props.viewOnly && pageAnnotations.length > 0 &&\r\n pageAnnotations\r\n //.filter((x) => x.hasAppearance && x.fieldType)\r\n .filter((x) => x.fieldType)\r\n .map((x, i) => {\r\n let active = i === tabIndex;\r\n\r\n return (\r\n {\r\n if(props.fieldSelected) props.fieldSelected(x);\r\n }}\r\n />\r\n );\r\n })}\r\n
\r\n \r\n {\r\n setCurrentPage(n);\r\n }}\r\n zoom={zoom}\r\n changeZoom={(n) => {\r\n setZoom(n);\r\n }}\r\n save={saveClick}\r\n isSigning={signer?true:false}\r\n downloadFormUrl={props.downloadFormUrl}\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default PdfViewer;\r\n","import React, { useState, useEffect, useRef } from \"react\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport imgClouds from \"../../Assets/default_thumbnail_image.jpg\";\r\n//import PdfViewer from \"../PdfViewer/PdfViewer\";\r\nimport { toast } from \"react-toastify\";\r\nimport Modal from \"../Modal/Modal\";\r\nimport { stringify } from \"query-string\";\r\nimport './Tools.css';\r\nimport { UiValuePairs } from \"../FormManager/FormManagerTypes\";\r\nimport { Server } from \"../../utils/Server\";\r\nimport PdfViewer from \"./Pdf/PdfViewer\";\r\nimport { connectMap, IState } from \"../../Redux/Redux\";\r\n\r\ninterface IExpandableDivProps {\r\n children?: React.ReactNode;\r\n}\r\n\r\nconst ExpandableDiv = (props: IExpandableDivProps) => {\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n
\r\n {props.children}\r\n
\r\n {open ? (\r\n {\r\n setOpen(false);\r\n }}\r\n className=\"more-button btn btn-default btn-xs\"\r\n >\r\n See less\r\n \r\n ) : (\r\n {\r\n setOpen(true);\r\n }}\r\n className=\"more-button btn btn-default btn-xs\"\r\n >\r\n See more\r\n \r\n )}\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ExpandableDiv;\r\ninterface IViewrContainerProps {\r\n children?: React.ReactNode;\r\n}\r\n\r\nexport const ViewerContainer = (props: IViewrContainerProps) => {};\r\n\r\nexport interface IExpandableImgProps {\r\n imageSrc: IImage[];\r\n name?: string;\r\n onClick?:Function;\r\n}\r\n\r\nexport interface IImage {\r\n path: string;\r\n alt: string;\r\n}\r\n\r\nexport const ExpandableImg = (props: IExpandableImgProps) => {\r\n const [images, setImages] = useState(props.imageSrc ?? []);\r\n const [index, setIndex] = useState(0);\r\n const [open, setOpen] = useState(false);\r\n const [showFull, setShowFull] = useState(false);\r\n const [showBig, setShowBig] = useState(false);\r\n\r\n return (\r\n {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (open) {\r\n setOpen(false);\r\n }\r\n }}\r\n >\r\n {open && (\r\n {\r\n setOpen(false);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {\r\n const i = index + 1;\r\n if (i - 1 >= images.length || !images[i]) {\r\n x.onerror = null; // prevents looping\r\n x.src = imgClouds;\r\n } else {\r\n x.src = images[i].path;\r\n x.alt = images[i].alt;\r\n }\r\n setIndex(i);\r\n }}\r\n onClick={(e) => {\r\n if (!open) {\r\n if(props?.onClick){\r\n props.onClick();\r\n return; \r\n }\r\n setOpen(true);\r\n } else {\r\n console.log(\"stop\");\r\n e.stopPropagation();\r\n }\r\n }}\r\n />\r\n {props?.name && open &&
{props.name}
}\r\n \r\n );\r\n};\r\n\r\ninterface ILinkToView {\r\n type: \"pdf\" | \"video\" | \"image\";\r\n urlSource: string;\r\n name?: string;\r\n fill?: boolean;\r\n addClass?: string;\r\n hasThumbnail?:boolean;\r\n urlThumbnailArgs?:string;\r\n}\r\nexport const LinkToView = (props: ILinkToView) => {\r\n const [open, setOpen] = useState(false);\r\n const [url, setUrl] = useState(\"\");\r\n\r\n useEffect(() => {\r\n let u = props.urlSource;\r\n if (u.startsWith(\"https://localhost\")) u = u.replace(\"https://\", \"http://\");\r\n setUrl(getUrl());\r\n }, []);\r\n\r\n const renderIt = () => {\r\n switch (props.type) {\r\n case \"video\":\r\n return renderVideoClosed();\r\n break;\r\n case \"pdf\":\r\n return renderPdfClosed();\r\n break;\r\n \r\n case \"image\":\r\n return renderImageClosed();\r\n break;\r\n }\r\n };\r\n const renderItOpen = () => {\r\n switch (props.type) {\r\n case \"video\":\r\n return renderVideo();\r\n break;\r\n case \"pdf\":\r\n return renderPdf();\r\n break;\r\n case \"image\":\r\n return renderImage();\r\n break;\r\n }\r\n };\r\n\r\n const getUrl = (thumbnail?:boolean) =>{\r\n\r\n let url = props.urlSource;\r\n if(url.startsWith('http') || url.startsWith('data:')){\r\n\r\n } else {\r\n url = Server.BuildUrl(`../file/x/${url}`);\r\n if(thumbnail){\r\n if(url.indexOf('?') > -1){\r\n url += \"&tn=1\";\r\n } else {\r\n url += \"?tn=1\";\r\n }\r\n\r\n \r\n if(url.indexOf('&x=') === -1) url += \"&x=100\";\r\n\r\n if(props.urlThumbnailArgs)\r\n url += `&${props.urlThumbnailArgs}`;\r\n\r\n }\r\n }\r\n\r\n return url;\r\n }\r\n\r\n const renderPdfClosed = () => {\r\n if(props.hasThumbnail){\r\n let url = getUrl(true);\r\n return (<>\r\n {\r\n setOpen(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n {\r\n setOpen(true);\r\n }}\r\n >\r\n {props.name ?? props.urlSource}\r\n \r\n );\r\n };\r\n \r\n const renderImageClosed = () => {\r\n let url = getUrl(true);\r\n return (<>\r\n {\r\n setOpen(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n );\r\n };\r\n\r\n const renderVideoClosed = () => {\r\n return (\r\n {\r\n setOpen(true);\r\n }}\r\n >\r\n {props.name ?? props.urlSource}\r\n \r\n );\r\n };\r\n\r\n const viewer = (children: React.ReactNode) => {\r\n return (\r\n {\r\n setOpen(false);\r\n e.stopPropagation();\r\n }}\r\n onTouchEnd={(e) => {\r\n setOpen(false);\r\n e.stopPropagation();\r\n }}\r\n >\r\n {\r\n e.stopPropagation();\r\n }}\r\n onTouchEnd={(e) => {\r\n e.stopPropagation();\r\n }}\r\n >\r\n
\r\n
{props.name ?? props.urlSource}
\r\n
\r\n {\r\n setOpen(false);\r\n }}\r\n >\r\n \r\n \r\n
\r\n
\r\n
{children}
\r\n
\r\n
\r\n \r\n {props.type === \"pdf\" && }\r\n {props.type === \"image\" && }\r\n {props.type === \"video\" && }\r\n {/* {props.name ?? props.urlSource} */}\r\n Trouble Viewing? Open in new tab.\r\n \r\n
\r\n \r\n \r\n );\r\n };\r\n\r\n const renderImage = () => {\r\n return (\r\n <>\r\n {viewer(\r\n <>\r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const renderPdf = () => {\r\n return (\r\n <>\r\n {viewer(\r\n <>\r\n {}}\r\n viewOnly={true}\r\n /> \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n const renderVideo = () => {\r\n return (\r\n <>\r\n {viewer(\r\n <>\r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {!open && <>{renderIt()}}\r\n {open && <>{renderItOpen()}}\r\n \r\n );\r\n};\r\n\r\ninterface IImageDetails {\r\n comments?: string;\r\n path: string;\r\n}\r\n\r\ninterface ISlickImage {\r\n image: IImageDetails;\r\n noDefaultImage?: boolean;\r\n}\r\n\r\nexport const SlickImage = (props: ISlickImage) => {\r\n const getImage = () => {\r\n let image = props.image;\r\n\r\n if (image) {\r\n return (\r\n
\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n currentTarget.style.display = \"none\";\r\n }}\r\n />\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n if (props.noDefaultImage) {\r\n currentTarget.style.display = \"none\";\r\n } else {\r\n currentTarget.src = imgClouds;\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 return <>{getImage()};\r\n};\r\n\r\ninterface ISlickImageGroup {\r\n images: IImageDetails[];\r\n onErrorImage?: string;\r\n}\r\nexport const SlickImageGroup = (props: ISlickImageGroup) => {\r\n const [gridSize, setGridSize] = useState(1);\r\n\r\n useEffect(() => {\r\n setGridSize(getGridSize());\r\n }, []);\r\n\r\n const getGridSize = () => {\r\n const size = props.images.length;\r\n if (size > 9) return 5;\r\n if (size > 6) return 4;\r\n if (size > 4) return 3;\r\n // if(size > 2) return 2;\r\n if (size > 1) return 2;\r\n return 0;\r\n };\r\n return (\r\n <>\r\n
\r\n {props.images.map((x, i) => {\r\n return (\r\n {\r\n currentTarget.onerror = null; // prevents looping\r\n if (props.onErrorImage) {\r\n currentTarget.src = props.onErrorImage;\r\n } else {\r\n currentTarget.style.display = \"none\";\r\n }\r\n }}\r\n />\r\n );\r\n })}\r\n
\r\n \r\n );\r\n};\r\n\r\ninterface IEasyImageProps {\r\n alt?: string;\r\n src: string;\r\n missingImagePath?: string;\r\n showCloudsOnError?: boolean;\r\n className?: string;\r\n}\r\n\r\nexport const EasyImage = (props: IEasyImageProps) => {\r\n const [src,setSrc] = useState();\r\n const [hasError, setHasError] = useState(false);\r\n\r\n useEffect(()=>{\r\n setSrc(props.src);\r\n },[props.src]);\r\n\r\n const buildImg=()=>{\r\n return {\r\n const currentTarget = x.currentTarget;\r\n if (\r\n props.missingImagePath &&\r\n props.missingImagePath !== currentTarget.src\r\n ) {\r\n currentTarget.src = props.missingImagePath;\r\n } else if (props.showCloudsOnError) {\r\n currentTarget.src = imgClouds;\r\n } else {\r\n setHasError(true);\r\n //currentTarget.style.display = \"none\";\r\n }\r\n }}\r\n />\r\n }\r\n\r\n return (\r\n <>\r\n {src && <>{!hasError && buildImg()}}\r\n \r\n );\r\n};\r\n\r\n","import React, { useState, useEffect, useCallback, Component, useRef } from \"react\";\r\nimport { Editor as Wysiwyg, SyntheticEvent } from \"react-draft-wysiwyg\";\r\nimport { EditorState, convertToRaw, ContentState, Modifier } from \"draft-js\";\r\nimport \"./react-draft-wysiwyg.css\";\r\nimport draftToHtml from \"draftjs-to-html\";\r\nimport htmlToDraft from \"html-to-draftjs\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport { toast } from \"react-toastify\";\r\nimport { ExpandableImg } from \"../Tools/ExpandableDiv\";\r\nimport { _server } from \"../../utils/Server\";\r\nimport { UiValuePairs } from \"../FormManager/FormManagerTypes\";\r\nimport { AddOnFlexBetween, AddStar } from \"./EditorAddons\";\r\n\r\ninterface IEditorProps {\r\n value: string;\r\n options: \"simple\" | \"full\" |\"staff-simple\";\r\n changed:(value:string)=>void;\r\n height: \"normal\" | \"short\";\r\n onblur?:Function;\r\n onfocus?:Function;\r\n readOnly?:boolean;\r\n hideExtend?:boolean;\r\n}\r\n\r\nconst Editor = (props: IEditorProps) => {\r\n const [editorState, setEditorState] = useState(EditorState.createEmpty());\r\n const [expanded, setExpanded] = useState(false);\r\n\r\n useEffect(() => {\r\n if (props.value) {\r\n let blocksFromHtml = htmlToDraft(props.value);\r\n let { contentBlocks, entityMap } = blocksFromHtml;\r\n let content = ContentState.createFromBlockArray(contentBlocks, entityMap);\r\n setEditorState(EditorState.createWithContent(content));\r\n } else {\r\n setEditorState(EditorState.createEmpty());\r\n }\r\n }, []);\r\n\r\n const onEditorStateChanged = (state) => {\r\n setEditorState(state);\r\n props.changed(toHtml(state));\r\n };\r\n\r\n const onBlur = ()=>{\r\n if(props.onblur) props.onblur();\r\n };\r\n const onFocus = (e:Event|SyntheticEvent)=>{\r\n if(props.onfocus) props.onfocus(e);\r\n };\r\n\r\n\r\n\r\n const okayStyle = (style:string)=>{\r\n if(!style) return true;\r\n if(style.indexOf('bgcolor') == 0) return false;\r\n \r\n if(props.options === \"staff-simple\") return true;\r\n if(style.indexOf('color') == 0) return false;\r\n if(style.indexOf('fontsize') == 0) return false;\r\n if(style.indexOf('fontfamily') == 0) return false;\r\n return true;\r\n };\r\n\r\n const toHtml = (state) => {\r\n let draft = convertToRaw(state.getCurrentContent());\r\n let reload = false;\r\n draft.blocks.forEach(b=>{\r\n \r\n if(b.inlineStyleRanges){\r\n let x = b.inlineStyleRanges.length;\r\n b.inlineStyleRanges = b.inlineStyleRanges.filter(x=>okayStyle(x.style)); \r\n if(x != b.inlineStyleRanges.length) reload = true;\r\n }\r\n });\r\n //console.log(draft);\r\n let html = draftToHtml(draft); \r\n if(reload) {\r\n let blocksFromHtml = htmlToDraft(html);\r\n let { contentBlocks, entityMap } = blocksFromHtml;\r\n let content = ContentState.createFromBlockArray(contentBlocks, entityMap);\r\n setEditorState(EditorState.createWithContent(content));\r\n }\r\n\r\n return html;\r\n };\r\n\r\n const getOptions = () => {\r\n\r\n switch (props.options) {\r\n case \"full\":\r\n return {\r\n options: [\"inline\",\r\n \"blockType\",\r\n //\"fontSize\",\r\n // \"fontFamily\",\r\n \"list\",\r\n \"link\",\r\n \"textAlign\",\r\n //\"image\",\r\n \"colorPicker\",\r\n \"remove\",\r\n \"history\", \r\n ],\r\n inline: {\r\n options: ['bold', 'italic', 'underline'],\r\n },\r\n list: {options: ['unordered', 'ordered'], inDropdown:true},\r\n textAlign: {inDropdown:true, options: ['left', 'center', 'right']},\r\n };\r\n break;\r\n\r\n case \"simple\":\r\n return {\r\n options: [\"inline\",\r\n // \"fontSize\",\r\n \"list\",\r\n \"textAlign\",],\r\n inline: {\r\n options: ['bold', 'italic', 'underline'],\r\n },\r\n fontSize: {\r\n },\r\n list: {options: ['unordered', 'ordered'], inDropdown:false},\r\n textAlign: {inDropdown:false, options: ['left', 'center', 'right']}\r\n };\r\n break;\r\n break;\r\n\r\n case \"staff-simple\":\r\n return {\r\n options: [\"inline\",\r\n \"blockType\",\r\n \"fontSize\",\r\n \"fontFamily\",\r\n \"colorPicker\",\r\n \"link\",\r\n \"list\",\r\n \"textAlign\",],\r\n inline: {\r\n options: ['bold', 'italic', 'underline'],\r\n inDropdown:true,\r\n },\r\n fontSize: {\r\n },\r\n list: {options: ['unordered', 'ordered'], inDropdown:true},\r\n textAlign: {inDropdown:true, options: ['left', 'center', 'right']}, \r\n customElements:{\r\n \r\n }\r\n };\r\n break;\r\n }\r\n };\r\n\r\n const getHeightClass = ()=>{\r\n if(props.height === 'short'){\r\n return 'editor-short';\r\n }\r\n return '';\r\n }\r\n\r\n return (\r\n <>\r\n
{setExpanded(false); e.stopPropagation()}}>\r\n
{e.stopPropagation();}}>\r\n ] : []}\r\n onTab={(event) => {\r\n \r\n }}\r\n onEditorStateChange={onEditorStateChanged}\r\n onBlur={(e)=>{onBlur()}}\r\n onFocus={(e)=>{onFocus(e)}}\r\n readOnly={props.readOnly ?? false}\r\n // toolbarOnFocus={!expanded}\r\n // toolbarHidden={true}\r\n toolbarCustomButtons={\r\n// props.options === \"staff-simple\" ? \r\n// [<>\r\n// {!expanded && !props.hideExtend && {setExpanded(true)}}> Expand}\r\n// {expanded && {setExpanded(false)}}> Collapse}\r\n// ,\r\n// \r\n// ]\r\n// :\r\n [\r\n <>{setExpanded(false)}}> Collapse{setExpanded(true)}}> Expand\r\n ]}\r\n />\r\n {expanded && {setExpanded(false)}}> Collapse}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Editor;\r\n\r\ninterface IFileInfo {\r\n type: \"pdf\" | \"image\" | \"video\" | \"text\" | \"other\";\r\n path: string;\r\n ext: string;\r\n urlSource?: string;\r\n}\r\n\r\ninterface IFilePickerProps{\r\n fileTypes:'image'|'pdf'|'video'|'all';\r\n valueSelected:Function;\r\n}\r\n\r\ninterface IfilePickerResponse {\r\n files:UiValuePairs[];\r\n}\r\n\r\nexport const FilePicker = (props:IFilePickerProps) =>{\r\n const [info, setFileInfo] = useState();\r\n const fileInputRef = useRef(null);\r\n const [showOptions, setShowOptions] = useState();\r\n const [files, setFiles] = useState([]);\r\n\r\n useEffect(()=>{\r\n Init();\r\n },[props.fileTypes]);\r\n\r\n const Init = () =>{\r\n\r\n _server.getApi(`../file/clientImages`)\r\n .then(x=>{\r\n if(x.Success){\r\n setFiles(x.Value.files);\r\n }\r\n else {\r\n toast.warning(x.Message);\r\n }\r\n });\r\n\r\n };\r\n const selectExistingFile= (x:UiValuePairs)=>{\r\n let fi = getFileInfo(x.Value);\r\n if(props.valueSelected) props.valueSelected(x.Value);\r\n setFileInfo(fi ?? undefined);\r\n setShowOptions(false);\r\n }\r\n\r\n const onChangeFile = async(e) => {\r\n if (e.target.files) {\r\n let file = await isFileValid(e.target.files);\r\n\r\n if (!file) {\r\n e.target.files = null;\r\n if (fileInputRef.current) fileInputRef.current.value = \"\";\r\n return;\r\n }\r\n\r\n _server.postApi(`../File/SaveClientFile`,{},[file.file])\r\n .then(x=>{\r\n if(x.Success){\r\n setFiles(x.Value.files);\r\n }\r\n else {\r\n toast.warning(x.Message);\r\n }\r\n });\r\n \r\n setFileInfo(file.fileInfo);\r\n setShowOptions(false);\r\n }\r\n };\r\n\r\n const isFileValid = async (files: FileList) => {\r\n if (!files) return;\r\n let file = files[0];\r\n\r\n let size = file.size / 1024 / 1024;\r\n let name = file.name;\r\n let fileInfo = getFileInfo(file.name);\r\n if (!fileInfo) return null;\r\n\r\n \r\n if (fileInfo?.type === 'video') {\r\n //to big\r\n if (size > 1024) {\r\n toast.warning(`The file \"${name}\" is too large. The max file size is 1 GB`);\r\n return null;\r\n }\r\n } else if (fileInfo?.type === 'pdf') {\r\n //to big\r\n if (size > 50) {\r\n toast.warning(`The file \"${name}\" is too large. The max file size is 50 MB`);\r\n return null;\r\n }\r\n } else if (size > 20) {\r\n //to big\r\n toast.warning(`The file \"${name}\" is too large. The max file size is 20 MB`);\r\n console.log(fileInfo);\r\n return null;\r\n }\r\n \r\n //fileInfo.urlSource = \r\n await readURL(file);\r\n\r\n return { file, fileInfo };\r\n };\r\n\r\n const getFileInfo = (filePath: string | undefined) => {\r\n if (!filePath || typeof(filePath) !== typeof(' ')) return null;\r\n \r\n let ext = filePath.substring(filePath.lastIndexOf(\".\")).toLowerCase();\r\n let isPdf = ext === \".pdf\";\r\n let isImage =\r\n ext === \".jpg\" ||\r\n ext === \".jpeg\" ||\r\n ext === \".png\" ||\r\n ext === \".tif\" ||\r\n ext === \".tiff\" ||\r\n ext === \".gif\";\r\n let isVideo = [\".mov\", \".mp4\"].find((x) => x === ext);\r\n let isText = [\".csv\", \".xml\", \".txt\"].find((x) => x === ext);\r\n let type:\"pdf\" | \"image\" | \"video\" | \"text\" | \"other\" = isPdf\r\n ? \"pdf\"\r\n : isImage\r\n ? \"image\"\r\n : isVideo\r\n ? \"video\"\r\n : isText\r\n ? \"text\"\r\n : \"other\";\r\n\r\n let result: IFileInfo = { type: type, path: filePath, ext: ext };\r\n return result;\r\n };\r\n\r\n const readURL = (file) => {\r\n return new Promise((res, rej) => {\r\n const reader = new FileReader();\r\n reader.onload = (e) => res(e.target?.result);\r\n reader.onerror = (e) => rej(e);\r\n reader.readAsDataURL(file);\r\n });\r\n };\r\n\r\n const nameOrFile = (x: UiValuePairs) => {\r\n let file = getFileInfo(x.Value);\r\n if (file && file.path) {\r\n switch (file.type) {\r\n case \"image\":\r\n return
\r\n
{selectExistingFile(x)}} />
\r\n {x.Name}\r\n
\r\n case \"pdf\":\r\n case \"video\":\r\n case \"text\":\r\n case \"other\":\r\n return
\r\n
onClick={()=>{selectExistingFile(x)}} {x.Name}
\r\n {x.Name}\r\n
\r\n break;\r\n }\r\n }\r\n return {x.Name};\r\n };\r\n\r\n return (<>\r\n
\r\n {files.map((x,i)=>{\r\n return
\r\n {nameOrFile(x)} \r\n
\r\n })}\r\n\r\n \r\n
\r\n

Upload File

\r\n Not finding the file you need, upload one.\r\n
\r\n \r\n
\r\n\r\n\r\n
\r\n );\r\n\r\n}; ","import { useEffect, useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { IReleaseNote, IReleaseNotesResponse } from \"../../Types/basic\";\r\nimport { Server, _server } from \"../../utils/Server\";\r\nimport Icon, { IconType } from \"../../Components/Icon/Icon\";\r\nimport { v4 } from \"uuid\";\r\nimport Modal from \"../../Components/Modal/Modal\";\r\nimport Editor from \"../../Components/Tools/Editor\";\r\nimport OrgPageHeader from \"../../Components/Organizations/OrgPageHeader\";\r\nimport { IState, ReduxMapper } from \"../../Redux/Redux\";\r\n\r\n\r\ninterface IReleaseNotesProps extends IState {}\r\n\r\nconst ReleaseNotes = (props: IReleaseNotesProps) => {\r\n const [showNoteModel, setShowNoteModel] = useState(false);\r\n const [note, setNote] = useState(BlankNote());\r\n const [notes, setNotes] = useState([]);\r\n const [isAdmin, setIsAdmin]= useState(false);\r\n\r\n\r\n useEffect(()=>{\r\n GetNotesFromServer();\r\n },[]);\r\n\r\n function BlankNote(){\r\n return {Id:0,Notes:'',PublicId:v4(),At:''}\r\n };\r\n\r\n const GetNotesFromServer=()=>{\r\n Server.instance.getApi(`../ReleaseNotes/Notes`)\r\n .then(x=>{\r\n if(x.Success){\r\n setNotes(x.Value.Notes);\r\n setIsAdmin(x.Value.IsAdmin);\r\n } else {\r\n toast.error(`${x.Message}`, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\n const SelectNote = (n: IReleaseNote)=>{\r\n setNote(n);\r\n setShowNoteModel(true);\r\n };\r\n\r\n const SaveNote = ()=>{\r\n\r\n if(!note.Notes){\r\n toast.dark('You need to add notes to send up!');\r\n return;\r\n }\r\n\r\n _server.postApi(`../ReleaseNotes/SaveNote`, note)\r\n .then(x=>{\r\n if(x.Success){\r\n setNotes([x.Value,...notes?.filter(n=>n.PublicId !== x.Value.PublicId) ?? []]);\r\n setNote(BlankNote());\r\n setShowNoteModel(false);\r\n } else {\r\n toast.error(`${x.Message}`, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <>\r\n \r\n

Release Notes

\r\n {isAdmin && }\r\n
\r\n We are contining to make the Project App better and better with\r\n inmprovements each week. Checkback here frequently to see what has\r\n changed.\r\n
\r\n\r\n
\r\n {notes.length === 0 && <>No release notes to show at this time}\r\n {notes.map((n,i)=>{\r\n return (
\r\n
\r\n \r\n
{n.At}\r\n {isAdmin && }\r\n
\r\n
);\r\n })}\r\n\r\n
\r\n\r\n {showNoteModel && \r\n\r\n
\r\n

Release Notes.

\r\n Fillout the notes below and click save!\r\n
\r\n
\r\n
\r\n \r\n \r\n {setNote({...note,Notes:x})}} height={\"short\"} />\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 ReduxMapper(ReleaseNotes);\r\n","export interface IWorkbookTemplateConfigDetails {\r\n Name: string;\r\n Id: number;\r\n PublicId: string;\r\n Type: string;\r\n DataPointsSummary: IFormItemSummary[];\r\n ElementsSummary: IFormItemSummary[];\r\n FormGroupsSummary: IFormItemSummary[];\r\n MilestonesSummary: IFormItemSummary[];\r\n PagesSummary: IFormItemSummary[];\r\n SignersSummary: IFormItemSummary[];\r\n DataPointCalculationsSummary: IFormItemSummary[];\r\n NotificationsSummary: IFormItemSummary[];\r\n ThemesSummary: IFormItemSummary[];\r\n FaqsSummary: IFormItemSummary[];\r\n ReviewGroupsSummary: IFormItemSummary[];\r\n Faqs: IFaq[];\r\n ReviewGroups: IReviewGroups[];\r\n DataPoints: IDataPoint[];\r\n Elements: IElement[];\r\n FormGroups: IFormGroup[];\r\n Milestones: IMilestone[];\r\n Pages: IPage[];\r\n Signers: ISigner[];\r\n Themes: ITheme[];\r\n Sets: ISet[];\r\n DataPointCalculations: ICalculation[];\r\n Template: IWorkbookTemplate;\r\n}\r\nexport interface IWorkbookTemplate {\r\n AllowDownloadOfPdf: boolean;\r\n ThumbnailImage: string;\r\n Content: string;\r\n CreatedAtUtc: string;\r\n Description: string;\r\n PublicId: string;\r\n Name: string;\r\n Id: number;\r\n ItemKey: string;\r\n MaxNumberOfOwners: number;\r\n Public: boolean;\r\n HideMessage: boolean;\r\n Preivew: string;\r\n Header: string;\r\n Footer: string;\r\n BackgroundImage: string;\r\n StyleTheme: string;\r\n DoneHeader: string;\r\n DoneFooter: string;\r\n MarkAsDone: boolean;\r\n MarkAsDoneBtnText: string;\r\n MarkAsDoneUndoBtnText: string;\r\n MarkAsDoneDescription: string;\r\n MarkAsDoneDescriptionUndo: string;\r\n MarkAsPublished: boolean;\r\n MarkAsPublishedBtnText: string;\r\n MarkAsPublishedUndoBtnText: string;\r\n MarkAsPublishedDescription: string;\r\n MarkAsPublishedDescriptionUndo: string;\r\n}\r\n\r\nexport interface IFaq {\r\n Answer: string;\r\n SortOrder: number;\r\n Name: string;\r\n Color: string;\r\n PublicId: string;\r\n}\r\n\r\nexport interface IReviewGroups {\r\n Answer: string;\r\n SortOrder: number;\r\n Name: string;\r\n Color: string;\r\n PublicId: string;\r\n}\r\n\r\nexport interface IDataPoint {\r\n _childLink?: IObjectChild;\r\n WorkbookProperType: string;\r\n IsComputed: boolean;\r\n Calculation: string;\r\n Description: string;\r\n IsSet: boolean;\r\n ItemKey: string;\r\n Label: string;\r\n MaxLength: number;\r\n Name: string;\r\n PdfFieldKey?: string;\r\n PdfFieldOffValue?: string;\r\n PdfFileName?: string;\r\n PdfFileNameNoExt?: string;\r\n PublicId: string;\r\n Required: boolean;\r\n RequiredNotEnforced: boolean;\r\n Signer: string[];\r\n SortOrder: number | null | undefined;\r\n Type: string;\r\n WorkbookSpecialType: string;\r\n Options: string[];\r\n ValueOf?: string;\r\n ValueFromOwner?: string;\r\n Placeholder?: string;\r\n RegExFieldValidator?: string;\r\n RegExCustomFieldValidator?: string;\r\n RegExValidationFailedMessage?: string;\r\n}\r\nexport interface ICalculation {\r\n Id: number;\r\n PublicId: string;\r\n ItemKey: string;\r\n CreatedAtUtc: string;\r\n WorkbookTemplateId: number;\r\n RemovedAtUtc?: string;\r\n SortOrder: number;\r\n Name: string;\r\n Color: string;\r\n Description: string;\r\n CompareToValue: string;\r\n Delimiter: string;\r\n BasicFunction: string;\r\n DataPoints: string[];\r\n TrueWhenTrue: string[];\r\n TrueWhenTrueOr: boolean;\r\n TrueWhenFalse: string[];\r\n TrueWhenFalseOr: boolean;\r\n CalculatedValue: string;\r\n}\r\nexport interface IElement extends ICanShowElement {\r\n WorkbookProperType: string;\r\n Color: string;\r\n Content: string;\r\n ContentLabel: string;\r\n ContentFile: string;\r\n Description: string;\r\n ElementType: string;\r\n ItemKey: string;\r\n Name: string;\r\n PublicId: string;\r\n ReadOnly: boolean;\r\n SortOrder: number | null | undefined;\r\n IndentLevel: number;\r\n}\r\nexport interface IFormGroup {\r\n WorkbookProperType: string;\r\n Children: IObjectChild[];\r\n Color: string;\r\n Description: string;\r\n Footer: string;\r\n Header: string;\r\n ItemKey: string;\r\n Name: string;\r\n PublicId: string;\r\n SortOrder: number | null | undefined;\r\n}\r\nexport interface IMilestone {\r\n WorkbookProperType: string;\r\n AfterDate: string;\r\n Approvers: string[];\r\n BeforeDate: string;\r\n Color: string;\r\n Description: string;\r\n Footer: string;\r\n Header: string;\r\n ItemKey: string;\r\n Name: string;\r\n OnNudgeActions: string[];\r\n OnPassedActions: string[];\r\n OnReachActions: string[];\r\n PublicId: string;\r\n SortOrder: number | null | undefined;\r\n SubscriptionsNeeded: string[];\r\n StartPage: string;\r\n Type: 'approval' | 'reach';\r\n}\r\n\r\nexport interface ICanShowElement {\r\n _validPath?: boolean;\r\n showWhenFalse: string[];\r\n showWhenTrue: string[];\r\n showWhenFalseOr: boolean;\r\n showWhenTrueOr: boolean;\r\n}\r\n\r\nexport interface IPage extends ICanShowElement {\r\n _milestonesState: MilestoneStates;\r\n _notYet: boolean;\r\n _milestones: IMilestone[];\r\n WorkbookProperType: string;\r\n ThumbnailPath: string | null | undefined;\r\n ThumbnailImage?: string;\r\n _canAccess?: boolean;\r\n _nextPagesAll?: IPage[];\r\n _missingDataPoints?: IDataPoint[];\r\n _requiredDataPoints?: IDataPoint[];\r\n ChildrenPages: IObjectChild[];\r\n Elements: IObjectChild[];\r\n Color: string;\r\n CreatedAtUtc: string;\r\n Description: string;\r\n ItemKey: string;\r\n Name: string;\r\n ReadOnly: boolean;\r\n PublicId: string;\r\n confirmNextButtonText: string;\r\n nextButtonText: string;\r\n requiresSubscription: string[];\r\n selectPageButtonText: string;\r\n SortOrder: number | null | undefined;\r\n skipToNextWhenNotShown: boolean;\r\n Preview: string;\r\n Footer: string;\r\n Header: string;\r\n Signer: string;\r\n SetId?: string;\r\n _setGroupKey?: string;\r\n BackgroundImage?: string;\r\n StyleTheme?: string;\r\n NextPageIsDonePage?: boolean;\r\n}\r\nexport interface ISigner {\r\n WorkbookProperType: string;\r\n Color: string;\r\n Description: string;\r\n OwnerInstructions: string;\r\n Instructions: string;\r\n IsSignerUser: boolean;\r\n IsSetBasedOnOwner: boolean;\r\n ItemKey: string;\r\n Name: string;\r\n PublicId: string;\r\n WorkbookTemplateSignerRoles: string[];\r\n SortOrder: number | null | undefined;\r\n StartPage: string;\r\n ReviewGroups: string[];\r\n _ownerId?: string;\r\n}\r\nexport interface ITheme {\r\n WorkbookProperType: string;\r\n Color: string;\r\n Css: string;\r\n Description: string;\r\n ItemKey: string;\r\n Name: string;\r\n PublicId: string;\r\n SortOrder: number | null | undefined;\r\n}\r\nexport interface ISet {\r\n WorkbookProperType: string;\r\n Color: string;\r\n Description: string;\r\n ItemKey: string;\r\n Name: string;\r\n PublicId: string;\r\n SortOrder: number | null | undefined;\r\n OwnersAreSet: boolean;\r\n Header: string;\r\n Content: string;\r\n Limit: number;\r\n AddLabel?: string;\r\n EditLabel?: string;\r\n CloseLabel?: string;\r\n SetNameFromDataPoint?: string;\r\n SetDeletedWhenDataPointTrue?: string;\r\n}\r\n\r\nexport interface IFormItemSummary {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\n\r\nexport interface IDataPoints {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\nexport interface IElements {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\nexport interface IFormGroups {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\nexport interface IMilestones {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\nexport interface IPages {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\nexport interface ISigners {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\nexport interface IThemes {\r\n Name?: string;\r\n Id?: string;\r\n Description?: string;\r\n SortBy?: string;\r\n NoEdit?: boolean;\r\n}\r\n\r\nexport interface IWorkbookInfo {\r\n LastPages: string[];\r\n Orgs: string[];\r\n Owners: IOwner[];\r\n SignRequests: ISignRequest[];\r\n ParentPages: string[];\r\n Preview: boolean;\r\n Template: IWorkbookTemplateConfigDetails;\r\n Values: Record>;\r\n VisitedPages: string[];\r\n WorkbookId: string;\r\n WorkbookTemplateId: string;\r\n TemplateDic: Record;\r\n Signer: string;\r\n Name: string;\r\n SignerNotAllowedToSign: boolean;\r\n MarkedDoneAtUtc: string;\r\n PublishedAtUtc: string;\r\n ReadyOnlyAtUtc: string;\r\n}\r\n\r\nexport interface IOwner {\r\n Email: string;\r\n FirstName: string;\r\n JsonDetails: string;\r\n LastName: string;\r\n PhoneDigits: string;\r\n PublicId: string;\r\n Sms: boolean;\r\n Id: number;\r\n PrimaryOwner: boolean;\r\n}\r\n\r\nexport interface ISignRequest {\r\n Id?: number;\r\n PublicId?: string;\r\n SignerId?: string;\r\n OwnerId?: string;\r\n MilestoneId?: string;\r\n WorkbookId?: string;\r\n WorkbookTemplateId?: string;\r\n RequestMessage?: string;\r\n RequestTextMessage?: string;\r\n FirstName?: string;\r\n LastName?: string;\r\n Email?: string;\r\n Phone?: string;\r\n Sms?: boolean;\r\n RequestedAtUtc?: string;\r\n ApprovedAtUtc?: string;\r\n RemovedAtUtc?: string;\r\n MessageCount?: number;\r\n UnreadMessageCount?: number;\r\n Status?: string;\r\n EmailSent?: boolean;\r\n TextSent?: boolean;\r\n DirectSignLink?: string;\r\n RequestSeen?: string;\r\n RequestType?: string;\r\n SignedByUserPublicId?: string;\r\n ReviewGroupRequest?: boolean;\r\n ReviewGroupOrgPublicId?:string;\r\n ReviewGroupTemplatePublicId?:string;\r\n}\r\n\r\nexport interface IWorkbookReviewGroupInfo {\r\n ReviewGroupId: number;\r\n ReviewGroupPublicId: string;\r\n ReviewGroupName: string;\r\n WorkbookId: number;\r\n WorkbookPublicId: string;\r\n OrgId: number;\r\n OrgPublicId: string;\r\n OrgName: string;\r\n}\r\n\r\nexport interface IWorkbookSaveRequest {\r\n WorkbookId?: string;\r\n DataPointId?: string;\r\n Value?: string[];\r\n WorkbookTemplateId: string;\r\n SetId?: string;\r\n Files?: File[];\r\n SetGroupKey?: string;\r\n Done?: boolean;\r\n Publish?: boolean;\r\n Undo?: boolean;\r\n}\r\n\r\nexport interface IWorkbookSaveResponse {\r\n WorkbookId?: string;\r\n DataPointId?: string;\r\n Value?: IDataValue;\r\n WorkbookTemplateId?: string;\r\n SetId?: string;\r\n SetGroupKey?: string;\r\n Files?: File[];\r\n}\r\n\r\nexport interface IDataValue {\r\n Type?: string;\r\n Value: string;\r\n}\r\n\r\nexport interface IObjectChild {\r\n Id: string;\r\n Type: string;\r\n Order: number;\r\n LabelOverride?: string;\r\n}\r\n\r\nexport interface IWorkbookSummary {\r\n Id: number;\r\n PublicId: string;\r\n CreatedAtUtc: string;\r\n RemovedAtUtc: string;\r\n Name: string;\r\n UserId: number;\r\n PrimaryOwner: boolean;\r\n ViewOnly: boolean;\r\n TemplateName: string;\r\n TemplateId: string;\r\n TemplatePublicId: string;\r\n LastModifyAtUtc: string;\r\n NumberOfUpdates: number;\r\n}\r\n\r\nexport interface IWorkbookTemplateSummary {\r\n Id: number;\r\n PublicId: string;\r\n CreatedAtUtc: string;\r\n RemovedAtUtc: string;\r\n Name: string;\r\n Description: string;\r\n MaxNumberOfOwners: number;\r\n MaxNumberOfWorkbooks: number;\r\n ThumbnailImage: string;\r\n WorkbookTemplateSigners: IWorkbookTemplateSigners[];\r\n WorkbookTemplateReviewGroups: IWorkbookTemplateReviewGroups[];\r\n}\r\n\r\nexport interface IWorkbookTemplateSigners {\r\n Color: string;\r\n CreatedAtUtc: string;\r\n Description: string;\r\n Details: Record;\r\n Id: number;\r\n Instructions: string;\r\n IsSetBasedOnOwner: string;\r\n IsSignerUser: string;\r\n ItemKey: string;\r\n JsonDetails: string;\r\n Name: string;\r\n OwnerInstructions: string;\r\n PublicId: string;\r\n RemovedAtUtc: string;\r\n SortOrder: string;\r\n StartPage: string;\r\n ReviewBoards: string[];\r\n WorkbookProperType: string;\r\n WorkbookSignRequests: string;\r\n WorkbookTemplate: string;\r\n WorkbookTemplateId: string;\r\n WorkbookTemplateSignerRoles: string;\r\n}\r\n\r\nexport interface IWorkbookTemplateReviewGroups {\r\n Color: string;\r\n CreatedAtUtc: string;\r\n Description: string;\r\n Details: Record;\r\n Id: number;\r\n PublicId: string;\r\n Name: string;\r\n}\r\n\r\nexport enum MilestoneStates {\r\n NA = 0,\r\n NotStarted = 1,\r\n Started = 2,\r\n Completed = 3,\r\n}\r\n\r\nexport interface IInviteOwnerResponse {\r\n Link: string;\r\n AccountFoundAndLinked: boolean;\r\n Name: string;\r\n}\r\n\r\n\r\nexport interface IOrgSharedInfo {\r\n Name: string;\r\n PublicId: string;\r\n Url: string;\r\n Description:string;\r\n CreatedAtUtc:string;\r\n RemovedAtUtc:string;\r\n}","import { useEffect, useState } from \"react\";\r\n\r\ninterface IInputGradeRangeProps {\r\n onValueChange: Function;\r\n value?: string;\r\n delimiter: string;\r\n forLow?: string;\r\n forHigh?: string;\r\n readOnly?:boolean;\r\n onBlur?:Function;\r\n type?:'full-pipes';\r\n clickToEdit?:boolean;\r\n}\r\n\r\ninterface IGrades {\r\n value: number;\r\n label: string;\r\n}\r\n\r\ninterface IGradeRange {\r\n low:number;\r\n high:number;\r\n}\r\n\r\n\r\n\r\nconst InputGradeRange = (props: IInputGradeRangeProps) => {\r\n const [gradeList, setGradeList] = useState([]);\r\n const [ready, setReady] = useState(false);\r\n const [range,setRange] = useState();\r\n const [gradeRange, setGradeRange] = useState([]);\r\n\r\n useEffect(() => {\r\n let gs: IGrades[] = [];\r\n gs.push({ label: \"Kindergarten\", value: 0 });\r\n gs.push({ label: \"1st\", value: 1 });\r\n gs.push({ label: \"2nd\", value: 2 });\r\n gs.push({ label: \"3th\", value: 3 });\r\n gs.push({ label: \"4th\", value: 4 });\r\n gs.push({ label: \"5th\", value: 5 });\r\n gs.push({ label: \"6th\", value: 6 });\r\n gs.push({ label: \"7th\", value: 7 });\r\n gs.push({ label: \"8th\", value: 8 });\r\n gs.push({ label: \"9th\", value: 9 });\r\n gs.push({ label: \"10th\", value: 10 });\r\n gs.push({ label: \"11th\", value: 11 });\r\n gs.push({ label: \"12th\", value: 12 });\r\n\r\n setGradeList(gs);\r\n\r\n init();\r\n }, [props.value]);\r\n\r\n\r\n\r\n useEffect(()=>{\r\n if(!range) return;\r\n let a:number[] = [];\r\n let g = range.low;\r\n while(g <= range.high){\r\n a.push(g);\r\n g++;\r\n }\r\n setGradeRange(a);\r\n },[range, range?.high, range?.low]);\r\n\r\n const getRange = (value:string|undefined, type:\"full-pipes\"|undefined, delimiter:string|undefined) => {\r\n if(typeof(value) != typeof(' ')) return;\r\n\r\n if(type === 'full-pipes'){\r\n let grades:number[] = value?.split('|').filter(x=>x.length > 0).map(x=>+x) ?? [];\r\n // console.log(value, grades);\r\n // console.log(grades)\r\n return ({low:grades[0] ?? -1, high:grades[grades.length -1] ?? -1})\r\n } else { \r\n let values = value?.split(delimiter ?? '|') ?? ['0','12'];\r\n let low: number = values[0] === 'l' ? -1 : +values[0];\r\n let high: number = values[1] === 'h' ? -1 : +values[1];\r\n return ({low,high});\r\n }\r\n };\r\n\r\n const init = () =>{\r\n setRange(getRange(props.value, props.type, props.delimiter));\r\n setReady(true);\r\n };\r\n\r\n const selectGrade = (g:number) =>{\r\n let r = {...range?? {high:-1, low:-1}};\r\n if(r.high == -1) r.high = g;\r\n if(r.low == -1) r.low = g;\r\n\r\n //is between\r\n if(g>=r.low && g<=r.high){\r\n //between making smaller\r\n r.low = g;\r\n r.high = g; \r\n } else if(g<=r.low){\r\n r.low = g;\r\n } else if (g>=r.high){\r\n r.high = g;\r\n }\r\n setRange(r);\r\n let v = getValue(r);\r\n props.onValueChange(v);\r\n };\r\n\r\n const onBlur = ()=>{\r\n if(props.onBlur) props.onBlur();\r\n };\r\n\r\n const getValue = (r:IGradeRange) =>{\r\n\r\n if(props.type === 'full-pipes'){\r\n let a:string[] = [];\r\n let g = r.low;\r\n while(g <= r.high){\r\n a.push(g+'');\r\n g++;\r\n }\r\n\r\n return a.join('|') +'|';\r\n }\r\n\r\n return `${r.low > -1 ? r.low : \"l\"}|${\r\n r.high > -1 ? r.high : \"h\"\r\n }`;\r\n\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {gradeList && gradeList.length > 0 && <>{gradeList.map((g,i)=>{\r\n let selected = gradeRange.find(y=>y===g.value);\r\n return
{selectGrade(g.value)}} >{g.label}
\r\n })}}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default InputGradeRange;\r\n","import { IEvent } from 'fabric/fabric-impl';\r\nimport { useEffect, useRef, useState } from 'react';\r\nimport { toast } from 'react-toastify';\r\nimport redux, { connectMap, IState } from '../../Redux/Redux';\r\nimport User from '../../Types/User';\r\nimport { Server } from '../../utils/Server';\r\nimport { UiValuePairs } from '../FormManager/FormManagerTypes';\r\nimport Icon, { IconType } from '../Icon/Icon';\r\nimport Modal from '../Modal/Modal';\r\nimport { ExpandableImg, LinkToView } from './ExpandableDiv';\r\n\r\ninterface IFileInfo {\r\n type: 'pdf' | 'image' | 'video' | 'text' | 'other';\r\n path: string;\r\n ext: string;\r\n urlSource?: string;\r\n}\r\n\r\ninterface IReduxFileOptions {\r\n workbookId?: string;\r\n orgId?: string;\r\n}\r\n\r\ninterface IEasyFileInputProps extends IState {\r\n onSelect?: (value: string) => void;\r\n onSelectFile?: (file: File) => void;\r\n htmlId?: string;\r\n exts?: string;\r\n value?: string;\r\n onFocus?: (e: Event | FocusEvent) => void;\r\n dataType?: string;\r\n valueOptions?: UiValuePairs[];\r\n optionsFromRedux?: IReduxFileOptions;\r\n readOnly?: boolean;\r\n}\r\nconst EasyFileInput = (props: IEasyFileInputProps) => {\r\n const [info, setFileInfo] = useState();\r\n const [showInput, setShowInput] = useState(props?.value ? false : true);\r\n const fileInputRef = useRef(null);\r\n const [showOptions, setShowOptions] = useState();\r\n const [loadImagesInReduxCalled, setLoadImagesInReduxCalled] = useState();\r\n\r\n useEffect(() => {\r\n let fileName = props.value ? `${props.value}${props.dataType ? (props.value?.indexOf('?') > -1 ? '&' : '?') : ''}${props.dataType ?? ''}` : undefined;\r\n let fi = getFileInfo(fileName);\r\n if (fi && (!info?.urlSource || (info?.urlSource && fi?.path != info.path))) {\r\n setFileInfo(fi);\r\n return;\r\n }\r\n fi = getFileInfo(props.value ?? '');\r\n if (fi && (!info?.urlSource || (info?.urlSource && fi?.path != info.path))) {\r\n setFileInfo(fi);\r\n return;\r\n }\r\n }, [props.value, props.dataType]);\r\n\r\n useEffect(() => {\r\n if (showOptions && !loadImagesInReduxCalled && props.optionsFromRedux) {\r\n //load images...\r\n redux.loadMyFiles(props.optionsFromRedux.workbookId, props.optionsFromRedux.orgId);\r\n setLoadImagesInReduxCalled(true);\r\n }\r\n }, [showOptions]);\r\n\r\n const selectExistingFile = (x: UiValuePairs) => {\r\n let fi = getFileInfo(x.Value);\r\n if (props.onSelect) props.onSelect(x.Value);\r\n setFileInfo(fi ?? undefined);\r\n setShowOptions(false);\r\n };\r\n\r\n const removeFile = () => {\r\n if (window.confirm(`${props.User?.FirstName ?? 'Hi'}, are you sure you want to remove this file?`)) {\r\n setFileInfo(undefined);\r\n if (props.onSelect) props.onSelect('');\r\n }\r\n };\r\n\r\n const onChangeFile = async (e) => {\r\n if (e.target.files) {\r\n let file = await isFileValid(e.target.files);\r\n\r\n if (!file) {\r\n e.target.files = null;\r\n if (fileInputRef.current) fileInputRef.current.value = '';\r\n return;\r\n }\r\n\r\n setFileInfo(file.fileInfo);\r\n setShowInput(false);\r\n setShowOptions(false);\r\n if (props.onSelectFile) props.onSelectFile(file.file);\r\n }\r\n };\r\n\r\n const isFileValid = async (files: FileList) => {\r\n if (!files) return;\r\n let file = files[0];\r\n\r\n let size = file.size / 1024 / 1024;\r\n let name = file.name;\r\n let fileInfo = getFileInfo(file.name);\r\n if (!fileInfo) return null;\r\n\r\n if (fileInfo?.type === 'video') {\r\n //to big\r\n if (size > 1024) {\r\n toast.warning(`The file \"${name}\" is too large. The max file size is 1 GB`);\r\n return null;\r\n }\r\n } else if (fileInfo?.type === 'pdf') {\r\n //to big\r\n if (size > 50) {\r\n toast.warning(`The file \"${name}\" is too large. The max file size is 50 MB`);\r\n return null;\r\n }\r\n } else if (size > 20) {\r\n //to big\r\n toast.warning(`The file \"${name}\" is too large. The max file size is 20 MB`);\r\n console.log(fileInfo);\r\n return null;\r\n }\r\n\r\n fileInfo.urlSource = await readURL(file);\r\n\r\n return { file, fileInfo };\r\n };\r\n\r\n const getFileInfo = (filePath: string | undefined, fileName?: string) => {\r\n if (!filePath || typeof filePath !== typeof ' ') return null;\r\n console.log(fileName, filePath);\r\n let ext = filePath.substring(filePath.lastIndexOf('.')).toLowerCase();\r\n if (!ext && fileName) {\r\n ext = fileName.substring(fileName.lastIndexOf('.')).toLowerCase();\r\n }\r\n let isPdf = ext === '.pdf';\r\n let isImage = ext === '.jpg' || ext === '.jpeg' || ext === '.png' || ext === '.tif' || ext === '.tiff' || ext === '.gif';\r\n let isVideo = ['.mov', '.mp4'].find((x) => x === ext);\r\n let isText = ['.csv', '.xml', '.txt'].find((x) => x === ext);\r\n let type: 'pdf' | 'image' | 'video' | 'text' | 'other' = isPdf ? 'pdf' : isImage ? 'image' : isVideo ? 'video' : isText ? 'text' : 'other';\r\n\r\n let result: IFileInfo = { type: type, path: filePath, ext: ext };\r\n return result;\r\n };\r\n\r\n const readURL = (file) => {\r\n return new Promise((res, rej) => {\r\n const reader = new FileReader();\r\n reader.onload = (e: ProgressEvent) => res(e.target?.result + '');\r\n reader.onerror = (e) => rej(e);\r\n reader.readAsDataURL(file);\r\n });\r\n };\r\n\r\n const showFile = () => {\r\n let name = props.valueOptions?.find((x) => x.Value === info?.path)?.Name ?? info?.path ?? 'Unknown File Name';\r\n if (info?.type === 'image') {\r\n return (\r\n
\r\n {/* */}\r\n \r\n {!props.readOnly && (\r\n {\r\n setShowOptions(true);\r\n }}>\r\n \r\n \r\n )}\r\n {!props.readOnly && (\r\n {\r\n removeFile();\r\n }}>\r\n \r\n \r\n )}\r\n
\r\n );\r\n } else if (info?.type === 'pdf') {\r\n return (\r\n
\r\n {info.urlSource ? (\r\n <>\r\n {info.path}\r\n {\r\n setShowOptions(true);\r\n }}>\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n {/* */}\r\n \r\n {!props.readOnly && (\r\n {\r\n setShowOptions(true);\r\n }}>\r\n \r\n \r\n )}\r\n {!props.readOnly && (\r\n {\r\n removeFile();\r\n }}>\r\n \r\n \r\n )}\r\n \r\n )}\r\n
\r\n );\r\n } else {\r\n // if (info?.urlSource){\r\n return (\r\n
\r\n {name}\r\n {!props.readOnly && (\r\n {\r\n setShowOptions(true);\r\n }}>\r\n \r\n \r\n )}\r\n {!props.readOnly && (\r\n {\r\n removeFile();\r\n }}>\r\n \r\n \r\n )}\r\n
\r\n );\r\n }\r\n };\r\n\r\n const nameOrFile = (x: UiValuePairs) => {\r\n let file = getFileInfo(x.Value, x.Name);\r\n if (file && file.path) {\r\n switch (file.type) {\r\n case 'image':\r\n return (\r\n
\r\n \r\n
\r\n );\r\n return (\r\n
\r\n
\r\n {\r\n selectExistingFile(x);\r\n }}\r\n />\r\n
\r\n {x.Name}\r\n
\r\n );\r\n case 'pdf':\r\n return (\r\n
\r\n {file.urlSource ? (\r\n <>\r\n {file.path}\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n
\r\n );\r\n // return
\r\n //
{selectExistingFile(x)}} />
\r\n // {x.Name}\r\n //
\r\n //return \r\n case 'video':\r\n return ;\r\n case 'text':\r\n break;\r\n case 'other':\r\n break;\r\n }\r\n }\r\n return {x.Name};\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {showOptions || !info ? (\r\n <>\r\n {!info && (\r\n {\r\n if (props.onFocus) props.onFocus(e);\r\n }}\r\n className=\"btn btn-secondary btn-xs\"\r\n onClick={() => {\r\n setShowOptions(true);\r\n }}>\r\n Select File\r\n \r\n )}\r\n {info && (\r\n
\r\n {info?.path ?? 'Unknown Name'}\r\n {\r\n setShowOptions(false);\r\n }}>\r\n \r\n \r\n
\r\n )}\r\n \r\n ) : (\r\n <>{showFile()}\r\n )}\r\n
\r\n {showOptions && (\r\n \r\n
\r\n {props.valueOptions?.map((x, i) => {\r\n let fi = getFileInfo(x.Value);\r\n return (\r\n
\r\n {nameOrFile(x)}{' '}\r\n {\r\n selectExistingFile(x);\r\n }}>\r\n \r\n \r\n
\r\n );\r\n })}\r\n\r\n {props.optionsFromRedux &&\r\n props.MyFiles?.map((x, i) => {\r\n //let fi = getFileInfo(, x.Name);\r\n return (\r\n
\r\n {nameOrFile({ Name: x.Name, Value: `${x.PublicId}?${x.Extension}` })}{' '}\r\n {\r\n selectExistingFile({ Name: x.Name, Value: `${x.PublicId}?${x.Extension}` });\r\n }}>\r\n \r\n \r\n
\r\n );\r\n })}\r\n\r\n
\r\n

Upload File

\r\n Not finding the file you need, upload one.\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 connectMap()(EasyFileInput);\r\n","import React from 'react'\r\n\r\ninterface LabelHtmlRenderProps {\r\n customText: string;\r\n}\r\n\r\nconst LabelHtmlRender = (props: LabelHtmlRenderProps) => {\r\n return(\r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default LabelHtmlRender","import React, { useState, useRef } from \"react\";\r\nimport Select from \"react-select\";\r\nimport { useEffect } from \"react\";\r\nimport { FieldTypes, FileUploadData, Selectable, UiFormField, UiFormSection } from \"./FormManagerTypes\";\r\nimport Editor from \"../Tools/Editor\";\r\nimport InputGradeRange from \"../Tools/InputGradeRange\";\r\nimport EasyFileInput from \"../Tools/EasyFileInput\";\r\nimport LabelHtmlRender from \"./LabelHtmlRender\";\r\n\r\ninterface FormSectionProps {\r\n section: UiFormSection;\r\n groupIds: Record;\r\n formErrors: Record;\r\n formValues: Record;\r\n handleFieldChange: (key: string, value: string[]) => void;\r\n handleFileChange: (key: string, file?: File) => void;\r\n handleSelectChangeWithCall: (\r\n field: UiFormField,\r\n key: string,\r\n value: string[]\r\n ) => void;\r\n projectFileChanged: Function;\r\n idCalledInApi: string;\r\n targetId?: string;\r\n canSave: boolean;\r\n onInputBlur:(field:UiFormField)=>void;\r\n}\r\n\r\nconst FormSection = (props: FormSectionProps) => {\r\n const [clearImageInfo, setClearImageInfo] = useState(false);\r\n const [fileLoaded, setFileLoaded] = useState(false);\r\n const [removedProjectFiles, setRemovedProjectFiles] = useState([]);\r\n const [addedProjectFiles, setAddedProjectFiles] = useState([]);\r\n\r\n const getReturnByFieldType = (field: UiFormField, confirm: boolean) => {\r\n let jsx: JSX.Element;\r\n let defaultThing: string = \"\";\r\n if (field.DefaultValue) {\r\n defaultThing = field.DefaultValue;\r\n }\r\n if (field.Value?.[0]) {\r\n defaultThing = field.Value[0];\r\n }\r\n\r\n switch (field.Type) {\r\n case FieldTypes.Password:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n value={\r\n confirm ? props.formValues[field.Key + \"confirm\"] ?? ''\r\n : props.formValues[field.Key] ?? field.Value\r\n }\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(\r\n confirm ? field.Key + \"confirm\" : field.Key,\r\n [e.target.value]\r\n )\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n maxLength={field.MaxLength}\r\n />\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n {!confirm && field._errors && field._errors.length > 0 &&
\r\n
    \r\n {field._errors.map((e,i)=>{\r\n return
  • {e}
  • \r\n })}
}\r\n
\r\n );\r\n break;\r\n case FieldTypes.Textbox:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n type=\"text\"\r\n className={`form-control `}\r\n value={\r\n props.formValues[confirm ? field.Key + \"confirm\" : field.Key] ??\r\n field.Value\r\n }\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(\r\n confirm ? field.Key + \"confirm\" : field.Key,\r\n [e.target.value]\r\n )\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n maxLength={field.MaxLength}\r\n />\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.AlertInfo:\r\n jsx = (\r\n \r\n \r\n \r\n );\r\n break;\r\n case FieldTypes.Alert:\r\n jsx = (\r\n \r\n \r\n \r\n );\r\n break;\r\n case FieldTypes.Textarea:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n className={`form-control`}\r\n value={props.formValues[field.Key] ?? field.Value}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n maxLength={field.MaxLength}\r\n rows={3}\r\n >\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.Checkbox:\r\n jsx = (\r\n \r\n \r\n props.handleFieldChange(field.Key, [`${e.target.checked}`])\r\n }\r\n readOnly={field.ReadOnly}\r\n disabled={field.ReadOnly}\r\n required={field.Required}\r\n />\r\n \r\n );\r\n break;\r\n case FieldTypes.DropDown:\r\n let initialValue = props.formValues[field.Key] ?? defaultThing;\r\n jsx = (\r\n \r\n <>\r\n {props.onInputBlur(field)}}\r\n className={`form-control`}\r\n value={initialValue}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleSelectChangeWithCall(field, field.Key, [\r\n e.target.value,\r\n ])\r\n }\r\n required={field.Required}\r\n disabled={field.ReadOnly}\r\n >\r\n \r\n {field?.ValueOptions?.map((opt, i) => {\r\n return (\r\n \r\n );\r\n })}\r\n {field?.NotListSpecial && (\r\n \r\n )}\r\n \r\n \r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n // props.handleFieldChange(field.Key, initialValue) //todo: is this going to cause a loop? Because the change with call will cause re render?\r\n break;\r\n case FieldTypes.PhoneNumber:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n type=\"phone\"\r\n className={`form-control`}\r\n value={props.formValues[field.Key] ?? field.Value}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n maxLength={field.MaxLength}\r\n />\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.Date:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n type=\"date\"\r\n className={`form-control`}\r\n value={props.formValues[field.Key] ?? field.Value}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n />{field.AdditionalInformation &&
}\r\n
\r\n );\r\n break;\r\n case FieldTypes.Picture:\r\n jsx = \"pic\";\r\n break;\r\n case FieldTypes.Header:\r\n jsx = (\r\n \r\n );\r\n break;\r\n case FieldTypes.MultiSelect:\r\n let valueOptions: Selectable[] =\r\n field?.ValueOptions?.map((opt) => {\r\n return { label: opt.Name, value: opt.Value };\r\n }) ?? [];\r\n jsx = (\r\n <>\r\n
\r\n {props.onInputBlur(field)}}\r\n \r\n onChange={(values: any) => {\r\n if (field.ReadOnly) {\r\n return;\r\n }\r\n if(values?.map){\r\n let mappedValues = values.map((x) => x.value as string);\r\n props.handleSelectChangeWithCall(\r\n field,\r\n field.Key,\r\n mappedValues ?? []\r\n );\r\n } else {\r\n props.handleSelectChangeWithCall(\r\n field,\r\n field.Key,\r\n [values?.value]\r\n );\r\n }\r\n }}\r\n value={\r\n props.formValues[field.Key]?.map((x) =>\r\n valueOptions.find((y) => y.value === x)\r\n ) ??\r\n field.Value?.map((x) =>\r\n valueOptions.find((y) => y.value === x)\r\n )\r\n }\r\n options={valueOptions}\r\n className=\"multi-select\"\r\n isMulti={field.MaxLength > 1 ? true:false}\r\n isClearable={true}\r\n menuPlacement={'auto'}\r\n classNamePrefix='cool'\r\n />\r\n {field.NotListSpecial && (\r\n <>\r\n
\r\n \r\n props.handleSelectChangeWithCall(field, field.Key, [\r\n \"\",\r\n ])\r\n }\r\n >\r\n Add a {field.NotListSpecial} that is not listed\r\n \r\n
\r\n \r\n )}\r\n {field.AdditionalInformation &&
}\r\n
\r\n \r\n \r\n );\r\n break;\r\n case FieldTypes.ProfileImage:\r\n jsx = (\r\n \r\n
\r\n input type not supported: profile image\r\n
\r\n
\r\n );\r\n break;\r\n case FieldTypes.ProjectFile:\r\n jsx = (\r\n \r\n input type not supported: project file\r\n \r\n );\r\n break;\r\n case FieldTypes.ReCaptcha:\r\n return (\r\n \r\n input type not supported: recaptcha\r\n \r\n );\r\n break;\r\n case FieldTypes.Color:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n className={`form-control `}\r\n value={\r\n props.formValues[confirm ? field.Key + \"confirm\" : field.Key] ??\r\n field.Value ?? '#ffffff'\r\n }\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(\r\n confirm ? field.Key + \"confirm\" : field.Key,\r\n [e.target.value]\r\n )\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n maxLength={field.MaxLength}\r\n />\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.HTML:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n changed={(v) => {\r\n props.handleFieldChange(field.Key, [v]);\r\n }}\r\n readOnly={field.ReadOnly}\r\n />\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.HTMLFull:\r\n jsx = (\r\n \r\n input type not supported: grapejs\r\n \r\n );\r\n break;\r\n case FieldTypes.DateTime:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n type=\"datetime-local\"\r\n className={`form-control`}\r\n value={props.formValues[field.Key] ?? field.Value}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n />{field.AdditionalInformation &&
}\r\n
\r\n );\r\n break;\r\n case FieldTypes.Time:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n className={`form-control`}\r\n value={props.formValues[field.Key] ?? field.Value}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n />{field.AdditionalInformation &&
}\r\n
\r\n );\r\n break;\r\n case FieldTypes.Number:\r\n jsx = (\r\n \r\n {props.onInputBlur(field)}}\r\n className={`form-control`}\r\n value={props.formValues[field.Key] ?? field.Value}\r\n placeholder={field.Placeholder}\r\n onChange={(e) =>\r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n onWheel={(e)=>{\r\n e.preventDefault(); \r\n e.stopPropagation();\r\n let target:any = e.target;\r\n if(target.blur) target.blur();\r\n return false;\r\n }\r\n }\r\n />\r\n\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.GradeRange:\r\n jsx = (\r\n \r\n {\r\n props.handleFieldChange(field.Key, [v]);\r\n }}\r\n value={GetValue(field) ?? \"\"}\r\n forLow={field.Key}\r\n readOnly={field.ReadOnly}\r\n delimiter={\"|\"}\r\n onBlur={()=>{props.onInputBlur(field)}}\r\n />\r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n );\r\n break;\r\n case FieldTypes.File:\r\n jsx = (\r\n \r\n {\r\n props.handleFileChange(field.Key, f);\r\n }}\r\n onSelect={(v) => {\r\n props.handleFileChange(field.Key);\r\n props.handleFieldChange(field.Key, [v]);\r\n }}\r\n value={GetValue(field) ?? \"\"}\r\n valueOptions={field.ValueOptions ?? undefined}\r\n readOnly={field.ReadOnly}\r\n />{field.AdditionalInformation &&
}\r\n
\r\n );\r\n break;\r\n default:\r\n jsx = (\r\n \r\n \r\n props.handleFieldChange(field.Key, [e.target.value])\r\n }\r\n readOnly={field.ReadOnly}\r\n required={field.Required}\r\n maxLength={field.MaxLength}\r\n />\r\n \r\n );\r\n break;\r\n }\r\n return jsx;\r\n };\r\n\r\n const GetValue = (field: UiFormField): string | null => {\r\n //props.formValues[field.Key] ?? field.Value\r\n let v = props.formValues[field.Key];\r\n if (v && v[0]) return v[0];\r\n else if (field.Value && field.Value[0]) return field.Value[0];\r\n\r\n return null;\r\n };\r\n\r\n const buildLabelAndSearchForLink = (label: string) => {\r\n if (!label || label.length < 10) return label;\r\n let letters = label\r\n .replaceAll(\"{|br|}\", \"
\")\r\n .replaceAll(\"\\r\\n\", \"
\");\r\n\r\n let stack: any = [];\r\n let parts: string[] = [];\r\n let startIndex = 0;\r\n\r\n let makeLink = (value: string) => {\r\n let values = value.split(\"|\");\r\n return `${\r\n values.length > 1 ? values[1] : values[0]\r\n }`;\r\n return value;\r\n };\r\n\r\n for (var i = 0; i < letters.length; i++) {\r\n if (\r\n letters[i] == \"[\" &&\r\n (letters[1 + i] == \"h\" || letters[1 + i] == \"H\") &&\r\n (letters[2 + i] == \"t\" || letters[2 + i] == \"T\") &&\r\n (letters[3 + i] == \"t\" || letters[3 + i] == \"T\") &&\r\n (letters[4 + i] == \"p\" || letters[4 + i] == \"p\")\r\n ) {\r\n var s = i;\r\n var found = false;\r\n for (var e = i + 5; i < letters.length; e++) {\r\n if (letters[e] == \"]\") {\r\n stack.push({ A: s, B: e });\r\n\r\n parts.push(letters.substr(startIndex, i - startIndex));\r\n parts.push(makeLink(letters.substr(i + 1, e - i - 1)));\r\n console.log(parts);\r\n\r\n startIndex = e + 1;\r\n i = e;\r\n found = true;\r\n\r\n break;\r\n }\r\n }\r\n if (!found) break; //Not valid nothing to do here.\r\n }\r\n }\r\n\r\n if (startIndex < letters.length) {\r\n parts.push(letters.substr(startIndex));\r\n }\r\n return parts.join(\" \");\r\n\r\n let arrayOfStrings = label.split(\" \");\r\n let linkified = arrayOfStrings.map((word) => {\r\n if (word.includes(\"http\") && word.includes(\"|\")) {\r\n let brokenOut = word.split(\"|\");\r\n return `${brokenOut[1].slice(\r\n 0,\r\n -1\r\n )}`;\r\n }\r\n return word;\r\n });\r\n return linkified.join(\" \");\r\n };\r\n\r\n const mapFieldsFromForm = (field: UiFormField, i: number) => {\r\n if (!field.Show) return null;\r\n if (field.GroupId) {\r\n if (field.IsParent) {\r\n return (\r\n props.formErrors[x.Key]\r\n )\r\n ? \"has-error\"\r\n : \"\"\r\n }`}\r\n key={`${field.Key}-${i}`}\r\n >\r\n {/*
*/}\r\n \r\n
\r\n {props.groupIds[field.GroupId]?.map((gIdField, j) =>\r\n getReturnByFieldType(gIdField, false)\r\n )}\r\n
\r\n
\r\n );\r\n } else {\r\n return ;\r\n }\r\n }\r\n if (field.Type === FieldTypes.Checkbox) {\r\n return (\r\n \r\n \r\n {getReturnByFieldType(field, false)}\r\n \r\n {field.AdditionalInformation && (\r\n \r\n )}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {field.Type !== FieldTypes.Header && (\r\n \r\n {\r\n \r\n }\r\n {field.Required && \"*\"}\r\n \r\n )}\r\n
\r\n {getReturnByFieldType(field, false)}\r\n
\r\n \r\n {field.Confirm && (\r\n \r\n {field.Type !== FieldTypes.Header && (\r\n \r\n Confirm{\" \"}\r\n {\r\n \r\n }\r\n {field.Required && \"*\"}\r\n \r\n )}\r\n
\r\n {getReturnByFieldType(field, true)}\r\n
\r\n \r\n )}\r\n
\r\n );\r\n };\r\n\r\n return (\r\n
\r\n {(props.section.Label || props.section.HtmlBody) && (\r\n <>\r\n {props.section.Label &&

{props.section.Label}

}\r\n\r\n {props.section.HtmlBody && (\r\n
\r\n )}\r\n
\r\n \r\n )}\r\n
\r\n {props.section.Fields?.map((field, j) => mapFieldsFromForm(field, j))}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default FormSection;\r\n","import React, { useState, useEffect } from 'react';\r\nimport { Tab, TabList, TabPanel, Tabs } from 'react-tabs';\r\nimport { toast } from 'react-toastify';\r\nimport { Server } from '../../utils/Server';\r\nimport Icon, { IconType } from '../Icon/Icon';\r\nimport Modal from '../Modal/Modal';\r\nimport FormManagerLanding from './FormManagerLanding';\r\nimport { IConfigItemChildType, isFieldGood, isFieldRegexSatisfied, isFieldSatisfied, UiFormField, UiFormSection } from './FormManagerTypes';\r\nimport FormSection from './FormSection';\r\n\r\ninterface IFormModalProps {\r\n save: Function;\r\n remove?: Function;\r\n onUpdate?: Function;\r\n canSave: boolean;\r\n canRemove?: boolean;\r\n sections: UiFormSection[];\r\n linkToManager?: string;\r\n linkToManagerText?: string;\r\n submitBtnText?: string;\r\n copyItem?: boolean;\r\n copy?:()=>void;\r\n show: boolean;\r\n setShow: Function;\r\n title: string;\r\n values: Record;\r\n projectFileChanged?: Function;\r\n targetId: string;\r\n modalSize: 'm' | 'l' | 'xl' | 'xxl' | 'full';\r\n modalNoClose?: boolean;\r\n noEdit?: boolean;\r\n itemChildren?: IConfigItemChildType[];\r\n noModal?: boolean;\r\n}\r\n\r\nexport interface IFileUpload {\r\n file: File;\r\n Key: string;\r\n}\r\n\r\nconst FormModal = (props: IFormModalProps) => {\r\n const [formErrors, setFormErrors] = useState>({});\r\n const [values, setValues] = useState>({});\r\n const [sections, setSections] = useState([]);\r\n const [noEdit, setNoEdit] = useState(false);\r\n const [files, setFiles] = useState([]);\r\n\r\n useEffect(() => {\r\n if (props.canSave && props.targetId && +props.targetId > 0 && props.noEdit) setNoEdit(true);\r\n else setNoEdit(false);\r\n }, []);\r\n\r\n useEffect(() => {\r\n let xSections = props.sections;\r\n\r\n xSections.forEach((x) => {\r\n x.Fields.forEach((f) => {\r\n let value = props.values[f.Key];\r\n if (value) {\r\n f.Value = value;\r\n }\r\n });\r\n });\r\n\r\n //setFormErrors({});\r\n setValues(props.values);\r\n setFiles([]);\r\n setSections(xSections);\r\n }, [props.sections, props.values]);\r\n\r\n const projectFileChanged = (x, y, z) => {\r\n if (props.projectFileChanged) props.projectFileChanged(x, y, z);\r\n };\r\n\r\n const handleFieldChange = (key: string, value: string[]) => {\r\n let xValues = { ...values };\r\n xValues[key] = value;\r\n setValues(xValues);\r\n\r\n let xSections = [...sections];\r\n\r\n xSections.forEach((x) => {\r\n x.Fields.forEach((f) => {\r\n if (f.Key === key) {\r\n f.Value = value;\r\n }\r\n });\r\n });\r\n\r\n setSections(xSections);\r\n };\r\n\r\n const fieldOnBlur = (field: UiFormField) => {\r\n let errors = { ...formErrors };\r\n let isValid = isFieldGood(field, values);\r\n errors[field.Key] = isValid.Good ? undefined : field;\r\n\r\n setFormErrors(errors);\r\n };\r\n\r\n const handleFileChange = (key: string, file?: File) => {\r\n let xValues = { ...values };\r\n xValues[key] = [file?.name ?? ''];\r\n setValues(xValues);\r\n\r\n let xSections = [...sections];\r\n\r\n xSections.forEach((x) => {\r\n x.Fields.forEach((f) => {\r\n if (f.Key === key) {\r\n f.Value = [file?.name ?? ''];\r\n }\r\n });\r\n });\r\n\r\n setSections(xSections);\r\n let fs = files.filter((x) => x.Key !== key);\r\n if (file) fs.push({ file: file, Key: key });\r\n setFiles(fs);\r\n };\r\n\r\n const handleSelectChangeWithCall = (field: UiFormField, key: string, value: string[]) => {\r\n console.error('HandleSelectedChangeWithCall -> Not fully implemented.');\r\n handleFieldChange(key, value);\r\n };\r\n\r\n const canSave = () => {\r\n let sections = props.sections;\r\n let missingFields: string[] = [];\r\n let foundProblems = false;\r\n let errors = { ...formErrors };\r\n sections.forEach((sect) => {\r\n sect.Fields.forEach((field) => {\r\n let valid = isFieldGood(field, values);\r\n if (!valid.Good) {\r\n foundProblems = true;\r\n missingFields.push(valid.Message ?? '');\r\n errors[field.Key] = field;\r\n } else {\r\n errors[field.Key] = undefined;\r\n }\r\n });\r\n });\r\n if (foundProblems) {\r\n toast.warning(\r\n <>\r\n Opps, Some fields need some help.\r\n
    \r\n {missingFields.map((x, i) => {\r\n return
  • ;\r\n })}\r\n
\r\n \r\n );\r\n }\r\n console.log('can save');\r\n setFormErrors(errors);\r\n return !foundProblems;\r\n };\r\n\r\n const save = () => {\r\n console.log('saving form modal!');\r\n //form field requirements meet?\r\n let pass = canSave();\r\n if (!pass) {\r\n return;\r\n }\r\n console.log('saving form modal!$$');\r\n if (props.canSave) props.save(values, files);\r\n };\r\n\r\n const copyIt = () => {\r\n if (window.confirm(`Are you sure you want to copy this?`)) {\r\n if (props.copy) props.copy();\r\n }\r\n };\r\n\r\n const remove = () => {\r\n console.log('removing from form modal!');\r\n\r\n if (props.canRemove && props.remove) {\r\n props.remove(values);\r\n }\r\n };\r\n\r\n const mapForms = () => {\r\n if (props.targetId !== '-1' && props.itemChildren?.length) {\r\n return (\r\n \r\n \r\n Main\r\n {props.itemChildren.map((x, i) => {\r\n return {x.Name};\r\n })}\r\n \r\n {mapMainForm()}\r\n {props.itemChildren.map((x, i) => {\r\n return {mapForm(x)};\r\n })}\r\n \r\n );\r\n } else {\r\n return mapMainForm();\r\n }\r\n };\r\n\r\n const mapForm = (child: IConfigItemChildType) => {\r\n return ;\r\n };\r\n\r\n const mapMainForm = () => {\r\n return (\r\n
\r\n {props.sections.map((x, i) => {\r\n if (noEdit) x.Fields?.forEach((f) => (f.ReadOnly = true));\r\n return (\r\n \r\n );\r\n })}\r\n\r\n
\r\n
\r\n
\r\n {props.canSave && !noEdit && (\r\n \r\n )}\r\n {props.canRemove && props.remove && (\r\n \r\n )}\r\n
\r\n
\r\n {props.copyItem && (\r\n \r\n )}\r\n {props.linkToManager && (\r\n \r\n {props.linkToManagerText ? : Manager}\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 {props.show && !props.noModal && (\r\n \r\n {mapForms()}\r\n \r\n )}\r\n {props.show && props.noModal && <>{mapForms()}}\r\n \r\n );\r\n};\r\n\r\nexport default FormModal;\r\n","import { useEffect, useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { _server } from \"../../utils/Server\";\r\nimport { IConfigFormEditorData, IConfigItemChildType, IConfigItemSummary } from \"./FormManagerTypes\";\r\nimport FormModal, { IFileUpload } from \"./FormModal\";\r\n\r\n\r\n\r\ninterface IConfigFromEditorProps {\r\n type:string;\r\n item:IConfigItemSummary;\r\n itemKey:string|number|undefined;\r\n canSave:boolean;\r\n noEdit?:boolean;\r\n onSave?:Function;\r\n onClose?:Function;\r\n onRemove?:Function;\r\n onUpdate?:Function;\r\n title?:string;\r\n itemChildren?:IConfigItemChildType[];\r\n dontRefreshOnSaveOrRemove?:boolean;\r\n managerControler?:string;\r\n noModal?:boolean;\r\n}\r\n\r\nconst ConfigFormEditor = (props:IConfigFromEditorProps)=>{\r\n const[type, setType] = useState(props.type);\r\n const [data, setData] = useState();\r\n const [showEditModal, setShowEditModal] = useState(true);\r\n\r\n\r\n useEffect(()=>{\r\n console.log('Calling init');\r\n init();\r\n },[props.item, props.type]);\r\n\r\n const init = () =>{\r\n console.log('int called');\r\n getForm();\r\n };\r\n\r\n const getForm = (item?:IConfigItemSummary)=>{\r\n _server.postApi(`../${props.managerControler ?? 'FormManager'}/GetForm`, {...(item??props.item),Key:(item?.Key ?? props.itemKey)})\r\n .then(x=>{\r\n if(x.Success){\r\n setData(x.Value);\r\n } else {\r\n toast.error(`${x.Message}`, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\n const copyIt = ()=>{\r\n toast.dark('Copy called.');\r\n _server.postApi(`../${props.managerControler ?? 'FormManager'}/Copy`,props.item)\r\n .then(x=>{\r\n if(x.Success){\r\n toast.success('Copied.');\r\n close();\r\n onUpdate(x.Value);\r\n } else {\r\n toast.error(`${x.Message}`, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\n const save = (fields: Record, files?:IFileUpload[])=>{\r\n let request = {Id:props.item.Id ?? -1, Type:props.type, Values:fields, Key:props.itemKey, SubType:props.item.SubType};\r\n let requestData = JSON.stringify(request);\r\n \r\n let filesToUpload:File[] = [];\r\n files?.forEach(x=>filesToUpload.push(x.file));\r\n\r\n _server.postApi(`../${props.managerControler ?? 'FormManager'}/SaveForm`,{data:requestData}, filesToUpload)\r\n .then(x=>{\r\n if(x.Success && !x.Value.Failed){\r\n toast.success('Saved.');\r\n if(props.onSave) props.onSave(x.Value);\r\n onUpdate(x.Value);\r\n onSave();\r\n \r\n console.log('about to set fields');\r\n let sections = [...data?.Form.Sections ?? []];\r\n let values = data?.Values ?? {};\r\n sections.forEach(s=>{\r\n s.Fields.forEach(f=>{\r\n if(fields[f.Key]){\r\n f.Value = fields[f.Key];\r\n console.log('field set');\r\n values[f.Key] = f.Value;\r\n }\r\n });\r\n });\r\n\r\n if(data) setData({...data, Values:values, Form:{...data.Form,Sections:sections}});\r\n } else if (x.Success) {\r\n toast.warning(x.Value.Message, {autoClose:15000}) ;\r\n }else {\r\n toast.error(`${x.Message}`, {autoClose:false});\r\n }\r\n });\r\n\r\n };\r\n\r\n const onSave = () =>{\r\n //if(!props.dontRefreshOnSaveOrRemove) Redux.dispatch(setReloadStartConfig(true));\r\n };\r\n\r\n const remove = () =>{\r\n if(window.confirm(`Are you sure you want to delete \"${props.item.Name}\"?`)){\r\n _server.postApi(`../${props.managerControler ?? 'FormManager'}/Remove`,props.item)\r\n .then(x=>{\r\n if(x.Success){\r\n toast.success('Removed.');\r\n if(props.onRemove) props.onRemove(props.item);\r\n onUpdate();\r\n\r\n \r\n } else {\r\n toast.error(`${x.Message}`, {autoClose:false});\r\n }\r\n });\r\n }\r\n };\r\n\r\n const close = () =>{\r\n setShowEditModal(false);\r\n\r\n if(props.onClose) props.onClose();\r\n };\r\n\r\n const onUpdate = (item?:IConfigItemSummary) =>{\r\n if(!props.dontRefreshOnSaveOrRemove){\r\n //Redux.dispatch(setReloadStartConfig(true));\r\n console.log('OnPUdateCallingit')\r\n getForm(item);\r\n }\r\n if(props.onUpdate) props.onUpdate(item);\r\n };\r\n\r\n\r\n return (<>\r\n {showEditModal && data && }\r\n );\r\n}\r\n\r\nexport default ConfigFormEditor;","import { useEffect, useState } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { Tab, TabList, TabPanel, Tabs } from \"react-tabs\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Server, ServerResponse, _server } from \"../../utils/Server\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\n//import SetupWizard from \"../SetupWizard\";\r\nimport { ExpandableImg, LinkToView } from \"../Tools/ExpandableDiv\";\r\nimport ConfigFormEditor from \"./ConfigFormEditor\";\r\nimport { IConfigFormData, IConfigItemSummary } from \"./FormManagerTypes\";\r\n\r\ninterface IFormManagerLandingProps extends RouteComponentProps{\r\n type?: string;\r\n subType?:string;\r\n id?:string|number;\r\n expandable?:boolean;\r\n startClosed?:boolean;\r\n onUpdate?:Function;\r\n isChild?:boolean;\r\n managerControler?:string;\r\n}\r\n\r\ninterface MatchParams {\r\n type?: string;\r\n subType?:string;\r\n key?:string;\r\n }\r\n\r\ninterface ISearch {\r\n text?: string;\r\n}\r\n\r\nconst FormManagerLanding = (props: IFormManagerLandingProps) => {\r\n const [type, setType] = useState();\r\n const [subType, setSubType] = useState();\r\n const [key, setKey] = useState();\r\n\r\n const [data, setData] = useState();\r\n const [search, setSearch] = useState({});\r\n const [filteredItems, setFilteredItems] = useState([]);\r\n const [showEditModal, setShowEditModal] = useState(false);\r\n const [selectedItem, setSelectedItem] = useState();\r\n const [expanded, setExpanded] = useState(!(props.startClosed ?? false));\r\n const searchLength = 15;\r\n\r\n\r\n\r\n useEffect(() => {\r\n if(props.type ?? props.match.params.type){\r\n setType(props.type ?? props.match.params.type ?? \"Unknown\");\r\n setSubType(props.subType ?? props.match.params.subType);\r\n setKey(props.id ?? props.match.params.key);\r\n }\r\n }, []);\r\n\r\n useEffect(()=>{\r\n if(type) getFormData();\r\n },[type]);\r\n\r\n useEffect(() => {\r\n // let items = [...(data?.Items ?? [])];\r\n\r\n // items = items.sort((a, b) => {\r\n // return (a.SortBy ?? a.Name).toUpperCase() >\r\n // (b.SortBy ?? b.Name).toUpperCase()\r\n // ? 1\r\n // : -1;\r\n // });\r\n\r\n // setFilteredItems(items);\r\n }, [data?.Items]);\r\n\r\n useEffect(() => {\r\n let text = search.text?.toLowerCase();\r\n if (!data || !data.Items || !text || data.Items.length < searchLength)\r\n setFilteredItems(data?.Items ?? []);\r\n\r\n setFilteredItems(\r\n data?.Items.filter(\r\n (x) => x.Name.toLowerCase().indexOf(text ?? \"\") > -1\r\n ) ?? []\r\n );\r\n }, [search,data?.Items]);\r\n\r\n\r\n const getFormData = ()=>{\r\n _server\r\n .postApi(`../${props.managerControler ?? 'FormManager'}/FormData`, {\r\n type: type,\r\n subType:subType,\r\n key:key\r\n })\r\n .then((x) => {\r\n if (x.Success) {\r\n setData(x.Value);\r\n } else {\r\n toast.error(`${x.Message}`, { autoClose: false });\r\n }\r\n });\r\n };\r\n const save = (fields: Record) => {};\r\n\r\n const onSave = (item: IConfigItemSummary) => {\r\n setSelectedItem(item);\r\n\r\n let items = [...(data?.Items ?? [])];\r\n let found = false;\r\n for (let i = 0; i < items.length; i++) {\r\n if (items[i].Id === item.Id) {\r\n found = true;\r\n items[i] = item;\r\n break;\r\n }\r\n }\r\n\r\n if (!found) items.push(item);\r\n if(data) setData({ ...data, Items: [...items] });\r\n };\r\n\r\n const onRemove = (item: IConfigItemSummary) => {\r\n let items = data?.Items.filter((x) => x.Id !== item.Id) ?? [];\r\n if(data) setData({ ...data, Items: items });\r\n setSelectedItem(undefined);\r\n setShowEditModal(false);\r\n };\r\n\r\n const addNew = () => {\r\n setSelectedItem({ Name: \"\", Id: \"-1\", Type: type, SubType: subType });\r\n setShowEditModal(true);\r\n };\r\n\r\n const manage = (item: IConfigItemSummary) => {\r\n setSelectedItem(item);\r\n setShowEditModal(true);\r\n };\r\n\r\n const addSearchFilter = () => {\r\n if (!data || data?.Items.length < searchLength) {\r\n return <>;\r\n }\r\n return (\r\n <>\r\n
\r\n
\r\n \r\n
\r\n {\r\n setSearch({ ...search, text: e.target.value });\r\n }}\r\n value={search.text}\r\n className=\"form-control\"\r\n autoFocus={true}\r\n />\r\n
\r\n
\r\n showing {filteredItems.length} of {data.Items.length}\r\n
\r\n
\r\n
\r\n \r\n );\r\n };\r\n\r\n const nameOrFile = (x: IConfigItemSummary) => {\r\n let file = Server.FileInfo(x.FilePath);\r\n if (file) {\r\n switch (file.type) {\r\n case \"image\":\r\n return
\r\n
\r\n {x.Name}\r\n
\r\n case \"pdf\":\r\n return \r\n case \"video\":\r\n return \r\n case \"text\":\r\n break;\r\n case \"other\":\r\n break;\r\n }\r\n }\r\n return ;\r\n };\r\n\r\n const mapItems = () => {\r\n if (filteredItems.length === 0) {\r\n return (\r\n <>\r\n
\r\n

No Items

\r\n
\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {data &&\r\n filteredItems.map((x, i) => {\r\n let style: any = {};\r\n if (x.Color) style.borderLeft = `10px solid ${x.Color}`;\r\n return (\r\n
\r\n
\r\n {nameOrFile(x)}\r\n {data.IsStaff && !x.NoEdit && (\r\n
\r\n {\r\n manage(x);\r\n }}\r\n >\r\n Manage\r\n \r\n
\r\n )}\r\n
\r\n {x.Description && (\r\n
\r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n };\r\n\r\n const mapConfigGroups = () => {\r\n if (data?.ConfigGroups && data?.ConfigGroups?.length > 0) {\r\n return (\r\n <>\r\n {data.ConfigGroups.map((x, i) => {\r\n return (\r\n

Not supported

\r\n // \r\n );\r\n })}\r\n \r\n );\r\n }\r\n return <>;\r\n };\r\n\r\n const wrapInTabOrNot = () => {\r\n if (!data) return <>;\r\n\r\n if (data.ConfigGroups && data.ConfigGroups.length > 0) {\r\n return (\r\n <>\r\n
\r\n

{data.Title}

\r\n {props.expandable &&
{setExpanded(!expanded)}}>\r\n {expanded ? <>:\r\n <>\r\n }\r\n
}\r\n
\r\n {expanded && <>\r\n {data.Description && (\r\n \r\n )}\r\n \r\n \r\n Items\r\n Additional Configs\r\n \r\n \r\n
\r\n
\r\n {data.IsStaff && (\r\n
\r\n \r\n Add\r\n \r\n
\r\n )}\r\n
\r\n {addSearchFilter()}\r\n
{mapItems()}
\r\n
\r\n \r\n
\r\n {mapConfigGroups()}\r\n
\r\n
\r\n
\r\n }\r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n
\r\n

{data.Title}

\r\n {data.IsStaff && (\r\n
\r\n \r\n Add\r\n \r\n {props.expandable &&
{setExpanded(!expanded)}}>\r\n {expanded ? <>:\r\n <>\r\n }\r\n
}\r\n
\r\n )}\r\n
\r\n {expanded && <>\r\n {data.Description && (\r\n
\r\n )}\r\n
\r\n {addSearchFilter()}\r\n
{mapItems()}
\r\n }\r\n \r\n );\r\n }\r\n };\r\n\r\n const onUpdate = ()=>{\r\n getFormData();\r\n if(props.onUpdate) props.onUpdate();\r\n };\r\n\r\n return (\r\n
\r\n {data &&
{wrapInTabOrNot()}
}\r\n\r\n {selectedItem && showEditModal && type && (\r\n {\r\n setShowEditModal(false);\r\n }}\r\n onSave={onSave}\r\n onRemove={onRemove}\r\n onUpdate={onUpdate}\r\n dontRefreshOnSaveOrRemove={props.isChild ? true:false}\r\n managerControler={props.managerControler}\r\n />\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default withRouter(FormManagerLanding);\r\n","import { useEffect } from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\nimport redux, { connectMap, IState } from '../../Redux/Redux';\r\nimport { Server, _server } from '../../utils/Server';\r\nimport { FormatDate } from '../../utils/Tools';\r\nimport AppName from '../BasicApp/AppName';\r\nimport Icon, { IconType } from '../../Components/Icon/Icon';\r\nimport { IWorkbookSaveRequest, IWorkbookSummary, IWorkbookTemplateSummary } from '../../Components/WorkbookTemplate/WorkbookTypes';\r\nimport OrgPageHeader from '../../Components/Organizations/OrgPageHeader';\r\n\r\nexport interface IMine {\r\n MyWorkbooks: IWorkbookSummary[];\r\n Templates: IWorkbookTemplateSummary[];\r\n}\r\n\r\ninterface IUserLandingProps extends RouteComponentProps, IState {}\r\n\r\nconst UserLanding = (props: IUserLandingProps) => {\r\n useEffect(() => {\r\n _server.getApi(`../WorkbookApi/Mine`).then((x) => {\r\n if (x.Success) {\r\n redux.setUsersWorkbooks(x.Value.MyWorkbooks);\r\n redux.setTemplates(x.Value.Templates);\r\n } else {\r\n toast.error(x.Message, { autoClose: false });\r\n }\r\n });\r\n }, [props.User]);\r\n\r\n const onOpen = (x: IWorkbookSummary) => {\r\n let url = `/workbook/${x.PublicId}`;\r\n props.history.push(url);\r\n };\r\n\r\n const onEdit = (x: IWorkbookSummary, e: any) => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n let url = `/workbook/start/${x.PublicId}`;\r\n props.history.push(url);\r\n };\r\n\r\n const startNew = (template: IWorkbookTemplateSummary) => {\r\n if (\r\n template.MaxNumberOfWorkbooks > 0 &&\r\n props.User &&\r\n (props.UsersWorkbooks?.filter((x) => !x.RemovedAtUtc && x.TemplatePublicId === template.PublicId).length ?? 0) >= template.MaxNumberOfWorkbooks\r\n ) {\r\n toast.dark(`${props.User.FirstName}, sorry you've reached your limit of these templates.`);\r\n return;\r\n }\r\n\r\n let url = `/workbook/new/${template.PublicId}`;\r\n props.history.push(url);\r\n\r\n return;\r\n };\r\n\r\n return (\r\n <>\r\n {!(props.OrgInfo ?? false) && (\r\n <>\r\n
\r\n
\r\n

Hold On!

\r\n We're getting things ready.\r\n
\r\n
\r\n
\r\n \r\n )}\r\n \r\n {props.OrgInfo && }\r\n\r\n {props.OrgInfo && props.OrgInfo?.SubOrgHeader &&
}\r\n {props.OrgInfo && props.OrgInfo?.Header &&
}\r\n \r\n \r\n { props.OrgInfo && !(props.OrgInfo.Header) && (\r\n <>\r\n
\r\n
\r\n

Welcome to OrkBoo

\r\n Orkboo at it's simplest form is digital workbook. In fact the name OrkBoo is just everthing in side of wOrkBook.\r\n
\r\n Below are listed some workbooks tiles. Click a workbook tile to learn more about that workbook. To start a new workbook or to continue an existing workbook you have. You'll need to sign in.\r\n
\r\n
\r\n
\r\n \r\n )}\r\n\r\n\r\n
\r\n {props.UsersWorkbooks &&\r\n props.UsersWorkbooks.filter((x) => !x.RemovedAtUtc).map((x, i) => {\r\n let template = props.WorkbookTemplates?.find((t) => t.PublicId === x.TemplatePublicId);\r\n //return
{onOpen(x)}} onMouseUp={()=>{onOpen(x)}}>\r\n return (\r\n
{}} onMouseUp={() => {}}>\r\n {\r\n onEdit(x, e);\r\n }}\r\n onMouseUp={(e) => {\r\n onEdit(x, e);\r\n }}>\r\n \r\n
\r\n\r\n {template?.ThumbnailImage && (\r\n
\r\n \r\n
\r\n )}\r\n

{x.Name}

\r\n {/*

{x.TemplateName}

*/}\r\n
Last Update: {FormatDate(x.LastModifyAtUtc)}
\r\n
\r\n {\r\n onOpen(x);\r\n }}>\r\n Open\r\n \r\n
\r\n {x.RemovedAtUtc &&
Deleted at {FormatDate(x.RemovedAtUtc)}
}\r\n
\r\n );\r\n })}\r\n {props.WorkbookTemplates && props.WorkbookTemplates.length > 0 &&\r\n props.WorkbookTemplates.map((x, i) => {\r\n //return
{startNew(x)}} onMouseUp={()=>{startNew(x)}}>\r\n return (\r\n
{}} onMouseUp={() => {}}>\r\n {x.ThumbnailImage && (\r\n
\r\n \r\n
\r\n )}\r\n {/*
New / Click to Start
*/}\r\n {/*

New

*/}\r\n

{x.Name}

\r\n {x.Description &&
}\r\n
\r\n {\r\n startNew(x);\r\n }}>\r\n Start Now\r\n \r\n
\r\n
\r\n );\r\n })}\r\n
\r\n\r\n {props.OrgInfo && props.OrgInfo?.Footer &&
}\r\n {props.OrgInfo && props.OrgInfo.MissionStatement &&
}\r\n \r\n );\r\n};\r\n\r\nexport default connectMap()(withRouter(UserLanding));\r\n","import { useState } from 'react';\r\nimport OrgPageHeader from '../../Components/Organizations/OrgPageHeader';\r\nimport { IState, ReduxMapper } from '../../Redux/Redux';\r\n\r\ninterface IProps extends IState {}\r\n\r\nconst PrivacyPolicy = (props: IProps) => {\r\n const [name, setName] = useState('zFairs Project App');\r\n\r\n return (\r\n <>\r\n \r\n
\r\n

Privacy Policy

\r\n
\r\n

\r\n Protecting your private information is our priority. This Statement of Privacy applies to {name}, and Illuminating Software llc and governs data collection and usage. For the purposes of\r\n this Privacy Policy, unless otherwise noted, all references to Illuminating Software include project.zfairs.com. The Illuminating Software llc application is a EdTech application. By using\r\n the Illuminating Software llc application, you consent to the data practices described in this statement.\r\n

\r\n

\r\n

Collection of your Personal Information
\r\n In order to better provide you with products and services offered, Illuminating Software llc may collect personally identifiable information, such as your:\r\n
    \r\n
  • First and Last Name
  • \r\n
  • E-mail Address
  • \r\n
  • Phone Number
  • \r\n
  • Postal Code
  • \r\n
\r\n    \r\n

\r\n

\r\n Illuminating Software llc may also collect anonymous demographic information, which is not unique to you, such as your:  \r\n

    \r\n
  • Age
  • \r\n
  • Gender
  • \r\n
  • Race
  • \r\n
  • Postal Code
  • \r\n
  • IP Address
  • \r\n
\r\n    \r\n

\r\n

\r\n We do not collect any personal information about you unless you voluntarily provide it to us. However, you may be required to provide certain personal information to us when you elect to use\r\n certain products or services. These may include: (a) registering for an account; (b) entering a sweepstakes or contest sponsored by us or one of our partners; (c) signing up for special\r\n offers from selected third parties; (d) sending us an email message; (e) submitting your credit card or other payment information when ordering and purchasing products and services. To wit,\r\n we will use your information for, but not limited to, communicating with you in relation to services and/or products you have requested from us. We also may gather additional personal or\r\n non-personal information in the future.    \r\n

\r\n

\r\n

Use of your Personal Information
\r\n Illuminating Software llc collects and uses your personal information to operate and deliver the services you have requested.  \r\n

\r\n

\r\n Illuminating Software llc may also use your personally identifiable information to inform you of other products or services available from Illuminating Software llc and its affiliates.    \r\n

\r\n

\r\n

Sharing Information with Third Parties
\r\n Illuminating Software llc does not sell, rent or lease its customer lists to third parties.    \r\n

\r\n

\r\n Illuminating Software llc may share data with trusted partners to help perform statistical analysis, send you email or postal mail, provide customer support, or arrange for deliveries. All\r\n such third parties are prohibited from using your personal information except to provide these services to Illuminating Software, and they are required to maintain the confidentiality of\r\n your information.    \r\n

\r\n

\r\n Illuminating Software llc may disclose your personal information, without notice, if required to do so by law or in the good faith belief that such action is necessary to: (a) conform to the\r\n edicts of the law or comply with legal process served on Illuminating Software llc or the site; (b) protect and defend the rights or property of Illuminating Software; and/or (c) act under\r\n exigent circumstances to protect the personal safety of users of Illuminating Software, or the public.    \r\n

\r\n

\r\n

Right to Deletion
\r\n Subject to certain exceptions set out below, on receipt of a verifiable request from you, we will:\r\n
    \r\n
  • Delete your personal information from our records; and
  • \r\n
  • Direct any service providers to delete your personal information from their records.
  • \r\n
\r\n    \r\n

\r\n

\r\n Please note that we may not be able to comply with requests to delete your personal information if it is necessary to:\r\n

    \r\n
  • \r\n Complete the transaction for which the personal information was collected, fulfill the terms of a written warranty or product recall conducted in accordance with federal law, provide a\r\n good or service requested by you, or reasonably anticipated within the context of our ongoing business relationship with you, or otherwise perform a contract between you and us;\r\n
  • \r\n
  • Detect security incidents, protect against malicious, deceptive, fraudulent, or illegal activity; or prosecute those responsible for that activity;
  • \r\n
  • Debug to identify and repair errors that impair existing intended functionality;
  • \r\n
  • Exercise free speech, ensure the right of another consumer to exercise his or her right of free speech, or exercise another right provided for by law;
  • \r\n
  • Comply with the California Electronic Communications Privacy Act;
  • \r\n
  • \r\n Engage in public or peer-reviewed scientific, historical, or statistical research in the public interest that adheres to all other applicable ethics and privacy laws, when our deletion\r\n of the information is likely to render impossible or seriously impair the achievement of such research, provided we have obtained your informed consent;\r\n
  • \r\n
  • Enable solely internal uses that are reasonably aligned with your expectations based on your relationship with us;
  • \r\n
  • Comply with an existing legal obligation; or
  • \r\n
  • Otherwise use your personal information, internally, in a lawful manner that is compatible with the context in which you provided the information.
  • \r\n   \r\n
\r\n

\r\n

\r\n

Children Under Thirteen
\r\n Illuminating Software llc collects personally identifiable information from children under the age of thirteen. Illuminating Software collects this information for the following reason(s):\r\n Using the app and Non-Personally Identifiable Statistics.    \r\n

\r\n

\r\n COPPA the Children’s Online Privacy Protection Act protects the privacy rights of children under the age of 13 and FERPA Family Educational Rights and Privacy Act are core tenets of\r\n Illuminating Software LLC privacy policy. Illuminating Software LLC is committed to COPPA and FERPA compliance with a safe, secure, and private online experience for all users. The\r\n sponsoring organization (client) is responsible to adhere to COPPA, FERPA, and all other federal and state privacy and data protection laws.\r\n

\r\n

Illuminating Software LLC stores all data within the continental United States in our secure geo redundant data centers. Our data centers are SOC II and PCI compliant.

\r\n

\r\n If you are under the age of thirteen, you must ask your parent or guardian for permission to use this application. If you are a parent and you have questions regarding our data collection\r\n practices, please contact us using the information provided at the end of this Statement of Privacy.\r\n

\r\n

\r\n

E-mail Communications
\r\n From time to time, Illuminating Software llc may contact you via email for the purpose of providing announcements, promotional offers, alerts, confirmations, surveys, and/or other general\r\n communication.    \r\n

\r\n

\r\n

Changes to this Statement
\r\n Illuminating Software llc reserves the right to change this Privacy Policy from time to time. We will notify you about significant changes in the way we treat personal information by sending\r\n a notice to the primary email address specified in your account, by placing a prominent notice on our application, and/or by updating any privacy information. Your continued use of the\r\n application and/or Services available after such modifications will constitute your: (a) acknowledgment of the modified Privacy Policy; and (b) agreement to abide and be bound by that\r\n Policy.    \r\n

\r\n

\r\n

Contact Information
\r\n Illuminating Software llc welcomes your questions or comments regarding this Statement of Privacy. If you believe that Illuminating Software has not adhered to this Statement, please contact\r\n Illuminating Software at:    \r\n

\r\n

\r\n Illuminating Software llc\r\n
\r\n Email Address: info@ISEF.app
\r\n Telephone number: 800-252-0903
 \r\n

\r\n

Effective as of August 22, 2023   

\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ReduxMapper(PrivacyPolicy);\r\n","import { useEffect } from \"react\";\r\nimport { connectMap, IState } from \"../../../Redux/Redux\";\r\nimport FormManagerLanding from \"../../FormManager/FormManagerLanding\";\r\n\r\ninterface IOrganizationManagerProps extends IState{\r\n\r\n}\r\n\r\nconst OrganizationManager = (props:IOrganizationManagerProps) =>{\r\n \r\n useEffect(()=>{},[]);\r\n\r\n const init = ()=>{\r\n\r\n };\r\n return (<>\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\n\r\nexport default connectMap()(OrganizationManager);","import React, { useState } from 'react';\r\nimport Form from 'react-bootstrap/Form';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\n\r\nimport { Server } from '../../utils/Server';\r\nimport Icon, { IconType } from '../Icon/Icon';\r\n\r\n\r\nconst Login = (props: RouteComponentProps) => {\r\n const [email, setEmail] = useState('');\r\n const [password, setPassword] = useState('');\r\n\r\n const handleSubmit = async () => {\r\n\r\n let rqst = {\r\n email,\r\n password\r\n }\r\n\r\n if(!rqst.email || rqst.email.indexOf('@') === -1 || rqst.email.indexOf('.') === -1) {\r\n toast.warning(`You will need to provide your email to sign-in.`);\r\n return;\r\n }\r\n else if (!rqst.password){\r\n toast.warning(`You will need to provide your password.`);\r\n return;\r\n }\r\n\r\n const _server = new Server(true);\r\n // ../User/Login\r\n let response = await _server.postApi('../UserApi/Login', rqst)\r\n if (response.Success) {\r\n //TODO: do we want to store the user data anywhere? nothing comes back from this call, if we do.\r\n _server.loggedIn();\r\n console.log('pushing to landing now');\r\n props.history.push('/app/landing');\r\n } else {\r\n toast.error(response.Message);\r\n }\r\n \r\n\r\n };\r\n\r\n const submitOnEnter = (e)=>{\r\n if(e.key === \"Enter\"){\r\n handleSubmit();\r\n } console.log(e);\r\n };\r\n\r\n return (\r\n <>\r\n

Log in

\r\n
\r\n\r\n
\r\n \r\n { setEmail(e.target.value); }}>\r\n
\r\n
\r\n \r\n {submitOnEnter(e)}} onChange={(e) => { setPassword(e.target.value); }}>\r\n {/* Must be aleast 8 charaters and include numbers, upper and lower case letters, and a special charater. */}\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n {/* help link goes here */}\r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default withRouter(Login); ","import { useEffect, useState } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { toast } from \"react-toastify\";\r\nimport { Server } from \"../../utils/Server\";\r\nimport { isValidEmail, isValidPassword, isValidPhone } from \"../../utils/Tools\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport Login from \"./Login\";\r\n\r\ninterface IHelpProps extends MatchProps {\r\n\r\n}\r\n\r\ninterface MatchProps extends RouteComponentProps{\r\n \r\n}\r\n\r\nconst Help = (props:IHelpProps)=>{\r\n const [formData, setFormData] = useState({});\r\n const [showRecoverySent, setShowRecoverySent] = useState(false);\r\n const [showChangePassword, setShowChangePassword] = useState(false);\r\n const [showSignIn, setShowSignIn] = useState(false);\r\n\r\n\r\n useEffect(()=>{\r\n let code = Server.GetQueryStringValue(\"code\");\r\n if(code) {\r\n Server.instance.postApi(`../userApi/RecoverUserVerifyCode`, {fullCode:code})\r\n .then(x=>{\r\n if(x.Success){\r\n setShowRecoverySent(true);\r\n setShowChangePassword(true);\r\n }\r\n else {\r\n toast.error(`${x.Message ?? 'Oh no! Something went wrong.' }`, {autoClose:false});\r\n }\r\n });\r\n }\r\n },[]);\r\n\r\n const SendRecoveryEmail = () =>{\r\n let request = {email:formData.email,phone:formData.phone};\r\n if(!isValidEmail(request.email) && !isValidPhone(request.phone)){\r\n if(!isValidEmail(request.email)) toast.warning(`The email you provided is not valid.`);\r\n if(!isValidPhone(request.phone)) toast.warning(`The mobile phone number you provided is not valid.`);\r\n return;\r\n }\r\n\r\n Server.instance.postApi(`../userApi/RecoverUser`, request)\r\n .then(x=>{\r\n if(x.Success){\r\n setShowRecoverySent(true);\r\n }\r\n else {\r\n toast.error(`${x.Message ?? 'Oh no! Something went wrong.' }`, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\nconst TryRecoveryCode = ()=>{\r\n let request = {shortCode:formData.shortCode, fullCode:Server.GetQueryStringValue(\"code\")};\r\n if(!request.shortCode && !request.fullCode){\r\n toast.error(`The code you provided is not valid`, {autoClose:15000});\r\n return;\r\n }\r\n Server.instance.postApi(`../userApi/RecoverUserVerifyCode`, request)\r\n .then(x=>{\r\n if(x.Success){\r\n setShowChangePassword(true);\r\n }\r\n else {\r\n toast.error(`${x.Message ?? 'Oh no! Something went wrong.' }`, {autoClose:false});\r\n }\r\n });\r\n};\r\n\r\n\r\n\r\nconst ChangePasswords = ()=>{\r\n let request = {password:formData.password, password2:formData.password2};\r\n let errors = [];\r\n if(!isValidPassword(request.password, request.password2, errors, {})){\r\n toast.error(errors.join(), {autoClose:15000});\r\n return;\r\n }\r\n Server.instance.postApi(`../userApi/ChangePassword`, request)\r\n .then(x=>{\r\n if(x.Success){\r\n setShowSignIn(true);\r\n }\r\n else {\r\n toast.error(`${x.Message ?? 'Oh no! Something went wrong.' }`, {autoClose:false});\r\n }\r\n });\r\n};\r\n\r\n return (\r\n <>\r\n {!showRecoverySent && !showChangePassword && !showSignIn &&
\r\n

Sign-in Help

\r\n

We can help you recover your account, by using your email or phone number. We will send you a message or a code you can enter to then reset your password.

\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, email: e.target.value });\r\n }}\r\n >\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, phone: e.target.value });\r\n }}\r\n >\r\n
\r\n \r\n
\r\n
\r\n \r\n Recover Sign-in\r\n \r\n props.history.push(\"/app/user/login\")}\r\n >\r\n Sign-in\r\n \r\n
\r\n {/* help link goes here */}\r\n
\r\n
}\r\n\r\n {showRecoverySent && !showChangePassword && !showSignIn &&
\r\n

Recoving Message Sent

\r\n We've sent a recover message you should have it soon. \r\n {formData.email && <>Please check your spam or juck mail folders, if you do not see the message.}\r\n
\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, shortCode: e.target.value });\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n Unlock\r\n \r\n
\r\n
\r\n
\r\n
}\r\n \r\n {showRecoverySent && showChangePassword && !showSignIn &&
\r\n

Change Password

\r\n Now it's time to set a new password so you can sign-in. \r\n
\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, password: e.target.value });\r\n }}\r\n >\r\n
\r\n
\r\n \r\n {\r\n setFormData({ ...formData, password2: e.target.value });\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n \r\n Set Password\r\n \r\n
\r\n
\r\n
\r\n
}\r\n \r\n {showRecoverySent && showChangePassword && showSignIn &&
\r\n

Sign-In

\r\n Now it's time to sign in with your new password. \r\n
\r\n
\r\n \r\n
\r\n
}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default withRouter(Help);\r\n\r\n\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Card from \"react-bootstrap/Card\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { toast } from \"react-toastify\";\r\nimport { checkEmailValid, isValidEmail, isValidPhone } from \"../../utils/Tools\";\r\nimport { Server, _server } from \"../../utils/Server\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport Login from \"./Login\";\r\nimport ConfigFormEditor from \"../FormManager/ConfigFormEditor\";\r\nimport redux, { connectMap, IState, ReduxMapper } from \"../../Redux/Redux\";\r\nimport { IConfigItemSummary } from \"../FormManager/FormManagerTypes\";\r\nimport Users from \"./Users\";import OrgPageHeader from \"../../Components/Organizations/OrgPageHeader\";\r\n\r\ninterface IProfileProps extends IState {\r\n\r\n}\r\n\r\nconst Profile = (props: IProfileProps) => {\r\n\r\n\r\n const RegisterUpdated = (user:IConfigItemSummary)=>{\r\n\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {props.User &&
\r\n
\r\n {\r\n }}\r\n onSave={RegisterUpdated}\r\n onRemove={RegisterUpdated}\r\n onUpdate={RegisterUpdated}\r\n managerControler={`NonAdminDataManager`}\r\n noModal={true}\r\n />\r\n
\r\n
}\r\n \r\n );\r\n};\r\n\r\nexport default ReduxMapper(Profile);\r\n","import React, { useEffect, useState } from \"react\";\r\nimport Card from \"react-bootstrap/Card\";\r\nimport Form from \"react-bootstrap/Form\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { toast } from \"react-toastify\";\r\nimport { checkEmailValid, isValidEmail, isValidPhone } from \"../../utils/Tools\";\r\nimport { Server, _server } from \"../../utils/Server\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport Login from \"./Login\";\r\nimport ConfigFormEditor from \"../FormManager/ConfigFormEditor\";\r\nimport redux from \"../../Redux/Redux\";\r\nimport { IConfigItemSummary } from \"../FormManager/FormManagerTypes\";\r\n\r\nconst RegisterUser = (props: RouteComponentProps) => {\r\n const [formErrors, setFormErrros] = useState({});\r\n const [formData, setFormData] = useState({});\r\n // const [email, setEmail] = useState('');\r\n // const [firstName, setFirstName] = useState('');\r\n // const [lastName, setLastName] = useState('');\r\n // const [password, setPassword] = useState('');\r\n // const [password2, setPassword2] = useState('');\r\n // const [acceptTerms, setAcceptTerms] = useState(false);\r\n const [showSignIn, setShowSignIn] = useState(false);\r\n const [showErrors, setShowErrors] = useState(false);\r\n const [registered, setRegistered] = useState();\r\n\r\n useEffect(()=>{\r\n ValidateForm(!showErrors);\r\n },[formData]);\r\n\r\n const handleSubmit = () => {\r\n let rqst = {\r\n Email: formData.email,\r\n FirstName: formData.firstName,\r\n LastName: formData.lastName,\r\n Password: formData.password,\r\n Phone: formData.phone\r\n };\r\n\r\n setShowErrors(true);\r\n let errors: string[] = ValidateForm(false);\r\n\r\n if (errors && errors.length > 0) {\r\n errors.forEach((e) => toast.warning(e));\r\n return;\r\n }\r\n _server\r\n .postApi(\"../UserApi/Register\", rqst)\r\n .then((x) => {\r\n if (x.Success) {\r\n setShowSignIn(true);\r\n } else {\r\n toast.warning(x.Message);\r\n }\r\n })\r\n .catch((err) => console.error(err));\r\n };\r\n\r\n const ValidateForm = (okayIfEmpty:boolean) => {\r\n let errors: string[] = [];\r\n let e: any = {};\r\n const { acceptTerms, email, firstName, lastName, password, password2, phone } =\r\n formData;\r\n if (!acceptTerms && !okayIfEmpty) {\r\n errors.push(`You must select terms to register.`);\r\n e.terms = true;\r\n }\r\n\r\n if(!okayIfEmpty)\r\n if (!isValidEmail(email)) {\r\n errors.push(`Email is required.`);\r\n e.email = true;\r\n }\r\n\r\n if(phone && !isValidPhone(phone)){\r\n errors.push(`Phone number is not valid.`);\r\n e.phone = true;\r\n }\r\n\r\n if(!okayIfEmpty)\r\n if (!firstName) {\r\n errors.push(\"First name is required.\");\r\n e.firstName = true;\r\n }\r\n if(!okayIfEmpty)\r\n if (!lastName) {\r\n errors.push(\"Last name is required.\");\r\n e.lastName = true;\r\n }\r\n\r\n if(!okayIfEmpty)\r\n if (password) {\r\n if (password != password2) {\r\n errors.push(`The passwords you provided do not match`);\r\n e.match = true;\r\n }\r\n\r\n if (8 > password.length) {\r\n errors.push(`Password must be at least 8 charaters`);\r\n e.password = true;\r\n }\r\n if (!password.match(/[A-Z]/g) || !password.match(/[a-z]/g)) {\r\n errors.push(\r\n `Password must have at least one upper and lower case letter`\r\n );\r\n e.password = true;\r\n }\r\n if (!password.match(/[0-9]/g)) {\r\n errors.push(`Password must have at least one number.`);\r\n e.password = true;\r\n }\r\n if (\r\n !password.match(\r\n /[\\!\\@\\#\\$\\%\\^\\&\\*\\:\\;\\'\\?\\<\\>\\,\\.\\|\\[\\]\\{\\}\\=\\_\\+\\(\\)]/g\r\n )\r\n ) {\r\n errors.push(\r\n `Password must have at least one special character. Such as: !@#$%^&*()=+{}[].`\r\n );\r\n e.password = true;\r\n }\r\n } else {\r\n errors.push(`Password must be provided.`);\r\n e.password = true;\r\n }\r\n\r\n setFormErrros(e);\r\n return errors;\r\n };\r\n\r\n const RegisterUpdated = (user:IConfigItemSummary)=>{\r\n setRegistered(user);\r\n setShowSignIn(true);\r\n //redux.showLogin(true);\r\n };\r\n\r\n return (\r\n <>\r\n
\r\n {!showSignIn && (\r\n
\r\n {\r\n }}\r\n onSave={RegisterUpdated}\r\n onRemove={RegisterUpdated}\r\n onUpdate={RegisterUpdated}\r\n managerControler={`NonAdminDataManager`}\r\n noModal={true}\r\n />\r\n
\r\n )}\r\n {showSignIn && (\r\n
\r\n

\r\n Hi {registered?.Name ?? `Hi`}, you Account has been Created!\r\n

\r\n {registered?.Name ?? `Hi`}, now that you have created an account it's time to sign in so you can\r\n get started.\r\n
\r\n \r\n
\r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(RegisterUser);\r\n","import { useEffect, useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { IUserGroupSummary } from \"../../Types/User\";\r\nimport { Server } from \"../../utils/Server\";\r\nimport FormManagerLanding from \"../FormManager/FormManagerLanding\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\n\r\ninterface IUsersProps {}\r\n\r\nconst Users = (props: IUsersProps) => {\r\n const [searchString, setSearchString] = useState();\r\n\r\n\r\n return (\r\n <>\r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Users;\r\n","import { join } from \"path\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { toast } from \"react-toastify\";\r\nimport redux, { connectMap, IState } from \"../../../Redux/Redux\";\r\nimport { _server } from \"../../../utils/Server\";\r\nimport Icon, { IconType } from \"../../Icon/Icon\";\r\nimport { IInviteOwnerResponse, IWorkbookInfo } from \"../WorkbookTypes\";\r\n\r\ninterface IInviteOwner extends RouteComponentProps,IState {\r\n info:IWorkbookInfo\r\n}\r\ninterface MatchParams {\r\n workbookId?:string;\r\n }\r\n\r\nconst InviteAccept = (props:IInviteOwner)=>{\r\n const [needsLogin, setNeedsLogin] = useState();\r\n const [workbookId, setWorkbookId] = useState();\r\n const [info, setInfo] = useState();\r\n\r\n useEffect(()=>{\r\n if(props.match.params.workbookId)\r\n {\r\n setWorkbookId(props.match.params.workbookId);\r\n }\r\n },[props.match?.params?.workbookId]);\r\n\r\n useEffect(()=>{\r\n if(workbookId){\r\n init();\r\n }\r\n },[workbookId]);\r\n\r\n useEffect(()=>{\r\n if(needsLogin && props.User){\r\n onJoin();\r\n setNeedsLogin(false);\r\n }\r\n },[props.User]);\r\n\r\n const onJoin = ()=>{\r\n if(!props.User){\r\n setNeedsLogin(true);\r\n redux.showLogin(true);\r\n return;\r\n }\r\n _server.postApi(`../WorkbookApi/AcceptInvite`, {workbookId:workbookId})\r\n .then(x=>{\r\n if(x.Success){\r\n //you have joined the team.\r\n toast.success(`${props.User?.FirstName}, you have been added to this workbook.`);\r\n props.history.push(`../../Workbook/Start/${workbookId}`);\r\n } else {\r\n toast.error(x.Message, {autoClose:false});\r\n }\r\n })\r\n };\r\n\r\n const init = ()=>{\r\n _server.postApi(`../WorkbookApi/InviteInfo`, {workbookId:workbookId})\r\n .then(x=>{\r\n if(x.Success){\r\n setInfo(x.Value);\r\n //props.history.push(`../Workbook/Start/${workbookId}`);\r\n } else {\r\n toast.error(x.Message, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\n return (
\r\n\r\n <>\r\n {!props.User &&
\r\n

Welcome

\r\n Hi, you have been asked to join a workbook. You must have an account and be signed-in before you can join. \r\n
\r\n \r\n
\r\n
}\r\n\r\n {info &&
\r\n \r\n

Hi {props.User?.FirstName} Welcome

\r\n You have been invited to join {info.Name} workbook. The other members of this workbook include {info.Owners.map((x,i)=>{\r\n\r\n return {x.FirstName}{info.Owners.length > i+1 ? ',':'. '}{\" \"}\r\n })}\r\n\r\n \r\n
\r\n \r\n
\r\n\r\n\r\n
}\r\n\r\n\r\n \r\n \r\n
);\r\n};\r\n\r\nexport default connectMap()(withRouter(InviteAccept));\r\n","import { useState } from \"react\";\r\nimport { connectMap, IState } from \"../../Redux/Redux\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport './pointer.css'\r\n\r\ninterface IPointerProps extends IState{\r\n\r\n}\r\n\r\nconst Pointer = (props: IPointerProps) => {\r\n const [show, setShow] = useState(false);\r\n return (\r\n <>\r\n {show &&
\r\n
\r\n \r\n
{\" \"}\r\n
}\r\n \r\n );\r\n};\r\n\r\nexport default connectMap()(Pointer);\r\n","import { info } from \"console\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { Tab, TabList, TabPanel, Tabs } from \"react-tabs\";\r\nimport { toast } from \"react-toastify\";\r\nimport { _server } from \"../../utils/Server\";\r\nimport Editor from \"../Tools/Editor\";\r\nimport Select from \"react-select\";\r\nimport {\r\n IDataPoint,\r\n IElement,\r\n IFormGroup,\r\n IMilestone,\r\n IPage,\r\n IWorkbookInfo,\r\n} from \"./WorkbookTypes\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport EasyFileInput from \"../Tools/EasyFileInput\";\r\nimport { Selectable } from \"../FormManager/FormManagerTypes\";\r\nimport { SyntheticEvent } from \"react-draft-wysiwyg\";\r\nimport { colors } from \"react-select/dist/declarations/src/theme\";\r\n\r\ninterface IWorkbookFormGroupProps extends RouteComponentProps {\r\n input: IDataPoint;\r\n info: IWorkbookInfo;\r\n setId?: string;\r\n setKey?: string;\r\n onValueChange: (\r\n key: string,\r\n setId: string | null,\r\n value: string[],\r\n files: File[] | null | undefined\r\n ) => void;\r\n onEditClick:(type:string,subType:string|null,key:string,callback:Function)=>void;\r\n preview:boolean;\r\n readOnly?:boolean;\r\n labelOverride?:string;\r\n}\r\n\r\ninterface MatchParams {}\r\n\r\nconst WorkbookInput = (props: IWorkbookFormGroupProps) => {\r\n const [input, setInput] = useState();\r\n const [newValue, setNewValue] = useState();\r\n const [savedValue, setSavedValue] = useState();\r\n const [valueType, setValueType] = useState();\r\n const [fileUploaded, setFileUploaded] = useState();\r\n\r\n useEffect(() => {\r\n if (props.input?.PublicId) {\r\n setInput(props.input);\r\n let values = props.info.Values[props.setId ? props.setId : 'base'];\r\n let valueX = values ? values[`${props.input.PublicId}${props.setKey??''}`] : null;\r\n\r\n let value = valueX?.Value ?? \"\";\r\n setNewValue(value);\r\n setSavedValue(value);\r\n setValueType(valueX?.Type);\r\n }\r\n }, [props.input?.PublicId]);\r\n\r\n useEffect(()=>{\r\n if(fileUploaded || props.input.IsComputed){\r\n let values = props.info.Values[props.setId ? props.setId : 'base'];\r\n let valueX = values ? values[`${props.input.PublicId}${props.setKey??''}`] : null;\r\n if(valueX && valueX.Type){\r\n let value = valueX?.Value ?? \"\";\r\n setNewValue(value);\r\n setSavedValue(value);\r\n setValueType(valueX?.Type);\r\n\r\n\r\n setFileUploaded(false);\r\n //console.log(`Values updated ${props.input.Name}: ${value}`);\r\n }\r\n }\r\n },[props.info.Values])\r\n\r\n const onValueChange = (\r\n key: string,\r\n setId: string | null,\r\n value: string[],\r\n files: File[] | null | undefined\r\n ) => {\r\n if (props.onValueChange) {\r\n props.onValueChange(key, setId, value, files);\r\n setSavedValue(value[0]);\r\n if(files && files.length > 0){\r\n setFileUploaded(true);\r\n }\r\n }\r\n };\r\n\r\n\r\n const onFocus = (e:Event|SyntheticEvent|FocusEvent) =>{\r\n //console.log('Focus', e);\r\n const el = (e.target as Element);\r\n const elFg = el?.closest(\".form-group\");\r\n if(elFg) elFg.scrollIntoView({ behavior: 'smooth', block: 'center' });\r\n \r\n \r\n const inputEl = (e.target as any);\r\n const typesToAutoShow = ['date','datetime-local', 'month', 'weeek', 'time'];\r\n if(inputEl && inputEl.type && inputEl.showPicker && typesToAutoShow.find(x=>x == inputEl.type.toLowerCase())){\r\n inputEl.showPicker();\r\n }\r\n //console.log(elFg)\r\n //el?.scrollIntoView({ behavior: 'smooth', block: 'start' });\r\n };\r\n\r\n const onChecked = (checked:boolean)=>{\r\n setNewValue(checked+'');\r\n onValueChange(\r\n props.input.PublicId,\r\n props.setId ?? null,\r\n [checked+''],\r\n undefined\r\n );\r\n }\r\n\r\n const onStringValueChange = (value: string) => {\r\n setNewValue(value);\r\n };\r\n\r\n const onBlur = (e:any, value?:any) => {\r\n if(props.input.Type === \"Textbox\" && newValue){\r\n let pass = true;\r\n let reg = props.input.RegExFieldValidator;\r\n if(reg && reg.length > 0){\r\n let regex = new RegExp(reg, \"g\");\r\n if(!regex.test(newValue)){\r\n pass = false;\r\n }\r\n }\r\n \r\n\r\n reg = props.input.RegExCustomFieldValidator;\r\n if(reg && reg.length > 0){\r\n let regex = new RegExp(reg, \"g\");\r\n if(!regex.test(newValue)){\r\n pass = false;\r\n }\r\n }\r\n\r\n if(!pass){\r\n toast.error(props.input.RegExValidationFailedMessage ?? `The value you provided ${newValue} is not valid.`);\r\n e.target?.focus(); \r\n return;\r\n }\r\n }\r\n\r\n if(value !== undefined){\r\n onValueChange(\r\n props.input.PublicId,\r\n props.setId ?? null,\r\n [value ?? \"\"],\r\n undefined\r\n );\r\n\r\n setSavedValue(value); \r\n setNewValue(value);\r\n }\r\n else if (newValue !== savedValue) {\r\n onValueChange(\r\n props.input.PublicId,\r\n props.setId ?? null,\r\n [newValue ?? \"\"],\r\n undefined\r\n );\r\n\r\n setSavedValue(newValue); \r\n }\r\n };\r\n\r\n const buildInput = (x: IDataPoint) => {\r\n // if(x.IsComputed){\r\n // return {newValue} \r\n // }\r\n switch (x.Type.toLowerCase()) {\r\n case \"html\":\r\n return (props.readOnly || x.IsComputed ?
:\r\n {\r\n onStringValueChange(v);\r\n }}\r\n readOnly={props.readOnly}\r\n />\r\n );\r\n case \"htmlfull\":\r\n return (props.readOnly || x.IsComputed ?
:\r\n {\r\n onStringValueChange(v);\r\n }}\r\n readOnly={props.readOnly}\r\n />\r\n );\r\n break;\r\n case \"checkbox\":\r\n return {onChecked(e.target.checked)}}\r\n onBlur={onBlur}\r\n onFocus={(e)=>{\r\n onFocus(e);\r\n onChecked(e.target.checked);\r\n }}\r\n readOnly={props.readOnly || x.IsComputed}\r\n disabled={props.readOnly || x.IsComputed}\r\n />\r\n break;\r\n \r\n case \"textbox\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"datetime\":\r\n return {\r\n setNewValue(e.target.value);\r\n console.log(e.eventPhase);\r\n }}\r\n onBlur={onBlur}\r\n onFocus={(e)=>{\r\n onFocus(e);}\r\n }\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"date\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"time\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"password\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"color\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"url\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"email\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 250}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"phone\":\r\n case \"phonenumber\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 50}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"number\":\r\n return {\r\n e.preventDefault(); \r\n e.stopPropagation();\r\n let target:any = e.target;\r\n if(target.blur) target.blur();\r\n return false;\r\n }\r\n }\r\n\r\n\r\n onChange={(e)=>{setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 50}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n />\r\n break;\r\n case \"textarea\":\r\n return {setNewValue(e.target.value)}}\r\n onBlur={onBlur}\r\n onFocus={onFocus}\r\n maxLength={x.MaxLength ?? 5000}\r\n rows={3}\r\n className={`form-control`}\r\n readOnly={props.readOnly || x.IsComputed}\r\n placeholder={x.Placeholder ?? undefined}\r\n >\r\n break;\r\n case \"dropdown\":\r\n return {\r\n setNewValue(e.target.value);\r\n onValueChange(x.PublicId, props.setId ?? null, [e.target.value], undefined);\r\n }}\r\n // onBlur={onBlur}\r\n onFocus={onFocus}\r\n placeholder=\"select\"\r\n className={`form-control`}\r\n disabled={props.readOnly || x.IsComputed}\r\n \r\n >\r\n \r\n {x.Options?.map((o,i)=>{\r\n return \r\n })}\r\n \r\n break;\r\n case \"file\":\r\n return <>\r\n {\r\n onValueChange(x.PublicId, props.setId ?? null, [value], undefined);\r\n } }\r\n onSelectFile={(file:File)=>{\r\n onValueChange(x.PublicId, props.setId ?? null, [file.name], [file]);}}\r\n optionsFromRedux={{workbookId:props.info.WorkbookId}}\r\n />\r\n\r\n \r\n break;\r\n case \"picture\":\r\n return <>\r\n {\r\n onValueChange(x.PublicId, props.setId ?? null, [value], undefined);\r\n } }\r\n onSelectFile={(file:File)=>{\r\n onValueChange(x.PublicId, props.setId ?? null, [file.name], [file]);}}\r\n optionsFromRedux={{workbookId:props.info.WorkbookId}}\r\n />\r\n\r\n \r\n break;\r\n case \"multiselect\":\r\n let valueOptions: Selectable[] =\r\n x?.Options?.map((opt) => {\r\n return { label: opt, value: opt };\r\n }) ?? [];\r\n return <>\r\n {\r\n let mappedValues = (values ?? []).map((x) => x.value as string);\r\n let jsonValue = JSON.stringify(mappedValues);\r\n setNewValue(jsonValue)\r\n } }\r\n value={getArrayFromJson(newValue).map(x=>{return { value: x, label: x }})}\r\n options={x.Options?.map(x => {\r\n return { label: x, value:x };\r\n })}\r\n className=\"multi-select\"\r\n isMulti={true}\r\n isDisabled={props.readOnly}\r\n isClearable={true}\r\n menuPlacement={'auto'}\r\n placeholder={x.Placeholder ?? undefined}\r\n classNamePrefix='cool' />\r\n \r\n break;\r\n case \"signature\":\r\n return \r\n break;\r\n default:\r\n return <>Unknown input type: {x.Type};\r\n break;\r\n }\r\n };\r\n\r\n const getArrayFromJson = (value?:string)=>{\r\n if(value && value.indexOf(\"[\") > -1) {\r\n let result:string[] = JSON.parse(value);\r\n return result\r\n }\r\n let empty:string[] = [];\r\n return empty\r\n };\r\n const updated = (info:IWorkbookInfo)=>{\r\n let p:IDataPoint = info.TemplateDic[props.input.PublicId];\r\n setInput(p);\r\n };\r\n\r\n const buildInputGroup = () => {\r\n if (input) {\r\n let inlineLabel = [\"checkbox\"].find(\r\n (y) => y === input.Type.toLowerCase()\r\n ) ? true : false;\r\n\r\n return (\r\n
\r\n {props.preview &&
{e.stopPropagation(); e.preventDefault();props.onEditClick('workbook-template-data-point',null,input.PublicId, updated);}}>
}\r\n {!inlineLabel && \r\n {props.labelOverride ?? input.Label ?? input.Name}{input.Required && <>*}\r\n }\r\n\r\n
\r\n {buildInput(input)} \r\n {inlineLabel && \r\n {input.Required && <>*}{props.labelOverride ?? input.Label ?? input.Name}\r\n }\r\n {input.Description && !props.readOnly && (\r\n
\r\n )}\r\n {props.preview && input.IsComputed && input.Calculation &&
{input.Calculation} {props.info.TemplateDic[input.Calculation]?.Name}: {props.info.TemplateDic[input.Calculation]?.Value}
}\r\n {props.preview && input.IsComputed && input.ValueOf &&
Value of: {input.ValueOf} {props.info.TemplateDic[input.ValueOf]?.Name}
}\r\n {props.preview && input.IsComputed && input.Type && input.Signer && input.Signer.length > 0 &&
Signers Data: {input.Type} {props.info.TemplateDic[input.Type]?.Name}
}\r\n {props.preview && input.IsComputed && input.ValueFromOwner &&
Value from owner: {input.ValueFromOwner}
}\r\n
\r\n
\r\n );\r\n }\r\n return <>;\r\n };\r\n\r\n return <>{input && props.info && <>{buildInputGroup()} \r\n };\r\n};\r\n\r\nexport default withRouter(WorkbookInput);\r\n","import { ICalculation, IWorkbookInfo } from \"./WorkbookTypes\";\r\n\r\n\r\nexport const RunCalculations = (info:IWorkbookInfo, setId:string) =>\r\n{\r\n //return;\r\n let Values = info.Values;\r\n if (!Values) {\r\n Values = {};\r\n info.Values = Values;\r\n };\r\n if (!info.Template.DataPointCalculations) info.Template.DataPointCalculations = [];\r\n if (!Values[setId]) Values[setId] = {};\r\n SetValueOfEachCalculation(info, setId);\r\n SetValueOfCalculatedFields(info, setId);\r\n //info.Values = {...info.Values};\r\n}\r\n\r\nexport const SetValueOfEachCalculation=(info:IWorkbookInfo, setId:string)=>\r\n{\r\n if (info.Template.DataPointCalculations == null)\r\n info.Template.DataPointCalculations = [];\r\n\r\n for(let i = 0; i < info.Template.DataPointCalculations.length; i++)\r\n {\r\n let calculation = info.Template.DataPointCalculations[i];\r\n if(calculation.PublicId === 'c7515cfc-abce-4c11-b2af-418a957509ff'){\r\n //debugger;\r\n console.log('some value yoyu care about...')\r\n }\r\n switch (calculation.BasicFunction)\r\n {\r\n case \"true/false\":\r\n CalculateTrueFalse(info, calculation, setId);\r\n break;\r\n case \"combine\":\r\n CalculateCombine(info, calculation, setId);\r\n break;\r\n case \"equalTo\":\r\n CalculateEqualTo(info, calculation, setId);\r\n break;\r\n case \"equalToSome\":\r\n CalculateEqualToSome(info, calculation, setId);\r\n break;\r\n case \"notEqualTo\":\r\n CalculateNotEqualTo(info, calculation, setId);\r\n break;\r\n case \"notEqualToSome\":\r\n CalculateNotEqualToSome(info, calculation, setId);\r\n break;\r\n }\r\n }\r\n}\r\n\r\nexport const CalculateNotEqualToSome=(info:IWorkbookInfo, calculation:ICalculation, setId:string)=> \r\n{\r\n let value = false;\r\n let values = info.Values[setId] ?? {};\r\n if (calculation.CompareToValue == null) calculation.CompareToValue = '';\r\n\r\n value = calculation.DataPoints?.find(x => calculation.CompareToValue &&\r\n calculation.CompareToValue?.toLowerCase() !== values[x]?.Value?.toLowerCase()) ? true:false;\r\n\r\n calculation.CalculatedValue = value.toString();\r\n}\r\n\r\nexport const CalculateEqualToSome=(info:IWorkbookInfo, calculation:ICalculation, setId:string)=> \r\n{\r\n let value = false;\r\n let values = info.Values[setId] ?? {};\r\n if (calculation.CompareToValue == null) calculation.CompareToValue = '';\r\n\r\n value = calculation.DataPoints?.find(x => calculation.CompareToValue &&\r\n calculation.CompareToValue?.toLowerCase() === values[x]?.Value?.toLowerCase()) ? true:false;\r\n\r\n calculation.CalculatedValue = value.toString();\r\n}\r\n\r\nexport const CalculateNotEqualTo=(info:IWorkbookInfo, calculation:ICalculation, setId:string)=> \r\n{\r\n let value = true;\r\n let values = info.Values[setId] ?? {};\r\n if (calculation.CompareToValue == null) calculation.CompareToValue = '';\r\n\r\n calculation.DataPoints?.forEach(x =>{\r\n if(calculation.CompareToValue?.toLowerCase() === values[x]?.Value?.toLowerCase()){\r\n value = false;\r\n }\r\n });\r\n\r\n calculation.CalculatedValue = value.toString();\r\n}\r\n\r\nexport const CalculateEqualTo=(info:IWorkbookInfo, calculation:ICalculation, setId:string)=> \r\n{\r\n let value = true;\r\n let values = info.Values[setId] ?? {};\r\n\r\n calculation.DataPoints?.forEach(x =>{\r\n if(calculation.CompareToValue?.toLowerCase() !== values[x]?.Value?.toLowerCase()){\r\n value = false;\r\n }\r\n });\r\n\r\n calculation.CalculatedValue = value.toString();\r\n}\r\n\r\nexport const CalculateCombine=(info:IWorkbookInfo, calculation:ICalculation, setId:string)=> \r\n{\r\n let value = '';\r\n let values = info.Values[setId] ?? {};\r\n \r\n let valuesToCombine = calculation.DataPoints?.map(x => values[x]?.Value).filter(x=>x) ?? [];\r\n value = valuesToCombine.join(calculation.Delimiter ?? \" \");\r\n\r\n calculation.CalculatedValue = value;\r\n}\r\n\r\nexport const CalculateTrueFalse=(info:IWorkbookInfo, calculation:ICalculation, setId:string)=> \r\n{\r\n let value = true;\r\n let values = info.Values[setId] ?? {};\r\n\r\n // let trueValues = calculation.TrueWhenTrue?.map(x => values[x]?.Value).filter(x => x) ?? [];\r\n // let falseValues = calculation.TrueWhenFalse?.map(x => values[x]?.Value).filter(x => x) ?? [];\r\n\r\n \r\n let trueValues = calculation.TrueWhenTrue?.map(x => values[x]?.Value) ?? [];\r\n let falseValues = calculation.TrueWhenFalse?.map(x => values[x]?.Value) ?? [];\r\n\r\n if(trueValues.length > 0){\r\n if (calculation.TrueWhenTrueOr)\r\n {\r\n let pass = trueValues.find(x=>ValueTruthy(x));\r\n if (!pass) value = false;\r\n }\r\n else\r\n {\r\n let pass = trueValues.filter(x=>ValueTruthy(x)).length === trueValues.length;\r\n if (!pass) value = false;\r\n }\r\n }\r\n\r\n if(falseValues.length > 0){\r\n if (calculation.TrueWhenFalseOr)\r\n {\r\n let pass = falseValues.find(x=>!ValueTruthy(x));\r\n if (!pass) value = false;\r\n }\r\n else\r\n {\r\n let pass = falseValues.filter(x => !ValueTruthy(x)).length === falseValues.length;\r\n if (!pass) value = false;\r\n }\r\n }\r\n\r\n calculation.CalculatedValue = value.toString();\r\n}\r\n\r\nexport const ValueTruthy=(value:string)=>\r\n{\r\n if(value === undefined || value === null) return false;\r\n value = ((value??'')+'').toUpperCase();\r\n if(!value) return false;\r\n if(value === \"N\") return false;\r\n if(value === \"NO\") return false;\r\n if(value === \"0\") return false;\r\n if(value === \"FALSE\") return false;\r\n if(value === \"F\") return false;\r\n return true;\r\n}\r\n\r\nexport const SetValueOfCalculatedFields=(info:IWorkbookInfo, setId:string)=>\r\n{\r\n let Values = info.Values;\r\n let values = Values[setId];\r\n\r\n console.log(`Calculation Set Value OF Calculated Fields`)\r\n for(let i = 0; i < info.Template.DataPointCalculations.length; i++)\r\n {\r\n let calculation = info.Template.DataPointCalculations[i];\r\n //console.log(`Calculation ${calculation.Name}`)\r\n\r\n let points = info.Template.DataPoints?.filter(x => x.IsComputed && x.Calculation == calculation.PublicId) ?? [];\r\n \r\n if (points && points.length > 0)\r\n {\r\n points.forEach(x =>\r\n {\r\n values[x.PublicId] = {Type:\"calculated\", Value:calculation.CalculatedValue};\r\n });\r\n }\r\n }\r\n\r\n let myPoints = info.Template.DataPoints.filter(x=>x.IsComputed && x.ValueOf);\r\n for(let i = 0; i < myPoints.length; i++)\r\n {\r\n let point = myPoints[i];\r\n values[point.PublicId] = {Type:\"calculated\",\r\n Value: values[point.ValueOf ?? '']?.Value ?? \"\"};\r\n }\r\n\r\n}\r\n\r\n","import { _server } from \"../../utils/Server\";\r\nimport { RunCalculations } from \"./WorkbookCalculations\";\r\nimport { v4 } from \"uuid\";\r\nimport { ICanShowElement, IDataPoint, IDataValue, IElement, IFormGroup, IMilestone, IPage, ISigner, ISignRequest, IWorkbookInfo, IWorkbookSaveRequest, IWorkbookSaveResponse, MilestoneStates } from \"./WorkbookTypes\";\r\n\r\nexport const buildTemplateDic = (info: IWorkbookInfo) => {\r\n info.TemplateDic = {};\r\n let pagesToAdd: IPage[] = [];\r\n RunCalculations(info, 'base');\r\n info.Template.Pages?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n if(c.SetId && !info.Preview){\r\n let set = info.Template.Sets.find(x=>x.PublicId === c.SetId);\r\n if(set){\r\n if(set.OwnersAreSet){\r\n //create page for each...\r\n let childrent = [...c.ChildrenPages];\r\n c.ChildrenPages = [];\r\n \r\n let ownerPages: IPage[] = [];\r\n info.Owners.forEach((o,i)=>{\r\n let np:IPage = {...c, Name: `${o.FirstName}'s ${c.Name}`, PublicId: `${c.PublicId}|${set?.PublicId}${o.PublicId}`, selectPageButtonText : `${o.FirstName}'s ${c.Name}`};\r\n np.Header = `

${o.FirstName} ${o.LastName}'s Page

` +(np.Header ?? '');\r\n np.ChildrenPages = []; \r\n np._setGroupKey = o.PublicId; \r\n ownerPages.push(np);\r\n });\r\n\r\n c.skipToNextWhenNotShown = true;\r\n c.showWhenTrue = ['hide'];\r\n c.showWhenTrueOr = false;\r\n\r\n ownerPages.forEach((p, i)=>{\r\n if(i===0){\r\n c.ChildrenPages.push({Id:p.PublicId, Order:i, Type:'set-page'});\r\n info.TemplateDic[c.PublicId] = p;\r\n }\r\n else {\r\n ownerPages[i-1].ChildrenPages.push({Id:p.PublicId, Order:i, Type:'set-page'})\r\n }\r\n pagesToAdd.push(p);\r\n });\r\n if(ownerPages.length > 0) ownerPages[ownerPages.length -1].ChildrenPages = childrent;\r\n }\r\n }\r\n }\r\n });\r\n pagesToAdd.forEach(p=>{\r\n info.Template.Pages.push(p);\r\n })\r\n\r\n info.Template.Elements?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.DataPoints?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.FormGroups?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.Milestones?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.Signers?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.Themes?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.Sets?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n info.Template.ReviewGroups?.forEach((c) => {\r\n info.TemplateDic[c.PublicId] = c;\r\n });\r\n //console.log('values',info.Values);\r\n };\r\n \r\n export const workbookOnValueChanged = (\r\n info: IWorkbookInfo,\r\n request: IWorkbookSaveRequest,\r\n files: File[]\r\n ) => {\r\n let infoX = { ...info };\r\n let dp: IDataPoint = info.TemplateDic[request.DataPointId ?? \"\"];\r\n \r\n \r\n if (\r\n dp?.WorkbookSpecialType === \"WorkbooksName\" &&\r\n request.Value &&\r\n request.Value[0]\r\n ) {\r\n infoX.Name = request.Value[0];\r\n }\r\n \r\n let call = new Promise((reslove, reject)=>{\r\n _server\r\n .postApi(`../WorkbookApi/Save`, request, files)\r\n .then((x) => {\r\n if (x.Success) {\r\n let values: Record> = {...(infoX?.Values ?? {})};\r\n let valueDic = {...values[request.SetId ? request.SetId : 'base'] ?? {}};\r\n values[request.SetId ? request.SetId : 'base']=valueDic;\r\n\r\n valueDic[`${x.Value?.DataPointId}${x.Value?.SetGroupKey??''}`] = {\r\n Value: x.Value.Value?.Value ?? '',\r\n Type: x.Value.Value?.Type\r\n };\r\n reslove( {\r\n ...infoX,\r\n WorkbookId: x.Value.WorkbookId ?? infoX.WorkbookId,\r\n WorkbookTemplateId: x.Value.WorkbookTemplateId ?? infoX.WorkbookTemplateId,\r\n Values: values,\r\n });\r\n } else {\r\n reject(info);\r\n }\r\n });\r\n });\r\n \r\n return call;\r\n \r\n };\r\n \r\n export const canShow = (info:IWorkbookInfo, el:ICanShowElement, setId?:string, setKey?:string) =>{\r\n \r\n let validPath = true;\r\n let access = true;\r\n let validPathOr = false;\r\n\r\n if (el.showWhenTrue && el.showWhenTrue.length > 0) {\r\n el.showWhenTrue.forEach((s) => {\r\n if (s) {\r\n let valuesDic = info?.Values[setId ? setId : 'base'] ?? {};\r\n \r\n let value = valuesDic[`${s}${setKey??''}`]?.Value.toUpperCase();\r\n if (\r\n !value ||\r\n value === \"0\" ||\r\n value === \"F\" ||\r\n value === \"FALSE\" ||\r\n value === \"N\" ||\r\n value === \"NO\"\r\n ) {\r\n validPath = false;\r\n } else {\r\n validPathOr = true;\r\n }\r\n }\r\n });\r\n }\r\n\r\n let validPathFalse = true;\r\n let validPathFalseOr = false;\r\n if (el.showWhenFalse && el.showWhenFalse.length > 0) {\r\n el.showWhenFalse.forEach((s) => {\r\n if (s) {\r\n \r\n let valuesDic = info?.Values[setId ? setId : 'base'] ?? {};\r\n let value = valuesDic[s]?.Value.toUpperCase();\r\n if (\r\n value === undefined ||\r\n value === \"0\" ||\r\n value === \"F\" ||\r\n value === \"FALSE\" ||\r\n value === \"N\" ||\r\n value === \"NO\"\r\n ) {\r\n validPathFalseOr = true;\r\n } else {\r\n validPathFalse = false;\r\n }\r\n }\r\n });\r\n }\r\n el._validPath =\r\n (validPath || (validPathOr && el.showWhenTrueOr)) &&\r\n (validPathFalse || (validPathFalseOr && el.showWhenFalseOr));\r\n return el._validPath;\r\n };\r\n \r\n export const calculatePageAccess = (info:IWorkbookInfo, preview:boolean, setId:string) => {\r\n let template = info?.Template;\r\n if (template) {\r\n RunCalculations(info, 'base');\r\n let dic = info?.TemplateDic ?? {};\r\n let pageDic: Record = {};\r\n template.Pages.forEach((x) => {\r\n pageDic[x.PublicId] = x;\r\n });\r\n\r\n template.Elements.forEach((x)=>{\r\n x._validPath = canShow(info, x, setId);\r\n });\r\n \r\n\r\n template.Pages.forEach((x) => {\r\n let access = true;\r\n if (x.requiresSubscription && x.requiresSubscription.length > 0) {\r\n x.requiresSubscription.forEach((s) => {\r\n if (s) {\r\n \r\n let valuesDic = info?.Values[setId ? setId : 'base'] ?? {};\r\n let value = valuesDic[s]?.Value.toUpperCase();\r\n access = false;\r\n }\r\n });\r\n }\r\n \r\n x._canAccess = access;\r\n\r\n x._validPath = canShow(info, x, setId);\r\n x._nextPagesAll = x.ChildrenPages.sort((a, b) => {\r\n return a.Order > b.Order ? 1 : -1;\r\n }).map((x) => {\r\n let page = pageDic[x.Id];\r\n return page;\r\n }).filter(x=>x);\r\n if (info) setPagesMissingDataPoints(x, info, setId);\r\n x._milestones = getPagesMilestones(info, x, setId, false, preview) ?? [];\r\n x._milestonesState = getStateOfMilestones(info, x._milestones);\r\n dic[x.PublicId] = x;\r\n });\r\n \r\n console.log(\"Calculating Page Access\");\r\n \r\n if(info.ParentPages?.length === 0){\r\n info.ParentPages = [info.Template.Pages[0]?.PublicId]\r\n }\r\n return {...info};\r\n }\r\n };\r\n \r\n export const setPagesMissingDataPoints = (page: IPage, info: IWorkbookInfo, setId:string) => {\r\n setId = page.SetId ?? setId ?? 'base';\r\n let dataPoints = getAllRequiredDataPoints(page, info, setId);\r\n let missingPoints: IDataPoint[] = [];\r\n if(page.ReadOnly){\r\n console.log(\"Page is read only\")\r\n page._missingDataPoints = missingPoints;\r\n page._requiredDataPoints = dataPoints;\r\n return;\r\n }\r\n for (let i = 0; i < dataPoints.length; i++) {\r\n let point = dataPoints[i];\r\n let valueDic = info.Values[setId ? setId : 'base'] ?? {};\r\n let value = valueDic[`${point.PublicId}${page._setGroupKey ?? ''}`];\r\n if (value === undefined || !value.Value || !value.Value.length) {\r\n missingPoints.push(point);\r\n continue;\r\n }\r\n if (point.Type.toLowerCase() === \"checkbox\") {\r\n if (value.Value?.toLowerCase() !== \"true\") {\r\n console.log(value);\r\n missingPoints.push(point);\r\n }\r\n } else {\r\n if (!value.Value[0]) missingPoints.push(point);\r\n }\r\n }\r\n page._missingDataPoints = missingPoints;\r\n page._requiredDataPoints = dataPoints;\r\n };\r\n \r\n \r\n const getAllRequiredDataPoints = (page: IPage, info: IWorkbookInfo, setId:string) => {\r\n let elements: IElement[] = page.Elements.map((x) => {\r\n return info.TemplateDic[x.Id];\r\n }).filter(x=> !x.ReadOnly && canShow(info,x, setId));\r\n let groups: IFormGroup[] = elements\r\n .map((x) => {\r\n return info.TemplateDic[x.ElementType];\r\n })\r\n .filter((x: IFormGroup) => x && x.Children && x.Children.length > 0);\r\n let points: IDataPoint[] = [];\r\n groups.forEach((g) => {\r\n let dataPoints: IDataPoint[] = g.Children.map((x) => {\r\n return info.TemplateDic[x.Id];\r\n });\r\n dataPoints\r\n .filter((x) => x && x.Required)\r\n .forEach((x) => {\r\n points.push(x);\r\n });\r\n });\r\n return points;\r\n };\r\n\r\n export const getPagesMilestones = (info:IWorkbookInfo, page:IPage, setId:string, approvalOnly?:boolean, preview?:boolean) =>{\r\n let milestones:IMilestone[] = page.Elements.map(x=>info.TemplateDic[x.Id])\r\n .filter(x=>preview || canShow(info,x, setId))\r\n .map(x=>info.TemplateDic[x.ElementType])\r\n .filter(x=>x && x.WorkbookProperType === \"milestone\" && (!approvalOnly || x.Type === \"approval\")) \r\n ;\r\n return milestones ?? [];\r\n };\r\n\r\n export const getStateOfMilestones=(info:IWorkbookInfo, milestones:IMilestone[])=>{\r\n let requests:ISignRequest[] = [];\r\n let stones = milestones.filter(x=>x.Type === \"approval\");\r\n \r\n if(stones.length == 0) return MilestoneStates.NA;\r\n stones.forEach(m=>{\r\n m.Approvers?.forEach(a=>{\r\n let signRequests = info.SignRequests?.filter(s=>s.SignerId === a && s.MilestoneId === m.PublicId) ?? [];\r\n signRequests.forEach(s=>{requests.push(s)});\r\n });\r\n });\r\n\r\n if(requests.length === 0) return MilestoneStates.NotStarted;\r\n if(requests.length < stones.length) return MilestoneStates.Started;\r\n\r\n let allComplete = true;\r\n requests.forEach(x=>{\r\n if(!x.ApprovedAtUtc) allComplete = false;\r\n });\r\n\r\n return allComplete ? MilestoneStates.Completed : MilestoneStates.Started;\r\n }\r\n\r\n export const NewGuid = ()=>{\r\n return v4();\r\n };\r\n\r\n const regExTokens = /(\\[key\\:)([A-z0-9-\\.]+)(\\|)?([\\w\\d\\s\\.!@#\\(\\)\\$]*)(\\])/g\r\n\r\nexport const regexReplace = (info:IWorkbookInfo, content:string) => {\r\n if(!content) return content;\r\n let valueDic = info.Values;\r\n let values = info.Values?[`base`]:{}\r\n \r\n return content.replace(regExTokens, (match, part1, key)=>{ \r\n \r\n return getReplaceValue(key, values, info);\r\n })\r\n}\r\n\r\nconst getReplaceValue =(key:string, values:Record, info:IWorkbookInfo)=>{\r\n console.log(\"Key\", key);\r\n let value = values[key]?.Value ?? info.TemplateDic[key]?.Label ?? 'Unknown';\r\n\r\n return value;\r\n}","import { group, info } from \"console\";\r\nimport { useEffect, useState } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { removeProps } from \"react-select/dist/declarations/src/utils\";\r\nimport { Tab, TabList, TabPanel, Tabs } from \"react-tabs\";\r\nimport { toast } from \"react-toastify\";\r\nimport { _server } from \"../../utils/Server\";\r\nimport Editor from \"../Tools/Editor\";\r\nimport WorkbookInput from \"./WorkbookInput\";\r\nimport { IDataPoint, IElement, IFormGroup, IMilestone, IPage, IWorkbookInfo } from \"./WorkbookTypes\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\nimport { regexReplace } from \"./WorkbookFunctions\";\r\n\r\ninterface IWorkbookFormGroupProps extends RouteComponentProps {\r\n group: IFormGroup;\r\n info: IWorkbookInfo;\r\n setId?: string;\r\n setKey?:string;\r\n onValueChange: (key:string,setId:string|null,value:string[],files:File[]|null|undefined)=>void;\r\n onEditClick:(type:string,subType:string|null,key:string,callback:Function)=>void; \r\n onJumpToPage:(pageId:string)=>void;\r\n preview:boolean;\r\n readOnly?:boolean;\r\n}\r\n\r\ninterface MatchParams {}\r\n\r\nconst WorkbookFormGroup = (props: IWorkbookFormGroupProps) => {\r\n const [formGroup, setFormGroup] = useState();\r\n\r\n useEffect(() => {\r\n if(props.group){\r\n setFormGroup(props.group);\r\n }\r\n }, [props.group?.PublicId]);\r\n\r\n useEffect(()=>{\r\n \r\n }, [props.info])\r\n\r\n const onValueChange = (key:string,setId:string|null,value:string[],files:File[]|null|undefined)=>{\r\n if(props.onValueChange) props.onValueChange(key, setId, value, files);\r\n };\r\n\r\n const buildForm = () =>{\r\n if(formGroup){\r\n return formGroup.Children.sort((a,b)=>{return (a.Order)>(b.Order)?1:-1;})\r\n .map((e, ie)=>{\r\n let x:IDataPoint = props.info.TemplateDic[e.Id];\r\n return \r\n });\r\n }\r\n return <>\r\n };\r\n const updated = (info:IWorkbookInfo)=>{\r\n let p:IFormGroup = info.TemplateDic[props.group.PublicId];\r\n setFormGroup(p);\r\n };\r\n\r\n return (\r\n <>\r\n {formGroup && props.info && \r\n
\r\n {props.preview &&
{e.stopPropagation(); e.preventDefault();props.onEditClick('workbook-template-form-group',null,formGroup.PublicId, updated);}}>
}\r\n {formGroup.Header &&
}\r\n
\r\n {buildForm()}\r\n
\r\n {formGroup.Footer &&
}\r\n
}\r\n \r\n );\r\n};\r\n\r\nexport default withRouter(WorkbookFormGroup);\r\n","import { useEffect, useState } from \"react\";\r\nimport { IState } from \"../../Redux/Redux\";\r\nimport { _server } from \"../../utils/Server\";\r\nimport { toast } from \"react-toastify\";\r\nimport { IOrgSharedInfo } from \"../WorkbookTemplate/WorkbookTypes\";\r\nimport { FormatDate } from \"../../utils/Tools\";\r\nimport Icon, { IconType } from \"../Icon/Icon\";\r\n\r\ninterface IProps{\r\n state:IState;\r\n workbookName:string;\r\n workbookPublicId:string;\r\n close?:()=>void;\r\n}\r\n\r\ninterface IForm{\r\n orgId?:string;\r\n}\r\n\r\nconst WorkbookShareManager = (props:IProps) =>{\r\n const [shared, setShared] = useState([]);\r\n const [form, setForm] = useState({});\r\n\r\n useEffect(()=>{\r\n if(props.workbookPublicId){\r\n LoadShared();\r\n }\r\n },[props.workbookPublicId]);\r\n\r\nconst LoadShared = ()=>{\r\n _server.getApi(`../WorkbookApi/Shared/${props.workbookPublicId}`)\r\n .then((x)=>{\r\n if(x.Success){\r\n setShared(x.Value);\r\n }\r\n else {\r\n toast.error(x.Message, {autoClose:30});\r\n }\r\n });\r\n};\r\nconst Remove = (share:IOrgSharedInfo)=>{\r\n\r\n if(!window.confirm(`${props.state.User?.FirstName} are you sure you want to remove access from ${share.Name}?`)){\r\n return;\r\n }\r\n\r\n _server.postApi(`../WorkbookApi/ShareRemove`, {workbookId:props.workbookPublicId, shareId:share.PublicId})\r\n .then((x)=>{\r\n if(x.Success){\r\n LoadShared();\r\n toast.info(`We have removed access to your workbook from ${share.Name}`);\r\n }\r\n else {\r\n toast.error(x.Message, {autoClose:30});\r\n }\r\n });\r\n};\r\n\r\nconst Close = () =>{\r\n if(props.close){\r\n props.close();\r\n }\r\n};\r\n\r\nconst Share = ()=>{\r\n\r\n if(!form.orgId || form.orgId.length < 4){\r\n toast.warning('Please provide a valid share key')\r\n return;\r\n }\r\n\r\n if(!window.confirm(`${props.state.User?.FirstName} are you sure you want to grant access?`)){\r\n return;\r\n }\r\n\r\n _server.postApi(`../WorkbookApi/Share`, {workbookId:props.workbookPublicId, orgId:form.orgId})\r\n .then((x)=>{\r\n if(x.Success){\r\n LoadShared();\r\n toast.info(`We have given access to your workbook.`);\r\n setForm({});\r\n }\r\n else {\r\n toast.error(x.Message, {autoClose:30000});\r\n }\r\n });\r\n};\r\n\r\n return (<>\r\n
\r\n
\r\n

Shared With

\r\n
\r\n
\r\n {shared.length > 0 && shared.map((x,i)=>{\r\n return
\r\n
\r\n \r\n {x.Name}\r\n
\r\n {Remove(x)}}>\r\n
\r\n
\r\n Shared On: {FormatDate(x.CreatedAtUtc, 'date-time')}\r\n {x.Description &&
}\r\n\r\n
\r\n })}\r\n {shared.length == 0 &&
\r\n

Not shared.

\r\n Currently this workbook has not been shared with any organization. \r\n
}\r\n
\r\n
\r\n
\r\n
\r\n

Share Your Workbook

\r\n Share it with your teacher, school, or fair. \r\n
\r\n \r\n
\r\n {\r\n setForm({...form, orgId:e.target.value});\r\n }}\r\n placeholder=\"Organization Id or Share Key\"\r\n />\r\n
\r\n
\r\n
\r\n
\r\n \r\n {props.close && }\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\n\r\nexport default WorkbookShareManager;","import { Tooltip } from 'reactstrap';\r\nimport Icon, { IconType } from '../Components/Icon/Icon';\r\nimport { toast } from 'react-toastify';\r\n\r\ninterface IProps {\r\n children?: React.ReactNode;\r\n valueToCopy?: string | number;\r\n addClass?: string;\r\n hideCopyIcon?: boolean;\r\n toolTip?: string;\r\n}\r\n\r\nconst CopyToClipboard = (props: IProps) => {\r\n const click = () => {\r\n let value: string = props.valueToCopy +'';\r\n window.navigator.clipboard.writeText(value);\r\n toast.dark(`${value} copied to clipboard`, {autoClose:3000});\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {!(props.hideCopyIcon ?? false) && (\r\n <>\r\n {' '}\r\n \r\n )}\r\n {props.children}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CopyToClipboard;\r\n","import { useEffect, useState } from 'react';\r\nimport { RouteComponentProps, withRouter } from 'react-router';\r\nimport { toast } from 'react-toastify';\r\nimport { inflate } from 'zlib';\r\nimport { connectMap, IState } from '../../../Redux/Redux';\r\nimport { _server } from '../../../utils/Server';\r\nimport Icon, { IconType } from '../../Icon/Icon';\r\nimport Editor from '../../Tools/Editor';\r\nimport { IMilestone, ISigner, ISignRequest, IWorkbookInfo, IWorkbookReviewGroupInfo, IWorkbookTemplateReviewGroups } from '../WorkbookTypes';\r\nimport { Tab, TabList, TabPanel, Tabs } from 'react-tabs';\r\nimport Modal from '../../Modal/Modal';\r\nimport WorkbookShareManager from '../../Workbook/WorkbookShareManager';\r\nimport CopyToClipboard from '../../../utils/CopyToClipboard';\r\n\r\ninterface IApprovalRequestProps extends RouteComponentProps, IState {\r\n milestone: IMilestone;\r\n signer: ISigner;\r\n info: IWorkbookInfo;\r\n onStartSign?: () => void;\r\n onRequest?: (signer: ISigner, mile: IMilestone, request: ISignRequest) => void;\r\n}\r\n\r\ninterface IForm {\r\n textMessage?: string;\r\n phone?: string;\r\n message?: string;\r\n email?: string;\r\n sendLink?: boolean;\r\n sendEmail?: boolean;\r\n sendText?: boolean;\r\n}\r\n\r\nconst ApprovalRequest = (props: IApprovalRequestProps) => {\r\n const [form, setForm] = useState({});\r\n const [signRequest, setSignRequest] = useState();\r\n const [isSelf, setIsSelf] = useState(false);\r\n const [reviewGroups, setReviewGroups] = useState([]);\r\n const [workbooksGroups, setWorkbooksGroups] = useState([]);\r\n const [showShareWorkbook, setShowShareWorkbook] = useState(false);\r\n\r\n useEffect(() => {\r\n setIsSelf(props.signer.IsSignerUser && !props.signer.IsSetBasedOnOwner && props.User?.PublicId === props.signer._ownerId);\r\n\r\n let groups: IWorkbookTemplateReviewGroups[] = [];\r\n\r\n props.signer.ReviewGroups?.forEach((x) => {\r\n let group = props.info.TemplateDic[x?.toLowerCase()];\r\n if (group) groups.push(group);\r\n console.log('Review Groups: ', x, group);\r\n });\r\n\r\n setReviewGroups(groups);\r\n }, [props.User, props.signer, props.info]);\r\n\r\n useEffect(() => {\r\n if (reviewGroups?.length > 0) {\r\n //call server to see if there any already or if the workbook should be shared...\r\n LoadReviewGroups();\r\n }\r\n }, [reviewGroups]);\r\n\r\n useEffect(() => {\r\n setForm({ sendEmail: true, message: defaultEmailMessageForSignRequest(), textMessage: defaultTextMessageForSignRequest() });\r\n setSignRequest(\r\n props.info.SignRequests.find(\r\n (x) => x.SignerId == props.signer.PublicId && x.MilestoneId == props.milestone.PublicId && (props.signer._ownerId === x.OwnerId || (!x.OwnerId && !props.signer._ownerId))\r\n )\r\n );\r\n }, [props.info]);\r\n\r\n const LoadReviewGroups = () =>{\r\n _server.postApi(`../WorkbookApi/ReviewGroups`, { workbookId: props.info.WorkbookId, reviewGroups: reviewGroups.map((x) => x.PublicId) }).then((x) => {\r\n if (x.Success) {\r\n setWorkbooksGroups(x.Value ?? []);\r\n } else {\r\n toast.error(x.Message, { autoClose: 30000 });\r\n }\r\n });\r\n };\r\n\r\n const defaultEmailMessageForSignRequest = () => {\r\n return '
Hi,

I have been working hard on my project and need to get your approval. Please click this link [LINK] and you will be able to review and sign my forms.

Thank you,
';\r\n };\r\n\r\n const defaultTextMessageForSignRequest = () => {\r\n return 'Hi, Please click the [LINK] so you can review and aprove. Thanks!';\r\n };\r\n\r\n const sendSignRequest = () => {\r\n let r: ISignRequest = {\r\n MilestoneId: props.milestone.PublicId,\r\n SignerId: props.signer.PublicId,\r\n WorkbookId: props.info.WorkbookId,\r\n WorkbookTemplateId: props.info.WorkbookTemplateId,\r\n RequestMessage: form.message,\r\n RequestTextMessage: form.textMessage,\r\n Sms: form.sendText && form.phone ? true : false,\r\n Email: form.email,\r\n Phone: form.phone,\r\n OwnerId: props.signer._ownerId,\r\n };\r\n\r\n if (form.sendText && (!r.Phone || r.Phone.length < 10)) {\r\n toast.warning(`Please provide a valid number.`);\r\n return;\r\n }\r\n if (form.sendEmail && (!r.Email || r.Email.length < 8 || r.Email.indexOf('@') < 0 || r.Email.indexOf('.') < 0)) {\r\n toast.warning(`Please provide a valid email.`);\r\n return;\r\n }\r\n if ((form.sendEmail && (r.RequestMessage?.indexOf('[LINK]') ?? -1) < 0) || (form.sendText && (r.RequestTextMessage?.indexOf('[LINK]') ?? -1) < 0)) {\r\n toast.error(`Your message must have \"[LINK]\"`);\r\n return;\r\n }\r\n\r\n _server.postApi(`../WorkbookApi/RequestApproval`, r).then((x) => {\r\n if (x.Success) {\r\n setSignRequest(x.Value);\r\n if (props.onRequest) props.onRequest(props.signer, props.milestone, x.Value);\r\n } else {\r\n toast.error(x.Message, { autoClose: false });\r\n }\r\n });\r\n };\r\n const sendSignRequestToReviewGroup = (orgId:string, reviewGroupPublicId: string) => {\r\n let r: ISignRequest = {\r\n MilestoneId: props.milestone.PublicId,\r\n SignerId: props.signer.PublicId,\r\n WorkbookId: props.info.WorkbookId,\r\n WorkbookTemplateId: props.info.WorkbookTemplateId,\r\n //RequestMessage: form.message,\r\n ReviewGroupRequest: true,\r\n ReviewGroupOrgPublicId:orgId,\r\n ReviewGroupTemplatePublicId:reviewGroupPublicId,\r\n };\r\n\r\n _server.postApi(`../WorkbookApi/RequestApproval`, r).then((x) => {\r\n if (x.Success) {\r\n setSignRequest(x.Value);\r\n if (props.onRequest) props.onRequest(props.signer, props.milestone, x.Value);\r\n } else {\r\n toast.error(x.Message, { autoClose: false });\r\n }\r\n });\r\n };\r\n\r\n const startReview = () => {\r\n let r: ISignRequest = {\r\n MilestoneId: props.milestone.PublicId,\r\n SignerId: props.signer.PublicId,\r\n WorkbookId: props.info.WorkbookId,\r\n WorkbookTemplateId: props.info.WorkbookTemplateId,\r\n Sms: false,\r\n OwnerId: props.signer._ownerId,\r\n };\r\n _server.postApi(`../WorkbookApi/RequestApproval`, r).then((x) => {\r\n if (x.Success) {\r\n setSignRequest(x.Value);\r\n if (props.onRequest) props.onRequest(props.signer, props.milestone, x.Value);\r\n if (props.onStartSign) props.onStartSign();\r\n props.history.push(`../SignRequest/${x.Value.PublicId}`);\r\n } else {\r\n toast.error(x.Message, { autoClose: false });\r\n }\r\n });\r\n };\r\n return (\r\n <>\r\n {!isSelf && !signRequest && (\r\n
\r\n {props.signer.OwnerInstructions &&
}\r\n \r\n \r\n {reviewGroups.length > 0 && Review}\r\n Request Outside Review\r\n \r\n {reviewGroups.length > 0 && (\r\n \r\n

Review Time

\r\n Well now that you are ready, let's get your review and approval done. Good news, for this approval we've setup a review group, just click request review now and your\r\n reviewers will be notified.\r\n
\r\n {workbooksGroups.length > 0 ? (\r\n
\r\n {workbooksGroups.map((x, i) => {\r\n return (\r\n
\r\n
{x.OrgName}\r\n
{x.ReviewGroupName}\r\n
\r\n\r\n {\r\n sendSignRequestToReviewGroup(x.OrgPublicId, x.ReviewGroupPublicId);\r\n }}>\r\n Request Review Now\r\n \r\n
\r\n );\r\n })}\r\n
\r\n ) : (\r\n
\r\n
\r\n No Review Groups Found\r\n
\r\n For the simplest review process share your workbook \"{props.info.Name}\" with your review team.\r\n
\r\n )}\r\n \r\n {\r\n setShowShareWorkbook(true)\r\n }}>\r\n Share Workbook\r\n \r\n
\r\n
\r\n )}\r\n \r\n {\r\n <>\r\n

Request Approval

\r\n What is the best way to contact the person that needs to do the approval?\r\n \r\n }\r\n
\r\n {\r\n setForm({\r\n ...form,\r\n sendEmail: !(form.sendEmail === true),\r\n });\r\n }}>\r\n Email\r\n
\r\n {\r\n setForm({ ...form, sendText: !(form.sendText === true) });\r\n }}>\r\n Text Message\r\n
\r\n {\r\n setForm({ ...form, sendLink: !(form.sendLink === true) });\r\n }}>\r\n Link\r\n
\r\n
\r\n
\r\n
\r\n {form.sendEmail && (\r\n <>\r\n
\r\n \r\n
\r\n {\r\n setForm({ ...form, email: e.target.value });\r\n }}\r\n />\r\n
\r\n
\r\n {false && (\r\n
\r\n \r\n
\r\n {\r\n setForm({ ...form, message: v });\r\n }}\r\n hideExtend={true}\r\n />\r\n {form.message && form.message?.indexOf('[LINK]') === -1 && [LINK] is required to be part of the message.}\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n {form.sendText && (\r\n <>\r\n
\r\n \r\n
\r\n {\r\n setForm({ ...form, phone: e.target.value });\r\n }}\r\n />\r\n
\r\n
\r\n {false && (\r\n
\r\n \r\n
\r\n {\r\n setForm({\r\n ...form,\r\n textMessage: e.target.value,\r\n });\r\n }}\r\n />\r\n {form.textMessage && form.textMessage?.indexOf('[LINK]') === -1 && [LINK] is required to be part of the message.}\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n )}\r\n {!isSelf && signRequest && (\r\n
\r\n
\r\n

Approval Request Processed

\r\n
\r\n {signRequest.EmailSent && (\r\n
\r\n Email sent to {signRequest.Email}\r\n
\r\n )}\r\n {signRequest.TextSent && (\r\n
\r\n Text message sent to {signRequest.Phone}\r\n
\r\n )}\r\n
\r\n {!signRequest.ReviewGroupRequest && (\r\n
\r\n
\r\n Approve now link: {signRequest.DirectSignLink}\r\n
\r\n \r\n Copy Link\r\n \r\n
\r\n )}\r\n {signRequest.ReviewGroupRequest && (\r\n
\r\n

Your request is waiting to be processed

\r\n By: {props.info.TemplateDic[signRequest.ReviewGroupTemplatePublicId ?? '']?.Name ?? ''}\r\n {/* By: {reviewGroups.find(x=>x. == signRequest.ReviewGroupOrgId)?.Name} */}\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n {isSelf && (\r\n
\r\n

{props.User?.FirstName}, it's review time!

\r\n It looks like you are ready to review and approve your workbook. {props.User?.FirstName}, when you are ready to start the process click the \"Start Review\" button. Don't worry its a fast\r\n process.\r\n
\r\n
\r\n \r\n
\r\n
\r\n )}\r\n\r\n {showShareWorkbook && {LoadReviewGroups()}}>\r\n {\r\n setShowShareWorkbook(false);\r\n }} />\r\n }\r\n \r\n );\r\n};\r\n\r\nexport default connectMap()(withRouter(ApprovalRequest));\r\n","import { useState } from \"react\";\r\nimport { propTypes } from \"react-bootstrap/esm/Image\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { toast } from \"react-toastify\";\r\nimport { connectMap, IState } from \"../../../Redux/Redux\";\r\nimport { _server } from \"../../../utils/Server\";\r\nimport Icon, { IconType } from \"../../Icon/Icon\";\r\nimport { ISigner, ISignRequest, IWorkbookInfo } from \"../WorkbookTypes\";\r\n\r\ninterface IApproveProps extends RouteComponentProps, IState {\r\n info:IWorkbookInfo;\r\n request:ISignRequest;\r\n signer:ISigner;\r\n onSign?:(request:ISignRequest)=>void;\r\n}\r\ninterface MatchParams {}\r\n\r\ninterface IForm{\r\n comments?:string;\r\n signRequestId?:string;\r\n}\r\n\r\nconst Approve = (props:IApproveProps)=>{\r\n const [form, setForm] = useState({});\r\n\r\n const onSign = ()=>{\r\n let request = {...form};\r\n request.signRequestId = props.request.PublicId;\r\n _server.postApi(`../SignRequestApi/Sign`, request)\r\n .then((x)=>{\r\n if(x.Success){\r\n if(props.onSign) props.onSign(x.Value);\r\n } else {\r\n toast.error(x.Message, {autoClose:false});\r\n }\r\n });\r\n };\r\n \r\n return <>\r\n
\r\n

{props?.User?.FirstName}'s Electronic Signing & Approval

\r\n
\r\n Signing electronicly is a valid form of signature and is considered\r\n the same as signing using pen and paper. By procceding you\r\n understand that your signature is binding, and that the miss use of\r\n electronic signatures is fruad.\r\n
\r\n

Signer Information

\r\n
Name: {props.User?.FirstName} {props.User?.LastName}
\r\n
Email: {props.User?.Email}
\r\n
Phone: {props.User?.Phone}
\r\n\r\n

Approve & Sign

\r\n Click the Approve & Sign buton to complete your signature. \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 connectMap()(withRouter(Approve));","import { FormatDate } from \"../../../utils/Tools\";\r\nimport { IWorkbookInfo } from \"../WorkbookTypes\";\r\nimport { ICommentResponse } from \"./MessageTypes\";\r\n\r\ninterface ICommentProps {\r\n comment: ICommentResponse;\r\n info?:IWorkbookInfo;\r\n}\r\n\r\nconst Comment = (props: ICommentProps) => {\r\n return (\r\n <>\r\n
\r\n
\r\n From: {props.comment.Author}\r\n {FormatDate(props.comment.CreatedAtUtc, \"date\")}\r\n
\r\n
{props.comment.Message}
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Comment;\r\n","import { useState } from \"react\";\r\nimport { toast } from \"react-toastify\";\r\nimport { connectMap, IState } from \"../../../Redux/Redux\";\r\nimport { _server } from \"../../../utils/Server\";\r\nimport { FormatDate } from \"../../../utils/Tools\";\r\nimport Icon, { IconType } from \"../../Icon/Icon\";\r\nimport { IMilestone, ISigner, ISignRequest } from \"../WorkbookTypes\";\r\nimport { ICommentRequest, ICommentResponse } from \"./MessageTypes\";\r\nimport Comment from './Comment';\r\n\r\ninterface ICommentWriterProps extends IState {\r\n signRequest?:ISignRequest,\r\n mileStone?:IMilestone,\r\n workbookId?:string,\r\n signer?:ISigner,\r\n sourceType:\"Unknown\"| \"System\"| \"User\"| \"Organization\"| \"Workbook\";\r\n onSend?:(msg:ICommentResponse)=>void;\r\n}\r\n\r\ninterface IForm{\r\n message?:string\r\n}\r\n\r\nconst CommentWriter = (props:ICommentWriterProps) =>{\r\n const [form, setForm] = useState({});\r\n const [sent, setSent] = useState(false);\r\n const [messageResponse, setMessageResponse] = useState();\r\n\r\n const sendComment = () =>{\r\n if(!form.message)\r\n {\r\n toast.warning(`${props.User?.FirstName ?? 'Frank'}, you must provide a comment.`);\r\n return;\r\n }\r\n let request:ICommentRequest = {\r\n message:form.message,\r\n workbookId:props.workbookId ?? '',\r\n links:[],\r\n SourceType:props.sourceType,\r\n };\r\n\r\n if(props.mileStone) request.links?.push(props.mileStone.PublicId);\r\n if(props.signRequest) request.links?.push(props.signRequest.PublicId ?? '');\r\n if(props.signer) request.links?.push(props.signer.PublicId);\r\n \r\n _server.postApi(`../CommunicationApi/Comment`, request)\r\n .then(x=>{\r\n if(x.Success){\r\n setSent(true);\r\n setMessageResponse(x.Value);\r\n if(props.onSend) props.onSend(x.Value);\r\n }else {\r\n toast.clearWaitingQueue();\r\n toast.error(x.Message, {autoClose:false});\r\n }\r\n });\r\n };\r\n\r\n return (<>\r\n {!sent &&
\r\n
\r\n
\r\n