{"version":3,"sources":["shared/enum/SeverityEnum.ts","shared/utils/FileUtils.ts","shared/constants.ts","shared/services/APIService.ts","admin/services/AdminDecisionTreeService.ts","form/services/FormService.ts","admin/components/AdminDecisionTrees.tsx","admin/services/AdminFormService.ts","admin/components/AdminForm.tsx","admin/services/AdminRequirementsService.ts","admin/components/AdminRequirements.tsx","admin/services/AdminScriptsService.ts","admin/components/AdminScripts.tsx","admin/models/Script.ts","admin/dto/ScriptDTO.ts","admin/components/AdminEditorJs.tsx","admin/services/AdminHTMLService.ts","admin/components/AdminHTML.tsx","admin/dto/HtmlDTO.ts","admin/components/AdminEditorHtml.tsx","admin/services/AdminSubmissionsService.ts","admin/components/AdminSubmissions.tsx","admin/services/AdminTranslationService.ts","admin/components/AdminTranslations.tsx","admin/services/AdminImageService.ts","admin/components/AdminImages.tsx","admin/services/AdminGraphService.ts","admin/components/AdminGraph.tsx","admin/services/AdminDiagramService.ts","admin/components/AdminDiagram.tsx","form/services/TranslationService.ts","form/components/FormDiagram.tsx","admin/services/AdminDiagramCommentService.ts","admin/components/AdminEditorDiagram.tsx","admin/components/AdminDiagramComment.tsx","admin/AdminPage.tsx","shared/components/ImageWrapper.tsx","form/components/FormBool.tsx","form/components/FormDropdown.tsx","form/dto/FeedbackDTO.ts","form/components/FormFeedbackModal.tsx","form/services/FeedbackService.ts","form/enum/QuestionType.ts","form/enum/OperatorType.ts","form/components/FormFeedback.tsx","form/components/FormInputNumber.tsx","form/components/FormMatrix.tsx","form/components/FormRadioImage.tsx","form/components/FormRadioList.tsx","form/utils/FormUtils.ts","form/enum/FormType.ts","shared/utils/JsPDFUtils.ts","form/services/FileService.ts","form/components/FormPVGraph.tsx","form/dto/ResponseDTO.ts","form/dto/ResponsesDTO.ts","form/services/DecisionTreeService.ts","form/services/DiagramCommentService.ts","shared/utils/ReactGAUtils.ts","form/components/FormResults.tsx","form/components/FormStepper.tsx","form/components/FormSummary.tsx","form/components/FormLongText.tsx","form/components/FormCheckbox.tsx","form/components/FormTable.tsx","form/FormPage.tsx","shared/components/Logo.tsx","shared/components/ToolLogo.tsx","shared/components/SelectLanguage.tsx","shared/components/About.tsx","layout/MainLayout.tsx","login/services/AuthService.ts","shared/enum/RoleEnum.ts","login/components/AdminRoute.tsx","login/components/PrivateRoute.tsx","login/dto/LoginDTO.ts","login/components/ButtonLogin.tsx","login/LoginPage.tsx","login/components/ButtonAnonymous.tsx","login/AnonymousPage.tsx","editor/decision-tree/import-jquery.js","editor/decision-tree/shapes/transition.ts","editor/decision-tree/enums/shape.ts","editor/decision-tree/shapes/node-answer-list.ts","editor/decision-tree/shapes/node-answer-bool.ts","editor/decision-tree/shapes/node-range.ts","editor/decision-tree/shapes/node-computation.ts","editor/decision-tree/shapes/node-question-result.ts","editor/decision-tree/shapes/node-result.ts","editor/decision-tree/shapes/node-min.ts","editor/decision-tree/shapes/node-max.ts","editor/decision-tree/shapes/transition-lhs.ts","editor/decision-tree/shapes/transition-rhs.ts","editor/decision-tree/shapes/node-script.ts","editor/decision-tree/shapes/node-concat.ts","editor/decision-tree/shapes/node-multiple-answer-list.ts","editor/decision-tree/shapes/transition-concat.ts","editor/decision-tree/reader.ts","editor/decision-tree/policies/connection-create-policy.ts","editor/services/DecisionTreeEditorService.ts","editor/models/Schema.ts","editor/decision-tree/components/topbar.tsx","editor/decision-tree/components/sidebar.tsx","editor/services/AdminScriptsService.ts","editor/decision-tree/canvas.tsx","editor/dto/ScriptDTO.ts","editor/code-editor/components/JS/CodeSidebarJS.tsx","editor/code-editor/components/JS/QuestionSelectorJS.tsx","editor/code-editor/CodeEditorJS.tsx","editor/services/AdminHTMLService.ts","editor/dto/HtmlDTO.ts","editor/code-editor/components/HTML/CodeSidebarHTML.tsx","editor/services/RequirementsService.ts","editor/code-editor/components/HTML/QuestionSelectorHTML.tsx","editor/code-editor/CodeEditorHTML.tsx","editor/models/Requirements.ts","editor/requirement-editor/components/RequirementSidebar.tsx","editor/models/Requirement.ts","editor/requirement-editor/RequirementEditor.tsx","editor/form-editor/services/FormEditorService.ts","editor/form-editor/components/FormEditorSidebar.tsx","editor/form-editor/operator.enum.ts","editor/form-editor/components/FormEditorTopbar.tsx","editor/form-editor/components/FormEditorWorkPlace.tsx","editor/DecisionTreeEditorPage.tsx","editor/form-editor/FormEditor.tsx","editor/diagram-editor/component/DiagramEditorSideBar.tsx","editor/diagram-editor/DiagramEditor.tsx","App.tsx","serviceWorker.ts","form/components/FormLoading.tsx","form/components/NoConnectionModal.tsx","index.tsx"],"names":["SeverityEnum","REGEX_DISPOSITION","FileUtils","response","filename","getFileName","saveAs","data","contentDisposition","headers","result","exec","DataStorage","sessionStorage","APIService","bearerAuth","http","this","axios","create","baseURL","process","getItem","AdminDecisionTreeService","get","name","responseType","files","formData","FormData","file","append","post","delete","FormService","formName","dto","then","pdf","xlsx","value","key","t","asRichText","isUI","asStaticMarkup","isURL","translation","returnObjects","hasOwnProperty","image","url","RichText","render","ReactDOMServer","renderToStaticMarkup","asText","types","join","params","AdminDecisionTrees","props","decisionTreeService","toast","fileUpload","formService","state","decisionTrees","displayConfirmation","toDelete","getDecisionTrees","getMany","setState","e","uploadMany","show","severity","SUCCESS","detail","clear","catch","err","message","ERROR","downloadOne","downloadFile","deleteOne","label","icon","onClick","className","handleDelete","autoFocus","rowData","Fragment","type","handleDownload","title","ref","el","accept","customUpload","multiple","uploadHandler","handleUpload","rows","paginator","rowsPerPageOptions","field","filter","filterPlaceholder","header","checkIfValue","body","actionBodyTemplate","headerStyle","width","bodyStyle","textAlign","visible","modal","style","footer","renderDialogFooter","onHide","fontSize","React","Component","withTranslation","AdminFormService","put","AdminForm","fService","uploadForm","downloadForm","AdminRequirementsService","AdminRequirements","requirementService","uploadRequirements","downloadRequirements","AdminScriptsService","AdminScripts","scriptService","scripts","getScripts","fileName","Script","script","ScriptDTO","AdminEditorJs","displayNewScriptConfirmation","editorText","editorScriptName","handleEditorChange","bind","resetEditorText","handleOneUpload","str","includes","getOne","extensionPart","substring","lastIndexOf","uploadOne","event","getScriptToViewText","originalEvent","target","innerHTML","Text","onChange","currentTarget","placeholder","required","height","defaultLanguage","defaultValue","onRowClick","validationWindowForNewScript","AdminHtmlsService","AdminHtmls","htmlService","htmls","getHtmls","HtmlDTO","html","options","id","AdminEditorHtml","optionChoice","displayNewHtmlConfirmation","showChoice","getHtmlToViewText","selection","displayProperty","AdminSubmissionsService","AdminSubmissions","submissionService","downloadSubmissions","AdminTranslationService","code","AdminTranslations","translationService","translations","getTranslations","uploadTranslations","console","log","AdminImageService","AdminImages","imageService","images","getImages","AdminGraphService","AdminGraph","graphService","uploadManyGraph","AdminDiagramService","diagram","AdminDiagram","diagramService","uploadManyDiagram","TranslationService","FormDiagram","initialComment","imgRef","_getModalHeader","display","justifyContent","alignItems","previousComments","length","marginRight","border","lastComment","newPreviousComments","splice","currentComment","createRef","comments","number","relatedComments","content","dots","imageSize","showModal","currentDot","searchedComment","newLegend","window","addEventListener","handleResize","nextProps","nextContext","current","dot","newDots","map","d","x","y","comment","mouseUp","imgSize","filteredComment","c","parseInt","sort","a","b","push","_handleOnCommentClick","minWidth","minHeight","forEach","i","find","position","onDrag","handleDrag","onStart","onStop","disabled","editable","zIndex","_getDots","src","imageName","onLoad","handleImageLoad","marginTop","marginBottom","_getComments","legends","l","onLegendDelete","allPrismicKeys","backgroundColor","borderColor","onLegendSave","newComment","onCommentSave","newNumber","onCommentDelete","com","previousComment","AdminDiagramCommentService","AdminEditorDiagram","diagramCommentService","allDiagrams","allComments","prismicKeys","_getDiagrams","_getPrismicKeys","getAllDiagram","r","keysString","Object","keys","updateOne","currentDiagram","copy","assign","handleSubmit","updateComment","deleteComment","AdminDiagramComment","uploadManyDiagramComments","AdminPage","hasLocalTranslations","REACT_APP_LOCAL_TRANSLATIONS","location","href","ImageWrapper","historyListener","isOnMobile","changedWidth","isOpen","test","navigator","userAgent","history","listen","action","handleCloseModal","size","document","getElementsByClassName","maxWidth","handleOpenModal","alt","Header","closeButton","Title","Body","increaseImage","decreaseImage","withRouter","FormBool","onValueChange","checked","currentValue","FormDropdown","values","option","isSubQuestion","valueProperty","v","FeedbackDTO","screenshot","FormFeedbackModal","form","handleFormChange","inputFileRef","querySelector","click","onSubmit","onClose","variant","htmlFor","TextArea","handleUploadClick","hidden","handleFileChange","FeedbackService","QuestionType","OperatorType","FormFeedback","feedbackService","submitFeedback","FormInputNumber","showValidationMessage","modified","resetValueIfInvalid","bindOnBlur","bindKeyup","prevProps","prevState","snapshot","parentQuestion","question","validation","Number","isInteger","min","getElementById","onBlur","toLowerCase","pattern","step","max","split","modif","onKeyPress","preventDefault","unit","FormMatrix","service","imageList","handleClick","backgroundImage","FormRadioImage","FormRadioList","list","FormType","FormUtils","callback","questions","MULTIPLE","subQuestions","subQ","undefined","RADIO","MATRIX","RADIO_IMAGE","NUMBER","BOOL","allValues","questionHistory","currentQuestion","allowNextQuestion","questionId","leftValue","operator","rightValue","cache","decision_tree","has","decisionTree","computeDecisionTree","set","EQUAL","NOT_EQUAL","AND","OR","GREATER_THAN","GREATER_THAN_OR_EQUAL_TO","LOWER_THAN","LOWER_THAN_OR_EQUAL_TO","IN","NOT_IN","STRICTLY_EQUAL","STRICTLY_INCLUDED","STRICTLY_INCLUDES","checkCondition","lhs","rhs","Array","isArray","JSON","stringify","every","elem","JsPDFUtils","jsPDF","API","events","addFileToVFS","addFont","FileService","FormPVGraph","highlightedDot","activeHighlightedDot","newList","temp","LineChart","margin","top","right","bottom","left","XAxis","dataKey","domain","dy","YAxis","angle","Tooltip","cursor","formatter","toString","labelFormatter","Line","legend","isAnimationActive","stroke","strokeWidth","activeDot","concat","Math","floor","coord","ReferenceDot","onMouseEnter","handleOnMouseEnter","viewBox","fill","dx","isFront","ReferenceLine","segment","strokeDasharray","flexDirection","ResponsiveContainer","_renderGraph","ResponseDTO","ResponsesDTO","questionKey","responses","DecisionTreeService","DiagramCommentService","ReactGAUtils","category","URL","hostname","endsWith","replace","startsWith","FormResults","xlsxData","html2render","fileService","openConfirmationModal","htmlTable","loadingHTML","graphInfo","diagramInfo","_replaceTagsInHTMLFile","GRAPH","_getGraphInfo","_getDiagramInfo","graphDecisionTree","diagramDecisionTree","getAllComments","htmlFile","qst","re","RegExp","tableHeader","q","table","_getTableBody","entries","results","replaceAnswer","requirement","replaceRequirement","replaceRequirementTitle","answer","_replaceHtml","requirementTitle","regex","resultImage","regexImage","re2","re3","re4","resultTitle","regexTitle","tableBody","_getTableRow","row","PREVIOUS_QUESTION","today","Date","month","getMonth","getDate","getFullYear","workbook","utils","book_new","summaryData","getTodayDate","createSummaryTable","summaryWs","aoa_to_sheet","book_append_sheet","requirementsWs","disclaimerWs","sendXLSX","Capacitor","isNativePlatform","Browser","open","writeFile","mainContainer","clientWidth","element","classList","add","html2canvas","scale","svgRendering","scrollX","scrollY","remove","sendPDF","output","save","initJsPDF","doc","setFont","setFontSize","langImage","Image","addImage","headerHeight","logoImage","logoImageRapport","text","autoTable","startY","previous","finalY","summaryTable","head","headStyles","font","fontStyle","styles","myDataRows","myDataRow","cells","el1","innerText","el2","el3","shift","unshift","writeMultiLinesText","pageHeight","internal","pageSize","lines","splitTextToSize","line","addPage","getTextDimensions","h","formatValue","valueToRender","requirementMap","optionI","answers","prefix","suffix","toUpperCase","rowSpan","dangerouslySetInnerHTML","__html","ReactGA","getCategory","onResetClick","replaceElement","createRowResults","scroll","exportXLSX","exportPDF","_getTableResult","onPreviousClick","FormStepper","currentStep","steps","isMobile","innerWidth","verticalStepper","resize","generateStepper","i18n","on","removeEventListener","off","Map","getValidValues","createStep","shortTitle","conditions","displaySummaryStep","stopPropagation","onStepClick","stepperClassName","handleStepperClick","active","liClassName","canClicked","handleStepClick","FormSummary","submitButton","submitForm","onSubmitForm","sizeQuestion","_getSize","DROPDOWN","toDisplayInSummary","onQuestionClick","CHECKBOX","TABLE","TEXT_ONLY","handleSubmitClick","padding","transform","FormLongText","FormCheckbox","valueList","currentValues","FormTable","dropDownValues","subQuestion","column","slice","_createTableLine","_getHtml","DECISION_TREE","button","addRow","rmRow","_createTableHeader","_createTableBody","onSizeChange","rmRowAction","pop","formQuestion","STRING","onResultChange","FormPage","summary","waitValue","conditionalInfo","subQuestionsValues","currentSubQuestion","defaultValuesTable","lastQuestion","optional","getCurrentValue","isValid","requiredOptionnal","LONG_TEXT","getSubQuestionValid","validRows","rowValues","isRowValid","targetQuestion","_findQuestionByName","handleKeyUp","pathname","search","even","go","gotoSummary","handlePreviousClick","generateImage","getForm","resultQuestions","refImages","imageValues","refImageValues","language","canSubmitQuestion","handleNextClick","nextQuestionOnFill","lastValues","indexOf","index","questionIndex","findIndex","setTimeout","goToLast","getNextQuestion","nextQuestion","goToSummary","Promise","all","computeDefaultValue","computeConditionalInfo","fromSummary","previousQuestion","questionHistoryId","default_value","getQuestionHistoryByQuestion","datas","info","getValue","handleValueChange","createElement","fontWeight","createElementQuestion","handleSubmitForm","handleQuestionClick","handleReset","imageNodes","subInfo","hasPreviousPage","iconPos","isLastQuestion","hasNextPage","Logo","ToolLogo","SelectLanguage","changeLanguage","languages","item","handleSelectChange","About","openAbout","MainLayout","children","RoleEnum","AuthService","setItem","accessToken","user","removeItem","token","decodeJWT","exp","now","parse","decodeURIComponent","atob","m","p","charCodeAt","AdminRoute","role","isAuth","path","ADMIN","to","from","PrivateRoute","LoginDTO","email","password","useHistory","useLocation","authService","block","trim","login","onLogin","LoginPage","messages","closable","sticky","Password","handleLogin","useState","clicked","setClicked","marginLeft","AnonymousPage","$","jQuery","jquery","draw2d2","draw2d","Transition","sourceFigure","targetFigure","router","layout","connection","VertexRouter","selectable","userData","NAME","hybridPorts","port","setSource","setTarget","arrow","decoration","ArrowDecorator","setDimension","setBackgroundColor","setTargetDecorator","setColor","_displayInfo","tableInfo","shape","TableLayout","resizeable","bgColor","setPadding","memento","source","decorator","sourceDecorator","hashString","targetDecorator","attr","color","Connection","NODE_LIST","nodeAnswerList","defaultLabel","shapeBackgroundColor","iconBackgroundColor","iconStyle","iconColor","nodeAnswerBool","nodeComputation","nodeQuestionResult","end","nodeScript","nodeRange","nodeResult","nodeMin","nodeMax","nodeConcat","nodeMultipleAnswerList","NodeAnswerList","radius","evaluatedElementRadio","evaluatedElement","branches","nodeLabel","basic","Label","locator","CenterLocator","circle","Circle","XYRelPortLocator","outputPorts","upPort","HybridPort","setName","downPort","addPort","TopLocator","BottomLocator","fontColor","bold","SVGFigure","NodeAnswerBool","NodeRange","setDraggable","NodeComputation","NodeQuestionResult","Rectangle","NodeResult","NodeMin","nodes","NodeMax","TransitionLHS","bar","BarDecorator","setSourceDecorator","PolylineMidpointLocator","TransitionRHS","NodeScript","NodeConcat","NodeMultipleAnswerList","TransitionConcat","Reader","canvas","json","io","ConnectionCreatePolicy","policy","DragConnectionCreatePolicy","DecisionTreeEditorService","schema","currentTreeName","Schema","isEditor","Topbar","decisionTreeEditorService","leftContents","rightContents","displayDialog","currentKeyName","showConfirmDeleteDialog","showJSONDialog","currentZoom","currentBetonJSON","lockSelect","nbrRootNodes","figures","root","Writer","marshal","view","hasRootNode","saveSchema","setChanges","refreshSchemasList","status","WARN","error","hideSidebar","getBetonJSON","res","tree","Button","_updateSchemaName","_deleteDecisionTree","updateSchemaName","refreshSchemas","factor","setZoom","schemaName","changeSchemaName","currenToolsName","tooltip","changeZoom","resetZoom","getCommandStack","undo","redo","changes","tooltipOptions","_renderDialogFooter","resetSidebar","_renderDeleteFooter","prompt","Sidebar","schemaMenu","schemas","schemasItems","currentSchema","isSchemasRefreshing","showNotSaveDialog","menuFilter","loading","findAll","_refreshMenuItems","currentSchemaName","_refreshMenuItemsWithAPI","command","resetRefreshSchemas","newTree","resetChanges","setCurrentToolsName","onMouseLeave","data-shape","schemasFiltered","model","_getNodeList","_newTree","_renderNotSaveFooter","allNodes","Canvas","zoomLevel","selectedShape","nodeType","currentName","showEditPanel","showNewTreeDialog","currentKey","decisionTreeList","questionList","questionListAnswerList","questionListAnswerBool","questionListResult","refreshScriptsState","scriptList","currentToolsName","_getDatas","_draw","_setupCanvas","_setupOnDropAction","reader","loadJSONAndSchema","getFigures","figure","_updateFigureName","getLines","_updateLineName","branche","connectionId","_setLineLabel","if","than","installEditPolicy","ShowGridEditPolicy","FadeoutDecorationPolicy","setScrollArea","WheelZoomPolicy","getSelection","getPrimarySelection","parent","CommandDelete","execute","nodeName","sourcePort","targetPort","connections","j","k","brancheParent","bar2","getQuestionsByType","getAllDecisionTrees","onDrop","droppedDomNode","isRoot","dataset","node","node_answer_bool","node_answer_list","node_min","node_max","node_range","node_computation","node_question_result","node_result","node_script","node_concat","node_multiple_answer_list","getFigure","setLabel","_getComputationName","transition","getLine","_getShapeText","newSchemaName","_createNewTree","createSchema","_refreshSchemas","inputId","_setSelectionUserDataValue","_getQuestionsByType","optionLabel","_getRootCheckboxContent","placeHolder","inputText","inputTextScript","multiSelect","appendTo","_getQuestionDecisionTreeSelectContent","triStateCheckbox","String","_getNodeResultContentByType","uuid","_uuidv4","ifDropdown","thanInputNumber","nodeList","nodeT","crypto","getRandomValues","Uint8Array","contentValueType","nodeC","maxItt","itt","DataTable","scrollable","scrollHeight","Column","hsType","_resetNodeConnectionCompute","tLHS","tRHS","_getNodeAnswerListContent","_getNodeAnswerBoolContent","_getNodeResultContent","_getNodeRangeContent","_getNodeQuestionResultContent","_getNodeMinMaxContent","_getNodeComputationContent","_getNodeScriptContent","_getNodeConcatContent","_getNodeMultipleAnswerListContent","editPanel","_deleteShape","sel","_getConfigurationContent","ReadOnlySelectionPolicy","uninstallEditPolicy","BoundingboxSelectionPolicy","_loadSchema","ZOOM_PERCENT","CodeSidebarJS","isScriptsRefreshing","selectedScript","reloadScripts","actionDeleteScript","actionDownloadScript","deletedScript","chooseLabel","uploadLabel","mode","auto","handleNewScript","scriptsFiltered","tableClassName","onSelectionChange","scriptToViewCallback","stateStorage","selectionMode","QuestionSelectorJS","questionSelected","sortable","filterMatchMode","CodeEditorJS","scriptDefaultScript","refreshScript","scriptToView","handleDeletedScript","selectQuestion","editorRef","trigger","deleteScript","downloadScript","handleEditorDidMount","editor","monaco","resetRefreshScriptsState","onMount","isActive","CodeSidebarHTML","actionDownloadHtml","actionDeleteHtml","rowClassName","_rowClass","RequirementsService","editorRequirementName","QuestionSelectorHTML","selectionQuestion","selectionQuestionValue","selectionPrismic","requirements","selectionRequirement","selectionRequirementAnswer","_getQuestions","getRequirements","getPrismicKeys","selector","questionValueSelected","requirementSelected","requirementAnswerSelected","prismicKeySelected","imagePrismicKeySelected","filterBy","transformObj","CodeEditorHTML","htmlDefaultScript","selectQuestionValue","selectRequirement","selectRequirementAnswer","selectPrismicKey","selectImagePrismicKey","deleteHtml","downloadHtml","getOneIsActive","activeOne","Requirements","RequirementSidebar","isRequirementsRefreshing","selectedRequirement","displayNewRequirementConfirmation","reloadRequirements","resetRefreshRequirementsState","deleteRequirementAction","actionDownloadRequirement","resetEditor","obj","handleUploadObject","resetDeleteRequirementAction","dtoRequi","jsonString","f","File","deletedRequirement","setCurrentRequirement","requirementToViewCallback","onRowReorder","reorderableColumns","rowReorder","rowReorderIcon","Requirement","group","uppercase","RequirementEditor","refreshRequirement","requirementName","answerName","handleDeletedRequirement","groups","filteredGroups","refreshRequirementsState","allDecisionTrees","prefixes","suffixes","filteredPrefixes","filteredSuffixes","displayDeleteConfirmation","deleteRequirement","downloadRequirement","currentRequirement","searchGroup","searchPrefix","searchSuffix","getSchemas","requirementsArrived","counter","groupAlreadyStored","prefixAlreadyStored","suffixAlreadyStored","uniq_fast","seen","out","len","decisionTreesTransform","dt","schemasTransform","query","requi","suggestions","completeMethod","dropdown","onIcon","offIcon","FormEditorService","FormEditorSidebar","formEditorService","displayAddQuestionDialog","displayDeleteAllQuestionDialog","displayConfigFormDialog","currentNewQuestionType","currentNewQuestion","formConfig","googleTag","prismic","REQUIREMENT","updateQuestions","refreshQuestionList","addQuestion","onQuestionSelection","questionTypes","formConfigPrismic","commonPrismic","_onQuestionOrder","columnKey","_addNewEmptyQuestion","_renderAddQuestionDialogFooter","deleteAllQuestion","saveFormConfig","OperatorEnum","FormEditorTopbar","showRenameDialog","showFormDialog","currentQuestionName","_updateCurrentQuestionName","_deleteQuestion","updateQuestionName","deleteQuestion","newName","saveForm","_renderRenameDialogFooter","currentForm","FormEditorWorkPlace","nodeCount","nodeCount2","isEditing","displayAddValueDialog","displayAddConditionDialog","displayDeleteConditionDialog","displayEditConditionDialog","currentImageValue","currentSubQuestionType","currentImageName","currentCondition","currentNode","currentConditionEdit","activeIndex","rowIndex","vTable","_setQuestionValueWithDoubleKey","parseFloat","valueAsNumber","img","editMode","_editValue","_editImageValue","rowEditor","_actionBodyTemplate","table2","lazy","tableSubQuestions","_editSubQuestion","_arrayBodyTemplate","_checkboxBodyTemplate","_getNodeById","_getConditionByType","condition","prototype","call","_actionImageBodyTemplate","_getConditionsDatas","side","_editConditionalInfo","_actionConditionalInfoBodyTemplate","operatorList","_getContentByType","onTabChange","leftIcon","_setQuestionValue","currentQuestion2","_getSizeContent","_getQuestionConfig","_getQuestionImages","showClear","_getQuestionConditions","nodeTemplate","_getNodeTemplate","_getQuestionConditionalInfo","_renderAddValueDialogFooter","_getAddValueDialogContent","_renderAddConditionDialogFooter","_getAddConditionContent","cols","Lang","FormEditor","currentQuestionNameTwo","_getDecisionTrees","updateForm","_refreshQuestionList","_renameQuestion","DiagramEditorSideBar","displayNewDiagramConfirmation","newDiagramImage","newDiagramName","handleNewDiagram","onNewDiagram","onDiagramSelection","DiagramEditor","showDeleteModal","diagramName","diagramImage","newDiagram","DecisionTreeEditorPage","MIN_ZOOM_LVL","MAX_ZOOM_LVL","ZOOM_FACTOR","canvasPosition","displayShapeForm","isReadOnly","menuItems","activeTool","activeItem","use","initReactI18next","BrowserDetector","HttpApi","init","lng","fallbackLng","backend","loadPath","App","languagesMapping","REACT_APP_URL_FR","REACT_APP_URL_NL","updateTitle","initLanguage","updateLanguage","searchParams","locale","targetLanguage","favicon","Idfa","getAdvertisingInfo","getPlatform","isAdTrackingLimited","initialize","buttonText","contentClasses","buttonClasses","disableStyles","Boolean","match","FormLoading","NoConnectionModal","backdrop","apiUrl","ReactDOM","Network","addListener","connected","reload","Suspense","fallback","polling","getStatus","StrictMode","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.472ef442.chunk.js","sourcesContent":["export enum SeverityEnum {\r\n SUCCESS = 'success',\r\n INFO = 'info',\r\n WARN = 'warn',\r\n ERROR = 'error'\r\n}","import { AxiosResponse } from 'axios';\r\nimport { saveAs } from 'file-saver';\r\n\r\nconst REGEX_DISPOSITION = /filename=\"(.+)\"/;\r\n\r\nexport class FileUtils {\r\n\r\n /**\r\n * Download a file via AxiosResponse\r\n */\r\n static downloadFile(response: AxiosResponse) {\r\n const filename = FileUtils.getFileName(response);\r\n if (filename) {\r\n saveAs(response.data, filename);\r\n }\r\n }\r\n\r\n static getFileName(response: AxiosResponse) {\r\n const contentDisposition = response.headers['content-disposition'];\r\n if (!contentDisposition) {\r\n return null;\r\n }\r\n\r\n\r\n const result = REGEX_DISPOSITION.exec(contentDisposition);\r\n\r\n if (!result) {\r\n return null;\r\n }\r\n return result[1];\r\n }\r\n}","export const DataStorage = sessionStorage;\r\nexport const KEY_ACCESS_TOKEN = 'access_token';\r\n","import axios, { AxiosInstance } from 'axios';\r\nimport { DataStorage, KEY_ACCESS_TOKEN } from '../constants';\r\n\r\nexport class APIService {\r\n\r\n protected http: AxiosInstance;\r\n\r\n constructor(bearerAuth: boolean = true) {\r\n this.http = axios.create({\r\n baseURL: process.env.REACT_APP_API_URL,\r\n headers: (bearerAuth)\r\n ? { 'Authorization': `Bearer ${DataStorage.getItem(KEY_ACCESS_TOKEN)}` }\r\n : {}\r\n });\r\n }\r\n}","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { DecisionTree } from '../models/DecisionTree';\r\n\r\nexport class AdminDecisionTreeService extends APIService {\r\n\r\n /**\r\n * Get many decision trees\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/decision-trees');\r\n }\r\n\r\n /**\r\n * Download a decision tree by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/decision-trees/${name}/download`, { responseType: 'blob' });\r\n }\r\n\r\n /**\r\n * Upload many decision trees\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/decision-trees/upload`, formData);\r\n }\r\n\r\n /**\r\n * Delete one decision tree\r\n */\r\n deleteOne(name: string) {\r\n return this.http.delete(`/decision-trees/${name}`);\r\n }\r\n}","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { ResponsesDTO } from '../dto/ResponsesDTO';\r\nimport { Form } from '../models/Form';\r\nimport { RequirementResults } from '../models/RequirementResults';\r\nimport { TFunction } from 'i18next';\r\nimport { RichText } from 'prismic-reactjs';\r\nimport ReactDOMServer from 'react-dom/server';\r\n\r\nexport class FormService extends APIService {\r\n\r\n /**\r\n * Get form\r\n */\r\n getForm(name: string) {\r\n return this.http.get
('/forms/' + name);\r\n }\r\n\r\n /**\r\n * Submit the form responses\r\n */\r\n async submitForm(formName: string, dto: ResponsesDTO) {\r\n return this.http.post(`/forms/${ formName }/submissions`, dto)\r\n .then((response: AxiosResponse) => {\r\n return response.data;\r\n });\r\n }\r\n\r\n async sendPDF(formName: string, pdf: any) {\r\n const formData = new FormData();\r\n formData.append('pdf', pdf)\r\n return this.http.post(`forms/${ formName }/pdf`, formData);\r\n }\r\n\r\n async sendXLSX(formName: string, xlsx: any) {\r\n return this.http.post(`forms/${ formName }/xlsx`, xlsx);\r\n }\r\n\r\n checkIfValue(value: any, key: string) {\r\n return (value) ? value : key;\r\n }\r\n\r\n t(t: TFunction, key: string, asRichText: boolean, isUI: boolean = false, asStaticMarkup: boolean = false, isURL: boolean = false): any {\r\n if (isUI) {\r\n return t(key);\r\n }\r\n else if (isURL) {\r\n const translation = t(key, { returnObjects: true }) as any;\r\n if (translation.hasOwnProperty('image')) {\r\n return `${process.env.REACT_APP_API_URL}/images/${translation.image}/download`;\r\n }\r\n else if (translation.hasOwnProperty('url')) {\r\n return translation.url;\r\n }\r\n else {\r\n return null;\r\n }\r\n }\r\n\r\n if (asRichText) {\r\n const result = RichText.render(t(key, { returnObjects: true }));\r\n return result ? (asStaticMarkup ? ReactDOMServer.renderToStaticMarkup(result as any) : result) : t(key);\r\n }\r\n else {\r\n const result = RichText.asText(t(key, { returnObjects: true }));\r\n return result ? result : key;\r\n }\r\n }\r\n\r\n getQuestionsByType(t: string[]) {\r\n let types = t.join(',')\r\n return this.http.get('/forms/questions', { params: { types } });\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { DecisionTree } from \"../models/DecisionTree\";\r\nimport { AdminDecisionTreeService } from \"../services/AdminDecisionTreeService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n decisionTrees: DecisionTree[];\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n}\r\n\r\nclass AdminDecisionTrees extends React.Component {\r\n private readonly decisionTreeService: AdminDecisionTreeService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.decisionTreeService = new AdminDecisionTreeService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n this.formService = new FormService();\r\n this.state = {\r\n decisionTrees: [],\r\n displayConfirmation: false,\r\n toDelete: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getDecisionTrees();\r\n }\r\n\r\n /**\r\n * Refresh decision trees\r\n */\r\n getDecisionTrees() {\r\n this.decisionTreeService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ decisionTrees: response.data });\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.decisionTreeService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_decision_tree_upload_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n this.getDecisionTrees();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_decision_tree_upload_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(name: string) {\r\n this.decisionTreeService\r\n .downloadOne(name)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * Delete decision tree\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.decisionTreeService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_decision_tree_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getDecisionTrees();\r\n });\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: DecisionTree) {\r\n return (\r\n \r\n this.handleDownload(rowData.name)}\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.name })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n
\r\n
\r\n (this.fileUpload = el)}\r\n accept=\"application/json\"\r\n customUpload={true}\r\n multiple={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_decision_tree_upload_content\")}

}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={{ width: \"8rem\" }}\r\n bodyStyle={{ textAlign: \"center\" }}\r\n >\r\n \r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminDecisionTrees);\r\n","import { APIService } from '../../shared/services/APIService';\r\n\r\nexport class AdminFormService extends APIService {\r\n\r\n /**\r\n * Upload and replace the form\r\n *\r\n * @role Admin\r\n */\r\n uploadForm(file: File) {\r\n const formData = new FormData();\r\n formData.append('form', file);\r\n return this.http.put('/forms/upload', formData);\r\n }\r\n\r\n /**\r\n * Download the current form\r\n */\r\n downloadForm() {\r\n return this.http.get('/forms/download', { responseType: 'blob' });\r\n }\r\n}","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { AdminFormService } from \"../services/AdminFormService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from '../../form/services/FormService';\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminForm extends React.Component {\r\n private readonly fService: FormService;\r\n private readonly formService: AdminFormService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.fService = new FormService();\r\n this.formService = new AdminFormService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.formService\r\n .uploadForm(e.files[0])\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_form_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_form_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload() {\r\n this.formService.downloadForm().then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n this.handleDownload()}\r\n />\r\n (this.fileUpload = el)}\r\n accept=\"application/json\"\r\n customUpload={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_form_upload\")}

}\r\n >\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminForm);\r\n","import { APIService } from '../../shared/services/APIService';\r\n\r\nexport class AdminRequirementsService extends APIService {\r\n\r\n /**\r\n * Upload and replace the requirements\r\n *\r\n * @role Admin\r\n */\r\n uploadRequirements(file: File) {\r\n const formData = new FormData();\r\n formData.append('requirements', file);\r\n return this.http.put('/forms/default/requirements/upload', formData);\r\n }\r\n\r\n /**\r\n * Download the current requirements\r\n *\r\n * @role Admin\r\n */\r\n downloadRequirements() {\r\n return this.http.get('/forms/default/requirements/download', { responseType: 'blob' });\r\n }\r\n}","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { AdminRequirementsService } from \"../services/AdminRequirementsService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from '../../form/services/FormService';\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminRequirements extends Component {\r\n private readonly requirementService: AdminRequirementsService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.requirementService = new AdminRequirementsService();\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.requirementService\r\n .uploadRequirements(e.files[0])\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_requirements_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_requirements_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload() {\r\n this.requirementService.downloadRequirements().then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n this.handleDownload()}\r\n />\r\n (this.fileUpload = el)}\r\n accept=\"application/json\"\r\n customUpload={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n >\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminRequirements);\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport {Script} from \"../models/Script\";\r\nimport {ScriptDTO} from \"../dto/ScriptDTO\";\r\n\r\nexport class AdminScriptsService extends APIService {\r\n\r\n /**\r\n * Get many scripts\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/scripts');\r\n }\r\n\r\n /**\r\n * Get the text of a script by name\r\n */\r\n getOne(name: string): Promise>{\r\n return this.http.get(`/scripts/${name}/text`);\r\n }\r\n \r\n /**\r\n * Download a script by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/scripts/${name}/download`, { responseType: 'blob' });\r\n }\r\n\r\n\r\n /**\r\n * Upload many scripts\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/scripts/upload`, formData);\r\n }\r\n\r\n /**\r\n * Upload one script\r\n */\r\n uploadOne(dto: ScriptDTO) {\r\n return this.http.post(`/scripts/uploadone`, dto);\r\n }\r\n\r\n /**\r\n * Delete one script\r\n */\r\n deleteOne(name: string) {\r\n return this.http.delete(`/scripts/${name}`);\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { Script } from \"../models/Script\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { AdminScriptsService } from \"../services/AdminScriptsService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n scripts: Script[];\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n}\r\n\r\nclass AdminScripts extends React.Component {\r\n private readonly scriptService: AdminScriptsService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.scriptService = new AdminScriptsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n this.formService = new FormService();\r\n this.state = {\r\n scripts: [],\r\n displayConfirmation: false,\r\n toDelete: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getScripts();\r\n }\r\n\r\n /**\r\n * Refresh scripts\r\n */\r\n getScripts() {\r\n this.scriptService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ scripts: response.data });\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.scriptService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_script_upload_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n this.getScripts();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_script_upload_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(name: string) {\r\n this.scriptService\r\n .downloadOne(name)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * Delete script\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.scriptService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_script_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getScripts();\r\n });\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: Script) {\r\n return (\r\n \r\n this.handleDownload(rowData.fileName)}\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.fileName })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n
\r\n
\r\n (this.fileUpload = el)}\r\n accept=\"application/x-javascript\"\r\n customUpload={true}\r\n multiple={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_script_upload_content\")}

}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={{ width: \"8rem\" }}\r\n bodyStyle={{ textAlign: \"center\" }}\r\n >\r\n \r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminScripts);\r\n","export class Script {\r\n\r\n constructor(\r\n readonly fileName: string,\r\n readonly script: string\r\n ) {\r\n }\r\n}\r\n","export class ScriptDTO {\r\n\r\n constructor(\r\n readonly fileName: string,\r\n readonly script: string\r\n ) {\r\n }\r\n }","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Input } from \"@bbri/ui\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { Script } from \"../models/Script\";\r\nimport { ScriptDTO } from \"../dto/ScriptDTO\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { AdminScriptsService } from \"../services/AdminScriptsService\";\r\n\r\n\r\nimport Editor from \"@monaco-editor/react\";\r\n\r\ninterface Props extends WithTranslation {\r\n\r\n}\r\n\r\ninterface States {\r\n scripts: Script[];\r\n displayConfirmation: boolean;\r\n displayNewScriptConfirmation: boolean;\r\n toDelete: string | null;\r\n script: Script;\r\n editorText: string;\r\n editorScriptName: string;\r\n}\r\n\r\nclass AdminEditorJs extends React.Component {\r\n private readonly scriptService: AdminScriptsService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.scriptService = new AdminScriptsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n this.formService = new FormService();\r\n this.state = {\r\n scripts: [],\r\n displayConfirmation: false,\r\n displayNewScriptConfirmation: false,\r\n toDelete: null,\r\n script: new Script(\"\", \"\"),\r\n editorText: \"\",\r\n editorScriptName: \"\"\r\n };\r\n\r\n this.handleEditorChange = this.handleEditorChange.bind(this);\r\n this.resetEditorText = this.resetEditorText.bind(this);\r\n this.handleOneUpload = this.handleOneUpload.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getScripts();\r\n }\r\n\r\n\r\n /**\r\n * Refresh scripts\r\n */\r\n getScripts() {\r\n this.scriptService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ scripts: response.data });\r\n });\r\n }\r\n\r\n getScriptToViewText(str: string) {\r\n if (!str || !str.includes(\".js\")) {\r\n return;\r\n }\r\n\r\n this.scriptService\r\n .getOne(str)\r\n .then((response: AxiosResponse) => {\r\n\r\n this.setState({ editorText: response.data, editorScriptName: str });\r\n\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.scriptService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_script_upload_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n this.getScripts();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_script_upload_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n /**\r\n * On upload for one script\r\n */\r\n handleOneUpload() {\r\n\r\n let fileName = this.state.editorScriptName;\r\n\r\n if (!fileName) {\r\n return;\r\n }\r\n\r\n let extensionPart = fileName.substring(fileName.lastIndexOf('.'));\r\n const allowedTypes = ['.js'];\r\n\r\n // = Validate the types\r\n if (!allowedTypes.includes(extensionPart)) {\r\n fileName += \".js\";\r\n }\r\n\r\n const dto = new ScriptDTO(fileName, this.state.editorText);\r\n\r\n this.scriptService\r\n .uploadOne(dto)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_script_upload_one_toast_success\", false),\r\n });\r\n this.resetEditorText();\r\n this.getScripts();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_script_upload_one_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(name: string) {\r\n this.scriptService\r\n .downloadOne(name)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * Delete script\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.scriptService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_script_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getScripts();\r\n this.resetEditorText();\r\n });\r\n }\r\n\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: Script) {\r\n return (\r\n \r\n this.handleDownload(rowData.fileName)}\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.fileName })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n actionHeaderTemplate(rowData: Script) {\r\n return (\r\n \r\n\r\n \r\n );\r\n }\r\n\r\n handleEditorChange(value, event) {\r\n\r\n this.setState({ editorText: value });\r\n }\r\n\r\n onRowClick(event) {\r\n this.getScriptToViewText(event.originalEvent.target.innerHTML);\r\n }\r\n\r\n\r\n resetEditorText() {\r\n this.setState({\r\n editorText: \"//create a new script\",\r\n displayNewScriptConfirmation: false,\r\n editorScriptName: \"\"\r\n });\r\n }\r\n\r\n validationWindowForNewScript() {\r\n return (\r\n
\r\n this.setState({ displayNewScriptConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.resetEditorText()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n
\r\n\r\n
\r\n\r\n \r\n this.setState({ editorScriptName: e.currentTarget.value })}\r\n\r\n placeholder=\"Script name\"\r\n required={true}\r\n style={{ width: '20rem' }}\r\n />\r\n \r\n\r\n
\r\n\r\n
\r\n {/* this.setState({ value: e.currentTarget.value })}\r\n rows={5} \r\n cols={50} \r\n autoResize /> */}\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n this.setState({ displayNewScriptConfirmation: true })\r\n }\r\n />\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={{ width: \"8rem\" }}\r\n bodyStyle={{ textAlign: \"center\" }}\r\n >\r\n \r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n\r\n\r\n this.setState({ displayNewScriptConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default withTranslation()(AdminEditorJs);\r\n\r\n\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport {Html} from \"../models/HTML\";\r\nimport {HtmlDTO} from \"../dto/HtmlDTO\";\r\n\r\nexport class AdminHtmlsService extends APIService {\r\n\r\n /**\r\n * Get many htmls\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/htmls');\r\n }\r\n\r\n /**\r\n * Get the text of a html by name\r\n */\r\n getOne(name: string): Promise> {\r\n return this.http.get(`/htmls/${name}/text`);\r\n }\r\n \r\n /**\r\n * Download a html by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/htmls/${name}/download`, { responseType: 'blob' });\r\n }\r\n \r\n \r\n /**\r\n * Upload many htmls\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/htmls/upload`, formData);\r\n }\r\n\r\n /**\r\n * Upload one html\r\n */\r\n uploadOne(dto: HtmlDTO) {\r\n return this.http.post(`/htmls/uploadone`, dto);\r\n } \r\n\r\n /**\r\n * Delete one html\r\n */\r\n deleteOne(name: string) {\r\n return this.http.delete(`/htmls/${name}`);\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { Html } from \"../models/HTML\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { AdminHtmlsService } from \"../services/AdminHTMLService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n htmls: Html[];\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n}\r\n\r\nclass AdminHtmls extends React.Component {\r\n private readonly htmlService: AdminHtmlsService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.htmlService = new AdminHtmlsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n this.formService = new FormService();\r\n this.state = {\r\n htmls: [],\r\n displayConfirmation: false,\r\n toDelete: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getHtmls();\r\n }\r\n\r\n /**\r\n * Refresh htmls\r\n */\r\n getHtmls() {\r\n this.htmlService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ htmls: response.data });\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.htmlService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_html_upload_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n this.getHtmls();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_html_upload_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(name: string) {\r\n this.htmlService\r\n .downloadOne(name)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * Delete html\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.htmlService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_html_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getHtmls();\r\n });\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: Html) {\r\n return (\r\n \r\n this.handleDownload(rowData.fileName)}\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.fileName })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n
\r\n
\r\n (this.fileUpload = el)}\r\n accept=\".html\"\r\n customUpload={true}\r\n multiple={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_html_upload_content\")}

}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={{ width: \"8rem\" }}\r\n bodyStyle={{ textAlign: \"center\" }}\r\n >\r\n \r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminHtmls);\r\n","export class HtmlDTO {\r\n\r\n constructor(\r\n readonly fileName: string,\r\n readonly html: string\r\n ) {\r\n }\r\n }","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Input, Select } from \"@bbri/ui\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { Html } from \"../models/HTML\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { AdminHtmlsService } from \"../services/AdminHTMLService\";\r\n\r\nimport Editor from \"@monaco-editor/react\";\r\nimport { HtmlDTO } from \"../dto/HtmlDTO\";\r\n\r\n\r\nconst options = [\r\n {\r\n id: 0,\r\n name: \"Create or update html file\",\r\n },\r\n {\r\n id: 1,\r\n name: \"Upload existing html file\",\r\n }\r\n];\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n optionChoice: any;\r\n htmls: Html[];\r\n displayConfirmation: boolean;\r\n displayNewHtmlConfirmation: boolean;\r\n toDelete: string | null;\r\n editorText: string;\r\n editorScriptName: string;\r\n}\r\n\r\nclass AdminEditorHtml extends React.Component {\r\n private readonly htmlService: AdminHtmlsService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.htmlService = new AdminHtmlsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n this.formService = new FormService();\r\n this.state = {\r\n optionChoice: options[0],\r\n htmls: [],\r\n displayConfirmation: false,\r\n displayNewHtmlConfirmation: false,\r\n toDelete: null,\r\n editorText: \"\",\r\n editorScriptName: \"\"\r\n };\r\n\r\n this.showChoice = this.showChoice.bind(this);\r\n this.handleEditorChange = this.handleEditorChange.bind(this);\r\n this.resetEditorText = this.resetEditorText.bind(this);\r\n this.handleOneUpload = this.handleOneUpload.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n this.getHtmls();\r\n }\r\n\r\n\r\n /**\r\n * Show the choosen option\r\n */\r\n showChoice(value, event) {\r\n this.setState({ optionChoice: value });\r\n }\r\n\r\n\r\n /**\r\n * Refresh htmls\r\n */\r\n getHtmls() {\r\n this.htmlService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ htmls: response.data });\r\n });\r\n }\r\n\r\n getHtmlToViewText(str: string) {\r\n if (!str || !str.includes(\".html\")) {\r\n return;\r\n }\r\n\r\n this.htmlService\r\n .getOne(str)\r\n .then((response: AxiosResponse) => {\r\n\r\n this.setState({ editorText: response.data, editorScriptName: str });\r\n\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.htmlService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_html_upload_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n this.getHtmls();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_html_upload_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On upload for one html\r\n */\r\n handleOneUpload() {\r\n\r\n let fileName = this.state.editorScriptName;\r\n\r\n if (!fileName) {\r\n return;\r\n }\r\n\r\n let extensionPart = fileName.substring(fileName.lastIndexOf('.'));\r\n const allowedTypes = ['.html'];\r\n\r\n // = Validate the types\r\n if (!allowedTypes.includes(extensionPart)) {\r\n fileName += \".html\";\r\n }\r\n\r\n\r\n const dto = new HtmlDTO(fileName, this.state.editorText);\r\n\r\n this.htmlService\r\n .uploadOne(dto)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_html_upload_one_toast_success\", false),\r\n });\r\n this.resetEditorText();\r\n this.getHtmls();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_html_upload_one_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(name: string) {\r\n this.htmlService\r\n .downloadOne(name)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * Delete html\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.htmlService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_html_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getHtmls();\r\n });\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: Html) {\r\n return (\r\n \r\n this.handleDownload(rowData.fileName)}\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.fileName })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n\r\n handleEditorChange(value, event) {\r\n this.setState({ editorText: value });\r\n }\r\n\r\n onRowClick(event) {\r\n this.getHtmlToViewText(event.originalEvent.target.innerHTML);\r\n }\r\n\r\n\r\n resetEditorText() {\r\n this.setState({\r\n editorText: \"\",\r\n displayNewHtmlConfirmation: false,\r\n editorScriptName: \"\"\r\n });\r\n }\r\n\r\n validationWindowForNewScript() {\r\n return (\r\n
\r\n this.setState({ displayNewHtmlConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.resetEditorText()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n\r\n {/*\r\n Create new html option \r\n */}\r\n\r\n {this.state.optionChoice.id === 0 &&\r\n <>\r\n
\r\n\r\n \r\n this.setState({ editorScriptName: e.currentTarget.value })}\r\n\r\n placeholder=\"Html file name\"\r\n required={true}\r\n style={{ width: '20rem' }}/>\r\n \r\n\r\n
\r\n
\r\n \"\r\n value={this.state.editorText}\r\n onChange={this.handleEditorChange}/>\r\n
\r\n
\r\n this.setState({ displayNewHtmlConfirmation: true })}/>\r\n \r\n
\r\n
\r\n this.setState({ displayNewHtmlConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n \r\n }\r\n\r\n {/*\r\n Upload existing html option \r\n */}\r\n\r\n {this.state.optionChoice.id === 1 &&\r\n <>\r\n
\r\n (this.fileUpload = el)}\r\n accept=\".html\"\r\n customUpload={true}\r\n multiple={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_html_upload_content\")}

}\r\n >\r\n
\r\n \r\n }\r\n\r\n\r\n {/*\r\n Used for both options \r\n */}\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={{ width: \"8rem\" }}\r\n bodyStyle={{ textAlign: \"center\" }}\r\n >\r\n \r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminEditorHtml);\r\n","import { APIService } from '../../shared/services/APIService';\r\n\r\nexport class AdminSubmissionsService extends APIService {\r\n /**\r\n * Download the current submissions\r\n *\r\n * @role Admin\r\n */\r\n downloadSubmissions() {\r\n return this.http.get('/forms/default/submissions/download', { responseType: 'blob' });\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { AdminSubmissionsService } from \"../services/AdminSubmissionsService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminSubmissions extends Component {\r\n private readonly submissionService: AdminSubmissionsService;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.submissionService = new AdminSubmissionsService();\r\n\r\n this.t = this.props.t;\r\n this.formService = new FormService();\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload() {\r\n this.submissionService.downloadSubmissions().then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n this.handleDownload()}\r\n />\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminSubmissions);\r\n","import { APIService } from '../../shared/services/APIService';\r\nimport { AxiosResponse } from \"axios\";\r\n\r\nexport class AdminTranslationService extends APIService {\r\n\r\n /**\r\n * Upload and replace the translations\r\n *\r\n * @role Admin\r\n */\r\n uploadTranslations(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.put('/translations/upload', formData);\r\n }\r\n\r\n /**\r\n * Get many decision trees\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/translations');\r\n }\r\n\r\n /**\r\n * Download a decision tree by name\r\n */\r\n downloadOne(code: string) {\r\n return this.http.get(`/translations/${code}/download`, { responseType: 'blob' });\r\n }\r\n\r\n deleteOne(code: string) {\r\n return this.http.delete(`/translations/${code}`);\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from 'primereact/button';\r\nimport { Card } from \"primereact/card\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { AdminTranslationService } from \"../services/AdminTranslationService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { Image } from \"../models/Image\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { Dialog } from \"primereact/dialog\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n translations: any[];\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n}\r\n\r\nclass AdminTranslations extends React.Component {\r\n private readonly translationService: AdminTranslationService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.translationService = new AdminTranslationService();\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n\r\n this.state = {\r\n translations: [],\r\n displayConfirmation: false,\r\n toDelete: null,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.getTranslations();\r\n }\r\n\r\n /**\r\n * Refresh decision trees\r\n */\r\n getTranslations() {\r\n this.translationService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ translations: response.data });\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.translationService\r\n .uploadTranslations(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_translations_toast_success\"),\r\n });\r\n this.fileUpload?.clear();\r\n this.getTranslations();\r\n })\r\n .catch(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: this.t(\"ui_admin_translations_toast_error\"),\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(code: string) {\r\n this.translationService\r\n .downloadOne(code)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n handleDelete() {\r\n console.log(this.state);\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.translationService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_translation_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getTranslations();\r\n });\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false }) }\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete() }\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: any) {\r\n return (\r\n \r\n this.handleDownload(rowData.code) }\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.code })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el) }/>\r\n
\r\n
\r\n (this.fileUpload = el) }\r\n accept=\"application/json\"\r\n customUpload={ true }\r\n multiple={ true }\r\n uploadHandler={ (e: { files: File[] }) => this.handleUpload(e) }\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_translations_upload\")}

}\r\n >\r\n
\r\n\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={ { width: \"8rem\" } }\r\n bodyStyle={ { textAlign: \"center\" } }\r\n >\r\n \r\n this.setState({ displayConfirmation: false }) }\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminTranslations);\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { Image } from '../models/Image';\r\n\r\nexport class AdminImageService extends APIService {\r\n\r\n /**\r\n * Get many decision trees\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/images');\r\n }\r\n\r\n /**\r\n * Download a decision tree by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/images/${name}/download`, { responseType: 'blob' });\r\n }\r\n\r\n /**\r\n * Upload many decision trees\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/images/upload`, formData);\r\n }\r\n\r\n /**\r\n * Delete one decision tree\r\n */\r\n deleteOne(name: string) {\r\n return this.http.delete(`/images/${name}`);\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Column } from \"primereact/column\";\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { Image } from \"../models/Image\";\r\nimport { AdminImageService } from \"../services/AdminImageService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n images: Image[];\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n}\r\n\r\nclass AdminImages extends React.Component {\r\n private readonly imageService: AdminImageService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.imageService = new AdminImageService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n this.formService = new FormService();\r\n this.state = {\r\n images: [],\r\n displayConfirmation: false,\r\n toDelete: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getImages();\r\n }\r\n\r\n /**\r\n * Refresh decision trees\r\n */\r\n getImages() {\r\n this.imageService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ images: response.data });\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.imageService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_image_upload_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n this.getImages();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_image_upload_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload(name: string) {\r\n this.imageService\r\n .downloadOne(name)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * Delete decision tree\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.imageService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_image_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null });\r\n this.getImages();\r\n });\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
\r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
\r\n );\r\n }\r\n\r\n actionBodyTemplate(rowData: Image) {\r\n return (\r\n \r\n this.handleDownload(rowData.name)}\r\n >\r\n \r\n this.setState({ displayConfirmation: true, toDelete: rowData.name })\r\n }\r\n >\r\n \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n
\r\n
\r\n (this.fileUpload = el)}\r\n accept=\"image/*\"\r\n customUpload={true}\r\n multiple={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_image_upload_content\")}

}\r\n >\r\n
\r\n
\r\n \r\n \r\n \r\n this.actionBodyTemplate(rowData)\r\n }\r\n headerStyle={{ width: \"8rem\" }}\r\n bodyStyle={{ textAlign: \"center\" }}\r\n >\r\n \r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
\r\n \r\n Are you sure you want to proceed?\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminImages);\r\n","import { APIService } from '../../shared/services/APIService';\r\n\r\nexport class AdminGraphService extends APIService {\r\n\r\n /**\r\n * Upload and replace the form\r\n *\r\n * @role Admin\r\n */\r\n uploadManyGraph(file: File) {\r\n const formData = new FormData();\r\n formData.append('graphs', file);\r\n return this.http.put('/graph/uploadmany', formData);\r\n }\r\n\r\n \r\n\r\n}","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\r\nimport { AdminFormService } from \"../services/AdminFormService\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from '../../form/services/FormService';\r\nimport { AdminGraphService } from \"../services/AdminGraphService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminGraph extends React.Component {\r\n private readonly fService: FormService;\r\n private readonly graphService: AdminGraphService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.fService = new FormService();\r\n this.graphService = new AdminGraphService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.graphService\r\n .uploadManyGraph(e.files[0])\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_graph_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_graph_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * On download\r\n */\r\n// handleDownload() {\r\n// this.formService.downloadForm().then((response: AxiosResponse) => {\r\n// FileUtils.downloadFile(response);\r\n// });\r\n// }\r\n\r\n// TODO Change by prismic keys\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n this.handleDownload()}\r\n />\r\n (this.fileUpload = el)}\r\n accept=\"application/json\"\r\n customUpload={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_form_upload\")}

}\r\n >\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminGraph);\r\n","import { Diagram } from '../../form/models/Diagram';\r\nimport { APIService } from '../../shared/services/APIService';\r\n\r\nexport class AdminDiagramService extends APIService {\r\n\r\n // Get all diagrams\r\n getAllDiagram() {\r\n return this.http.get(\"/diagrams\")\r\n }\r\n\r\n // Create diagram\r\n updateOne(diagram: Diagram) {\r\n return this.http.put(\"/diagrams/updateone\", diagram)\r\n }\r\n\r\n /**\r\n * Upload and replace the form\r\n *\r\n * @role Admin\r\n */\r\n uploadManyDiagram(file: File) {\r\n const formData = new FormData();\r\n formData.append('diagrams', file);\r\n return this.http.put('/diagrams/uploadmany', formData);\r\n }\r\n\r\n // Delete diagram\r\n deleteOne(name: string) {\r\n return this.http.delete(\"/diagrams/\" + name)\r\n }\r\n\r\n}","import { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FormService } from '../../form/services/FormService';\r\nimport { AdminDiagramService } from \"../services/AdminDiagramService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminDiagram extends React.Component {\r\n private readonly fService: FormService;\r\n private readonly diagramService: AdminDiagramService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.fService = new FormService();\r\n this.diagramService = new AdminDiagramService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.diagramService\r\n .uploadManyDiagram(e.files[0])\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_diagram_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_diagram_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n this.handleDownload()}\r\n />\r\n (this.fileUpload = el)}\r\n accept=\"application/json\"\r\n customUpload={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n >\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminDiagram);\r\n","import { APIService } from '../../shared/services/APIService';\r\n\r\nexport class TranslationService extends APIService {\r\n async get(code: string) {\r\n return this.http.get(`/translations/${code}`);\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { Diagram } from \"../models/Diagram\"\r\nimport { DiagramDot } from \"../models/DiagramDot\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport { TFunction } from \"i18next\";\r\nimport \"./FormDiagram.scss\";\r\nimport { DiagramComment } from \"../models/DiagramComment\";\r\nimport Draggable, { DraggableData } from \"react-draggable\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { MultiSelect } from \"primereact/multiselect\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { DiagramLegend } from \"../models/DiagramLegend\";\r\n\r\ninterface Props extends WithTranslation {\r\n diagram: Diagram\r\n comments: DiagramComment[]\r\n editable: boolean\r\n allPrismicKeys?: string[]\r\n mouseUp?: (diagramDots: DiagramDot[], width: number, height: number) => void\r\n onCommentSave?: (comment: DiagramComment) => void\r\n onCommentDelete?: (number: number) => void\r\n onLegendSave?: (legend: DiagramLegend) => void\r\n onLegendDelete ?: (title: string) => void\r\n}\r\n\r\ninterface States {\r\n dots: DiagramDot[]\r\n currentComment: DiagramComment\r\n currentDot: DiagramDot | null\r\n searchedComment: string\r\n imageSize: { width: number, height: number }\r\n showModal: boolean\r\n previousComments: DiagramComment[]\r\n newLegend : DiagramLegend\r\n}\r\n\r\nclass FormDiagram extends React.Component {\r\n\r\n private readonly fService: FormService\r\n private readonly t: TFunction\r\n private toast: Toast | null;\r\n private imgRef: React.RefObject\r\n\r\n constructor(props: Props) {\r\n super(props)\r\n this.t = this.props.t\r\n this.fService = new FormService()\r\n this.toast = null;\r\n this.imgRef = React.createRef()\r\n\r\n let initialComment: DiagramComment\r\n if (props.comments.length > 0) {\r\n initialComment = this.props.comments[0]\r\n }\r\n else {\r\n initialComment = { number: 1, title: \"\", relatedComments: [], content: \"\" }\r\n }\r\n\r\n this.state = {\r\n dots: props.diagram.dots,\r\n imageSize: { width: 0, height: 0 },\r\n showModal: false,\r\n currentComment: initialComment,\r\n currentDot: null,\r\n searchedComment: \"\",\r\n previousComments: [],\r\n newLegend: {\r\n title: \"\",\r\n image: \"\"\r\n }\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n window.addEventListener(\"resize\", () => {\r\n this.handleResize()\r\n })\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any): void {\r\n this.setState({\r\n dots: nextProps.diagram.dots,\r\n })\r\n }\r\n\r\n handleImageLoad(e): void {\r\n this.setState({\r\n imageSize: {\r\n width: e.target.width,\r\n height: e.target.height\r\n }\r\n })\r\n }\r\n\r\n handleResize() {\r\n if (this.imgRef.current) {\r\n\r\n const { width, height } = this.imgRef.current\r\n\r\n if (this.state.imageSize.width !== width\r\n || this.state.imageSize.height !== height) {\r\n this.setState({\r\n imageSize: {\r\n width: width,\r\n height: height\r\n }\r\n })\r\n }\r\n }\r\n }\r\n\r\n handleDrag(data: DraggableData, dot: DiagramDot) {\r\n let newDots = this.state.dots.map(\r\n d => d === dot ? { ...d, x: data.x, y: data.y } : d\r\n )\r\n this.setState({\r\n dots: newDots\r\n })\r\n }\r\n\r\n private _handleOnCommentClick(dots: DiagramDot[], comment: DiagramComment, dot: DiagramDot) {\r\n if (this.props.mouseUp && this.imgRef.current) {\r\n const newDots = dots.map((d => ({ ...d, x: d.x * (this.state.imageSize.width / this.props.diagram.imgSize.width), y: d.y * (this.state.imageSize.height / this.props.diagram.imgSize.height) })))\r\n this.props.mouseUp(newDots, this.imgRef.current.width, this.imgRef.current.height)\r\n }\r\n this.setState({\r\n currentComment: comment,\r\n currentDot: dot\r\n })\r\n }\r\n\r\n private _getComments() {\r\n const result: JSX.Element[] = []\r\n let filteredComment = this.props.comments\r\n if (this.state.searchedComment !== \"\") {\r\n filteredComment = this.props.comments.filter(c => c.number == parseInt(this.state.searchedComment))\r\n }\r\n filteredComment = filteredComment.sort((a, b) => a.number - b.number)\r\n\r\n for (const comment of filteredComment) {\r\n result.push((\r\n
{\r\n\r\n const dots = this.state.dots\r\n const dot = { number: comment.number, x: 0, y: 0 }\r\n dots.push(dot)\r\n\r\n this._handleOnCommentClick(dots, comment, dot)\r\n }}>\r\n
{comment.number}
{this.fService.t(this.t, comment.title, false)}\r\n
\r\n ))\r\n }\r\n\r\n\r\n return result\r\n }\r\n\r\n private _getDots() {\r\n\r\n const result: JSX.Element[] = []\r\n this.state.dots.forEach((dot, i) => {\r\n const comment = this.props.comments.find(e => e.number === dot.number)\r\n if (comment) result.push((\r\n {\r\n this.handleDrag(data, dot)\r\n }}\r\n onStart={() => this._handleOnCommentClick(this.state.dots, comment, dot)}\r\n onStop={(event, data) => {\r\n this.handleDrag(data, dot)\r\n this._handleOnCommentClick(this.state.dots, comment, dot)\r\n }}\r\n disabled={!this.props.editable}\r\n >\r\n {\r\n this.setState({\r\n showModal: true,\r\n currentComment: comment,\r\n currentDot: dot\r\n })\r\n }}\r\n style={{\r\n position: \"absolute\",\r\n zIndex: 1\r\n }}>\r\n {comment.number}\r\n \r\n \r\n ))\r\n })\r\n\r\n return result\r\n\r\n }\r\n\r\n private _getModalHeader = (title: string) => {\r\n return (\r\n <>\r\n\r\n
\r\n {this.state.previousComments.length > 0 && (\r\n
\r\n\r\n \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n (this.toast = el)} />\r\n
\r\n {this.props.diagram.name !== \"\" && (\r\n <>\r\n \r\n\r\n {this._getDots()}\r\n this.handleImageLoad(e)}\r\n ref={this.imgRef}\r\n >\r\n\r\n
\r\n {this.props.editable && (\r\n
\r\n \r\n this.setState({ searchedComment: e.currentTarget.value })}\r\n style={{ marginTop: \"10px\", marginBottom: \"10px\" }}\r\n type=\"number\"\r\n placeholder=\"Search comment\" />\r\n \r\n {this._getComments()}\r\n
\r\n
\r\n )}\r\n \r\n )}\r\n\r\n \r\n\r\n {!this.props.editable && (\r\n \r\n
\r\n {this.props.diagram.legends.map((l, i) => (\r\n
\r\n \r\n

{this.fService.t(this.t, l.title, false)}

\r\n {i !== this.props.diagram.legends.length - 1 &&

-

}\r\n
\r\n ))}\r\n
\r\n \r\n )}\r\n\r\n {this.props.editable ? (\r\n <>\r\n
\r\n

Legend

\r\n {this.props.diagram.legends.map(l => (\r\n
\r\n \r\n

{l.title}

\r\n {\r\n if (this.props.onLegendDelete) {\r\n this.props.onLegendDelete(l.title)\r\n }\r\n }}\r\n >\r\n
\r\n ))}\r\n
\r\n {\r\n this.setState({\r\n newLegend: {...this.state.newLegend, image: e.target.value}\r\n })\r\n }}\r\n placeholder=\"New prismic key legend image\"\r\n editable\r\n />\r\n {\r\n this.setState({\r\n newLegend: {...this.state.newLegend, title: e.currentTarget.value}\r\n })\r\n }}\r\n >\r\n {\r\n if (this.props.onLegendSave) {\r\n this.props.onLegendSave(this.state.newLegend)\r\n }\r\n }}\r\n >\r\n
\r\n
\r\n
\r\n

Comments

\r\n
\r\n e.number)}\r\n onChange={(e) => {\r\n console.log(parseInt(e.value))\r\n if (parseInt(e.value)) {\r\n const newComment = this.props.comments.find(c => c.number == e.value)\r\n if (newComment) {\r\n this.setState({\r\n currentComment: newComment\r\n })\r\n }\r\n else {\r\n this.setState({\r\n currentComment: {...this.state.currentComment, number: parseInt(e.value)}\r\n })\r\n }\r\n }\r\n }}\r\n placeholder=\"Comment number\"\r\n editable\r\n />\r\n
\r\n
\r\n \r\n {\r\n this.setState({\r\n currentComment: { ...this.state.currentComment, title: e.value }\r\n })\r\n }}\r\n editable\r\n />\r\n
\r\n
\r\n \r\n {\r\n this.setState({\r\n currentComment: { ...this.state.currentComment, content: e.value }\r\n })\r\n }}\r\n editable\r\n />\r\n
\r\n
\r\n \r\n c.number)}\r\n onChange={(e) => {\r\n this.setState({\r\n currentComment: { ...this.state.currentComment, relatedComments: e.value }\r\n })\r\n }}\r\n />\r\n
\r\n
\r\n {\r\n if (this.props.onCommentSave) {\r\n this.props.onCommentSave(this.state.currentComment)\r\n }\r\n }}\r\n >Save comment\r\n {\r\n let newNumber\r\n if (this.props.comments.length > 0) {\r\n newNumber = this.props.comments[this.props.comments.length - 1].number + 1\r\n }\r\n else {\r\n newNumber = 1\r\n }\r\n this.setState({\r\n currentComment: { number: newNumber, title: \"\", relatedComments: [], content: \"\" }\r\n })\r\n }}\r\n >New comment\r\n {\r\n if (this.props.onCommentDelete) {\r\n this.props.onCommentDelete(this.state.currentComment.number)\r\n }\r\n }}\r\n >Delete this comment\r\n
\r\n
\r\n \r\n ) : (\r\n
\r\n {this.state.currentComment && (\r\n this.setState({ showModal: false, previousComments: [] })}\r\n style={{ width: \"800px\" }}\r\n header={this._getModalHeader(`${this.state.currentComment.number} - ${this.fService.t(this.t, this.state.currentComment.title, false)}`)}\r\n >\r\n
\r\n

{this.fService.t(this.t, this.state.currentComment.content, true)}

\r\n

Related comments :

\r\n {this.state.currentComment.relatedComments.map(c => {\r\n const comment = this.props.comments.find(com => com.number === c)\r\n return (\r\n {\r\n if (comment) {\r\n const previousComment = this.state.currentComment\r\n const newPreviousComments = [...this.state.previousComments]\r\n newPreviousComments.push(previousComment)\r\n this.setState({\r\n previousComments: newPreviousComments,\r\n currentComment: comment\r\n })\r\n }\r\n }}>\r\n
{comment?.number}
{comment && this.fService.t(this.t, comment.title, false)}\r\n
\r\n )\r\n })}\r\n
\r\n \r\n )}\r\n \r\n )}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormDiagram)","import { DiagramComment } from '../../form/models/DiagramComment';\r\nimport { APIService } from '../../shared/services/APIService';\r\n\r\nexport class AdminDiagramCommentService extends APIService {\r\n\r\n // Get all diagrams\r\n getMany() {\r\n return this.http.get(\"/diagramComments\")\r\n }\r\n\r\n /**\r\n * Upload and replace the form\r\n *\r\n * @role Admin\r\n */\r\n uploadManyDiagramComments(file: File) {\r\n const formData = new FormData();\r\n formData.append('diagramComments', file);\r\n return this.http.put('/diagramComments/uploadmany', formData);\r\n }\r\n\r\n updateComment(comment : DiagramComment) {\r\n return this.http.put('/diagramComments/updateone', comment)\r\n }\r\n\r\n deleteComment(number: number) {\r\n return this.http.delete(\"/diagramComments/\" + number)\r\n }\r\n\r\n}","import { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FormService } from '../../form/services/FormService';\r\nimport { AdminDiagramService } from \"../services/AdminDiagramService\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { Diagram } from \"../../form/models/Diagram\";\r\nimport { TranslationService } from \"../../form/services/TranslationService\";\r\nimport FormDiagram from \"../../form/components/FormDiagram\";\r\nimport { DiagramComment } from \"../../form/models/DiagramComment\";\r\nimport { AdminDiagramCommentService } from \"../services/AdminDiagramCommentService\";\r\nimport { DiagramDot } from \"../../form/models/DiagramDot\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n diagram: Diagram\r\n allDiagrams: Diagram[]\r\n allComments: DiagramComment[]\r\n prismicKeys: string[]\r\n}\r\n\r\nclass AdminEditorDiagram extends React.Component {\r\n private readonly fService: FormService;\r\n private readonly diagramService: AdminDiagramService;\r\n private readonly translationService: TranslationService\r\n private readonly diagramCommentService: AdminDiagramCommentService\r\n private toast: Toast | null;\r\n private t: TFunction;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.fService = new FormService();\r\n this.diagramService = new AdminDiagramService();\r\n this.diagramCommentService = new AdminDiagramCommentService()\r\n this.translationService = new TranslationService()\r\n this.t = this.props.t;\r\n this.toast = null;\r\n\r\n this.state = {\r\n diagram: {\r\n name: \"\",\r\n imageName: \"\",\r\n dots: [],\r\n legends: [],\r\n imgSize: {\r\n width: 0,\r\n height: 0\r\n }\r\n },\r\n allDiagrams: [],\r\n allComments: [],\r\n prismicKeys: []\r\n }\r\n\r\n\r\n }\r\n\r\n componentDidMount(): void {\r\n this._getDiagrams()\r\n this._getPrismicKeys()\r\n this._getComments()\r\n }\r\n\r\n private _getDiagrams() {\r\n this.diagramService.getAllDiagram()\r\n .then((r) => {\r\n this.setState({\r\n allDiagrams: r.data\r\n })\r\n })\r\n }\r\n\r\n private _getPrismicKeys() {\r\n this.translationService.get(\"withoutCommon/fr\")\r\n .then((r) => {\r\n const keysString: string[] = []\r\n for (let i = 0; i < Object.keys(r.data).length; i++) {\r\n keysString.push(Object.keys(r.data)[i]);\r\n }\r\n this.setState({\r\n prismicKeys: keysString\r\n })\r\n })\r\n }\r\n\r\n private _getComments() {\r\n this.diagramCommentService.getMany()\r\n .then((r) => {\r\n this.setState({\r\n allComments: r.data\r\n })\r\n })\r\n }\r\n\r\n handleSubmit() {\r\n if (this.state.diagram.name !== \"\" && this.state.diagram.imageName !== \"\") {\r\n this.diagramService.updateOne(this.state.diagram)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_editor_diagram_toast_success\", false),\r\n });\r\n this.setState({\r\n diagram: {\r\n name: \"\",\r\n imageName: \"\",\r\n dots: [],\r\n legends: [],\r\n imgSize: {\r\n width: 0,\r\n height: 0\r\n }\r\n }\r\n })\r\n this._getDiagrams()\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_editor_diagram_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n else {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_editor_diagram_toast_error\", false)}`,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)} />\r\n e.name)}\r\n onChange={(e) => {\r\n const currentDiagram = this.state.allDiagrams.find(d => d.name === e.value)\r\n if (currentDiagram) {\r\n const copy = Object.assign({}, currentDiagram)\r\n this.setState({\r\n diagram: copy\r\n })\r\n }\r\n else {\r\n const diagram = this.state.diagram as any\r\n diagram.name = e.value\r\n this.setState({\r\n diagram\r\n })\r\n }\r\n }}\r\n placeholder=\"Diagram\"\r\n editable\r\n />\r\n {\r\n const diagram = this.state.diagram as any\r\n if (diagram) {\r\n diagram.imageName = e.value\r\n this.setState({\r\n diagram\r\n })\r\n }\r\n }}\r\n placeholder=\"Image\"\r\n />\r\n
\r\n this.handleSubmit()}\r\n disabled={this.state.allDiagrams.map(e => e.name).includes(this.state.diagram?.name)} />\r\n this.handleSubmit()}\r\n disabled={!this.state.allDiagrams.map(e => e.name).includes(this.state.diagram?.name)}\r\n />\r\n
\r\n {this.state.diagram && (\r\n
\r\n {\r\n console.log(dots)\r\n const diagram = this.state.diagram as any\r\n diagram.dots = dots\r\n diagram.imgSize = {\r\n width,\r\n height\r\n }\r\n this.setState({\r\n diagram: diagram\r\n })\r\n }}\r\n onCommentSave={(comment: DiagramComment) => {\r\n this.diagramCommentService.updateComment(comment)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_editor_diagram_comment_toast_success\", false),\r\n });\r\n this._getComments()\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_editor_diagram_comment_toast_error\", false)} : ${message}`,\r\n });\r\n })\r\n }}\r\n onCommentDelete={(number: number) => {\r\n this.diagramCommentService.deleteComment(number)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_editor_diagram_comment_delete_toast_success\", false),\r\n });\r\n this._getComments()\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_editor_diagram_comment_delete_toast_error\", false)} : ${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\nexport default withTranslation()(AdminEditorDiagram);\r\n","import { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FormService } from '../../form/services/FormService';\r\nimport { AdminDiagramCommentService } from \"../services/AdminDiagramCommentService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminDiagramComment extends React.Component {\r\n private readonly fService: FormService;\r\n private readonly diagramCommentService: AdminDiagramCommentService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private t: TFunction;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.fService = new FormService();\r\n this.diagramCommentService = new AdminDiagramCommentService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n this.diagramCommentService\r\n .uploadManyDiagramComments(e.files[0])\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.fService.t(this.t, \"ui_admin_comment_toast_success\", false),\r\n });\r\n this.fileUpload?.clear();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.fService.t(this.t, \"ui_admin_comment_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n this.handleDownload()}\r\n />\r\n (this.fileUpload = el)}\r\n accept=\"application/json\"\r\n customUpload={true}\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n // emptyTemplate={() =>

{this.t(\"ui_admin_form_upload\")}

}\r\n >\r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(AdminDiagramComment);\r\n","import React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport AdminDecisionTrees from \"./components/AdminDecisionTrees\";\r\nimport AdminForm from \"./components/AdminForm\";\r\nimport AdminRequirements from \"./components/AdminRequirements\";\r\nimport AdminScripts from \"./components/AdminScripts\";\r\nimport AdminEditorJs from \"./components/AdminEditorJs\";\r\nimport AdminHtmls from \"./components/AdminHTML\";\r\nimport AdminEditorHtml from \"./components/AdminEditorHtml\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Button } from \"primereact/button\";\r\nimport AdminSubmissions from './components/AdminSubmissions';\r\nimport AdminTranslations from \"./components/AdminTranslations\";\r\nimport AdminImages from \"./components/AdminImages\";\r\nimport AdminGraph from \"./components/AdminGraph\"\r\nimport AdminDiagram from \"./components/AdminDiagram\"\r\nimport AdminEditorDiagram from \"./components/AdminEditorDiagram\"\r\nimport AdminDiagramComment from \"./components/AdminDiagramComment\"\r\n\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n}\r\n\r\nclass AdminPage extends React.Component {\r\n render() {\r\n const hasLocalTranslations = process.env.hasOwnProperty('REACT_APP_LOCAL_TRANSLATIONS') ? process.env.REACT_APP_LOCAL_TRANSLATIONS === 'true' : false;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n \r\n window.location.href = 'editor' }\r\n />\r\n \r\n
\r\n
\r\n \r\n
\r\n {\r\n hasLocalTranslations &&\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n }\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\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 withTranslation()(AdminPage);\r\n","import { Modal } from \"@bbri/ui\";\r\nimport React, { Component } from \"react\";\r\nimport { RouteComponentProps, withRouter } from \"react-router-dom\";\r\nimport \"./ImageWrapper.scss\";\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { Button } from \"primereact/button\";\r\n\r\ninterface Props extends WithTranslation, RouteComponentProps {\r\n src: string;\r\n alt: string;\r\n}\r\n\r\ninterface States {\r\n isOpen: boolean;\r\n}\r\n\r\nclass ImageWrapper extends Component {\r\n\r\n private historyListener: null | (() => void);\r\n\r\n isOnMobile: boolean = false;\r\n\r\n changedWidth: boolean = false;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.historyListener = null;\r\n\r\n this.state = {\r\n isOpen: false,\r\n };\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n this.isOnMobile = true;\r\n }\r\n }\r\n\r\n handleOpenModal() {\r\n this.historyListener = this.props.history.listen((location, action) => {\r\n if (action === \"POP\") {\r\n this.handleCloseModal();\r\n }\r\n });\r\n\r\n this.setState({ isOpen: true });\r\n }\r\n\r\n handleCloseModal() {\r\n\r\n if (this.historyListener) {\r\n this.historyListener();\r\n }\r\n\r\n this.setState({ isOpen: false });\r\n }\r\n\r\n increaseImage() {\r\n let size = document.getElementsByClassName('image-wrapper-zoom')[0]['width'];\r\n document.getElementsByClassName('image-wrapper-zoom')[0]['style'].maxWidth = \"1000%\";\r\n document.getElementsByClassName('image-wrapper-zoom')[0]['width'] = size + ((size * 50) / 100);\r\n\r\n }\r\n\r\n decreaseImage() {\r\n let size = document.getElementsByClassName('image-wrapper-zoom')[0]['width'];\r\n document.getElementsByClassName('image-wrapper-zoom')[0]['width'] = size - ((size * 50) / 100);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n this.handleOpenModal()}\r\n >\r\n {this.props.alt}/\r\n \r\n \r\n {this.state.isOpen && (\r\n this.handleCloseModal()}>\r\n \r\n {this.props.alt}\r\n \r\n \r\n\r\n \r\n {this.isOnMobile ?\r\n
\r\n this.increaseImage()}\r\n className=\"button\"\r\n autoFocus\r\n />\r\n this.decreaseImage()}\r\n className=\"button\"\r\n autoFocus\r\n />\r\n
\r\n : null}\r\n
\r\n
\r\n )}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(withRouter(ImageWrapper));\r\n","import { Radio } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n name: string;\r\n currentValue: boolean | null;\r\n onValueChange: (v: any) => void;\r\n}\r\n\r\nclass FormBool extends React.Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n this.props.onValueChange(true)}>\r\n this.props.onValueChange(true)}\r\n />\r\n \r\n
\r\n
\r\n {/* eslint-disable-next-line jsx-a11y/anchor-is-valid */}\r\n this.props.onValueChange(false)}>\r\n this.props.onValueChange(false)}\r\n />\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormBool);\r\n","import { Select } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n name: string;\r\n currentValue: string;\r\n values: string[];\r\n onValueChange: (v: string) => void;\r\n disabled?: boolean;\r\n isSubQuestion?: boolean;\r\n}\r\n\r\nclass FormDropdown extends Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = props.t;\r\n this.formService = new FormService();\r\n }\r\n\r\n render() {\r\n let options: { id: string; name: string }[] = [];\r\n\r\n for (const value of this.props.values) {\r\n options.push({\r\n id: value,\r\n // @ts-ignore\r\n name: RichText.asText(this.t(value, { returnObjects: true })),\r\n });\r\n }\r\n\r\n for (const option of options) {\r\n if (!option.name) {\r\n option.name = option.id;\r\n }\r\n }\r\n\r\n return (\r\n
\r\n {\r\n if (v.id !== this.props.currentValue) {\r\n this.props.onValueChange(v.id);\r\n }\r\n }}\r\n disabled={this.props.disabled}\r\n />\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormDropdown);\r\n","export class FeedbackDTO {\r\n\r\n constructor(\r\n readonly comment: string,\r\n readonly screenshot?: File | null\r\n ) {\r\n }\r\n}","import { Button, Input } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport React, { Component } from \"react\";\r\nimport { UploadCloud, X } from \"react-feather\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { FeedbackDTO } from \"../dto/FeedbackDTO\";\r\nimport \"./FormFeedbackModal.scss\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n onSubmit: (dto: FeedbackDTO) => Promise;\r\n onClose: () => void;\r\n}\r\n\r\ninterface States {\r\n form: {\r\n comment: string;\r\n screenshot?: File | null;\r\n };\r\n}\r\n\r\nclass FormFeedbackModal extends Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.t = this.props.t;\r\n this.formService = new FormService();\r\n this.state = {\r\n form: {\r\n comment: \"\",\r\n screenshot: null,\r\n },\r\n };\r\n }\r\n\r\n handleFormChange(name: string, value: any) {\r\n let form = Object.assign({}, this.state.form);\r\n form[name] = value;\r\n\r\n this.setState({\r\n form,\r\n });\r\n }\r\n\r\n /**\r\n * Handle: onChange for upload input\r\n */\r\n handleFileChange(files: FileList | null) {\r\n if (files && files.length) {\r\n this.handleFormChange(\"screenshot\", files[0]);\r\n }\r\n }\r\n\r\n /**\r\n * Handle: onClick for upload button\r\n */\r\n handleUploadClick() {\r\n const inputFileRef: HTMLInputElement | null = document.querySelector(\r\n \".feedback-screenshot input[type='file']\"\r\n );\r\n if (inputFileRef) {\r\n inputFileRef.click();\r\n }\r\n }\r\n\r\n handleSubmit() {\r\n if (!this.state.form.comment) {\r\n return;\r\n }\r\n\r\n const dto = new FeedbackDTO(\r\n this.state.form.comment,\r\n this.state.form.screenshot\r\n );\r\n\r\n this.props.onSubmit(dto).then((result) => {\r\n if (result) {\r\n this.setState({\r\n form: {\r\n comment: \"\",\r\n screenshot: null,\r\n },\r\n });\r\n this.props.onClose();\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n {this.formService.checkIfValue(RichText.render(this.t(\"ui_feedback_header\", { returnObjects: true })), \"ui_feedback_header\")}\r\n \r\n
\r\n
\r\n {this.formService.checkIfValue(RichText.render(this.t(\"ui_feedback_content\", { returnObjects: true })), \"ui_feedback_content\")}

\r\n
\r\n \r\n this.handleFormChange(\"comment\", e.target.value)}\r\n required\r\n />\r\n
\r\n
\r\n \r\n
\r\n {this.state.form.screenshot\r\n ? this.state.form.screenshot.name\r\n : this.formService.t(this.t, \"ui_feedback_form_upload_screenshot_no_image\", false)}\r\n
\r\n this.handleFileChange(e.target.files)}\r\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 withTranslation()(FormFeedbackModal);\r\n","import { APIService } from '../../shared/services/APIService';\r\nimport { FeedbackDTO } from '../dto/FeedbackDTO';\r\n\r\nexport class FeedbackService extends APIService {\r\n\r\n\r\n submitFeedback(dto: FeedbackDTO) {\r\n const formData = new FormData();\r\n formData.append('comment', dto.comment);\r\n if (dto.screenshot) {\r\n formData.append('screenshot', dto.screenshot);\r\n }\r\n return this.http.post('/feedback', formData);\r\n }\r\n}","export enum QuestionType {\r\n RADIO = 'radio',\r\n RADIO_IMAGE = 'radio_image',\r\n DROPDOWN = 'dropdown',\r\n BOOL = 'bool',\r\n NUMBER = 'number',\r\n LONG_TEXT = 'long_text',\r\n MATRIX = 'matrix',\r\n CHECKBOX = 'checkbox',\r\n MULTIPLE = 'multiple',\r\n TABLE = 'table',\r\n STRING = 'string',\r\n PREVIOUS_QUESTION = 'previous_question',\r\n TEXT_ONLY = 'text_only',\r\n DECISION_TREE = 'decision_tree'\r\n}\r\n","export enum OperatorType {\r\n NOT_EQUAL = 'neq',\r\n EQUAL = 'eq',\r\n GREATER_THAN = 'gt',\r\n GREATER_THAN_OR_EQUAL_TO = 'gte',\r\n LOWER_THAN = 'lt',\r\n LOWER_THAN_OR_EQUAL_TO = 'lte',\r\n IN = 'in',\r\n NOT_IN = 'nin',\r\n AND = 'and',\r\n OR = 'or',\r\n STRICTLY_EQUAL = 'strictly_eq',\r\n STRICTLY_INCLUDED = 'strictly_included',\r\n STRICTLY_INCLUDES = 'strictly_includes'\r\n}\r\n","import { Toast } from \"primereact/toast\";\r\nimport React, { Component } from \"react\";\r\nimport { MessageCircle } from \"react-feather\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport FormFeedbackModal from \"../components/FormFeedbackModal\";\r\nimport { FeedbackDTO } from \"../dto/FeedbackDTO\";\r\nimport { FeedbackService } from \"../services/FeedbackService\";\r\nimport \"./FormFeedback.scss\";\r\nimport { FormService } from '../services/FormService';\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n isOpen: boolean;\r\n}\r\n\r\nclass FormFeedback extends Component {\r\n private toast: Toast | null;\r\n private feedbackService: FeedbackService;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.formService = new FormService();\r\n this.feedbackService = new FeedbackService();\r\n this.toast = null;\r\n\r\n this.state = {\r\n isOpen: false,\r\n };\r\n }\r\n\r\n /**\r\n * Handle: onClick\r\n */\r\n async handleSubmit(dto: FeedbackDTO): Promise {\r\n return this.feedbackService\r\n .submitFeedback(dto)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.props.t, \"ui_feedback_toast_success\", false, false),\r\n });\r\n return true;\r\n })\r\n .catch(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: this.formService.t(this.props.t, \"ui_feedback_toast_error\", false, false),\r\n });\r\n return false;\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n (this.toast = el)}/>\r\n this.setState({ isOpen: !this.state.isOpen })}\r\n >\r\n \r\n \r\n {this.state.isOpen && (\r\n this.handleSubmit(dto)}\r\n onClose={() => this.setState({ isOpen: false })}\r\n />\r\n )}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormFeedback);\r\n","import { TFunction } from \"i18next\";\r\nimport React from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { FormQuestion } from \"../models/FormQuestion\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport \"./FormInputNumber.scss\";\r\n\r\ninterface Props extends WithTranslation {\r\n question: FormQuestion;\r\n value: any;\r\n onValueChange: (v: any) => void;\r\n onBlur: (question: string, v: any) => void;\r\n disabled?: boolean;\r\n parentQuestion?: FormQuestion;\r\n values?: any;\r\n}\r\n\r\nclass FormInputNumber extends React.Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n state = {\r\n showValidationMessage: false,\r\n value: 0,\r\n modified: false\r\n };\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n\r\n this.state = {\r\n showValidationMessage: false,\r\n value: 0,\r\n modified: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({ showValidationMessage: false, value: this.resetValueIfInvalid() });\r\n\r\n this.bindOnBlur();\r\n this.bindKeyup();\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any) {\r\n if (this.props.parentQuestion) {\r\n if ((this.props.parentQuestion.question !== prevProps.parentQuestion?.question) && !this.props.value) {\r\n this.bindOnBlur();\r\n this.bindKeyup();\r\n\r\n this.setState({ showValidationMessage: false, value: this.resetValueIfInvalid() });\r\n }\r\n else if ((this.props.parentQuestion.question !== prevProps.parentQuestion?.question) && this.props.value) {\r\n this.bindOnBlur();\r\n this.bindKeyup();\r\n\r\n this.setState({ showValidationMessage: false, value: this.props.value });\r\n }\r\n }\r\n else {\r\n if (this.props.question.question !== prevProps.question.question) {\r\n this.bindOnBlur();\r\n this.bindKeyup();\r\n\r\n this.setState({ showValidationMessage: false, value: this.resetValueIfInvalid(), modified: false });\r\n }\r\n }\r\n }\r\n\r\n resetValueIfInvalid() {\r\n if (this.props.question.validation && Number.isInteger(this.props.question.validation.min) && (this.props.value < this.props.question.validation.min)) {\r\n return null;\r\n }\r\n else {\r\n return this.props.value;\r\n }\r\n }\r\n\r\n onValueChange(v: any) {\r\n this.setState({ ...this.state, value: v });\r\n this.setState({ modified: true });\r\n this.props.onValueChange(v);\r\n }\r\n\r\n private bindOnBlur() {\r\n document.getElementById(this.props.question.question)?.addEventListener('blur', () => {\r\n if (!this.state.showValidationMessage) {\r\n this.setState({ ...this.state, showValidationMessage: true });\r\n }\r\n this.props.onBlur(this.props.question.question, this.state.value);\r\n });\r\n }\r\n\r\n private bindKeyup() {\r\n document.getElementById(this.props.question.question)?.addEventListener('keyup', (e: KeyboardEvent) => {\r\n if (e.key.toLowerCase() === \"enter\") {\r\n this.setState({ ...this.state, showValidationMessage: true });\r\n }\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
\r\n
\r\n {\r\n if (e.target.value.split('-').length > 1) {\r\n this.onValueChange(0)\r\n }\r\n if (!this.state.modified && e.target.value[0] === '0') {\r\n const modif = e.target.value.substring(1);\r\n this.onValueChange(modif)\r\n }\r\n else {\r\n this.onValueChange(e.target.value)\r\n }\r\n } }\r\n onKeyPress={ (event) => {\r\n if (!/[0-9,.-]/.test(event.key)) {\r\n event.preventDefault();\r\n }\r\n } }\r\n\r\n />\r\n
\r\n\r\n { this.props.question.unit && (\r\n
{ RichText.render(this.t(this.props.question.unit, { returnObjects: true })) }
\r\n ) }\r\n
\r\n { this.props.question.validation && this.state.showValidationMessage && Number.isInteger(this.props.question.validation.min) && (this.state.value < this.props.question.validation.min) && (\r\n
\r\n { this.formService.checkIfValue(RichText.render(this.t(\"ui_input_min_value\", { returnObjects: true })), \"ui_input_min_value\") }\r\n { this.props.question.validation.min }\r\n { this.props.question.unit && (\r\n { RichText.render(this.t(this.props.question.unit, { returnObjects: true })) }\r\n ) }\r\n
\r\n ) }\r\n { this.props.question.validation && this.state.showValidationMessage && Number.isInteger(this.props.question.validation.max) && (this.state.value > this.props.question.validation.max) && (\r\n
\r\n { this.formService.checkIfValue(RichText.render(this.t(\"ui_input_max_value\", { returnObjects: true })), \"ui_input_max_value\") }\r\n { this.props.question.validation.max }\r\n { this.props.question.unit && (\r\n { RichText.render(this.t(this.props.question.unit, { returnObjects: true })) }\r\n ) }\r\n
\r\n ) }\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormInputNumber);\r\n","import { TFunction } from \"i18next\";\r\nimport React, { Component, ReactNode } from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport \"./FormMatrix.scss\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n currentValue: string;\r\n values: string[];\r\n images: string[];\r\n onValueChange: (v: string) => void;\r\n}\r\n\r\ninterface States {\r\n value: string;\r\n}\r\n\r\nclass FormMatrix extends Component {\r\n private t: TFunction;\r\n private readonly service: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.service = new FormService();\r\n this.t = this.props.t;\r\n\r\n this.state = {\r\n value: this.props.currentValue,\r\n };\r\n }\r\n\r\n /**\r\n * Handle: onClick on matrix-wrapper\r\n */\r\n handleClick(value: string) {\r\n\r\n this.props.onValueChange(value);\r\n\r\n this.setState({\r\n value,\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\r\n if (this.props.currentValue !== this.state.value) {\r\n this.setState({\r\n value: this.props.currentValue\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let imageList: ReactNode[] = [];\r\n\r\n for (let i = 0; i < this.props.values.length; i++) {\r\n const value = this.props.values[i];\r\n const image = this.props.images[i];\r\n\r\n let className = \"matrix-wrapper p-col-6 p-md-4\";\r\n\r\n if (this.state.value === value) {\r\n className += \" matrix-selected\";\r\n }\r\n\r\n imageList.push(\r\n this.handleClick(value)}\r\n >\r\n \r\n {this.service.checkIfValue(RichText.render(this.t(value, { returnObjects: true })), value)}\r\n \r\n \r\n );\r\n }\r\n return
{imageList}
;\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormMatrix);\r\n","import { TFunction } from \"i18next\";\r\nimport React, { Component, ReactNode } from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport \"./FormRadioImage.scss\";\r\nimport { RichText } from \"prismic-reactjs\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n currentValue: string;\r\n values: string[];\r\n images: string[];\r\n onValueChange: (v: string) => void;\r\n}\r\n\r\ninterface States {\r\n value: string;\r\n}\r\n\r\nclass FormRadioImage extends Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = props.t;\r\n this.formService = new FormService();\r\n\r\n this.state = {\r\n value: this.props.currentValue,\r\n };\r\n }\r\n\r\n /**\r\n * Handle: onClick on radio-image-wrapper\r\n */\r\n handleClick(value: string) {\r\n\r\n this.props.onValueChange(value);\r\n\r\n this.setState({\r\n value,\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\r\n if (this.props.currentValue !== this.state.value) {\r\n this.setState({\r\n value: this.props.currentValue\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let imageList: ReactNode[] = [];\r\n\r\n for (let i = 0; i < this.props.values.length; i++) {\r\n const value = this.props.values[i];\r\n const image = this.props.images[i];\r\n let className = \"radio-image-wrapper\";\r\n\r\n if (this.state.value === value) {\r\n className += \" radio-image-selected\";\r\n }\r\n\r\n imageList.push(\r\n
this.handleClick(value)}>\r\n
\r\n {RichText.asText(this.t(value,\r\n
\r\n {this.formService.checkIfValue(RichText.render(this.t(value, { returnObjects: true })), value)}
\r\n \r\n );\r\n }\r\n\r\n return
{imageList}
;\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormRadioImage);\r\n","import { Radio } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n name: string;\r\n currentValue: any;\r\n values: any[];\r\n onValueChange: (v: any) => void;\r\n}\r\n\r\nclass FormRadioList extends React.Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n }\r\n\r\n render() {\r\n const list: ReactNode[] = [];\r\n const values = this.props.values;\r\n for (let i = 0; i < values.length; i++) {\r\n const value = values[i];\r\n const key = this.props.name + i;\r\n list.push(\r\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\r\n this.props.onValueChange(value)}>\r\n this.props.onValueChange(value)}\r\n />\r\n \r\n );\r\n }\r\n\r\n return list;\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormRadioList);\r\n","import {TFunction} from 'i18next';\r\nimport {QuestionType} from '../enum/QuestionType';\r\nimport {Form} from '../models/Form';\r\nimport {FormQuestion} from '../models/FormQuestion';\r\nimport {OperatorType} from \"./../enum/OperatorType\";\r\nimport {DecisionTreeService} from './../services/DecisionTreeService';\r\nimport {FormService} from \"../services/FormService\";\r\n\r\nexport class FormUtils {\r\n\r\n static formatValue(\r\n t: TFunction,\r\n formService: FormService,\r\n form: Form,\r\n history: number[],\r\n values: Record,\r\n callback: (id: number, question: FormQuestion, valueFormatted: string) => void\r\n ) {\r\n for (let i = 0; i < history.length; i++) {\r\n const id = history[i];\r\n const question = form.questions[id];\r\n if(question.type === QuestionType.MULTIPLE && question.subQuestions) {\r\n for(const subQ of question.subQuestions) {\r\n let value = values[subQ.question];\r\n if(value === undefined) {\r\n value = \"\";\r\n } else {\r\n switch (subQ.type) {\r\n case QuestionType.RADIO:\r\n case QuestionType.MATRIX:\r\n case QuestionType.RADIO_IMAGE:\r\n break;\r\n case QuestionType.NUMBER:\r\n value = value + \" \" + formService.t(t, subQ.unit ?? '', false);\r\n break;\r\n case QuestionType.BOOL:\r\n value = value ? formService.t(t, \"oui\", false) : formService.t(t, \"non\", false);\r\n break;\r\n }\r\n }\r\n callback(id, subQ, value);\r\n }\r\n } else {\r\n let value = values[question.question];\r\n if(value === undefined) {\r\n value = \"\";\r\n } else {\r\n switch (question.type) {\r\n case QuestionType.RADIO:\r\n case QuestionType.MATRIX:\r\n case QuestionType.RADIO_IMAGE:\r\n break;\r\n case QuestionType.NUMBER:\r\n value = value + \" \" + formService.t(t, question.unit ?? '', false);\r\n break;\r\n case QuestionType.BOOL:\r\n value = value ? formService.t(t, \"oui\", false) : formService.t(t, \"non\", false);\r\n break;\r\n }\r\n }\r\n\r\n callback(id, question, value);\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get the values to send to the back based on the currentQuestion\r\n * @return Record\r\n */\r\n static getValidValues(questions: FormQuestion[], allValues: Record, questionHistory: number[], currentQuestion: number, allowNextQuestion?: boolean) {\r\n const values: Record = {};\r\n const history = [...questionHistory];\r\n\r\n // Add currentQuestion to history if not present\r\n if (!history.includes(currentQuestion)) {\r\n history.push(currentQuestion);\r\n }\r\n\r\n let i = 0;\r\n while (i < history.length) {\r\n const questionId = history[i];\r\n\r\n i++;\r\n\r\n // Don't use the question if it's after the current question\r\n if (questionId > currentQuestion && !allowNextQuestion) {\r\n continue;\r\n }\r\n\r\n const question = questions[questionId];\r\n\r\n // Continue if question was not found\r\n if (!question || !question?.question) {\r\n continue;\r\n }\r\n\r\n const value = allValues[question.question];\r\n\r\n // Continue if the value of the question is undefined. Otherwise decision trees might have an issue\r\n if (value === undefined) {\r\n continue;\r\n }\r\n\r\n switch (question.type) {\r\n case QuestionType.MULTIPLE:\r\n for (const key in value) {\r\n if (!value.hasOwnProperty(key)) {\r\n continue;\r\n }\r\n values[key] = value[key];\r\n }\r\n break;\r\n default:\r\n values[question.question] = value;\r\n break;\r\n }\r\n }\r\n\r\n return values;\r\n }\r\n\r\n /**\r\n * Check condition for a question\r\n */\r\n static async checkCondition(\r\n decisionTreeService: DecisionTreeService,\r\n leftValue: any,\r\n operator: OperatorType,\r\n rightValue: any,\r\n values: any,\r\n cache: Map\r\n ): Promise {\r\n if (leftValue.question) {\r\n leftValue = values[leftValue.question];\r\n } else if (leftValue.decision_tree) {\r\n\r\n if (cache.has(leftValue.decision_tree)) {\r\n leftValue = cache.get(leftValue.decision_tree);\r\n } else {\r\n const decisionTree = leftValue.decision_tree;\r\n leftValue = await decisionTreeService.computeDecisionTree(\r\n leftValue.decision_tree,\r\n values\r\n );\r\n cache.set(decisionTree, leftValue);\r\n }\r\n }\r\n\r\n switch (operator) {\r\n case OperatorType.EQUAL:\r\n return leftValue === rightValue;\r\n case OperatorType.NOT_EQUAL:\r\n return leftValue !== rightValue;\r\n case OperatorType.AND:\r\n return (\r\n (await FormUtils.checkCondition(\r\n decisionTreeService,\r\n leftValue.lhs,\r\n leftValue.operator,\r\n leftValue.rhs,\r\n values,\r\n cache\r\n )) &&\r\n (await FormUtils.checkCondition(\r\n decisionTreeService,\r\n rightValue.lhs,\r\n rightValue.operator,\r\n rightValue.rhs,\r\n values,\r\n cache\r\n ))\r\n );\r\n case OperatorType.OR:\r\n return (\r\n (await FormUtils.checkCondition(\r\n decisionTreeService,\r\n leftValue.lhs,\r\n leftValue.operator,\r\n leftValue.rhs,\r\n values,\r\n cache\r\n )) ||\r\n (await FormUtils.checkCondition(\r\n decisionTreeService,\r\n rightValue.lhs,\r\n rightValue.operator,\r\n rightValue.rhs,\r\n values,\r\n cache\r\n ))\r\n );\r\n case OperatorType.GREATER_THAN:\r\n return leftValue > rightValue;\r\n case OperatorType.GREATER_THAN_OR_EQUAL_TO:\r\n return leftValue >= rightValue;\r\n case OperatorType.LOWER_THAN:\r\n return leftValue < rightValue;\r\n case OperatorType.LOWER_THAN_OR_EQUAL_TO:\r\n return leftValue <= rightValue;\r\n case OperatorType.IN:\r\n if (Array.isArray(rightValue) && rightValue) {\r\n return (rightValue as any[]).includes(leftValue);\r\n } else if (Array.isArray(leftValue) && leftValue) {\r\n return (leftValue as any[]).includes(rightValue);\r\n } else {\r\n return false;\r\n }\r\n case OperatorType.NOT_IN:\r\n if (Array.isArray(rightValue) && rightValue) {\r\n return !(rightValue as any[]).includes(leftValue);\r\n } else if (Array.isArray(leftValue) && leftValue) {\r\n return !(leftValue as any[]).includes(rightValue);\r\n } else {\r\n return true;\r\n }\r\n case OperatorType.STRICTLY_EQUAL:\r\n if(Array.isArray(leftValue) && leftValue) {\r\n return JSON.stringify(leftValue.sort()) === JSON.stringify(rightValue.sort());\r\n } else {\r\n return false;\r\n }\r\n case OperatorType.STRICTLY_INCLUDED:\r\n if (Array.isArray(leftValue) && leftValue) {\r\n return (leftValue as any[]).every(elem => {\r\n return rightValue.includes(elem)\r\n });\r\n } else {\r\n return false;\r\n }\r\n case OperatorType.STRICTLY_INCLUDES:\r\n if (Array.isArray(leftValue) && leftValue) {\r\n return (rightValue as any[]).every(elem => {\r\n return leftValue.includes(elem)\r\n });\r\n } else {\r\n return false;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n}\r\n","export enum FormType {\r\n GRAPH = \"graph\",\r\n REQUIREMENT = \"requirement\"\r\n}","import jsPDF from 'jspdf';\r\n\r\nexport class JsPDFUtils {\r\n static initJsPDF() {\r\n const callAddRobotoRegularNormalFont = function (this: any) {\r\n const font = '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MDH//wANAAAEHAYeAiYB0wAAAQYAnj0eABQAsABFWLAILxuxCBw+WbENBPQwMf//AA0AAAQcBeMCJgHTAAABBgBqbR4AFwCwAEVYsAgvG7EIHD5ZsRAC9LAZ0DAxAP//AEcAAAPgBh4CJgHSAAABBwB1ATMAHgAUALAARViwCC8bsQgcPlmxDAb0MDH//wBHAAAD4AXgAiYB0gAAAQcAogEaAB4AFACwAEVYsAcvG7EHHD5ZsREC9DAx//8ARwAAA+AGHgImAdIAAAEGAJ9SHwAUALAARViwBy8bsQccPlmxDwb0MDH//wAcAAAFHQY/AiYAJQAAAAYArgQA////KQAABEYGPwImACkAAAAHAK7+cgAA////NwAABQgGQQImACwAAAAHAK7+gAAC////PQAAAXcGQAImAC0AAAAHAK7+hgAB////5v/sBR0GPwAmADMUAAAHAK7/LwAA////FAAABR8GPwAmAD1kAAAHAK7+XQAA////6QAABN8GPwAmALoUAAAHAK7/MgAA////m//0Aq0GdAImAMMAAAEHAK//Kv/sAB0AsABFWLAMLxuxDBo+WbEYAfSwD9CwGBCwIdAwMQD//wAcAAAFHQWwAgYAJQAA//8AqQAABIgFsAIGACYAAP//AKkAAARGBbACBgApAAD//wBWAAAEegWwAgYAPgAA//8AqQAABQgFsAIGACwAAP//ALcAAAF3BbACBgAtAAD//wCpAAAFBQWwAgYALwAA//8AqQAABlIFsAIGADEAAP//AKkAAAUIBbACBgAyAAD//wB2/+wFCQXEAgYAMwAA//8AqQAABMAFsAIGADQAAP//ADEAAASXBbACBgA4AAD//wAPAAAEuwWwAgYAPQAA//8AOQAABM4FsAIGADwAAP///9UAAAJeBwcCJgAtAAABBwBq/3ABQgAXALAARViwAi8bsQIePlmxCwT0sBTQMDEA//8ADwAABLsG+wImAD0AAAEHAGoAwgE2ABcAsABFWLAILxuxCB4+WbEQBPSwGdAwMQD//wBk/+sEdwY6AiYAuwAAAQcArgF1//sAFACwAEVYsBMvG7ETGj5ZsSQB9DAx//8AY//sA+wGOQImAL8AAAEHAK4BK//6ABQAsABFWLAVLxuxFRo+WbEoAfQwMf//AJH+YQPwBjoCJgDBAAABBwCuAUb/+wAUALAARViw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BkkAWwOTAJMDwQBmBG4AfwZKAFoDqgCOAv0AggRGAGEC7wBCAu8APgKCAHsEiACaA+kAQwIWAJMB+wB0Au8AegOjAHoDwABmBdwAVQY1AFAGOQBvA8kARAd6//IERABZBYAAdgS6AKYEwgCLBsEATgSwAH4EkQBHBIgAWwScAJUExwBfBZoAHQH6AJsEcwCaBE8AIgIpACIFiwCiBIgAkQehAGgHRABhAfwAoAWHAF0Cuf/kBX4AZQSSAFsFkACMBPMAiAID/7QENwBiA8QAqQONAI0DqwCOA2oAgQHxAI0CrQB5AioAMgPGAHsC/ABeAloAfgAA/KcAAP1vAAD8iwAA/V4AAPwnAAD9OAINALcECwBxAhcAkwRzALEFpAAfBXEAZwU+ADIEkQB4BbUAsgSRAEUFuwBNBYkAWgVSAHEEhQBkBL0AoAQCAC4EiABgBFAAYwQlAG0EiACRBI4AegKXAMMEbgAlA+wAZQTEACkEiACRBE0AZQSIAGAELABRBF0AjwWjAFcFmgBfBpcAegShAHkEQv/aBkgASgX/ACoFZAB7CJEAMQikALEGggA+BbQAsAULAKIGBAAyB0MAGwS/AFAFtACxBakALwUHAE0GLABTBdkArwV6AJYHhwCwB8AAsAYSABAG6wCyBQUAowVkAJMHJwC3BRgAWQRsAGEEkgCdA1sAmgTUAC4GIAAVBBAAWASeAJwEUgCcBKAALAXvAJ0EnQCcBJ4AnAPYACgFzQBkBL0AnARZAGcGeACcBp4AkQT3AB4GNgCdBFgAnQRNAGQGhwCdBGQALwRo/+gETQBnBskAJwbkAJwEif/9BJ4AnAcIAJwGKwCBBFb/3AcrALcF+ACZBNIAKARGAA8HCwDJBgsAvAbRAJMF4QCWCQQAtgfRAJsEIwBQA9sATAVxAGcEiwBbBQoAFgQDAC4FcQBnBIgAWwcBAJwGJAB+BwgAnAYrAIEFMgB1BEcAZAT9AHQAAPxnAAD8cQAA/WYAAP2kAAD6GwAA+iwGCQCxBO0AnARW/9wFGwCoBIkAjARjAKIDkACRBNsAsQQFAJEHogAbBmEAFQWaALIEuACcBQkAowR+AJoGjABEBYMAPgX/AKkE2QCcB88AqAW0AJEIMQCwBvQAkQXuAHEE0wBtBRgAOQQqACkHLAA0BVwAHwW8AJYElgBnBW8AlgRqAIMFbwCJBi8APwS9/94FCQCjBFoAmgX+AC8E7wAsBbIAsQSIAJEGEgCpBOwAnAdPAKkGPgCdBYcAXQSoAGgEqABpBLcAOgOrADsFLgA5BEAAKQT2AFcGlABZBuQAZAZWADYFKwAxBEkAUgQHAHkHwQBEBnUAPwf7AKkGoQCQBPYAdgQdAGUFrQAjBSAARgVkAJYGAgAvBPIALAMgAG8EFAAACCkAAAQUAAAIKQAAArkAAAIKAAABXAAABH8AAAIwAAABogAAAQAAAADRAAAAAAAAAjQAJQI0ACUFQACiBj8AkAOlAA0BmQBgAZkAMAGXACQBmQBPAtQAaALbADwCwQAkBGkARgSPAFcCsgCKA8QAlAVaAJQBfgBSB6oARAJmAGwCZgBZA6MAOwLvADYDYAB6BKYAWwZVAB8GkACnCHYAqAXrAB8GKwCMBH4AXwXaAB8EIgAqBHQAIAVIAF0FTwAfBecAegPOAGgIOgCiBQEAZwUXAJgGJgBUBtcAZAbPAGMGagBZBI8AagWOAKkErwBFBJIAqATFAD8IOgBiAgz/sASCAGUEZACYBBEAPgQvAIUECAArAkwAtQKPAG4CAwBcBPMAPARuAB8EiwA8BtQAPAbUADwE7gA8BpsAXwAAAAAIMwBbCDUAXALvAEIC7wB6Au8AUAQPAFUEDwBgBA8AQgQOAHIEDwCABA8AMAQPAE4EDwBOBA8AmAQPAGMEIwBHBCsADQRUACYGFQAxBGcAFAR8AHQEJgAoBCAAQwRKAIoEuwBZBFwAigS7AGAE4wCKBgIAigO0AIoEVACKA88AKwHoAJcE4wCKBKwAYwPLAIoEIABDBDMAMAOhAA0DrwCKBGcAFAS7AGAEZwAUA4kAPgTOAIoD7wA/BWcAYAUXAGAE8gB1BXIAJgR8AGAHQQAnB08AigV0ACgEzQCKBFkAigUkAC4GCwAfBD8ARwTsAIoETgCLBMEAJwQfACIFKACKBGoAPQZRAIoGrACKBR0ACAXxAIoETgCKBHsASwZ2AIoEhwBQBBEACwZHAB8EeQCLBQkAiwU3ACMFwgBgBF8ADQSoACYGYQAmBGoAPQRqAIoFwwACBMoAXgQ/AEcEuwBgBDMAMAPjAEIIIgCKBKsAKALvAD4C7wA2Au8AWwLvAFYC7wA6Au8ATwLvAEkDlgCPArUAngPmAIoEOgAeBMMAZAVMALEFJACyBBMAkgU9ALIEDwCSBIAAigR8AGAEUACKBIUAEwH9AJ8DpACBAAD8pAPvAG4D8/9eBA4AaQP0AGkDrwCKA58AgQOeAIEC7wBQAu8ANgLvAFsC7wBWAu8AOgLvAE8C7wBJBYEAfgWuAH4FkwCyBeAAfgXjAH4D1QCgBIIAgwRYAA8EzwA+BGsAZQQuAEoDpACDAZEAZwakAGAEuQCCAfz/tgR/ADsEfwBzBH8AIwR/AHcEfwB2BH8ANwR/AH4EfwBfBH8AcAR/APQCBv+0AgT/tAH7AJsB+//6AfsAmwRQAIoFAAB4BCAAOwR9AIwEMgBcBJMAWwSMAFsEngBaBI0AjAScAFsEPQBdBH0AYAN5AFcE1gBnA7QAAAY5AAkD+ACKBLsAYATjADAE4wCKAfsAAAI1ACUFXQAHBV0ABwSG/+IExgAxAp3/9AU4ABwFOAAcBTgAHAU4ABwFOAAcBTgAHAU4ABwFNQB3BIwAqQSMAKkEjACpBIwAqQIt/+ACLQCwAi3/6QIt/9UFtACpBYAAdgWAAHYFgAB2BYAAdgWAAHYFMACMBTAAjAUwAIwFMACMBM4ADwRaAG0EWgBtBFoAbQRaAG0EWgBtBFoAbQRaAG0EMABcBD0AXQQ9AF0EPQBdBD0AXQH6/8YB+gCWAfr/zwH6/7sEagCMBJAAWwSQAFsEkABbBJAAWwSQAFsEaQCIBGkAiARpAIgEaQCIA8kAFgPJABYFOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FNQB3BDAAXAU1AHcEMABcBTUAdwQwAFwFNQB3BDAAXAU/AKkFGQBfBIwAqQQ9AF0EjACpBD0AXQSMAKkEPQBdBIwAqQQ9AF0EjACpBD0AXQVzAHoEfQBgBXMAegR9AGAFcwB6BH0AYAVzAHoEfQBgBbQAqQRoAIwCLf+3Afr/nQIt/8wB+v+yAi3/7AH6/9ICLQAYAfH/+wItAKkGlwC3A9oAjQRqADUCA/+0BQQAqQQOAI0ETgChAfEAkwROAKkB8QBXBE4AqQKHAJwETgCpAs0AnAW0AKkEagCMBbQAqQRqAIwFtACpBGoAjARq/7wFgAB2BJAAWwWAAHYEkABbBYAAdgSQAFsE7QCoArUAjATtAKgCtQBTBO0AqAK1AGMEvwBQBCAAXwS/AFAEIABfBL8AUAQgAF8EvwBQBCAAXwS/AFAEIABfBMYAMQKdAAkExgAxAp0ACQTGADECxQAJBTAAjARpAIgFMACMBGkAiAUwAIwEaQCIBTAAjARpAIgFMACMBGkAiAUwAIwEaQCIBxkAPQYDACsEzgAPA8kAFgTOAA8EygBWA/cAWATKAFYD9wBYBMoAVgP3AFgHev/yBsEATgWAAHYEiABbBID/vgSA/74EJgAoBIUAEwSFABMEhQATBIUAEwSFABMEhQATBIUAEwR8AGAD5gCKA+YAigPmAIoD5gCKAej/vgHoAI4B6P/HAej/swTjAIoEuwBgBLsAYAS7AGAEuwBgBLsAYAR8AHQEfAB0BHwAdAR8AHQEKwANBIUAEwSFABMEhQATBHwAYAR8AGAEfABgBHwAYASAAIoD5gCKA+YAigPmAIoD5gCKA+YAigSsAGMErABjBKwAYwSsAGME4wCKAej/lQHo/6oB6P/KAegABgHoAIgDzwArBFQAigO0AIIDtACKA7QAigO0AIoE4wCKBOMAigTjAIoEuwBgBLsAYAS7AGAESgCKBEoAigRKAIoEIABDBCAAQwQgAEMEIABDBCYAKAQmACgEJgAoBHwAdAR8AHQEfAB0BHwAdAR8AHQEfAB0BhUAMQQrAA0EKwANBCMARwQjAEcEIwBHBTgAHASM/ykFtP83Ai3/PQWU/+YFMv8UBWb/6QKX/5sFOAAcBPsAqQSMAKkEygBWBbQAqQItALcFBACpBvwAqQW0AKkFgAB2BQwAqQTGADEEzgAPBQQAOQIt/9UEzgAPBIUAZARQAGMEiACRApcAwwRdAI8EcwCaBJAAWwSIAJoD4AAhA/cAKQKX/+UEXQCPBJAAWwRdAI8GlwB6BIwAqQRzALEEvwBQAi0AtwIt/9UEagA1BSQAsgUEAKkFBwBNBTgAHAT7AKkEcwCxBIwAqQW0ALEG/ACpBbQAqQWAAHYFtQCyBQwAqQU1AHcExgAxBQQAOQRaAG0EPQBdBJ4AnASQAFsEfQCMBDAAXAPJABYD9wApBD0AXQNbAJoEIABfAfEAjQH6/7sB6f+/BFIAnAPJABYHGQA9BgMAKwcZAD0GAwArBxkAPQYDACsEzgAPA8kAFgFlAGcCjwCIBB4AoAID/7QBmQAwBvwAqQcDAIsFOAAcBFoAbQSMAKkFtACxBD0AXQSeAJwFiQBaBZoAXwUKABYEA//7CFkAWwlJAHYEvwBQBBAAWAU1AHcEMABcBM4ADwQCAC4CLQC3B0MAGwYgABUCLQC3BTgAHARaAG0FOAAcBFoAbQd6//IGwQBOBIwAqQQ9AF0FhwBdBDcAYgQ3AGIHQwAbBiAAFQS/AFAEEABYBbQAsQSeAJwFtACxBJ4AnAWAAHYEkABbBXEAZwSLAFsFcQBnBIsAWwVkAJMETQBkBQcATQPJABYFBwBNA8kAFgUHAE0DyQAWBXoAlgRZAGcG6wCyBjYAnQSDAF8FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FOAAcBFr/ygU4ABwEWgBtBTgAHARaAG0FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0FOAAcBFoAbQU4ABwEWgBtBTgAHARaAG0EjACpBD0AXQSMAKkEPQBdBIwAqQQ9AF0EjACpBD0AXQSM//AEPf+6BIwAqQQ9AF0EjACpBD0AXQSMAKkEPQBdAi0AtwH6AJsCLQCjAfEAhQWAAHYEkABbBYAAdgSQAFsFgAB2BJAAWwWAAEcEkP/EBYAAdgSQAFsFgAB2BJAAWwWAAHYEkABbBX4AZQSSAFsFfgBlBJIAWwV+AGUEkgBbBX4AZQSSAFsFfgBlBJIAWwUwAIwEaQCIBTAAjARpAIgFkACMBPMAiAWQAIwE8wCIBZAAjATzAIgFkACMBPMAiAWQAIwE8wCIBM4ADwPJABYEzgAPA8kAFgTOAA8DyQAWBKEAXwTGADED2AAoBXoAlgRZAGcEcwCxA1sAmgYvAD8Evf/eBGgAjAUF/9QFBf/UBHMAAwNb//wFOP/3BCf/vwTOAA8EAgAuBQQAOQP3ACkEUABjBGwAEgY/AJAEfgBdBH4AXgR+ADUEfgCaBJIAmASmAIQEkgBkBKYAhwVzAHoEfQBgBbQAqQRqAIwFOAAcBFoAOQSMAF8EPQApAi3/CgH6/vAFgAB2BJAAMwTtAFUCtf+LBTAAjARpACsEpv7WBPsAqQR9AIwFPwCpBIMAXwU/AKkEgwBfBbQAqQRoAIwFBACpBA4AjQUEAKkEDgCNBE4AqQHxAIYG/ACpBwMAiwW0AKkEagCMBYAAdgUMAKkEfQCMBO0AqAK1AIIEvwBQBCAAXwTGADECnQAJBTAAjAUXABwD4AAhBRcAHAPgACEHGQA9BgMAKwTKAFYD9wBYBcb+MgSFABMEIv9jBR//gAIk/4QExf/VBGf/GwT8/+4EhQATBFAAigPmAIoEIwBHBOMAigHoAJcEVACKBgIAigTjAIoEuwBgBFwAigQmACgEKwANBFQAJgHo/7MEKwANA+YAigOvAIoEIABDAegAlwHo/7MDzwArBFQAigQfACIEhQATBFAAigOvAIoD5gCKBOwAigYCAIoE4wCKBLsAYATOAIoEXACKBHwAYAQmACgEVAAmBD8ARwTjAIoEfABgBCsADQXDAAIE7ACKBB8AIgVnAGAFtwCXBjkACQS7AGAEIABDBhUAMQYVADEGFQAxBCsADQU4ABwEWgBtBIwAqQQ9AF0EhQATA+YAigH6AIUAAQAAB2z+DAAACUn6G/5KCTAAAQAAAAAAAAAAAAAAAAAABQ4AAwSGAZAABQAABZoFMwAAAR8FmgUzAAAD0QBmAgAAAAIAAAAAAAAAAADgAAL/UAAgWwAAACAAAAAAR09PRwBAAAD//QYA/gAAZgeaAgAgAAGfAAAAAAQ6BbAAIAAgAAMAAAABAAAFEAkKBAAAAgICAwYFBwYCAwMEBQICAgQFBQUFBQUFBQUFAgIFBQUECAYGBgYFBQYGAgUGBQgGBgYGBgUFBgYIBgUFAgQCBAQDBQUFBQUDBQUCAgUCCAUFBQUDBQMFBAcEBAQDAgMGAgUFBgUCBgQHBAQFBwQDBQMDAwUEAgIDBAQHBwcECAUGBQUIBQUFBQUGAgUFAgYFCQgCBgMGBQYGAgUEBAQEAgMCBAMDAAAAAAAAAgUCBQYGBgUGBQYGBgUFBQUFBQUFAwUEBQUFBQUFBgYHBQUHBwYKCgcGBgcIBQYGBgcHBggJBwgGBggGBQUEBQcFBQUFBwUFBAcFBQcHBgcFBQcFBQUICAUFCAcFCAcFBQgHCAcKCQUEBgUGBQYFCAcIBwYFBgAAAAAAAAcGBQYFBQQFBQkHBgUGBQcGBwUJBgkIBwUGBQgGBgUGBQYHBQYFBwYGBQcGCAcGBQUFBAYFBgcIBwYFBQkHCQcGBQYGBgcGBAUJBQkDAgIFAgIBAQACAgYHBAICAgIDAwMFBQMEBgIJAwMEAwQFBwcKBwcFBwUFBgYHBAkGBgcICAcFBgUFBQkCBQUFBQUDAwIGBQUICAYHAAkJAwMDBQUFBQUFBQUFBQUFBQcFBQUFBQUFBQYHBAUEAgYFBAUFBAQFBQUEBQQGBgYGBQgIBgUFBgcFBgUFBQYFBwgGBwUFBwUFBwUGBgYFBQcFBQYFBQUFBAkFAwMDAwMDAwQDBAUFBgYFBgUFBQUFAgQABAQFBAQEBAMDAwMDAwMGBgYHBwQFBQUFBQQCBwUCBQUFBQUFBQUFBQICAgICBQYFBQUFBQUFBQUFBAUEBwQFBgYCAgYGBQUDBgYGBgYGBgYFBQUFAgICAgYGBgYGBgYGBgYFBQUFBQUFBQUFBQUFAgICAgUFBQUFBQUFBQUEBAYFBgUGBQYFBgUGBQYFBgYFBQUFBQUFBQUFBgUGBQYFBgUGBQICAgICAgICAgcEBQIGBQUCBQIFAwUDBgUGBQYFBQYFBgUGBQYDBgMGAwUFBQUFBQUFBQUFAwUDBQMGBQYFBgUGBQYFBgUIBwUEBQUEBQQFBAgIBgUFBQUFBQUFBQUFBQQEBAQCAgICBgUFBQUFBQUFBQUFBQUFBQUFBQQEBAQEBQUFBQYCAgICAgQFBAQEBAYGBgUFBQUFBQUFBQUFBQUFBQUFBQUHBQUFBQUGBQYCBgYGAwYGBQUGAgYIBgYGBQUGAgUFBQUDBQUFBQQEAwUFBQcFBQUCAgUGBgYGBgUFBggGBgYGBgUGBQUFBQUFBAQFBAUCAgIFBAgHCAcIBwUEAgMFAgIICAYFBQYFBQYGBgUJCgUFBgUFBQIIBwIGBQYFCAgFBQYFBQgHBQUGBQYFBgUGBQYFBgUGBAYEBgQGBQgHBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQUFBQUFBQUFBQUFBQUFBQUCAgICBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYGBgYGBgYGBgYFBAUEBQQFBQQGBQUEBwUFBgYFBAYFBQUGBAUFBwUFBQUFBQUFBgUGBQYFBQUCAgYFBgMGBQUGBQYFBgUGBQYFBgUFAggIBgUGBgUGAwUFBQMGBgQGBAgHBQQHBQUGAgUFBgUFBAUGAgUHBgUFBQUFAgUEBAUCAgQFBQUFBAQGBwYFBQUFBQUFBgUFBgYFBgYHBQUHBwcFBgUFBQUEAgAAAAMAAAADAAAAHAADAAEAAAAcAAMACgAABooABAZuAAAA9ACAAAYAdAAAAAIADQB+AKAArACtAL8AxgDPAOYA7wD+AQ8BEQElAScBMAFTAV8BZwF+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLzAwEDAwMJAw8DIwOKA4wDkgOhA7ADuQPJA84D0gPWBCUELwRFBE8EYgRvBHkEhgSfBKkEsQS6BM4E1wThBPUFAQUQBRMeAR4/HoUe8R7zHvkfTSAJIAsgESAVIB4gIiAnIDAgMyA6IDwgRCB0IH8gpCCqIKwgsSC6IL0hBSETIRYhIiEmIS4hXiICIgYiDyISIhoiHiIrIkgiYCJlJcruAvbD+wT+///9//8AAAAAAAIADQAgAKAAoQCtAK4AwADHANAA5wDwAP8BEAESASYBKAExAVQBYAFoAX8BjwGSAaABrwHwAfoCGAI3AlkCvALGAskC2ALzAwADAwMJAw8DIwOEA4wDjgOTA6MDsQO6A8oD0QPWBAAEJgQwBEYEUARjBHAEegSIBKAEqgSyBLsEzwTYBOIE9gUCBREeAB4+HoAeoB7yHvQfTSAAIAogECATIBcgICAlIDAgMiA5IDwgRCB0IH8goyCmIKsgsSC5ILwhBSETIRYhIiEmIS4hWyICIgYiDyIRIhoiHiIrIkgiYCJkJcruAfbD+wH+///8//8AAQAA//b/5AHY/8IBzP/BAAABvwAAAboAAAG2AAABtAAAAbIAAAGqAAABrP8W/wf/Bf74/usB7gAAAAD+Zf5EASP92P3X/cn9tP2o/af9ov2d/YoAAP/+//0AAAAA/QoAAP/e/P78+wAA/LoAAPyyAAD8pwAA/KEAAPyZAAD8kQAA/ygAAP8lAAD8XgAA5eLlouVT5X7k5+V85X3hcuFz4W8AAOFs4WvhaeFh46nhWeOh4VDhIeEXAADg8gAA4O3g5uDl4J7gkeCP4ITflOB54E3fqt6s357fnd+W35Pfh99r31TfUdvtE7cK9wa7AsMBxwABAAAAAAAAAAAAAAAAAAAAAADkAAAA7gAAARgAAAEyAAABMgAAATIAAAF0AAAAAAAAAAAAAAAAAAABdAF+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWwAAAAAAXQBkAAAAagAAAAAAAABwAAAAggAAAIwAAACUgAAAmIAAAKOAAACmgAAAr4AAALOAAAC4gAAAAAAAAAAAAAAAAAAAAAAAAAAAtIAAAAAAAAAAAAAAAAAAAAAAAAAAALCAAACwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ/AoACgQKCAoMChACBAnsCjwKQApECkgKTApQAggCDApUClgKXApgCmQCEAIUCmgKbApwCnQKeAp8AhgCHAqoCqwKsAq0CrgKvAIgAiQKwArECsgKzArQAigJ6AIsAjAJ8AI0C4wLkAuUC5gLnAugAjgLpAuoC6wLsAu0C7gLvAvAAjwCQAvEC8gLzAvQC9QL2AvcAkQCSAvgC+QL6AvsC/AL9AJMAlAMMAw0DEAMRAxIDEwJ9An4ChQKgAysDLAMtAy4DCgMLAw4DDwCuAK8DhgCwA4cDiAOJALEAsgOQA5EDkgCzA5MDlAC0A5UDlgC1A5cAtgOYALcDmQOaALgDmwC5ALoDnAOdA54DnwOgA6EDogOjAMQDpQOmAMUDpADGAMcAyADJAMoAywDMA6cAzQDOA+QDrQDSA64A0wOvA7ADsQOyANQA1QDWA7QD5QO1ANcDtgDYA7cDuADZA7kA2gDbANwDugOzAN0DuwO8A70DvgO/A8ADwQDeAN8DwgPDAOoA6wDsAO0DxADuAO8A8APFAPEA8gDzAPQDxgD1A8cDyAD2A8kA9wPKA+YDywECA8wBAwPNA84DzwPQAQQBBQEGA9ED5wPSAQcBCAEJBIED6APpARcBGAEZARoD6gPrA+0D7AEoASkBKgErBIABLAEtAS4BLwEwBIIEgwExATIBMwE0A+4D7wE1ATYBNwE4BIQEhQPwA/EEdwR4A/ID8wSGBIcEfwFMAU0EfQR+A/QD9QP2AU4BTwFQAVEBUgFTAVQBVQR5BHoBVgFXAVgEAQQABAIEAwQEBAUEBgFZAVoEewR8BBsEHAFbAVwBXQFeBIgEiQFfBB0EigFvAXABgQGCBIwEiwGXBHYBnQAMAAAAAAu8AAAAAAAAAPkAAAAAAAAAAAAAAAEAAAACAAAAAgAAAAIAAAANAAAADQAAAAMAAAAgAAAAfgAAAAQAAACgAAAAoAAAAngAAAChAAAArAAAAGMAAACtAAAArQAAAnkAAACuAAAAvwAAAG8AAADAAAAAxQAAAn8AAADGAAAAxgAAAIEAAADHAAAAzwAAAoYAAADQAAAA0AAAAnsAAADRAAAA1gAAAo8AAADXAAAA2AAAAIIAAADZAAAA3QAAApUAAADeAAAA3wAAAIQAAADgAAAA5QAAApoAAADmAAAA5gAAAIYAAADnAAAA7wAAAqEAAADwAAAA8AAAAIcAAADxAAAA9gAAAqoAAAD3AAAA+AAAAIgAAAD5AAAA/QAAArAAAAD+AAAA/gAAAIoAAAD/AAABDwAAArUAAAEQAAABEAAAAnoAAAERAAABEQAAAIsAAAESAAABJQAAAsYAAAEmAAABJgAAAIwAAAEnAAABJwAAAnwAAAEoAAABMAAAAtoAAAExAAABMQAAAI0AAAEyAAABNwAAAuMAAAE4AAABOAAAAI4AAAE5AAABQAAAAukAAAFBAAABQgAAAI8AAAFDAAABSQAAAvEAAAFKAAABSwAAAJEAAAFMAAABUQAAAvgAAAFSAAABUwAAAJMAAAFUAAABXwAAAv4AAAFgAAABYQAAAwwAAAFiAAABZQAAAxAAAAFmAAABZwAAAn0AAAFoAAABfgAAAxQAAAF/AAABfwAAAJUAAAGPAAABjwAAAJYAAAGSAAABkgAAAJcAAAGgAAABoQAAAJgAAAGvAAABsAAAAJoAAAHwAAAB8AAAA94AAAH6AAAB+gAAAoUAAAH7AAAB+wAAAqAAAAH8AAAB/wAAAysAAAIYAAACGQAAAwoAAAIaAAACGwAAAw4AAAI3AAACNwAAAJwAAAJZAAACWQAAAJ0AAAK8AAACvAAAA98AAALGAAACxwAAAJ4AAALJAAACyQAAAKAAAALYAAAC3QAAAKEAAALzAAAC8wAAAKcAAAMAAAADAQAAAKgAAAMDAAADAwAAAKoAAAMJAAADCQAAAKsAAAMPAAADDwAAAKwAAAMjAAADIwAAAK0AAAOEAAADhQAAAK4AAAOGAAADhgAAA4YAAAOHAAADhwAAALAAAAOIAAADigAAA4cAAAOMAAADjAAAA4oAAAOOAAADkgAAA4sAAAOTAAADlAAAALEAAAOVAAADlwAAA5AAAAOYAAADmAAAALMAAAOZAAADmgAAA5MAAAObAAADmwAAALQAAAOcAAADnQAAA5UAAAOeAAADngAAALUAAAOfAAADnwAAA5cAAAOgAAADoAAAALYAAAOhAAADoQAAA5gAAAOjAAADowAAALcAAAOkAAADpQAAA5kAAAOmAAADpgAAALgAAAOnAAADpwAAA5sAAAOoAAADqQAAALkAAAOqAAADsAAAA5wAAAOxAAADuQAAALsAAAO6AAADugAAA6MAAAO7AAADuwAAAMQAAAO8AAADvQAAA6UAAAO+AAADvgAAAMUAAAO/AAADvwAAA6QAAAPAAAADxgAAAMYAAAPHAAADxwAAA6cAAAPIAAADyQAAAM0AAAPKAAADzgAAA6gAAAPRAAAD0gAAAM8AAAPWAAAD1gAAANEAAAQAAAAEAAAAA+QAAAQBAAAEAQAAA60AAAQCAAAEAgAAANIAAAQDAAAEAwAAA64AAAQEAAAEBAAAANMAAAQFAAAECAAAA68AAAQJAAAECwAAANQAAAQMAAAEDAAAA7QAAAQNAAAEDQAAA+UAAAQOAAAEDgAAA7UAAAQPAAAEDwAAANcAAAQQAAAEEAAAA7YAAAQRAAAEEQAAANgAAAQSAAAEEwAAA7cAAAQUAAAEFAAAANkAAAQVAAAEFQAAA7kAAAQWAAAEGAAAANoAAAQZAAAEGQAAA7oAAAQaAAAEGgAAA7MAAAQbAAAEGwAAAN0AAAQcAAAEIgAAA7sAAAQjAAAEJAAAAN4AAAQlAAAEJQAAA8IAAAQmAAAELwAAAOAAAAQwAAAEMAAAA8MAAAQxAAAENAAAAOoAAAQ1AAAENQAAA8QAAAQ2AAAEOAAAAO4AAAQ5AAAEOQAAA8UAAAQ6AAAEPQAAAPEAAAQ+AAAEPgAAA8YAAAQ/AAAEPwAAAPUAAARAAAAEQQAAA8cAAARCAAAEQgAAAPYAAARDAAAEQwAAA8kAAAREAAAERAAAAPcAAARFAAAERQAAA8oAAARGAAAETwAAAPgAAARQAAAEUAAAA+YAAARRAAAEUQAAA8sAAARSAAAEUgAAAQIAAARTAAAEUwAAA8wAAARUAAAEVAAAAQMAAARVAAAEWAAAA80AAARZAAAEWwAAAQQAAARcAAAEXAAAA9EAAARdAAAEXQAAA+cAAAReAAAEXgAAA9IAAARfAAAEYQAAAQcAAARiAAAEYgAABIEAAARjAAAEbwAAAQoAAARwAAAEcQAAA+gAAARyAAAEdQAAARcAAAR2AAAEdwAAA+oAAAR4AAAEeAAAA+0AAAR5AAAEeQAAA+wAAAR6AAAEhgAAARsAAASIAAAEiwAAASgAAASMAAAEjAAABIAAAASNAAAEkQAAASwAAASSAAAEkwAABIIAAASUAAAElwAAATEAAASYAAAEmQAAA+4AAASaAAAEnQAAATUAAASeAAAEnwAABIQAAASgAAAEqQAAATkAAASqAAAEqwAAA/AAAASsAAAErQAABHcAAASuAAAErwAAA/IAAASwAAAEsQAABIYAAASyAAAEugAAAUMAAAS7AAAEuwAABH8AAAS8AAAEvQAAAUwAAAS+AAAEvwAABH0AAATAAAAEwgAAA/QAAATDAAAEygAAAU4AAATLAAAEzAAABHkAAATNAAAEzgAAAVYAAATPAAAE1wAAA/cAAATYAAAE2AAAAVgAAATZAAAE2QAABAEAAATaAAAE2gAABAAAAATbAAAE3wAABAIAAATgAAAE4QAAAVkAAATiAAAE9QAABAcAAAT2AAAE9wAABHsAAAT4AAAE+QAABBsAAAT6AAAE/QAAAVsAAAT+AAAE/wAABIgAAAUAAAAFAAAAAV8AAAUBAAAFAQAABB0AAAUCAAAFEAAAAWAAAAURAAAFEQAABIoAAAUSAAAFEwAAAW8AAB4AAAAeAQAAA+IAAB4+AAAePwAAA+AAAB6AAAAehQAAA9MAAB6gAAAe8QAABB4AAB7yAAAe8wAAA9kAAB70AAAe+QAABHAAAB9NAAAfTQAABMoAACAAAAAgCQAAAXIAACAKAAAgCwAAAX0AACAQAAAgEQAAAX8AACATAAAgFAAAAYEAACAVAAAgFQAABIwAACAXAAAgHgAAAYMAACAgAAAgIgAAAYsAACAlAAAgJwAAAY4AACAwAAAgMAAAAZEAACAyAAAgMwAAA9sAACA5AAAgOgAAAZIAACA8AAAgPAAAA90AACBEAAAgRAAAAZQAACB0AAAgdAAAAZUAACB/AAAgfwAAAZYAACCjAAAgowAABIsAACCkAAAgpAAAAZcAACCmAAAgqgAAAZgAACCrAAAgqwAABHYAACCsAAAgrAAAAZ0AACCxAAAgsQAAAZ4AACC5AAAgugAAAZ8AACC8AAAgvQAAAaEAACEFAAAhBQAAAaMAACETAAAhEwAAAaQAACEWAAAhFgAAAaUAACEiAAAhIgAAAaYAACEmAAAhJgAAALoAACEuAAAhLgAAAacAACFbAAAhXgAAAagAACICAAAiAgAAAawAACIGAAAiBgAAALIAACIPAAAiDwAAAa0AACIRAAAiEgAAAa4AACIaAAAiGgAAAbAAACIeAAAiHgAAAbEAACIrAAAiKwAAAbIAACJIAAAiSAAAAbMAACJgAAAiYAAAAbQAACJkAAAiZQAAAbUAACXKAAAlygAAAbcAAO4BAADuAgAAAbgAAPbDAAD2wwAAAboAAPsBAAD7BAAAAbwAAP7/AAD+/wAAAcIAAP/8AAD//QAAAcMAALAALEuwCVBYsQEBjlm4Af+FsIQdsQkDX14tsAEsICBFaUSwAWAtsAIssAEqIS2wAywgRrADJUZSWCNZIIogiklkiiBGIGhhZLAEJUYgaGFkUlgjZYpZLyCwAFNYaSCwAFRYIbBAWRtpILAAVFghsEBlWVk6LbAELCBGsAQlRlJYI4pZIEYgamFksAQlRiBqYWRSWCOKWS/9LbAFLEsgsAMmUFhRWLCARBuwQERZGyEhIEWwwFBYsMBEGyFZWS2wBiwgIEVpRLABYCAgRX1pGESwAWAtsAcssAYqLbAILEsgsAMmU1iwQBuwAFmKiiCwAyZTWCMhsICKihuKI1kgsAMmU1gjIbDAioobiiNZILADJlNYIyG4AQCKihuKI1kgsAMmU1gjIbgBQIqKG4ojWSCwAyZTWLADJUW4AYBQWCMhuAGAIyEbsAMlRSMhIyFZGyFZRC2wCSxLU1hFRBshIVktsAossChFLbALLLApRS2wDCyxJwGIIIpTWLlAAAQAY7gIAIhUWLkAKAPocFkbsCNTWLAgiLgQAFRYuQAoA+hwWVlZLbANLLBAiLggAFpYsSkARBu5ACkD6ERZLbAMK7AAKwCyARACKwGyEQECKwG3ETowJRsQAAgrALcBSDsuIRQACCu3AlhIOCgUAAgrtwNSQzQlFgAIK7cEXk08KxkACCu3BTYsIhkPAAgrtwZxXUYyGwAIK7cHkXdcOiMACCu3CH5nUDkaAAgrtwlURTYmFAAIK7cKdmBLNh0ACCu3C4NkTjojAAgrtwzZsopjPAAIK7cNFBAMCQYACCu3DjwyJxwRAAgrtw9ANCkdFAAIK7cQUEEuIRQACCsAshILByuwACBFfWkYRLI/GgFzsl8aAXOyfxoBc7IvGgF0sk8aAXSybxoBdLKPGgF0sq8aAXSy/xoBdLIfGgF1sj8aAXWyXxoBdbJ/GgF1sg8eAXOyfx4Bc7LvHgFzsh8eAXSyXx4BdLKPHgF0ss8eAXSy/x4BdLI/HgF1sm8eAXWyLyABc7JvIAFzAAAAACoAnQCAAIoAeADUAGQATgBaAIcAYABWADQCPAC8ALIAjgDEAAAAFP5gABQCmwAgAyEACwQ6ABQEjQAQBbAAFAYYABUBpgARBsAADgbZAAYAAAAAAAAADQCiAAMAAQQJAAAAXgAAAAMAAQQJAAEADABeAAMAAQQJAAIADgBqAAMAAQQJAAMADABeAAMAAQQJAAQADABeAAMAAQQJAAUAJgB4AAMAAQQJAAYAHACeAAMAAQQJAAcAQAC6AAMAAQQJAAkADAD6AAMAAQQJAAsAFAEGAAMAAQQJAAwAJgEaAAMAAQQJAA0AXAFAAAMAAQQJAA4AVAGcAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADEAMQAgAEcAbwBvAGcAbABlACAASQBuAGMALgAgAEEAbABsACAAUgBpAGcAaAB0AHMAIABSAGUAcwBlAHIAdgBlAGQALgBSAG8AYgBvAHQAbwBSAGUAZwB1AGwAYQByAFYAZQByAHMAaQBvAG4AIAAyAC4AMQAzADcAOwAgADIAMAAxADcAUgBvAGIAbwB0AG8ALQBSAGUAZwB1AGwAYQByAFIAbwBiAG8AdABvACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAARwBvAG8AZwBsAGUALgBHAG8AbwBnAGwAZQBHAG8AbwBnAGwAZQAuAGMAbwBtAEMAaAByAGkAcwB0AGkAYQBuACAAUgBvAGIAZQByAHQAcwBvAG4ATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMAAAAAMAAAAAAAD/agBkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQACAAgAAv//AA8AAQACAA4AAAAAAAACKAACAFkAJQA+AAEARQBeAAEAeQB5AAEAgQCBAAEAgwCDAAEAhgCGAAEAiQCJAAEAiwCWAAEAmACdAAEApACkAAEAqACtAAMAsQCxAAEAugC7AAEAvwC/AAEAwQDBAAEAwwDDAAEAxwDHAAEAywDLAAEAzQDOAAEA0ADRAAEA0wDTAAEA2gDeAAEA4QDhAAEA5QDlAAEA5wDpAAEA6wD7AAEA/QD9AAEA/wEBAAEBAwEDAAEBCAEJAAEBFgEaAAEBHAEcAAEBIAEiAAEBJAElAAMBKgErAAEBMwE0AAEBNgE2AAEBOwE8AAEBQQFEAAEBRwFIAAEBSwFNAAEBUQFRAAEBVAFYAAEBXQFeAAEBYgFiAAEBZAFkAAEBaAFoAAEBagFsAAEBbgFuAAEBcAFwAAEBugG6AAMBuwHBAAIB0gHmAAEB6gHqAAEB8wHzAAEB9QH1AAEB/AH+AAECAAIBAAECAwIDAAECBwIHAAECCQILAAECEQIRAAECFgIYAAECGgIaAAECKAIoAAECKwIrAAECLQItAAECMAIzAAECXwJjAAECegLiAAEC5QOLAAEDjQOkAAEDpgOyAAEDtAO9AAEDvwPaAAED3gPeAAED4APnAAED6QPrAAED7gPyAAED9AR8AAEEfwR/AAEEggSDAAEEhQSGAAEEiASLAAEElQTQAAEE0gTxAAEE8wT6AAEE/AT9AAEFBwUNAAEAAQACAAAADAAAACwAAQAOAKgAqACpAKkAqgCqAKsAqwCsAKwBJAElASYBJwABAAUAeQCkAK0ArQG6AAAAAQAAAAoAMgBMAARERkxUABpjeXJsABpncmVrABpsYXRuABoABAAAAAD//wACAAAAAQACY3BzcAAOa2VybgAUAAAAAQAAAAAAAQABAAIABgIQAAEAAAABAAgAAQAKAAUAJABIAAEA+gAIAAoAFAAVABYAFwAYABkAGgAbABwAHQAlACYAJwAoACkAKgArACwALQAuAC8AMAAxADIAMwA0ADUANgA3ADgAOQA6ADsAPAA9AD4AZQBnAIEAgwCEAIwAjwCRAJMAsQCyALMAtAC1ALYAtwC4ALkAugDSANMA1ADVANYA1wDYANkA2gDbANwA3QDeAN8A4ADhAOIA4wDkAOUA5gDnAOgA6QEvATMBNQE3ATkBOwFBAUMBRQFJAUsBTAFYAVkBlwGdAaIBpQJ6AnsCfQJ/AoACgQKCAoMChAKFAoYChwKIAokCigKLAowCjQKOAo8CkAKRApICkwKUApUClgKXApgCmQK2ArgCugK8Ar4CwALCAsQCxgLIAsoCzALOAtAC0gLUAtYC2ALaAtwC3gLgAuIC4wLlAucC6QLrAu0C7wLxAvMC9QL4AvoC/AL+AwADAgMEAwYDCAMKAwwDDgMQAxIDFAMWAxgDGgMcAx4DIAMiAyQDJQMnAykDKwMtA4YDhwOIA4kDigOLA4wDjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/A8ADwQPCA9MD1QPXA9kD7gPwA/IEBwQNBBMEfQSCBIYFBwUJAAIAAAACAAo6GAABA/IABAAAAfQHzjTGNMYH/AheNv43rjTMOcw3eghkOBg4GDe4OAI4GDgYOcw4RAwCDNA4ijlYOZQ03jaEObINRjdcOGY1jA2MODoOwjg6ODo3iDhmOHwPxDl2ECY1PDl2EEA4ZjnMEIY1xjb+Ocw2/hEIEgYTCBPqFIw5dhSSFJw4OheGGXgaahtwG4YbjBuSHowekh7MHwIfjDWgNaAhvjgYImAjXjTeJcA4GDgYNUI4GDgYOBgmljWgOBg1oChAKQYpmCn6KuA1lituNTwzRiuYLXI4ZjEAMTozJDMkOGYycDL6MyQzJDMkNv43iDlYOXYzRjhmNcY1ljTeNTw3uDe4N7g4GDTeNTw4GDgYOcw1ljTeNTw0xjNwNMY0xjTGOgg0EjRgOgI0vDnqOfA6AjnwOeo56jnqOeo0rjnwNMw5zDnMOcw5zDiKNv42/jb+Nv42/jb+Nv40zDd6N3o3ejd6OBg4GDgYOBg4GDnMOcw5zDnMOcw2hDdcN1w3XDdcN1w3XDdcNYw1jDWMNYw4OjeIN4g3iDeIN4g5djl2Nv43XDb+N1w2/jdcNMw0zDTMNMw5zDd6NYw3ejWMN3o1jDd6NYw3ejWMOBg4OjgYOBg4GDgYOBg3uDgCOAI4AjgCOBg4OjgYODo4GDg6ODo5zDeIOcw3iDnMN4g4fDh8OHw4ijiKOIo5lDaEOXY2hDmyObI5sjoCOgI6CDnwOfA58DnwOfA58DnwOgI6AjoCOgI6AjnwOfA58DoCOeo0vDS8NLw0vDoCOgI6AjoINv43ejgYOBg5zDaENv43rjd6ObI4GDgYN7g4GDgYOcw4RDiKNoQ03jgYNoQ4OjeIOXY3iDd6NcY4GDgYN7g3uDVCNv43rjXGN3o4GDgYOcw4RDTMOIo03jdcNYw3iDhmOXY1PDWMNZY5djmUOZQ5lDaEOXY0xjTGNMY4GDg6Nv43XDd6NYw5WDl2NMw2hDl2OBg03jU8OBg2/jdcNv43XDd6NYw1jDWMNN41PDnMN4g3iDhmNUI5djVCOXY1Qjl2Nv43XDb+N1w2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w2/jdcNv43XDb+N1w2/jdcN3o1jDd6NYw3ejWMN3o1jDd6NYw3ejWMN3o1jDd6NYw4GDgYOcw3iDnMN4g5zDeIOcw3iDnMN4g5zDeIOcw3iDeINoQ5djaEOXY2hDl2OIo1xjWWODo1oDXGN7g2hDgYODo2/jdcN3o4GDnMN4g4fDeuOGY5zDnMOBg4Oje4N7g4AjgYODo4GDg6Ocw4RDhmOHw4ijlYOXY5WDl2OZQ5sjnMOfA6AjnwOeo6CDnqOfA6AjoIAAIApAAEAAQAAAAGAAYAAQALAAwAAgATABMABAAlACoABQAsAC0ACwAvADYADQA4ADgAFQA6AD8AFgBFAEYAHABJAEoAHgBMAEwAIABPAE8AIQBRAFQAIgBWAFYAJgBYAFgAJwBaAF0AKABfAF8ALACKAIoALQCWAJYALgCdAJ0ALwCxALUAMAC3ALkANQC7ALsAOAC9AL4AOQDAAMEAOwDDAMUAPQDHAM4AQADSANIASADUAN4ASQDgAO8AVADxAPEAZAD2APgAZQD7APwAaAD+AQAAagEDAQUAbQEKAQoAcAENAQ0AcQEYARoAcgEiASIAdQEuATAAdgEzATUAeQE3ATcAfAE5ATkAfQE7ATsAfgFDAUQAfwFUAVQAgQFWAVYAggFYAVgAgwFcAV4AhAGEAYUAhwGHAYkAiQHYAdgAjAHaAdsAjQHdAd0AjwHgAeEAkAHrAe0AkgH/Af8AlQIOAhAAlgIwAjAAmQIzAjMAmgJFAkUAmwJHAkgAnAJ6AnsAngJ9An0AoAJ/ApQAoQKZAqAAtwKiAqUAvwKqAq8AwwK0ArwAyQK+Ar4A0gLAAsAA0wLCAsIA1ALEAsQA1QLGAs8A1gLYAtoA4ALcAtwA4wLeAt4A5ALgAuAA5QLiAuIA5gLnAucA5wLpAukA6ALrAusA6QLtAu0A6gLvAu8A6wLxAv0A7AL/Av8A+QMBAwEA+gMDAwMA+wMOAw4A/AMQAxAA/QMSAxIA/gMgAyAA/wMiAyUBAAMnAycBBAMpAykBBQMvAzgBBgNDA0cBEANNA08BFQNUA1QBGANlA2kBGQNtA28BHgN4A3gBIQOGA4sBIgOOA50BKAOgA6ABOAOkA6QBOQOmA6YBOgOqA6oBOwOtA64BPAOwA7EBPgOzA7kBQAO7A70BRwO/A8QBSgPGA8cBUAPJA8wBUgPSA9MBVgPVA9UBWAPXA9cBWQPZA9wBWgPfA+QBXgPmA+YBZAPqA+sBZQPwA/ABZwPyA/sBaAP+A/8BcgQBBAQBdAQLBAwBeAQQBBABegQSBBgBewQeBEYBggRIBEgBqwRKBFcBrARfBF8BugRwBHUBuwR3BHcBwQR7BHwBwgR/BH8BxASBBIIBxQSEBIQBxwSGBIYByASXBJsByQSdBJ0BzgSfBKABzwSiBKIB0QSmBKgB0gSqBKoB1QSsBK4B1gSwBLAB2QSyBLIB2gS0BLoB2wS8BLwB4gS/BL8B4wTCBMYB5ATIBMgB6QTKBMsB6gTPBM8B7ATSBNIB7QTYBNgB7gTdBN0B7wToBOgB8ATqBOoB8QTxBPEB8gT1BPUB8wALADj/2ADS/9gA1v/YATn/2AFF/9gDDv/YAxD/2AMS/9gDwf/YBHf/2AS//9gAGAA6ABQAOwASAD0AFgEZABQCmQAWAyAAEgMiABYDJAAWA4sAFgOaABYDnQAWA9MAEgPVABID1wASA9kAFgPqABQD8gAWBHAAFgRyABYEdAAWBIYAFgTCABQExAAUBMYAEgABABP/IADnABD/FgAS/xYAJf9WAC7++AA4ABQARf/eAEf/6wBI/+sASf/rAEv/6wBT/+sAVf/rAFb/5gBZ/+oAWv/oAF3/6ACU/+sAmf/rAJv/6gCy/1YAtP9WALv/6wC9/+gAyP/rAMn/6wDL/+oA0gAUANYAFAD3/+sBA//rAQ3/VgEY/+sBGv/oAR7/6wEi/+sBOQAUAUL/6wFFABQBYP/rAWH/6wFr/+sBhv8WAYr/FgGO/xYBj/8WAev/wAHt/8ACM//AAn//VgKA/1YCgf9WAoL/VgKD/1YChP9WAoX/VgKa/94Cm//eApz/3gKd/94Cnv/eAp//3gKg/94Cof/rAqL/6wKj/+sCpP/rAqX/6wKr/+sCrP/rAq3/6wKu/+sCr//rArD/6gKx/+oCsv/qArP/6gK0/+gCtf/oArb/VgK3/94CuP9WArn/3gK6/1YCu//eAr3/6wK//+sCwf/rAsP/6wLF/+sCx//rAsn/6wLL/+sCzf/rAs//6wLR/+sC0//rAtX/6wLX/+sC5f74Avn/6wL7/+sC/f/rAw4AFAMQABQDEgAUAxX/6gMX/+oDGf/qAxv/6gMd/+oDH//qAyP/6AMy/8ADM//AAzT/wAM1/8ADNv/AAzf/wAM4/8ADTf/AA07/wANP/8ADhv9WA47/VgOe/+sDov/qA6T/6wOm/+gDqf/qA6r/6wOr/+oDsv74A7b/VgPBABQDw//eA8T/6wPG/+sDyP/rA8n/6APL/+sD0v/oA9r/6APi/1YD4//eA+b/6wPr/+gD7P/rA/H/6wPz/+gD+P9WA/n/3gP6/1YD+//eA///6wQB/+sEAv/rBAz/6wQO/+sEEP/rBBT/6AQW/+gEGP/oBB3/6wQe/1YEH//eBCD/VgQh/94EIv9WBCP/3gQk/1YEJf/eBCb/VgQn/94EKP9WBCn/3gQq/1YEK//eBCz/VgQt/94ELv9WBC//3gQw/1YEMf/eBDL/VgQz/94ENP9WBDX/3gQ3/+sEOf/rBDv/6wQ9/+sEP//rBEH/6wRD/+sERf/rBEv/6wRN/+sET//rBFH/6wRT/+sEVf/rBFf/6wRZ/+sEW//rBF3/6wRf/+sEYf/rBGP/6gRl/+oEZ//qBGn/6gRr/+oEbf/qBG//6gRx/+gEc//oBHX/6AR3ABQEmf9WBJr/3gSc/+sEoP/rBKT/6gSp/+sEq//rBL8AFATD/+gExf/oBMv/wATS/8AE6v/AADMAOP/VADr/5AA7/+wAPf/dANL/1QDW/9UBGf/kATn/1QFF/9UB6wAOAe0ADgIzAA4Cmf/dAw7/1QMQ/9UDEv/VAyD/7AMi/90DJP/dAzIADgMzAA4DNAAOAzUADgM2AA4DNwAOAzgADgNNAA4DTgAOA08ADgOL/90Dmv/dA53/3QPB/9UD0//sA9X/7APX/+wD2f/dA+r/5APy/90EcP/dBHL/3QR0/90Ed//VBIb/3QS//9UEwv/kBMT/5ATG/+wEywAOBNIADgTqAA4AHQA4/7AAOv/tAD3/0ADS/7AA1v+wARn/7QE5/7ABRf+wApn/0AMO/7ADEP+wAxL/sAMi/9ADJP/QA4v/0AOa/9ADnf/QA8H/sAPZ/9AD6v/tA/L/0ARw/9AEcv/QBHT/0AR3/7AEhv/QBL//sATC/+0ExP/tABEALv/uADn/7gKV/+4Clv/uApf/7gKY/+4C5f/uAxT/7gMW/+4DGP/uAxr/7gMc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/+IAGAA4/+sAPf/zANL/6wDW/+sBOf/rAUX/6wKZ//MDDv/rAxD/6wMS/+sDIv/zAyT/8wOL//MDmv/zA53/8wPB/+sD2f/zA/L/8wRw//MEcv/zBHT/8wR3/+sEhv/zBL//6wA5AFH/7wBS/+8AVP/vAFz/8ADB/+8A7P/vAO3/7gDu//AA8P/vAPH/7wDz/+8A9P/vAPX/7wD2/+4A+P/vAPr/7wD7/+8A/v/vAQD/7wEF/+8BCf/0ASD/8QEr/+8BNP/wATb/7wE6/+8BPP/vAT7/7wFE//ABU//vAVX/7wFX/+8BXP/vAV7/8AFt/+8Cqv/vAvL/7wL0/+8C9v/vAvf/7wOg/+8Dxf/vA8f/7wPK//ADzP/vA9H/7wPh/+8D5//vA/b/8AQE//AECP/vBAr/7wQc/+8EfP/vBJj/7wS1/+8Et//vACMABv/yAAv/8gBa//UAXf/1AL3/9QD2//QBCf/1ARr/9QE6//UBbf/1AYT/8gGF//IBh//yAYj/8gGJ//ICtP/1ArX/9QMj//UDpv/1A8n/9QPS//UD2v/1A9v/8gPc//ID3//yA+v/9QPz//UEFP/1BBb/9QQY//UEcf/1BHP/9QR1//UEw//1BMX/9QAKAO0AFAD2/+0A+f/tAPz/4gE6/+0BSP/tAUr/7QFt/+0EGv/tBHr/7QB2AEf/8ABI//AASf/wAEv/8ABT/+sAVf/wAJT/8ACZ//AAu//wAMj/8ADJ//AA9//wAQP/8AEY/+sBHP/rAR7/8AEi//ABQv/wAWD/8AFh//ABa//wAdv/6wHd/+sB5f/pAez/6wH1/+sCEf/rAhr/6wIx/+sCof/wAqL/8AKj//ACpP/wAqX/8AKr/+sCrP/rAq3/6wKu/+sCr//rAr3/8AK///ACwf/wAsP/8ALF//ACx//wAsn/8ALL//ACzf/wAs//8ALR//AC0//wAtX/8ALX//AC+f/rAvv/6wL9/+sDOf/rA0P/6wNE/+sDRf/rA0b/6wNH/+sDUP/rA1H/6wNS/+sDU//rA1r/6wNb/+sDXP/rA13/6wNt/+sDbv/rA2//6wOe//ADpP/rA6r/6wPE//ADxv/rA8j/8APL//AD5v/wA+z/8APx//AD///wBAH/8AQC//AEDP/rBA7/8AQQ/+sEHf/wBDf/8AQ5//AEO//wBD3/8AQ///AEQf/w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AOwAPgDuAO4APwD3APcAQAD8APwAQQD+AP8AQgEEAQUARAEKAQoARgENAQ0ARwEYARoASAEuATAASwEzATUATgE3ATcAUQE5ATkAUgE7ATsAUwFDAUQAVAFUAVQAVgFWAVYAVwFYAVgAWAFcAV4AWQGEAYoAXAGOAY8AYwHYAdgAZQHdAd0AZgHgAeEAZwHrAe0AaQH/Af8AbAIOAhAAbQIwAjAAcAIzAjMAcQJFAkUAcgJHAkgAcwJ6AnsAdQJ9An0AdwJ/AqUAeAKqAq8AnwK0AsQApQLGAs8AtgLYAtoAwALcAtwAwwLeAt4AxALgAuAAxQLiAuIAxgLlAuUAxwLnAucAyALpAukAyQLrAusAygLtAu0AywLvAu8AzALxAv0AzQL/Av8A2gMBAwEA2wMDAwMA3AMOAw4A3QMQAxAA3gMSAxIA3wMUAxQA4AMWAxYA4QMYAxgA4gMaAxoA4wMcAxwA5AMeAx4A5QMgAyAA5gMiAyoA5wMvAzgA8ANDA0cA+gNNA08A/wNUA1QBAgNlA2kBAwNtA28BCAN4A3gBCwOGA4sBDAOOA50BEgOgA6ABIgOkA6QBIwOmA6YBJAOqA6oBJQOtA64BJgOwA7kBKAO7A70BMgO/A8QBNQPGA8wBOwPSA9MBQgPVA9UBRAPXA9cBRQPZA9wBRgPfA+QBSgPmA+YBUAPqA+sBUQPwA/sBUwP+A/8BXwQBBAQBYQQLBAwBZQQQBBABZwQSBBgBaAQeBEYBbwRIBEgBmARKBFcBmQRfBF8BpwRiBGIBqARkBGQBqQRwBHUBqgR3BHcBsAR7BHwBsQR/BH8BswSBBIIBtASEBIQBtgSGBIYBtwSXBJsBuASdBJ0BvQSfBKABvgSiBKIBwASmBKgBwQSqBKoBxASsBK4BxQSwBLAByASyBLIByQS0BLoBygS8BLwB0QS/BL8B0gTBBMYB0wTIBMsB2QTPBM8B3QTSBNIB3gTYBNgB3wTdBN0B4AToBOgB4QTqBOoB4gTxBPEB4wT1BPUB5AACAXQABgAGABkACwALABkAEAAQACEAEgASACEAJQAlAAIAJgAmABwAJwAnABMAKAAoAAEAKQApAAUALgAuAAoALwAvAAsAMAAwABgAMwAzAAEANAA0ABYAOAA4AA4AOQA5AAoAOgA6AB0AOwA7ABsAPAA8ABIAPQA9AAwAPgA+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AAMAAAAAAAAAAAAAAAAAAAARABUAAAADAAAAAAALAAAAAAADAAAAAwAAAAAAAgABABEAFQALAAAAIAAhAAAAAAAAAAAAAAAAAAAAGQAbAAAAAwAAAAMAAAADAAAAAAAAAAAAAwARABUAAAABAAEAAAAAAAAAAAAZAAAAAAAAAAIAAQAAAAAAAAAZABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfAB8AAAAUABQAGgAUABQAFAAaAAAAAAAAABoAGgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcAHAAkAAAAEgAYAB4AAAAIAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA0ACAANAAAAAAAAAAAAAAAAABgACAAAAAAAGAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAGAAIABcAHAAYAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgAAAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAABgAGAAYABgAGAAYABgACAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgAKAAoACgAKAAwABwAHAAcABwAHAAcABwABAAEAAQABAAEAAAAAAAAAAAADAAQABAAEAAQABAAFAAUABQAFAAkACQAGAAcABgAHAAYABwACAAEAAgABAAIAAQACAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAgABAAIAAQACAAEAAgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwAAAAMAAwACAAQAAgAEAAIABAAAAAAAAAAAAAAAAAAQAA4AEAAOABAADgAQAA4AEAAOAAsAAAALAAAACwAAAAoABQAKAAUACgAFAAoABQAKAAUACgAFABYAAAAMAAkADAATAA8AEwAPABMADwAAAAAAAgAAAAAAAAAAAA0ADQANAA0ADQANAA0ACAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAIAAgAEgASABIAEgAXAA0ADQANAAgACAAIAAgAAAAAAAAAAAAAAAAACAAIAAgACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAgACAAAAAAAAAAeAB4AHgAeAAAAGAAAABIAEgASABIAEgASACQAFwAXAAAAAAAAAAYAAAAAAAAAAgAMAAAAAAAGAAAAAAATAAAAAAAAAAAAAAACAAAAAAAMABEAAAAMAAEAAAADAAAABQAAAAQAAAAJAAAAAAAFAAQABQAAAAAAAAAAAAAAAAAjAAAAAAAiAAYAAAAAAAAAAAAAAAAAAgAAAAAAAgALABEABwABAAMABAADAAEACQAVAAEAAwAOAAAAAAAAAAMACQAWAAAAFgAAABYAAAAMAAkAFAAUAAAAAAAUAAAAAwAGAAcAAAAAAAEAAwAAAAAAHQAJAAEAAgAAAAAAAgABAAwACQAAABEAFQAAAAYABwAGAAcAAAAAAAAAAQAAAAEAAQARABUAAAAAAAAAAwAAAAMAAgAEAAIAAQACAAQAAAAAACIACQAiAAkAIgAJACAAIQAAAAMAAQAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIAAQACAAEAAgABAAIABAACAAEACgAFAAoABQAAAAUAAAAFAAAABQAAAAUAAAAFAAwACQAMAAkADAAJAAAACwAAACAAIQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGAAcAAAABAAAAAAACAAQAAAAAAAAABQAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAIAAAAAAAAAAAAQAA4ACwAAAAoAHQAJAB0ACQAWAAAAEwAPAAAADQAAAAAAAAAIABcAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABwAAAAXAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAgAAAAAAAgAGAAcAAAAAAAIABcAAQAAAAoBYgKSAARERkxUABpjeXJsABpncmVrABpsYXRuAEgABAAAAAD//wASAAAAAQACAAMABAAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAC4AB0FaRSAA5ENSVCAA5EZSQSAAWk1PTCAAtk5BViAAiFJPTSAAtlRSSyAA5AAA//8AEwAAAAEAAgADAAQABwAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACQAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAKAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wATAAAAAQACAAMABAAFAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAGGMyc2MAkmNjbXAAmGRsaWcAoGRub20ApmZyYWMArGxpZ2EAtmxpZ2EAvGxpZ2EAyGxudW0A0GxvY2wA1mxvY2wA3GxvY2wA4m51bXIA6G9udW0A7nBudW0A9HNtY3AA+nNzMDEBAHNzMDIBBnNzMDMBDHNzMDQBEnNzMDUBGHNzMDYBHnNzMDcBJHRudW0BKgAAAAEAAAAAAAIAAgAEAAAAAQAKAAAAAQAYAAAAAwAWABcAGQAAAAEACQAAAAQACAAJAAgACQAAAAIACAAJAAAAAQAVAAAAAQAHAAAAAQAFAAAAAQAGAAAAAQAZAAAAAQASAAAAAQATAAAAAQABAAAAAQALAAAAAQAMAAAAAQANAAAAAQAOAAAAAQAPAAAAAQAQAAAAAQARAAAAAQAUABoANgQwB+4IoAjKD24PhA+uD8IP5hAQEEwQYBB0EIgQmhC0EPYRFBFmEawSDhJsEoASsBLSAAEAAAABAAgAAgH6APoB5wJxAdEB0AHPAc4BzQHMAcsBygHJAcgCMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAegB6QJzAnUCdAJ2AnICdwJSAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+AgACAQT+AgICAwIEAgUCBgIHAggCCQIKAgsCOwINAg4CDwIQBPgCEQITAhQCFQIWAhcCGAIZAhsCHAIeAh0DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjBP8DZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UFAgN2A3cDeQN4A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFBQAFAQTLBMwEzQTOBM8E0ATRBNIE0wTUBNUE1gTXBNgE2QTaBNsE3ATdBN4E3wTgBOEE4gTjBOQE5QTmBOcB/wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gUDBQQFBQUGBPcE+QT6BPwCGgT9BPsCDAISBQsFDAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPTA9UD1wPZA+4D8APyBAcEDQQTBH0EggSGBQcFCQABAAAAAQAIAAIB3ADrAnECMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAmQCcwMwAnUCdAMvAeMCcgJ3AlIE0gTTAeoB6wTUBNUE1gHsBNcB7QHuAe8E3AHwAfAE3QTeAfEB8gHzAfoE6wTsAfsB/AH9Af4B/wIABO8E8ATyBPUE/gICAgMCBAIFAgYCBwIIAgkCCgILAfQB9QH2AfcB+AH5AjsCDQIOAg8CEAT4AhECEwIUAhUCFwIZAnYDMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTAOCA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IE/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4MDhAOFBQAFAQTLBMwEzQTOBNgE2wTZBNoE3wTgBOEEzwTQBNEE6gTtBO4E8QTzBPQCAQT2BOIE4wTkBOUE5gTnBOgE6QUDBQQFBQUGBPcE+QT6AhgE/AIaBP0E+wIWAgwCEgULBQwAAQDrAAoARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAIUAhgCHAIkAigCLAI0AkACSAJQAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8BAAEBAQIBAwEEAQUBBgEHATABNAE2ATgBOgE8AUIBRAFGAUoBTQFaAnwCfgKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArcCuQK7Ar0CvwLBAsMCxQLHAskCywLNAs8C0QLTAtUC1wLZAtsC3QLfAuEC5ALmAugC6gLsAu4C8ALyAvQC9gL5AvsC/QL/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';\r\n\r\n this.addFileToVFS('Roboto-Regular-normal.ttf', font);\r\n this.addFont('Roboto-Regular-normal.ttf', 'Roboto-Regular', 'normal');\r\n };\r\n\r\n jsPDF.API.events.push(['addFonts', callAddRobotoRegularNormalFont]);\r\n\r\n const callAddRobotoBoldNormalFont = function (this: any) {\r\n const font = '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A0AARgGvggBmZkAA//8ARgAABEkFxAIGABYAAP//AED/7AQzBcQCBgAXAAD//wA3AAAEXwWwAgYAGAAA//8Aaf/sBEIFsAIGABkAAP//AHj/7ARjBb8ABgAaFAD//wBz/+wESwXEAAYAHBQA//8AVv/yBCwFxAAGAB0AAP//AHP/7ARLBcQABgAUFAD//wBe/+wFAgc+AiYAKwAAAQcAdQHHAT4ACQCwDC+wI9wwMQD//wBF/lYEIgYAAiYASwAAAQcAdQE6AAAACQCwAy+wKdwwMQD//wCCAAAFIgc2AiYAMgAAAQcARAExATYAEwCwAEVYsAYvG7EGGD5ZsAvcMDEA//8AaQAABA8GAAImAFIAAAEHAEQAmgAAABMAsABFWLADLxuxAxQ+WbAT3DAxAP//AAcAAAVcByMCJgAlAAABBwCsBIUBNQAWALAARViwBC8bsQQYPlmwDNywENAwMf///+j/7AQGBe4CJgBFAAABBwCsA/gAAAAWALAARViwFy8bsRcUPlmwK9ywL9AwMf//ADwAAARSByYCJgApAAABBwCsBEwBOAAWALAARViwBi8bsQYYPlmwDdywEdAwMf///+H/7AQeBe4CJgBJAAABBwCsA/EAAAAWALAARViwCC8bsQgUPlmwH9ywI9AwMf///usAAAJRByYCJgAtAAABBwCsAvsBOAAWALAARViwAi8bsQIYPlmwBdywCdAwMf///tkAAAI/Bd4CJgCNAAABBwCsAun/8AAWALAARViwAi8bsQIUPlmwBdywCdAwMf//AFb/7AUuByMCJgAzAAABBwCsBJMBNQAWALAARViwDC8bsQwYPlmwINywJNAwMf//AAH/7ARDBe4CJgBTAAABBwCsBBEAAAAWALAARViwBC8bsQQUPlmwG9ywH9AwMf//ABcAAATwByMCJgA2AAABBwCsBCcBNQAWALAARViwBC8bsQQYPlmwGdywHdAwMf///1sAAALTBe4CJgBWAAABBwCsA2sAAAAWALAARViwBy8bsQcUPlmwD9ywE9AwMf//AF//7ATQByMCJgA5AAABBwCsBG8BNQAWALAARViwCC8bsQgYPlmwEtywFtAwMf////3/7AQPBe4CJgBZAAABBwCsBA0AAAAWALAARViwBy8bsQcUPlmwEtywFtAwMf///oUAAAU6BkEAJgDQZAAABwCu/asAAP//AIL+lQS8BbACJgAmAAAABwCtBLAACv//AG/+ggQ+BgACJgBGAAAABwCtBOr/9///AIL+lQTbBbACJgAoAAAABwCtBGcACv//AEL+iwQRBgACJgBIAAAABwCtBKQAAP//AIL+BgTbBbACJgAoAAABBwG6ASj+mwANALJQGgFdsrAaAV0wMQD//wBC/fwEEQYAAiYASAAAAAcBugFl/pH//wCC/pUFIwWwAiYALAAAAAcArQUrAAr//wBo/pUEDwYAAiYATAAAAAcArQSeAAr//wCCAAAFJQc2AiYALwAAAQcAdQFkATYACQCwBC+wD9wwMQD//wBvAAAEWgc4AiYATwAAAQcAdQGbATgACQCwBS+wD9wwMQD//wCC/skFJQWwAiYALwAAAAcArQTjAD7//wBv/rMEWgYAAiYATwAAAAcArQSKACj//wCC/pUEKwWwAiYAMAAAAAcArQSwAAr//wBt/pUBsAYAAiYAUAAAAAcArQNmAAr//wCC/pUGfgWwAiYAMQAAAAcArQXWAAr//wBv/pUGfgROAiYAUQAAAAcArQXdAAr//wCC/o0FIgWwAiYAMgAAAAcArQUrAAL//wBp/pUEDwROAiYAUgAAAAcArQSTAAr//wBW/+wFLgfUAiYAMwAAAQcCNgT4AVUAFgCwAEVYsAwvG7EMGD5ZsCLcsDXQMDH//wCCAAAE3QdCAiYANAAAAQcAdQFoAUIACQCwAy+wF9wwMQD//wBv/mAEPQX3AiYAVAAAAQcAdQGn//cACQCwDC+wHNwwMQD//wCC/pUE8AWwAiYANgAAAAcArQS7AAr//wBi/pUC0wROAiYAVgAAAAcArQNbAAr//wBF/osEogXEAiYANwAAAAcArQTgAAD//wA4/oID0gROAiYAVwAAAAcArQRo//f//wAo/pIEygWwAiYAOAAAAAcArQTLAAf//wAK/osCjQVEAiYAWAAAAAcArQQIAAD//wB0/+wE0AfUAiYAOQAAAQcCNgTUAVUAFgCwAEVYsAkvG7EJGD5ZsBTcsCfQMDH//wAHAAAFNAc/AiYAOgAAAQcApQCvAUAAEwCwAEVYsAYvG7EGGD5ZsArcMDEA//8ADQAAA/sF9AImAFoAAAEGAKUa9QATALAARViwAS8bsQEUPlmwCtwwMQD//wAH/pUFNAWwAiYAOgAAAAcArQT0AAr//wAN/pUD+wQ6AiYAWgAAAAcArQReAAr//wAj/pUG3wWwAiYAOwAAAAcArQXaAAr//wAc/pUFwQQ6AiYAWwAAAAcArQVHAAr//wBJ/pUEngWwAiYAPgAAAAcArQTKAAr//wBK/pUDzAQ6AiYAXgAAAAcArQRkAAr///4X/+wFdAXXACYAM0YAAAcBcf28AAD////dAAAErQUeAiYCMwAAAAcArv8D/t3///72AAAD+AUhACYCKDwAAAcArv4c/uD///7wAAAErwUaACYB5DwAAAcArv4W/tn///7xAAAB1AUhACYB4zwAAAcArv4X/uD///9V//AEiAUeACYB3QoAAAcArv57/t3///66AAAEiwUeACYB0zwAAAcArv3g/t3///9iAAAEkQUfACYB8woAAAcArv6I/t7/////AAAErQSNAgYCMwAA//8AYwAABCIEjQIGAjIAAP//AGMAAAO8BI0CBgIoAAD//wA3AAAEBASNAgYB0gAA//8AYwAABHMEjQIGAeQAAP//AHYAAAGYBI0CBgHjAAD//wBjAAAEdQSNAgYB4QAA//8AYwAABaMEjQIGAd8AAP//AGMAAARyBI0CBgHeAAD//wBA//AEfgSdAgYB3QAA//8AYwAABDUEjQIGAdwAAP//ACAAAAQvBI0CBgHYAAD/////AAAETwSNAgYB0wAA//8AAwAABFwEjQIGAdQAAP///4sAAAKHBfICJgHjAAAABwBq/y0AHv////8AAARPBfICJgHTAAAABgBqPx7//wBjAAADvAXyAiYCKAAAAAYAak0e//8AYwAAA6gGHgImAeoAAAEHAHUBEwAeABMAsABFWLAELxuxBBY+WbAI3DAxAP//ADr/8AQBBJ0CBgHZAAD//wB2AAABmASNAgYB4wAA////iwAAAocF8gImAeMAAAAHAGr/LQAe//8AIP/wA3kEjQIGAeIAAP//AGMAAAR1Bh4CJgHhAAABBwB1AQ0AHgATALAARViwBS8bsQUWPlmwD9wwMQD//wAb/+wEaQYUAiYCAQAAAQcAoQCOAB4AEwCwAEVYsBAvG7EQFj5ZsBTcMDEA/////wAABK0EjQIGAjMAAP//AGMAAAQiBI0CBgIyAAD//wBjAAADqASNAgYB6gAA//8AYwAAA7wEjQIGAigAAP//AGMAAAR2BhQCJgH+AAABBwCh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AvsARgL7ADMC+wBHAvsAQwVqAFgFkgBYBXIAhAXWAFgF1wBYBGgAjwSCAFgEVwAPBKwALARrAGgELgA8A50AagHZAFoGjgBABKcAYAIb/58ElwA3BJcAYQSXADQElwBUBJcATgSXADMElwBfBJcAVgSXAF8ElwDZAkH/rQJB/60CMQCGAjH//AIxAIYEbQBjBNIATAQ+ADgEkQBvBEYARASYAEQElgBEBJwAPASVAG8EmgBEBFMASASRAEID1ABmBTUAVgPQAAcGUP/XBBQAYwTAAEAFMAA2BNYAYwH+AAADGgBuBVH/7AVR/+wEmP/LBPMAKAK0/+IFYgAHBWIABwViAAcFYgAHBWIABwViAAcFYgAHBTwAVgSAAIIEgACCBIAAggSAAIICVf+6AlUAlQJV/68CVf+tBaYAggWGAFYFhgBWBYYAVgWGAFYFhgBWBUQAdAVEAHQFRAB0BUQAdATyAAIESgBEBEoARARKAEQESgBEBEoARARKAEQESgBEBCwAQgRTAEgEUwBIBFMASARTAEgCMf+oAjEAhgIx/50CMf+bBHsAaQSGAEIEhgBCBIYAQgSGAEIEhgBCBHoAaAR6AGgEegBoBHoAaAQEAAMEBAADBWIABwRKAEQFYgAHBEoARAViAAcESgBEBTwAVgQsAEIFPABWBCwAQgU8AFYELABCBTwAVgQsAEIFMwCCBRgAQgSAAIIEUwBIBIAAggRTAEgEgACCBFMASASAAIIEUwBIBIAAggRTAEgFcwBeBJEARQVzAF4EkQBFBXMAXgSRAEUFcwBeBJEARQWnAIIEegBoAlX/sgIx/6ACVf/UAjH/wgJV/9ICMf/AAlUAFwIfAAMCVQCVBs0AlQQzAG0EeAAoAkH/lwUUAIIERgBvBFUAggIfAH4EVQCCAh8AWwRVAIICtQB+BFUAggL7AH4FpgCCBHsAaQWmAIIEewBpBaYAggR7AGkEe/+SBYYAVgSGAEIFhgBWBIYAQgWGAFYEhgBCBRsAggLrAG8FGwCCAusAUAUbAIIC6wARBOsARQQdADgE6wBFBB0AOATrAEUEHQA4BOsARQQdADgE6wBFBB0AOATzACgCtAAKBPMAKAK0AAoE8wAoAtwACgVEAHQEegBoBUQAdAR6AGgFRAB0BHoAaAVEAHQEegBoBUQAdAR6AGgFRAB0BHoAaAb/ACMF4QAc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BQUEAgcFAgUFBQUFBQUFBQUDAwICAgUFBQUFBQUFBQUFBQQGBAcFBQYFAgMGBgUGAwYGBgYGBgYGBQUFBQMDAwMGBgYGBgYGBgYGBgUFBQUFBQUFBQUFBQICAgIFBQUFBQUFBQUFBQUGBQYFBgUGBQYFBgUGBQYGBQUFBQUFBQUFBQYFBgUGBQYFBgUDAgMCAwIDAgMIBQUDBgUFAgUCBQMFAwYFBgUGBQUGBQYFBgUGAwYDBgMGBQYFBgUGBQYFBgMGAwYDBgUGBQYFBgUGBQYFCAcGBQYFBQUFBQUICAYFBQUFBQUFBQUFBQUEBAQEAgICAgUFBQUFBQUFBQUFBQUFBQUFBQUEBAQEBAUFBQUFAgICAgIEBQQEBAQFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBwUFBQUFBgUGAwYGBgMGBgUFBgMGCAYGBgYGBgMGBQUFAwUFBQYFBQMFBQUHBQUGAwMFBgYGBgYFBQYIBgYGBgYGBgUFBQUFBQUFBQQFAgICBQUIBwgHCAcGBQEDBQMCCAgGBQUGBQUHBwYFCgsGBQYFBgUDCQgDBgUGBQgIBQUGBQUJCAYFBgUGBQYFBgUGBQYFBgUGBQYFBgUIBwUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUFBQUFBQUFBQUFBQUFBQUFAwIDAgYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBgUGBQYFBQYFBgUFBAcFBQYGBQQGBQYFBgUFBQcFBQUFBQUFBQYFBgUGBQUFAwIGBQYDBgUGBgUGBQYFBgUGBQYFBQIICAYFBgYFBgMGBQYDBgYFBgUIBwUFBwUFBgMFBQUFBQQFBQIFBwUFBQUFBQIFBAQFAgIEBQUFBQQEBQcFBQUFBQUFBQUFBQcFBQcHBwUFBwcHBQYFBQUFBAIAAAADAAAAAwAAABwAAwABAAAAHAADAAoAAAaKAAQGbgAAAPQAgAAGAHQAAAACAA0AfgCgAKwArQC/AMYAzwDmAO8A/gEPAREBJQEnATABUwFfAWcBfgF/AY8BkgGhAbAB8AH/AhsCNwJZArwCxwLJAt0C8wMBAwMDCQMPAyMDigOMA5IDoQOwA7kDyQPOA9ID1gQlBC8ERQRPBGIEbwR5BIYEnwSpBLEEugTOBNcE4QT1BQEFEAUTHgEePx6FHvEe8x75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ARAAAAJ6AAABEQAAAREAAACLAAABEgAAASUAAALGAAABJgAAASYAAACMAAABJwAAAScAAAJ8AAABKAAAATAAAALaAAABMQAAATEAAACNAAABMgAAATcAAALjAAABOAAAATgAAACOAAABOQAAAUAAAALpAAABQQAAAUIAAACPAAABQwAAAUkAAALxAAABSgAAAUsAAACRAAABTAAAAVEAAAL4AAABUgAAAVMAAACTAAABVAAAAV8AAAL+AAABYAAAAWEAAAMMAAABYgAAAWUAAAMQAAABZgAAAWcAAAJ9AAABaAAAAX4AAAMUAAABfwAAAX8AAACVAAABjwAAAY8AAACWAAABkgAAAZIAAACXAAABoAAAAaEAAACYAAABrwAAAbAAAACaAAAB8AAAAfAAAAPeAAAB+gAAAfoAAAKFAAAB+wAAAfsAAAKgAAAB/AAAAf8AAAMrAAACGAAAAhkAAAMKAAACGgAAAhsAAAMOAAACNwAAAjcAAACcAAACWQAAAlkAAACdAAACvAAAArwAAAPfAAACxgAAAscAAACeAAACyQAAAskAAACgAAAC2AAAAt0AAAChAAAC8wAAAvMAAACnAAADAAAAAwEAAACoAAADAwAAAwMAAACqAAADCQAAAwkAAACrAAADDwAAAw8AAACsAAADIwAAAyMAAACtAAADhAAAA4UAAACuAAADhgAAA4YAAAOGAAADhwAAA4cAAACwAAADiAAAA4oAAAOHAAADjAAAA4wAAAOKAAADjgAAA5IAAAOLAAADkwAAA5QAAACxAAADlQAAA5cAAAOQAAADmAAAA5gAAACzAAADmQAAA5oAAAOTAAADmwAAA5sAAAC0AAADnAAAA50AAAOVAAADngAAA54AAAC1AAADnwAAA58AAAOXAAADoAAAA6AAAAC2AAADoQAAA6EAAAOYAAADowAAA6MAAAC3AAADpAAAA6UAAAOZAAADpgAAA6YAAAC4AAADpwAAA6cAAAObAAADqAAAA6kAAAC5AAADqgAAA7AAAAOcAAADsQAAA7kAAAC7AAADugAAA7oAAAOjAAADuwAAA7sAAADEAAADvAAAA70AAAOlAAADvgAAA74AAADFAAADvwAAA78AAAOkAAADwAAAA8YAAADGAAADxwAAA8cAAAOnAAADyAAAA8kAAADNAAADygAAA84AAAOoAAAD0QAA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AMQAAwABBAkACQAMAQQAAwABBAkACwAUARAAAwABBAkADAAmASQAAwABBAkADQBcAUoAAwABBAkADgBUAaYAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAFIAbwBiAG8AdABvAEIAbwBsAGQAUgBvAGIAbwB0AG8AIABCAG8AbABkAFYAZQByAHMAaQBvAG4AIAAyAC4AMQAzADcAOwAgADIAMAAxADcAUgBvAGIAbwB0AG8ALQBCAG8AbABkAFIAbwBiAG8AdABvACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAARwBvAG8AZwBsAGUALgBHAG8AbwBnAGwAZQBHAG8AbwBnAGwAZQAuAGMAbwBtAEMAaAByAGkAcwB0AGkAYQBuACAAUgBvAGIAZQByAHQAcwBvAG4ATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMAADAAAAAAAA/2oAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAgAIAAL//wAPAAEAAgAOAAAAAAAAAigAAgBZACUAPgABAEUAXgABAHkAeQABAIEAgQABAIMAgwABAIYAhgABAIkAiQABAIsAlgABAJgAnQABAKQApAABAKgArQADALEAsQABALoAuwABAL8AvwABAMEAwQABAMMAwwABAMcAxwABAMsAywABAM0AzgABANAA0QABANMA0wABANoA3gABAOEA4QABAOUA5QABAOcA6QABAOsA+wABAP0A/QABAP8BAQABAQMBAwABAQgBCQABARYBGgABARwBHAABASABIgABASQBJQADASoBKwABATMBNAABATYBNgABATsBPAABAUEBRAABAUcBSAABAUsBTQABAVEBUQABAVQBWAABAV0BXgABAWIBYgABAWQBZAABAWgBaAABAWoBbAABAW4BbgABAXABcAABAboBugADAbsBwQACAdIB5gABAeoB6gABAfMB8wABAfUB9QABAfwB/gABAgACAQABAgMCAwABAgcCBwABAgkCCwABAhECEQABAhYCGAABAhoCGgABAigCKAABAisCKwABAi0CLQABAjACMwABAl8CYwABAnoC4gABAuUDiwABA40DpAABA6YDsgABA7QDvQABA78D2gABA94D3gABA+AD5wABA+kD6wABA+4D8gABA/QEfAABBH8EfwABBIIEgwABBIUEhgABBIgEiwABBJUE0AABBNIE8QABBPME+gABBPwE/QABBQcFDQABAAEAAgAAAAwAAAAsAAEADgCoAKgAqQCpAKoAqgCrAKsArACsASQBJQEmAScAAQAFAHkApACtAK0BugAAAAEAAAAKADIATAAEREZMVAAaY3lybAAaZ3JlawAabGF0bgAaAAQAAAAA//8AAgAAAAEAAmNwc3AADmtlcm4AFAAAAAEAAAAAAAEAAQACAAYCEAABAAAAAQAIAAEACgAFACQASAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPT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A/sBZgP+A/8BcAQBBAQBcgQLBAwBdgQQBBABeAQSBBgBeQQeBEYBgARIBEgBqQRKBFcBqgRfBF8BuARwBHUBuQR3BHcBvwR7BHwBwAR/BH8BwgSBBIIBwwSEBIQBxQSGBIYBxgSXBJsBxwSdBJ0BzASfBKABzQSiBKIBzwSmBKgB0ASqBKoB0wSsBK4B1ASwBLAB1wSyBLIB2AS0BLoB2QS8BLwB4AS/BL8B4QTCBMYB4gTIBMgB5wTKBMsB6ATPBM8B6gTSBNIB6wTYBNgB7ATdBN0B7QToBOgB7gTqBOoB7wTxBPEB8AT1BPUB8QALADj/xADS/8QA1v/EATn/xAFF/8QDDv/EAxD/xAMS/8QDwf/EBHf/xAS//8QAGAA6ABQAOwAmAD0AFgEZABQCmQAWAyAAJgMiABYDJAAWA4sAFgOaABYDnQAWA9MAJgPVACYD1wAmA9kAFgPqABQD8gAWBHAAFgRyABYEdAAWBIYAFgTCABQExAAUBMYAJgABABP/CADnABD+7gAS/u4AJf9AAC7/MAA4ABQARf/eAEf/6wBI/+sASf/rAEv/6wBT/+sAVf/rAFb/5gBZ/+oAWv/oAF3/6ACU/+sAmf/rAJv/6gCy/0AAtP9AALv/6wC9/+gAyP/rAMn/6wDL/+oA0gAUANYAFAD3/+sBA//rAQ3/QAEY/+sBGv/oAR7/6wEi/+sBOQAUAUL/6wFFABQBYP/rAWH/6wFr/+sBhv7uAYr+7gGO/u4Bj/7uAev/wAHt/8ACM//AAn//QAKA/0ACgf9AAoL/QAKD/0AChP9AAoX/QAKa/94Cm//eApz/3gKd/94Cnv/eAp//3gKg/94Cof/rAqL/6wKj/+sCpP/rAqX/6wKr/+sCrP/rAq3/6wKu/+sCr//rArD/6gKx/+oCsv/qArP/6gK0/+gCtf/oArb/QAK3/94CuP9AArn/3gK6/0ACu//eAr3/6wK//+sCwf/rAsP/6wLF/+sCx//rAsn/6wLL/+sCzf/rAs//6wLR/+sC0//rAtX/6wLX/+sC5f8wAvn/6wL7/+sC/f/rAw4AFAMQABQDEgAUAxX/6gMX/+oDGf/qAxv/6gMd/+oDH//qAyP/6AMy/8ADM//AAzT/wAM1/8ADNv/AAzf/wAM4/8ADTf/AA07/wANP/8ADhv9AA47/QAOe/+sDov/qA6T/6wOm/+gDqf/qA6r/6wOr/+oDsv8wA7b/QAPBABQDw//eA8T/6wPG/+sDyP/rA8n/6APL/+sD0v/oA9r/6APi/0AD4//eA+b/6wPr/+gD7P/rA/H/6wPz/+gD+P9AA/n/3gP6/0AD+//eA///6wQB/+sEAv/rBAz/6wQO/+sEEP/rBBT/6AQW/+gEGP/oBB3/6wQe/0AEH//eBCD/QAQh/94EIv9ABCP/3gQk/0AEJf/eBCb/QAQn/94EKP9ABCn/3gQq/0AEK//eBCz/QAQt/94ELv9ABC//3gQw/0AEMf/eBDL/QAQz/94ENP9ABDX/3gQ3/+sEOf/rBDv/6wQ9/+sEP//rBEH/6wRD/+sERf/rBEv/6wRN/+sET//rBFH/6wRT/+sEVf/rBFf/6wRZ/+sEW//rBF3/6wRf/+sEYf/rBGP/6gRl/+oEZ//qBGn/6gRr/+oEbf/qBG//6gRx/+gEc//oBHX/6AR3ABQEmf9ABJr/3gSc/+sEoP/rBKT/6gSp/+sEq//rBL8AFATD/+gExf/oBMv/wATS/8AE6v/AADMAOP/fADr/5AA7/+wAPf/dANL/3wDW/98BGf/kATn/3wFF/98B6wAOAe0ADgIzAA4Cmf/dAw7/3wMQ/98DEv/fAyD/7AMi/90DJP/dAzIADgMzAA4DNAAOAzUADgM2AA4DNwAOAzgADgNNAA4DTgAOA08ADgOL/90Dmv/dA53/3QPB/98D0//sA9X/7APX/+wD2f/dA+r/5APy/90EcP/dBHL/3QR0/90Ed//fBIb/3QS//98Ewv/kBMT/5ATG/+wEywAOBNIADgTqAA4AHQA4/84AOv/tAD3/0ADS/84A1v/OARn/7QE5/84BRf/OApn/0AMO/84DEP/OAxL/zgMi/9ADJP/QA4v/0AOa/9ADnf/QA8H/zgPZ/9AD6v/tA/L/0ARw/9AEcv/QBHT/0AR3/84Ehv/QBL//zgTC/+0ExP/tABEALv/uADn/7gKV/+4Clv/uApf/7gKY/+4C5f/uAxT/7gMW/+4DGP/uAxr/7gMc/+4DHv/uA7L/7gRi/+4EZP/uBMH/7gBNAAYAEAALABAADQAUAEEAEgBH/+gASP/oAEn/6ABL/+gAVf/oAGEAEwCU/+gAmf/oALv/6ADI/+gAyf/oAPf/6AED/+gBHv/oASL/6AFC/+gBYP/oAWH/6AFr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/+sAw//pAMX/8ADG/+cAyP/cAMn/3ADK/+MAy//dAMz/zgDN/9QAzv/bAOz/wQDw/8EA8f/BAPP/wQD0/8EA9f/BAPf/3AD4/8EA+v/BAPv/wQD+/8EBAP/BAQP/3AEF/8EBGP/WARr/4QEe/9wBIv/cASv/wQE2/8EBPP/BAT7/wQFC/9wBU//BAVX/wQFX/8EBXP/BAWD/3AFh/9wBa//cAqH/3AKi/9wCo//cAqT/3AKl/9wCqv/BAqv/1gKs/9YCrf/WAq7/1gKv/9YCsP/dArH/3QKy/90Cs//dArT/4QK1/+ECvf/cAr//3ALB/9wCw//cAsX/3ALH/9wCyf/cAsv/3ALN/9wCz//cAtH/3ALT/9wC1f/cAtf/3ALy/8EC9P/BAvb/wQL3/8EC+f/WAvv/1gL9/9YDFf/dAxf/3QMZ/90DG//dAx3/3QMf/90DI//hA57/3AOg/8EDov/dA6T/1gOm/+EDqf/dA6r/1gOr/90DxP/cA8X/wQPG/9YDx//BA8j/3APJ/+EDy//cA8z/wQPR/8ED0v/hA9r/4QPh/8ED5v/cA+f/wQPr/+ED7P/cA/H/3APz/+ED///cBAH/3AQC/9wECP/BBAr/wQQM/9YEDv/cBBD/1gQU/+EEFv/hBBj/4QQc/8EEHf/cBDf/3AQ5/9wEO//cBD3/3AQ//9wEQf/cBEP/3ARF/9wES//WBE3/1gRP/9YEUf/WBFP/1gRV/9YEV//WBFn/3ARb/9wEXf/cBF//1gRh/9wEY//dBGX/3QRn/90Eaf/dBGv/3QRt/90Eb//dBHH/4QRz/+EEdf/hBHz/wQSY/8EEnP/cBKD/1gSk/90Eqf/cBKv/3AS1/8EEt//BBMP/4QTF/+EAfAAG/9oAC//aAEf/8ABI//AASf/wAEv/8ABV//AAWf/vAFr/3ABd/9wAlP/wAJn/8ACb/+8Au//wAL3/3ADC/+wAxAAPAMb/6gDI//AAyf/wAMr/zgDL/+8AzP/nAPf/8AED//ABGv/cAR7/8AEi//ABQv/wAWD/8AFh//ABa//wAYT/2gGF/9oBh//aAYj/2gGJ/9oCof/wAqL/8AKj//ACpP/wAqX/8AKw/+8Csf/vArL/7wKz/+8CtP/cArX/3AK9//ACv//wAsH/8ALD//ACxf/wAsf/8ALJ//ACy//wAs3/8ALP//AC0f/w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AxL/0gMi/9MDI//mAyT/0wOL/9MDmv/TA5v/9AOd/9MDpv/mA7X/7QPB/9IDwv/0A8n/5gPK/+8D0v/mA9n/0wPa/+YD2//KA9z/ygPf/8oD6v/UA+v/5gPy/9MD8//mA/X/9AP2/+8EA//0BAT/7wQT/+0EFP/mBBX/7QQW/+YEF//tBBj/5gQZ/+EEcP/TBHH/5gRy/9MEc//mBHT/0wR1/+YEd//SBHn/4QSG/9MEv//SBML/1ATD/+YExP/UBMX/5gByAAb/wAAL/8AAOP+dADr/xwA8//AAPf+rAFH/0gBS/9IAVP/SAMH/0gDS/50A1P/1ANb/nQDa//AA3f/1AN7/6gDh/+UA5v/BAOz/0gDw/9IA8f/SAPP/0gD0/9IA9f/SAPb/zQD4/9IA+v/SAPv/0gD+/9IBAP/SAQX/0gEZ/8cBK//SATP/8AE2/9IBOf+dATr/zAE8/9IBPv/SAUP/8AFF/50BR//lAUn/5QFM/98BUP/1AVP/0gFV/9IBV//SAVz/0gFd//ABYv/OAWT/6gFm//UBbP+eAW3/zgFv//UBhP/AAYX/wAGH/8ABiP/AAYn/wAKZ/6sCqv/SAvL/0gL0/9IC9v/SAvf/0gMO/50DEP+dAxL/nQMi/6sDJP+rA4v/qwOa/6sDm//wA53/qwOg/9IDtf/qA8H/nQPC//ADxf/SA8f/0gPM/9ID0f/SA9n/qwPb/8AD3P/AA9//wAPh/9ID5//SA+r/xwPy/6sD9f/wBAP/8AQI/9IECv/SBBP/6gQV/+oEF//qBBn/5QQc/9IEcP+rBHL/qwR0/6sEd/+dBHn/5QR8/9IEhv+rBJj/0gS1/9IEt//SBL//nQTC/8cExP/HAHUABv+xAAv/sQA4/54AOv/FADz/8gA9/6gAUf/PAFL/zwBU/88AXP/vAMH/zwDS/54A1v+eANr/8gDe/+wA4f/hAOb/wgDs/88A7v/vAPD/zwDx/88A8//PAPT/zwD1/88A9v/GAPj/zwD6/88A+//PAP7/zwEA/88BBf/PARn/xQEr/88BM//yATT/7wE2/88BOf+eATr/wAE8/88BPv/PAUP/8gFE/+8BRf+eAUf/4QFJ/+EBTP/fAVP/zwFV/88BV//PAVz/zwFd//IBXv/vAWL/zQFk/+gBbP+fAW3/xgGE/7EBhf+xAYf/sQGI/7EBif+xApn/qAKq/88C8v/PAvT/zwL2/88C9//PAw7/ngMQ/54DEv+eAyL/qAMk/6gDi/+oA5r/qAOb//IDnf+oA6D/zwO1/+wDwf+eA8L/8gPF/88Dx//PA8r/7wPM/88D0f/PA9n/qAPb/7ED3P+xA9//sQPh/88D5//PA+r/xQPy/6gD9f/yA/b/7wQD//IEBP/vBAj/zwQK/88EE//sBBX/7AQX/+wEGf/hBBz/zwRw/6gEcv+oBHT/qAR3/54Eef/hBHz/zwSG/6gEmP/PBLX/zwS3/88Ev/+eBML/xQTE/8UAUwA4/74AUf/hAFL/4QBU/+EAWv/vAF3/7wC9/+8Awf/hANL/vgDW/74A5v/JAOz/4QDw/+EA8f/hAPP/4QD0/+EA9f/hAPb/3wD4/+EA+v/hAPv/4QD+/+EBAP/hAQX/4QEJ/+0BGv/vASD/6wEr/+EBNv/hATn/vgE6/98BPP/hAT7/4QFF/74BTP/pAVP/4QFV/+EBV//hAVz/4QFj//UBbf/gAqr/4QK0/+8Ctf/vAvL/4QL0/+EC9v/hAvf/4QMO/74DEP++AxL/vgMj/+8DoP/hA6b/7wPB/74Dxf/hA8f/4QPJ/+8DzP/hA9H/4QPS/+8D2v/vA+H/4QPn/+ED6//vA/P/7wQI/+EECv/hBBT/7wQW/+8EGP/vBBz/4QRx/+8Ec//vBHX/7wR3/74EfP/hBJj/4QS1/+EEt//hBL//vgTD/+8Exf/vAGoAOP/mADr/5wA8//IAPf/nAFH/1gBS/9YAVP/WAFz/8QDB/9YA0v/mANb/5gDa//IA3v/uAOH/6ADm/+YA7P/WAO7/8QDw/9YA8f/WAPP/1gD0/9YA9f/WAPb/0AD4/9YA+v/WAPv/1gD+/9YBAP/WAQX/1gEZ/+cBK//WATP/8gE0//EBNv/WATn/5gE6/84BPP/WAT7/1gFD//IBRP/xAUX/5gFH/+gBSf/oAVP/1gFV/9YBV//WAVz/1gFd//IBXv/xAWL/5wFk/+0BbP/mAW3/0AKZ/+cCqv/WAvL/1gL0/9YC9v/WAvf/1gMO/+YDEP/mAxL/5gMi/+cDJP/nA4v/5wOa/+cDm//yA53/5wOg/9YDtf/uA8H/5gPC//IDxf/WA8f/1gPK//EDzP/WA9H/1gPZ/+cD4f/WA+f/1gPq/+cD8v/nA/X/8gP2//EEA//y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AN3/5ADe/+kA7f/kAPL/6wEE/+sBM//kATn/4gFD/+QBRf/iAVD/5AFR/+sBXf/kAWb/5AFv/+QBcP/rAw7/4gMQ/+IDEv/iA5v/5AO1/+kDwf/iA8L/5AP1/+QEA//kBBP/6QQV/+kEF//pBHf/4gS//+IAGAA4/+sAPf/zANL/6wDW/+sBOf/rAUX/6wKZ//MDDv/rAxD/6wMS/+sDIv/zAyT/8wOL//MDmv/zA53/8wPB/+sD2f/zA/L/8wRw//MEcv/zBHT/8wR3/+sEhv/zBL//6wA5AFH/7wBS/+8AVP/vAFz/8ADB/+8A7P/vAO3/7gDu//AA8P/vAPH/7wDz/+8A9P/vAPX/7wD2/+4A+P/vAPr/7wD7/+8A/v/vAQD/7wEF/+8BCf/0ASD/8QEr/+8BNP/wATb/7wE6/+8BPP/vAT7/7wFE//ABU//vAVX/7wFX/+8BXP/vAV7/8AFt/+8Cqv/vAvL/7wL0/+8C9v/vAvf/7wOg/+8Dxf/vA8f/7wPK//ADzP/vA9H/7wPh/+8D5//vA/b/8AQE//AECP/vBAr/7wQc/+8EfP/vBJj/7wS1/+8Et//vACQABv/yAAv/8gBa//UAXf/1AL3/9QD2//QA/v/0AQn/9QEa//UBOv/1AW3/9QGE//IBhf/yAYf/8gGI//IBif/yArT/9QK1//UDI//1A6b/9QPJ//UD0v/1A9r/9QPb//ID3P/yA9//8gPr//UD8//1BBT/9QQW//UEGP/1BHH/9QRz//UEdf/1BMP/9QTF//UANQBR/+4AUv/uAFT/7gDB/+4A7P/uAO0AFADw/+4A8f/uAPP/7gD0/+4A9f/uAPb/7QD4/+4A+f/tAPr/7gD7/+4A/P/QAP7/7gEA/+4BBf/uASv/7gE2/+4BOv/tATz/7gE+/+4BSP/tAUr/7QFT/+4BVf/uAVf/7gFc/+4Bbf/tAqr/7gLy/+4C9P/uAvb/7gL3/+4DoP/uA8X/7gPH/+4DzP/uA9H/7gPh/+4D5//uBAj/7gQK/+4EGv/tBBz/7gR6/+0EfP/uBJj/7gS1/+4Et//uAAoABv/1AAv/9QGE//UBhf/1AYf/9QGI//UBif/1A9v/9QPc//UD3//1AHYAR//wAEj/8ABJ//AAS//wAFP/xwBV//AAlP/wAJn/8AC7//AAyP/wAMn/8AD3//ABA//w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AEIBBAEFAEQBCgEKAEYBDQENAEcBGAEaAEgBLgEwAEsBMwE1AE4BNwE3AFEBOQE5AFIBOwE7AFMBQwFEAFQBVAFUAFYBVgFWAFcBWAFYAFgBXAFeAFkBhAGKAFwBjgGPAGMB2AHYAGUB3QHdAGYB4AHhAGcB6wHtAGkB/wH/AGwCDgIQAG0CMAIwAHACMwIzAHECRQJFAHICRwJIAHMCegJ7AHUCfQJ9AHcCfwKlAHgCqgKvAJ8CtALEAKUCxgLPALYC2ALaAMAC3ALcAMMC3gLeAMQC4ALgAMUC4gLiAMYC5QLlAMcC5wLnAMgC6QLpAMkC6wLrAMoC7QLtAMsC7wLvAMwC8QL9AM0C/wL/ANoDAQMBANsDAwMDANwDDgMOAN0DEAMQAN4DEgMSAN8DFAMUAOADFgMWAOEDGAMYAOIDGgMaAOMDHAMcAOQDHgMeAOUDIAMgAOYDIgMqAOcDLwM4APADQwNHAPoDTQNPAP8DVANUAQIDZQNpAQMDbQNvAQgDeAN4AQsDhgOLAQwDjgOdARIDoAOgASIDpAOkASMDpgOmASQDqgOqASUDrQOuASYDsAO5ASgDuwO9ATIDvwPEATUDxgPMATsD0gPTAUID1QPVAUQD1wPXAUUD2QPcAUYD3wPkAUoD5gPmAVAD6gPrAVED8AP7AVMD/gP/AV8EAQQEAWEECwQMAWUEEAQQAWcEEgQYAWgEHgRGAW8ESARIAZgESgRXAZkEXwRfAacEYgRiAagEZARkAakEcAR1AaoEdwR3AbAEewR8AbEEfwR/AbMEgQSCAbQEhASEAbYEhgSGAbcElwSbAbgEnQSdAb0EnwSgAb4EogSiAcAEpgSoAcEEqgSqAcQErASuAcUEsASwAcgEsgSyAckEtAS6AcoEvAS8AdEEvwS/AdIEwQTGAdMEyATLAdkEzwTPAd0E0gTSAd4E2ATYAd8E3QTdAeAE6AToAeEE6gTqAeIE8QTxAeME9QT1AeQAAgF0AAYABgAZAAsACwAZABAAEAAhABIAEgAhACUAJQACACYAJgAcACcAJwATACgAKAABACkAKQAFAC4ALgAKAC8ALwALADAAMAAYADMAMwABADQANAAWADgAOAAOADkAOQAKADoAOgAdADsAOwAbADwAPAASAD0APQAMAD4APgARAEUARQAGAEYARgAHAEcARwAXAEkASQAIAEwATAAEAFEAUgAEAFMAUwADAFQAVAAHAFYAVgAVAFoAWgAJAFwAXAAUAF0AXQAJAF4AXgAQAIoAigAHAJYAlgABALEAsQAiALIAsgACALMAswABALQAtAACAL0AvQAJAMEAwQAEAMcAxwAHANQA1QAgANoA2gASAN4A3gAlAOQA5AAgAOYA5gAgAOwA7AAaAO4A7gAUAPcA9wAHAPwA/AAfAP4A/gAfAP8A/wAHAQQBBQAfAQoBCgAfAQ0BDQACARgBGAADARkBGQAdARoBGgAJAS4BLgAHAS8BLwAiATABMAAaATMBMwASATQBNAAUATUBNQALATcBNwALATkBOQALAUMBQwASAUQBRAAUAVgBWAABAVwBXAAaAV0BXQASAV4BXgAUAYQBhQAZAYYBhgAhAYcBiQAZAYoBigAhAY4BjwAhAdgB2AAjAd0B3QANAeAB4AAkAeEB4QAeAesB6wAPAewB7AANAe0B7QAPAf8B/wAeAg4CEAAeAjACMAANAjMCMwAPAkUCRQATAkcCSAABAnoCewABAn0CfQAOAn8ChQACAoYChgATAocCigAFApAClAABApUCmAAKApkCmQAMApoCoAAGAqECoQAXAqICpQAIAqoCqgAEAqsCrwADArQCtQAJArYCtgACArcCtwAGArgCuAACArkCuQAGAroCugACArsCuwAGArwCvAATAr0CvQAXAr4CvgATAr8CvwAXAsACwAATAsECwQAXAsICwgATAsMCwwAXAsQCxAABAsYCxgAFAscCxwAIAsgCyAAFAskCyQAIAsoCygAFAssCywAIAswCzAAFAs0CzQAIAs4CzgAFAs8CzwAIAtkC2QAEAuUC5QAKAucC5wALAukC6QAYAusC6wAYAu0C7QAYAu8C7wAYAvIC8gAEAvQC9AAEAvYC9wAEAvgC+AABAvkC+QADAvoC+gABAvsC+wADAvwC/AABAv0C/QADAv8C/wAVAwEDAQAVAwMDAwAVAw4DDgAOAxADEAAOAxIDEgAOAxQDFAAKAxYDFgAKAxgDGAAKAxoDGgAKAxwDHAAKAx4DHgAKAyADIAAbAyIDIgAMAyMDIwAJAyQDJAAMAyUDJQARAyYDJgAQAycDJwARAygDKAAQAykDKQARAyoDKgAQAy8DMAANAzEDMQAjAzIDOAAPA0MDRwANA00DTwAPA1QDVAANA2UDZQAeA2YDaQAkA20DbwANA3gDeAAjA4YDhgACA4cDhwAFA4oDigABA4sDiwAMA44DjgACA48DjwAcA5ADkAAFA5EDkQARA5QDlAALA5cDlwABA5gDmAAWA5kDmQAOA5oDmgAMA5sDmwASA50DnQAMA6ADoAAEA6QDpAADA6YDpgAJA6oDqgADA60DrQAFA64DrgAiA7IDsgAKA7MDtAALA7UDtQAlA7YDtgACA7cDtwAcA7gDuAAiA7kDuQAFA70DvQABA78DvwAWA8ADwAATA8EDwQAOA8IDwgASA8MDwwAGA8QDxAAIA8YDxgADA8cDxwAHA8gDyAAXA8kDyQAJA8oDygAUA8sDywAIA8wDzAAaA9ID0gAJA9MD0wAbA9UD1QAbA9cD1wAbA9kD2QAMA9oD2gAJA9sD3AAZA98D3wAZA+ED4QAEA+ID4gACA+MD4wAGA+QD5AAFA+YD5gAIA+oD6gAdA+sD6wAJA/AD8AATA/ED8QAXA/ID8gAMA/MD8wAJA/UD9QASA/YD9gAUA/gD+AACA/kD+QAGA/oD+gACA/sD+wAGA/4D/gAFA/8D/wAIBAEEAgAIBAMEAwASBAQEBAAUBAsECwABBAwEDAADBBAEEAADBBIEEgAHBBMEEwAlBBQEFAAJBBUEFQAlBBYEFgAJBBcEFwAlBBgEGAAJBB4EHgACBB8EHwAGBCAEIAACBCEEIQAGBCIEIgACBCMEIwAGBCQEJAACBCUEJQAGBCYEJgACBCcEJwAGBCgEKAACBCkEKQAGBCoEKgACBCsEKwAGBCwELAACBC0ELQAGBC4ELgACBC8ELwAGBDAEMAACBDEEMQAGBDIEMgACBDMEMwAGBDQENAACBDUENQAGBDYENgAFBDcENwAIBDgEOAAFBDkEOQAIBDoEOgAFBDsEOwAIBDwEPAAFBD0EPQAIBD4EPgAFBD8EPwAIBEAEQAAFBEEEQQAIBEIEQgAFBEMEQwAIBEQERAAFBEUERQAIBEoESgABBEsESwADBEwETAABBE0ETQADBE4ETgABBE8ETwADBFAEUAABBFEEUQADBFIEUgABBFMEUwADBFQEVAABBFUEVQADBFYEVgABBFcEVwADBF8EXwADBGIEYgAKBGQEZAAKBHAEcAAMBHEEcQAJBHIEcgAMBHMEcwAJBHQEdAAMBHUEdQAJBHcEdwAOBHsEewAiBHwEfAAaBH8EfwAEBIEEgQAgBIIEggAiBIQEhAALBIYEhgAMBJgEmAAEBJkEmQACBJoEmgAGBJsEmwAFBJ8EnwABBKAEoAADBKIEogAVBKYEpgAcBKcEpwAHBKgEqAABBKoEqgABBK0ErQAEBK4ErgALBLAEsAALBLIEsgAYBLUEtQAEBLcEtwAEBLgEuAABBLkEuQAWBLoEugAHBLwEvAAVBL8EvwAOBMEEwQAKBMIEwgAdBMMEwwAJBMQExAAdBMUExQAJBMYExgAbBMgEyAARBMkEyQAQBMoEygABBMsEywAPBM8EzwANBNIE0gAPBNgE2AAeBN0E3QAjBOgE6AAeBOoE6gAPBPEE8QANBPUE9QAjAAEABgT1ABQAAAAAAAAAAAAUAAAAAAAAAAAAGgAfABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAAAAAAAAgAAAAAAIwAAAAAAAAAAAAIAAAACAAAAEAALAAoAHQAWABEADAATAAAAAAAAAAAAAAAAAAcAAAABAAEAAQAAAAEAAAAAAAAAAAAAAAMAAwAEAAMAAQAAAA4AAAAFAAkAAAAVAAkADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAQAAAAAAAAACAAEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgACAAYAAAAAAAAAAAAAAAAAAQAAAAkAAAAAAAAAAwAAAAAAAAAAAAAAAAABAAEAAAAFAAAAAAAAAAAAAAAAAAsAAgAZAAAACwAAAAAAAAARAAAAAAAZACIAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFQAAAAMAAwAbAAMAAwADAAAAAQADACEAAwADAAAAAAADAAAAAwAAAAAAAQAbAAMAAAAAAAIAAAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAIABAAdAAkAAgAAAAIAAQACAAAAAgABAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAEQAVAAAAAwAAAAAACwAAAAAAAwAAAAMAAAAAAAIAAQARABUACwAAACAAIQAAAAAAAAAAAAAAAAAAABkAGwAAAAMAAAADAAAAAwAAAAAAAAAAAAMAEQAVAAAAAQABAAAAAAAAAAAAGQAAAAAAAAACAAEAAAAAAAAAGQAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAfAAAAFAAUABoAFAAUABQAGgAAAAAAAAAaABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABwAJAAAABIAGAAeAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAANAAgADQAAAAAAAAAAAAAAAAAYAAgAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAABgACAAXABwAGAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAAACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAYABgAGAAYABgAGAAYAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIACgAKAAoACgAMAAcABwAHAAcABwAHAAcAAQABAAEAAQABAAAAAAAAAAAAAwAEAAQABAAEAAQABQAFAAUABQAJAAkABgAHAAYABwAGAAcAAgABAAIAAQACAAEAAgABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAIAAQACAAEAAgABAAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAMAAgAEAAIABAACAAQAAAAAAAAAAAAAAAAAEAAOABAADgAQAA4AEAAOABAADgALAAAACwAAAAsAAAAKAAUACgAFAAoABQAKAAUACgAFAAoABQAWAAAADAAJAAwAEwAPABMADwATAA8AAAAAAAIAAAAAAAAAAAANAA0ADQANAA0ADQANAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIABIAEgASABIAFwANAA0ADQAIAAgACAAIAAAAAAAAAAAAAAAAAAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgAAAAAAAAAHgAeAB4AHgAAABgAAAASABIAEgASABIAEgAkABcAFwAAAAAAAAAGAAAAAAAAAAIADAAAAAAABgAAAAAAEwAAAAAAAAAAAAAAAgAAAAAADAARAAAADAABAAAAAwAAAAUAAAAEAAAACQAAAAAABQAEAAUAAAAAAAAAAAAAAAAAIwAAAAAAIgAGAAAAAAAAAAAAAAAAAAIAAAAAAAIACwARAAcAAQADAAQAAwABAAkAFQABAAMADgAAAAAAAAADAAkAFgAAABYAAAAWAAAADAAJABQAFAAAAAAAFAAAAAMABgAHAAAAAAABAAMAAAAAAB0ACQABAAIAAAAAAAIAAQAMAAkAAAARABUAAAAGAAcABgAHAAAAAAAAAAEAAAABAAEAEQAVAAAAAAAAAAMAAAADAAIABAACAAEAAgAEAAAAAAAiAAkAIgAJACIACQAgACEAAAADAAEABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAEAAgABAAIAAQACAAQAAgABAAoABQAKAAUAAAAFAAAABQAAAAUAAAAFAAAABQAMAAkADAAJAAwACQAAAAsAAAAgACEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMABgAHAAAAAQAAAAAAAgAEAAAAAAAAAAUAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwACAAAAAAAAAAAAEAAOAAsAAAAKAB0ACQAdAAkAFgAAABMADwAAAA0AAAAAAAAACAAXAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcAAAAFwAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAIAAAAAAAIABgAHAAAAAAACAAXAAAAAQAAAAoBYgKSAARERkxUABpjeXJsABpncmVrABpsYXRuAEgABAAAAAD//wASAAAAAQACAAMABAAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAC4AB0FaRSAA5ENSVCAA5EZSQSAAWk1PTCAAtk5BViAAiFJPTSAAtlRSSyAA5AAA//8AEwAAAAEAAgADAAQABwAIAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wAUAAAAAQACAAMABAAGAAgACQAMAA0ADgAPABAAEQASABMAFAAVABYAFwAA//8AFAAAAAEAAgADAAQABgAIAAsADAANAA4ADwAQABEAEgATABQAFQAWABcAAP//ABQAAAABAAIAAwAEAAYACAAKAAwADQAOAA8AEAARABIAEwAUABUAFgAXAAD//wATAAAAAQACAAMABAAFAAgADAANAA4ADwAQABEAEgATABQAFQAWABcAGGMyc2MAkmNjbXAAmGRsaWcAoGRub20ApmZyYWMArGxpZ2EAtmxpZ2EAvGxpZ2EAyGxudW0A0GxvY2wA1mxvY2wA3GxvY2wA4m51bXIA6G9udW0A7nBudW0A9HNtY3AA+nNzMDEBAHNzMDIBBnNzMDMBDHNzMDQBEnNzMDUBGHNzMDYBHnNzMDcBJHRudW0BKgAAAAEAAAAAAAIAAgAEAAAAAQAKAAAAAQAYAAAAAwAWABcAGQAAAAEACQAAAAQACAAJAAgACQAAAAIACAAJAAAAAQAVAAAAAQAHAAAAAQAFAAAAAQAGAAAAAQAZAAAAAQASAAAAAQATAAAAAQABAAAAAQALAAAAAQAMAAAAAQANAAAAAQAOAAAAAQAPAAAAAQAQAAAAAQARAAAAAQAUABoANgQwB+4IoAjKD24PhA+uD8IP5hAQEEwQYBB0EIgQmhC0EPYRFBFmEawSDhJsEoASsBLSAAEAAAABAAgAAgH6APoB5wJxAdEB0AHPAc4BzQHMAcsBygHJAcgCMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAegB6QJzAnUCdAJ2AnICdwJSAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB+gH7AfwB/QH+AgACAQT+AgICAwIEAgUCBgIHAggCCQIKAgsCOwINAg4CDwIQBPgCEQITAhQCFQIWAhcCGAIZAhsCHAIeAh0DLwMwAzEDMgMzAzQDNQM2AzcDOAM5AzoDOwM8Az0DPgM/A0ADQQNCA0MDRANFA0YDRwNIA0kDSgNLA0wDTQNOA08DUANRA1IDUwNUA1UDVgNXA1gDWQNaA1sDXANdA14DXwNgA2EDYgNjBP8DZANlA2YDZwNoA2kDagNrA2wDbQNuA28DcANxA3IDcwN0A3UFAgN2A3cDeQN4A3oDewN8A30DfgN/A4ADgQOCA4MDhAOFBQAFAQTLBMwEzQTOBM8E0ATRBNIE0wTUBNUE1gTXBNgE2QTaBNsE3ATdBN4E3wTgBOEE4gTjBOQE5QTmBOcB/wToBOkE6gTrBOwE7QTuBO8E8ATxBPIE8wT0BPUE9gUDBQQFBQUGBPcE+QT6BPwCGgT9BPsCDAISBQsFDAABAPoACAAKABQAFQAWABcAGAAZABoAGwAcAB0AJQAmACcAKAApACoAKwAsAC0ALgAvADAAMQAyADMANAA1ADYANwA4ADkAOgA7ADwAPQA+AGUAZwCBAIMAhACMAI8AkQCTALEAsgCzALQAtQC2ALcAuAC5ALoA0gDTANQA1QDWANcA2ADZANoA2wDcAN0A3gDfAOAA4QDiAOMA5ADlAOYA5wDoAOkBLwEzATUBNwE5ATsBQQFDAUUBSQFLAUwBWAFZAZcBnQGiAaUCegJ7An0CfwKAAoECggKDAoQChQKGAocCiAKJAooCiwKMAo0CjgKPApACkQKSApMClAKVApYClwKYApkCtgK4AroCvAK+AsACwgLEAsYCyALKAswCzgLQAtIC1ALWAtgC2gLcAt4C4ALiAuMC5QLnAukC6wLtAu8C8QLzAvUC+AL6AvwC/gMAAwIDBAMGAwgDCgMMAw4DEAMSAxQDFgMYAxoDHAMeAyADIgMkAyUDJwMpAysDLQOGA4cDiAOJA4oDiwOMA44DjwOQA5EDkgOTA5QDlQOWA5cDmAOZA5oDmwOcA50DrQOuA68DsAOxA7IDswO0A7UDtgO3A7gDuQO6A7sDvAO9A74DvwPAA8EDwgPTA9UD1wPZA+4D8APyBAcEDQQTBH0EggSGBQcFCQABAAAAAQAIAAIB3ADrAnECMwIyAjECMAIoAeYB5QHkAeMB4gHhAeAB3wHeAd0B3AHbAdoB2QHYAdcB1gHVAdQB0wHSAmQCcwMwAnUCdAMvAeMCcgJ3AlIE0gTTAeoB6wTUBNUE1gHsBNcB7QHuAe8E3AHwAfAE3QTeAfEB8gHzAfoE6wTsAfsB/AH9Af4B/wIABO8E8ATyBPUE/gICAgMCBAIFAgYCBwIIAgkCCgILAfQB9QH2AfcB+AH5AjsCDQIOAg8CEAT4AhECEwIUAhUCFwIZAnYDMQMyAzMDNAM1AzYDNwM4AzkDOgM7AzwDPQM+Az8DQANBA0IDQwNEA0UDRgNHA0gDSQNKA0sDTAOCA00DTgNPA1ADUQNSA1MDVANVA1YDVwNYA1kDWgNbA1wDXQNeA18DYANhA2IE/wNkA2UDZgNnA2gDaQNqA2sDbANtA24DbwNwA3EDcgNzA3QDdQUCA3YDdwN5A3gDegN7A3wDfQN+A38DgAOBA4MDhAOFBQAFAQTLBMwEzQTOBNgE2wTZBNoE3wTgBOEEzwTQBNEE6gTtBO4E8QTzBPQCAQT2BOIE4wTkBOUE5gTnBOgE6QUDBQQFBQUGBPcE+QT6AhgE/AIaBP0E+wIWAgwCEgULBQwAAQDrAAoARQBGAEcASABJAEoASwBMAE0ATgBPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwAXQBeAIUAhgCHAIkAigCLAI0AkACSAJQAuwC8AL0AvgC/AMAAwQDCAMMAxADFAMYAxwDIAMkAygDLAMwAzQDOAOoA6wDsAO0A7gDvAPAA8QDyAPMA9AD1APYA9wD4APkA+gD7APwA/QD+AP8BAAEBAQIBAwEEAQUBBgEHATABNAE2ATgBOgE8AUIBRAFGAUoBTQFaAnwCfgKaApsCnAKdAp4CnwKgAqECogKjAqQCpQKmAqcCqAKpAqoCqwKsAq0CrgKvArACsQKyArMCtAK1ArcCuQK7Ar0CvwLBAsMCxQLHAskCywLNAs8C0QLTAtUC1wLZAtsC3QLfAuEC5ALmAugC6gLsAu4C8ALyAvQC9gL5AvsC/QL/AwEDAwMFAwcDCQMLAw0DDwMRAxMDFQMX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';\r\n\r\n this.addFileToVFS('Roboto-Bold-normal.ttf', font);\r\n this.addFont('Roboto-Bold-normal.ttf', 'Roboto-Bold', 'normal');\r\n };\r\n\r\n jsPDF.API.events.push(['addFonts', callAddRobotoBoldNormalFont]);\r\n }\r\n\r\n}","import {APIService} from \"../../shared/services/APIService\";\r\nimport {AxiosResponse} from \"axios\";\r\nimport {Html} from \"../../admin/models/HTML\";\r\n\r\nexport class FileService extends APIService {\r\n /**\r\n * Get one html by name\r\n */\r\n getOne(name: string): Promise> {\r\n return this.http.get(`/htmls/${name}/file`);\r\n }\r\n}\r\n","import React, { ReactNode } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { LineChart, Line, CartesianGrid, XAxis, YAxis, Legend, Tooltip, ReferenceLine, ResponsiveContainer, Text, ReferenceDot } from 'recharts';\r\nimport { Dot } from \"../models/Dot\"\r\n\r\ninterface Props extends WithTranslation {\r\n dots: Dot[],\r\n legend: string\r\n}\r\n\r\ninterface States {\r\n highlightedDot : Dot[]\r\n activeHighlightedDot : number\r\n}\r\n\r\nclass FormPVGraph extends React.Component {\r\n \r\n constructor(props: Props) {\r\n super(props)\r\n this.state = {\r\n highlightedDot: [],\r\n activeHighlightedDot: 0\r\n }\r\n }\r\n\r\n handleOnMouseEnter(i) {\r\n if (i !== this.state.highlightedDot.length - 1) {\r\n const newList = [...this.state.highlightedDot]\r\n const temp = newList[newList.length - 1]\r\n newList[newList.length - 1] = newList[i]\r\n newList[i] = temp\r\n this.setState({\r\n highlightedDot: newList\r\n })\r\n }\r\n }\r\n\r\n _renderGraph() {\r\n return (\r\n \r\n \r\n \r\n \r\n {/* */}\r\n parseInt(value.toString()) + \" W\"}\r\n labelFormatter={(value) => value + \" L\"}/>\r\n {\r\n this.setState(state => {\r\n const dotAlreadyHighlighted = this.state.highlightedDot.find(d => d.x === event[\"payload\"][\"x\"])\r\n let newList : Dot[] = []\r\n if (!dotAlreadyHighlighted) {\r\n newList = state.highlightedDot.concat({x: event[\"payload\"][\"x\"], y: Math.floor(event[\"payload\"][\"y\"] * 100)/100})\r\n }\r\n this.setState({\r\n highlightedDot: newList\r\n })\r\n })\r\n },\r\n \r\n }}\r\n /> \r\n {this.state.highlightedDot.map(\r\n (coord, i) => (\r\n \r\n {\r\n const newList = this.state.highlightedDot.filter(d => d.x !== coord.x)\r\n this.setState({\r\n highlightedDot: newList\r\n })\r\n }}\r\n onMouseEnter={() => {\r\n this.handleOnMouseEnter(i)\r\n }}\r\n label={(props) => (\r\n this.handleOnMouseEnter(i)}\r\n />\r\n \r\n {coord.x} L / {coord.y} W\r\n \r\n )}\r\n isFront={true}>\r\n \r\n \r\n \r\n )\r\n )} \r\n \r\n )\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n {this._renderGraph()}\r\n \r\n
\r\n )\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormPVGraph)","export class ResponseDTO {\r\n\r\n constructor(\r\n readonly question: string,\r\n readonly value: any\r\n ) {\r\n }\r\n}","import { ResponseDTO } from './ResponseDTO';\r\n\r\nexport class ResponsesDTO {\r\n\r\n responses: ResponseDTO[];\r\n\r\n constructor(\r\n values: Record\r\n ) {\r\n this.responses = [];\r\n for (const questionKey in values) {\r\n this.responses.push(\r\n new ResponseDTO(questionKey, values[questionKey])\r\n );\r\n }\r\n\r\n }\r\n}","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { DecisionTreeResultDTO } from '../dto/DecisionTreeResultDTO';\r\nimport { ResponsesDTO } from '../dto/ResponsesDTO';\r\nimport {Form} from \"../models/Form\";\r\nimport {DecisionTree} from \"../../admin/models/DecisionTree\";\r\nimport {Html} from \"../../admin/models/HTML\";\r\n\r\nexport class DecisionTreeService extends APIService {\r\n\r\n /**\r\n * Compute decision tree\r\n */\r\n async computeDecisionTree(name: string, responses: Record) {\r\n const dto = new ResponsesDTO(responses);\r\n return this.http.post('/decision-trees/' + name + '/compute', dto)\r\n .then((response: AxiosResponse) => {\r\n return response.data.result;\r\n })\r\n .catch((e) => {\r\n console.log(e)\r\n });\r\n }\r\n\r\n getAllDecisionTrees(): Promise> {\r\n return this.http.get('/decision-trees');\r\n }\r\n}\r\n","import { APIService } from '../../shared/services/APIService';\r\nimport { DiagramComment } from '../models/DiagramComment';\r\n\r\nexport class DiagramCommentService extends APIService {\r\n getAllComments() {\r\n return this.http.get('/diagramComments');\r\n }\r\n\r\n \r\n}","export class ReactGAUtils {\r\n static category: string;\r\n static getCategory(): string {\r\n if (ReactGAUtils.category) {\r\n return ReactGAUtils.category;\r\n }\r\n\r\n const url = new URL(window.location.href);\r\n\r\n let category: string | null = null;\r\n\r\n if (url.hostname.endsWith('buildwise.be')) {\r\n category = url.hostname.replace(/^(.+)[.]buildwise[.]be$/, '$1');\r\n }\r\n else if (url.hostname.endsWith('azurewebsites.net')) {\r\n category = url.hostname.replace(/^(.+)[.]azurewebsites[.]net$/, '$1');\r\n }\r\n\r\n if (category) {\r\n if (category.startsWith('bbri-betonapp')) {\r\n category = category.replace(/^bbri-betonapp(.+)$/, '$1');\r\n }\r\n }\r\n\r\n if (!category) {\r\n category = url.hostname;\r\n }\r\n\r\n ReactGAUtils.category = category;\r\n\r\n console.log(`[ReactGAUtils] ${url.hostname} -> ${ReactGAUtils.category}`)\r\n\r\n return ReactGAUtils.category;\r\n }\r\n}\r\n","import { Button, Content, Panel, Table } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport jsPDF from \"jspdf\";\r\nimport \"jspdf-autotable\";\r\nimport autoTable from \"jspdf-autotable\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { ChevronLeft, FileText } from \"react-feather\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { utils, writeFile } from \"xlsx\";\r\nimport { Form } from \"../models/Form\";\r\nimport { FormQuestion } from \"../models/FormQuestion\";\r\nimport { RequirementResult, RequirementResults } from \"../models/RequirementResults\";\r\nimport { FormUtils } from \"../utils/FormUtils\";\r\nimport \"./FormResults.scss\";\r\nimport { JsPDFUtils } from '../../shared/utils/JsPDFUtils';\r\nimport { FormService } from \"../services/FormService\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport ReactGA from \"react-ga\";\r\nimport { FileService } from \"../services/FileService\";\r\nimport { QuestionType } from \"../enum/QuestionType\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport { Browser } from \"@capacitor/browser\";\r\nimport FormPVGraph from \"./FormPVGraph\"\r\nimport { Dot } from \"../models/Dot\";\r\nimport { FormType } from \"../enum/FormType\";\r\nimport { DecisionTreeService } from \"../services/DecisionTreeService\";\r\nimport { DiagramCommentService } from \"../services/DiagramCommentService\";\r\nimport { Diagram } from \"../models/Diagram\"\r\nimport FormDiagram from \"./FormDiagram\"\r\nimport { DiagramComment } from \"../models/DiagramComment\";\r\nimport { DiagramDot } from \"../models/DiagramDot\";\r\nimport { ReactGAUtils } from \"../../shared/utils/ReactGAUtils\";\r\n\r\ninterface Props extends WithTranslation {\r\n form: Form;\r\n history: number[];\r\n values: Record;\r\n results: RequirementResult[];\r\n onResetClick: () => void;\r\n onPreviousClick: () => void;\r\n}\r\n\r\ninterface States {\r\n openConfirmationModal: boolean;\r\n htmlTable: string;\r\n loadingHTML: boolean;\r\n allComments: DiagramComment[]\r\n graphInfo: Dot[] | string\r\n diagramInfo: Diagram | null\r\n}\r\n\r\nclass FormResults extends React.Component {\r\n private t: TFunction;\r\n private xlsxData: any[];\r\n private formService: FormService;\r\n private isOnMobile: boolean = false;\r\n private html2render: string = '';\r\n private fileService: FileService;\r\n private decisionTreeService: DecisionTreeService\r\n private diagramCommentService: DiagramCommentService\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.xlsxData = [];\r\n this.formService = new FormService();\r\n this.fileService = new FileService();\r\n this.decisionTreeService = new DecisionTreeService()\r\n this.diagramCommentService = new DiagramCommentService()\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n this.isOnMobile = true;\r\n }\r\n this.state = {\r\n openConfirmationModal: false,\r\n htmlTable: '',\r\n loadingHTML: true,\r\n allComments: [],\r\n graphInfo: [],\r\n diagramInfo: null\r\n };\r\n\r\n this.fileService.getOne('tableau-resultat').then((r) => {\r\n if (r.data.html) {\r\n this._replaceTagsInHTMLFile(r.data.html);\r\n }\r\n else {\r\n this.setState({\r\n loadingHTML: false,\r\n });\r\n }\r\n }, () => {\r\n this.setState({\r\n loadingHTML: false,\r\n });\r\n });\r\n }\r\n\r\n componentDidMount(): void {\r\n if (this.props.form.type === FormType.GRAPH) {\r\n this._getGraphInfo()\r\n this._getDiagramInfo()\r\n this._getComments()\r\n }\r\n }\r\n\r\n private _getGraphInfo() {\r\n if (this.props.form.graphDecisionTree) {\r\n this.decisionTreeService.computeDecisionTree(this.props.form.graphDecisionTree, this.props.values)\r\n .then(\r\n (r) => {\r\n if (typeof r !== \"string\") {\r\n this.setState({\r\n graphInfo: r as any as Dot[]\r\n })\r\n }\r\n else {\r\n this.setState({\r\n graphInfo: r as string\r\n })\r\n }\r\n }\r\n )\r\n .catch(\r\n (e) => {\r\n this.setState({\r\n graphInfo: e.message\r\n })\r\n }\r\n )\r\n }\r\n }\r\n\r\n private _getDiagramInfo() {\r\n if (this.props.form.diagramDecisionTree) {\r\n this.decisionTreeService.computeDecisionTree(this.props.form.diagramDecisionTree, this.props.values)\r\n .then(\r\n (r) => {\r\n this.setState({\r\n diagramInfo: r as any as Diagram\r\n })\r\n }\r\n )\r\n .catch(\r\n (e) => {\r\n this.setState({\r\n diagramInfo: null\r\n })\r\n }\r\n )\r\n }\r\n }\r\n\r\n private _getComments() {\r\n this.diagramCommentService.getAllComments()\r\n .then((r) => {\r\n this.setState({\r\n allComments: r.data\r\n })\r\n })\r\n }\r\n\r\n private _replaceTagsInHTMLFile(htmlFile: string) {\r\n this.html2render = htmlFile;\r\n //Replace questions\r\n for (const qst of this.props.form.questions) {\r\n const replace = `{{question.${ qst.question }}}`;\r\n const re = new RegExp(replace, 'g');\r\n if (this.html2render) {\r\n this.html2render = this.html2render.replace(re, ((qst.question in this.props.values) ? this.formService.t(this.t, qst.question, false) : ''));\r\n }\r\n }\r\n\r\n //Replace values\r\n for (const [key, value] of Object.entries(this.props.values)) {\r\n const replace = `{{value.${ key }}}`;\r\n const re = new RegExp(replace, 'g');\r\n //Replace value as question table\r\n if (typeof value === 'object') {\r\n let question: any = null;\r\n let tableHeader = '';\r\n this.props.form.questions.forEach((q) => {\r\n if (q.question === key) {\r\n question = q;\r\n }\r\n });\r\n if (question.subQuestions) {\r\n for (const subQ of question.subQuestions) {\r\n tableHeader += `${ this.formService.t(this.t, subQ.question, false) }`;\r\n }\r\n }\r\n let table: any = null;\r\n table = `${ tableHeader }${ this._getTableBody(question, value) }
`;\r\n this.html2render = this.html2render.replace(re, table);\r\n }\r\n else {\r\n switch (value) {\r\n case true:\r\n this.html2render = this.html2render.replace(re, this.formService.t(this.t, \"oui\", false));\r\n break;\r\n case false:\r\n this.html2render = this.html2render.replace(re, this.formService.t(this.t, \"non\", false));\r\n break;\r\n default:\r\n this.html2render = this.html2render.replace(re, this.formService.t(this.t, value, false));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n //Replace requirement\r\n for (const [i, value] of Object.entries(this.props.results)) {\r\n const replaceAnswer = `{{requirement.answer.${ value.requirement }}}`;\r\n const replaceRequirement = `{{requirement.requirement.${ value.requirement }}}`;\r\n const replaceRequirementTitle = `{{requirement.title.${ value.requirement }}}`;\r\n\r\n if (value.answer && typeof value.answer === 'object') {\r\n this.html2render = this._replaceHtml(replaceAnswer, value.answer.map(x => this.formService.t(this.t, x, false)).join(''));\r\n }\r\n else {\r\n // @ts-ignore\r\n this.html2render = this._replaceHtml(replaceAnswer, value.answer);\r\n }\r\n this.html2render = this._replaceHtml(replaceRequirement, value.requirement);\r\n this.html2render = this._replaceHtml(replaceRequirementTitle, value.requirementTitle);\r\n }\r\n\r\n let result: any = null;\r\n const regex = new RegExp(/[{]{2}translation[.](.+?)[}]{2}/g);\r\n while (null !== (result = regex.exec(this.html2render))) {\r\n this.html2render = this.html2render.replace(`{{translation.${ result[1] }}}`, this.formService.t(this.t, result[1], false));\r\n }\r\n\r\n let resultImage: any = null;\r\n const regexImage = new RegExp(/[{]{2}image[.](.+?)[}]{2}/g);\r\n while (null !== (resultImage = regexImage.exec(this.html2render))) {\r\n this.html2render = this.html2render.replace(`{{image.${ resultImage[1] }}}`, this.formService.t(this.t, resultImage[1], false));\r\n }\r\n\r\n //Replace remaining tags\r\n const replace = `{{value.*?}}`;\r\n const re = new RegExp(replace, 'g');\r\n this.html2render = this.html2render.replace(re, '');\r\n const replace2 = `{{question.*?}}`;\r\n const re2 = new RegExp(replace2, 'g');\r\n this.html2render = this.html2render.replace(re2, '');\r\n const replace3 = `{{requirement.*?}}`;\r\n const re3 = new RegExp(replace3, 'g');\r\n this.html2render = this.html2render.replace(re3, '');\r\n const replace4 = `{{image.*?}}`;\r\n const re4 = new RegExp(replace4, 'g');\r\n this.html2render = this.html2render.replace(re4, '');\r\n\r\n let resultTitle: any = null;\r\n const regexTitle = new RegExp(/(<[hH]\\d.*?>)([^<]+?)(<\\/[hH]\\d.*?>)/, 'g');\r\n while (null !== (resultTitle = regexTitle.exec(this.html2render))) {\r\n this.html2render = this.html2render.replace(resultTitle[0], `${ resultTitle[1] }${ resultTitle[2].replace(/ /g, ' ') }${ resultTitle[3] }`);\r\n }\r\n\r\n this.setState({\r\n loadingHTML: false,\r\n htmlTable: this.html2render,\r\n openConfirmationModal: false,\r\n });\r\n }\r\n\r\n private _getTableBody(question: FormQuestion, value: any) {\r\n let tableBody = '';\r\n for (let i = 0; i < /*this._getSize(question)*/ value.length; i++) {\r\n tableBody += `${ this._getTableRow(question, value[i], i) }`;\r\n }\r\n return tableBody;\r\n }\r\n\r\n private _getTableRow(question: FormQuestion, el: any, i: number) {\r\n let row = '';\r\n if (question.subQuestions) {\r\n for (const subQ of question.subQuestions) {\r\n if (subQ.type === QuestionType.PREVIOUS_QUESTION && this.props.values[subQ.target][i]) {\r\n row += `${ this.props.values[subQ.target][i][subQ.question] }`;\r\n }\r\n else {\r\n // row += `${el[subQ.question]}`;\r\n row += `${ this.formService.t(this.t, el[subQ.question], false) }`;\r\n }\r\n }\r\n }\r\n return row;\r\n }\r\n\r\n private getTodayDate() {\r\n const today = new Date();\r\n\r\n const month = today.getMonth() + 1;\r\n\r\n return `${ today.getDate() }/${ month < 10 ? '0' : '' }${ month }/${ today.getFullYear() }`;\r\n }\r\n\r\n /**\r\n * Export XLSX\r\n */\r\n exportXLSX() {\r\n const workbook = utils.book_new();\r\n\r\n // = Summary\r\n const summaryData = [\r\n [this.formService.t(this.t, \"ui_summary_date\", false), this.getTodayDate()],\r\n [this.formService.t(this.t, \"ui_summary_question\", false), this.formService.t(this.t, \"ui_summary_response\", false)],\r\n ];\r\n\r\n this.createSummaryTable(summaryData);\r\n\r\n const summaryWs = utils.aoa_to_sheet(summaryData);\r\n utils.book_append_sheet(workbook, summaryWs, this.formService.t(this.t, \"ui_summary_title\", false));\r\n\r\n // = Requirements\r\n const requirementsWs = utils.aoa_to_sheet(this.xlsxData);\r\n utils.book_append_sheet(\r\n workbook,\r\n requirementsWs,\r\n this.formService.t(this.t, \"ui_requirement_results_title\", false)\r\n );\r\n\r\n // = Disclaimer\r\n const disclaimerWs = utils.aoa_to_sheet([[this.formService.t(this.t, \"disclaimer_text\", false).replace('
', '\\n')]]);\r\n utils.book_append_sheet(\r\n workbook,\r\n disclaimerWs,\r\n this.formService.t(this.t, \"disclaimer_title\", false)\r\n );\r\n\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n this.formService.sendXLSX(this.props.form.form, workbook).then((response: AxiosResponse) => {\r\n if (Capacitor.isNativePlatform()) {\r\n Browser.open({ url: `${ process.env.REACT_APP_API_URL }/` + response.data['link'] });\r\n }\r\n else {\r\n window.open(`${ process.env.REACT_APP_API_URL }/` + response.data['link'], '_blank', 'location=no');\r\n }\r\n\r\n });\r\n }\r\n else {\r\n writeFile(workbook, \"cstc-results.xlsx\");\r\n }\r\n }\r\n\r\n /**\r\n * Export PDF\r\n */\r\n exportPDF() {\r\n // Document configured via backend\r\n if (this.state.htmlTable) {\r\n let clientWidth = 0;\r\n const element = document.getElementById(\"htmlTemplate\");\r\n let mainContainer;\r\n\r\n // if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n if (element) {\r\n clientWidth = element.clientWidth;\r\n element.style.width = \"1200px\";\r\n\r\n mainContainer = element.querySelector('.maincontainer');\r\n\r\n if (mainContainer) {\r\n mainContainer.classList.add('print');\r\n }\r\n // element.style.width = \"1702px\";\r\n }\r\n // }\r\n\r\n const pdf = new jsPDF('p', 'pt', 'a4');\r\n\r\n pdf.html(document.getElementById(\"htmlTemplate\") as HTMLElement, {\r\n y: 30,\r\n x: 30,\r\n html2canvas: {\r\n scale: 0.5,\r\n // width: 1702,\r\n // windowWidth: 1702,\r\n // scale: 0.4,\r\n svgRendering: true,\r\n // windowWidth: 1080,\r\n scrollX: 0,\r\n scrollY: 0\r\n },\r\n callback: () => {\r\n if (element) {\r\n element.style.width = clientWidth + \"px\";\r\n\r\n if (mainContainer) {\r\n mainContainer.classList.remove('print');\r\n }\r\n }\r\n\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n\r\n this.formService.sendPDF(this.props.form.form, pdf.output('blob')).then((response: AxiosResponse) => {\r\n if (Capacitor.isNativePlatform()) {\r\n Browser.open({ url: `${ process.env.REACT_APP_API_URL }/` + response.data['link'] });\r\n }\r\n else {\r\n window.open(`${ process.env.REACT_APP_API_URL }/` + response.data['link'], '_blank', 'location=no');\r\n }\r\n });\r\n // if(element) {\r\n // element.style.width = clientWidth+\"px\";\r\n // }\r\n }\r\n else {\r\n pdf.save(\"cstc-results.pdf\");\r\n }\r\n }\r\n });\r\n return;\r\n }\r\n\r\n // Default behavior\r\n JsPDFUtils.initJsPDF();\r\n\r\n const doc = new jsPDF();\r\n doc.setFont('Roboto-Bold', 'normal');\r\n doc.setFontSize(10);\r\n\r\n const headerHeight = 10;\r\n\r\n const langImage = new Image();\r\n langImage.src = this.formService.t(this.t, 'bbri_logo', false, false, false, true);\r\n doc.addImage(langImage, 'png', 13, 10, headerHeight * 3, headerHeight);\r\n\r\n const logoImage = new Image();\r\n logoImage.src = this.formService.t(this.t, 'logo_app', false, false, false, true);\r\n const logoImageRapport = logoImage.width > logoImage.height ? logoImage.width / logoImage.height : logoImage.height / logoImage.width;\r\n if (logoImageRapport > 2) {\r\n doc.addImage(logoImage, 'png', 210 - 5 * headerHeight, 10, (headerHeight) * logoImageRapport, headerHeight);\r\n }\r\n else {\r\n doc.addImage(logoImage, 'png', 210 - 5 * headerHeight, 10, (headerHeight) / logoImageRapport, headerHeight);\r\n }\r\n\r\n doc.setFontSize(7);\r\n doc.text('Version 1 - 15.01.21', 210 - 5 * headerHeight, headerHeight + 12);\r\n doc.setFontSize(10);\r\n\r\n autoTable(doc, {\r\n startY: headerHeight + 20,\r\n body: [\r\n [\r\n `${ this.formService.t(this.t, \"ui_pdf_date\", false) } : ${ this.getTodayDate() }`,\r\n ],\r\n ]\r\n });\r\n\r\n // = Summary\r\n doc.text(this.formService.t(this.t, \"ui_summary_title\", false), 13, (doc as any).autoTable.previous.finalY + 10);\r\n const summaryTable: any = {\r\n head: [\r\n [\r\n this.formService.t(this.t, \"ui_summary_question\", false),\r\n this.formService.t(this.t, \"ui_summary_response\", false)\r\n ]\r\n ],\r\n body: [],\r\n startY: (doc as any).autoTable.previous.finalY + 15,\r\n headStyles: {\r\n font: 'Roboto-Bold',\r\n fontStyle: 'normal'\r\n },\r\n styles: {\r\n font: 'Roboto-Regular',\r\n fontStyle: 'normal'\r\n }\r\n };\r\n\r\n this.createSummaryTable(summaryTable.body);\r\n\r\n autoTable(doc, summaryTable);\r\n\r\n // = Requirements\r\n doc.text(\r\n this.formService.t(this.t, \"ui_requirement_results_title\", false),\r\n 13,\r\n (doc as any).autoTable.previous.finalY + 10\r\n );\r\n\r\n\r\n const body: string[][][] = [];\r\n const myData = document.getElementById(\"table-results\") as HTMLTableElement;\r\n const myDataRows = myData.rows as any;\r\n for (const myDataRow of myDataRows) {\r\n if (myDataRow.cells.length === 3) {\r\n let el1 = myDataRow.cells[0].innerText;\r\n let el2 = myDataRow.cells[1].innerText.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n let el3 = myDataRow.cells[2].innerHTML\r\n .replace(/<\\/span>/g, '\\n\\n')\r\n .replace(/
  • /g, '\\n-')\r\n .replace(/<\\/li><\\/ul>/g, '\\n\\n')\r\n .replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n body.push([el1, el2, el3]);\r\n }\r\n else {\r\n body.push(['', '', myDataRow.cells[0].innerHTML\r\n .replace('', '\\n\\n')\r\n .replace(/<\\/?[^>]+(>|$)/g, \"\")\r\n ]);\r\n }\r\n }\r\n let head = body[0];\r\n head.shift();\r\n head.unshift([\"\"]);\r\n body.shift();\r\n // @ts-ignore\r\n head[2] = head[2].replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\r\n doc.setFont('Roboto-Regular', 'normal');\r\n autoTable(doc, {\r\n head: [head],\r\n //html: \"#table-results\",\r\n startY: (doc as any).autoTable.previous.finalY + 15,\r\n body: body,\r\n headStyles: {\r\n font: 'Roboto-Bold',\r\n fontStyle: 'normal'\r\n },\r\n styles: {\r\n font: 'Roboto-Regular',\r\n fontStyle: 'normal'\r\n }\r\n });\r\n\r\n doc.setFont('Roboto-Regular', 'normal');\r\n doc.setFontSize(8);\r\n let y = (doc as any).autoTable.previous.finalY + 20;\r\n y = this.writeMultiLinesText(doc, this.formService.t(this.t, \"disclaimer_title\", false), y);\r\n this.writeMultiLinesText(doc, this.formService.t(this.t, \"disclaimer_text\", false), y);\r\n\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n\r\n this.formService.sendPDF(this.props.form.form, doc.output('blob')).then((response: AxiosResponse) => {\r\n if (Capacitor.isNativePlatform()) {\r\n Browser.open({ url: `${ process.env.REACT_APP_API_URL }/` + response.data['link'] });\r\n }\r\n else {\r\n window.open(`${ process.env.REACT_APP_API_URL }/` + response.data['link'], '_blank', 'location=no');\r\n }\r\n });\r\n }\r\n else {\r\n doc.save(\"cstc-results.pdf\");\r\n }\r\n }\r\n\r\n writeMultiLinesText(doc, text, y) {\r\n const pageHeight = doc.internal.pageSize.height;\r\n const lines = doc.splitTextToSize(text, 175);\r\n\r\n for (const line of lines) {\r\n if (y > pageHeight - 20) {\r\n doc.addPage();\r\n y = 15;\r\n }\r\n\r\n doc.text(line, 13, y);\r\n y += doc.getTextDimensions(text).h;\r\n }\r\n\r\n return y;\r\n }\r\n\r\n /**\r\n * Create sumary table\r\n */\r\n createSummaryTable(table: any[]) {\r\n FormUtils.formatValue(\r\n this.t,\r\n this.formService,\r\n this.props.form,\r\n this.props.history,\r\n this.props.values,\r\n (id: number, question: FormQuestion, value: string) => {\r\n let valueToRender = value;\r\n switch (question.type) {\r\n // case QuestionType.DROPDOWN:\r\n default:\r\n valueToRender = this.formService.t(this.t, value, false);\r\n break;\r\n }\r\n table.push([this.formService.t(this.t, question.question, false), valueToRender]);\r\n }\r\n );\r\n\r\n }\r\n\r\n /**\r\n * Create table row according to the results\r\n */\r\n createRowResults() {\r\n const data: ReactNode[] = [];\r\n this.xlsxData = [\r\n [\r\n \"\",\r\n this.formService.t(this.t, \"ui_requirement_results_requirement\", false, false, true),\r\n this.formService.t(this.t, \"ui_requirement_results_result\", false, false, true),\r\n ],\r\n ];\r\n\r\n const requirementMap = {};\r\n // = Sort by requirement\r\n for (const result of this.props.results) {\r\n if (!result.answer) {\r\n continue;\r\n }\r\n if (!requirementMap.hasOwnProperty(result.requirement)) {\r\n requirementMap[result.requirement] = [];\r\n }\r\n requirementMap[result.requirement].push(result);\r\n }\r\n\r\n for (const requirement in requirementMap) {\r\n const options = requirementMap[requirement];\r\n let optionI = 0;\r\n\r\n for (const option of options) {\r\n if (!option.answer) {\r\n continue;\r\n }\r\n let answers = \"\";\r\n\r\n\r\n if (option.prefix) {\r\n answers += `${ this.formService.t(this.t, option.prefix, true, false, true) } `;\r\n }\r\n\r\n if (Array.isArray(option.answer)) {\r\n for (const answer of option.answer) {\r\n answers += this.formService.t(this.t, answer, true, false, true);\r\n }\r\n }\r\n else {\r\n answers = this.formService.t(this.t, option.answer, true, false, true);\r\n }\r\n\r\n if (option.suffix) {\r\n answers += ` ${ this.formService.t(this.t, option.suffix, true, false, true) }`;\r\n }\r\n\r\n answers = answers.replace(/)/g, \"/g, \"\");\r\n\r\n // = For XLSX data export\r\n\r\n // Remove HTML tags\r\n let results = answers.replace(//g, \"\\n\");\r\n results = results.replace(/<\\/?[A-Za-z]+>/g, \"\");\r\n this.xlsxData.push([\r\n requirement.toUpperCase(),\r\n this.formService.t(this.t, option.requirementTitle, false),\r\n results,\r\n ]);\r\n\r\n // = Render\r\n if (optionI === 0) {\r\n data.push(\r\n \r\n { requirement.toUpperCase() }\r\n \r\n { this.formService.t(this.t, option.requirementTitle, true) }\r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n data.push(\r\n \r\n \r\n \r\n );\r\n }\r\n optionI++;\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n\r\n private openConfirmation(props: Props) {\r\n //props.onResetClick();\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
    \r\n this.setState({ openConfirmationModal: !this.state.openConfirmationModal }) }\r\n >\r\n { this.formService.t(this.t, \"ui_input_no\", true) }\r\n \r\n {\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'Nouveau formulaire'\r\n });\r\n this.props.onResetClick();\r\n } }>\r\n { this.formService.t(this.t, \"ui_input_yes\", true) }\r\n \r\n
    \r\n );\r\n }\r\n\r\n private _replaceHtml(replaceElement: string, value: string) {\r\n const re = new RegExp(replaceElement, 'g');\r\n return this.html2render.replace(re, this.formService.t(this.t, value, false));\r\n }\r\n\r\n private _getTableResult() {\r\n if (this.html2render) {\r\n return (
    );\r\n }\r\n else if (this.props.form.type === FormType.GRAPH) {\r\n return (\r\n
    \r\n { this.state.graphInfo.length > 0 && Array.isArray(this.state.graphInfo) ? (\r\n <>\r\n

    { this.formService.t(this.t, \"ui_result_graph_title\", true) }

    \r\n \r\n \r\n ) : (\r\n

    { this.state.graphInfo }

    \r\n ) }\r\n { this.state.diagramInfo && (\r\n <>\r\n

    { this.formService.t(this.t, \"ui_result_diagram_title\", true) }

    \r\n \r\n \r\n ) }\r\n
    \r\n )\r\n }\r\n else if (!this.state.loadingHTML) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.createRowResults() }\r\n
    \r\n { this.formService.t(this.t, \"ui_requirement_results_requirement\", true) }\r\n \r\n { this.formService.t(this.t, \"ui_requirement_results_result\", true) }\r\n
    );\r\n }\r\n }\r\n\r\n\r\n render() {\r\n window.scroll(0, 0);\r\n\r\n return (\r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n

    { this.formService.t(this.t, \"ui_requirement_results_title\", true) }

    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {\r\n this._getTableResult()\r\n }\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.createRowResults() }\r\n
    \r\n { this.formService.t(this.t, \"ui_requirement_results_requirement\", true) }\r\n \r\n { this.formService.t(this.t, \"ui_requirement_results_result\", true) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.props.onPreviousClick() }\r\n >\r\n \r\n { this.formService.t(this.t, \"ui_requirement_results_button_back_summary\", true) }\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n this.setState({ openConfirmationModal: false }) }\r\n >\r\n
    \r\n \r\n { this.formService.t(this.t, \"ui_new_form_confirmation_body\", true) }\r\n\r\n
    \r\n\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormResults);\r\n","import { TFunction } from \"i18next\";\r\nimport React, { Component, MouseEvent, ReactNode } from \"react\";\r\nimport { X } from \"react-feather\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { Form } from \"../models/Form\";\r\nimport { DecisionTreeService } from \"../services/DecisionTreeService\";\r\nimport { FormUtils } from \"../utils/FormUtils\";\r\nimport \"./FormStepper.scss\";\r\nimport { FormService } from \"../services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n form: Form;\r\n history: number[];\r\n currentQuestion: number;\r\n displaySummaryStep: boolean;\r\n values: Record;\r\n onStepClick: (questionId: number) => void;\r\n}\r\n\r\ninterface States {\r\n steps: ReactNode[];\r\n isMobile: boolean;\r\n verticalStepper: boolean;\r\n}\r\n\r\nclass FormStepper extends Component {\r\n private t: TFunction;\r\n private decisionTreeService: DecisionTreeService;\r\n private currentStep: number;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n this.decisionTreeService = new DecisionTreeService();\r\n this.currentStep = 0;\r\n\r\n this.state = {\r\n steps: [],\r\n isMobile: window.innerWidth < 768,\r\n verticalStepper: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener(\"resize\", this.resize.bind(this));\r\n this.generateStepper();\r\n this.props.i18n.on(\"languageChanged\", this.generateStepper.bind(this));\r\n }\r\n\r\n resize() {\r\n this.setState({\r\n isMobile: window.innerWidth < 768,\r\n verticalStepper: false,\r\n });\r\n }\r\n\r\n componentDidUpdate() {\r\n if (this.currentStep !== this.props.currentQuestion) {\r\n this.currentStep = this.props.currentQuestion;\r\n this.generateStepper();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener(\"resize\", this.resize.bind(this));\r\n this.props.i18n.off(\"languageChanged\", this.generateStepper.bind(this));\r\n }\r\n\r\n async generateStepper() {\r\n const steps: ReactNode[] = [];\r\n const cache = new Map();\r\n\r\n const values = FormUtils.getValidValues(this.props.form.questions, this.props.values, this.props.history, this.props.currentQuestion, true);\r\n\r\n for (let i = 0; i < this.props.form.questions.length; i++) {\r\n const question = this.props.form.questions[i];\r\n const isCurrentQuestion = i === this.props.currentQuestion;\r\n\r\n if (isCurrentQuestion) {\r\n steps.push(this.createStep(i, question.shortTitle, false, true));\r\n }\r\n else if (this.props.history.includes(i)) {\r\n steps.push(this.createStep(i, question.shortTitle, true));\r\n }\r\n else if (\r\n !question.conditions ||\r\n (await FormUtils.checkCondition(\r\n this.decisionTreeService,\r\n question.conditions.lhs,\r\n question.conditions.operator,\r\n question.conditions.rhs,\r\n values,\r\n cache\r\n ))\r\n ) {\r\n steps.push(this.createStep(i, question.shortTitle));\r\n }\r\n }\r\n\r\n if (this.props.displaySummaryStep) {\r\n steps.push(this.createStep(-1, \"ui_summary_title\"));\r\n }\r\n\r\n this.setState({\r\n steps,\r\n });\r\n }\r\n\r\n /**\r\n * Handle: onClick on stepper\r\n *\r\n * For mobile & tablet device\r\n */\r\n handleStepperClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n if (!this.state.isMobile) {\r\n return;\r\n }\r\n\r\n // Toggle vertical stepper\r\n this.setState({\r\n verticalStepper: !this.state.verticalStepper,\r\n });\r\n }\r\n\r\n /**\r\n * Handle: on Click on step item\r\n */\r\n handleStepClick(questionId: number) {\r\n this.props.onStepClick(questionId);\r\n\r\n if (this.state.verticalStepper) {\r\n this.setState({\r\n verticalStepper: false,\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n let stepperClassName = \"form-stepper-wrapper\";\r\n\r\n if (this.state.isMobile && this.state.verticalStepper) {\r\n stepperClassName += \" vertical-form-stepper\";\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n this.state.isMobile && !this.state.verticalStepper\r\n ? this.handleStepperClick(e)\r\n : null\r\n }>\r\n
      \r\n {this.state.steps}\r\n
    \r\n
    \r\n {this.state.verticalStepper ? (\r\n this.handleStepperClick(e)}\r\n >\r\n \r\n \r\n ) : null}\r\n
    \r\n );\r\n }\r\n\r\n private createStep(\r\n id: number,\r\n title: string,\r\n active: boolean = false,\r\n current: boolean = false\r\n ) {\r\n let liClassName = \"\";\r\n const canClicked = active || id === -1;\r\n\r\n // = Summary step\r\n if (id === -1) {\r\n liClassName += \"form-step-summary \";\r\n }\r\n\r\n // = Step answered\r\n if (active) {\r\n liClassName += \"form-step-active \";\r\n }\r\n\r\n // = Current step\r\n if (current) {\r\n liClassName += \"form-step-current \";\r\n }\r\n\r\n return (\r\n \r\n (canClicked && !this.state.isMobile) ||\r\n (canClicked && this.state.isMobile && this.state.verticalStepper)\r\n ? this.handleStepClick(id)\r\n : null\r\n }\r\n >\r\n \r\n {this.formService.t(this.t, title, true)}\r\n
  • \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormStepper);\r\n","import { Button, Content, Panel, Table } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { ChevronLeft, Send } from \"react-feather\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { ResponsesDTO } from \"../dto/ResponsesDTO\";\r\nimport { Form } from \"../models/Form\";\r\nimport { FormQuestion } from \"../models/FormQuestion\";\r\nimport { RequirementResults } from \"../models/RequirementResults\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport { FormUtils } from \"../utils/FormUtils\";\r\nimport \"./FormSummary.scss\";\r\nimport { QuestionType } from '../enum/QuestionType';\r\nimport { RichText } from 'prismic-reactjs';\r\n\r\ninterface Props extends WithTranslation {\r\n form: Form;\r\n history: number[];\r\n values: Record;\r\n onPreviousClick: () => void;\r\n onQuestionClick: (questionId: number) => void;\r\n onSubmitForm: (results: RequirementResults) => void;\r\n}\r\n\r\ninterface States {\r\n submitButton: boolean;\r\n}\r\n\r\nclass FormSummary extends React.Component {\r\n private formService: FormService;\r\n private t: TFunction;\r\n private isOnMobile: boolean = false;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\r\n this.isOnMobile = true;\r\n }\r\n this.state = {\r\n submitButton: false\r\n };\r\n }\r\n\r\n /**\r\n * Submit the form\r\n */\r\n handleSubmitClick() {\r\n this.setState({\r\n submitButton: true\r\n });\r\n // = Get values according the history\r\n const values: Record = {};\r\n for (let i = 0; i < this.props.history.length; i++) {\r\n const id = this.props.history[i];\r\n const question = this.props.form.questions[id];\r\n\r\n if (question.type === QuestionType.MULTIPLE && question.subQuestions) {\r\n for (const subQ of question.subQuestions) {\r\n values[subQ.question] = this.props.values[subQ.question] ?? 0;\r\n }\r\n }\r\n else {\r\n values[question.question] = this.props.values[question.question];\r\n }\r\n }\r\n\r\n // = Send DTO\r\n const dto = new ResponsesDTO(values);\r\n this.formService\r\n .submitForm(this.props.form.form, dto)\r\n .then((results: RequirementResults) => {\r\n this.setState({\r\n submitButton: false\r\n });\r\n this.props.onSubmitForm(results);\r\n });\r\n }\r\n\r\n private _getTableBody(question: FormQuestion, value: any) {\r\n const tableBody: any[] = [];\r\n for (let i = 0; i < /*this._getSize(question)*/ value.length; i++) {\r\n tableBody.push(\r\n \r\n {this._getTableRow(question, value[i], i)}\r\n \r\n );\r\n }\r\n return tableBody;\r\n }\r\n\r\n private _getSize(question: FormQuestion): number {\r\n let sizeQuestion: any = null;\r\n for (const q of this.props.form.questions) {\r\n if (q.question === question.size.target) {\r\n sizeQuestion = q;\r\n }\r\n }\r\n\r\n if (sizeQuestion && sizeQuestion.size) {\r\n return this._getSize(sizeQuestion);\r\n }\r\n\r\n return this.props.values[sizeQuestion.question];\r\n }\r\n\r\n private _getTableRow(question: FormQuestion, el: any, i: number) {\r\n const row: any[] = [];\r\n if (question.subQuestions) {\r\n for (const subQ of question.subQuestions) {\r\n if (subQ.type === QuestionType.PREVIOUS_QUESTION && this.props.values[subQ.target][i]) {\r\n row.push(\r\n {this.props.values[subQ.target][i][subQ.question]}\r\n );\r\n }\r\n else {\r\n switch (subQ.type) {\r\n case QuestionType.DROPDOWN:\r\n row.push(\r\n {RichText.asText(this.t(el[subQ.question], { returnObjects: true }))}\r\n );\r\n break;\r\n\r\n default:\r\n row.push(\r\n {el[subQ.question]}\r\n );\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return row;\r\n }\r\n\r\n render() {\r\n const data: ReactNode[] = [];\r\n window.scroll(0, 0);\r\n FormUtils.formatValue(\r\n this.t,\r\n this.formService,\r\n this.props.form,\r\n this.props.history,\r\n this.props.values,\r\n (id: number, question: FormQuestion, value: any) => {\r\n if (question.toDisplayInSummary === false) {\r\n return;\r\n }\r\n\r\n switch (question.type) {\r\n case QuestionType.NUMBER:\r\n data.push(\r\n this.props.onQuestionClick(id)}\r\n >\r\n {this.formService.t(this.t, question.question, true, false)}\r\n {(value === '' ? (`0 ${this.formService.t(this.t, question.unit as any, false, false)}`) : value)}\r\n \r\n );\r\n break;\r\n case QuestionType.CHECKBOX:\r\n value = value.map(x => this.formService.t(this.t, x, true, false));\r\n\r\n data.push(\r\n this.props.onQuestionClick(id)}\r\n >\r\n {this.formService.t(this.t, question.question, true, false)}\r\n {value}\r\n \r\n );\r\n break;\r\n case QuestionType.MULTIPLE:\r\n if (question.subQuestions) {\r\n for (const qst of question.subQuestions) {\r\n if (typeof this.props.values[qst.question] === \"boolean\") {\r\n data.push(\r\n this.props.onQuestionClick(id)}\r\n >\r\n {this.formService.t(this.t, qst.question, true, false)}\r\n {this.formService.t(this.t, (this.props.values[qst.question]) ? 'oui' : 'non', true, false)}\r\n \r\n );\r\n }\r\n else {\r\n data.push(\r\n this.props.onQuestionClick(id)}\r\n >\r\n {this.formService.t(this.t, qst.question, true, false)}\r\n {this.formService.t(this.t, this.props.values[qst.question], true, false)}\r\n \r\n );\r\n }\r\n }\r\n }\r\n break;\r\n case QuestionType.TABLE:\r\n const tableHeader: any[] = [];\r\n if (question.subQuestions) {\r\n for (let i = 0; i < question.subQuestions.length; i++) {\r\n const subQ = question.subQuestions[i];\r\n\r\n tableHeader.push(\r\n \r\n {this.formService.t(this.t, subQ.question, true, false)}\r\n \r\n );\r\n }\r\n }\r\n data.push(\r\n this.props.onQuestionClick(id)}\r\n >\r\n {this.formService.t(this.t, question.question, true, false)}\r\n \r\n \r\n \r\n \r\n {tableHeader}\r\n \r\n \r\n \r\n {this._getTableBody(question, value)}\r\n \r\n
    \r\n \r\n \r\n );\r\n case QuestionType.TEXT_ONLY:\r\n break;\r\n default:\r\n data.push(\r\n this.props.onQuestionClick(id)}\r\n >\r\n {this.formService.t(this.t, question.question, true, false)}\r\n {this.formService.t(this.t, value, true, false)}\r\n \r\n );\r\n break;\r\n }\r\n }\r\n );\r\n\r\n return (\r\n
    \r\n \r\n \r\n

    {this.formService.t(this.t, \"ui_summary_title\", true)}

    \r\n
    \r\n \r\n {this.formService.t(this.t, \"ui_summary_notes\", false)}\r\n \r\n \r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {data}\r\n
    {this.formService.t(this.t, \"ui_summary_question\", true)}{this.formService.t(this.t, \"ui_summary_response\", true)}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n this.props.onPreviousClick()}\r\n >\r\n {this.formService.t(this.t, \"button_previous\", false, true)}\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 withTranslation()(FormSummary);\r\n","import { Input } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport React from \"react\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { FormQuestion } from \"../models/FormQuestion\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport \"./FormLongText.scss\";\r\n\r\ninterface Props extends WithTranslation {\r\n question: FormQuestion;\r\n value: any;\r\n onValueChange: (v: any) => void;\r\n}\r\n\r\nclass FormLongText extends React.Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n
    \r\n this.props.onValueChange(e.target.value)}\r\n />\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormLongText);\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport { Checkbox } from \"@bbri/ui\";\r\nimport { FormQuestion } from \"../models/FormQuestion\";\r\n\r\ninterface Props extends WithTranslation {\r\n question: FormQuestion;\r\n currentValues: string[];\r\n values: any[];\r\n onValueChange: (v: any) => void;\r\n name: string;\r\n}\r\n\r\nclass FormCheckbox extends React.Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n private valueList: string[] = [];\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n }\r\n\r\n onValueChange(v: any) {\r\n this.setState({ ...this.state, value: v });\r\n }\r\n\r\n render() {\r\n const list: ReactNode[] = [];\r\n const values = this.props.currentValues;\r\n for (let i = 0; i < values.length; i++) {\r\n const value = values[i];\r\n const key = `${this.props.name}${i}`;\r\n list.push(\r\n \r\n {\r\n this.props.onValueChange(value);\r\n }}\r\n />\r\n \r\n );\r\n }\r\n\r\n return list;\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormCheckbox);\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React, { ReactNode } from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport { FormQuestion } from \"../models/FormQuestion\";\r\nimport \"./FormTable.scss\";\r\nimport { QuestionType } from \"../enum/QuestionType\";\r\nimport FormInputNumber from \"./FormInputNumber\";\r\nimport FormDropdown from \"./FormDropdown\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Input } from \"@bbri/ui\";\r\n\r\ninterface States {\r\n values: any[],\r\n size: number,\r\n dropDownValues: {};\r\n}\r\n\r\n\r\ninterface Props extends WithTranslation {\r\n question: FormQuestion;\r\n currentValues: string[];\r\n values: any[];\r\n onValueChange: (v: any) => void;\r\n name: string;\r\n questionHistory: any;\r\n questions: any;\r\n onSizeChange: () => void;\r\n}\r\n\r\nclass FormTable extends React.Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n\r\n if (this.props.question.size.type === \"previous_question\") {\r\n if (typeof this.props.questionHistory[this.props.question.size.target] === 'string') {\r\n this.state = {\r\n values: this.props.values ?? [],\r\n size: this.props.questionHistory[this.props.question.size.target],\r\n dropDownValues: {}\r\n };\r\n }\r\n else {\r\n this.state = {\r\n values: this.props.values ?? [],\r\n size: this.props.questionHistory[this.props.question.size.target]?.length ?? 0,\r\n dropDownValues: {}\r\n };\r\n }\r\n }\r\n else {\r\n let length;\r\n if (this.props.values?.length) {\r\n length = this.props.values?.length;\r\n }\r\n else if (this.props.question.size.value) {\r\n length = this.props.question.size.value;\r\n }\r\n else {\r\n length = this.props.question.size;\r\n }\r\n this.state = {\r\n values: this.props.values ?? [],\r\n size: (this.props.question.size.type === 'dynamic') ? (this.props.question.size.min ?? this.props.values?.length) : length,\r\n dropDownValues: {}\r\n };\r\n }\r\n if (!this.props.values) {\r\n for (let i = 0; i < this.state.size; i++) {\r\n this.state.values.push({});\r\n }\r\n }\r\n if (this.props.values) {\r\n // TODO CHECK\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n this.setState({\r\n values: this.props.values\r\n });\r\n }\r\n\r\n componentDidUpdate(prevProps: Readonly) {\r\n if ((this.props.question.question !== prevProps.question.question) && this.props.questionHistory[this.props.question.question]?.length === 0) {\r\n this.setState({\r\n values: this.props.values\r\n });\r\n }\r\n }\r\n\r\n onValueChange(v: any) {\r\n //this.setState({...this.state});\r\n }\r\n\r\n onResultChange(subQuestion: FormQuestion, value: any, column: number, row: number) {\r\n if ((JSON.stringify(this.props.values) !== JSON.stringify(this.state.values))) {\r\n this.setState({\r\n values: this.props.values\r\n });\r\n }\r\n\r\n if (!this.state.values[row]) {\r\n for (let i = 0; i <= row; i++) {\r\n if (!this.state.values[i]) {\r\n this.state.values.push({});\r\n }\r\n if (i === row) {\r\n this.state.values[row][subQuestion.question] = value;\r\n }\r\n }\r\n }\r\n else {\r\n this.setState({\r\n values: [\r\n ...this.props.values.slice(0, row),\r\n Object.assign(this.props.values[row], { [subQuestion.question]: value }),\r\n ...this.props.values.slice(row + 1)\r\n ]\r\n });\r\n }\r\n }\r\n\r\n private _createTableBody() {\r\n const list: ReactNode[] = [];\r\n for (let row = 0; row < this.state.size; row++) {\r\n if (this.props.question.subQuestions) {\r\n list.push({this._createTableLine(row)});\r\n }\r\n }\r\n return list;\r\n }\r\n\r\n private _createTableLine(row: number) {\r\n const list: ReactNode[] = [];\r\n\r\n if (this.props.question.subQuestions) {\r\n for (let column = 0; column < this.props.question.subQuestions.length; column++) {\r\n if (this.props.question.subQuestions[column].type === QuestionType.PREVIOUS_QUESTION) {\r\n\r\n for (const question of this.props.questions) {\r\n if (question.question === this.props.question.subQuestions[column].target) {\r\n for (const subQ of question.subQuestions) {\r\n if (subQ.question === this.props.question.subQuestions[column].question) {\r\n list.push(this._getHtml(subQ, row, column, this.props.questionHistory[this.props.question.subQuestions[column].target]));\r\n }\r\n }\r\n }\r\n }\r\n\r\n }\r\n else if (this.props.question.subQuestions[column].type === QuestionType.DECISION_TREE) {\r\n list.push(this._getHtml(this.props.question.subQuestions[column], row, column, ((this.props.values[row]) ? this.props.values[row][this.props.question.subQuestions[column].question] : null)));\r\n }\r\n else {\r\n list.push(this._getHtml(this.props.question.subQuestions[column], row, column));\r\n }\r\n }\r\n }\r\n\r\n return list;\r\n }\r\n\r\n private _createTableHeader() {\r\n const list: ReactNode[] = [];\r\n\r\n if (this.props.question.subQuestions) {\r\n for (let i = 0; i < this.props.question.subQuestions.length; i++) {\r\n const subQuestion = this.props.question.subQuestions[i];\r\n\r\n list.push({this.formService.t(this.t, subQuestion.question, true, false)});\r\n }\r\n }\r\n\r\n return list;\r\n }\r\n\r\n static getDerivedStateFromProps(props: any, state: any) {\r\n if ((JSON.stringify(props.values) !== JSON.stringify(state.values))) {\r\n return {\r\n ...state,\r\n values: props.values\r\n };\r\n }\r\n return state;\r\n }\r\n\r\n render() {\r\n\r\n const list: ReactNode[] = [];\r\n let button: any[] = [];\r\n if (this.props.question.size.type && this.props.question.size.type === 'dynamic') {\r\n button.push(
    \r\n this.addRow()}\r\n />\r\n this.rmRow()}\r\n />\r\n
    );\r\n }\r\n\r\n list.push(\r\n
    \r\n \r\n \r\n \r\n {this._createTableHeader()}\r\n \r\n \r\n \r\n {this._createTableBody()}\r\n \r\n
    \r\n {button}\r\n
    \r\n );\r\n return list;\r\n }\r\n\r\n private addRow() {\r\n if (this.props.question.size.max && this.state.size < this.props.question.size.max) {\r\n this.setState({\r\n size: this.state.size + 1\r\n });\r\n this.props.values.push({});\r\n this.props.onSizeChange();\r\n }\r\n }\r\n\r\n\r\n private rmRow() {\r\n if ((this.props.question.size.min && this.state.size > this.props.question.size.min)) {\r\n this.rmRowAction();\r\n }\r\n else if (!this.props.question.size.min && this.state.size > 0) {\r\n this.rmRowAction();\r\n }\r\n }\r\n\r\n private rmRowAction() {\r\n this.setState({\r\n size: this.state.size - 1\r\n });\r\n if (Object.keys(this.state.dropDownValues).length > this.state.size) {\r\n this.setState({\r\n ...this.state.dropDownValues,\r\n [this.state.size]: undefined\r\n });\r\n }\r\n this.props.values.pop();\r\n this.props.onSizeChange();\r\n }\r\n\r\n private _getHtml(formQuestion: FormQuestion, row: number, column: number, values?: any) {\r\n const key = `${formQuestion.type}-${row}-${column}`;\r\n\r\n switch (formQuestion.type) {\r\n case QuestionType.STRING:\r\n if (!values) {\r\n return (\r\n \r\n {\r\n this.props.onValueChange(this.state.values);\r\n if (this.props.question.subQuestions) {\r\n this.onResultChange(formQuestion, (v.target as any).value, column, row);\r\n }\r\n }}\r\n disabled={values}\r\n />\r\n );\r\n }\r\n else {\r\n return (\r\n \r\n

    {values[row] ? values[row][formQuestion.question] : ''}

    \r\n \r\n );\r\n }\r\n case QuestionType.NUMBER:\r\n if (!values) {\r\n return (\r\n \r\n 0 && this.props.values[row] && this.props.values[row][formQuestion.question]) ? this.props.values[row][formQuestion.question] : 0}\r\n onValueChange={(v) => {\r\n if (this.props.question.subQuestions) {\r\n this.onResultChange(formQuestion, v, column, row);\r\n }\r\n this.props.onValueChange(this.state.values);\r\n }}\r\n onBlur={(question, v) => {\r\n return this.onValueChange;\r\n }}\r\n disabled={values}\r\n />\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n

    {(values[row]) ? values[row][formQuestion.question] : null}

    \r\n \r\n );\r\n }\r\n case QuestionType.DROPDOWN:\r\n if (!values) {\r\n return (\r\n \r\n {\r\n this.props.onValueChange(this.state.values);\r\n this.setState({\r\n dropDownValues: {\r\n ...this.state.dropDownValues,\r\n [row]: v\r\n }\r\n });\r\n if (this.props.question.subQuestions) {\r\n this.onResultChange(formQuestion, v, column, row);\r\n }\r\n }}\r\n disabled={values}\r\n />\r\n \r\n );\r\n }\r\n else {\r\n return (\r\n \r\n

    {values[row][formQuestion.question]}

    \r\n \r\n );\r\n }\r\n\r\n case QuestionType.DECISION_TREE:\r\n return (\r\n \r\n

    {values}

    \r\n \r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormTable);\r\n","import { Button, Input, Question } from \"@bbri/ui\";\r\nimport i18n, { TFunction } from \"i18next\";\r\nimport React, { Component, ReactNode } from \"react\";\r\nimport { ChevronLeft, ChevronRight, FastForward } from \"react-feather\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport ImageWrapper from \"./../shared/components/ImageWrapper\";\r\nimport FormBool from \"./components/FormBool\";\r\nimport FormDropdown from \"./components/FormDropdown\";\r\nimport FormFeedback from \"./components/FormFeedback\";\r\nimport FormInputNumber from \"./components/FormInputNumber\";\r\nimport FormMatrix from \"./components/FormMatrix\";\r\nimport FormRadioImage from \"./components/FormRadioImage\";\r\nimport FormRadioList from \"./components/FormRadioList\";\r\nimport FormResults from \"./components/FormResults\";\r\nimport FormStepper from \"./components/FormStepper\";\r\nimport FormSummary from \"./components/FormSummary\";\r\nimport { QuestionType } from \"./enum/QuestionType\";\r\nimport \"./FormPage.scss\";\r\nimport { Form } from \"./models/Form\";\r\nimport { FormQuestion } from \"./models/FormQuestion\";\r\nimport { RequirementResult, RequirementResults, } from \"./models/RequirementResults\";\r\nimport { DecisionTreeService } from \"./services/DecisionTreeService\";\r\nimport { FormService } from \"./services/FormService\";\r\nimport { FormUtils } from \"./utils/FormUtils\";\r\nimport { RichText } from 'prismic-reactjs';\r\nimport { TranslationService } from './services/TranslationService';\r\nimport FormLongText from './components/FormLongText';\r\nimport ReactGA from 'react-ga';\r\nimport FormCheckbox from \"./components/FormCheckbox\";\r\nimport FormTable from \"./components/FormTable\";\r\nimport { ReactGAUtils } from \"../shared/utils/ReactGAUtils\";\r\n\r\ninterface States {\r\n form: Form | null;\r\n currentQuestion: number;\r\n lastQuestion?: number;\r\n questionHistory: number[];\r\n values: Record;\r\n summary: boolean;\r\n displaySummaryStep: boolean;\r\n results: RequirementResult[] | null;\r\n waitValue: boolean;\r\n defaultValue: any;\r\n conditionalInfo: string;\r\n valueList: string[];\r\n subQuestionsValues: object;\r\n currentSubQuestion: string;\r\n defaultValuesTable: {};\r\n}\r\n\r\ninterface Props extends WithTranslation, RouteComponentProps {\r\n}\r\n\r\nclass FormPage extends Component {\r\n private formService: FormService;\r\n private translationService: TranslationService;\r\n private decisionTreeService: DecisionTreeService;\r\n private t: TFunction;\r\n\r\n private historyListener: () => void;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.translationService = new TranslationService();\r\n this.decisionTreeService = new DecisionTreeService();\r\n this.t = this.props.t;\r\n this.historyListener = () => {\r\n };\r\n this.state = {\r\n form: null,\r\n currentQuestion: 0,\r\n questionHistory: [],\r\n values: {},\r\n summary: false,\r\n displaySummaryStep: false,\r\n results: null,\r\n waitValue: false,\r\n defaultValue: null,\r\n conditionalInfo: '',\r\n valueList: [],\r\n subQuestionsValues: {},\r\n currentSubQuestion: '',\r\n defaultValuesTable: {}\r\n };\r\n }\r\n\r\n get hasPreviousPage() {\r\n return this.state.currentQuestion !== 0;\r\n }\r\n\r\n get hasNextPage() {\r\n return !this.state.summary;\r\n }\r\n\r\n get isLastQuestion() {\r\n return this.state.summary || !this.state.lastQuestion || this.state.currentQuestion === this.state.lastQuestion;\r\n }\r\n\r\n get canSubmitQuestion() {\r\n const question = this.state.form?.questions[this.state.currentQuestion];\r\n\r\n if (!question) {\r\n return false;\r\n }\r\n\r\n if (question.optional) {\r\n return (\r\n (this.getCurrentValue() !== null) &&\r\n !this.state.waitValue &&\r\n !this.state.summary &&\r\n true\r\n );\r\n }\r\n\r\n if (question.type === QuestionType.TEXT_ONLY) {\r\n return true;\r\n }\r\n\r\n if (question.type === QuestionType.TABLE && this.state.values[question.question]?.length === 0) {\r\n return false;\r\n }\r\n\r\n let isValid = true;\r\n let requiredOptionnal = false;\r\n if (question) {\r\n switch (question.type) {\r\n case QuestionType.NUMBER:\r\n if (this.getCurrentValue() === '') {\r\n isValid = false;\r\n break;\r\n }\r\n if (question.validation.min !== undefined && question.validation.min !== null && isValid) {\r\n isValid = this.getCurrentValue() >= question.validation.min;\r\n }\r\n break;\r\n case QuestionType.LONG_TEXT:\r\n requiredOptionnal = true;\r\n break;\r\n case QuestionType.CHECKBOX:\r\n isValid = this.state.valueList.length > 0;\r\n break;\r\n case QuestionType.MULTIPLE:\r\n isValid = this.getSubQuestionValid(question);\r\n requiredOptionnal = true;\r\n break;\r\n case QuestionType.TABLE:\r\n let validRows = 0;\r\n if (this.state.values[question.question]) {\r\n for (const rowValues of this.state.values[question.question]) {\r\n let isRowValid = false;\r\n if(this.state.form?.questions[this.state.currentQuestion].subQuestions) {\r\n // @ts-ignore\r\n for (const subQ of this.state.form?.questions[this.state.currentQuestion].subQuestions) {\r\n if (!subQ.optional && rowValues[subQ.question]) {\r\n isRowValid = true;\r\n }\r\n else if (subQ.optional) {\r\n isRowValid = true;\r\n }\r\n else {\r\n if (subQ.type !== 'previous_question') {\r\n isRowValid = false;\r\n }\r\n }\r\n }\r\n }\r\n if (isRowValid) {\r\n validRows++;\r\n }\r\n }\r\n }\r\n if (this.state.form?.questions[this.state.currentQuestion].size.type === 'fixed') {\r\n isValid = (this.state.values[question.question] && this.state.form?.questions[this.state.currentQuestion].size.value === validRows);\r\n }\r\n if (this.state.form?.questions[this.state.currentQuestion].size.type === 'previous_question') {\r\n const targetQuestion = this._findQuestionByName(this.state.form?.questions[this.state.currentQuestion].size.target);\r\n if (targetQuestion) {\r\n isValid = (this.state.values[question.question] && parseInt(this.state.values[targetQuestion.question]) === validRows);\r\n }\r\n else {\r\n isValid = false;\r\n }\r\n\r\n }\r\n else {\r\n isValid = (this.state.values[question.question] && this.state.values[question.question].length === validRows);\r\n }\r\n }\r\n }\r\n\r\n question.isValid = isValid;\r\n\r\n return (\r\n (this.getCurrentValue() !== null || requiredOptionnal) &&\r\n !this.state.waitValue &&\r\n !this.state.summary &&\r\n isValid\r\n );\r\n }\r\n\r\n private _findQuestionByName(name: string) {\r\n if (this.state.form?.questions) {\r\n for (const qst of this.state.form.questions) {\r\n if (qst.question === name) {\r\n return qst;\r\n }\r\n }\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"keyup\", this.handleKeyUp.bind(this));\r\n\r\n // = Listen to the history to prevent back action\r\n // Clone\r\n this.props.history.push({\r\n pathname: this.props.location.pathname,\r\n search: this.props.location.search,\r\n });\r\n\r\n // 'even' : allows you to execute the \"previous\" action only once when going backwards\r\n let even = 0;\r\n this.historyListener = this.props.history.listen((location, action) => {\r\n // Back action\r\n if (action === \"POP\") {\r\n this.props.history.go(1);\r\n\r\n if (this.state.results) {\r\n this.gotoSummary();\r\n }\r\n else {\r\n even++;\r\n if (even % 2 === 0) {\r\n this.handlePreviousClick(this.state.summary);\r\n even = 0;\r\n }\r\n }\r\n }\r\n });\r\n\r\n this.props.i18n.on(\"languageChanged\", this.generateImage.bind(this));\r\n\r\n this.formService.getForm(\"default\").then((resultQuestions) => {\r\n const form = resultQuestions.data;\r\n for (const question in form.questions) {\r\n if (form.questions[question].images && form.questions[question].images.length > 0) {\r\n form.questions[question].refImages = form.questions[question].images.slice(0);\r\n }\r\n if (form.questions[question].imageValues && form.questions[question].imageValues.length > 0) {\r\n form.questions[question].refImageValues = form.questions[question].imageValues.slice(0);\r\n }\r\n }\r\n this.generateImage(i18n.language, form);\r\n });\r\n }\r\n\r\n async generateImage(code: string, form: Form) {\r\n if (!form) {\r\n form = this.state.form ? this.state.form : {} as Form;\r\n }\r\n for (const question in form.questions) {\r\n for (const i in form.questions[question].refImages) {\r\n const translation = this.formService.t(this.t, form.questions[question].refImages[i], false, false, false, true);\r\n if (translation) {\r\n form.questions[question].images[i] = translation;\r\n }\r\n }\r\n for (const i in form.questions[question].refImageValues) {\r\n const translation = this.formService.t(this.t, form.questions[question].refImageValues[i], false, false, false, true);\r\n if (translation) {\r\n form.questions[question].imageValues[i] = translation;\r\n }\r\n }\r\n }\r\n this.setState({ form: form });\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"keyup\", this.handleKeyUp.bind(this));\r\n // Unregister history listener\r\n this.historyListener();\r\n }\r\n\r\n /**\r\n * Handle: reset\r\n *\r\n * Reset the form\r\n */\r\n handleReset() {\r\n this.setState({\r\n questionHistory: [],\r\n currentQuestion: 0,\r\n results: null,\r\n summary: false,\r\n values: {},\r\n displaySummaryStep: false,\r\n waitValue: false,\r\n });\r\n }\r\n\r\n gotoSummary() {\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'Affichage',\r\n label: 'Affichage récapitulatif'\r\n });\r\n\r\n this.setState({ summary: true, results: null });\r\n }\r\n\r\n /**\r\n * Handle: keyup event\r\n *\r\n * Submit next question and form\r\n */\r\n handleKeyUp(e: KeyboardEvent) {\r\n if (e.key.toLowerCase() === \"enter\" && this.canSubmitQuestion) {\r\n this.handleNextClick();\r\n }\r\n }\r\n\r\n /**\r\n * Handle: onValueChange/onChange\r\n */\r\n handleValueChange(value: string | number, currentSubQuestion: any, nextQuestionOnFill: boolean = false) {\r\n const question = this.state.form?.questions[this.state.currentQuestion];\r\n\r\n if (question && value !== null) {\r\n // Add value\r\n const lastValues = this.state.values;\r\n const values = Object.assign({}, lastValues);\r\n values[question.question] = value;\r\n\r\n if (question.type === QuestionType.CHECKBOX) {\r\n if (this.state.valueList.indexOf(value.toString()) === -1) {\r\n this.state.valueList.push(value.toString());\r\n }\r\n else {\r\n const index = this.state.valueList.indexOf(value.toString());\r\n if (index > -1) {\r\n this.state.valueList.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n if (question.type === QuestionType.MULTIPLE) {\r\n this.state.subQuestionsValues[currentSubQuestion.question] = value;\r\n this.setState({\r\n currentSubQuestion: currentSubQuestion.question\r\n });\r\n }\r\n\r\n // Remove next questions in the history\r\n let questionHistory = this.state.questionHistory;\r\n const questionIndex = questionHistory.findIndex(\r\n (id: number) => id === this.state.currentQuestion\r\n );\r\n if (questionIndex !== -1) {\r\n questionHistory.splice(\r\n questionIndex + 1,\r\n questionHistory.length - (questionIndex + 1)\r\n );\r\n questionHistory = questionHistory.slice(0);\r\n }\r\n\r\n if (question.type === QuestionType.CHECKBOX) {\r\n values[question.question] = this.state.valueList;\r\n }\r\n else if (question.type === QuestionType.MULTIPLE) {\r\n if (question.subQuestions) {\r\n values[question.question] = {};\r\n for (const qst of question.subQuestions) {\r\n values[qst.question] = this.state.subQuestionsValues[qst.question];\r\n values[question.question][qst.question] = this.state.subQuestionsValues[qst.question];\r\n }\r\n\r\n }\r\n }\r\n\r\n this.setState({\r\n values,\r\n questionHistory,\r\n summary: false,\r\n displaySummaryStep: false,\r\n });\r\n\r\n if (nextQuestionOnFill) {\r\n setTimeout(() => {\r\n if (question !== this.state.form?.questions[this.state.currentQuestion]) {\r\n return;\r\n }\r\n if (this.canSubmitQuestion) {\r\n this.handleNextClick();\r\n }\r\n }, 0);\r\n }\r\n }\r\n\r\n }\r\n\r\n /**\r\n * Handle: onClick for the next/summary button\r\n */\r\n async handleNextClick(goToLast?: boolean) {\r\n if (!this.state.form || this.state.summary) {\r\n return;\r\n }\r\n\r\n this.setState({\r\n waitValue: true,\r\n valueList: []\r\n });\r\n\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'Question suivante'\r\n });\r\n\r\n // = Check conditions\r\n const nextQuestion = await this.getNextQuestion(\r\n this.state.currentQuestion,\r\n this.state.form.questions,\r\n goToLast ?? false\r\n );\r\n\r\n // = Access to summary\r\n if (nextQuestion.goToSummary) {\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'Affichage',\r\n label: 'Affichage récapitulatif'\r\n });\r\n\r\n this.setState({\r\n questionHistory: nextQuestion.questionHistory,\r\n summary: true,\r\n waitValue: false,\r\n });\r\n return;\r\n }\r\n const currentQuestion = goToLast ? nextQuestion.lastQuestion : nextQuestion.nextQuestion;\r\n /*if(goToLast) {\r\n //add last question in values and in questionHistory\r\n let v = this.state.values;\r\n let qH;\r\n const q = this.state.form.questions[nextQuestion.lastQuestion]\r\n v[q.question] = '';\r\n if(!this.state.questionHistory.includes(nextQuestion.lastQuestion)) {\r\n qH = this.state.questionHistory;\r\n qH.push(nextQuestion.lastQuestion)\r\n }\r\n this.setState({\r\n values: v,\r\n questionHistory: qH ?? nextQuestion.questionHistory,\r\n summary: true,\r\n waitValue: false,\r\n });\r\n return;\r\n }*/\r\n\r\n this.setState({\r\n valueList: (this.state.values[this.state.form.questions[currentQuestion].question]) ? this.state.values[this.state.form.questions[currentQuestion].question] : []\r\n });\r\n\r\n Promise.all([\r\n this.computeDefaultValue(currentQuestion, nextQuestion.questionHistory),\r\n this.computeConditionalInfo(currentQuestion, nextQuestion.questionHistory),\r\n ])\r\n .then((data: any) => {\r\n window.scroll(0, 0);\r\n this.setState({\r\n currentQuestion,\r\n lastQuestion: nextQuestion.lastQuestion,\r\n questionHistory: nextQuestion.questionHistory,\r\n waitValue: false,\r\n defaultValue: data[0],\r\n conditionalInfo: data[1]\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Handle: onClick for the previous button\r\n */\r\n async handlePreviousClick(fromSummary: boolean = false) {\r\n if (!this.state.form || this.state.currentQuestion === 0) {\r\n return;\r\n }\r\n\r\n const questionHistory = this.state.questionHistory;\r\n const questionIndex = questionHistory.findIndex(\r\n (id: number) => id === this.state.currentQuestion\r\n );\r\n let previousQuestion = questionHistory[questionHistory.length - 1];\r\n if (questionIndex !== -1 && !this.state.summary) {\r\n previousQuestion = questionHistory[questionIndex - 1];\r\n }\r\n\r\n this.setState({\r\n valueList: (this.state.values[this.state.form.questions[previousQuestion].question]) ? this.state.values[this.state.form.questions[previousQuestion].question] : []\r\n });\r\n\r\n Promise.all([\r\n this.computeDefaultValue(previousQuestion),\r\n this.computeConditionalInfo(previousQuestion),\r\n ])\r\n .then((data: any) => {\r\n this.setState({\r\n currentQuestion: previousQuestion,\r\n displaySummaryStep: fromSummary,\r\n summary: false,\r\n defaultValue: data[0],\r\n conditionalInfo: data[1]\r\n });\r\n });\r\n }\r\n\r\n private getQuestionHistoryByQuestion(questionId) {\r\n const questionHistory: number[] = [];\r\n for (const questionHistoryId of this.state.questionHistory) {\r\n if (questionHistoryId < questionId) {\r\n questionHistory.push(questionHistoryId);\r\n }\r\n }\r\n return questionHistory;\r\n }\r\n\r\n async computeDefaultValue(questionIndex: number, questionHistory?: number[]) {\r\n const question = this.state.form?.questions[questionIndex];\r\n if (question) {\r\n if (\r\n question.default_value &&\r\n question.default_value.decision_tree\r\n ) {\r\n const history = questionHistory ? questionHistory : this.getQuestionHistoryByQuestion(questionIndex);\r\n return await this.decisionTreeService.computeDecisionTree(\r\n question.default_value.decision_tree,\r\n FormUtils.getValidValues(this.state.form ? this.state.form.questions : [], this.state.values, history, questionIndex)\r\n );\r\n }\r\n else if (question.type === QuestionType.TABLE) {\r\n if (question.subQuestions) {\r\n const datas = {};\r\n for (const qst of question.subQuestions) {\r\n if (qst.type === QuestionType.DECISION_TREE) {\r\n const history = questionHistory ? questionHistory : this.getQuestionHistoryByQuestion(questionIndex);\r\n datas[qst.question] = await this.decisionTreeService.computeDecisionTree(\r\n qst.target,\r\n FormUtils.getValidValues(this.state.form ? this.state.form.questions : [], this.state.values, history, questionIndex)\r\n );\r\n }\r\n }\r\n // Add data to values\r\n if (!this.state.values[question.question]) {\r\n this.state.values[question.question] = [];\r\n }\r\n for (const key of Object.keys(datas)) {\r\n for (const i in datas[key]) {\r\n if (!this.state.values[question.question][i]) {\r\n this.state.values[question.question].push({ [key]: datas[key][i] });\r\n }\r\n else {\r\n /*if(!this.state.values[question.question][i][key]) {\r\n this.state.values[question.question][i][key] = datas[key][i];\r\n }*/\r\n this.state.values[question.question][i][key] = datas[key][i];\r\n }\r\n }\r\n }\r\n\r\n return datas;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n async computeConditionalInfo(questionIndex: number, questionHistory?: number[]) {\r\n const question = this.state.form?.questions[questionIndex];\r\n if (question) {\r\n let result = '';\r\n // If empty conditionalInfo return empty string\r\n if (!question.conditionalInfo || (Array.isArray(question.conditionalInfo) && question.conditionalInfo.length === 0)) {\r\n return result;\r\n }\r\n\r\n const history = questionHistory ? questionHistory : this.getQuestionHistoryByQuestion(questionIndex);\r\n const cache = new Map();\r\n const values = FormUtils.getValidValues(this.state.form ? this.state.form.questions : [], this.state.values, history, questionIndex);\r\n\r\n for (const conditionalInfo of question.conditionalInfo) {\r\n if (await FormUtils.checkCondition(\r\n this.decisionTreeService,\r\n conditionalInfo.conditions.lhs,\r\n conditionalInfo.conditions.operator,\r\n conditionalInfo.conditions.rhs,\r\n (question.type === QuestionType.CHECKBOX) ? question.values : values,\r\n cache\r\n )) {\r\n if (result !== '') {\r\n result += '
    ';\r\n }\r\n result += this.formService.t(this.t, conditionalInfo.info, true, false, true);\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n getSubQuestionValid(question: FormQuestion): boolean {\r\n if (question.subQuestions) {\r\n for (const subQ of question.subQuestions) {\r\n if (subQ.question === this.state.currentSubQuestion) {\r\n subQ.isValid = true;\r\n }\r\n }\r\n for (const qst of question.subQuestions) {\r\n if (!qst.optional && !qst.isValid) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n /**\r\n * Handle: onSubmitForm\r\n *\r\n * Reset the form\r\n */\r\n handleSubmitForm(results: RequirementResults) {\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'Affichage',\r\n label: 'Affichage résultat'\r\n });\r\n\r\n this.setState({\r\n summary: false,\r\n results: results.results,\r\n });\r\n }\r\n\r\n /**\r\n * Handle: onStepClick (FormStepper) & onQuestionClick (FormSummary)\r\n *\r\n * Navigate to the desired question\r\n */\r\n handleQuestionClick(questionId: number, fromSummary: boolean = false) {\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'stepper'\r\n });\r\n // if summary\r\n if (questionId === -1) {\r\n this.gotoSummary();\r\n return;\r\n }\r\n\r\n if (this.state.form) {\r\n this.setState({\r\n valueList: (this.state.values[this.state.form.questions[questionId].question]) ? this.state.values[this.state.form.questions[questionId].question] : []\r\n });\r\n }\r\n\r\n Promise.all([\r\n this.computeDefaultValue(questionId),\r\n this.computeConditionalInfo(questionId),\r\n ])\r\n .then((data: any) => {\r\n this.setState({\r\n currentQuestion: questionId,\r\n displaySummaryStep: this.state.displaySummaryStep || fromSummary,\r\n summary: false,\r\n defaultValue: data[0],\r\n conditionalInfo: data[1]\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Get value for a question\r\n */\r\n getValue(type: QuestionType, question: string) {\r\n const answers = this.state.values;\r\n if (!answers || answers[question] === undefined) {\r\n switch (type) {\r\n case QuestionType.NUMBER:\r\n return 0;\r\n default:\r\n return null;\r\n }\r\n }\r\n return answers[question];\r\n }\r\n\r\n /**\r\n * Get value for the current question\r\n */\r\n getCurrentValue() {\r\n const question = this.state.form?.questions[this.state.currentQuestion];\r\n if (!question) {\r\n return null;\r\n }\r\n const currentValue = this.getValue(question.type, question.question);\r\n\r\n if (question.type === QuestionType.NUMBER && currentValue === 0) {\r\n return null;\r\n }\r\n\r\n return currentValue;\r\n }\r\n\r\n /**\r\n * Create question elements\r\n */\r\n createElementQuestion(\r\n question: FormQuestion,\r\n value: any,\r\n handleValueChange: (v: any, p?: FormQuestion | null, f?: boolean) => void,\r\n isSubQuestion?: boolean\r\n ): ReactNode {\r\n switch (question.type) {\r\n case QuestionType.STRING:\r\n return (\r\n {\r\n handleValueChange(v.target.value, question, (!isSubQuestion));\r\n } }\r\n value={ (isSubQuestion) ? (this.state.values[question.question] ? this.state.subQuestionsValues[question.question] : '') : value }\r\n >\r\n\r\n \r\n );\r\n case QuestionType.RADIO_IMAGE:\r\n return (\r\n handleValueChange(v, question, (!isSubQuestion)) }\r\n />\r\n );\r\n case QuestionType.RADIO:\r\n return (\r\n handleValueChange(v, question, (!isSubQuestion)) }\r\n />\r\n );\r\n case QuestionType.DROPDOWN:\r\n return (\r\n handleValueChange(v, question, (!isSubQuestion)) }\r\n isSubQuestion={ isSubQuestion }\r\n />\r\n );\r\n case QuestionType.MATRIX:\r\n return (\r\n handleValueChange(v, question, (!isSubQuestion)) }\r\n />\r\n );\r\n case QuestionType.BOOL:\r\n return (\r\n handleValueChange(v, question, (!isSubQuestion)) }\r\n />\r\n );\r\n case QuestionType.NUMBER:\r\n return (\r\n handleValueChange(v, question) }\r\n onBlur={ (question, v) => {\r\n if (question !== this.state.form?.questions[this.state.currentQuestion].question) {\r\n return;\r\n }\r\n return handleValueChange(v);\r\n } }\r\n />\r\n );\r\n case QuestionType.LONG_TEXT:\r\n return (\r\n handleValueChange(v, question) }\r\n />\r\n );\r\n case QuestionType.CHECKBOX:\r\n return (\r\n handleValueChange(v, question) }\r\n />\r\n );\r\n case QuestionType.MULTIPLE:\r\n if (question.subQuestions) {\r\n let questions: ReactNode[] = [];\r\n for (const qst of question.subQuestions) {\r\n const style = { fontWeight: 'bold', marginBottom: '10px' };\r\n questions.push(React.createElement('p', { className: 'questionTitle', style }, this.formService.t(this.t, qst.shortTitle, true, false)));\r\n\r\n questions.push(this.createElementQuestion(\r\n qst,\r\n this.getValue(qst.type, qst.question),\r\n this.handleValueChange.bind(this),\r\n true\r\n ));\r\n questions.push(React.createElement('br'));\r\n questions.push(React.createElement('br'));\r\n }\r\n return questions;\r\n }\r\n break;\r\n case QuestionType.TABLE:\r\n if (typeof this.state.values[question.size.target] === 'object') {\r\n if (this.state.values[question.question] &&\r\n (this.state.values[question.question].length >\r\n this.state.values[question.size.target].length)) {\r\n\r\n while (this.state.values[question.question].length >\r\n this.state.values[question.size.target].length) {\r\n this.state.values[question.question].pop();\r\n }\r\n }\r\n }\r\n else {\r\n if (this.state.values[question.question] &&\r\n (this.state.values[question.question].length >\r\n this.state.values[question.size.target])) {\r\n\r\n while (this.state.values[question.question].length >\r\n this.state.values[question.size.target]) {\r\n this.state.values[question.question].pop();\r\n }\r\n }\r\n }\r\n return {\r\n handleValueChange(v, question);\r\n } }\r\n questionHistory={ this.state.values }\r\n questions={ this.state.form?.questions }\r\n onSizeChange={ () => handleValueChange(value, question) }\r\n />;\r\n }\r\n }\r\n\r\n /**\r\n * Check the conditions and return the next question\r\n */\r\n async getNextQuestion(\r\n index: number,\r\n questions: FormQuestion[],\r\n goToLast: boolean\r\n ): Promise<{ nextQuestion: number, lastQuestion: number, questionHistory: number[], goToSummary?: boolean }> {\r\n if (!this.state.form) {\r\n return {\r\n nextQuestion: this.state.currentQuestion,\r\n lastQuestion: this.state.currentQuestion,\r\n questionHistory: this.state.questionHistory\r\n };\r\n }\r\n\r\n const cache = new Map();\r\n\r\n let nextQuestion;\r\n let lastQuestion;\r\n let questionHistory = this.state.questionHistory.slice(0);\r\n if (!questionHistory.includes(this.state.currentQuestion)) {\r\n questionHistory.push(this.state.currentQuestion);\r\n }\r\n for (let i = index + 1; i < questions.length; i++) {\r\n let values = FormUtils.getValidValues(this.state.form.questions, this.state.values, questionHistory, i);\r\n const question = questions[i];\r\n if (!question.conditions || await FormUtils.checkCondition(\r\n this.decisionTreeService,\r\n question.conditions.lhs,\r\n question.conditions.operator,\r\n question.conditions.rhs,\r\n values,\r\n cache\r\n )) {\r\n if (!nextQuestion) {\r\n nextQuestion = i;\r\n }\r\n lastQuestion = i;\r\n\r\n if (goToLast && questions.length - 1 === lastQuestion) {\r\n return {\r\n nextQuestion: questions.length - 1,\r\n lastQuestion: questions.length - 1,\r\n questionHistory,\r\n goToSummary: true\r\n };\r\n }\r\n\r\n if ((question.isValid && this.state.values[question.question] !== undefined)) {\r\n if (!questionHistory.includes(i)) {\r\n questionHistory.push(i);\r\n }\r\n continue;\r\n }\r\n\r\n if ((question.optional || question.type === QuestionType.TEXT_ONLY) && questionHistory.includes(i)) {\r\n continue;\r\n }\r\n\r\n return { nextQuestion, lastQuestion, questionHistory };\r\n }\r\n }\r\n return lastQuestion ? { nextQuestion, lastQuestion, questionHistory } : {\r\n nextQuestion: questions.length - 1,\r\n lastQuestion: questions.length - 1,\r\n questionHistory,\r\n goToSummary: true\r\n };\r\n }\r\n\r\n render() {\r\n\r\n if (!this.state.form) {\r\n return
    Loading...
    ;\r\n }\r\n\r\n //\r\n // = SUMMARY\r\n //\r\n\r\n if (this.state.summary) {\r\n return (\r\n \r\n this.handleSubmitForm(results)\r\n }\r\n onPreviousClick={ () => this.handlePreviousClick(true) }\r\n onQuestionClick={ (questionId: number) =>\r\n this.handleQuestionClick(questionId, true)\r\n }\r\n />\r\n );\r\n }\r\n\r\n //\r\n // = RESULTS\r\n //\r\n if (this.state.results) {\r\n return (\r\n this.handleReset() }\r\n onPreviousClick={ () => this.gotoSummary() }\r\n />\r\n );\r\n }\r\n\r\n //\r\n // = FORM\r\n //\r\n const question = (this.state.form.questions) ? this.state.form.questions[this.state.currentQuestion] : null;\r\n if (!question) {\r\n return (\r\n
    \r\n

    Loading...

    \r\n
    \r\n );\r\n }\r\n const el: ReactNode = this.createElementQuestion(\r\n question,\r\n this.getValue(question.type, question.question),\r\n this.handleValueChange.bind(this)\r\n );\r\n\r\n // Image\r\n let imageNodes: ReactNode[] = [];\r\n\r\n if (question.images.length) {\r\n for (let i = 0; i < question.images.length; i++) {\r\n const image = question.images[i];\r\n imageNodes.push(\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 this.handleQuestionClick(questionId)\r\n }\r\n />\r\n \r\n { this.formService.t(this.t, question.question, true) }\r\n \r\n { question.info && (\r\n { this.formService.t(this.t, question.info, true) }\r\n ) }\r\n { this.state.conditionalInfo && this.state.conditionalInfo !== '' && (\r\n \r\n ) }\r\n
    \r\n { question.type === QuestionType.TEXT_ONLY ? null : (\r\n \r\n
    \r\n { question.default_value && this.state.defaultValue && (\r\n
    \r\n { (this.formService.checkIfValue(RichText.render(this.t(\"ui_input_suggestion\", { returnObjects: true })), \"ui_input_suggestion\")) ? (RichText.render(this.t(\"ui_input_suggestion\", { returnObjects: true }))) : \"no_value\" }\r\n { this.state.defaultValue }\r\n { question.unit && (\r\n { RichText.render(this.t(question.unit, { returnObjects: true })) }\r\n ) }\r\n
    \r\n ) }\r\n { el }\r\n
    \r\n
    \r\n ) }\r\n { imageNodes.length ? (\r\n
    \r\n
    { imageNodes }
    \r\n
    \r\n ) : null }\r\n \r\n { question.subInfo && (\r\n { this.formService.t(this.t, question.subInfo, true) }\r\n ) }\r\n
    \r\n
    \r\n
    \r\n
    \r\n { this.hasPreviousPage && !this.state.waitValue ? (\r\n {\r\n this.handlePreviousClick();\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'Question précédente'\r\n });\r\n } }\r\n >\r\n \r\n \r\n { this.formService.t(this.t, \"button_previous\", false, true) }\r\n \r\n \r\n ) : undefined }\r\n
    \r\n
    \r\n { !this.isLastQuestion && this.state.questionHistory.length !== 0 ? (\r\n {\r\n this.handleNextClick(true);\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'Bouton avance rapide'\r\n });\r\n } }\r\n >\r\n { this.state.waitValue ? (\r\n \"Loading...\"\r\n ) : (\r\n \r\n { this.formService.t(this.t, \"button_go_to_last\", false, true) } \r\n \r\n \r\n ) }\r\n \r\n ) : undefined }\r\n { this.hasNextPage ? (\r\n {\r\n this.handleNextClick();\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'Question suivante'\r\n });\r\n } }\r\n disabled={ (question.optional) ? false : !this.canSubmitQuestion }\r\n >\r\n { this.state.waitValue ? (\r\n \"Loading...\"\r\n ) : (\r\n \r\n { this.formService.t(this.t, \"button_next\", false, true) }\r\n \r\n \r\n ) }\r\n \r\n ) : undefined }\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(withRouter(FormPage));\r\n","import React, { Component } from 'react';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\nimport { TFunction } from 'i18next';\r\nimport { FormService } from '../../form/services/FormService';\r\n\r\n\r\ninterface Props extends WithTranslation {\r\n\r\n}\r\n\r\nclass Logo extends Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n \r\n \"BBRI\r\n \r\n \r\n \"BBRI\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(Logo);\r\n","import React, { Component } from \"react\";\r\nimport { TFunction } from 'i18next';\r\nimport { FormService } from '../../form/services/FormService';\r\nimport { withTranslation, WithTranslation } from 'react-i18next';\r\n\r\ninterface Props extends WithTranslation {\r\n\r\n}\r\n\r\nclass ToolLogo extends Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.t = this.props.t;\r\n }\r\n\r\n render() {\r\n return \"Tool;\r\n }\r\n}\r\n\r\nexport default withTranslation()(ToolLogo);\r\n","import { Select } from \"@bbri/ui\";\r\nimport React, { Component } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport \"./SelectLanguage.scss\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\nclass SelectLanguage extends Component {\r\n static languages = [\"fr\", \"nl\"];\r\n\r\n handleSelectChange(value: string) {\r\n this.props.i18n.changeLanguage(value);\r\n }\r\n\r\n render() {\r\n const options: { id: string; name: string }[] = [];\r\n\r\n for (const language of SelectLanguage.languages) {\r\n options.push({\r\n id: language,\r\n name: language.toUpperCase(),\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n \r\n this.handleSelectChange(item.id)\r\n }\r\n />\r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(SelectLanguage);\r\n","import React, { Component } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { Button } from \"@bbri/ui\";\r\nimport { TFunction } from 'i18next';\r\nimport \"./About.scss\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport ReactGA from \"react-ga\";\r\nimport { ReactGAUtils } from \"../utils/ReactGAUtils\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\nclass About extends Component {\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.formService = new FormService();\r\n }\r\n\r\n openAbout() {\r\n window.open(this.formService.t(this.t, 'url_about', false));\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n {\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'À propos'\r\n });\r\n this.openAbout();\r\n }}\r\n >\r\n \r\n \r\n {this.formService.t(this.t, \"button_about\", false, true)}\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 withTranslation()(About);\r\n","import React, { Component } from \"react\";\r\nimport Logo from \"../shared/components/Logo\";\r\nimport ToolLogo from \"../shared/components/ToolLogo\";\r\nimport SelectLanguage from \"../shared/components/SelectLanguage\";\r\nimport \"./MainLayout.scss\";\r\nimport About from '../shared/components/About';\r\n\r\ninterface Props {\r\n}\r\n\r\nclass MainLayout extends Component {\r\n render() {\r\n return (\r\n \r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {this.props.children}
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default MainLayout;\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { DataStorage, KEY_ACCESS_TOKEN } from '../../shared/constants';\r\nimport { LoginDTO } from '../dto/LoginDTO';\r\nimport { AuthUser } from '../models/AuthUser';\r\n\r\nexport class AuthService extends APIService {\r\n\r\n constructor() {\r\n super(false);\r\n }\r\n\r\n static get accessToken() {\r\n return DataStorage.getItem(KEY_ACCESS_TOKEN);\r\n }\r\n\r\n static get user(): AuthUser | null {\r\n const token = AuthService.accessToken;\r\n\r\n if (!token) {\r\n return null;\r\n }\r\n\r\n const data = AuthService.decodeJWT(token);\r\n if (!data) {\r\n return null;\r\n }\r\n return data;\r\n }\r\n\r\n static get isAuth() {\r\n const data = AuthService.user;\r\n if (!data) {\r\n return false;\r\n }\r\n\r\n if ((data.exp * 1000) > Date.now()) {\r\n return true;\r\n }\r\n DataStorage.removeItem(KEY_ACCESS_TOKEN);\r\n return false;\r\n }\r\n\r\n /**\r\n * Decode a JWT\r\n */\r\n static decodeJWT(token: string) {\r\n let output = token.split('.')[1].replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (output.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n output += \"==\";\r\n break;\r\n case 3:\r\n output += \"=\";\r\n break;\r\n default:\r\n return null;\r\n }\r\n\r\n try {\r\n return JSON.parse(decodeURIComponent(atob(output).replace(/(.)/g, function (m, p) {\r\n let code = p.charCodeAt(0).toString(16).toUpperCase();\r\n if (code.length < 2) {\r\n code = '0' + code;\r\n }\r\n return '%' + code;\r\n })));\r\n } catch {\r\n return null;\r\n }\r\n }\r\n\r\n /**\r\n * Login\r\n */\r\n async login(dto: LoginDTO) {\r\n return this.http.post(`/auth/login`, dto)\r\n .then((result: AxiosResponse<{ accessToken: string; }>) => {\r\n DataStorage.setItem(KEY_ACCESS_TOKEN, result.data.accessToken);\r\n return AuthService.user;\r\n })\r\n .catch(() => {\r\n return null;\r\n });\r\n }\r\n\r\n /**\r\n * Logout\r\n */\r\n logout() {\r\n DataStorage.removeItem(KEY_ACCESS_TOKEN);\r\n }\r\n}","export enum RoleEnum {\r\n USER = 'ROLE_USER',\r\n ADMIN = 'ROLE_ADMIN'\r\n}","import React from 'react';\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport { AuthService } from '../services/AuthService';\r\nimport { RoleEnum } from '../../shared/enum/RoleEnum';\r\n\r\ninterface Props {\r\n path: string;\r\n}\r\n\r\nexport default class AdminRoute extends React.Component {\r\n\r\n render() {\r\n const isAuth = AuthService.isAuth;\r\n let role: RoleEnum | undefined;\r\n\r\n if (isAuth) {\r\n role = AuthService.user?.role;\r\n }\r\n\r\n return (\r\n isAuth && role === RoleEnum.ADMIN\r\n ? this.props.children\r\n : }/>\r\n );\r\n }\r\n}","import React from 'react';\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport { AuthService } from '../services/AuthService';\r\n\r\ninterface Props {\r\n path: string;\r\n}\r\n\r\nexport default class PrivateRoute extends React.Component {\r\n\r\n render() {\r\n return (\r\n AuthService.isAuth\r\n ? this.props.children\r\n : }/>\r\n );\r\n }\r\n}\r\n","export class LoginDTO {\r\n\r\n constructor(\r\n readonly email: string,\r\n readonly password: string\r\n ) {\r\n }\r\n}","import { Button } from \"@bbri/ui\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { RoleEnum } from \"../../shared/enum/RoleEnum\";\r\nimport { AuthService } from \"../services/AuthService\";\r\nimport { LoginDTO } from \"../dto/LoginDTO\";\r\nimport { AuthUser } from \"../models/AuthUser\";\r\nimport { FormService } from '../../form/services/FormService';\r\n\r\ninterface Props extends WithTranslation {\r\n email: string;\r\n password: string;\r\n onLogin: (isAuth: boolean) => void;\r\n}\r\n\r\nfunction ButtonLogin(props: Props) {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const authService = new AuthService();\r\n const formService = new FormService();\r\n\r\n const handleClick = () => {\r\n const dto = new LoginDTO(props.email?.trim().toLowerCase(), props.password);\r\n\r\n authService.login(dto).then((user: AuthUser | null) => {\r\n if (!user) {\r\n props.onLogin(false);\r\n return;\r\n }\r\n\r\n props.onLogin(true);\r\n\r\n let from = { pathname: \"/\" };\r\n\r\n if (location.state) {\r\n from = (location.state as any).from;\r\n }\r\n\r\n // = Admin ?\r\n if (user.role === RoleEnum.ADMIN) {\r\n from = { pathname: \"/admin\" };\r\n }\r\n\r\n history.replace(from);\r\n });\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default withTranslation()(ButtonLogin);\r\n","import { Input } from \"@bbri/ui\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Messages } from \"primereact/messages\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport Logo from \"../shared/components/Logo\";\r\nimport SelectLanguage from \"../shared/components/SelectLanguage\";\r\nimport ToolLogo from \"../shared/components/ToolLogo\";\r\nimport { SeverityEnum } from \"../shared/enum/SeverityEnum\";\r\nimport ButtonLogin from \"./components/ButtonLogin\";\r\nimport \"./LoginPage.scss\";\r\nimport { FormService } from \"../form/services/FormService\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n email: string;\r\n password: string;\r\n}\r\n\r\nclass LoginPage extends React.Component {\r\n state: Readonly = {\r\n email: \"\",\r\n password: \"\",\r\n };\r\n private messages: Messages | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.messages = null;\r\n this.t = this.props.t;\r\n this.formService = new FormService();\r\n\r\n }\r\n\r\n handleLogin(isAuth: boolean) {\r\n if (!isAuth && this.messages) {\r\n this.messages.replace({\r\n severity: SeverityEnum.ERROR,\r\n closable: false,\r\n sticky: true,\r\n detail: this.formService.t(this.t, \"error_invalid_credentials\", false),\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n (this.messages = el)}/>\r\n \r\n
    \r\n \r\n this.setState({ email: (e.target as any).value })\r\n }\r\n />\r\n
    \r\n
    \r\n \r\n this.setState({ password: (e.target as any).value })\r\n }\r\n />\r\n
    \r\n \r\n this.handleLogin(e)}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(LoginPage);\r\n","import { Button } from \"@bbri/ui\";\r\nimport React, { useState } from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { AuthService } from \"../services/AuthService\";\r\nimport { LoginDTO } from \"../dto/LoginDTO\";\r\nimport { AuthUser } from \"../models/AuthUser\";\r\nimport { FormService } from '../../form/services/FormService';\r\nimport ReactGA from \"react-ga\";\r\nimport { ReactGAUtils } from \"../../shared/utils/ReactGAUtils\";\r\nimport { Send } from \"react-feather\";\r\n\r\ninterface Props extends WithTranslation {\r\n onLogin: (isAuth: boolean) => void;\r\n}\r\n\r\nfunction ButtonAnonymous(props: Props) {\r\n const history = useHistory();\r\n const location = useLocation();\r\n const authService = new AuthService();\r\n const formService = new FormService();\r\n\r\n const [clicked, setClicked] = useState(false);\r\n\r\n const handleClick = () => {\r\n const dto = new LoginDTO('anonymous@bbri.be', '');\r\n\r\n setClicked(true);\r\n\r\n authService.login(dto).then((user: AuthUser | null) => {\r\n if (!user) {\r\n props.onLogin(false);\r\n return;\r\n }\r\n\r\n ReactGA.event({\r\n category: ReactGAUtils.getCategory(),\r\n action: 'click',\r\n label: 'Démarrage'\r\n });\r\n\r\n props.onLogin(true);\r\n\r\n let from = { pathname: \"/\" };\r\n\r\n if (location.state) {\r\n from = (location.state as any).from;\r\n }\r\n\r\n history.replace(from);\r\n });\r\n };\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default withTranslation()(ButtonAnonymous);\r\n","import { TFunction } from \"i18next\";\r\nimport { Messages } from \"primereact/messages\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport Logo from \"../shared/components/Logo\";\r\nimport SelectLanguage from \"../shared/components/SelectLanguage\";\r\nimport ToolLogo from \"../shared/components/ToolLogo\";\r\nimport { SeverityEnum } from \"../shared/enum/SeverityEnum\";\r\nimport \"./AnonymousPage.scss\";\r\nimport { FormService } from \"../form/services/FormService\";\r\nimport ButtonAnonymous from \"./components/ButtonAnonymous\";\r\nimport { RichText } from \"prismic-reactjs\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n email: string;\r\n password: string;\r\n}\r\n\r\nclass AnonymousPage extends React.Component {\r\n state: Readonly = {\r\n email: \"\",\r\n password: \"\",\r\n };\r\n private messages: Messages | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.messages = null;\r\n this.t = this.props.t;\r\n this.formService = new FormService();\r\n const formService = new FormService();\r\n\r\n }\r\n\r\n handleLogin(isAuth: boolean) {\r\n if (!isAuth && this.messages) {\r\n this.messages.replace({\r\n severity: SeverityEnum.ERROR,\r\n closable: false,\r\n sticky: true,\r\n detail: this.formService.t(this.t, \"error_invalid_credentials\", false, true),\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n (this.messages = el)}/>\r\n
    \r\n

    {this.formService.checkIfValue(RichText.render(this.t(\"sub_title_app\", { returnObjects: true })), \"sub_title_app\")}

    \r\n

    \r\n {this.formService.t(this.t, \"introductive_text\", true)}\r\n

    \r\n
    \r\n this.handleLogin(e)}\r\n />\r\n
    \r\n
    \r\n
    \r\n \"partners\"/\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(AnonymousPage);\r\n","import jquery from \"jquery\";\r\n\r\nwindow.$ = window.jQuery = jquery;\r\n","import draw2d from \"draw2d\";\r\nconst draw2d2 = draw2d as any;\r\nconst TRANSITION_COLOR = 'black';\r\n\r\nexport class Transition extends draw2d2.Connection {\r\n NAME = 'Transition';\r\n\r\n label: any = null;\r\n\r\n constructor(sourceFigure?: any, targetFigure?: any) {\r\n super({\r\n router: new draw2d2.layout.connection.VertexRouter(),\r\n name: 'Transition',\r\n selectable: !sourceFigure,\r\n userData: {\r\n name: 'Transition'\r\n }\r\n });\r\n if(sourceFigure && targetFigure) {\r\n for (const port of sourceFigure.hybridPorts.data) {\r\n if(port.name === 'down') {\r\n this.setSource(port)\r\n }\r\n }\r\n for (const port of targetFigure.hybridPorts.data) {\r\n if(port.name === 'up') {\r\n this.setTarget(port)\r\n }\r\n }\r\n }\r\n\r\n // add arrow decorator\r\n let arrow = new draw2d2.decoration.connection.ArrowDecorator();\r\n arrow.setDimension(15, 10);\r\n arrow.setBackgroundColor('black');\r\n this.setTargetDecorator(arrow);\r\n this.setColor('black');\r\n\r\n this._displayInfo();\r\n }\r\n\r\n private _displayInfo() {\r\n\r\n // remove old table\r\n if (this.tableInfo) {\r\n this.remove(this.tableInfo);\r\n }\r\n\r\n this.tableInfo = new draw2d.shape.layout.TableLayout({\r\n stroke: 0,\r\n resizeable: true,\r\n bgColor: '#FFFFFF',\r\n });\r\n\r\n let header: any[] = [];\r\n\r\n header.push(this.label ?? this.NAME);\r\n\r\n this.tableInfo.addRow(...header);\r\n this.tableInfo.setPadding(0);\r\n\r\n //this.add(this.tableInfo, new decision-tree.layout.locator.PolylineMidpointLocator());\r\n }\r\n\r\n /**\r\n * Add decorator in the persistent attributes\r\n */\r\n getPersistentAttributes() {\r\n let memento = super.getPersistentAttributes();\r\n\r\n if (memento.source.decoration) {\r\n memento.source.decorator = {\r\n bgColor: this.sourceDecorator.backgroundColor.hashString,\r\n height: this.sourceDecorator.height,\r\n width: this.sourceDecorator.width\r\n };\r\n }\r\n\r\n if (memento.target.decoration) {\r\n memento.target.decorator = {\r\n bgColor: this.targetDecorator.backgroundColor.hashString,\r\n height: this.targetDecorator.height,\r\n width: this.targetDecorator.width\r\n };\r\n }\r\n\r\n return memento;\r\n }\r\n\r\n setPersistentAttributes(memento) {\r\n super.setPersistentAttributes(memento);\r\n this.attr({ color: TRANSITION_COLOR });\r\n if (this.sourceDecorator && memento.source.decorator) {\r\n this.sourceDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.sourceDecorator.setDimension(memento.source.decorator.width, memento.source.decorator.height);\r\n }\r\n\r\n if (this.targetDecorator && memento.target.decorator) {\r\n this.targetDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.targetDecorator.setDimension(memento.target.decorator.width, memento.target.decorator.height);\r\n }\r\n }\r\n\r\n setLabel(label: string): void {\r\n this.label = label;\r\n this._displayInfo();\r\n }\r\n}\r\n","/*\r\n * Pour les icônes, il faut aller chercher sur le site https://icones8.fr/\r\n */\r\n\r\nexport const NODE_LIST: any = {\r\n nodeAnswerList: {\r\n name: 'node_answer_list',\r\n defaultLabel: 'Node answer_list',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#0027e8\",\r\n icon: \"flow-chart\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"ffffff\"\r\n },\r\n nodeAnswerBool: {\r\n name: 'node_answer_bool',\r\n defaultLabel: 'Node answer_bool',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#85bdbe\",\r\n icon: \"checked-2--v1\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"000000\"\r\n },\r\n nodeComputation: {\r\n name: 'node_computation',\r\n defaultLabel: 'Node computation',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#ff9d00\",\r\n icon: \"calculator--v2\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"000000\"\r\n },\r\n nodeQuestionResult: {\r\n name: 'node_question_result',\r\n defaultLabel: 'Node question result',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#fff200\",\r\n icon: \"external-question-call-to-action-bearicons-glyph-bearicons\",\r\n iconStyle: \"external-bearicons-glyph-bearicons\",\r\n iconColor: \"000000\",\r\n className: 'square',\r\n end: true\r\n },\r\n nodeScript: {\r\n name: 'node_script',\r\n defaultLabel: 'Node script',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#632704\",\r\n icon: \"source-code\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"ffffff\"\r\n },\r\n nodeRange: {\r\n name: 'node_range',\r\n defaultLabel: 'Node range',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#44db42\",\r\n icon: \"more-or-equal\",\r\n iconStyle: \"ios-glyphs\",\r\n iconColor: \"000000\"\r\n },\r\n nodeResult: {\r\n name: 'node_result',\r\n defaultLabel: 'Node result',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#00f2ff\",\r\n icon: \"tags\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"000000\",\r\n className: 'square',\r\n end: true\r\n },\r\n nodeMin: {\r\n name: 'node_min',\r\n defaultLabel: 'Node min',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#9300bf\",\r\n icon: \"zoom-out--v1\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"ffffff\"\r\n },\r\n nodeMax: {\r\n name: 'node_max',\r\n defaultLabel: 'Node max',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#ff0000\",\r\n icon: \"zoom-in--v1\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"000000\"\r\n },\r\n nodeConcat: {\r\n name: 'node_concat',\r\n defaultLabel: 'Node concat',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#5a68ad\",\r\n icon: \"dashboard-layout\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"ffffff\"\r\n },\r\n nodeMultipleAnswerList: {\r\n name: 'node_multiple_answer_list',\r\n defaultLabel: 'Node multiple_answer_list',\r\n shapeBackgroundColor: \"rgba(209, 209, 209,1)\",\r\n iconBackgroundColor: \"#97bd5e\",\r\n icon: \"list\",\r\n iconStyle: \"material-outlined\",\r\n iconColor: \"ffffff\",\r\n },\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\ndeclare var window: any;\r\n\r\nexport class NodeAnswerList extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeAnswerList.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeAnswerList.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeAnswerList.defaultLabel,\r\n evaluatedElementRadio: null,\r\n evaluatedElement: null,\r\n branches: []\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeAnswerList.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeAnswerList.iconStyle}/96/${NODE_LIST.nodeAnswerList.iconColor}/${NODE_LIST.nodeAnswerList.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeAnswerBool extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeAnswerBool.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeAnswerBool.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeAnswerBool.defaultLabel,\r\n evaluatedElementRadio: null,\r\n evaluatedElement: null,\r\n branches: []\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeAnswerBool.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeAnswerBool.iconStyle}/96/${NODE_LIST.nodeAnswerBool.iconColor}/${NODE_LIST.nodeAnswerBool.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeRange extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeRange.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeRange.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeRange.defaultLabel,\r\n evaluatedElementRadio: null,\r\n evaluatedElement: null,\r\n branches: []\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeRange.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeRange.iconStyle}/96/${NODE_LIST.nodeRange.iconColor}/${NODE_LIST.nodeRange.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n upPort.setDraggable(false);\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n downPort.setDraggable(false);\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeComputation extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeComputation.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeComputation.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeComputation.defaultLabel,\r\n lhs: {},\r\n operator: null,\r\n rhs: {}\r\n\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.operator ?? this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeComputation.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeComputation.iconStyle}/96/${NODE_LIST.nodeComputation.iconColor}/${NODE_LIST.nodeComputation.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //remove ports\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setDraggable(false);\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setDraggable(false);\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeQuestionResult extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeQuestionResult.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeQuestionResult.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeQuestionResult.defaultLabel,\r\n question: null,\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Rectangle({\r\n bgColor: NODE_LIST.nodeQuestionResult.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeQuestionResult.iconStyle}/96/${NODE_LIST.nodeQuestionResult.iconColor}/${NODE_LIST.nodeQuestionResult.icon}.png`, height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeResult extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeResult.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeResult.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeResult.defaultLabel,\r\n value: {value: null, type: null}\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Rectangle({\r\n bgColor: NODE_LIST.nodeResult.iconBackgroundColor,\r\n width: 50,\r\n height: 50\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeResult.iconStyle}/96/${NODE_LIST.nodeResult.iconColor}/${NODE_LIST.nodeResult.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeMin extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeMin.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeMin.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeMin.defaultLabel,\r\n nodes: [],\r\n decisionTrees: [],\r\n scripts: [],\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeMin.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeMin.iconStyle}/96/${NODE_LIST.nodeMin.iconColor}/${NODE_LIST.nodeMin.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeMax extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeMax.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeMax.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeMax.defaultLabel,\r\n nodes: [],\r\n decisionTrees: [],\r\n scripts: [],\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeMax.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeMax.iconStyle}/96/${NODE_LIST.nodeMax.iconColor}/${NODE_LIST.nodeMax.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {ShapeError} from \"../models/shape-error\";\r\nimport {ShapeErrorTypes} from \"../enums/shape-error-types.enum\";\r\nconst draw2d2 = draw2d as any;\r\nconst TRANSITION_COLOR = '#ff0000';\r\n\r\nexport class TransitionLHS extends draw2d2.Connection {\r\n NAME = 'lhs';\r\n\r\n label: any = null;\r\n\r\n constructor(sourceFigure?: any, targetFigure?: any) {\r\n super({\r\n router: new draw2d2.layout.connection.VertexRouter(),\r\n name: 'lhs',\r\n selectable: false,\r\n userData: {\r\n name: 'lhs'\r\n }\r\n });\r\n\r\n if(sourceFigure && targetFigure) {\r\n for (const port of sourceFigure.hybridPorts.data) {\r\n if(port.name === 'down') {\r\n this.setSource(port)\r\n }\r\n }\r\n for (const port of targetFigure.hybridPorts.data) {\r\n if(port.name === 'up') {\r\n this.setTarget(port)\r\n }\r\n }\r\n }\r\n\r\n let bar = new draw2d2.decoration.connection.BarDecorator();\r\n bar.setDimension(50, 30);\r\n bar.setBackgroundColor('#ff0000');\r\n this.setSourceDecorator(bar);\r\n this.setColor('#ff0000');\r\n\r\n this._displayInfo();\r\n }\r\n\r\n private _displayInfo() {\r\n\r\n // remove old table\r\n if (this.tableInfo) {\r\n this.remove(this.tableInfo);\r\n }\r\n\r\n this.tableInfo = new draw2d.shape.layout.TableLayout({\r\n stroke: 0,\r\n resizeable: true,\r\n bgColor: '#FFFFFF',\r\n });\r\n\r\n let header: any[] = [];\r\n\r\n header.push(this.label ?? this.NAME);\r\n\r\n this.tableInfo.addRow(...header);\r\n this.tableInfo.setPadding(0);\r\n\r\n this.add(this.tableInfo, new draw2d.layout.locator.PolylineMidpointLocator());\r\n }\r\n\r\n /**\r\n * Add decorator in the persistent attributes\r\n */\r\n getPersistentAttributes() {\r\n let memento = super.getPersistentAttributes();\r\n\r\n if (memento.source.decoration) {\r\n memento.source.decorator = {\r\n bgColor: this.sourceDecorator.backgroundColor.hashString,\r\n height: this.sourceDecorator.height,\r\n width: this.sourceDecorator.width\r\n };\r\n }\r\n\r\n if (memento.target.decoration) {\r\n memento.target.decorator = {\r\n bgColor: this.targetDecorator.backgroundColor.hashString,\r\n height: this.targetDecorator.height,\r\n width: this.targetDecorator.width\r\n };\r\n }\r\n\r\n return memento;\r\n }\r\n\r\n setPersistentAttributes(memento) {\r\n super.setPersistentAttributes(memento);\r\n this.attr({ color: TRANSITION_COLOR });\r\n if (this.sourceDecorator && memento.source.decorator) {\r\n this.sourceDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.sourceDecorator.setDimension(memento.source.decorator.width, memento.source.decorator.height);\r\n }\r\n\r\n if (this.targetDecorator && memento.target.decorator) {\r\n this.targetDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.targetDecorator.setDimension(memento.target.decorator.width, memento.target.decorator.height);\r\n }\r\n }\r\n\r\n setLabel(label: string): void {\r\n this.label = label;\r\n this._displayInfo();\r\n }\r\n}\r\n","import draw2d from \"draw2d\";\r\nimport {ShapeError} from \"../models/shape-error\";\r\nimport {ShapeErrorTypes} from \"../enums/shape-error-types.enum\";\r\nconst draw2d2 = draw2d as any;\r\nconst TRANSITION_COLOR = '#6cc93a';\r\n\r\nexport class TransitionRHS extends draw2d2.Connection {\r\n NAME = 'rhs';\r\n\r\n label: any = null;\r\n\r\n constructor(sourceFigure?: any, targetFigure?: any) {\r\n super({\r\n router: new draw2d2.layout.connection.VertexRouter(),\r\n name: 'rhs',\r\n selectable: false,\r\n userData: {\r\n name: 'rhs'\r\n }\r\n });\r\n\r\n if(sourceFigure && targetFigure) {\r\n for (const port of sourceFigure.hybridPorts.data) {\r\n if(port.name === 'down') {\r\n this.setSource(port)\r\n }\r\n }\r\n for (const port of targetFigure.hybridPorts.data) {\r\n if(port.name === 'up') {\r\n this.setTarget(port)\r\n }\r\n }\r\n }\r\n\r\n // add arrow decorator\r\n let bar = new draw2d2.decoration.connection.BarDecorator();\r\n bar.setDimension(50, 30);\r\n bar.setBackgroundColor(TRANSITION_COLOR);\r\n this.setSourceDecorator(bar);\r\n this.setColor(TRANSITION_COLOR);\r\n\r\n this._displayInfo();\r\n }\r\n\r\n private _displayInfo() {\r\n\r\n // remove old table\r\n if (this.tableInfo) {\r\n this.remove(this.tableInfo);\r\n }\r\n\r\n this.tableInfo = new draw2d.shape.layout.TableLayout({\r\n stroke: 0,\r\n resizeable: true,\r\n bgColor: '#FFFFFF',\r\n });\r\n\r\n let header: any[] = [];\r\n\r\n header.push(this.label ?? this.NAME);\r\n\r\n this.tableInfo.addRow(...header);\r\n this.tableInfo.setPadding(0);\r\n\r\n this.add(this.tableInfo, new draw2d.layout.locator.PolylineMidpointLocator());\r\n }\r\n\r\n /**\r\n * Add decorator in the persistent attributes\r\n */\r\n getPersistentAttributes() {\r\n let memento = super.getPersistentAttributes();\r\n\r\n if (memento.source.decoration) {\r\n memento.source.decorator = {\r\n bgColor: this.sourceDecorator.backgroundColor.hashString,\r\n height: this.sourceDecorator.height,\r\n width: this.sourceDecorator.width\r\n };\r\n }\r\n\r\n if (memento.target.decoration) {\r\n memento.target.decorator = {\r\n bgColor: this.targetDecorator.backgroundColor.hashString,\r\n height: this.targetDecorator.height,\r\n width: this.targetDecorator.width\r\n };\r\n }\r\n\r\n return memento;\r\n }\r\n\r\n setPersistentAttributes(memento) {\r\n super.setPersistentAttributes(memento);\r\n this.attr({ color: TRANSITION_COLOR });\r\n if (this.sourceDecorator && memento.source.decorator) {\r\n this.sourceDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.sourceDecorator.setDimension(memento.source.decorator.width, memento.source.decorator.height);\r\n }\r\n\r\n if (this.targetDecorator && memento.target.decorator) {\r\n this.targetDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.targetDecorator.setDimension(memento.target.decorator.width, memento.target.decorator.height);\r\n }\r\n }\r\n\r\n setLabel(label: string): void {\r\n this.label = label;\r\n this._displayInfo();\r\n }\r\n}\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class NodeScript extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeScript.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeScript.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeScript.defaultLabel,\r\n question: null,\r\n script: null,\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeScript.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeScript.iconStyle}/96/${NODE_LIST.nodeScript.iconColor}/${NODE_LIST.nodeScript.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\ndeclare var window: any;\r\n\r\n\r\nexport class NodeConcat extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeConcat.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeConcat.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeConcat.defaultLabel,\r\n values: []\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeConcat.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeConcat.iconStyle}/96/${NODE_LIST.nodeConcat.iconColor}/${NODE_LIST.nodeConcat.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n upPort.setDraggable(false);\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n downPort.setDraggable(false);\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {NODE_LIST} from \"../enums/shape\";\r\n\r\nconst draw2d2 = draw2d as any;\r\ndeclare var window: any;\r\n\r\nexport class NodeMultipleAnswerList extends draw2d2.SVGFigure {\r\n\r\n NAME = NODE_LIST.nodeMultipleAnswerList.name;\r\n\r\n nodeLabel: any;\r\n label: any;\r\n\r\n\r\n constructor(x = 0, y = 0, name = '') {\r\n super({\r\n x,\r\n y,\r\n radius: 25,\r\n width: 250,\r\n height: 40,\r\n resizeable: false,\r\n bgColor: NODE_LIST.nodeMultipleAnswerList.shapeBackgroundColor,\r\n userData: {\r\n name: NODE_LIST.nodeMultipleAnswerList.defaultLabel,\r\n evaluatedElementRadio: null,\r\n evaluatedElement: null,\r\n branches: []\r\n }\r\n });\r\n\r\n this.label = new draw2d.shape.basic.Label({\r\n text: this.userData.name,\r\n resizeable: false,\r\n stroke: 0,\r\n selectable: false\r\n });\r\n this.add(this.label, new draw2d.layout.locator.CenterLocator());\r\n const circle = new draw2d.shape.basic.Circle({\r\n bgColor: NODE_LIST.nodeMultipleAnswerList.iconBackgroundColor,\r\n width: 50,\r\n height: 50,\r\n });\r\n var image = new draw2d.shape.basic.Image({\r\n path: `https://img.icons8.com/${NODE_LIST.nodeMultipleAnswerList.iconStyle}/96/${NODE_LIST.nodeMultipleAnswerList.iconColor}/${NODE_LIST.nodeMultipleAnswerList.icon}.png`,\r\n height: 35,\r\n width: 35\r\n });\r\n circle.add(image, new draw2d.layout.locator.CenterLocator());\r\n this.add(circle, new draw2d.layout.locator.XYRelPortLocator(0,-10));\r\n\r\n\r\n //Change port location\r\n this.outputPorts.data = [];\r\n const upPort = new draw2d.HybridPort();\r\n upPort.setName('up');\r\n const downPort = new draw2d.HybridPort();\r\n downPort.setName('down');\r\n this.addPort(upPort, new draw2d.layout.locator.TopLocator());\r\n this.addPort(downPort, new draw2d.layout.locator.BottomLocator());\r\n }\r\n\r\n setLabel(label: string): void {\r\n let text = `${label}`;\r\n\r\n this.label.attr({\r\n text: text,\r\n fontColor: '#000000', bold: false\r\n });\r\n }\r\n}\r\n\r\n","import draw2d from \"draw2d\";\r\nimport {ShapeError} from \"../models/shape-error\";\r\nimport {ShapeErrorTypes} from \"../enums/shape-error-types.enum\";\r\nconst draw2d2 = draw2d as any;\r\nconst TRANSITION_COLOR = '#e98b3a';\r\nconst NAME = 'concat_transition'\r\n\r\nexport class TransitionConcat extends draw2d2.Connection {\r\n\r\n NAME = 'transition_concat';\r\n\r\n label: any = null;\r\n\r\n constructor(sourceFigure?: any, targetFigure?: any) {\r\n super({\r\n router: new draw2d2.layout.connection.VertexRouter(),\r\n name: 'Transition',\r\n selectable: !sourceFigure,\r\n userData: {\r\n name: 'Transition'\r\n }\r\n });\r\n if(sourceFigure && targetFigure) {\r\n for (const port of sourceFigure.hybridPorts.data) {\r\n if(port.name === 'down') {\r\n this.setSource(port)\r\n }\r\n }\r\n for (const port of targetFigure.hybridPorts.data) {\r\n if(port.name === 'up') {\r\n this.setTarget(port)\r\n }\r\n }\r\n }\r\n\r\n // add bar decorator\r\n let bar = new draw2d2.decoration.connection.BarDecorator();\r\n bar.setDimension(50, 30);\r\n bar.setBackgroundColor(TRANSITION_COLOR);\r\n this.setSourceDecorator(bar);\r\n this.setColor(TRANSITION_COLOR);\r\n\r\n this._displayInfo();\r\n }\r\n\r\n private _displayInfo() {\r\n\r\n // remove old table\r\n if (this.tableInfo) {\r\n this.remove(this.tableInfo);\r\n }\r\n\r\n this.tableInfo = new draw2d.shape.layout.TableLayout({\r\n stroke: 0,\r\n resizeable: true,\r\n bgColor: '#FFFFFF',\r\n });\r\n\r\n let header: any[] = [];\r\n\r\n header.push(this.label ?? this.NAME);\r\n\r\n this.tableInfo.addRow(...header);\r\n this.tableInfo.setPadding(0);\r\n\r\n //this.add(this.tableInfo, new decision-tree.layout.locator.PolylineMidpointLocator());\r\n }\r\n\r\n /**\r\n * Add decorator in the persistent attributes\r\n */\r\n getPersistentAttributes() {\r\n let memento = super.getPersistentAttributes();\r\n\r\n if (memento.source.decoration) {\r\n memento.source.decorator = {\r\n bgColor: this.sourceDecorator.backgroundColor.hashString,\r\n height: this.sourceDecorator.height,\r\n width: this.sourceDecorator.width,\r\n };\r\n }\r\n\r\n if (memento.target.decoration) {\r\n memento.target.decorator = {\r\n bgColor: this.targetDecorator.backgroundColor.hashString,\r\n height: this.targetDecorator.height,\r\n width: this.targetDecorator.width,\r\n };\r\n }\r\n\r\n return memento;\r\n }\r\n\r\n setPersistentAttributes(memento) {\r\n super.setPersistentAttributes(memento);\r\n this.attr({ color: TRANSITION_COLOR });\r\n if (this.sourceDecorator && memento.source.decorator) {\r\n this.sourceDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.sourceDecorator.setDimension(memento.source.decorator.width, memento.source.decorator.height);\r\n }\r\n\r\n if (this.targetDecorator && memento.target.decorator) {\r\n this.targetDecorator.setBackgroundColor(TRANSITION_COLOR);\r\n this.targetDecorator.setDimension(memento.target.decorator.width, memento.target.decorator.height);\r\n }\r\n }\r\n\r\n setLabel(label: string): void {\r\n this.label = label;\r\n this._displayInfo();\r\n }\r\n}\r\n","import \"./import-jquery\";\r\nimport \"jquery-ui-bundle\";\r\nimport \"jquery-ui-bundle/jquery-ui.css\";\r\nimport draw2d from \"draw2d\";\r\nimport {Transition} from \"./shapes/transition\";\r\nimport {Toast} from \"primereact/toast\";\r\nimport {NodeAnswerList} from \"./shapes/node-answer-list\";\r\nimport canvas from \"./canvas\";\r\nimport {NodeAnswerBool} from \"./shapes/node-answer-bool\";\r\nimport {NodeRange} from \"./shapes/node-range\";\r\nimport {NodeComputation} from \"./shapes/node-computation\";\r\nimport {NodeQuestionResult} from \"./shapes/node-question-result\";\r\nimport {NodeResult} from \"./shapes/node-result\";\r\nimport {NodeMin} from \"./shapes/node-min\";\r\nimport {NodeMax} from \"./shapes/node-max\";\r\nimport {TransitionLHS} from \"./shapes/transition-lhs\";\r\nimport {TransitionRHS} from \"./shapes/transition-rhs\";\r\nimport {NodeScript} from \"./shapes/node-script\";\r\nimport {NodeConcat} from \"./shapes/node-concat\";\r\nimport {NodeMultipleAnswerList} from \"./shapes/node-multiple-answer-list\";\r\nimport {TransitionConcat} from \"./shapes/transition-concat\";\r\n\r\nexport class Reader extends draw2d.io.json.Reader {\r\n\r\n canvas: any\r\n\r\n constructor(canvas ?: any) {\r\n super();\r\n this.canvas = canvas;\r\n }\r\n\r\n loadJSONAndSchema(canvas: any, json: string) {\r\n super.unmarshal(canvas, json);\r\n }\r\n\r\n /**\r\n * Override of the decision-tree method -> This method tells decision-tree to use our custom classes for given figures.\r\n * @param {string} type - the NAME of the figure (see ./enums/shape-names.enum.ts)\r\n * @returns - the created figure.\r\n */\r\n createFigureFromType(type: string) {\r\n switch (type) {\r\n case 'Transition':\r\n return new Transition();\r\n case 'node':\r\n return new NodeAnswerList();\r\n case 'node_answer_bool':\r\n return new NodeAnswerBool();\r\n case 'node_answer_list':\r\n return new NodeAnswerList();\r\n case 'node_min':\r\n return new NodeMin();\r\n case 'node_max':\r\n return new NodeMax();\r\n case 'node_range':\r\n return new NodeRange();\r\n case 'node_computation':\r\n return new NodeComputation();\r\n case 'node_question_result':\r\n return new NodeQuestionResult();\r\n case 'node_result':\r\n return new NodeResult();\r\n case 'lhs':\r\n return new TransitionLHS();\r\n case 'rhs':\r\n return new TransitionRHS();\r\n case 'node_script':\r\n return new NodeScript();\r\n case 'node_concat':\r\n return new NodeConcat();\r\n case 'node_multiple_answer_list':\r\n return new NodeMultipleAnswerList();\r\n case 'transition_concat':\r\n return new TransitionConcat();\r\n default:\r\n return super.createFigureFromType(type);\r\n }\r\n }\r\n\r\n}\r\n","import draw2d from \"draw2d\";\r\nimport {Transition} from \"../shapes/transition\";\r\nconst draw2d2 = draw2d as any;\r\n\r\nexport class ConnectionCreatePolicy extends draw2d2.policy.connection.DragConnectionCreatePolicy {\r\n NAME = 'ConnectionCreatePolicy';\r\n canvas: any;\r\n\r\n constructor(canvas?: any) {\r\n super();\r\n this.canvas = canvas;\r\n }\r\n\r\n createConnection(){\r\n return new Transition();\r\n }\r\n}\r\n","import {AxiosResponse} from 'axios';\r\nimport {APIService} from \"../../shared/services/APIService\";\r\nimport {DecisionTree} from \"../../admin/models/DecisionTree\";\r\nimport {Schema} from \"../models/Schema\";\r\n\r\nexport class DecisionTreeEditorService extends APIService {\r\n\r\n /**\r\n * save decision trees schema\r\n */\r\n save(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/editor-decision-trees/upload`, formData);\r\n }\r\n\r\n /**\r\n * Get many decision trees\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/editor-decision-trees');\r\n }\r\n\r\n /**\r\n * Download a decision tree by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/editor-decision-trees/${name}/download`, {responseType: 'blob'});\r\n }\r\n\r\n /**\r\n * Upload many decision trees\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/editor-decision-trees/upload`, formData);\r\n }\r\n\r\n /**\r\n * Delete one decision tree\r\n */\r\n deleteOne(key: string) {\r\n return this.http.delete(`/editor-decision-trees/${key}`);\r\n }\r\n\r\n saveSchema(schema: Schema): Promise> {\r\n return this.http.put('/editor-decision-trees/upload', schema);\r\n }\r\n\r\n getOne(key: string): Promise> {\r\n return this.http.get(`/editor-decision-trees/${key}`);\r\n }\r\n\r\n findAll(): Promise> {\r\n return this.http.get(`/editor-decision-trees`);\r\n }\r\n\r\n updateSchemaName(schema: Schema | null, currentTreeName: string | null) {\r\n return this.http.put(`/editor-decision-trees/update-name/${currentTreeName}`, schema);\r\n }\r\n\r\n createSchema(datas: { name: any; key: any }): Promise> {\r\n return this.http.post('/editor-decision-trees', datas);\r\n }\r\n\r\n getBetonJSON(schema: Schema): Promise> {\r\n return this.http.get(`/decision-trees/get-beton-json/${schema.key}`);\r\n }\r\n}\r\n","export class Schema {\r\n constructor(\r\n readonly key: string,\r\n readonly name: string,\r\n readonly json: string,\r\n readonly isEditor?: boolean\r\n ) {\r\n }\r\n}\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport \"./topbar.scss\";\r\nimport draw2d from \"draw2d\";\r\nimport { FormService } from \"../../../form/services/FormService\";\r\nimport { DecisionTreeEditorService } from \"../../services/DecisionTreeEditorService\";\r\nimport { SeverityEnum } from \"../../../shared/enum/SeverityEnum\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { Schema } from \"../../models/Schema\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Input } from \"@bbri/ui\";\r\nimport { InputText } from \"primereact/inputtext\";\r\n\r\ninterface States {\r\n displayDialog: boolean;\r\n schema: Schema | null;\r\n currentTreeName: any;\r\n currentKeyName: string | null;\r\n showConfirmDeleteDialog: boolean;\r\n showJSONDialog: boolean;\r\n currentZoom: number;\r\n currentBetonJSON: string | null;\r\n lockSelect: boolean;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n view: any;\r\n schema: Schema | null;\r\n refreshSchemas: (newSchemaName: string, key: string) => void;\r\n setChanges: (changes: boolean) => void;\r\n changes: boolean;\r\n hideSidebar: () => void;\r\n resetSidebar: () => void;\r\n currenToolsName: string;\r\n setCurrentToolsName: (currentToolsName: string) => void;\r\n canvas: any;\r\n changeSchemaName: (name) => void;\r\n refreshSchemasList: () => void;\r\n lockSelect: (lockSelect: boolean) => void;\r\n}\r\n\r\nclass Topbar extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n private decisionTreeEditorService: DecisionTreeEditorService;\r\n private toast: Toast | null;\r\n private leftContents: any;\r\n private rightContents: any;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.decisionTreeEditorService = new DecisionTreeEditorService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.state = {\r\n displayDialog: false,\r\n schema: this.props.schema,\r\n currentTreeName: null,\r\n currentKeyName: null,\r\n showConfirmDeleteDialog: false,\r\n showJSONDialog: false,\r\n currentZoom: 1.5,\r\n currentBetonJSON: null,\r\n lockSelect: false\r\n\r\n };\r\n }\r\n\r\n saveSchema() {\r\n let nbrRootNodes = 0;\r\n for (const figure of this.props.canvas.figures.data) {\r\n if (figure.userData.root) {\r\n nbrRootNodes++;\r\n }\r\n }\r\n if (nbrRootNodes > 1) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `The schema has more than one root node!`,\r\n });\r\n return;\r\n }\r\n const writer = new draw2d.io.json.Writer();\r\n writer.marshal(this.props.view, json => {\r\n if (this.props.schema) {\r\n let hasRootNode = false;\r\n for (const figure of this.props.canvas.figures.data) {\r\n if (figure.userData.root) {\r\n hasRootNode = true;\r\n }\r\n }\r\n if (!hasRootNode) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `The schema doesn't have a root node!`,\r\n });\r\n return;\r\n }\r\n\r\n const schema = new Schema(this.props.schema.key, this.props.schema.name, JSON.stringify(json));\r\n this.decisionTreeEditorService.saveSchema(schema).then(() => {\r\n this.props.setChanges(false);\r\n this.props.refreshSchemasList();\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Schema saved',\r\n });\r\n }).catch((e) => {\r\n if (e.response.status === 400) {\r\n this.toast?.show({\r\n severity: SeverityEnum.WARN,\r\n detail: `Schema has been saved but decision tree is invalid: ${e.response.data.error ?? '/'} `,\r\n });\r\n this.props.setChanges(false);\r\n }\r\n else {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Error occurred while saving schema: ${e.response.data.error?.message ?? 'Error not communicated'}`,\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: 'Select a schema first !',\r\n });\r\n }\r\n });\r\n }\r\n\r\n getBetonJSON() {\r\n this.props.hideSidebar();\r\n const writer = new draw2d.io.json.Writer();\r\n writer.marshal(this.props.view, json => {\r\n if (this.props.schema) {\r\n const schema = new Schema(this.props.schema.key, this.props.schema.name, JSON.stringify(json));\r\n this.decisionTreeEditorService.getBetonJSON(schema).then((res: any) => {\r\n this.setState({\r\n showJSONDialog: true,\r\n currentBetonJSON: JSON.stringify(res.data.tree, null, 4)\r\n });\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _editSchemaName() {\r\n this.setState({\r\n displayDialog: true\r\n });\r\n }\r\n\r\n private _renderDialogFooter() {\r\n return (\r\n
    \r\n this.setState({ displayDialog: false })}\r\n className=\"p-mb-2\"\r\n />\r\n this._updateSchemaName()}\r\n className=\"p-mb-2\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _renderDeleteFooter() {\r\n return (\r\n
    \r\n {\r\n this.props.hideSidebar();\r\n this.setState({ showConfirmDeleteDialog: false });\r\n }}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n this._deleteDecisionTree()}\r\n className=\"p-button-danger\"\r\n style={{ backgroundColor: '#e98b3a', borderColor: '#e98b3a' }}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _updateSchemaName() {\r\n if (!this.state.currentTreeName) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: \"The name hasn’t been changed!\",\r\n });\r\n return;\r\n }\r\n if (this.props.schema) {\r\n this.decisionTreeEditorService.updateSchemaName(this.props.schema, this.state.currentTreeName).then((res) => {\r\n if (res) {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'The schema name has been updated!',\r\n });\r\n this.setState({\r\n displayDialog: false\r\n });\r\n this.props.refreshSchemas(this.state.currentTreeName as string, this.props.schema?.key as string);\r\n }\r\n });\r\n }\r\n }\r\n\r\n private _deleteDecisionTree() {\r\n if (this.props.schema) {\r\n this.decisionTreeEditorService.deleteOne(this.props.schema.key).then((res) => {\r\n if (res) {\r\n this.setState({\r\n showConfirmDeleteDialog: false\r\n });\r\n this.props.refreshSchemas('', '');\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Schema deleted',\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n changeZoom(factor: number) {\r\n if (this.state.currentZoom + factor > 0.1 && this.state.currentZoom + factor < 5) {\r\n this.props.view.setZoom(this.state.currentZoom + factor, true);\r\n this.setState({\r\n currentZoom: this.state.currentZoom + factor\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Reset zoom to factor 1\r\n */\r\n resetZoom() {\r\n this.props.view.setZoom(1.5, true);\r\n this.setState({\r\n currentZoom: 1.5\r\n });\r\n }\r\n\r\n render() {\r\n\r\n this.leftContents = (\r\n \r\n

    Decision tree editor

    \r\n
    \r\n
    \r\n {\r\n this.props.changeSchemaName(e.currentTarget.value);\r\n }}\r\n />\r\n

    {this.props.schema?.key ? `<${this.props.schema.key}>` : ''}

    \r\n
    \r\n
    \r\n
    \r\n );\r\n this.rightContents = (\r\n
    \r\n
    \r\n

    {this.props.currenToolsName}

    \r\n
    \r\n \r\n
    \r\n );\r\n\r\n let schemaName;\r\n if (!this.props.schema) {\r\n schemaName = (\r\n
    \r\n \r\n {\r\n this.setState({\r\n currentKeyName: e.target.value\r\n });\r\n }}\r\n />\r\n
    );\r\n }\r\n\r\n return (\r\n
    \r\n (this.toast = el)}/>\r\n \r\n\r\n\r\n {\r\n this.setState({\r\n displayDialog: false\r\n }, () => {\r\n this.props.resetSidebar();\r\n });\r\n }}>\r\n \r\n {\r\n this.setState({\r\n currentTreeName: e.target.value\r\n });\r\n }}\r\n />\r\n {schemaName}\r\n \r\n this.setState({ showConfirmDeleteDialog: false }, () => {\r\n this.props.resetSidebar();\r\n })}\r\n header=\"Confirmation\"\r\n footer={this._renderDeleteFooter()}\r\n >\r\n
    \r\n \r\n Do you want to delete this decision tree ?\r\n
    \r\n \r\n {\r\n this.setState({\r\n showJSONDialog: false\r\n }, () => {\r\n this.props.resetSidebar();\r\n });\r\n }}\r\n header={this.props.schema?.key ?? ''}\r\n footer={\r\n
    \r\n {\r\n prompt(\"Copy to clipboard: Ctrl+C, Enter\", this.state.currentBetonJSON ?? '');\r\n }}\r\n className=\"p-button-danger\"\r\n />\r\n
    \r\n }\r\n visible={this.state.showJSONDialog}\r\n style={{ width: '1000px', height: '500px' }}\r\n >\r\n
    {this.state.currentBetonJSON}
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(Topbar);\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { Schema } from \"../../models/Schema\";\r\nimport React from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { DecisionTreeEditorService } from \"../../services/DecisionTreeEditorService\";\r\nimport { Menu } from \"primereact/menu\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport \"./sidebar.scss\";\r\nimport { SeverityEnum } from \"../../../shared/enum/SeverityEnum\";\r\nimport draw2d from \"draw2d\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { NODE_LIST } from \"../enums/shape\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\n\r\ninterface States {\r\n schemas: Schema[] | null;\r\n schemasItems: any[];\r\n currentSchema: Schema | null;\r\n isSchemasRefreshing: boolean;\r\n showNotSaveDialog: boolean;\r\n menuFilter: string;\r\n loading: boolean;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n onClick: any;\r\n refreshSchemas: boolean;\r\n newTree: () => void;\r\n resetRefreshSchemas: () => void;\r\n currentSchemaName: string | null;\r\n currentKeyName: string | null;\r\n changes: boolean;\r\n resetChanges: () => void;\r\n view: any;\r\n schema: Schema | null;\r\n setChanges: (changes: boolean) => void;\r\n setCurrentToolsName: (currentToolsName: string) => void;\r\n}\r\n\r\nclass Sidebar extends React.Component {\r\n\r\n private t: TFunction;\r\n private decisionTreeEditorService: DecisionTreeEditorService;\r\n private schemaMenu: any;\r\n private toast: Toast | null;\r\n private schemas: any = [];\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n\r\n this.decisionTreeEditorService = new DecisionTreeEditorService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.state = {\r\n schemas: null,\r\n schemasItems: [],\r\n currentSchema: null,\r\n isSchemasRefreshing: false,\r\n showNotSaveDialog: false,\r\n menuFilter: '',\r\n loading: false\r\n };\r\n\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.setState({\r\n loading: true\r\n }, () => {\r\n this.decisionTreeEditorService.findAll().then((res) => {\r\n this.setState({\r\n schemas: res.data,\r\n loading: false\r\n });\r\n this._refreshMenuItems();\r\n });\r\n });\r\n\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n\r\n const schema = {\r\n name: nextProps.currentSchemaName,\r\n key: nextProps.currentKeyName,\r\n json: this.state.currentSchema?.json\r\n };\r\n if (nextProps.refreshSchemas) {\r\n // @ts-ignore\r\n this.setState({\r\n isSchemasRefreshing: true,\r\n currentSchema: this.props.schema\r\n });\r\n this._refreshMenuItemsWithAPI();\r\n }\r\n }\r\n\r\n private _refreshMenuItemsWithAPI() {\r\n this.decisionTreeEditorService.findAll().then((res) => {\r\n this.setState({\r\n schemas: res.data\r\n });\r\n this._refreshMenuItems();\r\n });\r\n }\r\n\r\n private _refreshMenuItems() {\r\n this.state.schemasItems.splice(0, this.state.schemasItems.length);\r\n if (this.state.schemas) {\r\n const values: any[] = [];\r\n for (const schema of this.state.schemas) {\r\n values.push({\r\n label: schema.name,\r\n schema,\r\n disabled: (!schema.isEditor || schema.key === this.state.currentSchema?.key),\r\n style: {\r\n backgroundColor: (schema.key === this.state.currentSchema?.key) ? '#85bdbe' : ''\r\n },\r\n command: (e) => {\r\n if (this.props.changes) {\r\n this.schemaMenu = e;\r\n this.setState({\r\n showNotSaveDialog: true\r\n });\r\n }\r\n else {\r\n this.setState({\r\n currentSchema: e.item.schema\r\n }, () => {\r\n this._refreshMenuItems();\r\n this.props.onClick(e.item.schema);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n this.schemas = values;\r\n this.setState({\r\n schemasItems: values\r\n });\r\n if (this.state.isSchemasRefreshing) {\r\n this.props.resetRefreshSchemas();\r\n this.setState({\r\n isSchemasRefreshing: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n private _newTree() {\r\n this.props.newTree();\r\n }\r\n\r\n saveSchema() {\r\n const writer = new draw2d.io.json.Writer();\r\n writer.marshal(this.props.view, json => {\r\n if (this.props.schema) {\r\n const schema = new Schema(this.props.schema.key, this.props.schema.name, JSON.stringify(json));\r\n this.decisionTreeEditorService.saveSchema(schema).then(() => {\r\n this.props.setChanges(false);\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Schema saved',\r\n });\r\n }).catch((e) => {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Decision tree is invalid: ${e.response.data.error?.message ?? 'Error not communicated'}`,\r\n });\r\n });\r\n }\r\n else {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: 'Please select a schema',\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _renderNotSaveFooter() {\r\n return (\r\n
    \r\n this.setState({ showNotSaveDialog: false })}\r\n className=\"p-button-outlined p-mb-2\"\r\n />\r\n {\r\n this.saveSchema();\r\n this.setState({ showNotSaveDialog: false });\r\n this.setState({\r\n currentSchema: this.schemaMenu.item.schema\r\n }, () => {\r\n this._refreshMenuItems();\r\n this.props.onClick(this.schemaMenu.item.schema);\r\n });\r\n }}\r\n className=\"p-mb-2\"\r\n />\r\n {\r\n this.props.resetChanges();\r\n this.setState({ showNotSaveDialog: false });\r\n this.setState({\r\n currentSchema: this.schemaMenu.item.schema\r\n }, () => {\r\n this._refreshMenuItems();\r\n this.props.onClick(this.schemaMenu.item.schema);\r\n });\r\n }}\r\n className=\"p-button-danger p-mb-2\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _getNodeList(end: boolean) {\r\n let content: any[] = [];\r\n for (const i in NODE_LIST) {\r\n if (end) {\r\n if (NODE_LIST[i].end) {\r\n content.push(\r\n
    this.props.setCurrentToolsName('Node: ' + NODE_LIST[i].name)}\r\n onMouseLeave={() => this.props.setCurrentToolsName('')}\r\n title={NODE_LIST[i].defaultLabel}\r\n data-shape={NODE_LIST[i].name}\r\n style={{ backgroundColor: NODE_LIST[i].iconBackgroundColor }}>\r\n \r\n
    \r\n );\r\n }\r\n }\r\n else {\r\n if (!NODE_LIST[i].end) {\r\n content.push(\r\n
    this.props.setCurrentToolsName('Node: ' + NODE_LIST[i].name)}\r\n onMouseLeave={() => this.props.setCurrentToolsName('')}\r\n title={NODE_LIST[i].defaultLabel}\r\n data-shape={NODE_LIST[i].name}\r\n style={{ backgroundColor: NODE_LIST[i].iconBackgroundColor }}>\r\n \r\n
    \r\n );\r\n }\r\n }\r\n }\r\n return content;\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n (this.toast = el)}/>\r\n
    \r\n {\r\n this.setState({\r\n menuFilter: e.target.value\r\n });\r\n if (e.target.value) {\r\n const schemas = this.schemas;\r\n const schemasFiltered: any = [];\r\n for (const schema of schemas) {\r\n if (schema.label.includes(e.target.value)) {\r\n schemasFiltered.push(schema);\r\n }\r\n }\r\n this.setState({\r\n schemasItems: schemasFiltered\r\n });\r\n }\r\n else {\r\n this._refreshMenuItems();\r\n }\r\n }}\r\n />\r\n \r\n List of trees\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    NODES

    \r\n
    \r\n {\r\n this._getNodeList(false)\r\n }\r\n
    \r\n
    \r\n
    \r\n

    END NODES

    \r\n
    \r\n {\r\n this._getNodeList(true)\r\n }\r\n
    \r\n\r\n
    \r\n
    \r\n (\r\n
    \r\n {\r\n this._newTree();\r\n }}\r\n className=\"p-button-primary\"/>\r\n
    \r\n )}\r\n />\r\n this.setState({ showNotSaveDialog: false })}\r\n header=\"Changes detected !\"\r\n footer={this._renderNotSaveFooter()}\r\n >\r\n
    \r\n \r\n Please choose an action !\r\n
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(Sidebar);\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { ScriptDTO } from '../dto/ScriptDTO';\r\nimport {Script} from \"../models/Script\";\r\n\r\nexport class AdminScriptsService extends APIService {\r\n\r\n /**\r\n * Get many scripts\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/scripts');\r\n }\r\n\r\n /**\r\n * Get the text of a script by name\r\n */\r\n getOne(name: string): Promise>{\r\n return this.http.get(`/scripts/${name}/text`);\r\n }\r\n \r\n /**\r\n * Download a script by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/scripts/${name}/download`, { responseType: 'blob' });\r\n }\r\n\r\n\r\n /**\r\n * Upload many scripts\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/scripts/upload`, formData);\r\n }\r\n\r\n /**\r\n * Upload one script\r\n */\r\n uploadOne(dto: ScriptDTO) {\r\n return this.http.post(`/scripts/uploadone`, dto);\r\n }\r\n\r\n /**\r\n * Delete one script\r\n */\r\n deleteOne(name: string) {\r\n return this.http.delete(`/scripts/${name}`);\r\n }\r\n}\r\n","import React, { Component } from 'react';\r\nimport \"./import-jquery\";\r\nimport \"jquery-ui-bundle\";\r\nimport \"jquery-ui-bundle/jquery-ui.css\";\r\nimport \"./style.scss\";\r\nimport draw2d from \"draw2d\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { Reader } from \"./reader\";\r\nimport { NodeAnswerList } from \"./shapes/node-answer-list\";\r\nimport { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { TFunction } from \"i18next\";\r\nimport { ConnectionCreatePolicy } from \"./policies/connection-create-policy\";\r\nimport Topbar from \"./components/topbar\";\r\nimport { DecisionTreeEditorService } from \"../services/DecisionTreeEditorService\";\r\nimport { Schema } from \"../models/Schema\";\r\nimport Sidebar from \"./components/sidebar\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { NodeAnswerBool } from \"./shapes/node-answer-bool\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { DecisionTreeService } from \"../../form/services/DecisionTreeService\";\r\nimport { NodeRange } from \"./shapes/node-range\";\r\nimport { NodeComputation } from \"./shapes/node-computation\";\r\nimport { NodeQuestionResult } from \"./shapes/node-question-result\";\r\nimport { MultiSelect } from \"primereact/multiselect\";\r\nimport { NodeResult } from \"./shapes/node-result\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { QuestionType } from \"../../form/enum/QuestionType\";\r\nimport { TriStateCheckbox } from \"primereact/tristatecheckbox\";\r\nimport { OperatorType } from \"../../form/enum/OperatorType\";\r\nimport { NodeMin } from \"./shapes/node-min\";\r\nimport { NodeMax } from \"./shapes/node-max\";\r\nimport { TransitionLHS } from \"./shapes/transition-lhs\";\r\nimport { TransitionRHS } from \"./shapes/transition-rhs\";\r\nimport { DataTable } from \"primereact/components/datatable/DataTable\";\r\nimport { Column } from \"primereact/components/column/Column\";\r\nimport { InputNumber } from \"primereact/inputnumber\";\r\nimport { NodeScript } from \"./shapes/node-script\";\r\nimport { Script } from \"../models/Script\";\r\nimport { AdminScriptsService } from \"../services/AdminScriptsService\";\r\nimport { NodeConcat } from \"./shapes/node-concat\";\r\nimport { Transition } from \"./shapes/transition\";\r\nimport { NodeMultipleAnswerList } from \"./shapes/node-multiple-answer-list\";\r\nimport { NODE_LIST } from \"./enums/shape\";\r\nimport { TransitionConcat } from \"./shapes/transition-concat\";\r\n\r\nconst draw2d2 = draw2d as any;\r\n\r\n\r\ndeclare var window: any;\r\n\r\nwindow.draw2d = draw2d;\r\nwindow.allNodes = [];\r\n\r\ninterface States {\r\n selectedShape: any;\r\n nodeType: string;\r\n selection: any;\r\n currentName: any;\r\n canvas: any;\r\n schema: Schema | null;\r\n showEditPanel: boolean;\r\n schemas: Schema[];\r\n showNewTreeDialog: boolean;\r\n refreshSchemasList: boolean;\r\n currentKey: any;\r\n changes: boolean;\r\n currentZoom: number;\r\n questionList: { type: string, name: string, label: string, values: string[] }[];\r\n questionListAnswerList: { type: string, name: string, label: string, values: string[] }[];\r\n questionListAnswerBool: { name: string, label: string, values: string[] }[];\r\n questionListResult: { name: string, label: string, values: string[] }[];\r\n decisionTreeList: string[];\r\n refreshScriptsState: boolean;\r\n scriptList: Script[];\r\n currentToolsName: string;\r\n}\r\n\r\ninterface Props extends WithTranslation, RouteComponentProps {\r\n}\r\n\r\nclass Canvas extends Component {\r\n\r\n\r\n static ZOOM_PERCENT = 10;\r\n zoomLevel: number;\r\n private toast: Toast | null;\r\n private canvas: any;\r\n private selection: any;\r\n private t: TFunction;\r\n private decisionTreeEditorService: DecisionTreeEditorService;\r\n private formService: FormService;\r\n private decisionTreeService: DecisionTreeService;\r\n private scriptService: AdminScriptsService;\r\n\r\n constructor(props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.zoomLevel = 100;\r\n this.decisionTreeEditorService = new DecisionTreeEditorService();\r\n this.formService = new FormService();\r\n this.decisionTreeService = new DecisionTreeService();\r\n this.scriptService = new AdminScriptsService();\r\n this.state = {\r\n selectedShape: null,\r\n nodeType: '',\r\n selection: null,\r\n currentName: null,\r\n canvas: null,\r\n schema: null,\r\n showEditPanel: false,\r\n schemas: [],\r\n showNewTreeDialog: false,\r\n refreshSchemasList: false,\r\n currentKey: null,\r\n changes: false,\r\n currentZoom: 1.5,\r\n decisionTreeList: [],\r\n questionList: [],\r\n questionListAnswerList: [],\r\n questionListAnswerBool: [],\r\n questionListResult: [],\r\n refreshScriptsState: false,\r\n scriptList: [],\r\n currentToolsName: ''\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this._getDatas();\r\n\r\n this._draw();\r\n\r\n }\r\n\r\n private _draw() {\r\n // setup canvas and toolbar\r\n this.canvas = new draw2d.Canvas(\"canvas\");\r\n\r\n this.setState({\r\n canvas: this.canvas\r\n });\r\n\r\n this._setupCanvas();\r\n this._setupOnDropAction();\r\n\r\n this.decisionTreeEditorService.findAll().then((res) => {\r\n if (res) {\r\n this.setState({\r\n schemas: res.data\r\n });\r\n }\r\n });\r\n\r\n };\r\n\r\n private _loadSchema(schema: Schema) {\r\n this.setState({\r\n schema\r\n });\r\n\r\n this.state.canvas.clear();\r\n\r\n this.decisionTreeEditorService.getOne(schema.key).then((res) => {\r\n console.clear();\r\n this.setState({\r\n schema: res.data\r\n });\r\n // unmarshal the JSON document into the canvas\r\n // (load)\r\n const reader = new Reader(this.canvas);\r\n if (res.data.json) {\r\n reader.loadJSONAndSchema(this.canvas, res.data.json);\r\n }\r\n\r\n for (const figure of this.canvas.getFigures().data) {\r\n this._updateFigureName(figure);\r\n\r\n }\r\n\r\n for (const line of this.canvas.getLines().data) {\r\n this._updateLineName(line);\r\n\r\n }\r\n\r\n this.setState({\r\n canvas: this.canvas\r\n }, () => {\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.userData.root) {\r\n figure.setBackgroundColor('#fcdb03');\r\n }\r\n if (figure.NAME === NODE_LIST.nodeAnswerList.name || figure.NAME === NODE_LIST.nodeAnswerBool.name) {\r\n for (const branche of figure.userData.branches) {\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n switch (branche.answer) {\r\n case true:\r\n this._setLineLabel(line, 'true');\r\n break;\r\n case false:\r\n this._setLineLabel(line, 'false');\r\n break;\r\n case null:\r\n this._setLineLabel(line, 'null');\r\n break;\r\n default:\r\n this._setLineLabel(line, branche.answer);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n else if (figure.NAME === NODE_LIST.nodeRange.name) {\r\n for (const branche of figure.userData.branches) {\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n this._setLineLabel(line, `${branche.if.label} ${branche.than}`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n });\r\n });\r\n\r\n\r\n this.state.canvas.setZoom(this.state.currentZoom, true);\r\n }\r\n\r\n private _setupCanvas() {\r\n // Show grid\r\n this.canvas.installEditPolicy(new draw2d.policy.canvas.ShowGridEditPolicy());\r\n\r\n this.canvas.installEditPolicy(new ConnectionCreatePolicy(), this.canvas);\r\n\r\n this.canvas.installEditPolicy(new draw2d.policy.canvas.FadeoutDecorationPolicy());\r\n\r\n this.canvas.setScrollArea('html');\r\n\r\n this.canvas.installEditPolicy(new draw2d.policy.canvas.WheelZoomPolicy());\r\n\r\n this.canvas.on('select', (e: any) => {\r\n if (e.getSelection().all.data.length === 1) {\r\n this.selection = e.getPrimarySelection();\r\n this.setState({\r\n showEditPanel: true\r\n });\r\n this.setState({\r\n selectedShape: this.selection,\r\n selection: this.selection\r\n });\r\n }\r\n else {\r\n this.setState({\r\n showEditPanel: false\r\n });\r\n }\r\n });\r\n\r\n this.canvas.on('unselect', () => {\r\n this.setState({\r\n showEditPanel: false\r\n });\r\n this.setState({\r\n selectedShape: null,\r\n currentName: null\r\n });\r\n });\r\n\r\n this.canvas.getCommandStack().addEventListener((e) => {\r\n if (e.action) {\r\n this.setState({\r\n changes: true\r\n });\r\n }\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Connect Ports\") {\r\n if (e.command.source.parent.NAME === 'node_answer_bool' && e.command.source.parent.userData.branches.length === 3) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: 'Maximum 3 links out of an answer_bool node!',\r\n });\r\n const command = new draw2d.command.CommandDelete(e.command.connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n else if (e.command.source.parent.NAME === 'node_min' || e.command.source.parent.NAME === 'node_max') {\r\n e.command.source.parent.userData.nodes.push({\r\n nodeName: e.command.target.parent.userData.name,\r\n id: e.command.connection.id\r\n });\r\n }\r\n else {\r\n if (e.command.source.parent.userData.branches) {\r\n e.command.source.parent.userData.branches.push({\r\n nodeName: e.command.target.parent.userData.name,\r\n answer: e.command.source.parent.NAME === 'node_answer_bool' ? null : [],\r\n id: e.command.target.parent.id,\r\n connectionId: e.command.connection.id\r\n });\r\n }\r\n }\r\n }\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Delete Shape\" && e.command.figure?.sourcePort?.parent.NAME === \"node_answer_list\") {\r\n let i = 0;\r\n for (const branche of e.command.figure.sourcePort.parent.userData.branches) {\r\n if (branche.nodeName === e.command.figure.targetPort.parent.userData.name) {\r\n e.command.figure.sourcePort.parent.userData.branches.splice(i, 1);\r\n }\r\n i++;\r\n }\r\n }\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Delete Shape\" && (e.command.figure?.sourcePort?.parent.NAME === \"node_multiple_answer_list\" ||\r\n e.command.figure?.sourcePort?.parent.NAME === \"node_answer_bool\"\r\n )) {\r\n let i = 0;\r\n for (const branche of e.command.figure.sourcePort.parent.userData.branches) {\r\n if (branche.nodeName === e.command.figure.targetPort.parent.userData.name) {\r\n e.command.figure.sourcePort.parent.userData.branches.splice(i, 1);\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Delete Shape\" && e.command.connections?.data.length > 0) {\r\n for (const branche of e.command.connections.data) {\r\n let j = 0;\r\n let k = 0;\r\n if (branche.sourcePort.parent.userData.branches) {\r\n for (const brancheParent of branche.sourcePort.parent.userData.branches) {\r\n if (e.command.figure.id === brancheParent.id) {\r\n branche.sourcePort.parent.userData.branches.splice(j, 1);\r\n }\r\n j++;\r\n }\r\n }\r\n if (branche.sourcePort.parent.userData.nodes) {\r\n for (const brancheParent of branche.sourcePort.parent.userData.nodes) {\r\n if (branche.id === brancheParent.id) {\r\n branche.sourcePort.parent.userData.nodes.splice(k, 1);\r\n }\r\n k++;\r\n }\r\n }\r\n\r\n }\r\n }\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Delete Shape\" && (e.command.figure.NAME === \"Transition\" || e.command.figure.NAME === \"transition_concat\")) {\r\n let k = 0;\r\n if (e.command.figure.sourcePort.parent.userData.nodes) {\r\n for (const nodeParent of e.command.figure.sourcePort.parent.userData.nodes) {\r\n if (nodeParent.id === e.command.figure.id) {\r\n e.command.figure.sourcePort.parent.userData.nodes.splice(k, 1);\r\n }\r\n k++;\r\n }\r\n }\r\n }\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Connect Ports\" && e.command.connection?.NAME === \"Transition\") {\r\n if (e.command.connection && (e.command.connection.sourcePort?.parent?.NAME === \"node_max\" ||\r\n e.command.connection.sourcePort?.parent?.NAME === \"node_min\")) {\r\n e.command.connection.NAME = \"transition_concat\";\r\n // add bar decorator\r\n let bar = new draw2d2.decoration.connection.BarDecorator();\r\n bar.setDimension(50, 30);\r\n bar.setBackgroundColor('#e98b3a');\r\n e.command.connection.setSourceDecorator(bar);\r\n e.command.connection.setColor('#e98b3a');\r\n let bar2 = new draw2d2.decoration.connection.BarDecorator();\r\n bar2.setDimension(0, 0);\r\n e.command.connection.setTargetDecorator(bar2);\r\n }\r\n }\r\n if (e.action === \"POST_EXECUTE\" && e.command.label === \"Connect Ports\" && e.command.connection?.NAME === \"Transition\") {\r\n if (e.command.connection && (e.command.connection.sourcePort?.parent?.NAME === \"node_answer_bool\")) {\r\n // remove old table\r\n if (e.command.connection.tableInfo) {\r\n e.command.connection.remove(e.command.connection.tableInfo);\r\n }\r\n\r\n e.command.connection.tableInfo = new draw2d.shape.layout.TableLayout({\r\n stroke: 0,\r\n resizeable: true,\r\n bgColor: '#FFFFFF',\r\n });\r\n let header: any[] = [];\r\n\r\n header.push('null');\r\n\r\n e.command.connection.tableInfo.addRow(...header);\r\n e.command.connection.tableInfo.setPadding(0);\r\n\r\n e.command.connection.add(e.command.connection.tableInfo, new draw2d.layout.locator.PolylineMidpointLocator());\r\n }\r\n }\r\n });\r\n }\r\n\r\n private _getDatas() {\r\n\r\n this.formService.getQuestionsByType([]).then((res) => {\r\n if (res.data) {\r\n // @ts-ignore\r\n this.setState({\r\n // @ts-ignore\r\n questionList: res.data\r\n })\r\n }\r\n });\r\n\r\n this.decisionTreeService.getAllDecisionTrees().then((res) => {\r\n if (res.data) {\r\n // @ts-ignore\r\n this.setState({\r\n // @ts-ignore\r\n decisionTreeList: res.data\r\n })\r\n }\r\n });\r\n\r\n this.formService.getQuestionsByType(['bool']).then((res) => {\r\n if (res.data) {\r\n // @ts-ignore\r\n this.setState({\r\n // @ts-ignore\r\n questionListAnswerBool: res.data\r\n })\r\n }\r\n });\r\n\r\n this.formService.getQuestionsByType([]).then((res) => {\r\n if (res.data) {\r\n // @ts-ignore\r\n this.setState({\r\n // @ts-ignore\r\n questionListResult: res.data\r\n })\r\n }\r\n });\r\n\r\n this.scriptService.getMany().then((res) => {\r\n if (res.data) {\r\n this.setState({\r\n scriptList: res.data\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _getQuestionsByType(type: string[]): { type: string, name: string, label: string, values: string[] }[] {\r\n let questions = [];\r\n for (const question of this.state.questionList) {\r\n if (type.length === 0) {\r\n // @ts-ignore\r\n questions.push(question);\r\n }\r\n if (type.includes(question.type)) {\r\n // @ts-ignore\r\n questions.push(question);\r\n }\r\n }\r\n return questions;\r\n }\r\n\r\n private _setupOnDropAction() {\r\n this.canvas.onDrop = (droppedDomNode, x, y) => {\r\n if (this.state.schema) {\r\n this.setState({\r\n changes: true\r\n });\r\n let isRoot = true;\r\n if (this.state.canvas.figures.data.length) {\r\n isRoot = false;\r\n }\r\n switch (droppedDomNode[0].dataset.shape) {\r\n case 'node':\r\n const node = new NodeAnswerList(x, y);\r\n this.state.canvas.add(node);\r\n break;\r\n case 'node_answer_bool':\r\n const node_answer_bool = new NodeAnswerBool(x, y);\r\n this.state.canvas.add(node_answer_bool);\r\n break;\r\n case 'node_answer_list':\r\n const node_answer_list = new NodeAnswerList(x, y);\r\n this.state.canvas.add(node_answer_list);\r\n break;\r\n case 'node_min':\r\n const node_min = new NodeMin(x, y);\r\n this.state.canvas.add(node_min);\r\n break;\r\n case 'node_max':\r\n const node_max = new NodeMax(x, y);\r\n this.state.canvas.add(node_max);\r\n break;\r\n case 'node_range':\r\n const node_range = new NodeRange(x, y);\r\n this.state.canvas.add(node_range);\r\n break;\r\n case 'node_computation':\r\n const node_computation = new NodeComputation(x, y);\r\n this.state.canvas.add(node_computation);\r\n break;\r\n case 'node_question_result':\r\n const node_question_result = new NodeQuestionResult(x, y);\r\n this.state.canvas.add(node_question_result);\r\n break;\r\n case 'node_result':\r\n const node_result = new NodeResult(x, y);\r\n this.state.canvas.add(node_result);\r\n break;\r\n case 'node_script':\r\n const node_script = new NodeScript(x, y);\r\n this.state.canvas.add(node_script);\r\n break;\r\n case 'node_concat':\r\n const node_concat = new NodeConcat(x, y);\r\n this.state.canvas.add(node_concat);\r\n break;\r\n case 'node_multiple_answer_list':\r\n const node_multiple_answer_list = new NodeMultipleAnswerList(x, y);\r\n this.state.canvas.add(node_multiple_answer_list);\r\n break;\r\n }\r\n if (isRoot) {\r\n const canvas = this.state.canvas;\r\n canvas.figures.data[0].userData['root'] = true;\r\n canvas.figures.data[0].setBackgroundColor('#fcdb03');\r\n this.setState({\r\n canvas\r\n });\r\n }\r\n }\r\n else {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: 'Select a schema first!',\r\n });\r\n }\r\n };\r\n }\r\n\r\n changeZoom(factor: number) {\r\n if (this.state.currentZoom + factor > 0.1 && this.state.currentZoom + factor < 5) {\r\n this.state.canvas.setZoom(this.state.currentZoom + factor, true);\r\n this.setState({\r\n currentZoom: this.state.currentZoom + factor\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Reset zoom to factor 1\r\n */\r\n resetZoom() {\r\n this.state.canvas.setZoom(1.5, true);\r\n this.setState({\r\n currentZoom: 1.5\r\n });\r\n }\r\n\r\n private _updateFigureName(figure: any, text ?: string) {\r\n const shape = this.canvas.getFigure(figure['id'].toString());\r\n figure.setLabel((figure.NAME === \"node_computation\" && shape.userData.operator) ? this._getComputationName(shape.userData.operator.name) : (text ?? shape.userData.name));\r\n //update branches name\r\n let canvas = this.state.canvas;\r\n for (const figure of canvas.figures.data) {\r\n if (figure.userData.branches) {\r\n for (const branche of figure.userData.branches) {\r\n if (branche.id === shape.id && branche.nodeName !== undefined && branche.nodeName !== text) {\r\n branche.nodeName = text ?? branche.nodeName;\r\n this.setState({\r\n canvas\r\n });\r\n }\r\n }\r\n }\r\n if (figure.userData.nodes) {\r\n for (const node of figure.userData.nodes) {\r\n if (node.id === shape.id && node.nodeName !== undefined && node.nodeName !== text) {\r\n node.nodeName = text ?? node.nodeName;\r\n this.setState({\r\n canvas\r\n });\r\n }\r\n }\r\n }\r\n if (figure.NAME === 'node_computation') {\r\n for (const figure of canvas.figures.data) {\r\n for (const [key] of Object.entries(figure.userData)) {\r\n if (figure.userData[key] && figure.userData[key].value?.id === shape.id) {\r\n figure.userData[key].value.name = shape.userData.name;\r\n figure.userData[key].value.label = shape.userData.name;\r\n this.setState({\r\n canvas\r\n });\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n private _setLineLabel(line: any, label: string) {\r\n if (Array.isArray(label)) {\r\n if (label.length === 0) {\r\n return;\r\n }\r\n\r\n label = label.map(x => x.label).join(';');\r\n }\r\n\r\n // remove old table\r\n if (line.tableInfo) {\r\n line.remove(line.tableInfo);\r\n }\r\n\r\n line.tableInfo = new draw2d.shape.layout.TableLayout({\r\n stroke: 0,\r\n resizeable: true,\r\n bgColor: '#FFFFFF',\r\n });\r\n let header: any[] = [];\r\n header.push(label);\r\n line.tableInfo.addRow(...header);\r\n line.tableInfo.setPadding(0);\r\n\r\n line.add(line.tableInfo, new draw2d.layout.locator.PolylineMidpointLocator());\r\n }\r\n\r\n private _getComputationName(name: string) {\r\n switch (name) {\r\n case '-':\r\n return 'sub';\r\n case '+':\r\n return 'add';\r\n case '/':\r\n return 'div';\r\n case '*':\r\n return 'mult';\r\n }\r\n }\r\n\r\n private _updateLineName(line: any, text ?: string) {\r\n const transition = this.canvas.getLine(line['id'].toString());\r\n try {\r\n transition.setLabel(text ?? line.userData.name);\r\n } catch (e) {\r\n console.log(e);\r\n }\r\n }\r\n\r\n private _getShapeText(shape: any): string {\r\n if (shape && shape.children.data.length > 0) {\r\n if (shape.children.data[0]?.figure.text) {\r\n return shape.children.data[0]?.figure.text;\r\n }\r\n else {\r\n return this._getShapeText(shape.children.data[0].figure);\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n private _refreshSchemas(newSchemaName: string, key ?: string) {\r\n let schema;\r\n if (newSchemaName) {\r\n schema = {\r\n ...this.state.schema,\r\n name: newSchemaName\r\n };\r\n this.setState({\r\n schema\r\n });\r\n }\r\n else {\r\n this.state.canvas.clear();\r\n schema = null;\r\n }\r\n if (!key) {\r\n this.setState({\r\n schema: null\r\n });\r\n }\r\n this.setState({\r\n currentName: newSchemaName,\r\n currentKey: key,\r\n refreshSchemasList: !this.state.refreshSchemasList\r\n });\r\n }\r\n\r\n private _renderDialogFooter() {\r\n return (\r\n
    \r\n this.setState({ showNewTreeDialog: false })}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n {\r\n this._createNewTree();\r\n }}\r\n className=\"p-button-danger\"\r\n style={{ backgroundColor: '#e98b3a', borderColor: '#e98b3a' }}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _createNewTree() {\r\n const datas = {\r\n key: this.state.currentKey,\r\n name: this.state.currentName,\r\n };\r\n this.decisionTreeEditorService.createSchema(datas).then((res) => {\r\n if (res) {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Decision tree successfully created !',\r\n });\r\n const schema = {\r\n key: res.data.key,\r\n name: res.data.name,\r\n json: res.data.json,\r\n };\r\n this.state.canvas.clear();\r\n this.setState({\r\n currentName: null,\r\n currentKey: null,\r\n schema,\r\n showNewTreeDialog: false,\r\n });\r\n this._refreshSchemas(this.state.currentName, this.state.currentKey);\r\n }\r\n })\r\n .catch((err) => {\r\n if (err.response) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: err.response.data.message,\r\n });\r\n }\r\n });\r\n }\r\n\r\n private _deleteShape() {\r\n const shape = this.state.canvas.getPrimarySelection();\r\n const command = new draw2d.command.CommandDelete(shape);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n\r\n private _setSelectionUserDataValue(key: string, value: any) {\r\n let selection = this.state.selection;\r\n selection.userData[key] = value;\r\n this.setState({\r\n selection,\r\n changes: true\r\n });\r\n }\r\n\r\n private _getRootCheckboxContent() {\r\n return (\r\n
    \r\n {\r\n this._setSelectionUserDataValue('root', e.checked);\r\n this.state.selection.setBackgroundColor(e.checked ? '#fcdb03' : \"rgba(209, 209, 209,1)\");\r\n }}/>\r\n \r\n
    \r\n );\r\n }\r\n\r\n private _getQuestionDecisionTreeSelectContent(type: string[]) {\r\n return (\r\n
    \r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'question'}/>\r\n \r\n
    \r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'decision_tree'}/>\r\n \r\n
    \r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElement', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={(this.state.selection.userData.evaluatedElementRadio === 'decision_tree') ? \"Select a decision tree\" : \"Select a question\"}/>\r\n
    \r\n
    \r\n );\r\n }\r\n\r\n private _getNodeAnswerListContent() {\r\n let content: any[] = [];\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    Evaluated element:
    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n {\r\n //Reset branches value on change\r\n this.state.selection.userData.branches.forEach((branche) => {\r\n branche.answer = [];\r\n });\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'question'}/>\r\n \r\n
    \r\n
    \r\n {\r\n //Reset branches value on change\r\n this.state.selection.userData.branches.forEach((branche) => {\r\n branche.answer = [];\r\n });\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'decision_tree'}/>\r\n \r\n
    \r\n
    \r\n {\r\n //Reset branches value on change\r\n this.state.selection.userData.branches.forEach((branche) => {\r\n branche.answer = [];\r\n });\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'script'}/>\r\n \r\n
    \r\n
    );\r\n let placeHolder = '';\r\n let option: any = null;\r\n switch (this.state.selection.userData.evaluatedElementRadio) {\r\n case 'decision_tree':\r\n placeHolder = \"Select a decision tree\";\r\n option = this.state.decisionTreeList;\r\n break;\r\n case 'question':\r\n placeHolder = \"Select a question\";\r\n option = this._getQuestionsByType(['radio', 'dropdown', 'radio_image', 'matrix', 'bool']);\r\n break;\r\n case 'script':\r\n placeHolder = \"Select a script\";\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n option = scripts;\r\n break;\r\n\r\n }\r\n if (this.state.selection.userData.evaluatedElementRadio) {\r\n content.push(\r\n
    \r\n {\r\n //Reset branches value on change\r\n this.state.selection.userData.branches.forEach((branche) => {\r\n branche.answer = [];\r\n });\r\n this._setSelectionUserDataValue('evaluatedElement', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={placeHolder}/>\r\n
    \r\n );\r\n }\r\n\r\n const tableBody: any[] = [];\r\n let values: any = [];\r\n\r\n for (const question of this._getQuestionsByType(['radio', 'dropdown', 'radio_image', 'matrix', 'bool'])) {\r\n if (question.name === this.state.selection.userData.evaluatedElement?.name) {\r\n if (question.type === QuestionType.BOOL) {\r\n values.push({ name: 'true', label: 'true' });\r\n values.push({ name: 'false', label: 'false' });\r\n values.push({ name: 'null', label: 'no_answer' });\r\n }\r\n else {\r\n for (const value of question.values) {\r\n values.push({ name: value, label: value });\r\n }\r\n values.push({ name: 'null', label: 'no_answer' });\r\n }\r\n }\r\n }\r\n for (const branche of this.state.selection.userData.branches) {\r\n const inputText = (\r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.answer = e.target.value;\r\n }\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n this._setLineLabel(line, e.target.value);\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n );\r\n\r\n const inputTextScript = (\r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.answer = e.target.value;\r\n }\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n this._setLineLabel(line, e.target.value);\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n );\r\n\r\n const multiSelect = (\r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.answer = e.value;\r\n }\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n const answers: string[] = [];\r\n e.value.forEach((x) => answers.push(x.label));\r\n this._setLineLabel(line, answers.join(';') ?? '');\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n optionLabel=\"label\"\r\n placeholder=\"Select a value\"\r\n // @ts-ignore\r\n display=\"chip\"/>\r\n );\r\n\r\n tableBody.push(\r\n \r\n \r\n {\r\n this.state.selection.userData.evaluatedElementRadio === 'decision_tree' ? inputText :\r\n (this.state.selection.userData.evaluatedElementRadio === 'script' ? inputTextScript : multiSelect)\r\n }\r\n \r\n {branche.nodeName}\r\n \r\n );\r\n }\r\n\r\n if (this.state.selection.userData.evaluatedElementRadio === 'decision_tree') {\r\n content.push(

    Separate different element using \" ; \"

    );\r\n }\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n
    ifto
    \r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeMultipleAnswerListContent() {\r\n let content: any[] = [];\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    Evaluated element:
    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n );\r\n content.push(\r\n
    \r\n \r\n {\r\n //Reset branches value on change\r\n this.state.selection.userData.branches.forEach((branche) => {\r\n branche.answer = [];\r\n });\r\n this._setSelectionUserDataValue('evaluatedElement', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n );\r\n\r\n const tableBody: any[] = [];\r\n let values: any = [];\r\n\r\n for (const question of this._getQuestionsByType(['checkbox'])) {\r\n if (question.name === this.state.selection.userData.evaluatedElement?.name) {\r\n for (const value of question.values) {\r\n values.push({ name: value, label: value });\r\n }\r\n values.push({ name: 'null', label: 'null' });\r\n }\r\n }\r\n const selection = this.state.selection;\r\n for (const branche of selection.userData.branches) {\r\n const operator = (\r\n {\r\n branche.operator = e.target.value;\r\n this.setState({\r\n selection\r\n });\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Select a question\"}/>\r\n );\r\n const multiSelect = (\r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.answer = e.value;\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n optionLabel=\"name\"\r\n placeholder=\"Select a value\"\r\n appendTo={document.body}\r\n // @ts-ignore\r\n display=\"chip\"/>\r\n );\r\n\r\n tableBody.push(\r\n \r\n {multiSelect}\r\n {operator}\r\n {branche.nodeName}\r\n \r\n );\r\n }\r\n\r\n if (this.state.selection.userData.evaluatedElementRadio === 'decision_tree') {\r\n content.push(

    Separate different element using \" ; \"

    );\r\n }\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n
    ifOperatorto
    \r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeAnswerBoolContent() {\r\n let content: any[] = [];\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n {this._getQuestionDecisionTreeSelectContent(['checkbox'])}\r\n
    \r\n );\r\n const tableBody: any[] = [];\r\n for (const branche of this.state.selection.userData.branches) {\r\n\r\n const triStateCheckbox = (\r\n
    \r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.answer = e.value;\r\n }\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n switch (branche.answer) {\r\n case true:\r\n this._setLineLabel(line, 'true');\r\n break;\r\n case false:\r\n this._setLineLabel(line, 'false');\r\n break;\r\n default:\r\n this._setLineLabel(line, 'null');\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection,\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n \r\n
    \r\n );\r\n\r\n tableBody.push(\r\n \r\n {branche.nodeName}\r\n \r\n {\r\n triStateCheckbox\r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n if (this.state.selection.userData.branches.length > 0) {\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n
    toisTrue
    \r\n
    \r\n );\r\n }\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeResultContent() {\r\n let content: any[] = [];\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.value.type = e.target.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n id=\"node-result-result\"\r\n appendTo={document.body}\r\n placeholder={\"Select a value\"}/>\r\n {this._getNodeResultContentByType()}\r\n
    \r\n );\r\n\r\n if (this.state.selection.userData.question) {\r\n let values: any[] = [];\r\n for (const value of this.state.selection.userData.question.values) {\r\n values.push({ name: value, label: value });\r\n }\r\n content.push(\r\n
    \r\n \r\n {\r\n this._setSelectionUserDataValue('value', e.value);\r\n }}\r\n id=\"node-result-result\"\r\n placeholder={\"Select a value\"}/>\r\n
    \r\n );\r\n }\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeResultContentByType() {\r\n switch (this.state.selection.userData.value.type?.name) {\r\n case 'string':\r\n return (\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.value.value = e.target.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n
    \r\n );\r\n case 'number':\r\n return (\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.value.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n
    \r\n );\r\n case 'boolean':\r\n return (\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.value.value = e.target.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n id=\"node-result-result\"\r\n appendTo={document.body}\r\n placeholder={\"Select a value\"}/>\r\n
    \r\n );\r\n }\r\n }\r\n\r\n private _getNodeRangeContent() {\r\n\r\n let content: any[] = [];\r\n let nodes: any [] = [];\r\n\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === this.state.selection.id) {\r\n continue;\r\n }\r\n nodes.push({\r\n name: figure.userData.name,\r\n label: figure.userData.name,\r\n id: figure.id\r\n });\r\n }\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    Evaluated element:
    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'question'}/>\r\n \r\n
    \r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'decision_tree'}/>\r\n \r\n
    \r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElementRadio', e.value);\r\n }} checked={this.state.selection.userData.evaluatedElementRadio === 'script'}/>\r\n \r\n
    \r\n
    );\r\n let placeHolder = '';\r\n let option: any = null;\r\n switch (this.state.selection.userData.evaluatedElementRadio) {\r\n case 'decision_tree':\r\n placeHolder = \"Select a decision tree\";\r\n option = this.state.decisionTreeList;\r\n break;\r\n case 'question':\r\n placeHolder = \"Select a question\";\r\n option = this._getQuestionsByType(['number']);\r\n break;\r\n case 'script':\r\n placeHolder = \"Select a script\";\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n option = scripts;\r\n break;\r\n\r\n }\r\n\r\n if (this.state.selection.userData.evaluatedElementRadio) {\r\n content.push(\r\n
    \r\n {\r\n this._setSelectionUserDataValue('evaluatedElement', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={placeHolder}/>\r\n
    \r\n );\r\n }\r\n content.push(\r\n
    \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.branches.push({ type: null, target: null, uuid: this._uuidv4() });\r\n this.setState({\r\n selection\r\n });\r\n }}\r\n className=\"p-button-secondary\"/>\r\n
    \r\n );\r\n\r\n const tableBody: any[] = [];\r\n const selection = this.state.selection;\r\n for (const branche of selection.userData.branches) {\r\n let conditions = [\r\n { name: OperatorType.NOT_EQUAL, label: '≠' },\r\n { name: OperatorType.EQUAL, label: '=' },\r\n { name: OperatorType.GREATER_THAN, label: '>' },\r\n { name: OperatorType.GREATER_THAN_OR_EQUAL_TO, label: '≥' },\r\n { name: OperatorType.LOWER_THAN_OR_EQUAL_TO, label: '≤' },\r\n { name: OperatorType.LOWER_THAN, label: '<' }\r\n ];\r\n const ifDropdown = (\r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.if = e.value;\r\n }\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n this._setLineLabel(line, `${e.value.label} ${branche.than ?? ''}`);\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n appendTo={document.body}\r\n optionLabel=\"label\"\r\n placeholder=\"Select\"/>\r\n );\r\n\r\n const thanInputNumber = (\r\n {\r\n const selection = this.state.selection;\r\n for (const el of selection.userData.branches) {\r\n if (el.id === branche.id) {\r\n el.than = e.target.value;\r\n }\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n this._setLineLabel(line, `${branche.if.label} ${e.target.value}`);\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n );\r\n\r\n const nodeList = (\r\n
    \r\n {\r\n for (const port of selection.hybridPorts.data) {\r\n if (port.name === 'down') {\r\n for (const connection of port.connections.data) {\r\n if (connection.id === branche.id) {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n }\r\n }\r\n }\r\n\r\n branche.target = e.value;\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === e.value.id) {\r\n let nodeT = new Transition(selection, figure);\r\n this.state.canvas.add(nodeT);\r\n branche.id = nodeT.id;\r\n branche.connectionId = nodeT.id;\r\n for (const line of this.state.canvas.lines.data) {\r\n if (line.id === branche.connectionId) {\r\n this._setLineLabel(line, `${branche.if.label} ${branche.than}`);\r\n }\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Node\"}/>\r\n
    \r\n );\r\n\r\n tableBody.push(\r\n \r\n {ifDropdown}\r\n {thanInputNumber}\r\n {nodeList}\r\n \r\n {\r\n for (const port of selection.hybridPorts.data) {\r\n if (port.name === 'down') {\r\n for (const connection of port.connections.data) {\r\n if (connection.id === branche.id) {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n }\r\n }\r\n }\r\n for (const i in selection.userData.branches) {\r\n if (selection.userData.branches[i].uuid === branche.uuid) {\r\n selection.userData.branches.splice(i, 1);\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n \r\n \r\n );\r\n }\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n
    ifthanto
    \r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeQuestionResultContent() {\r\n let content: any[] = [];\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n \r\n {\r\n this._setSelectionUserDataValue('question', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeScriptContent() {\r\n let content: any[] = [];\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n \r\n {\r\n this._setSelectionUserDataValue('script', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a script\"}/>\r\n
    \r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _uuidv4() {\r\n // @ts-ignore\r\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, c =>\r\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16)\r\n );\r\n }\r\n\r\n private _getNodeConcatContent() {\r\n let content: any[] = [];\r\n let tableBody: any[] = [];\r\n let nodes: any [] = [];\r\n\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === this.state.selection.id) {\r\n continue;\r\n }\r\n nodes.push({\r\n name: figure.userData.name,\r\n label: figure.userData.name,\r\n id: figure.id\r\n });\r\n }\r\n\r\n\r\n let i = 0;\r\n const selection = this.state.selection;\r\n for (const value of selection.userData.values) {\r\n\r\n let contentValueType: any = null;\r\n\r\n switch (value?.type?.name) {\r\n case 'node':\r\n contentValueType = (\r\n
    \r\n {\r\n for (const port of selection.hybridPorts.data) {\r\n if (port.name === 'down') {\r\n for (const connection of port.connections.data) {\r\n if (connection.id === value.id) {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n }\r\n }\r\n }\r\n\r\n value.target = e.value;\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === e.value.id) {\r\n let nodeC = new TransitionConcat(selection, figure);\r\n this.state.canvas.add(nodeC);\r\n value.id = nodeC.id;\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Node\"}/>\r\n
    \r\n );\r\n break;\r\n case 'question':\r\n contentValueType = (\r\n
    \r\n {\r\n value.target = e.target.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n );\r\n break;\r\n case 'script':\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n contentValueType = (\r\n
    \r\n {\r\n value.target = e.target.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Select a script\"}/>\r\n
    \r\n );\r\n }\r\n\r\n tableBody.push(\r\n \r\n \r\n
    \r\n {\r\n value.type = e.target.value;\r\n for (const port of selection.hybridPorts.data) {\r\n if (port.name === 'down') {\r\n for (const connection of port.connections.data) {\r\n if (connection.id === value.id) {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n }\r\n }\r\n }\r\n value.target = null;\r\n this.setState({\r\n selection\r\n });\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n appendTo={document.body}\r\n placeholder={\"Type\"}/>\r\n
    \r\n \r\n {contentValueType}\r\n \r\n {\r\n for (const port of selection.hybridPorts.data) {\r\n if (port.name === 'down') {\r\n for (const connection of port.connections.data) {\r\n if (connection.id === value.id) {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n }\r\n }\r\n }\r\n }\r\n for (const i in selection.userData.values) {\r\n if (selection.userData.values[i].uuid === value.uuid) {\r\n selection.userData.values.splice(i, 1);\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n \r\n \r\n );\r\n i++;\r\n }\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n {\r\n const selection = this.state.selection;\r\n let maxItt = 0;\r\n for (const value of this.state.selection.userData.values) {\r\n if (value.itt > maxItt) {\r\n maxItt = value.itt;\r\n }\r\n }\r\n selection.userData.values.push({ type: null, target: null, uuid: this._uuidv4() });\r\n this.setState({\r\n selection\r\n });\r\n }}\r\n className=\"p-button-secondary\"/>\r\n
    \r\n
    \r\n );\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {tableBody}\r\n \r\n
    TypeTarget
    \r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeMinMaxContent() {\r\n let content: any[] = [];\r\n\r\n content.push(\r\n
    \r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n
    \r\n );\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n\r\n const values = [];\r\n for (const decisionTree of this.state.decisionTreeList) {\r\n // @ts-ignore\r\n values.push({ name: decisionTree.name, label: decisionTree.name });\r\n }\r\n content.push(\r\n
    \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.decisionTrees = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n optionLabel=\"label\"\r\n placeholder=\"Decision_tree\"\r\n filter\r\n appendTo={document.body}\r\n />\r\n
    \r\n );\r\n\r\n content.push(\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n content.push(\r\n
    \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.scripts = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n optionLabel=\"label\"\r\n placeholder=\"Script\"\r\n filter\r\n appendTo={document.body}\r\n />\r\n
    \r\n );\r\n\r\n return content;\r\n }\r\n\r\n private _getNodeComputationContent() {\r\n let content: any[] = [];\r\n\r\n let hsType = [\r\n { name: 'node', label: 'node' },\r\n { name: 'question', label: 'question' },\r\n { name: 'number', label: 'number' },\r\n { name: 'decision_tree', label: 'decision_tree' },\r\n { name: 'script', label: 'script' },\r\n ];\r\n let operators = [\r\n { name: '/', label: '/' },\r\n { name: '+', label: '+' },\r\n { name: '*', label: '*' },\r\n { name: '-', label: '-' },\r\n ];\r\n\r\n let nodes: any [] = [];\r\n\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === this.state.selection.id) {\r\n continue;\r\n }\r\n nodes.push({\r\n name: figure.userData.name,\r\n label: figure.userData.name,\r\n id: figure.id\r\n });\r\n }\r\n\r\n content.push(\r\n
    \r\n

    {this.state.selection?.NAME + ' configuration: ' ?? 'Configuration'}

    \r\n
    \r\n {this._getRootCheckboxContent()}\r\n
    \r\n

    Left member

    \r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.lhs.type = e.target.value;\r\n this._resetNodeConnectionCompute(selection, true, false);\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n
    \r\n );\r\n\r\n switch (this.state.selection.userData.lhs.type?.name) {\r\n case 'number':\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.lhs.value = parseInt(e.target.value);\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n
    \r\n );\r\n break;\r\n case 'question':\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.lhs.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n //this._setSelectionUserDataValue('question', e.value);\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n );\r\n break;\r\n case 'node':\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n\r\n this._resetNodeConnectionCompute(selection, true, false);\r\n\r\n selection.userData.lhs.value = e.value;\r\n\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === e.value.id) {\r\n let tLHS = new TransitionLHS(selection, figure);\r\n this.state.canvas.add(tLHS);\r\n selection.userData.lhs.id = tLHS.id;\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a node\"}/>\r\n
    \r\n );\r\n break;\r\n case 'decision_tree':\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.lhs.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a decision_tree\"}/>\r\n
    \r\n );\r\n break;\r\n case 'script':\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.lhs.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a script\"}/>\r\n
    \r\n );\r\n break;\r\n }\r\n\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.operator = e.target.value;\r\n\r\n const shape = this.canvas.getFigure(selection.id.toString());\r\n selection.setLabel(this._getComputationName(e.target.value.name) ?? shape.userData.name);\r\n\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n );\r\n\r\n content.push(\r\n
    \r\n

    Right member

    \r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.rhs.type = e.target.value;\r\n this._resetNodeConnectionCompute(selection, false, true);\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n
    \r\n );\r\n\r\n switch (this.state.selection.userData.rhs.type?.name) {\r\n case 'number':\r\n content.push(\r\n {\r\n const selection = this.state.selection;\r\n selection.userData.rhs.value = parseInt(e.target.value);\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n />\r\n );\r\n break;\r\n case 'question':\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.rhs.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a question\"}/>\r\n
    \r\n );\r\n break;\r\n case 'node':\r\n content.push(\r\n
    \r\n \r\n {\r\n\r\n const selection = this.state.selection;\r\n\r\n this._resetNodeConnectionCompute(selection, false, true);\r\n\r\n selection.userData.rhs.value = e.value;\r\n\r\n for (const figure of this.state.canvas.figures.data) {\r\n if (figure.id === e.value.id) {\r\n let tRHS = new TransitionRHS(selection, figure);\r\n this.state.canvas.add(tRHS);\r\n selection.userData.rhs.id = tRHS.id;\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a node\"}/>\r\n
    \r\n );\r\n break;\r\n case 'decision_tree':\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.rhs.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a decision_tree\"}/>\r\n
    \r\n );\r\n break;\r\n case 'script':\r\n const scripts = [] as any;\r\n for (const script of this.state.scriptList) {\r\n scripts.push({ name: script.fileName, label: script.fileName });\r\n }\r\n content.push(\r\n
    \r\n \r\n {\r\n const selection = this.state.selection;\r\n selection.userData.rhs.value = e.value;\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }}\r\n filter\r\n optionLabel=\"name\"\r\n placeholder={\"Select a script\"}/>\r\n
    \r\n );\r\n break;\r\n }\r\n\r\n return content;\r\n }\r\n\r\n private _resetNodeConnectionCompute(selection: any, lhs: boolean, rhs: boolean) {\r\n for (const port of selection.hybridPorts.data) {\r\n if (port.name === 'down') {\r\n for (const connection of port.connections.data) {\r\n if (lhs) {\r\n if (connection.NAME === 'lhs') {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n selection.userData.lhs.value = null;\r\n }\r\n }\r\n if (rhs) {\r\n if (connection.NAME === 'rhs') {\r\n const command = new draw2d.command.CommandDelete(connection);\r\n this.state.canvas.getCommandStack().execute(command);\r\n selection.userData.rhs.value = null;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n this.setState({\r\n selection\r\n }, () => this.setState({\r\n changes: true\r\n }));\r\n }\r\n\r\n private _getConfigurationContent() {\r\n if (this.state.selection) {\r\n switch (this.state.selection.NAME) {\r\n case 'node_answer_list' :\r\n return this._getNodeAnswerListContent();\r\n case 'node_answer_bool' :\r\n return this._getNodeAnswerBoolContent();\r\n case 'node_result' :\r\n return this._getNodeResultContent();\r\n case 'node_range' :\r\n return this._getNodeRangeContent();\r\n case 'node_question_result' :\r\n return this._getNodeQuestionResultContent();\r\n case 'node_min' :\r\n return this._getNodeMinMaxContent();\r\n case 'node_max' :\r\n return this._getNodeMinMaxContent();\r\n case 'node_computation' :\r\n return (
    {this._getNodeComputationContent()}
    );\r\n case 'node_script' :\r\n return this._getNodeScriptContent();\r\n case 'node_concat' :\r\n return this._getNodeConcatContent();\r\n case 'node_multiple_answer_list' :\r\n return this._getNodeMultipleAnswerListContent();\r\n }\r\n }\r\n }\r\n\r\n render() {\r\n\r\n let editPanel;\r\n\r\n if (this.state.showEditPanel) {\r\n editPanel = (\r\n
    \r\n
    \r\n

    Node edition

    \r\n
    {\r\n this._deleteShape();\r\n }}>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n changes: true\r\n });\r\n const sel = this.state.selection;\r\n sel.userData.name = e.target.value;\r\n if (sel.NAME === 'Transition') {\r\n const line = this.canvas.getLine(sel.id.toString());\r\n this._updateLineName(line, e.target.value);\r\n this.setState({\r\n selection: sel,\r\n currentName: e.target.value\r\n });\r\n }\r\n else {\r\n const shape = this.canvas.getFigure(sel.id.toString());\r\n this._updateFigureName(shape, e.target.value);\r\n this.setState({\r\n selection: sel,\r\n currentName: e.target.value\r\n });\r\n }\r\n }}\r\n />\r\n {\r\n this.state.selection?.NAME === NODE_LIST.nodeRange.name ||\r\n this.state.selection?.NAME === NODE_LIST.nodeConcat.name ||\r\n this.state.selection?.NAME === NODE_LIST.nodeComputation.name\r\n ?\r\n (\r\n
    \r\n

    \r\n Links from this type of node can be created only from this panel and not directly in the diagram.\r\n

    \r\n
    \r\n ) : null\r\n }\r\n
    \r\n
    \r\n {this._getConfigurationContent()}\r\n
    \r\n
    \r\n
    \r\n );\r\n }\r\n\r\n return (\r\n
    \r\n (this.toast = el)}/>\r\n
    \r\n
    \r\n this.setState({ changes })}\r\n refreshSchemas={(newSchemaName: string, key: string) => {\r\n this._refreshSchemas(newSchemaName, key);\r\n }}\r\n hideSidebar={() => {\r\n let element = document.getElementsByClassName('sideBar') as any;\r\n if (element) {\r\n element[0].style.zIndex = 1;\r\n }\r\n }}\r\n resetSidebar={() => {\r\n let element = document.getElementsByClassName('sideBar') as any;\r\n if (element) {\r\n element[0].style.zIndex = 998;\r\n }\r\n }}\r\n currenToolsName={this.state.currentToolsName}\r\n setCurrentToolsName={currentToolsName => this.setState({ currentToolsName })}\r\n canvas={this.state.canvas}\r\n changeSchemaName={(name) => {\r\n const schema = this.state.schema as any;\r\n if (schema) {\r\n schema.name = name;\r\n this.setState({\r\n changes: true,\r\n schema\r\n });\r\n }\r\n }}\r\n refreshSchemasList={() => {\r\n this.setState({\r\n refreshSchemasList: true\r\n }, () => {\r\n this.setState({\r\n refreshSchemasList: false\r\n });\r\n });\r\n }}\r\n lockSelect={(lockSelect: boolean) => {\r\n if (lockSelect) {\r\n this.state.canvas.installEditPolicy(new draw2d.policy.canvas.ReadOnlySelectionPolicy());\r\n }\r\n else {\r\n this.state.canvas.uninstallEditPolicy(new draw2d.policy.canvas.ReadOnlySelectionPolicy());\r\n this.state.canvas.installEditPolicy(new draw2d.policy.canvas.BoundingboxSelectionPolicy());\r\n }\r\n }}\r\n />\r\n
    \r\n
    \r\n this.setState({ changes })}\r\n refreshSchemas={this.state.refreshSchemasList}\r\n resetRefreshSchemas={() => this.setState({ refreshSchemasList: false })}\r\n changes={this.state.changes}\r\n onClick={(schema: Schema) => {\r\n this._loadSchema(schema);\r\n window.scroll(0, 0);\r\n }}\r\n newTree={() => {\r\n this.setState({\r\n showNewTreeDialog: true\r\n });\r\n }}\r\n currentSchemaName={this.state.currentName}\r\n currentKeyName={this.state.currentKey}\r\n resetChanges={() => this.setState({ changes: false })}\r\n setCurrentToolsName={(currentToolsName) => this.setState({\r\n currentToolsName\r\n })}\r\n />\r\n
    \r\n\r\n
    \r\n {editPanel}\r\n\r\n {\r\n this.setState({\r\n showNewTreeDialog: false\r\n });\r\n }}\r\n >\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n currentName: e.target.value\r\n });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({\r\n currentKey: e.target.value\r\n });\r\n }}\r\n />\r\n *This element cannot be changed.\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 withTranslation()(withRouter(Canvas));\r\n","export class ScriptDTO {\r\n\r\n constructor(\r\n readonly fileName: string,\r\n readonly script: string\r\n ) {\r\n }\r\n }","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../../../../form/services/FormService\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport \"../CodeSidebar.scss\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { DataTable } from \"primereact/components/datatable/DataTable\";\r\nimport { Column } from \"primereact/components/column/Column\";\r\nimport { Script } from \"../../../models/Script\";\r\nimport { AdminScriptsService } from \"../../../services/AdminScriptsService\";\r\nimport { AxiosResponse } from \"axios\";\r\nimport { FileUtils } from \"../../../../shared/utils/FileUtils\";\r\nimport { SeverityEnum } from \"../../../../shared/enum/SeverityEnum\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { InputText } from \"primereact/inputtext\";\r\n\r\ninterface States {\r\n scripts: Script[];\r\n isScriptsRefreshing: boolean;\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n loading: boolean;\r\n selectedScript: any;\r\n displayNewScriptConfirmation: boolean;\r\n menuFilter: string;\r\n\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n scriptToViewCallback: any;\r\n deletedScript: any;\r\n reloadScripts: boolean;\r\n resetRefreshScriptsState: any;\r\n actionDeleteScript: boolean;\r\n actionDownloadScript: boolean;\r\n}\r\n\r\nclass CodeSidebarJS extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private readonly scriptService: AdminScriptsService;\r\n private scripts: any = [];\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.scriptService = new AdminScriptsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n\r\n this.state = {\r\n scripts: [],\r\n isScriptsRefreshing: false,\r\n displayConfirmation: false,\r\n toDelete: null,\r\n loading: false,\r\n selectedScript: null,\r\n displayNewScriptConfirmation: false,\r\n menuFilter: '',\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.getScripts();\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n if (nextProps.reloadScripts) {\r\n this.setState({\r\n isScriptsRefreshing: true\r\n });\r\n this.getScripts();\r\n }\r\n if (nextProps.actionDeleteScript) {\r\n if (!this.state.selectedScript) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select a script !`,\r\n });\r\n return;\r\n }\r\n this.setState({ displayConfirmation: true, toDelete: this.state.selectedScript.fileName });\r\n }\r\n if (nextProps.actionDownloadScript) {\r\n this.handleDownload();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload() {\r\n\r\n if (!this.state.selectedScript) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select a script !`,\r\n });\r\n return;\r\n }\r\n\r\n this.scriptService\r\n .downloadOne(this.state.selectedScript.fileName)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n\r\n this.scriptService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n /* detail: this.formService.t(this.t, \"ui_admin_script_upload_toast_success\", false), */\r\n detail: `Success - File uploaded`,\r\n });\r\n this.fileUpload?.clear();\r\n this.getScripts();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `File NOT uploaded : ${message}`,\r\n /* detail: `${this.formService.t(this.t, \"ui_admin_script_upload_toast_error\", false)} : ${message}`, */\r\n });\r\n });\r\n\r\n }\r\n\r\n /**\r\n * New script\r\n */\r\n handleNewScript() {\r\n this.setState({ displayNewScriptConfirmation: false });\r\n this.resetEditorText();\r\n }\r\n\r\n /**\r\n * Delete script\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n\r\n this.scriptService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_script_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null, selectedScript: null });\r\n this.getScripts();\r\n this.resetEditorText();\r\n });\r\n }\r\n\r\n\r\n resetEditorText() {\r\n this.props.deletedScript();\r\n }\r\n\r\n /**\r\n * Load scripts\r\n */\r\n getScripts() {\r\n this.scriptService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.scripts = response.data;\r\n this.setState({ scripts: response.data });\r\n });\r\n }\r\n\r\n actionBodyTemplate() {\r\n return (\r\n \r\n \r\n this.setState({ displayNewScriptConfirmation: true })\r\n //this.props.scriptToViewCallback(this.state.selectedScript.fileName);\r\n\r\n }\r\n />\r\n (this.fileUpload = el)}\r\n accept=\".js\"\r\n customUpload={true}\r\n /* multiple={true} */\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n auto\r\n // emptyTemplate={() =>

    {this.t(\"ui_admin_html_upload_content\")}

    }\r\n />\r\n\r\n
    \r\n );\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
    \r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-danger\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n /*\r\n Validate methods\r\n */\r\n validationWindowForNewScript() {\r\n return (\r\n
    \r\n this.setState({ displayNewScriptConfirmation: false })}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n this.handleNewScript()}\r\n autoFocus\r\n className=\"p-button-danger\"\r\n style={{ backgroundColor: '#e98b3a', borderColor: '#e98b3a' }}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n this.toast = el}/>\r\n {\r\n this.setState({\r\n menuFilter: e.target.value\r\n });\r\n if (e.target.value) {\r\n const scripts = this.scripts;\r\n const scriptsFiltered: any = [];\r\n for (const script of scripts) {\r\n if (script.fileName.includes(e.target.value)) {\r\n scriptsFiltered.push(script);\r\n }\r\n }\r\n this.setState({\r\n scripts: scriptsFiltered\r\n });\r\n }\r\n else {\r\n this.setState({\r\n scripts: this.scripts\r\n });\r\n }\r\n }}\r\n />\r\n this.setState({ selectedScript: e.value }, () => {\r\n this.props.scriptToViewCallback(this.state.selectedScript.fileName);\r\n })}\r\n dataKey=\"fileName\"\r\n stateStorage=\"local\"\r\n selectionMode=\"single\"\r\n >\r\n \r\n\r\n \r\n \r\n this.actionBodyTemplate()\r\n }\r\n />\r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
    \r\n \r\n Are you sure you want to proceed?\r\n
    \r\n \r\n\r\n\r\n
    \r\n this.setState({ displayNewScriptConfirmation: false })}\r\n >\r\n
    \r\n \r\n Are you sure you want to create a new script?\r\n\r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(CodeSidebarJS);\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport {Dropdown} from \"primereact/dropdown\";\r\n\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { FormService } from \"../../../../form/services/FormService\";\r\n\r\nimport \"./QuestionSelectorJS.scss\"\r\nimport { DataTable } from \"primereact/datatable\";\r\nimport { Column } from \"primereact/column\";\r\n\r\n\r\ninterface Props extends WithTranslation {\r\n questionSelected: any;\r\n}\r\n\r\ninterface States {\r\n questionListAnswerList: { name: string, label: string, values: string[] }[];\r\n selection: any;\r\n changes: boolean;\r\n\r\n}\r\n\r\n\r\nclass QuestionSelectorJS extends React.Component {\r\n\r\n\r\n private toast: Toast | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n \r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.formService = new FormService(); \r\n this.state = {\r\n selection: null,\r\n questionListAnswerList: [],\r\n changes: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this._getDatas(); \r\n }\r\n\r\n private _setSelectionUserDataValue(value: string) {\r\n this.setState({\r\n selection: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.questionSelected(this.state.selection.name);\r\n })\r\n }\r\n\r\n private _getDatas() {\r\n this.formService.getQuestionsByType([]).then((res) => {\r\n if (res.data) {\r\n // @ts-ignore\r\n this.setState({\r\n // @ts-ignore\r\n questionListAnswerList: res.data\r\n });\r\n }\r\n });\r\n }\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n\r\n {\r\n this._setSelectionUserDataValue(e.value);\r\n }}\r\n dataKey=\"name\"\r\n stateStorage=\"local\"\r\n selectionMode=\"single\"\r\n >\r\n \r\n \r\n
    \r\n );\r\n }\r\n\r\n}\r\nexport default withTranslation()(QuestionSelectorJS);\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\n\r\nimport Editor from \"@monaco-editor/react\";\r\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\r\n\r\nimport { AdminScriptsService } from \"../services/AdminScriptsService\";\r\nimport { ScriptDTO } from \"../dto/ScriptDTO\";\r\n\r\nimport CodeSidebarJS from \"./components/JS/CodeSidebarJS\";\r\nimport QuestionSelectorJS from \"./components/JS/QuestionSelectorJS\";\r\nimport \"./CodeEditor.scss\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { InputText } from \"primereact/inputtext\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n displayConfirmation: boolean;\r\n displayNewScriptConfirmation: boolean;\r\n editorText: string;\r\n editorScriptName: string;\r\n refreshScriptsState: boolean;\r\n editorRef: React.MutableRefObject;\r\n deleteScript: boolean;\r\n downloadScript: boolean;\r\n}\r\n\r\n\r\nclass CodeEditorJS extends React.Component {\r\n\r\n\r\n private toast: Toast | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n private readonly scriptService: AdminScriptsService;\r\n private readonly scriptDefaultScript: string;\r\n\r\n private leftContents: any;\r\n private rightContents: any;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.formService = new FormService();\r\n\r\n // Languages\r\n this.scriptService = new AdminScriptsService();\r\n this.scriptDefaultScript =\r\n '//Script structure :\\n\\n'\r\n + '/*\\nvar answer = responses.get(\"\");'\r\n /* +'\\n\\nanswer.foreach((value)=>{\\n\\tvalue+=1;\\n})' */\r\n + '\\n\\ndata.result.push(answer); ou data.result = answer;\\n*/\\n\\n';\r\n\r\n this.state = {\r\n displayConfirmation: false,\r\n editorText: \"\",\r\n editorScriptName: \"\",\r\n displayNewScriptConfirmation: false,\r\n refreshScriptsState: false,\r\n editorRef: React.createRef(),\r\n deleteScript: false,\r\n downloadScript: false,\r\n };\r\n this.handleEditorChange = this.handleEditorChange.bind(this);\r\n this.resetEditorText = this.resetEditorText.bind(this);\r\n this.handleOneUpload = this.handleOneUpload.bind(this);\r\n this.handleEditorDidMount = this.handleEditorDidMount.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n /* this.editorRef.current?.editor?.layout();\r\n if (autofocus) {\r\n this.editorRef.current?.editor?.focus();\r\n } */\r\n }\r\n\r\n private refreshScript = (scriptToView) => {\r\n\r\n this.setState(\r\n {\r\n editorScriptName: scriptToView\r\n }\r\n );\r\n\r\n this.getScriptToViewText(scriptToView);\r\n };\r\n\r\n\r\n // Languages\r\n getScriptToViewText(str: string) {\r\n if (!str || !str.includes(\".js\")) {\r\n return;\r\n }\r\n this.scriptService\r\n .getOne(str)\r\n .then((response: AxiosResponse) => {\r\n\r\n this.setState({ editorText: response.data, editorScriptName: str });\r\n });\r\n }\r\n\r\n\r\n /**\r\n * On upload for one script\r\n */\r\n handleOneUpload() {\r\n\r\n let fileName = this.state.editorScriptName;\r\n\r\n if (!fileName) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please enter a script name !`,\r\n });\r\n return;\r\n }\r\n\r\n let extensionPart = fileName.substring(fileName.lastIndexOf('.'));\r\n\r\n const allowedTypes = ['.js'];\r\n\r\n // = Validate the types\r\n if (!allowedTypes.includes(extensionPart)) {\r\n fileName += \".js\";\r\n }\r\n\r\n const dto = new ScriptDTO(fileName, this.state.editorText);\r\n\r\n this.scriptService\r\n .uploadOne(dto)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Script sauvegardé !',\r\n });\r\n\r\n this.setState({ refreshScriptsState: true });\r\n\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Une erreur est survenue lors de la sauvegarde du script: ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n resetEditorText() {\r\n\r\n this.setState({\r\n editorText: this.scriptDefaultScript,\r\n displayNewScriptConfirmation: false,\r\n editorScriptName: \"\"\r\n });\r\n\r\n }\r\n\r\n\r\n /* \r\n Actions handeling\r\n */\r\n handleEditorChange(value, event) {\r\n\r\n this.setState({ editorText: value });\r\n\r\n }\r\n\r\n /* \r\n Validate methods\r\n */\r\n validationWindowForNewScript() {\r\n return (\r\n
    \r\n this.setState({ displayNewScriptConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.resetEditorText()}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n\r\n handleDeletedScript = () => {\r\n\r\n this.resetEditorText();\r\n\r\n };\r\n\r\n\r\n handleEditorDidMount(editor, monaco) {\r\n\r\n this.state.editorRef.current = editor;\r\n\r\n }\r\n\r\n selectQuestion = (questionSelected) => {\r\n\r\n this.state.editorRef.current?.trigger('keyboard', 'type', { text: 'var answer = responses.get(\"' + questionSelected + '\");' });\r\n\r\n };\r\n\r\n render() {\r\n\r\n this.leftContents = (\r\n \r\n

    Script editor

    \r\n
    \r\n this.setState({ editorScriptName: e.currentTarget.value })}\r\n\r\n placeholder=\"Script name\"\r\n style={{ width: '20rem' }}\r\n />\r\n
    \r\n
    \r\n );\r\n this.rightContents = (\r\n
    \r\n this.setState({\r\n downloadScript: true,\r\n }, () => {\r\n this.setState({\r\n downloadScript: false\r\n });\r\n })}\r\n />\r\n \r\n this.setState({\r\n deleteScript: true,\r\n }, () => {\r\n this.setState({\r\n deleteScript: false\r\n });\r\n })}\r\n />\r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n this.setState({ refreshScriptsState: false })}\r\n deletedScript={this.handleDeletedScript}\r\n actionDeleteScript={this.state.deleteScript}\r\n actionDownloadScript={this.state.downloadScript}\r\n />\r\n
    \r\n \r\n
    \r\n \r\n (this.toast = el)}/>\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n\r\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 withTranslation()(CodeEditorJS);\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { HtmlDTO } from '../dto/HtmlDTO';\r\nimport {Html} from \"../models/HTML\";\r\n\r\nexport class AdminHtmlsService extends APIService {\r\n\r\n /**\r\n * Get many htmls\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/htmls');\r\n }\r\n\r\n /**\r\n * Get the text of a html by name\r\n */\r\n getOne(name: string): Promise> {\r\n return this.http.get(`/htmls/${name}/text`);\r\n }\r\n\r\n /**\r\n * Get the text of a html by name\r\n */\r\n getOneIsActive(name: string): Promise> {\r\n return this.http.get(`/htmls/${name}/isActive`);\r\n }\r\n \r\n /**\r\n * Download a html by name\r\n */\r\n downloadOne(name: string) {\r\n return this.http.get(`/htmls/${name}/download`, { responseType: 'blob' });\r\n }\r\n \r\n \r\n /**\r\n * Upload many htmls\r\n */\r\n uploadMany(files: File[]) {\r\n const formData = new FormData();\r\n for (const file of files) {\r\n formData.append('files', file);\r\n }\r\n return this.http.post(`/htmls/upload`, formData);\r\n }\r\n\r\n /**\r\n * Upload one html\r\n */\r\n uploadOne(dto: HtmlDTO) {\r\n return this.http.post(`/htmls/uploadone`, dto);\r\n } \r\n\r\n /**\r\n * Delete one html\r\n */\r\n deleteOne(name: string) {\r\n return this.http.delete(`/htmls/${name}`);\r\n }\r\n\r\n activeOne(editorScriptName: string, isActive: boolean) {\r\n return this.http.post(`/htmls/${editorScriptName}/activeOne/${isActive}`);\r\n }\r\n}\r\n","export class HtmlDTO {\r\n\r\n constructor(\r\n readonly fileName: string,\r\n readonly html: string\r\n ) {\r\n }\r\n }","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../../../../form/services/FormService\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport \"../CodeSidebar.scss\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { DataTable } from \"primereact/components/datatable/DataTable\";\r\nimport { Column } from \"primereact/components/column/Column\";\r\n\r\nimport { AxiosResponse } from \"axios\";\r\nimport { FileUtils } from \"../../../../shared/utils/FileUtils\";\r\nimport { SeverityEnum } from \"../../../../shared/enum/SeverityEnum\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Html } from \"../../../models/HTML\";\r\nimport { AdminHtmlsService } from \"../../../services/AdminHTMLService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Message } from \"primereact/message\";\r\n\r\ninterface States {\r\n htmls: Html[];\r\n isScriptsRefreshing: boolean;\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n loading: boolean;\r\n selectedScript: any;\r\n displayNewScriptConfirmation: boolean;\r\n menuFilter: string;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n scriptToViewCallback: any;\r\n deletedScript: any;\r\n reloadScripts: boolean;\r\n resetRefreshScriptsState: any;\r\n actionDeleteHtml: boolean;\r\n actionDownloadHtml: boolean;\r\n}\r\n\r\nclass CodeSidebarHTML extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private readonly htmlService: AdminHtmlsService;\r\n private scripts: any = [];\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.htmlService = new AdminHtmlsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n\r\n this.state = {\r\n htmls: [],\r\n isScriptsRefreshing: false,\r\n displayConfirmation: false,\r\n toDelete: null,\r\n loading: false,\r\n selectedScript: null,\r\n displayNewScriptConfirmation: false,\r\n menuFilter: '',\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.getHtmls();\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n if (nextProps.reloadScripts) {\r\n this.setState({\r\n isScriptsRefreshing: true\r\n });\r\n this.getHtmls();\r\n\r\n this.props.resetRefreshScriptsState();\r\n }\r\n if (nextProps.actionDownloadHtml) {\r\n this.handleDownload();\r\n }\r\n if (nextProps.actionDeleteHtml) {\r\n if (!this.state.selectedScript) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select a script !`,\r\n });\r\n return;\r\n }\r\n else {\r\n this.setState({ displayConfirmation: true, toDelete: this.state.selectedScript.fileName });\r\n }\r\n }\r\n }\r\n\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload() {\r\n\r\n if (!this.state.selectedScript) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select a script !`,\r\n });\r\n return;\r\n }\r\n\r\n this.htmlService\r\n .downloadOne(this.state.selectedScript.fileName)\r\n .then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n\r\n this.htmlService\r\n .uploadMany(e.files)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n /* detail: this.formService.t(this.t, \"ui_admin_html_upload_toast_success\", false), */\r\n detail: `Success - File uploaded`,\r\n });\r\n this.fileUpload?.clear();\r\n this.getHtmls();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `File NOT uploaded : ${message}`,\r\n /* detail: `${this.formService.t(this.t, \"ui_admin_html_upload_toast_error\", false)} : ${message}`, */\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * New script\r\n */\r\n handleNewScript() {\r\n this.setState({ displayNewScriptConfirmation: false });\r\n this.resetEditorText();\r\n }\r\n\r\n /**\r\n * Delete script\r\n */\r\n handleDelete() {\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n this.htmlService.deleteOne(this.state.toDelete).then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.t(\"ui_admin_html_delete_toast_success\"),\r\n });\r\n this.setState({ displayConfirmation: false, toDelete: null, selectedScript: null });\r\n this.getHtmls();\r\n this.resetEditorText();\r\n });\r\n }\r\n\r\n\r\n resetEditorText() {\r\n this.props.deletedScript();\r\n }\r\n\r\n /**\r\n * Load html\r\n */\r\n getHtmls() {\r\n this.htmlService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.scripts = response.data;\r\n this.setState({ htmls: response.data });\r\n });\r\n }\r\n\r\n actionBodyTemplate() {\r\n return (\r\n \r\n \r\n this.setState({ displayNewScriptConfirmation: true })\r\n //this.props.scriptToViewCallback(this.state.selectedScript.fileName);\r\n\r\n }\r\n />\r\n (this.fileUpload = el)}\r\n accept=\".html\"\r\n customUpload={true}\r\n /* multiple={true} */\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n auto\r\n // emptyTemplate={() =>

    {this.t(\"ui_admin_html_upload_content\")}

    }\r\n />\r\n
    \r\n );\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
    \r\n this.setState({ displayConfirmation: false })}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n /*\r\n Validate methods\r\n */\r\n validationWindowForNewScript() {\r\n return (\r\n
    \r\n this.setState({ displayNewScriptConfirmation: false })}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n this.handleNewScript()}\r\n autoFocus\r\n className=\"p-button-danger\"\r\n style={{ backgroundColor: '#e98b3a', borderColor: '#e98b3a' }}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _rowClass(data) {\r\n return {\r\n 'row-active': data.isActive === true\r\n };\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n this.toast = el}/>\r\n {\r\n this.setState({\r\n menuFilter: e.target.value\r\n });\r\n if (e.target.value) {\r\n const scripts = this.scripts;\r\n const scriptsFiltered: any = [];\r\n for (const script of scripts) {\r\n if (script.fileName.includes(e.target.value)) {\r\n scriptsFiltered.push(script);\r\n }\r\n }\r\n this.setState({\r\n htmls: scriptsFiltered\r\n });\r\n }\r\n else {\r\n this.setState({\r\n htmls: this.scripts\r\n });\r\n }\r\n }}\r\n />\r\n this.setState({ selectedScript: e.value }, () => {\r\n this.props.scriptToViewCallback(this.state.selectedScript.fileName);\r\n })}\r\n dataKey=\"fileName\"\r\n stateStorage=\"local\"\r\n selectionMode=\"single\"\r\n rowClassName={this._rowClass}\r\n >\r\n \r\n \r\n
    \r\n \r\n
    \r\n \r\n this.actionBodyTemplate()\r\n }\r\n />\r\n this.setState({ displayConfirmation: false })}\r\n >\r\n
    \r\n \r\n Are you sure you want to proceed?\r\n
    \r\n \r\n\r\n\r\n
    \r\n this.setState({ displayNewScriptConfirmation: false })}\r\n >\r\n
    \r\n \r\n Are you sure you want to create a new script?\r\n\r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(CodeSidebarHTML);\r\n","import { AxiosResponse } from 'axios';\r\nimport { APIService } from '../../shared/services/APIService';\r\nimport { Requirements } from '../models/Requirements';\r\nexport class RequirementsService extends APIService {\r\n\r\n\r\n /**\r\n * Get many requirements\r\n * \r\n * @role Admin\r\n */\r\n getMany(): Promise> {\r\n return this.http.get('/forms/default/requirements');\r\n }\r\n\r\n /**\r\n * Upload and replace the requirements\r\n *\r\n * @role Admin\r\n */\r\n uploadRequirements(file: File) {\r\n const formData = new FormData();\r\n formData.append('requirements', file);\r\n return this.http.put('/forms/default/requirements/upload', formData);\r\n }\r\n\r\n /**\r\n * Download the current requirements\r\n *\r\n * @role Admin\r\n */\r\n downloadRequirements() {\r\n return this.http.get('/forms/default/requirements/download', { responseType: 'blob' });\r\n }\r\n\r\n activeOne(editorRequirementName: string, isActive: boolean) {\r\n return this.http.post(`/forms/default/requirements/${editorRequirementName}/activeOne/${isActive}`);\r\n }\r\n}\r\n","\r\nimport { AxiosResponse } from \"axios\";\r\nimport { WithTranslation, withTranslation, } from \"react-i18next\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport {Dropdown} from \"primereact/dropdown\";\r\nimport React from \"react\";\r\nimport { FormService } from \"../../../../form/services/FormService\";\r\n\r\nimport \"./QuestionSelectorHTML.scss\"\r\nimport {TranslationService} from '../../../../form/services/TranslationService'\r\nimport {RequirementsService} from '../../../services/RequirementsService'\r\nimport { Requirements } from \"../../../models/Requirements\";\r\n\r\n\r\n\r\ninterface Props extends WithTranslation {\r\n questionSelected: any;\r\n questionValueSelected: any;\r\n requirementSelected: any;\r\n requirementAnswerSelected: any;\r\n prismicKeySelected: any;\r\n imagePrismicKeySelected: any;\r\n}\r\n\r\ninterface States {\r\n questionListAnswerList: { name: string, label: string, values: string[] }[];\r\n selectionQuestion: any;\r\n selectionQuestionValue: any;\r\n changes: boolean;\r\n prismicKeys: { name: string}[];\r\n selectionPrismic: any;\r\n requirements: Requirements[];\r\n selectionRequirement: any;\r\n selectionRequirementAnswer: any;\r\n\r\n}\r\n\r\n\r\nclass QuestionSelectorHTML extends React.Component {\r\n\r\n\r\n private toast: Toast | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n private translationService: TranslationService;\r\n private requirementService: RequirementsService;\r\n\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.formService = new FormService();\r\n this.translationService = new TranslationService();\r\n this.requirementService = new RequirementsService();\r\n\r\n this.state = {\r\n selectionQuestion: null,\r\n selectionQuestionValue: null,\r\n questionListAnswerList: [],\r\n changes: false,\r\n prismicKeys: [],\r\n selectionPrismic: null,\r\n requirements: [],\r\n selectionRequirement: null,\r\n selectionRequirementAnswer: null,\r\n }\r\n\r\n \r\n }\r\n\r\n\r\n componentDidMount() {\r\n\r\n this._getQuestions();\r\n this.getRequirements();\r\n this.getPrismicKeys();\r\n }\r\n \r\n\r\n private _getConfigurationContent() {\r\n if (this.state.questionListAnswerList) {\r\n return this._getNodeAnswerListContent();\r\n }\r\n }\r\n private _setSelectionUserDataValue(selector: number, value: string) {\r\n \r\n if(selector===1){\r\n\r\n this.setState({\r\n selectionQuestion: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.questionSelected(this.state.selectionQuestion);\r\n /* this.props.questionSelected(this.state.selectionQuestion.name); */\r\n });\r\n }\r\n else if(selector===2){\r\n this.setState({\r\n selectionQuestionValue: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.questionValueSelected(this.state.selectionQuestionValue);\r\n });\r\n }\r\n else if(selector==3){\r\n this.setState({\r\n selectionRequirement: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.requirementSelected(this.state.selectionRequirement);\r\n });\r\n }\r\n else if(selector===4){\r\n this.setState({\r\n selectionRequirementAnswer: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.requirementAnswerSelected(this.state.selectionRequirementAnswer);\r\n });\r\n }\r\n else if(selector==5){\r\n this.setState({\r\n selectionPrismic: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.prismicKeySelected(this.state.selectionPrismic.name);\r\n });\r\n }\r\n\r\n else if(selector==6){\r\n this.setState({\r\n selectionPrismic: value,\r\n changes: true\r\n }, ()=>{\r\n this.props.imagePrismicKeySelected(this.state.selectionPrismic.name);\r\n });\r\n }\r\n\r\n }\r\n\r\n private _getNodeAnswerListContent() {\r\n let content: any[] = [];\r\n\r\n content.push(

    Available tags

    )\r\n\r\n content.push(\r\n \r\n

    {\"Questions\"}

    \r\n
    \r\n {\"Question\"}\r\n {\r\n this._setSelectionUserDataValue(1, e.value);\r\n }}\r\n optionLabel=\"name\" \r\n filter \r\n filterBy=\"name\" \r\n placeholder=\"Select a question\"\r\n />\r\n {\"Answer\"}\r\n {\r\n this._setSelectionUserDataValue(2, e.value);\r\n }} \r\n optionLabel=\"name\" \r\n filter \r\n filterBy=\"name\" \r\n placeholder=\"Select a question\"\r\n />\r\n
    \r\n\r\n\r\n

    {\"Requirements\"}

    \r\n
    \r\n {\"Title\"}\r\n {\r\n this._setSelectionUserDataValue(3, e.value);\r\n }}\r\n optionLabel=\"requirement\"\r\n filter \r\n filterBy=\"requirement\"\r\n placeholder={\"Select a requirement\"}\r\n />\r\n {\"Answer\"}\r\n {\r\n this._setSelectionUserDataValue(4, e.value);\r\n }}\r\n optionLabel=\"requirement\"\r\n filter \r\n filterBy=\"requirement\"\r\n placeholder={\"Select a requirement\"}\r\n />\r\n
    \r\n\r\n

    {\"Prismic keys\"}

    \r\n
    \r\n {\"Key\"}\r\n {\r\n this._setSelectionUserDataValue(5, e.value);\r\n }}\r\n optionLabel=\"name\"\r\n filter \r\n filterBy=\"name\"\r\n placeholder={\"Select a prismic key\"}\r\n /> \r\n
    \r\n\r\n

    {\"Images (Prismic keys)\"}

    \r\n
    \r\n {\"Key\"}\r\n {\r\n this._setSelectionUserDataValue(6, e.value);\r\n }}\r\n optionLabel=\"name\"\r\n filter\r\n filterBy=\"name\"\r\n placeholder={\"Select a prismic key\"}\r\n />\r\n
    \r\n\r\n
    \r\n )\r\n\r\n\r\n return content;\r\n }\r\n\r\n\r\n private _getQuestions() {\r\n this.formService.getQuestionsByType([]).then((res) => {\r\n if (res.data) {\r\n // @ts-ignore\r\n this.setState({\r\n // @ts-ignore\r\n questionListAnswerList: res.data\r\n }/* ,()=>{\r\n console.log(this.state.questionListAnswerList);\r\n } */);\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Load requirements\r\n */\r\n private getRequirements() {\r\n this.requirementService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ requirements: response.data }/* ,()=>{\r\n console.log(this.state.requirements[0].requirements);\r\n } */);\r\n });\r\n } \r\n\r\n /**\r\n * Load prismic keys\r\n */\r\n private async getPrismicKeys() {\r\n await this.translationService.get('fr')\r\n .then((response) => { return response; })\r\n .then((data) => {\r\n \r\n let transformObj = [{name : ''}];\r\n \r\n for (let i=0; i{\r\n console.log(this.state.prismicKeys);\r\n } */);\r\n \r\n });\r\n } \r\n\r\n\r\n\r\n render() {\r\n return (\r\n
    \r\n {this._getConfigurationContent()}\r\n
    \r\n );\r\n }\r\n\r\n}\r\nexport default withTranslation()(QuestionSelectorHTML);\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\n\r\nimport Editor from \"@monaco-editor/react\";\r\nimport * as monaco from 'monaco-editor/esm/vs/editor/editor.api';\r\n\r\nimport { AdminHtmlsService } from \"../services/AdminHTMLService\";\r\nimport { HtmlDTO } from \"../dto/HtmlDTO\";\r\n\r\nimport CodeSidebarHTML from \"./components/HTML/CodeSidebarHTML\";\r\nimport QuestionSelectorHTML from \"./components/HTML/QuestionSelectorHTML\";\r\n\r\nimport \"./CodeEditor.scss\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { InputText } from \"primereact/inputtext\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n displayConfirmation: boolean;\r\n displayNewScriptConfirmation: boolean;\r\n editorText: string;\r\n editorScriptName: string;\r\n refreshScriptsState: boolean;\r\n editorRef: React.MutableRefObject;\r\n isActive: boolean;\r\n deleteHtml: boolean;\r\n downloadHtml: boolean;\r\n}\r\n\r\n\r\nclass CodeEditorHTML extends React.Component {\r\n\r\n\r\n private toast: Toast | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n private readonly htmlService: AdminHtmlsService;\r\n private readonly htmlDefaultScript: string;\r\n\r\n private leftContents: any;\r\n private rightContents: any;\r\n\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.formService = new FormService();\r\n\r\n // Languages\r\n this.htmlService = new AdminHtmlsService();\r\n this.htmlDefaultScript =\r\n \"\\n\\n\\n\\n\"\r\n /* +\"\" */\r\n ;\r\n\r\n this.state = {\r\n displayConfirmation: false,\r\n editorText: \"\",\r\n editorScriptName: \"\",\r\n displayNewScriptConfirmation: false,\r\n refreshScriptsState: false,\r\n editorRef: React.createRef(),\r\n isActive: false,\r\n deleteHtml: false,\r\n downloadHtml: false,\r\n };\r\n this.handleEditorChange = this.handleEditorChange.bind(this);\r\n this.resetEditorText = this.resetEditorText.bind(this);\r\n this.handleOneUpload = this.handleOneUpload.bind(this);\r\n this.handleEditorDidMount = this.handleEditorDidMount.bind(this);\r\n\r\n }\r\n\r\n public componentDidMount(): void {\r\n /* this.editorRef.current?.editor?.layout();\r\n if (autofocus) {\r\n this.editorRef.current?.editor?.focus();\r\n } */\r\n }\r\n\r\n\r\n refreshScript = (scriptToView) => {\r\n\r\n this.setState(\r\n {\r\n editorScriptName: scriptToView\r\n }\r\n );\r\n\r\n this.getHtmlToViewText(scriptToView);\r\n\r\n };\r\n\r\n getHtmlToViewText(str: string) {\r\n if (!str || !str.includes(\".html\")) {\r\n return;\r\n }\r\n\r\n this.htmlService\r\n .getOne(str)\r\n .then((response: AxiosResponse) => {\r\n this.setState({ editorText: response.data, editorScriptName: str });\r\n\r\n });\r\n\r\n this.htmlService.getOneIsActive(str).then((res: any) => {\r\n if (res) {\r\n this.setState({\r\n isActive: res.data\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * On upload for one script\r\n */\r\n handleOneUpload() {\r\n\r\n let fileName = this.state.editorScriptName;\r\n\r\n if (!fileName) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please enter a script name !`,\r\n });\r\n return;\r\n }\r\n\r\n let extensionPart = fileName.substring(fileName.lastIndexOf('.'));\r\n\r\n const allowedTypes = ['.html'];\r\n\r\n // = Validate the types\r\n if (!allowedTypes.includes(extensionPart)) {\r\n fileName += \".html\";\r\n }\r\n\r\n const dto = new HtmlDTO(fileName, this.state.editorText);\r\n\r\n this.htmlService\r\n .uploadOne(dto)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: this.formService.t(this.t, \"ui_admin_html_upload_one_toast_success\", false),\r\n });\r\n this.resetEditorText();\r\n this.setState({ refreshScriptsState: true });\r\n\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `${this.formService.t(this.t, \"ui_admin_html_upload_one_toast_error\", false)} : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n resetEditorText() {\r\n this.setState({\r\n editorText: this.htmlDefaultScript,\r\n displayNewScriptConfirmation: false,\r\n editorScriptName: \"\"\r\n });\r\n }\r\n\r\n\r\n /* \r\n Actions handeling\r\n */\r\n handleEditorChange(value, event) {\r\n\r\n this.setState({ editorText: value });\r\n\r\n }\r\n\r\n /* \r\n Validate methods\r\n */\r\n validationWindowForNewScript() {\r\n return (\r\n
    \r\n this.setState({ displayNewScriptConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.resetEditorText()}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n\r\n handleDeletedScript = () => {\r\n this.resetEditorText();\r\n };\r\n\r\n\r\n handleEditorDidMount(editor, monaco) {\r\n\r\n this.state.editorRef.current = editor;\r\n\r\n }\r\n\r\n selectQuestion = (questionSelected) => {\r\n this.state.editorRef.current?.trigger('keyboard', 'type'\r\n , {\r\n text:\r\n '{{question.' + questionSelected.name + '}}\\n\\n'\r\n });\r\n };\r\n\r\n selectQuestionValue = (questionValueSelected) => {\r\n this.state.editorRef.current?.trigger('keyboard', 'type'\r\n , {\r\n text:\r\n '{{value.' + questionValueSelected.name + '}}\\n\\n'\r\n });\r\n };\r\n\r\n\r\n selectRequirement = (requirementSelected) => {\r\n this.state.editorRef.current?.trigger('keyboard', 'type'\r\n , {\r\n text:\r\n '{{requirement.title.' + requirementSelected.requirementTitle + '}}\\n\\n'\r\n });\r\n };\r\n\r\n selectRequirementAnswer = (requirementAnswerSelected) => {\r\n this.state.editorRef.current?.trigger('keyboard', 'type'\r\n , {\r\n text:\r\n '{{requirement.answer.' + requirementAnswerSelected.answer.target + '}}\\n\\n'\r\n });\r\n };\r\n\r\n selectPrismicKey = (prismicKeySelected) => {\r\n this.state.editorRef.current?.trigger('keyboard', 'type'\r\n , {\r\n text:\r\n '{{translation.' + prismicKeySelected + '}}\\n'\r\n });\r\n };\r\n\r\n selectImagePrismicKey = (prismicKeySelected) => {\r\n this.state.editorRef.current?.trigger('keyboard', 'type'\r\n , {\r\n text:\r\n ''\r\n });\r\n };\r\n\r\n render() {\r\n\r\n this.leftContents = (\r\n \r\n

    HTML template editor

    \r\n
    \r\n
    \r\n this.setState({ editorScriptName: e.currentTarget.value })}\r\n\r\n placeholder=\"Template name\"\r\n style={{ width: '15rem' }}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n if (!this.state.editorScriptName) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select one template !`,\r\n });\r\n return;\r\n }\r\n this.htmlService.activeOne(this.state.editorScriptName, e.checked).then(res => {\r\n if (res.status === 201) {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: `Le changement a bien été effectué !`,\r\n });\r\n this.setState({ isActive: e.checked, refreshScriptsState: true });\r\n }\r\n });\r\n }}/>\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n this.rightContents = (\r\n
    \r\n this.setState({\r\n downloadHtml: true,\r\n }, () => {\r\n this.setState({\r\n downloadHtml: false\r\n });\r\n })}\r\n />\r\n \r\n this.setState({\r\n deleteHtml: true,\r\n }, () => {\r\n this.setState({\r\n deleteHtml: false\r\n });\r\n })}\r\n />\r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n this.setState({ refreshScriptsState: false })}\r\n deletedScript={this.handleDeletedScript}\r\n actionDeleteHtml={this.state.deleteHtml}\r\n actionDownloadHtml={this.state.downloadHtml}\r\n />\r\n
    \r\n \r\n
    \r\n \r\n (this.toast = el)}/>\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n\r\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 withTranslation()(CodeEditorHTML);\r\n","import {Requirement} from './Requirement'\r\nexport class Requirements {\r\n\r\n constructor(\r\n readonly form: string,\r\n readonly requirements: Requirement[], \r\n ) {\r\n }\r\n}","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../../../form/services/FormService\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport \"./RequirementSidebar.scss\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { DataTable } from \"primereact/components/datatable/DataTable\";\r\nimport { Column } from \"primereact/components/column/Column\";\r\nimport { RichText } from \"prismic-reactjs\";\r\n\r\nimport { AxiosResponse } from \"axios\";\r\nimport { FileUtils } from \"../../../shared/utils/FileUtils\";\r\nimport { SeverityEnum } from \"../../../shared/enum/SeverityEnum\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { FileUpload } from \"primereact/fileupload\";\r\nimport { Requirement } from \"../../models/Requirement\";\r\nimport { RequirementsService } from \"../../services/RequirementsService\";\r\nimport { Requirements } from \"../../models/Requirements\";\r\n\r\n\r\ninterface States {\r\n requirements: Requirement[];\r\n isRequirementsRefreshing: boolean;\r\n displayConfirmation: boolean;\r\n toDelete: string | null;\r\n loading: boolean;\r\n selectedRequirement: any;\r\n displayNewRequirementConfirmation: boolean;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n requirementToViewCallback: any;\r\n deletedRequirement: any;\r\n reloadRequirements: boolean;\r\n resetRefreshRequirementsState: any;\r\n deleteRequirementAction: boolean;\r\n resetDeleteRequirementAction: () => void;\r\n actionDownloadRequirement: boolean;\r\n setCurrentRequirement: (currentRequirement) => void;\r\n}\r\n\r\nclass RequirementSidebar extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n private toast: Toast | null;\r\n private fileUpload: FileUpload | null;\r\n private readonly requirementService: RequirementsService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.requirementService = new RequirementsService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.fileUpload = null;\r\n\r\n this.state = {\r\n requirements: [],\r\n isRequirementsRefreshing: false,\r\n displayConfirmation: false,\r\n toDelete: null,\r\n loading: false,\r\n selectedRequirement: null,\r\n displayNewRequirementConfirmation: false,\r\n };\r\n }\r\n\r\n\r\n componentDidMount() {\r\n this.getRequirements();\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n if (nextProps.reloadRequirements) {\r\n this.setState({\r\n isRequirementsRefreshing: true\r\n }, () => {\r\n this.props.resetRefreshRequirementsState();\r\n });\r\n this.getRequirements();\r\n }\r\n if (nextProps.deleteRequirementAction) {\r\n this.setState({ displayConfirmation: true, toDelete: this.state.selectedRequirement.requirement });\r\n }\r\n if (nextProps.actionDownloadRequirement) {\r\n this.handleDownload();\r\n }\r\n }\r\n\r\n\r\n /**\r\n * On download\r\n */\r\n handleDownload() {\r\n\r\n this.requirementService.downloadRequirements().then((response: AxiosResponse) => {\r\n FileUtils.downloadFile(response);\r\n });\r\n }\r\n\r\n /**\r\n * On upload\r\n */\r\n handleUpload(e: { files: File[] }) {\r\n if (!e.files) {\r\n return;\r\n }\r\n\r\n this.requirementService\r\n .uploadRequirements(e.files[0])\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: `Success - Form updated`,\r\n });\r\n this.fileUpload?.clear();\r\n this.getRequirements();\r\n this.resetEditor();\r\n\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Error - Form NOT updated : ${message}`,\r\n });\r\n this.fileUpload?.clear();\r\n });\r\n }\r\n\r\n /**\r\n * New script\r\n */\r\n handleNewScript() {\r\n this.setState({ displayNewRequirementConfirmation: false, selectedRequirement: null });\r\n this.resetEditor();\r\n }\r\n\r\n /**\r\n * Delete script\r\n */\r\n handleDelete() {\r\n\r\n if (!this.state.toDelete) {\r\n return;\r\n }\r\n let requirements = [...this.state.requirements];\r\n /* let requirementsProperty = [...requirements[0].requirements]; */\r\n\r\n\r\n requirements = requirements.filter((obj) => {\r\n return obj.requirement !== this.state.toDelete;\r\n\r\n });\r\n\r\n this.setState({ requirements }, () => {\r\n this.handleUploadObject();\r\n });\r\n this.props.resetDeleteRequirementAction();\r\n this.setState({ displayConfirmation: false, toDelete: null, selectedRequirement: null });\r\n }\r\n\r\n handleUploadObject() {\r\n const dtoRequi = new Requirements(\r\n 'default',\r\n this.state.requirements\r\n );\r\n\r\n const jsonString = JSON.stringify(dtoRequi);\r\n let f = new File([jsonString], \"data.json\", { type: \"application/json\" });\r\n\r\n this.requirementService\r\n .uploadRequirements(f)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: `Success - Form updated`,\r\n });\r\n this.fileUpload?.clear();\r\n this.getRequirements();\r\n this.resetEditor();\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Error - Form NOT updated : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n\r\n resetEditor() {\r\n this.props.deletedRequirement();\r\n }\r\n\r\n /**\r\n * Load requirement\r\n */\r\n getRequirements() {\r\n this.requirementService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n this.setState({ requirements: response.data[0].requirements });\r\n });\r\n }\r\n\r\n actionBodyTemplate() {\r\n return (\r\n \r\n \r\n this.setState({ displayNewRequirementConfirmation: true })\r\n //this.props.scriptToViewCallback(this.state.selectedRequirement.fileName);\r\n\r\n }\r\n />\r\n (this.fileUpload = el)}\r\n accept=\".json\"\r\n customUpload={true}\r\n /* multiple={true} */\r\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\r\n auto\r\n // emptyTemplate={() =>

    {this.t(\"ui_admin_html_upload_content\")}

    }\r\n />\r\n
    \r\n );\r\n }\r\n\r\n renderDialogFooter() {\r\n return (\r\n
    \r\n {\r\n this.props.resetDeleteRequirementAction();\r\n this.setState({ displayConfirmation: false });\r\n }}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n this.handleDelete()}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n /*\r\n Validate methods\r\n */\r\n validationWindowForNewScript() {\r\n return (\r\n
    \r\n this.setState({ displayNewRequirementConfirmation: false })}\r\n className=\"p-button-danger\"\r\n />\r\n this.handleNewScript()}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n this.toast = el}/>\r\n {\r\n this.props.setCurrentRequirement(e.value);\r\n this.setState({ selectedRequirement: e.value }, () => {\r\n if (this.state.selectedRequirement) {\r\n this.props.requirementToViewCallback(this.state.selectedRequirement);\r\n }\r\n });\r\n }}\r\n onRowReorder={((e: any) => {\r\n this.setState({\r\n requirements: e.value\r\n }, () => {\r\n this.handleUploadObject();\r\n });\r\n })}\r\n dataKey=\"requirement\"\r\n stateStorage=\"local\"\r\n selectionMode=\"single\"\r\n reorderableColumns\r\n >\r\n \r\n \r\n \r\n\r\n \r\n this.actionBodyTemplate()\r\n }\r\n />\r\n this.setState({ displayConfirmation: false }, () => this.props.resetDeleteRequirementAction())}\r\n >\r\n
    \r\n \r\n Are you sure you want to proceed?\r\n
    \r\n \r\n\r\n\r\n
    \r\n this.setState({ displayNewRequirementConfirmation: false })}\r\n >\r\n
    \r\n \r\n Are you sure you want to create a new requirement?\r\n\r\n
    \r\n \r\n
    \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(RequirementSidebar);\r\n","export class Requirement {\r\n\r\n constructor(\r\n readonly group: string,\r\n readonly requirement: string,\r\n readonly requirementTitle: string, \r\n readonly answer: any,\r\n readonly prefix?: string,\r\n readonly suffix?: string, \r\n readonly uppercase?: boolean,\r\n readonly isActive?: boolean,\r\n ) {\r\n }\r\n}\r\n","import { AxiosResponse } from \"axios\";\r\nimport { TFunction } from \"i18next\";\r\nimport { Button } from \"primereact/button\";\r\nimport { Card } from \"primereact/card\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { ToggleButton } from 'primereact/togglebutton';\r\nimport { AutoComplete } from 'primereact/autocomplete';\r\n\r\nimport React from \"react\";\r\nimport { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\r\nimport { FormService } from \"../../form/services/FormService\";\r\nimport { TranslationService } from '../../form/services/TranslationService';\r\nimport { RequirementsService } from '../services/RequirementsService';\r\n\r\nimport RequirementSidebar from \"./components/RequirementSidebar\";\r\nimport \"./RequirementEditor.scss\";\r\nimport { Requirement } from \"../models/Requirement\";\r\nimport { Requirements } from \"../models/Requirements\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { DecisionTreeEditorService } from \"../services/DecisionTreeEditorService\";\r\nimport { DecisionTreeService } from \"../../form/services/DecisionTreeService\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\ninterface States {\r\n displayConfirmation: boolean;\r\n requirements: Requirement[];\r\n group: string | { name: string },\r\n groups: { name: string | undefined }[];\r\n filteredGroups: { name: string | undefined }[];\r\n requirementName: string,\r\n requirementTitle: { name: string },\r\n answerName: { type: string, target: string },\r\n suffix: string | { name: string },\r\n prefix: string | { name: string },\r\n uppercase: boolean,\r\n refreshRequirementsState: boolean,\r\n prismicKeys: { name: string }[];\r\n schemas: { type: string, target: string }[];\r\n decisionTrees: { type: string, target: string }[];\r\n allDecisionTrees: { type: string, target: string }[];\r\n prefixes: { name: string | undefined }[];\r\n suffixes: { name: string | undefined }[];\r\n filteredPrefixes: { name: string | undefined }[];\r\n filteredSuffixes: { name: string | undefined }[];\r\n decisionTreeList: any[];\r\n displayNewRequirementConfirmation: boolean;\r\n selectedRequirement: any;\r\n displayDeleteConfirmation: boolean;\r\n deleteRequirement: boolean,\r\n downloadRequirement: boolean,\r\n isActive: boolean;\r\n currentRequirement: Requirement | null;\r\n}\r\n\r\n\r\nclass RequirementEditor extends React.Component {\r\n\r\n\r\n private toast: Toast | null;\r\n private t: TFunction;\r\n private formService: FormService;\r\n private decisionTreeEditorService: DecisionTreeEditorService;\r\n\r\n private translationService: TranslationService;\r\n private requirementService: RequirementsService;\r\n private decisionTreeService: DecisionTreeService;\r\n\r\n private leftContents: any;\r\n private rightContents: any;\r\n\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.formService = new FormService();\r\n\r\n this.translationService = new TranslationService();\r\n this.requirementService = new RequirementsService();\r\n this.decisionTreeEditorService = new DecisionTreeEditorService();\r\n this.decisionTreeService = new DecisionTreeService();\r\n\r\n this.state = {\r\n requirements: [],\r\n displayConfirmation: false,\r\n group: \"\",\r\n groups: [],\r\n filteredGroups: [],\r\n requirementName: \"\",\r\n requirementTitle: { name: \"\" },\r\n answerName: { type: \"\", target: \"\" },\r\n suffix: \"\",\r\n prefix: \"\",\r\n uppercase: false,\r\n prismicKeys: [],\r\n refreshRequirementsState: false,\r\n schemas: [],\r\n decisionTrees: [],\r\n allDecisionTrees: [],\r\n\r\n prefixes: [],\r\n suffixes: [],\r\n filteredPrefixes: [],\r\n filteredSuffixes: [],\r\n decisionTreeList: [],\r\n displayNewRequirementConfirmation: false,\r\n selectedRequirement: null,\r\n displayDeleteConfirmation: false,\r\n deleteRequirement: false,\r\n downloadRequirement: false,\r\n isActive: false,\r\n currentRequirement: null,\r\n };\r\n this.resetEditor = this.resetEditor.bind(this);\r\n this.handleUpload = this.handleUpload.bind(this);\r\n\r\n this.searchGroup = this.searchGroup.bind(this);\r\n this.searchPrefix = this.searchPrefix.bind(this);\r\n this.searchSuffix = this.searchSuffix.bind(this);\r\n\r\n }\r\n\r\n\r\n componentDidMount() {\r\n\r\n this.getPrismicKeys().then(() => {\r\n this.getRequirements();\r\n });\r\n this.getDecisionTrees();\r\n this.getSchemas();\r\n\r\n }\r\n\r\n\r\n /**\r\n * Load requirements\r\n */\r\n private getRequirements() {\r\n this.requirementService\r\n .getMany()\r\n .then((response: AxiosResponse) => {\r\n\r\n let groups: { name: string | undefined }[] = [{ name: \"\" }];\r\n let prefixes: { name: string | undefined }[] = [{ name: '' }];\r\n let suffixes: { name: string | undefined }[] = [{ name: \"\" }];\r\n\r\n let requirementsArrived = response.data[0].requirements;\r\n\r\n let counter = 0;\r\n\r\n let groupAlreadyStored: any[] = [];\r\n let prefixAlreadyStored: any[] = [];\r\n let suffixAlreadyStored: any[] = [];\r\n\r\n let foundPrefix = false;\r\n let foundSuffix = false;\r\n\r\n for (let i = 0; i < requirementsArrived.length; i++) {\r\n\r\n if (requirementsArrived[i].group) {\r\n if (!groupAlreadyStored.includes(requirementsArrived[i].group)) {\r\n groupAlreadyStored.push(requirementsArrived[i].group);\r\n groups[counter] = { name: requirementsArrived[i].group };\r\n }\r\n }\r\n\r\n if (requirementsArrived[i].prefix) {\r\n prefixAlreadyStored.push(requirementsArrived[i].prefix);\r\n prefixes[counter] = { name: requirementsArrived[i].prefix };\r\n }\r\n if (requirementsArrived[i].suffix) {\r\n suffixAlreadyStored.push(requirementsArrived[i].suffix);\r\n suffixes[counter] = { name: requirementsArrived[i].suffix };\r\n }\r\n\r\n if (\r\n requirementsArrived[i].group\r\n ||\r\n requirementsArrived[i].suffix\r\n ||\r\n requirementsArrived[i].prefix\r\n &&\r\n !groupAlreadyStored.includes(requirementsArrived[i].group)\r\n ) {\r\n counter++;\r\n }\r\n }\r\n\r\n /* DELETE EMPTY ELEMENT AND ELEMENT.NAME EQUALS TO \"\" */\r\n for (let i = 0; i < groups.length; i++) {\r\n if (!groups[i] || groups[i].name === \"\") {\r\n let index = groups.indexOf(groups[i]);\r\n if (index > -1) {\r\n groups.splice(index, 1);\r\n }\r\n }\r\n }\r\n for (let i = 0; i < prefixes.length; i++) {\r\n if (!prefixes[i] || prefixes[i].name === \"\") {\r\n let index = prefixes.indexOf(prefixes[i]);\r\n if (index > -1) {\r\n prefixes.splice(index, 1);\r\n }\r\n }\r\n }\r\n for (let i = 0; i < suffixes.length; i++) {\r\n if (!suffixes[i] || suffixes[i].name === \"\") {\r\n let index = suffixes.indexOf(suffixes[i]);\r\n if (index > -1) {\r\n suffixes.splice(index, 1);\r\n }\r\n }\r\n }\r\n\r\n groups = groups.filter(function (el) {\r\n return el != null;\r\n });\r\n prefixes = prefixes.filter(function (el) {\r\n return el != null;\r\n });\r\n suffixes = suffixes.filter(function (el) {\r\n return el != null;\r\n });\r\n\r\n for (let i = 0; i < groups.length; i++) {\r\n if (this.state.groups.includes(groups[i])) {\r\n groups.splice(i, 1);\r\n }\r\n }\r\n\r\n /* Delete duplicate possibly pushed by prismic keys */\r\n prefixes = this.uniq_fast(prefixes);\r\n suffixes = this.uniq_fast(suffixes);\r\n\r\n /* Set values */\r\n this.setState(prevState => (\r\n {\r\n groups: groups,\r\n prefixes: [...prefixes, ...prevState.prefixes],\r\n suffixes: [...suffixes, ...prevState.suffixes]\r\n })\r\n );\r\n\r\n /* REQUIREMENT */\r\n this.setState({ requirements: requirementsArrived });\r\n });\r\n }\r\n\r\n private uniq_fast(a) {\r\n let seen = {};\r\n let out: any[] = [];\r\n let len = a.length;\r\n let j = 0;\r\n for (let i = 0; i < len; i++) {\r\n let item = a[i];\r\n if (seen[item] !== 1) {\r\n seen[item] = 1;\r\n out[j++] = item;\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n /**\r\n * Load decision trees\r\n */\r\n private getDecisionTrees() {\r\n this.decisionTreeService.getAllDecisionTrees().then((res) => {\r\n\r\n let decisionTreesTransform: { type: string, target: string }[] = [];\r\n for (let i = 0; i < res.data.length; i++) {\r\n let name: string = res.data[i].name;\r\n decisionTreesTransform.push({ type: \"decision_tree\", target: name });\r\n }\r\n\r\n this.setState({\r\n decisionTrees: decisionTreesTransform\r\n });\r\n\r\n this.setState({\r\n allDecisionTrees: [...decisionTreesTransform]\r\n });\r\n });\r\n\r\n this.decisionTreeService.getAllDecisionTrees().then((res: any) => {\r\n if (res.data) {\r\n const data = [] as any;\r\n for (const dt of res.data) {\r\n data.push({ type: \"decision_tree\", target: dt.name });\r\n }\r\n this.setState({\r\n decisionTreeList: data\r\n });\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Load schemas\r\n */\r\n private getSchemas() {\r\n this.decisionTreeEditorService.findAll().then((res) => {\r\n\r\n let schemasTransform: { type: string, target: string }[] = [];\r\n for (let i = 0; i < res.data.length; i++) {\r\n let name: string = res.data[i].name;\r\n schemasTransform.push({ type: \"decision_tree\", target: name });\r\n }\r\n\r\n this.setState({\r\n schemas: schemasTransform\r\n });\r\n\r\n this.setState(prevState => ({\r\n allDecisionTrees: [...schemasTransform, ...prevState.allDecisionTrees]\r\n }));\r\n });\r\n }\r\n\r\n /**\r\n * Load prismic keys\r\n */\r\n private async getPrismicKeys() {\r\n await this.translationService.get('fr')\r\n .then((response) => {\r\n return response;\r\n })\r\n .then((data) => {\r\n\r\n let transformObj = [{ name: '' }];\r\n\r\n for (let i = 0; i < Object.keys(data.data).length; i++) {\r\n transformObj[i] = { name: Object.keys(data.data)[i] };\r\n }\r\n this.setState({ prismicKeys: transformObj });\r\n\r\n /* Delete duplicate possibly pushed by prismic keys */\r\n for (let i = 0; i < transformObj.length; i++) {\r\n if (this.state.prefixes.includes(transformObj[i])) {\r\n\r\n transformObj.splice(i, 1);\r\n }\r\n if (this.state.suffixes.includes(transformObj[i])) {\r\n transformObj.splice(i, 1);\r\n }\r\n }\r\n\r\n this.setState(prevState => ({\r\n prefixes: [...transformObj, ...prevState.prefixes],\r\n suffixes: [...transformObj, ...prevState.suffixes]\r\n }));\r\n });\r\n }\r\n\r\n refreshRequirement = (requirement) => {\r\n\r\n\r\n if (!requirement.requirement) {\r\n requirement.requirement = \"\";\r\n }\r\n if (!requirement.answer) {\r\n requirement.answer = { type: \"\", target: \"\" };\r\n }\r\n if (!requirement.requirementTitle) {\r\n requirement.requirementTitle = { name: \"\" };\r\n }\r\n if (!requirement.prefix) {\r\n requirement.prefix = \"\";\r\n }\r\n if (!requirement.suffix) {\r\n requirement.suffix = \"\";\r\n }\r\n if (!requirement.uppercase) {\r\n requirement.uppercase = false;\r\n }\r\n\r\n this.setState(\r\n {\r\n selectedRequirement: requirement,\r\n group: requirement.group,\r\n requirementName: requirement.requirement,\r\n answerName: requirement.answer,\r\n requirementTitle: { name: requirement.requirementTitle },\r\n prefix: requirement.prefix,\r\n suffix: requirement.suffix,\r\n uppercase: requirement.uppercase\r\n }\r\n );\r\n };\r\n\r\n private searchGroup(event) {\r\n setTimeout(() => {\r\n let filteredGroups;\r\n if (!event.query.trim().length) {\r\n filteredGroups = [...this.state.groups];\r\n }\r\n else {\r\n filteredGroups = this.state.groups.filter((group) => {\r\n return group.name?.toLowerCase().startsWith(event.query.toLowerCase());\r\n });\r\n }\r\n this.setState({ filteredGroups });\r\n }, 250);\r\n }\r\n\r\n private searchPrefix(event) {\r\n setTimeout(() => {\r\n\r\n let filteredPrefixes: { name: string | undefined }[];\r\n\r\n if (!event.query.trim().length) {\r\n filteredPrefixes = [...this.state.prefixes];\r\n }\r\n else {\r\n filteredPrefixes = this.state.prefixes.filter((prefix) => {\r\n return prefix.name?.toLowerCase().startsWith(event.query.toLowerCase());\r\n });\r\n }\r\n this.setState({ filteredPrefixes });\r\n }, 250);\r\n }\r\n\r\n private searchSuffix(event) {\r\n setTimeout(() => {\r\n let filteredSuffixes;\r\n if (!event.query.trim().length) {\r\n filteredSuffixes = [...this.state.suffixes];\r\n }\r\n else {\r\n filteredSuffixes = this.state.suffixes.filter((suffix) => {\r\n return suffix.name?.toLowerCase().startsWith(event.query.toLowerCase());\r\n });\r\n }\r\n this.setState({ filteredSuffixes });\r\n }, 250);\r\n }\r\n\r\n\r\n /**\r\n * On upload for one script\r\n */\r\n handleUpload() {\r\n\r\n let group = this.state.group;\r\n let requirementName = this.state.requirementName;\r\n let requirementTitle = this.state.requirementTitle;\r\n let answerName = this.state.answerName;\r\n\r\n let suffix = \"\";\r\n let prefix = \"\";\r\n\r\n /* let suffix = this.state.suffix;\r\n let prefix = this.state.prefix; */\r\n\r\n if (typeof this.state.suffix === 'string') {\r\n suffix = this.state.suffix;\r\n }\r\n else {\r\n suffix = this.state.suffix.name;\r\n }\r\n\r\n if (typeof this.state.prefix === 'string') {\r\n prefix = this.state.prefix;\r\n }\r\n else {\r\n prefix = this.state.prefix.name;\r\n }\r\n\r\n\r\n let uppercase = this.state.uppercase;\r\n\r\n if (typeof this.state.group === 'string') {\r\n group = this.state.group;\r\n }\r\n else {\r\n group = this.state.group.name;\r\n }\r\n\r\n if (!group || group === \"\") {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please enter a group name !`,\r\n });\r\n return;\r\n }\r\n else if (!requirementName) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please enter a requirement name !`,\r\n });\r\n return;\r\n }\r\n else if (!requirementTitle.name || requirementTitle.name === \"\") {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select the title requirement !`,\r\n });\r\n return;\r\n }\r\n else if (!answerName || answerName.target === \"\") {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Please select the answer of the requirement !`,\r\n });\r\n return;\r\n }\r\n\r\n\r\n let requi = new Requirement(\r\n group,\r\n requirementName,\r\n requirementTitle.name,\r\n answerName,\r\n prefix,\r\n suffix,\r\n uppercase,\r\n this.state.isActive\r\n );\r\n\r\n const r = this.state.requirements as any;\r\n if (!r.length) {\r\n r[0] = requi;\r\n }\r\n for (let i = 0; i < r.length; i++) {\r\n if (r[i].requirement === requi.requirement) {\r\n r[i] = requi;\r\n break;\r\n }\r\n else if (\r\n r[i].requirement !== requi.requirement\r\n &&\r\n r[r.length - 1] === r[i]\r\n ) {\r\n r.push(requi);\r\n break;\r\n }\r\n }\r\n this.setState({\r\n requirements: r\r\n });\r\n\r\n const dtoRequi = new Requirements(\r\n 'default',\r\n this.state.requirements\r\n );\r\n\r\n const jsonString = JSON.stringify(dtoRequi);\r\n\r\n let f = new File([jsonString], \"data.json\", { type: \"application/json\" });\r\n this.requirementService\r\n .uploadRequirements(f)\r\n .then(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: `Success - Requirement uploaded`,\r\n });\r\n this.setState({ refreshRequirementsState: true });\r\n })\r\n .catch((err: any) => {\r\n const message = err?.response?.data?.message;\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Requirement NOT uploaded : ${message}`,\r\n });\r\n });\r\n }\r\n\r\n resetEditor() {\r\n\r\n this.setState({\r\n requirements: [],\r\n displayConfirmation: false,\r\n group: \"\",\r\n groups: [],\r\n filteredGroups: [],\r\n requirementName: \"\",\r\n requirementTitle: { name: \"\" },\r\n answerName: { type: \"\", target: \"\" },\r\n suffix: \"\",\r\n prefix: \"\",\r\n uppercase: false,\r\n prismicKeys: [],\r\n refreshRequirementsState: false,\r\n schemas: [],\r\n decisionTrees: [],\r\n allDecisionTrees: [],\r\n currentRequirement: null,\r\n isActive: true,\r\n\r\n prefixes: [],\r\n suffixes: [],\r\n filteredPrefixes: [],\r\n filteredSuffixes: [],\r\n }, () => {\r\n this.getRequirements();\r\n this.getPrismicKeys();\r\n this.getSchemas();\r\n this.getDecisionTrees();\r\n });\r\n\r\n\r\n }\r\n\r\n handleDeletedRequirement = () => {\r\n this.resetEditor();\r\n };\r\n\r\n handleNewScript() {\r\n this.setState({ displayNewRequirementConfirmation: false });\r\n this.resetEditor();\r\n }\r\n\r\n renderDeleteDialogFooter() {\r\n return (\r\n
    \r\n this.setState({ displayConfirmation: false })}\r\n className=\"p-button-text\"\r\n />\r\n this.setState({ deleteRequirement: true })}\r\n autoFocus\r\n />\r\n
    \r\n );\r\n }\r\n\r\n\r\n render() {\r\n this.leftContents = (\r\n \r\n

    Requirement editor

    \r\n
    \r\n this.setState({ requirementName: e.currentTarget.value })}\r\n placeholder=\"Requirement name\"\r\n style={{ width: '20rem' }}\r\n className=\"requirementInput\"\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n if (this.state.currentRequirement) {\r\n this.requirementService.activeOne(this.state.requirementName, e.checked).then(res => {\r\n if (res.status === 201) {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: `Requirement updated!`,\r\n });\r\n const currentRequirement = this.state.currentRequirement as any;\r\n if (currentRequirement) {\r\n currentRequirement.isActive = e.checked;\r\n }\r\n this.setState({ isActive: e.checked, refreshRequirementsState: true, currentRequirement });\r\n }\r\n });\r\n }\r\n else {\r\n this.setState({ isActive: e.checked });\r\n }\r\n }}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n this.rightContents = (\r\n
    \r\n this.setState({\r\n downloadRequirement: true\r\n }, () => this.setState({\r\n downloadRequirement: false\r\n }))}\r\n />\r\n \r\n {\r\n if (!this.state.selectedRequirement) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n summary: 'Error',\r\n detail: `Please select a requirement`,\r\n });\r\n return;\r\n }\r\n else {\r\n this.setState({ deleteRequirement: true });\r\n }\r\n }}\r\n />\r\n
    \r\n );\r\n\r\n return (\r\n
    \r\n
    \r\n this.setState({ refreshRequirementsState: false })}\r\n deletedRequirement={this.handleDeletedRequirement}\r\n deleteRequirementAction={this.state.deleteRequirement}\r\n resetDeleteRequirementAction={() => this.setState({ deleteRequirement: false })}\r\n actionDownloadRequirement={this.state.downloadRequirement}\r\n setCurrentRequirement={(currentRequirement) => {\r\n this.setState({ currentRequirement, isActive: (currentRequirement.isActive === undefined) ? true : currentRequirement.isActive });\r\n }}\r\n />\r\n
    \r\n \r\n
    \r\n \r\n (this.toast = el)}/>\r\n\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n {\"Group\"}\r\n \r\n\r\n this.setState({ group: e.value })}\r\n />\r\n\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\"Answer\"}\r\n \r\n {\r\n this.setState({ answerName: e.value });\r\n }}\r\n optionLabel=\"target\"\r\n filter\r\n filterBy=\"target\"\r\n placeholder={\"Select the answer target\"}\r\n />\r\n \r\n
    \r\n
    \r\n {\"Requirement title\"}\r\n \r\n {\r\n this.setState({ requirementTitle: e.value });\r\n }}\r\n optionLabel=\"name\"\r\n filter\r\n filterBy=\"name\"\r\n placeholder={\"Select a prismic key\"}\r\n />\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n {\"Prefix\"}\r\n \r\n {/* this.setState({ prefix: e.currentTarget.value })}\r\n\r\n placeholder=\"Prefix\"\r\n style={{width: '20rem'}}\r\n /> */}\r\n\r\n this.setState({ prefix: e.value })}\r\n />\r\n\r\n \r\n
    \r\n
    \r\n {\"Suffix\"}\r\n \r\n\r\n this.setState({ suffix: e.value })}\r\n />\r\n\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n {\"Uppercase\"}\r\n this.setState({ uppercase: e.value })}\r\n onIcon=\"pi pi-check\"\r\n offIcon=\"pi pi-times\"\r\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 withTranslation()(RequirementEditor);\r\n","import {APIService} from \"../../../shared/services/APIService\";\r\nimport {Form} from \"../../../form/models/Form\";\r\nimport {Schema} from \"../../models/Schema\";\r\nimport {FormQuestion} from \"../../../form/models/FormQuestion\";\r\n\r\nexport class FormEditorService extends APIService {\r\n\r\n /**\r\n * Get form\r\n */\r\n getForm() {\r\n return this.http.get
    ('/forms/default');\r\n }\r\n\r\n updateQuestionName(schema: Schema | null, currentTreeName: string | null) {\r\n return this.http.put(`/editor-decision-trees/update-name/${currentTreeName}`, schema);\r\n }\r\n\r\n updateQuestions(questions: FormQuestion[]) {\r\n return this.http.put(`/forms/update-questions`, {questions});\r\n }\r\n\r\n updateForm(form: Form | null) {\r\n return this.http.put(`/forms/update-form`, {form});\r\n }\r\n}\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../../../form/services/FormService\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { DataTable } from \"primereact/components/datatable/DataTable\";\r\nimport { Column } from \"primereact/components/column/Column\";\r\nimport \"./FormEditorSidebar.scss\";\r\nimport { Form } from \"../../../form/models/Form\";\r\nimport { FormEditorService } from \"../services/FormEditorService\";\r\nimport { SeverityEnum } from \"../../../shared/enum/SeverityEnum\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { QuestionType } from \"../../../form/enum/QuestionType\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { Chips } from 'primereact/chips';\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { FormType } from \"../../../form/enum/FormType\";\r\nimport { RadioButton } from \"primereact/radiobutton\";\r\nimport { DecisionTreeEditorService } from \"../../services/DecisionTreeEditorService\";\r\nimport { DecisionTree } from \"../../../admin/models/DecisionTree\";\r\n\r\n\r\ninterface States {\r\n questions: any[];\r\n currentQuestion: any;\r\n displayAddQuestionDialog: boolean;\r\n displayDeleteAllQuestionDialog: boolean;\r\n displayConfigFormDialog: boolean;\r\n currentNewQuestion: any;\r\n currentNewQuestionType: any;\r\n formConfig: { googleTag: string, prismic: string[], type: FormType, graphDecisionTree: string | null, diagramDecisionTree: string | null };\r\n form: Form | null;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n questions: any[];\r\n form: Form | null;\r\n onQuestionSelection: (question) => void;\r\n refreshQuestionList: () => void;\r\n prismicKeys: string[];\r\n addQuestion: (question) => void;\r\n deleteAllQuestion: () => void;\r\n saveFormConfig: (formConfig) => void;\r\n currentQuestion: any;\r\n decisionTrees: DecisionTree[]\r\n}\r\n\r\nclass FormEditorSidebar extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n private formEditorService: FormEditorService;\r\n private toast: Toast | null;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.formEditorService = new FormEditorService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n\r\n this.state = {\r\n questions: [],\r\n currentQuestion: null,\r\n displayAddQuestionDialog: false,\r\n displayDeleteAllQuestionDialog: false,\r\n displayConfigFormDialog: false,\r\n currentNewQuestionType: null,\r\n currentNewQuestion: null,\r\n formConfig: { googleTag: '', prismic: [], type: FormType.REQUIREMENT, graphDecisionTree: null, diagramDecisionTree: null },\r\n form: null\r\n };\r\n }\r\n\r\n private _onQuestionOrder(e: any) {\r\n this.formEditorService.updateQuestions(e).then(() => {\r\n this.props.refreshQuestionList();\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Question déplacée!',\r\n });\r\n });\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n this.setState({\r\n questions: nextProps.questions\r\n });\r\n if (nextProps.form) {\r\n const formConfig = {\r\n googleTag: nextProps.form.googleTag ?? '',\r\n prismic: nextProps.form.prismic ?? [],\r\n type: nextProps.form.type ?? FormType.REQUIREMENT,\r\n graphDecisionTree: nextProps.form.graphDecisionTree ?? null,\r\n diagramDecisionTree: nextProps.form.diagramDecisionTree ?? null\r\n };\r\n this.setState({\r\n formConfig\r\n });\r\n }\r\n if (nextProps.currentQuestion) {\r\n this.setState({\r\n currentQuestion: nextProps.currentQuestion\r\n });\r\n }\r\n }\r\n\r\n private _renderAddQuestionDialogFooter() {\r\n return (\r\n
    \r\n this.setState({\r\n displayAddQuestionDialog: false,\r\n currentNewQuestion: null,\r\n currentNewQuestionType: null\r\n })}\r\n className=\"p-mb-2\"\r\n />\r\n {\r\n let question: any = {\r\n values: [],\r\n question: this.state.currentNewQuestion,\r\n type: this.state.currentNewQuestionType\r\n };\r\n switch (question.type) {\r\n case QuestionType.NUMBER:\r\n question.validation = {\r\n min: 0,\r\n step: 1\r\n };\r\n }\r\n this.props.addQuestion(question);\r\n this.setState({\r\n displayAddQuestionDialog: false,\r\n });\r\n }}\r\n disabled={(!this.state.currentNewQuestionType || !this.state.currentNewQuestion)}\r\n\r\n className=\"p-mb-2\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _addNewEmptyQuestion() {\r\n let question: any = {\r\n values: [],\r\n question: `New_question_${this.state.questions.length + 1}`,\r\n type: null\r\n };\r\n for (const q of this.props.questions) {\r\n //check if question already exist\r\n if (q.question === question.question) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: `Question with the name ${question.question} already exists !`,\r\n });\r\n return;\r\n }\r\n }\r\n this.props.addQuestion(question);\r\n this.setState({ currentQuestion: question });\r\n this.props.onQuestionSelection(question);\r\n this.setState({\r\n displayAddQuestionDialog: false,\r\n });\r\n }\r\n\r\n render() {\r\n\r\n let questionTypes: any[] = [];\r\n for (let i in QuestionType) {\r\n questionTypes.push({ name: QuestionType[i], label: QuestionType[i] });\r\n }\r\n\r\n let formConfigPrismic: any[] = [];\r\n let commonPrismic: any[] = [];\r\n for (let prismic of this.state.formConfig.prismic) {\r\n if (!prismic.includes('common')) {\r\n formConfigPrismic.push(prismic);\r\n }\r\n else {\r\n commonPrismic.push(prismic);\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n this.toast = el} />\r\n
    \r\n {\r\n this._onQuestionOrder(e.value);\r\n }}\r\n selection={this.state.currentQuestion}\r\n onSelectionChange={e => {\r\n this.setState({ currentQuestion: e.value });\r\n this.props.onQuestionSelection(e.value);\r\n }}\r\n selectionMode=\"single\"\r\n dataKey=\"question\"\r\n scrollHeight=\"70vh\"\r\n scrollable\r\n >\r\n \r\n \r\n \r\n (\r\n
    \r\n this.setState({ displayConfigFormDialog: true })}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-secondary\" />\r\n this._addNewEmptyQuestion()}\r\n className=\"p-button-success\" />\r\n
    \r\n )}\r\n />\r\n
    \r\n {\r\n this.setState({\r\n displayAddQuestionDialog: false,\r\n currentNewQuestion: null,\r\n currentNewQuestionType: null\r\n });\r\n }}>\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({ currentNewQuestion: e.value.name ?? e.value });\r\n }}\r\n filter\r\n editable\r\n appendTo={document.body}\r\n placeholder=\"Select a question\" />\r\n
    \r\n
    \r\n \r\n {\r\n this.setState({ currentNewQuestionType: e.value.name ?? e.value });\r\n }}\r\n filter\r\n editable\r\n appendTo={document.body}\r\n placeholder=\"Select a question\" />\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n )}\r\n onHide={() => this.setState({ displayDeleteAllQuestionDialog: false })}>\r\n
    \r\n \r\n Voulez-vous supprimer toutes les questions ?\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n onHide={() => this.setState({ displayConfigFormDialog: false })}>\r\n
    \r\n\r\n
    \r\n \r\n {\r\n const formConfig = this.state.formConfig;\r\n formConfig.googleTag = e.target.value;\r\n this.setState({ formConfig });\r\n }}\r\n />\r\n
    \r\n
    \r\n \r\n {\r\n const formConfig = this.state.formConfig;\r\n formConfig.prismic = e.value;\r\n formConfig.prismic = formConfig.prismic.concat(commonPrismic);\r\n this.setState({ formConfig });\r\n }}\r\n />\r\n
    \r\n
    \r\n *Write the key and press \"enter\" to add the key in the Prismic list.\r\n
    \r\n
    \r\n
    \r\n \r\n {\r\n const formConfig = this.state.formConfig\r\n formConfig.type = FormType.GRAPH\r\n this.setState({\r\n formConfig\r\n })\r\n }}>\r\n \r\n
    \r\n
    \r\n {\r\n const formConfig = this.state.formConfig\r\n formConfig.type = FormType.REQUIREMENT\r\n this.setState({\r\n formConfig\r\n })\r\n }}\r\n >\r\n \r\n
    \r\n
    \r\n {this.state.formConfig.type === FormType.GRAPH && (\r\n <>\r\n
    \r\n \r\n e.name)}\r\n onChange={(e) => {\r\n const formConfig = this.state.formConfig\r\n formConfig.graphDecisionTree = e.value\r\n this.setState({\r\n formConfig\r\n })\r\n }}\r\n placeholder=\"Graph decision tree\"\r\n required={this.state.formConfig.type === FormType.GRAPH}\r\n />\r\n
    \r\n
    \r\n \r\n e.name)}\r\n onChange={(e) => {\r\n const formConfig = this.state.formConfig\r\n formConfig.diagramDecisionTree = e.value\r\n this.setState({\r\n formConfig\r\n })\r\n }}\r\n placeholder=\"Diagram decision tree\"\r\n required={this.state.formConfig.type === FormType.GRAPH}\r\n />\r\n
    \r\n \r\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 withTranslation()(FormEditorSidebar);\r\n","export enum OperatorEnum {\r\n NOT_EQUAL = 'neq',\r\n EQUAL = 'eq',\r\n GREATER_THAN = 'gt',\r\n GREATER_THAN_OR_EQUAL_TO = 'gte',\r\n LOWER_THAN = 'lt',\r\n LOWER_THAN_OR_EQUAL_TO = 'lte',\r\n IN = 'in',\r\n NOT_IN = 'nin',\r\n AND = 'and',\r\n OR = 'or',\r\n STRICTLY_EQUAL = 'strictly_eq',\r\n STRICTLY_INCLUDED = 'strictly_included',\r\n STRICTLY_INCLUDES = 'strictly_includes'\r\n}\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport \"./FormEditorTopbar.scss\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../../../form/services/FormService\";\r\nimport { DecisionTreeEditorService } from \"../../services/DecisionTreeEditorService\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { SeverityEnum } from \"../../../shared/enum/SeverityEnum\";\r\nimport { Button } from \"primereact/components/button/Button\";\r\nimport { Toolbar } from \"primereact/toolbar\";\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport { Input } from \"@bbri/ui\";\r\nimport { FormEditorService } from \"../services/FormEditorService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\n\r\n\r\ninterface States {\r\n currentQuestion: any;\r\n displayDialog: boolean;\r\n showConfirmDeleteDialog: boolean;\r\n showRenameDialog: boolean;\r\n showFormDialog: boolean;\r\n currentQuestionName: any;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n currentQuestion: any;\r\n refreshQuestionList: () => void;\r\n updateQuestionName: (currentQuestion: any, currentName: string) => any;\r\n currentForm: any;\r\n saveForm: () => any;\r\n deleteQuestion: (question) => void;\r\n\r\n}\r\n\r\nclass FormEditorTopbar extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n private formEditorService: FormEditorService;\r\n private decisionTreeEditorService: DecisionTreeEditorService;\r\n private toast: Toast | null;\r\n private leftContents: any;\r\n private rightContents: any;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n this.formEditorService = new FormEditorService();\r\n this.decisionTreeEditorService = new DecisionTreeEditorService();\r\n this.t = this.props.t;\r\n this.toast = null;\r\n this.state = {\r\n currentQuestion: null,\r\n displayDialog: false,\r\n showConfirmDeleteDialog: false,\r\n showRenameDialog: false,\r\n showFormDialog: false,\r\n currentQuestionName: null\r\n };\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n if (nextProps.currentQuestion) {\r\n this.setState({\r\n currentQuestion: nextProps.currentQuestion,\r\n currentQuestionName: nextProps.currentQuestion.question\r\n });\r\n }\r\n }\r\n\r\n private _renderRenameDialogFooter() {\r\n return (\r\n
    \r\n this.setState({\r\n currentQuestionName: this.state.currentQuestion.question,\r\n showRenameDialog: false\r\n })}\r\n className=\"p-mb-2\"\r\n />\r\n this._updateCurrentQuestionName()}\r\n className=\"p-mb-2\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _renderDeleteFooter() {\r\n return (\r\n
    \r\n this.setState({ showConfirmDeleteDialog: false })}\r\n style={{ backgroundColor: '#0087b7', borderColor: '#0087b7' }}\r\n className=\"p-button-danger\"\r\n />\r\n this._deleteQuestion()}\r\n className=\"p-button-danger\"\r\n />\r\n
    \r\n );\r\n }\r\n\r\n private _updateCurrentQuestionName() {\r\n if (!this.state.currentQuestionName) {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: \"Le nom n'a pas été modifié !\",\r\n });\r\n return;\r\n }\r\n if (this.props.currentQuestion) {\r\n this.props.updateQuestionName(this.state.currentQuestion, this.state.currentQuestionName).then(r => {\r\n if (r) {\r\n this.toast?.show({\r\n severity: SeverityEnum.SUCCESS,\r\n detail: 'Schéma sauvegardé',\r\n });\r\n let currentQuestion = this.state.currentQuestion;\r\n currentQuestion.question = this.state.currentQuestionName;\r\n this.setState({\r\n currentQuestion,\r\n showRenameDialog: false\r\n });\r\n }\r\n }).catch(() => {\r\n this.toast?.show({\r\n severity: SeverityEnum.ERROR,\r\n detail: 'Une erreur est survenue !',\r\n });\r\n });\r\n\r\n }\r\n }\r\n\r\n private _deleteQuestion() {\r\n if (this.props.currentQuestion) {\r\n this.props.deleteQuestion(this.state.currentQuestion);\r\n this.setState({\r\n showConfirmDeleteDialog: false\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n\r\n this.leftContents = (\r\n \r\n

    Form editor

    \r\n
    \r\n {\r\n if (this.state.currentQuestion) {\r\n const currentQuestion = this.state.currentQuestion;\r\n currentQuestion.newName = e.currentTarget.value;\r\n this.setState({\r\n currentQuestion,\r\n currentQuestionName: e.currentTarget.value\r\n });\r\n }\r\n }}\r\n placeholder=\"Question name\"\r\n style={{ width: '20rem' }}\r\n className=\"requirementInput\"\r\n disabled={!this.state.currentQuestion}\r\n />\r\n
    \r\n
    \r\n );\r\n this.rightContents = (\r\n
    \r\n
    \r\n );\r\n\r\n if (!this.state.currentQuestionName && this.state.currentQuestion) {\r\n this.setState({\r\n currentQuestionName: this.state.currentQuestion.question\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n (this.toast = el)}/>\r\n \r\n {\r\n this.setState({\r\n showRenameDialog: false\r\n });\r\n }}>\r\n \r\n {\r\n this.setState({\r\n currentQuestionName: e.target.value\r\n });\r\n }}\r\n />\r\n \r\n this.setState({ showConfirmDeleteDialog: false })}\r\n header=\"Confirmation\"\r\n footer={this._renderDeleteFooter()}\r\n >\r\n
    \r\n \r\n Do you want to delete this question?\r\n
    \r\n \r\n {\r\n\r\n }}\r\n header={this.props.currentQuestion?.key ?? ''}\r\n style={{ width: '1000px', height: '500px' }}\r\n >\r\n \r\n {\r\n this.setState({\r\n showFormDialog: false\r\n });\r\n }}\r\n header=\"Form\"\r\n visible={this.state.showFormDialog}\r\n footer={\r\n
    \r\n {\r\n prompt(\"Copy to clipboard: Ctrl+C, Enter\", JSON.stringify(this.props.currentForm, null, 4) ?? '');\r\n }}\r\n className=\"p-button-danger\"\r\n />\r\n
    \r\n }\r\n style={{ width: '1000px' }}\r\n >\r\n
    {JSON.stringify(this.props.currentForm, null, 4)}
    \r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(FormEditorTopbar);\r\n","import { withTranslation, WithTranslation } from \"react-i18next\";\r\nimport React from \"react\";\r\nimport { FormQuestion } from \"../../../form/models/FormQuestion\";\r\nimport { Dropdown } from \"primereact/dropdown\";\r\nimport { QuestionType } from \"../../../form/enum/QuestionType\";\r\nimport { TranslationService } from \"../../../form/services/TranslationService\";\r\nimport { InputText } from \"primereact/inputtext\";\r\nimport { DataTable } from 'primereact/datatable';\r\nimport { Column } from 'primereact/column';\r\nimport { Button } from 'primereact/button';\r\nimport { Dialog } from \"primereact/dialog\";\r\nimport \"./FormEditorWorkPlace.scss\";\r\nimport { Checkbox } from \"primereact/checkbox\";\r\nimport { DecisionTree } from \"../../../admin/models/DecisionTree\";\r\nimport { Fieldset } from \"primereact/fieldset\";\r\nimport { Toast } from \"primereact/toast\";\r\nimport { MultiSelect } from \"primereact/multiselect\";\r\nimport { OrganizationChart } from \"primereact/organizationchart\";\r\nimport { OperatorEnum } from \"../operator.enum\";\r\nimport { TabPanel, TabView } from 'primereact/tabview';\r\nimport { InputNumber } from 'primereact/inputnumber';\r\nimport { InputTextarea } from \"primereact/inputtextarea\";\r\nimport { SeverityEnum } from \"../../../shared/enum/SeverityEnum\";\r\n\r\ninterface States {\r\n currentQuestion: FormQuestion | null;\r\n changes: boolean;\r\n isEditing: boolean;\r\n displayAddValueDialog: boolean;\r\n displayAddConditionDialog: boolean;\r\n displayDeleteConditionDialog: boolean;\r\n displayEditConditionDialog: boolean;\r\n currentValue: any;\r\n currentImageValue: any;\r\n currentSubQuestion: any;\r\n currentSubQuestionType: any;\r\n currentImageName: any;\r\n currentCondition: any;\r\n currentConditionEdit: any;\r\n activeIndex: number;\r\n}\r\n\r\ninterface Props extends WithTranslation {\r\n currentQuestion: any;\r\n prismicKeys: string[];\r\n questions: FormQuestion[];\r\n decisionTrees: DecisionTree[];\r\n}\r\n\r\nclass FormEditorWorkPlace extends React.Component {\r\n\r\n private translationService: TranslationService;\r\n private toast: Toast | null;\r\n private nodeCount: number;\r\n private nodeCount2: number;\r\n private nodes: any;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.toast = null;\r\n this.translationService = new TranslationService();\r\n this.nodeCount = 0;\r\n this.nodeCount2 = 0;\r\n\r\n this.state = {\r\n currentQuestion: null,\r\n changes: false,\r\n isEditing: false,\r\n displayAddValueDialog: false,\r\n displayAddConditionDialog: false,\r\n displayDeleteConditionDialog: false,\r\n displayEditConditionDialog: false,\r\n currentValue: '',\r\n currentImageValue: '',\r\n currentSubQuestion: null,\r\n currentSubQuestionType: null,\r\n currentImageName: null,\r\n currentCondition: { currentNode: null, lhs: { type: null, value: null }, operator: null, rhs: { type: null, value: null } },\r\n currentConditionEdit: null,\r\n activeIndex: 0\r\n };\r\n }\r\n\r\n componentWillReceiveProps(nextProps: Readonly, nextContext: any) {\r\n this.setState({\r\n currentQuestion: nextProps.currentQuestion\r\n });\r\n }\r\n\r\n private _setQuestionValue(key: string, value: any) {\r\n let currentQuestion = this.state.currentQuestion;\r\n if (currentQuestion) {\r\n currentQuestion[key] = value;\r\n this.setState({\r\n currentQuestion,\r\n changes: true\r\n });\r\n }\r\n }\r\n\r\n private _setQuestionValueWithDoubleKey(key: string[], value: any) {\r\n let currentQuestion = this.state.currentQuestion;\r\n if (currentQuestion) {\r\n if (!currentQuestion[key[0]]) {\r\n currentQuestion[key[0]] = {} as any;\r\n }\r\n currentQuestion[key[0]][key[1]] = value;\r\n this.setState({\r\n currentQuestion,\r\n changes: true\r\n });\r\n }\r\n }\r\n\r\n private _editValue(props) {\r\n return ( {\r\n let currentQuestion = this.state.currentQuestion;\r\n if (currentQuestion) {\r\n currentQuestion.values[props.rowIndex] = e.value.name ?? e.value;\r\n this.setState({ currentQuestion });\r\n }\r\n }}\r\n placeholder=\"Select a City\"\r\n filter\r\n editable\r\n />);\r\n }\r\n\r\n private _editImageValue(props) {\r\n return ( {\r\n let currentQuestion = this.state.currentQuestion;\r\n if (currentQuestion) {\r\n currentQuestion.imageValues[props.rowIndex] = e.value.name ?? e.value;\r\n this.setState({ currentQuestion });\r\n }\r\n }}\r\n placeholder=\"Select a City\"\r\n filter\r\n editable\r\n />);\r\n }\r\n\r\n private _actionBodyTemplate(row) {\r\n return (\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n\r\n\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(DiagramEditor);\r\n","import i18n from \"i18next\";\r\nimport BrowserDetector from \"i18next-browser-languagedetector\";\r\nimport HttpApi, { BackendOptions } from \"i18next-http-backend\";\r\nimport React, { Component } from \"react\";\r\nimport CookieConsent from \"react-cookie-consent\";\r\nimport { initReactI18next, WithTranslation, withTranslation, } from \"react-i18next\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport AdminPage from \"./admin/AdminPage\";\r\nimport FormPage from \"./form/FormPage\";\r\nimport MainLayout from \"./layout/MainLayout\";\r\nimport AdminRoute from \"./login/components/AdminRoute\";\r\nimport PrivateRoute from \"./login/components/PrivateRoute\";\r\nimport LoginPage from \"./login/LoginPage\";\r\nimport { FormService } from \"./form/services/FormService\";\r\nimport AnonymousPage from \"./login/AnonymousPage\";\r\nimport ReactGA from 'react-ga';\r\nimport { AdvertisingInfoResponse, Idfa } from \"@sparkfabrik/capacitor-plugin-idfa\";\r\nimport DecisionTreeEditorPage from \"./editor/DecisionTreeEditorPage\";\r\nimport { Capacitor } from \"@capacitor/core\";\r\nimport UserPage from \"./user/UserPage\"\r\n\r\ni18n\r\n .use(initReactI18next)\r\n .use(BrowserDetector)\r\n .use(HttpApi)\r\n .init({\r\n lng: \"fr\",\r\n fallbackLng: \"fr\",\r\n backend: {\r\n loadPath: `${process.env.REACT_APP_API_URL}/translations/{{lng}}`,\r\n } as BackendOptions,\r\n });\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\nclass App extends Component {\r\n\r\n private formService: FormService;\r\n private languagesMapping: any;\r\n private isMobile = Capacitor.isNativePlatform();\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.formService = new FormService();\r\n\r\n\r\n if (!this.isMobile) {\r\n const url = new URL(window.location.href);\r\n this.languagesMapping = {\r\n 'fr': process.env?.REACT_APP_URL_FR ? process.env?.REACT_APP_URL_FR : url.hostname,\r\n 'nl': process.env?.REACT_APP_URL_NL ? process.env?.REACT_APP_URL_NL : url.hostname,\r\n };\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.updateTitle();\r\n if (!this.isMobile) {\r\n this.initLanguage(this.props.i18n.language);\r\n }\r\n this.props.i18n.on(\"languageChanged\", this.updateTitle.bind(this));\r\n if (!this.isMobile) {\r\n this.props.i18n.on(\"languageChanged\", this.updateLanguage.bind(this));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n this.props.i18n.off(\"languageChanged\", this.updateTitle.bind(this));\r\n if (!this.isMobile) {\r\n this.props.i18n.off(\"languageChanged\", this.updateLanguage.bind(this));\r\n }\r\n }\r\n\r\n initLanguage(language: string) {\r\n const url = new URL(window.location.href);\r\n\r\n if (url.searchParams.has('locale')) {\r\n const locale = url.searchParams.get('locale')!;\r\n if (this.languagesMapping.hasOwnProperty(locale) && this.languagesMapping[locale] === url.hostname) {\r\n this.props.i18n.changeLanguage(locale);\r\n return;\r\n }\r\n }\r\n\r\n const targetLanguage = Object.keys(this.languagesMapping).find(f => this.languagesMapping[f] === url.hostname);\r\n if (!targetLanguage) {\r\n url.hostname = this.languagesMapping[language];\r\n window.location.href = url.toString();\r\n return;\r\n }\r\n\r\n if (language !== targetLanguage) {\r\n this.props.i18n.changeLanguage(targetLanguage!.toString());\r\n }\r\n }\r\n\r\n updateLanguage(language: string) {\r\n const url = new URL(window.location.href);\r\n let targetLanguage = Object.keys(this.languagesMapping).find(f => this.languagesMapping[f] === url.hostname);\r\n\r\n if (url.searchParams.has('locale')) {\r\n const locale = url.searchParams.get('locale')!;\r\n if (this.languagesMapping.hasOwnProperty(locale) && this.languagesMapping[locale] === url.hostname) {\r\n targetLanguage = locale;\r\n }\r\n }\r\n\r\n if (!targetLanguage) {\r\n return;\r\n }\r\n\r\n if (language === targetLanguage) {\r\n return;\r\n }\r\n\r\n url.hostname = this.languagesMapping[language];\r\n url.searchParams.set('locale', language);\r\n window.location.href = url.toString();\r\n }\r\n\r\n updateTitle() {\r\n document.title = this.formService.t(this.props.t, 'title_app', false, true);\r\n const favicon = document.getElementById(\"favicon\");\r\n if (favicon) {\r\n (favicon as HTMLLinkElement).href = this.formService.t(this.props.t, 'favicon', false, false, false, true);\r\n }\r\n }\r\n\r\n render() {\r\n if (process.env[\"REACT_APP_GA_ID\"]) {\r\n Idfa.getAdvertisingInfo().then((response: AdvertisingInfoResponse) => {\r\n if (Capacitor.getPlatform() !== 'web' && response.isAdTrackingLimited) {\r\n console.log('ReactGA will not be initialized');\r\n }\r\n else {\r\n console.log('ReactGA.initialize');\r\n ReactGA.initialize(process.env[\"REACT_APP_GA_ID\"] as string);\r\n }\r\n }).catch((err: Error) => {\r\n console.error(err);\r\n });\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Capacitor.isNativePlatform() ? '' :\r\n \r\n {this.formService.t(this.props.t, 'cookie_consent_text', true)}\r\n }\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withTranslation()(App);\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\ntype Config = {\r\n onSuccess?: (registration: ServiceWorkerRegistration) => void;\r\n onUpdate?: (registration: ServiceWorkerRegistration) => void;\r\n};\r\n\r\nexport function register(config?: Config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(\r\n process.env.PUBLIC_URL,\r\n window.location.href\r\n );\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl: string, config?: Config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl: string, config?: Config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' }\r\n })\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}\r\n","import React, { Component } from \"react\";\r\nimport \"./FormLoading.scss\";\r\n\r\ninterface Props {\r\n}\r\n\r\nclass FormLoading extends Component {\r\n constructor(props: Props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n

    Please wait while the app is loading …

    \r\n

    This can take up to 30 seconds.

    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nexport default (FormLoading);\r\n","import { WithTranslation, withTranslation } from \"react-i18next\";\r\nimport { TFunction } from \"i18next\";\r\nimport { FormService } from \"../services/FormService\";\r\nimport React from \"react\";\r\nimport { Modal } from \"@bbri/ui\";\r\nimport \"./NoConnectionModal.scss\";\r\n\r\ninterface Props extends WithTranslation {\r\n}\r\n\r\nclass NoConnectionModal extends React.Component {\r\n\r\n private t: TFunction;\r\n private formService: FormService;\r\n\r\n constructor(props: Props) {\r\n super(props);\r\n this.t = this.props.t;\r\n this.formService = new FormService();\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n

    {(this.formService.t(this.t, \"no_connection\", false) !== 'no_connection') ?\r\n (this.formService.t(this.t, \"no_connection\", false)) :\r\n 'No Internet connection. Please connect.'}

    \r\n
    \r\n );\r\n }\r\n\r\n}\r\n\r\nexport default withTranslation()(NoConnectionModal);\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport App from \"./App\";\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport \"./styles/global.scss\";\r\nimport FormLoading from \"./form/components/FormLoading\";\r\nimport {Offline} from \"react-detect-offline\";\r\nimport NoConnectionModal from \"./form/components/NoConnectionModal\";\r\nimport {Network} from \"@capacitor/network\";\r\n\r\nconst apiUrl = process.env.REACT_APP_API_URL\r\n\r\nReactDOM.render(\r\n ,\r\n document.getElementById(\"root\")\r\n)\r\n\r\nNetwork.addListener('networkStatusChange', status => {\r\n if (status.connected) {\r\n window.location.reload();\r\n return;\r\n } else {\r\n ReactDOM.render(\r\n }>\r\n {\r\n \r\n }\r\n ,\r\n document.getElementById(\"root\")\r\n )\r\n }\r\n});\r\n\r\nNetwork.getStatus().then(status => {\r\n if (status.connected) {\r\n ReactDOM.render(\r\n }>\r\n \r\n \r\n \r\n {\r\n \r\n }\r\n ,\r\n document.getElementById(\"root\")\r\n )\r\n } else {\r\n ReactDOM.render(\r\n }>\r\n {\r\n \r\n }\r\n ,\r\n document.getElementById(\"root\")\r\n )\r\n }\r\n});\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}