{"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/components/FormInputEmail.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","email","values","results","length","JSON","stringify","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","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","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","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","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","graphInfo","diagramInfo","_replaceTagsInHTMLFile","GRAPH","_getGraphInfo","_getDiagramInfo","EMAIL_SENT","sendQuotePDF","graphDecisionTree","diagramDecisionTree","getAllComments","htmlFile","qst","re","RegExp","tableHeader","q","table","_getTableBody","entries","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","logo","setFillColor","rect","answersFormated","resultFormated","res","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","FormInputEmail","hasError","isBlur","handleBlur","handleChange","_validateEmail","autoComplete","FormPage","summary","waitValue","conditionalInfo","subQuestionsValues","currentSubQuestion","defaultValuesTable","lastQuestion","optional","getCurrentValue","isValid","requiredOptionnal","EMAIL_INPUT","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","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","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.edce9730.chunk.js","sourcesContent":["export enum SeverityEnum {\n SUCCESS = 'success',\n INFO = 'info',\n WARN = 'warn',\n ERROR = 'error'\n}","import { AxiosResponse } from 'axios';\nimport { saveAs } from 'file-saver';\n\nconst REGEX_DISPOSITION = /filename=\"(.+)\"/;\n\nexport class FileUtils {\n\n /**\n * Download a file via AxiosResponse\n */\n static downloadFile(response: AxiosResponse) {\n const filename = FileUtils.getFileName(response);\n if (filename) {\n saveAs(response.data, filename);\n }\n }\n\n static getFileName(response: AxiosResponse) {\n const contentDisposition = response.headers['content-disposition'];\n if (!contentDisposition) {\n return null;\n }\n\n\n const result = REGEX_DISPOSITION.exec(contentDisposition);\n\n if (!result) {\n return null;\n }\n return result[1];\n }\n}","export const DataStorage = sessionStorage;\nexport const KEY_ACCESS_TOKEN = 'access_token';\n","import axios, { AxiosInstance } from 'axios';\nimport { DataStorage, KEY_ACCESS_TOKEN } from '../constants';\n\nexport class APIService {\n\n protected http: AxiosInstance;\n\n constructor(bearerAuth: boolean = true) {\n this.http = axios.create({\n baseURL: process.env.REACT_APP_API_URL,\n headers: (bearerAuth)\n ? { 'Authorization': `Bearer ${DataStorage.getItem(KEY_ACCESS_TOKEN)}` }\n : {}\n });\n }\n}","import { AxiosResponse } from 'axios';\nimport { APIService } from '../../shared/services/APIService';\nimport { DecisionTree } from '../models/DecisionTree';\n\nexport class AdminDecisionTreeService extends APIService {\n\n /**\n * Get many decision trees\n */\n getMany(): Promise> {\n return this.http.get('/decision-trees');\n }\n\n /**\n * Download a decision tree by name\n */\n downloadOne(name: string) {\n return this.http.get(`/decision-trees/${name}/download`, { responseType: 'blob' });\n }\n\n /**\n * Upload many decision trees\n */\n uploadMany(files: File[]) {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file);\n }\n return this.http.post(`/decision-trees/upload`, formData);\n }\n\n /**\n * Delete one decision tree\n */\n deleteOne(name: string) {\n return this.http.delete(`/decision-trees/${name}`);\n }\n}","import { AxiosResponse } from 'axios';\nimport { APIService } from '../../shared/services/APIService';\nimport { ResponsesDTO } from '../dto/ResponsesDTO';\nimport { Form } from '../models/Form';\nimport { RequirementResults } from '../models/RequirementResults';\nimport { TFunction } from 'i18next';\nimport { RichText } from 'prismic-reactjs';\nimport ReactDOMServer from 'react-dom/server';\n\nexport class FormService extends APIService {\n\n /**\n * Get form\n */\n getForm(name: string) {\n return this.http.get
('/forms/' + name);\n }\n\n /**\n * Submit the form responses\n */\n async submitForm(formName: string, dto: ResponsesDTO) {\n return this.http.post(`/forms/${ formName }/submissions`, dto)\n .then((response: AxiosResponse) => {\n return response.data;\n });\n }\n\n async sendPDF(formName: string, pdf: any, email?: string, values?: Record, results?: any[]) {\n const formData = new FormData();\n formData.append('pdf', pdf);\n\t\tif (email) {\n\t\t\tformData.append('email', email);\n\t\t}\n\t\tif (values && values.length !== 0) {\n\t\t\tformData.append('values', JSON.stringify(values));\n\t\t}\n\t\tif (results && results.length !== 0) {\n\t\t\tformData.append('results', JSON.stringify(results));\n\t\t}\n return this.http.post(`forms/${ formName }/pdf`, formData);\n }\n\n async sendXLSX(formName: string, xlsx: any) {\n return this.http.post(`forms/${ formName }/xlsx`, xlsx);\n }\n\n\n checkIfValue(value: any, key: string) {\n return (value) ? value : key;\n }\n\n t(t: TFunction, key: string, asRichText: boolean, isUI: boolean = false, asStaticMarkup: boolean = false, isURL: boolean = false): any {\n if (isUI) {\n return t(key);\n }\n else if (isURL) {\n const translation = t(key, { returnObjects: true }) as any;\n if (translation.hasOwnProperty('image')) {\n return `${process.env.REACT_APP_API_URL}/images/${translation.image}/download`;\n }\n else if (translation.hasOwnProperty('url')) {\n return translation.url;\n }\n else {\n return null;\n }\n }\n\n if (asRichText) {\n const result = RichText.render(t(key, { returnObjects: true }));\n return result ? (asStaticMarkup ? ReactDOMServer.renderToStaticMarkup(result as any) : result) : t(key);\n }\n else {\n const result = RichText.asText(t(key, { returnObjects: true }));\n return result ? result : key;\n }\n }\n\n getQuestionsByType(t: string[]) {\n let types = t.join(',')\n return this.http.get('/forms/questions', { params: { types } });\n }\n}\n","import { AxiosResponse } from \"axios\";\nimport { TFunction } from \"i18next\";\nimport { Button } from \"primereact/button\";\nimport { Card } from \"primereact/card\";\nimport { Column } from \"primereact/column\";\nimport { DataTable } from \"primereact/datatable\";\nimport { Dialog } from \"primereact/dialog\";\nimport { FileUpload } from \"primereact/fileupload\";\nimport { Toast } from \"primereact/toast\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\nimport { DecisionTree } from \"../models/DecisionTree\";\nimport { AdminDecisionTreeService } from \"../services/AdminDecisionTreeService\";\nimport { RichText } from \"prismic-reactjs\";\nimport { FormService } from \"../../form/services/FormService\";\n\ninterface Props extends WithTranslation {\n}\n\ninterface States {\n decisionTrees: DecisionTree[];\n displayConfirmation: boolean;\n toDelete: string | null;\n}\n\nclass AdminDecisionTrees extends React.Component {\n private readonly decisionTreeService: AdminDecisionTreeService;\n private toast: Toast | null;\n private fileUpload: FileUpload | null;\n private t: TFunction;\n private formService: FormService;\n\n constructor(props: Props) {\n super(props);\n this.decisionTreeService = new AdminDecisionTreeService();\n this.t = this.props.t;\n this.toast = null;\n this.fileUpload = null;\n this.formService = new FormService();\n this.state = {\n decisionTrees: [],\n displayConfirmation: false,\n toDelete: null,\n };\n }\n\n componentDidMount() {\n this.getDecisionTrees();\n }\n\n /**\n * Refresh decision trees\n */\n getDecisionTrees() {\n this.decisionTreeService\n .getMany()\n .then((response: AxiosResponse) => {\n this.setState({ decisionTrees: response.data });\n });\n }\n\n /**\n * On upload\n */\n handleUpload(e: { files: File[] }) {\n if (!e.files) {\n return;\n }\n this.decisionTreeService\n .uploadMany(e.files)\n .then(() => {\n this.toast?.show({\n severity: SeverityEnum.SUCCESS,\n detail: this.formService.t(this.t, \"ui_admin_decision_tree_upload_toast_success\", false),\n });\n this.fileUpload?.clear();\n this.getDecisionTrees();\n })\n .catch((err: any) => {\n const message = err?.response?.data?.message;\n this.toast?.show({\n severity: SeverityEnum.ERROR,\n detail: `${this.formService.t(this.t, \"ui_admin_decision_tree_upload_toast_error\", false)} : ${message}`,\n });\n });\n }\n\n /**\n * On download\n */\n handleDownload(name: string) {\n this.decisionTreeService\n .downloadOne(name)\n .then((response: AxiosResponse) => {\n FileUtils.downloadFile(response);\n });\n }\n\n /**\n * Delete decision tree\n */\n handleDelete() {\n if (!this.state.toDelete) {\n return;\n }\n\n this.decisionTreeService.deleteOne(this.state.toDelete).then(() => {\n this.toast?.show({\n severity: SeverityEnum.SUCCESS,\n detail: this.t(\"ui_admin_decision_tree_delete_toast_success\"),\n });\n this.setState({ displayConfirmation: false, toDelete: null });\n this.getDecisionTrees();\n });\n }\n\n renderDialogFooter() {\n return (\n
\n this.setState({ displayConfirmation: false })}\n className=\"p-button-text\"\n />\n this.handleDelete()}\n autoFocus\n />\n
\n );\n }\n\n actionBodyTemplate(rowData: DecisionTree) {\n return (\n \n this.handleDownload(rowData.name)}\n >\n \n this.setState({ displayConfirmation: true, toDelete: rowData.name })\n }\n >\n \n );\n }\n\n render() {\n return (\n \n (this.toast = el)}/>\n
\n
\n (this.fileUpload = el)}\n accept=\"application/json\"\n customUpload={true}\n multiple={true}\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\n // emptyTemplate={() =>

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

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

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

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

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

}\n >\n
\n
\n \n \n \n this.actionBodyTemplate(rowData)\n }\n headerStyle={{ width: \"8rem\" }}\n bodyStyle={{ textAlign: \"center\" }}\n >\n \n this.setState({ displayConfirmation: false })}\n >\n
\n \n Are you sure you want to proceed?\n
\n \n
\n
\n
\n );\n }\n}\n\nexport default withTranslation()(AdminScripts);\n","export class Script {\n\n constructor(\n readonly fileName: string,\n readonly script: string\n ) {\n }\n}\n","export class ScriptDTO {\n\n constructor(\n readonly fileName: string,\n readonly script: string\n ) {\n }\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';\nimport { APIService } from '../../shared/services/APIService';\nimport {Html} from \"../models/HTML\";\nimport {HtmlDTO} from \"../dto/HtmlDTO\";\n\nexport class AdminHtmlsService extends APIService {\n\n /**\n * Get many htmls\n */\n getMany(): Promise> {\n return this.http.get('/htmls');\n }\n\n /**\n * Get the text of a html by name\n */\n getOne(name: string): Promise> {\n return this.http.get(`/htmls/${name}/text`);\n }\n \n /**\n * Download a html by name\n */\n downloadOne(name: string) {\n return this.http.get(`/htmls/${name}/download`, { responseType: 'blob' });\n }\n \n \n /**\n * Upload many htmls\n */\n uploadMany(files: File[]) {\n const formData = new FormData();\n for (const file of files) {\n formData.append('files', file);\n }\n return this.http.post(`/htmls/upload`, formData);\n }\n\n /**\n * Upload one html\n */\n uploadOne(dto: HtmlDTO) {\n return this.http.post(`/htmls/uploadone`, dto);\n } \n\n /**\n * Delete one html\n */\n deleteOne(name: string) {\n return this.http.delete(`/htmls/${name}`);\n }\n}\n","import { AxiosResponse } from \"axios\";\nimport { TFunction } from \"i18next\";\nimport { Button } from \"primereact/button\";\nimport { Card } from \"primereact/card\";\nimport { Column } from \"primereact/column\";\nimport { DataTable } from \"primereact/datatable\";\nimport { Dialog } from \"primereact/dialog\";\nimport { FileUpload } from \"primereact/fileupload\";\nimport { Toast } from \"primereact/toast\";\nimport React from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\nimport { FileUtils } from \"../../shared/utils/FileUtils\";\nimport { Html } from \"../models/HTML\";\nimport { RichText } from \"prismic-reactjs\";\nimport { FormService } from \"../../form/services/FormService\";\nimport { AdminHtmlsService } from \"../services/AdminHTMLService\";\n\ninterface Props extends WithTranslation {\n}\n\ninterface States {\n htmls: Html[];\n displayConfirmation: boolean;\n toDelete: string | null;\n}\n\nclass AdminHtmls extends React.Component {\n private readonly htmlService: AdminHtmlsService;\n private toast: Toast | null;\n private fileUpload: FileUpload | null;\n private t: TFunction;\n private formService: FormService;\n\n constructor(props: Props) {\n super(props);\n this.htmlService = new AdminHtmlsService();\n this.t = this.props.t;\n this.toast = null;\n this.fileUpload = null;\n this.formService = new FormService();\n this.state = {\n htmls: [],\n displayConfirmation: false,\n toDelete: null,\n };\n }\n\n componentDidMount() {\n this.getHtmls();\n }\n\n /**\n * Refresh htmls\n */\n getHtmls() {\n this.htmlService\n .getMany()\n .then((response: AxiosResponse) => {\n this.setState({ htmls: response.data });\n });\n }\n\n /**\n * On upload\n */\n handleUpload(e: { files: File[] }) {\n if (!e.files) {\n return;\n }\n this.htmlService\n .uploadMany(e.files)\n .then(() => {\n this.toast?.show({\n severity: SeverityEnum.SUCCESS,\n detail: this.formService.t(this.t, \"ui_admin_html_upload_toast_success\", false),\n });\n this.fileUpload?.clear();\n this.getHtmls();\n })\n .catch((err: any) => {\n const message = err?.response?.data?.message;\n this.toast?.show({\n severity: SeverityEnum.ERROR,\n detail: `${this.formService.t(this.t, \"ui_admin_html_upload_toast_error\", false)} : ${message}`,\n });\n });\n }\n\n /**\n * On download\n */\n handleDownload(name: string) {\n this.htmlService\n .downloadOne(name)\n .then((response: AxiosResponse) => {\n FileUtils.downloadFile(response);\n });\n }\n\n /**\n * Delete html\n */\n handleDelete() {\n if (!this.state.toDelete) {\n return;\n }\n\n this.htmlService.deleteOne(this.state.toDelete).then(() => {\n this.toast?.show({\n severity: SeverityEnum.SUCCESS,\n detail: this.t(\"ui_admin_html_delete_toast_success\"),\n });\n this.setState({ displayConfirmation: false, toDelete: null });\n this.getHtmls();\n });\n }\n\n renderDialogFooter() {\n return (\n
\n this.setState({ displayConfirmation: false })}\n className=\"p-button-text\"\n />\n this.handleDelete()}\n autoFocus\n />\n
\n );\n }\n\n actionBodyTemplate(rowData: Html) {\n return (\n \n this.handleDownload(rowData.fileName)}\n >\n \n this.setState({ displayConfirmation: true, toDelete: rowData.fileName })\n }\n >\n \n );\n }\n\n render() {\n return (\n \n (this.toast = el)}/>\n
\n
\n (this.fileUpload = el)}\n accept=\".html\"\n customUpload={true}\n multiple={true}\n uploadHandler={(e: { files: File[] }) => this.handleUpload(e)}\n // emptyTemplate={() =>

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

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

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

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

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

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

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

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

\n
\n \n this.handleFormChange(\"comment\", e.target.value)}\n required\n />\n
\n
\n \n
\n {this.state.form.screenshot\n ? this.state.form.screenshot.name\n : this.formService.t(this.t, \"ui_feedback_form_upload_screenshot_no_image\", false)}\n
\n this.handleFileChange(e.target.files)}\n />\n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nexport default withTranslation()(FormFeedbackModal);\n","import { APIService } from '../../shared/services/APIService';\nimport { FeedbackDTO } from '../dto/FeedbackDTO';\n\nexport class FeedbackService extends APIService {\n\n\n submitFeedback(dto: FeedbackDTO) {\n const formData = new FormData();\n formData.append('comment', dto.comment);\n if (dto.screenshot) {\n formData.append('screenshot', dto.screenshot);\n }\n return this.http.post('/feedback', formData);\n }\n}","export enum QuestionType {\n RADIO = 'radio',\n RADIO_IMAGE = 'radio_image',\n DROPDOWN = 'dropdown',\n BOOL = 'bool',\n NUMBER = 'number',\n LONG_TEXT = 'long_text',\n MATRIX = 'matrix',\n CHECKBOX = 'checkbox',\n MULTIPLE = 'multiple',\n TABLE = 'table',\n STRING = 'string',\n PREVIOUS_QUESTION = 'previous_question',\n TEXT_ONLY = 'text_only',\n DECISION_TREE = 'decision_tree',\n\tEMAIL_INPUT = 'email_input'\n}\n","export enum OperatorType {\n NOT_EQUAL = 'neq',\n EQUAL = 'eq',\n GREATER_THAN = 'gt',\n GREATER_THAN_OR_EQUAL_TO = 'gte',\n LOWER_THAN = 'lt',\n LOWER_THAN_OR_EQUAL_TO = 'lte',\n IN = 'in',\n NOT_IN = 'nin',\n AND = 'and',\n OR = 'or',\n STRICTLY_EQUAL = 'strictly_eq',\n STRICTLY_INCLUDED = 'strictly_included',\n STRICTLY_INCLUDES = 'strictly_includes'\n}\n","import { Toast } from \"primereact/toast\";\nimport React, { Component } from \"react\";\nimport { MessageCircle } from \"react-feather\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { SeverityEnum } from \"../../shared/enum/SeverityEnum\";\nimport FormFeedbackModal from \"../components/FormFeedbackModal\";\nimport { FeedbackDTO } from \"../dto/FeedbackDTO\";\nimport { FeedbackService } from \"../services/FeedbackService\";\nimport \"./FormFeedback.scss\";\nimport { FormService } from '../services/FormService';\n\ninterface Props extends WithTranslation {\n}\n\ninterface States {\n isOpen: boolean;\n}\n\nclass FormFeedback extends Component {\n private toast: Toast | null;\n private feedbackService: FeedbackService;\n private formService: FormService;\n\n constructor(props: Props) {\n super(props);\n\n this.formService = new FormService();\n this.feedbackService = new FeedbackService();\n this.toast = null;\n\n this.state = {\n isOpen: false,\n };\n }\n\n /**\n * Handle: onClick\n */\n async handleSubmit(dto: FeedbackDTO): Promise {\n return this.feedbackService\n .submitFeedback(dto)\n .then(() => {\n this.toast?.show({\n severity: SeverityEnum.SUCCESS,\n detail: this.formService.t(this.props.t, \"ui_feedback_toast_success\", false, false),\n });\n return true;\n })\n .catch(() => {\n this.toast?.show({\n severity: SeverityEnum.ERROR,\n detail: this.formService.t(this.props.t, \"ui_feedback_toast_error\", false, false),\n });\n return false;\n });\n }\n\n render() {\n return (\n \n (this.toast = el)}/>\n\t\t\t\t
\n\t\t\t\t\t this.setState({ isOpen: !this.state.isOpen })}\n\t\t\t\t\t>\n\t\t\t\t\t\n\t\t\t\t
\n {this.state.isOpen && (\n this.handleSubmit(dto)}\n onClose={() => this.setState({ isOpen: false })}\n />\n )}\n
\n );\n }\n}\n\nexport default withTranslation()(FormFeedback);\n","import { TFunction } from \"i18next\";\nimport React from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport { FormQuestion } from \"../models/FormQuestion\";\nimport { RichText } from \"prismic-reactjs\";\nimport { FormService } from \"../services/FormService\";\nimport \"./FormInputNumber.scss\";\n\ninterface Props extends WithTranslation {\n question: FormQuestion;\n value: any;\n onValueChange: (v: any) => void;\n onBlur: (question: string, v: any) => void;\n disabled?: boolean;\n parentQuestion?: FormQuestion;\n values?: any;\n}\n\nclass FormInputNumber extends React.Component {\n private t: TFunction;\n private formService: FormService;\n\n state = {\n showValidationMessage: false,\n value: 0,\n modified: false\n };\n\n constructor(props: Props) {\n super(props);\n this.formService = new FormService();\n this.t = this.props.t;\n\n this.state = {\n showValidationMessage: false,\n value: 0,\n modified: false\n };\n }\n\n componentDidMount() {\n this.setState({ showValidationMessage: false, value: this.resetValueIfInvalid() });\n\n this.bindOnBlur();\n this.bindKeyup();\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly<{}>, snapshot?: any) {\n if (this.props.parentQuestion) {\n if ((this.props.parentQuestion.question !== prevProps.parentQuestion?.question) && !this.props.value) {\n this.bindOnBlur();\n this.bindKeyup();\n\n this.setState({ showValidationMessage: false, value: this.resetValueIfInvalid() });\n }\n else if ((this.props.parentQuestion.question !== prevProps.parentQuestion?.question) && this.props.value) {\n this.bindOnBlur();\n this.bindKeyup();\n\n this.setState({ showValidationMessage: false, value: this.props.value });\n }\n }\n else {\n if (this.props.question.question !== prevProps.question.question) {\n this.bindOnBlur();\n this.bindKeyup();\n\n this.setState({ showValidationMessage: false, value: this.resetValueIfInvalid(), modified: false });\n }\n }\n }\n\n resetValueIfInvalid() {\n if (this.props.question.validation && Number.isInteger(this.props.question.validation.min) && (this.props.value < this.props.question.validation.min)) {\n return null;\n }\n else {\n return this.props.value;\n }\n }\n\n onValueChange(v: any) {\n this.setState({ ...this.state, value: v });\n this.setState({ modified: true });\n this.props.onValueChange(v);\n }\n\n private bindOnBlur() {\n document.getElementById(this.props.question.question)?.addEventListener('blur', () => {\n if (!this.state.showValidationMessage) {\n this.setState({ ...this.state, showValidationMessage: true });\n }\n this.props.onBlur(this.props.question.question, this.state.value);\n });\n }\n\n private bindKeyup() {\n document.getElementById(this.props.question.question)?.addEventListener('keyup', (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === \"enter\") {\n this.setState({ ...this.state, showValidationMessage: true });\n }\n });\n }\n\n render() {\n return (\n \n
\n
\n {\n if (e.target.value.split('-').length > 1) {\n this.onValueChange(0)\n }\n if (!this.state.modified && e.target.value[0] === '0') {\n const modif = e.target.value.substring(1);\n this.onValueChange(modif)\n }\n else {\n this.onValueChange(e.target.value)\n }\n } }\n onKeyPress={ (event) => {\n if (!/[0-9,.-]/.test(event.key)) {\n event.preventDefault();\n }\n } }\n\n />\n
\n\n { this.props.question.unit && (\n
{ RichText.render(this.t(this.props.question.unit, { returnObjects: true })) }
\n ) }\n
\n { this.props.question.validation && this.state.showValidationMessage && Number.isInteger(this.props.question.validation.min) && (this.state.value < this.props.question.validation.min) && (\n
\n { this.formService.checkIfValue(RichText.render(this.t(\"ui_input_min_value\", { returnObjects: true })), \"ui_input_min_value\") }\n { this.props.question.validation.min }\n { this.props.question.unit && (\n { RichText.render(this.t(this.props.question.unit, { returnObjects: true })) }\n ) }\n
\n ) }\n { this.props.question.validation && this.state.showValidationMessage && Number.isInteger(this.props.question.validation.max) && (this.state.value > this.props.question.validation.max) && (\n
\n { this.formService.checkIfValue(RichText.render(this.t(\"ui_input_max_value\", { returnObjects: true })), \"ui_input_max_value\") }\n { this.props.question.validation.max }\n { this.props.question.unit && (\n { RichText.render(this.t(this.props.question.unit, { returnObjects: true })) }\n ) }\n
\n ) }\n
\n );\n }\n}\n\nexport default withTranslation()(FormInputNumber);\n","import { TFunction } from \"i18next\";\nimport React, { Component, ReactNode } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport \"./FormMatrix.scss\";\nimport { RichText } from \"prismic-reactjs\";\nimport { FormService } from \"../services/FormService\";\n\ninterface Props extends WithTranslation {\n currentValue: string;\n values: string[];\n images: string[];\n onValueChange: (v: string) => void;\n}\n\ninterface States {\n value: string;\n}\n\nclass FormMatrix extends Component {\n private t: TFunction;\n private readonly service: FormService;\n\n constructor(props: Props) {\n super(props);\n this.service = new FormService();\n this.t = this.props.t;\n\n this.state = {\n value: this.props.currentValue,\n };\n }\n\n /**\n * Handle: onClick on matrix-wrapper\n */\n handleClick(value: string) {\n\n this.props.onValueChange(value);\n\n this.setState({\n value,\n });\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n if (this.props.currentValue !== this.state.value) {\n this.setState({\n value: this.props.currentValue\n });\n }\n }\n\n render() {\n let imageList: ReactNode[] = [];\n\n for (let i = 0; i < this.props.values.length; i++) {\n const value = this.props.values[i];\n const image = this.props.images[i];\n\n let className = \"matrix-wrapper p-col-6 p-md-4\";\n\n if (this.state.value === value) {\n className += \" matrix-selected\";\n }\n\n imageList.push(\n this.handleClick(value)}\n >\n \n {this.service.checkIfValue(RichText.render(this.t(value, { returnObjects: true })), value)}\n \n \n );\n }\n return
{imageList}
;\n }\n}\n\nexport default withTranslation()(FormMatrix);\n","import { TFunction } from \"i18next\";\nimport React, { Component, ReactNode } from \"react\";\nimport { WithTranslation, withTranslation } from \"react-i18next\";\nimport \"./FormRadioImage.scss\";\nimport { RichText } from \"prismic-reactjs\";\nimport { FormService } from \"../services/FormService\";\n\ninterface Props extends WithTranslation {\n currentValue: string;\n values: string[];\n images: string[];\n onValueChange: (v: string) => void;\n}\n\ninterface States {\n value: string;\n}\n\nclass FormRadioImage extends Component {\n private t: TFunction;\n private formService: FormService;\n\n constructor(props: Props) {\n super(props);\n this.t = props.t;\n this.formService = new FormService();\n\n this.state = {\n value: this.props.currentValue,\n };\n }\n\n /**\n * Handle: onClick on radio-image-wrapper\n */\n handleClick(value: string) {\n\n this.props.onValueChange(value);\n\n this.setState({\n value,\n });\n }\n\n componentDidUpdate(prevProps: Readonly, prevState: Readonly, snapshot?: any) {\n if (this.props.currentValue !== this.state.value) {\n this.setState({\n value: this.props.currentValue\n });\n }\n }\n\n render() {\n let imageList: ReactNode[] = [];\n\n for (let i = 0; i < this.props.values.length; i++) {\n const value = this.props.values[i];\n const image = this.props.images[i];\n let className = \"radio-image-wrapper\";\n\n if (this.state.value === value) {\n className += \" radio-image-selected\";\n }\n\n imageList.push(\n
this.handleClick(value)}>\n
\n {RichText.asText(this.t(value,\n
\n {this.formService.checkIfValue(RichText.render(this.t(value, { returnObjects: true })), value)}
\n \n );\n }\n\n return
{imageList}
;\n }\n}\n\nexport default withTranslation()(FormRadioImage);\n","import { Radio } from \"@bbri/ui\";\nimport { TFunction } from \"i18next\";\nimport React, { ReactNode } from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport { FormService } from \"../services/FormService\";\n\ninterface Props extends WithTranslation {\n name: string;\n currentValue: any;\n values: any[];\n onValueChange: (v: any) => void;\n}\n\nclass FormRadioList extends React.Component {\n private t: TFunction;\n private formService: FormService;\n\n constructor(props: Props) {\n super(props);\n this.formService = new FormService();\n this.t = this.props.t;\n }\n\n render() {\n const list: ReactNode[] = [];\n const values = this.props.values;\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n const key = this.props.name + i;\n list.push(\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n this.props.onValueChange(value)}>\n this.props.onValueChange(value)}\n />\n \n );\n }\n\n return list;\n }\n}\n\nexport default withTranslation()(FormRadioList);\n","import {TFunction} from 'i18next';\nimport {QuestionType} from '../enum/QuestionType';\nimport {Form} from '../models/Form';\nimport {FormQuestion} from '../models/FormQuestion';\nimport {OperatorType} from \"./../enum/OperatorType\";\nimport {DecisionTreeService} from './../services/DecisionTreeService';\nimport {FormService} from \"../services/FormService\";\n\nexport class FormUtils {\n\n static formatValue(\n t: TFunction,\n formService: FormService,\n form: Form,\n history: number[],\n values: Record,\n callback: (id: number, question: FormQuestion, valueFormatted: string) => void\n ) {\n for (let i = 0; i < history.length; i++) {\n const id = history[i];\n const question = form.questions[id];\n if(question.type === QuestionType.MULTIPLE && question.subQuestions) {\n for(const subQ of question.subQuestions) {\n let value = values[subQ.question];\n if(value === undefined) {\n value = \"\";\n } else {\n switch (subQ.type) {\n case QuestionType.RADIO:\n case QuestionType.MATRIX:\n case QuestionType.RADIO_IMAGE:\n break;\n case QuestionType.NUMBER:\n value = value + \" \" + formService.t(t, subQ.unit ?? '', false);\n break;\n case QuestionType.BOOL:\n value = value ? formService.t(t, \"oui\", false) : formService.t(t, \"non\", false);\n break;\n }\n }\n callback(id, subQ, value);\n }\n } else {\n let value = values[question.question];\n if(value === undefined) {\n value = \"\";\n } else {\n switch (question.type) {\n case QuestionType.RADIO:\n case QuestionType.MATRIX:\n case QuestionType.RADIO_IMAGE:\n break;\n case QuestionType.NUMBER:\n value = value + \" \" + formService.t(t, question.unit ?? '', false);\n break;\n case QuestionType.BOOL:\n value = value ? formService.t(t, \"oui\", false) : formService.t(t, \"non\", false);\n break;\n }\n }\n\n callback(id, question, value);\n }\n }\n }\n\n /**\n * Get the values to send to the back based on the currentQuestion\n * @return Record\n */\n static getValidValues(questions: FormQuestion[], allValues: Record, questionHistory: number[], currentQuestion: number, allowNextQuestion?: boolean) {\n const values: Record = {};\n const history = [...questionHistory];\n\n // Add currentQuestion to history if not present\n if (!history.includes(currentQuestion)) {\n history.push(currentQuestion);\n }\n\n let i = 0;\n while (i < history.length) {\n const questionId = history[i];\n\n i++;\n\n // Don't use the question if it's after the current question\n if (questionId > currentQuestion && !allowNextQuestion) {\n continue;\n }\n\n const question = questions[questionId];\n\n // Continue if question was not found\n if (!question || !question?.question) {\n continue;\n }\n\n const value = allValues[question.question];\n\n // Continue if the value of the question is undefined. Otherwise decision trees might have an issue\n if (value === undefined) {\n continue;\n }\n\n switch (question.type) {\n case QuestionType.MULTIPLE:\n for (const key in value) {\n if (!value.hasOwnProperty(key)) {\n continue;\n }\n values[key] = value[key];\n }\n break;\n default:\n values[question.question] = value;\n break;\n }\n }\n\n return values;\n }\n\n /**\n * Check condition for a question\n */\n static async checkCondition(\n decisionTreeService: DecisionTreeService,\n leftValue: any,\n operator: OperatorType,\n rightValue: any,\n values: any,\n cache: Map\n ): Promise {\n if (leftValue.question) {\n leftValue = values[leftValue.question];\n } else if (leftValue.decision_tree) {\n\n if (cache.has(leftValue.decision_tree)) {\n leftValue = cache.get(leftValue.decision_tree);\n } else {\n const decisionTree = leftValue.decision_tree;\n leftValue = await decisionTreeService.computeDecisionTree(\n leftValue.decision_tree,\n values\n );\n cache.set(decisionTree, leftValue);\n }\n }\n\n switch (operator) {\n case OperatorType.EQUAL:\n return leftValue === rightValue;\n case OperatorType.NOT_EQUAL:\n return leftValue !== rightValue;\n case OperatorType.AND:\n return (\n (await FormUtils.checkCondition(\n decisionTreeService,\n leftValue.lhs,\n leftValue.operator,\n leftValue.rhs,\n values,\n cache\n )) &&\n (await FormUtils.checkCondition(\n decisionTreeService,\n rightValue.lhs,\n rightValue.operator,\n rightValue.rhs,\n values,\n cache\n ))\n );\n case OperatorType.OR:\n return (\n (await FormUtils.checkCondition(\n decisionTreeService,\n leftValue.lhs,\n leftValue.operator,\n leftValue.rhs,\n values,\n cache\n )) ||\n (await FormUtils.checkCondition(\n decisionTreeService,\n rightValue.lhs,\n rightValue.operator,\n rightValue.rhs,\n values,\n cache\n ))\n );\n case OperatorType.GREATER_THAN:\n return leftValue > rightValue;\n case OperatorType.GREATER_THAN_OR_EQUAL_TO:\n return leftValue >= rightValue;\n case OperatorType.LOWER_THAN:\n return leftValue < rightValue;\n case OperatorType.LOWER_THAN_OR_EQUAL_TO:\n return leftValue <= rightValue;\n case OperatorType.IN:\n if (Array.isArray(rightValue) && rightValue) {\n return (rightValue as any[]).includes(leftValue);\n } else if (Array.isArray(leftValue) && leftValue) {\n return (leftValue as any[]).includes(rightValue);\n } else {\n return false;\n }\n case OperatorType.NOT_IN:\n if (Array.isArray(rightValue) && rightValue) {\n return !(rightValue as any[]).includes(leftValue);\n } else if (Array.isArray(leftValue) && leftValue) {\n return !(leftValue as any[]).includes(rightValue);\n } else {\n return true;\n }\n case OperatorType.STRICTLY_EQUAL:\n if(Array.isArray(leftValue) && leftValue) {\n return JSON.stringify(leftValue.sort()) === JSON.stringify(rightValue.sort());\n } else {\n return false;\n }\n case OperatorType.STRICTLY_INCLUDED:\n if (Array.isArray(leftValue) && leftValue) {\n return (leftValue as any[]).every(elem => {\n return rightValue.includes(elem)\n });\n } else {\n return false;\n }\n case OperatorType.STRICTLY_INCLUDES:\n if (Array.isArray(leftValue) && leftValue) {\n return (rightValue as any[]).every(elem => {\n return leftValue.includes(elem)\n });\n } else {\n return false;\n }\n }\n return false;\n }\n\n}\n","export enum FormType {\r\n GRAPH = \"graph\",\r\n REQUIREMENT = \"requirement\",\r\n\t\tEMAIL_SENT = \"email_sent\"\r\n}\r\n","import jsPDF from 'jspdf';\n\nexport class JsPDFUtils {\n static initJsPDF() {\n const callAddRobotoRegularNormalFont = function (this: any) {\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+AX8BjwGSAaEBsAHwAf8CGwI3AlkCvALHAskC3QLz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AxgDGgMcAx4DIAMiAyQDJQMnAykDKwMtA4YDhwOIA4kDigOLA4wDjgOPA5ADkQOSA5MDlAOVA5YDlwOYA5kDmgObA5wDnQOtA64DrwOwA7EDsgOzA7QDtQO2A7cDuAO5A7oDuwO8A70DvgO/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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';\n\n this.addFileToVFS('Roboto-Regular-normal.ttf', font);\n this.addFont('Roboto-Regular-normal.ttf', 'Roboto-Regular', 'normal');\n };\n\n jsPDF.API.events.push(['addFonts', callAddRobotoRegularNormalFont]);\n\n const callAddRobotoBoldNormalFont = function (this: any) {\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+AAABBwChAKcAHgATALAARViwCC8bsQgWPlmwDdwwMQD//wBjAAAFowSNAgYB3wAA//8AYwAABHMEjQIGAeQAAP//AED/8AR+BJ0CBgHdAAD//wBjAAAEfASNAgYB7wAA//8AYwAABDUEjQIGAdwAAP//AED/8ARSBJ0CBgIxAAD//wAgAAAELwSNAgYB2AAA//8AAwAABFwEjQIGAdQAAAABAD7+HwP6BJ0AKQCvALAARViwCi8bsQoWPlmwAEVYsBkvG7EZDD5ZsABFWLAYLxuxGA4+WbAKELEDAbAKK1gh2Bv0WbIGChkREjmyJxkKERI5sCcvss8nAXG0rye/JwJdsj8nAXGynycBcbL/JwFdsg8nAXG0byd/JwJdsv8nAXGyDycBcrKPJwFysSYIsAorWCHYG/RZshAmJxESObAZELAW0LIdGQoREjmwGRCxIAGwCitYIdgb9FkwMQE0JiMiBhUhNDYzMhYVFAYHFhYVFAYHESERJiY1IRYWMzI2NTQnIzUzNgLGX1dHWP7e+Mve92hZaGyypf7fnKgBIgJeVl9kxJOdpwM3PUE2LZizp5VZjCgjjl6CrRv+JAHfH66DN0FJQ40DwQQAAQBj/psFUASNAA8AbQCwAS+wAEVYsAkvG7EJFj5ZsABFWLADLxuxAww+WbAARViwBi8bsQYMPlmyCwMJERI5fLALLxiywAsBXbQwC0ALAl20QAtQCwJxsQQBsAorWCHYG/RZsAkQsAzQsAMQsQ4BsAorWCHYG/RZMDEBIREjESERIREhESERIREzBVD+393+M/7eASIBzQEh3f6bAWUBxv46BI3+IgHe/EAAAAEAQP4rBFIEnQAcAGCyDR0eERI5ALAEL7AARViwDS8bsQ0WPlmwAEVYsAMvG7EDDD5ZsABFWLAGLxuxBgw+WbIRDQMREjmwDRCxEwGwCitYIdgb9FmwAxCxGQGwCitYIdgb9FmyHAMNERI5MDEBBgYHESERJgInNRAAMzIEFyEmIyIDFRQWMzI2NwRRCsWi/t+1yAIBG/HiARAU/t8K2+QHb35tbwUBj57UH/4tAdUoAR3dPgEFATjix8D+wUqzoFhfAP////8AAARPBI0CBgHTAAD//wAV/iAF3wSrAiYCFwAAAAcCUQML/4X//wBjAAAEdgXKAiYB/gAAAQYAcGscABMAsABFWLAILxuxCBY+WbAL3DAxAP//ABv/7ARpBcoCJgIBAAABBgBwUhwACQCwAS+wEdwwMQD//wBBAAAFlgSNAgYB8QAA//8Adv/wBYgEjQAmAeMAAAAHAeICDwAA////1wAABhIGAAImAnMAAAAHAHUCZwAA//8AQP/JBH4GHgImAnUAAAAHAHUBbQAe//8AOv38BAEEnQImAdkAAAAHAboBUf6R//8AHwAABdsGHgImAdUAAAAHAEQBTwAe//8AHwAABdsGHgImAdUAAAAHAHUCBAAe//8AHwAABdsF8gImAdUAAAAHAGoBGAAe/////wAABE8GHgImAdMAAAAGAER2Hv//AAf+YAVcBbACJgAlAAAABwCkAYUABv//AET+agQGBE4CJgBFAAAABwCkAKcAEP//AIL+ZARSBbACJgApAAAABwCkAUgACv//AEj+WgQeBE4CJgBJAAAABwCkAQQAAP/////+WgStBI0CJgIzAAAABwCkASYAAP//AGP+YgO8BI0CJgIoAAAABwCkAPcACP//AG3+lQGwBDoCJgCNAAAABwCtA2YACgABAAAFDgCPABYATgAFAAEAAAAAAA4AAAIAAjIABgABAAAAUQBRAFEAUQBRAIwAtwE8AbUCSwLSAu0DGgNIA3sDowPIA98EBgQdBHIEoQT5BX0FwgYrBpQGwgdJB7MHwwfTB/MIGwg7CKIJUAmRChAKZgqqCu8LLwueC94L+gwwDHUMmgzpDScNgQ3PDi8Oiw77DyYPZg+YD+gQMxBkEJ0QwhDaEQARJxFBEVsR1RI4Eo0S6RNXE6kUJhRrFKcU8xU0FVAVvBYHFlcWvBceF10XxBgRGFoYixjaGSMZZxmgGd8Z9ho0GnEapRsEG24b0BwyHFMc7R0fHcUeNR5BHl8fCh8kH2AfoB/1IHIgxSEQITwhXSGPIcEiBSIRIisiPCJNIq4jFCNSI8MkFySAJUoluSYVJogm6CdjJ8Mn3ygtKHcotikIKWUp6yqBKrIrFit9K+ssUCyoLQctOC2gLdEt+S4HLjMuUy6MLrQu+i8wL2Yvgy+gL6kv2TALMC0wRzCJMJEwuDDmMVkxhzHYMggyRTLAMx0zhzP9NHY0qjUdNZg18TY6Nqc21jcvN6A38zhOOKE49jk8OX457zpIOq87Jjt1O+w8UTy0PSo9rT4EPkI+mj7zP2c/3UAYQGNAqEERQUlBj0HOQhlCckLYQyVDi0QHRGBEykU8RWNFuUYnRqBG20ckR2xHtkf5SClIVkjjSRtJX0meSeRKPEqgSutLU0vQTCpMok0UTYdOA05nTqRPBE9jT8xQSlDPUR1RbVHbUktSwFMsU7tUQVTjVXtV+FZmVqtW8ldeV8NYf1k3Wa5aLFp+Wsda/FsYW09bZVt7XE9cwlzdXPhdYV26XixeXF6GXt5fLF84X0RfUF9cX7FgB2BZYKxguGDEYRBhYGHCYhliqWMxYz1jSWOXY9xj6GP0ZEZklmTcZU1lxWYfZnBmfGaIZvVnUWddZ2lndWeBZ+doSWiiaLZo02jfaOtpO2mfaiNql2sFa2tr0mw/bKttHG2PbeduO26Lbt5vWG9kb3BvnG+cb5xvnG+cb5xvnG+cb5xvnG+cb5xvnG+cb6RvrG+2b8Bv53ALcC9wTXBpcHVwgXCzcPNxVnF6cYZxlnG5coJynnK7cs5y4nMqc7R0U3TldPF1r3YVdpd3a3fWeFJ4rnkiebl6G3qxew97c3uNe657z3vpfFV8fXy2fM19An2PfdJ+Un6Sfql+wH75fwZ/MH9Sf15/yYAdgLuBQ4HEgpyCnIQNhHyE0IT8hUeFr4YxhmKGw4clh2+H6Ig7iG2Iu4j0iSWJbom+ie+KKYpUisOLGot3i8OMG4xWjKiMzY0SjUSNYI2qjhKOT47KjzSPl4/Cj/iQb5CjkPCRI5FikdCSLZKNkuyTZpPdlFuUrpTvlUOVmpYXlqCW3pcpl3SXuZf2mDqYe5jHmR+ZK5l5mfOac5rLmw6bi5vinDqcj50anSadfp3MnhyeYZ7PnzSflaAQoLihTaHqomai6aMro4+j8aQepJ2lBaUipXOluqZsptanOqeCp8moDqhTqJ6o9Kl9qb2p3aonqpyq3askq3qr96wlrHCsyKzcrPCtAq0WrSitP61Tra+uGK5jrr6vHq9Jr6Gv+rBDsKKwybE8sVOx1LI6smeyeLKJspyyrbK+stGy5LL3sw2zHrMmsy6zNrNBs0mzrbQDtDG0krTmtUa1v7YPtna22bdEt763xrhGuI64+blMucW6N7qKuoq6krrxu1K7tbv5vGS8e7yNvKS8trzCvNW867z3vQ69Jb08vUi9X712vY29mb2rvcK92b3wvge+E74qvjy+U75fvna+iL6avrC+wb7Mvt+/DL8Yvym/O79Rv1y/c7+Jv6C/rL+9v8+/4b/3wAjAE8AqwEHAV8BiwHTAf8CWwKfAvsDUwT/B4sH5wgvCIsI4wk/CYcJzwoTClsKmwr3CzsLlwvvDDcMfw5DEG8QtxD7EVcRrxILEmMSqxLzEyMTaxPHFA8UaxTHFSMVfxXbFjcWYxaPFtcXBxc3F5MX7xgfGE8YqxkHGTcZZxm7GesaGxpLGqca7xsfG08bqxwDHEscpxzrHUcdnx3/Hksepx8DHzMfYx+/IBcgXyCnIQMhWyGLIbsh6yIbIncizyMTI0MjcyOjI/8kLyR3JM8lFyVvJcsmIyZvJrsnBydnKOMqkyrvK0srpyv/LC8siyznLUMtny37LlMury73L1MvrzA7MMcxBzFjMb8yFzJvMpsy5zMXM0czozP/NEM0bzTLNSM1fzWvNgs2ZzavNwc3Szd7N9c4MziLOLc5EzlrOcc7bzu3PA88VzybPN89Nz2PPdc/iz/PQCdAg0DLQQ9BZ0HDQh9Ce0KnQutDR0OLQ+NEJ0R7RL9FG0VLRZNF10YzRn9Gx0cLR09Hl0fvSB9IY0inSOtJG0lfSaNJ+0pHSpNMA0xfTLdM400/TYdNy037TitOW06LTrtO608bT3NPk0+zT9NP81ATUDNQU1BzUJNQs1DTUPNRE1EzUWNRk1HbUiNSa1LDUxdTN1NXU3dTl1VLVXtVp1XvVktWk1bDVx9Y31j/WS9ZT1lvWbdaE1ozWlNac1qTWu9bD1svW09bb1uPW69bz1vvXA9cL1yLXKtcy14DXiNeQ15vXste618LXztfW1+3YA9ga2DHYQ9ha2GbYctiJ2J/Yp9iv2LvY0tja2PHZA9kP2RvZMtlJ2V/Zdtl+2YbZntm22cLZztna2ebZ8tn+2gbaDtoW2i3aRNpM2mPaedqF2pDamNqg2rfazdrZ2uHa7Nr42wTbENsb2zLbSNtU21/ba9t2237bhtuS253bqdu028bb19vj2+7cBtwe3CrcNdxF3FXcXdxp3HXch9yZ3LHcyNzg3PfdD90m3T7dVd1w3Yrdot253dHd6N4A3hLeKt5B3lzedt6C3o7eoN6y3sne2t7y3wnfId8431DfZ99/35bfsd/L393f79/74AfgE+Af4DbgSOBg4Hfgj+Cm4L7g1eDt4QThH+E54VDhZ+F+4ZXhrOHD4drh8OH84gjiFOIg4jLiROJb4nLiieKg4rfizuLl4vvjB+MT4x/jK+M940/jZuN345njpeOx473jyePV4+Hj7eP55AHkYeTB5QHlQOWg5gLmTuaf5vrnUuda527neOeA54jnkOeY56DnqOew57jnyufc5/PoCugi6DroUuhq6ILomuiy6Mro4uj66RLpKuk26ULpTula6WbpeumG6ZLpnumw6cLpzuna6ebp8un+6grqFuoi6jrqTOpe6mrqduqC6o7qmuqm6r7q1err6vfrA+sP6xvrJ+sz6z/rS+tX62Prb+t764frk+ub66Prq+uz67vrw+vL69Pr2+vj6+vr8+v77APsD+wa7CXsPOxE7EzsWOxg7HfsjuyW7J7spuyu7MXszezV7N3s5ezt7PXs/e0F7Zrt8O5S7lruZu587o3ule6h7q3uue7F7tHu3e7p7vTvAO8M7xjvJO8w7zzvSAAAAAEAAAACIxLqWEw6Xw889QAZCAAAAAAAxPARLgAAAADVAVLW+jD91QmHCHMAAQAJAAIAAAAAAAADjABkAAAAAAAAAAAB/gAAAf4AAAItAHwCkQBABMQAQASXAFwF6ABfBUAARwFLAD8CzwB8AtIAKAOgABsEXgA5AfQAIwMaAG4CUwB+Av3/8wSXAF8ElwCnBJcARgSXAEAElwA3BJcAaQSXAGQElwA9BJcAXwSXAFYCQgB9AhkAOQQSADYElACIBCIAeAP7AC0HKQBLBWIABwUbAIIFPABWBTMAggSAAIIEYgCCBXMAXgWnAIICVQCVBHgAKAUUAIIEVQCCBwIAggWmAIIFhgBWBSkAggWGAFQFGwCCBOsARQTzACgFRAB0BTsABwb/ACMFFQAWBPIAAgTZAEkCOQB4A2AAAAI5AA0DfwAsA5IAAQKlADQESgBEBIEAbwQsAEIEggBCBFMASALeAB0EkQBFBHoAaAIfAG0CFP+hBEYAbwIfAH4G7QBvBHsAaQSGAEIEgQBvBIUAQgLrAG8EHQA4ArQACgR6AGgECwANBeEAHAQSABUEBAADBBIASgKkADACBgCtAqQAIgUwAGoCQgCABJoAYwTBAGMFigBRBEoACgIEAIAFBwBcA7wAXgZGAFYDjQCJA/8ATQRpAH4GRgBWBAIAqAMbAH4ETABZAvsANwL7ADACpwBlBO0AiwPrAEsCaQCMAiQAYgL7AIcDqAB2A/8AVQW+AGUGFwBUBncAXgP7AEUHhQACBEAAQQWDAF0E3gCFBQwAhwbBAEIEmgBUBJAAPwSEAEIEigBxBQsAQgXCACACMQCGBLgAggR2AB0CcgAeBaAAgASEAGwHvwBgBzcAUwITAHUFjwBLAuP/3QWcAFAEpgBABbMAdAThAGgCQf+tBDwATgP3AHsDxABVBAIAqAONAGoCHwB2AqoAdwJoACED2QB1A0gAOQKDAI4AAPyAAAD9VgAA/GEAAP0fAAD78AAA/QcCsgDaBGMAZgJpAIwEdQCEBdkAFAWBAFIFLgAQBIkAXwWpAIQEiQBIBigASQXQADQFYABmBIIASQTQAI4EFQARBIQARARzAF8EAgBMBIQAbAS4AHACsgCKBGMABwQ9AGcFJgA0BIQAcQQeAD8ElABCBCoALAReAHEF9wA2BfQARAaRAFMEwwB1BLr/5waeABQF+wAdBUcAVwh2ACgIeACEBiwAIQWaAHUFAwB/BfsAGQf7ABEE7wBDBZoAeAWmACgFDQAfBogASQYSAHUFkACJB6sAgAgrAIAGKgAZBvkAhQUBAIAFNAA+B4wAjgTG/+QEjgBUBIcAggNaAG8FDQAhBtUAJwQcAEUEigBvBIIAggSMABYGEwCCBIoAbwSKAG8EEwAfBdgARATgAG8EbgBYBp4AbwczAGwFPwAhBp8AggR3AIIEKQA/Bn4AhgR5ACkEev/MBCkAQAbeABUG5ABvBIT/2gSKAG8HkwB3BpAAZAR2/+UHJAB9BgkAdQVJAA8EeQAHB3sAkwZjAH4G+QBtBd4AbwlNAJUIDACGBBwABwQHABwFgQBaBIQAQAUkAAsEFQARBYEAWgSEAEIHkgB3BncAbAeTAHcGkABkBPgAWQRHAFYE+wBrAAD8cwAA/HgAAP2WAAD9pwAA+jAAAPpwBjgAeAU4AG8Edv/lBQgAggSCAG8EcQB/A7EAbAT7AIQEOwBsCI0AEQdFACcF8gCEBTMAggVLAIAE0QCCBpsAJQW5ADoGQACCBTEAbwfhAIIFpgBsCFwAhAbtAGwGbQBeBSoAVQVVABYEVwAVBykAIgV/AC0GJACJBRcAWAVxAG4EewBoBZcAhgYO/+UEyP+8BTIAgASRAIIGQAAoBTgAFgWoAIQEhABsBkQAggU1AG8HmgCCBqMAggWPAEsEoABQBKIAUgTOACUDqwAWBZoAFgScABUFAQBJB0IAdAbUAFoGTQBBBSQALQSvAEEEeQBtB7gAQAbHAD8H9ACBBpoAXQURAEYEPABGBaQAHwUZAEIFPgBqBoEAKAV5ABYDHwBbBBQAAAgpAAAEFAAACCkAAAK5AAACCgAAAVwAAAR/AAACMAAAAaIAAAEAAAAA0QAAAAAAAAMbAG4DGwBuBQ4AmAYbAG0DkQABAd8AaAHWADoB/ABCAawARwM/AHADRQBIAzkAQgROADkEoQBiAuAAhwQsAIUF6wCFAg8AZQetAFcCfgBsAmoAUAORAB4C+wA1A1gAVwTBAGYGgwAlBuEAjQiuAIIGdQAlBvIAbwSXAFkF/QAlBDgAKATAACUFdQBEBaQAMwXgAGQD8wAqCB0AgAUNAHQFEACUBkQAYQbkAEgG0QBXBuAAWwSUAFkFiwCkBQQAOQRyAJMEhQA3CF8AXgJP/6UEnQBlBJQAiAQTADYEIgB4BBIAHwJaAIoCkQBaAdYANAU6AB0E3gAUBOcAHQdtAB0HbQAdBSwAHQbOADgAAAAACCwAVwg1AFwC+gA3AvoAhwL6AEcEKABIBCgATwQoADEEJwBPBCgATwQoADMEKAAvBCgAOAQoAJUEKABPBDEANwRN//8EZAADBf0AHwSI//8EjwBdBFEAIARJADoEdgBjBMAAQQR4AGMEwABABNYAYwYHAGMDugBjBGQAYwPcACACDwB2BNcAYwSiAEkDwwBjBEkAOgSSAEADpwAGA8UAYwSI//8EwABABIj//wOrAEoE4ABjBEIASAXXAEEFjQBBBNEASgWrACAEgwBAB2UAHgdeAGMFuAAgBOAAYwSFAGMFiwAhBnAAFgRKAD4E2gBjBGkAYwTTAB4EbgAbBZAAYwSpAEYGrwBjB18AYwWXAAoGOwBjBHsAYwSDADEGpABjBIMANgQ3AAoG5gAWBL8AYwUWAGMFowAgBiAAQARQ//8E2wADBsMAIASpAEYEqQBjBjEAFQTSAEAETAA+BMAAQASSAEAEAwBHCDsAYwUsACgC+gAwAvoANQL6AEUC+gBGAvoAMwL6AEcC+gBDA9IAjQKqAJAD2wBjBDv/+wStAEkFOQCEBSsAhARHAHEFMACEBEAAcQR1AGMEgwBABG0AYwSs//8CAQCFA50AagAA/JoEBwCDBAf/RQQHAIQEBwCEA8UAYwOdAGoDnQBqAvsARwL7ADUC+wBFAvsARgL7ADMC+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/AAAAf8AAAMrAAACGAAAAhkAAAMKAAACGgAAAhsAAAMOAAACNwAAAjcAAACcAAACWQAAAlkAAACdAAACvAAAArwAAAPfAAACxgAAAscAAACeAAACyQAAAskAAACgAAAC2AAAAt0AAAChAAAC8wAAAvMAAACnAAADAAAAAwEAAACoAAADAwAAAwMAAACqAAADCQAAAwkAAACrAAADDwAAAw8AAACsAAADIwAAAyMAAACtAAADhAAAA4UAAACuAAADhgAAA4YAAAOGAAADhwAAA4cAAACwAAADiAAAA4oAAAOHAAADjAAAA4wAAAOKAAADjgAAA5IAAAOLAAADkwAAA5QAAACxAAADlQAAA5cAAAOQAAADmAAAA5gAAACzAAADmQAAA5oAAAOTAAADmwAAA5sAAAC0AAADnAAAA50AAAOVAAADngAAA54AAAC1AAADnwAAA58AAAOXAAADoAAAA6AAAAC2AAADoQAAA6EAAAOYAAADowAAA6MAAAC3AAADpAAAA6UAAAOZAAADpgAAA6YAAAC4AAADpwAAA6cAAAObAAADqAAAA6kAAAC5AAADqgAAA7AAAAOcAAADsQAAA7kAAAC7AAADugAAA7oAAAOjAAADuwAAA7sAAADEAAADvAAAA70AAAOlAAADvgAAA74AAADFAAADvwAAA78AAAOkAAADwAAAA8YAAADGAAADxwAAA8cAAAOnAAADyAAAA8kAAADNAAADygAAA84AAAOoAAAD0QAAA9IAAADPAAAD1gAAA9YAAADRAAAEAAAABAAAAAPkAAAEAQAABAEAAAOtAAAEAgAABAIAAADSAAAEAwAABAMAAAOuAAAEBAAABAQAAADTAAAEBQAABAgAAAOvAAAECQAABAsAAADUAAAEDAAABAwAAAO0AAAEDQAABA0AAAPlAAAEDgAABA4AAAO1AAAEDwAABA8AAADXAAAEEAAABBAAAAO2AAAEEQAABBEAAADYAAAEEgAABBMAAAO3AAAEFAAABBQAAADZAAAEFQAABBUAAAO5AAAEFgAABBgAAADaAAAEGQAABBkAAAO6AAAEGgAABBoAAAOzAAAEGwAABBsAAADdAAAEHAAABCIAAAO7AAAEIwAABCQAAADeAAAEJQAABCUAAAPCAAAEJgAABC8AAADgAAAEMAAABDAAAAPDAAAEMQAABDQAAADqAAAENQAABDUAAAPEAAAENgAABDgAAADuAAAEOQAABDkAAAPFAAAEOgAABD0AAADxAAAEPgAABD4AAAPGAAAEPwAABD8AAAD1AAAEQAAABEEAAAPHAAAEQgAABEIAAAD2AAAEQwAABEMAAAPJAAAERAAABEQAAAD3AAAERQAABEUAAAPKAAAERgAABE8AAAD4AAAEUAAABFAAAAPmAAAEUQAABFEAAAPLAAAEUgAABFIAAAECAAAEUwAABFMAAAPMAAAEVAAABFQAAAEDAAAEVQAABFgAAAPNAAAEWQAABFsAAAEEAAAEXAAABFwAAAPRAAAEXQAABF0AAAPnAAAEXgAABF4AAAPSAAAEXwAABGEAAAEHAAAEYgAABGIAAASBAAAEYwAABG8AAAEKAAAEcAAABHEAAAPoAAAEcgAABHUAAAEXAAAEdgAABHcAAAPqAAAEeAAABHgAAAPtAAAEeQAABHkAAAPsAAAEegAABIYAAAEbAAAEiAAABIsAAAEoAAAEjAAABIwAAASAAAAEjQAABJEAAAEsAAAEkgAABJMAAASCAAAElAAABJcAAAExAAAEmAAABJkAAAPuAAAEmgAABJ0AAAE1AAAEngAABJ8AAASEAAAEoAAABKkAAAE5AAAEqgAABKsAAAPwAAAErAAABK0AAAR3AAAErgAABK8AAAPyAAAEsAAABLEAAASGAAAEsgAABLoAAAFDAAAEuwAABLsAAAR/AAAEvAAABL0AAAFMAAAEvgAABL8AAAR9AAAEwAAABMIAAAP0AAAEwwAABMoAAAFOAAAEywAABMwAAAR5AAAEzQAABM4AAAFWAAAEzwAABNcAAAP3AAAE2AAABNgAAAFYAAAE2QAABNkAAAQBAAAE2gAABNoAAAQAAAAE2wAABN8AAAQCAAAE4AAABOEAAAFZAAAE4gAABPUAAAQHAAAE9gAABPcAAAR7AAAE+AAABPkAAAQbAAAE+gAABP0AAAFbAAAE/gAABP8AAASIAAAFAAAABQAAAAFfAAAFAQAABQEAAAQdAAAFAgAABRAAAAFgAAAFEQAABREAAASKAAAFEgAABRMAAAFvAAAeAAAAHgEAAAPiAAAePgAAHj8AAAPgAAAegAAAHoUAAAPTAAAeoAAAHvEAAAQeAAAe8gAAHvMAAAPZAAAe9AAAHvkAAARwAAAfTQAAH00AAATKAAAgAAAAIAkAAAFyAAAgCgAAIAsAAAF9AAAgEAAAIBEAAAF/AAAgEwAAIBQAAAGBAAAgFQAAIBUAAASMAAAgFwAAIB4AAAGDAAAgIAAAICIAAAGLAAAgJQAAICcAAAGOAAAgMAAAIDAAAAGRAAAgMgAAIDMAAAPbAAAgOQAAIDoAAAGSAAAgPAAAIDwAAAPdAAAgRAAAIEQAAAGUAAAgdAAAIHQAAAGVAAAgfwAAIH8AAAGWAAAgowAAIKMAAASLAAAgpAAAIKQAAAGXAAAgpgAAIKoAAAGYAAAgqwAAIKsAAAR2AAAgrAAAIKwAAAGdAAAgsQAAILEAAAGeAAAguQAAILoAAAGfAAAgvAAAIL0AAAGhAAAhBQAAIQUAAAGjAAAhEwAAIRMAAAGkAAAhFgAAIRYAAAGlAAAhIgAAISIAAAGmAAAhJgAAISYAAAC6AAAhLgAAIS4AAAGnAAAhWwAAIV4AAAGoAAAiAgAAIgIAAAGsAAAiBgAAIgYAAACyAAAiDwAAIg8AAAGtAAAiEQAAIhIAAAGuAAAiGgAAIhoAAAGwAAAiHgAAIh4AAAGxAAAiKwAAIisAAAGyAAAiSAAAIkgAAAGzAAAiYAAAImAAAAG0AAAiZAAAImUAAAG1AAAlygAAJcoAAAG3AADuAQAA7gIAAAG4AAD2wwAA9sMAAAG6AAD7AQAA+wQAAAG8AAD+/wAA/v8AAAHCAAD//AAA//0AAAHDAACwACxLsAlQWLEBAY5ZuAH/hbBEHbEJA19eLbABLCAgRWlEsAFgLbACLLABKiEtsAMsIEawAyVGUlgjWSCKIIpJZIogRiBoYWSwBCVGIGhhZFJYI2WKWS8gsABTWGkgsABUWCGwQFkbaSCwAFRYIbBAZVlZOi2wBCwgRrAEJUZSWCOKWSBGIGphZLAEJUYgamFkUlgjilkv/S2wBSxLILADJlBYUViwgEQbsEBEWRshISBFsMBQWLDARBshWVktsAYsICBFaUSwAWAgIEV9aRhEsAFgLbAHLLAGKi2wCCxLILADJlNYsEAbsABZioogsAMmU1gjIbCAioobiiNZILADJlNYIyGwwIqKG4ojWSCwAyZTWCMhuAEAioobiiNZILADJlNYIyG4AUCKihuKI1kgsAMmU1iwAyVFuAGAUFgjIbgBgCMhG7ADJUUjISMhWRshWUQtsAksS1NYRUQbISFZLbAKLLAiRS2wCyywI0UtsAwssScBiCCKU1i5QAAEAGO4CACIVFi5ACID6HBZG7AjU1iwIIi4EABUWLkAIgPocFlZWS2wDSywQIi4IABaWLEjAEQbuQAjA+hEWS2wDCuwACsAsgELAisAtwExKB8WDgAIK7cCRDosIBIACCu3AzEoHxYOAAgrtwSRd1w6IwAIK7cFdmBLNh0ACCu3BiUfGBELAAgrtwdCNioeEgAIK7cIOi8iGA8ACCu3CTYsIhgPAAgrtwpbSzoqGQAIK7cL+82gckUACCsAsgwLByuwACBFfWkYRLIwDgFzsrAQAXOyUBABdLKAEAF0snAQAXWyPxQBc7JfFAFzsn8UAXOyLxQBdLJPFAF0sm8UAXSyjxQBdLKvFAF0sv8UAXSyHxQBdbI/FAF1sl8UAXWyfxQBdbIPGAFzsm8YAXWyfxgBc7LvGAFzsh8YAXSyXxgBdLKPGAF0ss8YAXSy/xgBdLI/GAF1si8aAXOybxoBc7IvIAFzsj8gAXMAAAAAKgDpAKQA/gBOAGABMQCsAMUA1AB8AC0AAAAU/mAAFAKbACADIQALBDoAFASNABAFsAAUBhgAFQGmABEGwAAOBt8AAgAAAAAAAAANAKIAAwABBAkAAABeAAAAAwABBAkAAQAMAF4AAwABBAkAAgAIAGoAAwABBAkAAwAWAHIAAwABBAkABAAWAHIAAwABBAkABQAmAIgAAwABBAkABgAWAK4AAwABBAkABwBAAMQAAwABBAkACQAMAQQAAwABBAkACwAUARAAAwABBAkADAAmASQAAwABBAkADQBcAUoAAwABBAkADgBUAaYAQwBvAHAAeQByAGkAZwBoAHQAIAAyADAAMQAxACAARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAQQBsAGwAIABSAGkAZwBoAHQAcwAgAFIAZQBzAGUAcgB2AGUAZAAuAFIAbwBiAG8AdABvAEIAbwBsAGQAUgBvAGIAbwB0AG8AIABCAG8AbABkAFYAZQByAHMAaQBvAG4AIAAyAC4AMQAzADcAOwAgADIAMAAxADcAUgBvAGIAbwB0AG8ALQBCAG8AbABkAFIAbwBiAG8AdABvACAAaQBzACAAYQAgAHQAcgBhAGQAZQBtAGEAcgBrACAAbwBmACAARwBvAG8AZwBsAGUALgBHAG8AbwBnAGwAZQBHAG8AbwBnAGwAZQAuAGMAbwBtAEMAaAByAGkAcwB0AGkAYQBuACAAUgBvAGIAZQByAHQAcwBvAG4ATABpAGMAZQBuAHMAZQBkACAAdQBuAGQAZQByACAAdABoAGUAIABBAHAAYQBjAGgAZQAgAEwAaQBjAGUAbgBzAGUALAAgAFYAZQByAHMAaQBvAG4AIAAyAC4AMABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBwAGEAYwBoAGUALgBvAHIAZwAvAGwAaQBjAGUAbgBzAGUAcwAvAEwASQBDAEUATgBTAEUALQAyAC4AMAADAAAAAAAA/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/AdIEwQTGAdMEyATLAdkEzwTPAd0E0gTSAd4E2ATYAd8E3QTdAeAE6AToAeEE6gTqAeIE8QTxAeME9QT1AeQAAgF0AAYABgAZAAsACwAZABAAEAAhABIAEgAhACUAJQACACYAJgAcACcAJwATACgAKAABACkAKQAFAC4ALgAKAC8ALwALADAAMAAYADMAMwABADQANAAWADgAOAAOADkAOQAKADoAOgAdADsAOwAbADwAPAASAD0APQAMAD4APgARAEUARQAGAEYARgAHAEcARwAXAEkASQAI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AAAACwAAAAAAAwAAAAMAAAAAAAIAAQARABUACwAAACAAIQAAAAAAAAAAAAAAAAAAABkAGwAAAAMAAAADAAAAAwAAAAAAAAAAAAMAEQAVAAAAAQABAAAAAAAAAAAAGQAAAAAAAAACAAEAAAAAAAAAGQAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwAfAAAAFAAUABoAFAAUABQAGgAAAAAAAAAaABoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXABwAJAAAABIAGAAeAAAACAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAANAAgADQAAAAAAAAAAAAAAAAAYAAgAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAABgACAAXABwAGAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAAACAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAYABgAGAAYABgAGAAYAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIACgAKAAoACgAMAAcABwAHAAcABwAHAAcAAQABAAEAAQABAAAAAAAAAAAAAwAEAAQABAAEAAQABQAFAAUABQAJAAkABgAHAAYABwAGAAcAAgABAAIAAQACAAEAAgABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAIAAQACAAEAAgABAAIAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAADAAMAAgAEAAIABAACAAQAAAAAAAAAAAAAAAAAEAAOABAADgAQAA4AEAAOABAADgALAAAACwAAAAsAAAAKAAUACgAFAAoABQAKAAUACgAFAAoABQAWAAAADAAJAAwAEwAPABMADwATAA8AAAAAAAIAAAAAAAAAAAANAA0ADQANAA0ADQANAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgACAAIABIAEgASABIAFwANAA0ADQAIAAgACAAIAAAAAAAAAAAAAAAAAAgACAAIAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAgAAAAAAAAAHgAeAB4AHgAAABgAAAASABIAEgASABIAEgAkABcAFwAAAAAAAAAGAAAAAAAAAAIADAAAAAAABgAAAAAAEwAAAAAAAAAAAAAAAgAAAAAADAARAAAADAABAAAAAwAAAAUAAAAEAAAACQAAAAAABQAEAAUAAAAAAAAAAAAAAAAAIwAAAAAAIgAGAAAAAAAAAAAAAAAAAAIAAAAAAAIACwARAAcAAQADAAQAAwABAAkAFQABAAMADgAAAAAAAAADAAkAFgAAABYAAAAWAAAADAAJABQAFAAAAAAAFAAAAAMABgAHAAAAAAABAAMAAAAAAB0ACQABAAIAAAAAAAIAAQAMAAkAAAARABUAAAAGAAcABgAHAAAAAAAAAAEAAAABAAEAEQAVAAAAAAAAAAMAAAADAAIABAACAAEAAgAEAAAAAAAiAAkAIgAJACIACQAgACEAAAADAAEABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcABgAHAAYABwAGAAcAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAIABAACAAEAAgABAAIAAQACAAQAAgABAAoABQAKAAUAAAAFAAAABQAAAAUAAAAFAAAABQAMAAkADAAJAAwACQAAAAsAAAAgACEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMABgAHAAAAAQAAAAAAAgAEAAAAAAAAAAUAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAwACAAAAAAAAAAAAEAAOAAsAAAAKAB0ACQAdAAkAFgAAABMADwAAAA0AAAAAAAAACAAXAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFwAcAAAAFwAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAAAAAAAAAIAAAAAAAIABgAHAAAAAAACAAXAAAAAQAAAAoBYgKSAARERkxUABpjeXJsABpncmVrABpsYXRuAEgABAAAAAD//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/AwEDAwMFAwcDCQMLAw0DDwMRAxMDFQMXAxkDGwMdAx8DIQMjAyYDKAMqAywDLgOeA58DoAOhA6MDpAOlA6YDpwOoA6kDqgOrA6wDwwPEA8UDxgPHA8gDyQPKA8sDzAPNA84DzwPQA9ED0gPUA9YD2APaA+8D8QPzBAEECAQOBBQEfgR/BIMEhwUIBQoABgAAAAYAEgAqAEIAWgByAIoAAwAAAAEAEgABAJAAAQAAAAMAAQABAE0AAwAAAAEAEgABAHgAAQAAAAMAAQABAE4AAwAAAAEAEgABAGAAAQAAAAMAAQABAuEAAwAAAAEAEgABAEgAAQAAAAMAAQABA84AAwAAAAEAEgABADAAAQAAAAMAAQABA9AAAwAAAAEAEgABABgAAQAAAAMAAQABBEkAAgACAKgArAAAASQBJwAFAAEAAAABAAgAAgASAAYCYQJfAmICYwJgBQ0AAQAGAE0ATgLhA84D0ARJAAQAAAABAAgAAQYyADYAcgCkAK4AuADKAPwBDgEYAUoBZAF+AZABugH2AgACIgI8Ak4CigKcArYC4ALyAyQDLgM4A0oDfAOGA5ADmgO0A84D4AQKBDwERgRoBIIElATGBNgE8gUcBS4FOAVCBUwFVgWABaoF1AX+BigABgAOABQAGgAgACYALAKAAAIAqQQeAAIArQJ/AAIAqAQgAAIAqwKCAAIAqgSZAAIArAABAAQEpgACAK0AAQAEArwAAgCpAAIABgAMBKoAAgG6BKgAAgCtAAYADgAUABoAIAAmACwCiAACAKkENgACAK0ChwACAKgEOAACAKsEOgACAKoEmwACAKwAAgAGAAwElQACAKkC1gACAboAAQAEBKwAAgCtAAYADgAUABoAIAAmACwCjAACAKkESAACAK0CiwACAKgERgACAKsC2gACAKoEnQACAKwAAwAIAA4AFASuAAIAqQLnAAIBugSwAAIArQADAAgADgAUAukAAgCpAusAAgG6BLIAAgCtAAIABgAMA+AAAgCpBLQAAgCtAAUADAASABgAHgAkAvEAAgCpAvMAAgG6BLYAAgCtBJcAAgCoAo8AAgCqAAcAEAAYAB4AJAAqADAANgS4AAMAqgCpApEAAgCpBEoAAgCtApAAAgCoBEwAAgCrApMAAgCqBJ8AAgCsAAEABAS5AAIAqQAEAAoAEAAWABwC/gACAKkDAAACAboEuwACAK0EoQACAKwAAwAIAA4AFAMEAAIAqQMKAAIBugS9AAIArQACAAYADAMOAAIBugS/AAIArQAHABAAGAAeACQAKgAwADYEwQADAKoAqQKWAAIAqQRiAAIArQKVAAIAqARkAAIAqwMUAAIAqgSjAAIArAACAAYADATEAAIArQTCAAIAqgADAAgADgAUA9UAAgCpBMYAAgCtA9MAAgCoAAUADAASABgAHgAkApkAAgCpBHAAAgCtA9kAAgCoBHIAAgCrBHQAAgCqAAIABgAMAyUAAgCpBMgAAgCtAAYADgAUABoAIAAmACwCmwACAKkEHwACAK0CmgACAKgEIQACAKsCnQACAKoEmgACAKwAAQAEBKcAAgCtAAEABAK9AAIAqQACAAYADASrAAIBugSpAAIArQAGAA4AFAAaACAAJgAsAqMAAgCpBDcAAgCtAqIAAgCoBDkAAgCrBDsAAgCqBJwAAgCsAAEABASWAAIAqQABAAQErQACAK0AAQAEBEkAAgCtAAMACAAOABQErwACAKkC6AACAboEsQACAK0AAwAIAA4AFALqAAIAqQLsAAIBugSzAAIArQACAAYADAPhAAIAqQS1AAIArQAFAAwAEgAYAB4AJALyAAIAqQL0AAIBugS3AAIArQSYAAIAqAKqAAIAqgAGAA4AFAAaACAAJgAsAqwAAgCpBEsAAgCtAqsAAgCoBE0AAgCrAq4AAgCqBKAAAgCsAAEABAS6AAIAqQAEAAoAEAAWABwC/wACAKkDAQACAboEvAACAK0EogACAKwAAwAIAA4AFAMFAAIAqQMLAAIBugS+AAIArQACAAYADAMPAAIBugTAAAIArQAGAA4AFAAaACAAJgAsArEAAgCpBGMAAgCtArAAAgCoBGUAAgCrAxUAAgCqBKQAAgCsAAIABgAMBMUAAgCtBMMAAgCqAAMACAAOABQD1gACAKkExwACAK0D1AACAKgABQAMABIAGAAeACQCtAACAKkEcQACAK0D2gACAKgEcwACAKsEdQACAKoAAgAGAAwDJgACAKkEyQACAK0AAQAEAysAAgCpAAEABAMtAAIAqQABAAQDLAACAKkAAQAEAy4AAgCpAAUADAASABgAHgAkAqcAAgCpAqYAAgCoBEcAAgCrAtsAAgCqBJ4AAgCsAAUADAASABgAHgAkBFgAAgCpBGAAAgCtBFoAAgCoBFwAAgCrBF4AAgCqAAUADAASABgAHgAkBFkAAgCpBGEAAgCtBFsAAgCoBF0AAgCrBF8AAgCqAAUADAASABgAHgAkBGYAAgCpBG4AAgCtBGgAAgCoBGoAAgCrBGwAAgCqAAUADAASABgAHgAkBGcAAgCpBG8AAgCtBGkAAgCoBGsAAgCrBG0AAgCqAAEABASlAAIAqQACABEAJQApAAAAKwAtAAUALwA0AAgANgA7AA4APQA+ABQARQBJABYASwBNABsATwBUAB4AVgBbACQAXQBeACoAgQCBACwAgwCDAC0AhgCGAC4AiQCJAC8AjQCNADAAmACbADEA0ADQADUAAQAAAAEACAABAAYAAgABAAIDCAMJAAEAAAABAAgAAgASAAYFBwUIBQkFCgULBQwAAQAGAroCuwLMAs0DTwNYAAEAAAABAAgAAQAGAAEAAQABAXsABAAAAAEACAABAEAAAQAIAAIABgAOAb4AAwBKAE0BvAACAE0ABAAAAAEACAABABwAAQAIAAIABgAOAb8AAwBKAFABvQACAFAAAQABAEoABAAAAAEACAABACoAAwAMABYAIAABAAQBuwACAEoAAQAEAcEAAgBYAAEABAHAAAIAWAABAAMASgBXAJUAAQAAAAEACAABAAYB3gABAAEASwABAAAAAQAIAAEABgFvAAEAAQC7AAEAAAABAAgAAQAGAfUAAQABADYAAQAAAAEACAACABwAAgIsAi0AAQAAAAEACAACAAoAAgIuAi8AAQACAC8ATwABAAAAAQAIAAIAHgAMAkUCRwJGAkgCSQJnAmgCaQJqAmsCbAJtAAEADAAnACgAKwAzADUARgBHAEgASwBTAFQAVQABAAAAAQAIAAIADAADAm4CbwJvAAEAAwBJAEsCagABAAAAAQAIAAIALgAUAloCXgJYAlUCVwJWAlsCWQJdAlwCTwJKAksCTAJNAk4AGgAcAlMCZQACAAQAFAAdAAACZgJmAAoCcAJwAAsEjQSUAAwAAQAAAAEACAACAC4AFASUAnAEjQSOBI8EkASRAmYEkgSTAkwCTgJNAksCTwJlABoCUwAcAkoAAgACABQAHQAAAlUCXgAKAAEAAAABAAgAAgAuABQCWwJdAl4CWAJVAlcCVgJZAlwCWgAbABUAFgAXABgAGQAaABwAHQAUAAEAFAAaABwCSgJLAkwCTQJOAk8CUwJlAmYCcASNBI4EjwSQBJEEkgSTBJQAAQAAAAEACAACAC4AFASRBJICcASNBI4EjwSQAmYEkwAXABkAGAAWABsAFAAaAB0AHAAVBJQAAgAGABoAGgAAABwAHAABAkoCTwACAlMCUwAIAlUCXgAJAmUCZQATAAEAAAABAAgAAQAGAYEAAQABABMABgAAAAEACAADAAEAEgABAGwAAAABAAAAGAACAAMBlAGUAAABxQHHAAECHwIlAAQAAQAAAAEACAACADwACgHHAcYBxQIfAiACIQIiAiMCJAIlAAEAAAABAAgAAgAaAAoCPgB6AHMAdAI/AkACQQJCAkMCRAACAAEAFAAdAAA=';\n\n this.addFileToVFS('Roboto-Bold-normal.ttf', font);\n this.addFont('Roboto-Bold-normal.ttf', 'Roboto-Bold', 'normal');\n };\n\n jsPDF.API.events.push(['addFonts', callAddRobotoBoldNormalFont]);\n }\n\n}","import {APIService} from \"../../shared/services/APIService\";\nimport {AxiosResponse} from \"axios\";\nimport {Html} from \"../../admin/models/HTML\";\n\nexport class FileService extends APIService {\n /**\n * Get one html by name\n */\n getOne(name: string): Promise> {\n return this.http.get(`/htmls/${name}/file`);\n }\n}\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 {\n\n constructor(\n readonly question: string,\n readonly value: any\n ) {\n }\n}","import { ResponseDTO } from './ResponseDTO';\n\nexport class ResponsesDTO {\n\n responses: ResponseDTO[];\n\n constructor(\n values: Record\n ) {\n this.responses = [];\n for (const questionKey in values) {\n this.responses.push(\n new ResponseDTO(questionKey, values[questionKey])\n );\n }\n\n }\n}","import { AxiosResponse } from 'axios';\nimport { APIService } from '../../shared/services/APIService';\nimport { DecisionTreeResultDTO } from '../dto/DecisionTreeResultDTO';\nimport { ResponsesDTO } from '../dto/ResponsesDTO';\nimport {Form} from \"../models/Form\";\nimport {DecisionTree} from \"../../admin/models/DecisionTree\";\nimport {Html} from \"../../admin/models/HTML\";\n\nexport class DecisionTreeService extends APIService {\n\n /**\n * Compute decision tree\n */\n async computeDecisionTree(name: string, responses: Record) {\n const dto = new ResponsesDTO(responses);\n return this.http.post('/decision-trees/' + name + '/compute', dto)\n .then((response: AxiosResponse) => {\n return response.data.result;\n })\n .catch((e) => {\n console.log(e)\n });\n }\n\n getAllDecisionTrees(): Promise> {\n return this.http.get('/decision-trees');\n }\n}\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 {\n static category: string;\n static getCategory(): string {\n if (ReactGAUtils.category) {\n return ReactGAUtils.category;\n }\n\n const url = new URL(window.location.href);\n\n let category: string | null = null;\n\n if (url.hostname.endsWith('buildwise.be')) {\n category = url.hostname.replace(/^(.+)[.]buildwise[.]be$/, '$1');\n }\n else if (url.hostname.endsWith('azurewebsites.net')) {\n category = url.hostname.replace(/^(.+)[.]azurewebsites[.]net$/, '$1');\n }\n\n if (category) {\n if (category.startsWith('bbri-betonapp')) {\n category = category.replace(/^bbri-betonapp(.+)$/, '$1');\n }\n }\n\n if (!category) {\n category = url.hostname;\n }\n\n ReactGAUtils.category = category;\n\n console.log(`[ReactGAUtils] ${url.hostname} -> ${ReactGAUtils.category}`)\n\n return ReactGAUtils.category;\n }\n}\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 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 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 });\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 }else if (this.props.form.type === FormType.EMAIL_SENT) {\r\n\t\t\tthis.sendQuotePDF();\r\n\t\t}\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 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 } 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 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 } 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\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\r\n\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 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 } 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\tsendQuotePDF(backgroundColor: string = '#001829') {\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\t\t// = START LOGO\r\n const logo = new Image();\r\n logo.src = this.formService.t(this.t, 'bbri_logo', false, false, false, true);\r\n\r\n\t\tlogo.addEventListener('load', () => {\r\n\t\t\tconst logoImageRapport = logo.width > logo.height ? logo.width / logo.height : logo.height / logo.width;\r\n\t\t\tif (backgroundColor) {\r\n\t\t\t\tdoc.setFillColor(backgroundColor);\r\n\t\t\t}\r\n\r\n\t\t\tif (logoImageRapport > 2) {\r\n\t\t\t\tdoc.rect(13, 10, (headerHeight) * logoImageRapport, headerHeight, 'F');\r\n\t\t\t\tdoc.addImage(logo, 'png', 13, 10, (headerHeight) * logoImageRapport, headerHeight);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tdoc.rect(13, 10, (headerHeight) / logoImageRapport, headerHeight, 'F');\r\n\t\t\t\tdoc.addImage(logo, 'png', 13, 10, (headerHeight) / logoImageRapport, headerHeight);\r\n\t\t\t}\r\n\r\n\t\t\tdoc.setFontSize(7);\r\n\t\t\tdoc.text('Version 1 - 15.01.21', 210 - 5 * headerHeight, headerHeight + 12);\r\n\t\t\tdoc.setFontSize(10);\r\n\r\n\t\t\tautoTable(doc, {\r\n\t\t\t\tstartY: headerHeight + 20,\r\n\t\t\t\tbody: [\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\t`${this.formService.t(this.t, \"ui_pdf_date\", false)} : ${this.getTodayDate()}`,\r\n\t\t\t\t\t],\r\n\t\t\t\t]\r\n\t\t\t});\r\n\r\n\t\t\t// = Summary\r\n\t\t\tdoc.text(this.formService.t(this.t, \"ui_summary_title\", false), 13, (doc as any).autoTable.previous.finalY + 10);\r\n\t\t\tconst summaryTable: any = {\r\n\t\t\t\thead: [\r\n\t\t\t\t\t[\r\n\t\t\t\t\t\tthis.formService.t(this.t, \"ui_summary_question\", false),\r\n\t\t\t\t\t\tthis.formService.t(this.t, \"ui_summary_response\", false)\r\n\t\t\t\t\t]\r\n\t\t\t\t],\r\n\t\t\t\tbody: [],\r\n\t\t\t\tstartY: (doc as any).autoTable.previous.finalY + 15,\r\n\t\t\t\theadStyles: {\r\n\t\t\t\t\tfont: 'Roboto-Bold',\r\n\t\t\t\t\tfontStyle: 'normal'\r\n\t\t\t\t},\r\n\t\t\t\tstyles: {\r\n\t\t\t\t\tfont: 'Roboto-Regular',\r\n\t\t\t\t\tfontStyle: 'normal'\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tthis.createSummaryTable(summaryTable.body);\r\n\r\n\t\t\tconst answersFormated = [...summaryTable.body];\r\n\r\n\t\t\tautoTable(doc, summaryTable);\r\n\r\n\t\t\t// = Requirements\r\n\t\t\tdoc.text(\r\n\t\t\t\tthis.formService.t(this.t, \"ui_requirement_results_title\", false),\r\n\t\t\t\t13,\r\n\t\t\t\t(doc as any).autoTable.previous.finalY + 10\r\n\t\t\t);\r\n\r\n\t\t\tconst body: string[][][] = [];\r\n\t\t\tconst myData = document.getElementById(\"table-results\") as HTMLTableElement;\r\n\t\t\tconst myDataRows = myData.rows as any;\r\n\r\n\t\t\tfor (const myDataRow of myDataRows) {\r\n\t\t\t\tif (myDataRow.cells.length === 3) {\r\n\t\t\t\t\tif (myDataRow.cells[0].innerText !== \"TARIF_MARKETING_DIGITAL\") {\r\n\t\t\t\t\t\tlet el1 = myDataRow.cells[0].innerText;\r\n\t\t\t\t\t\tlet el2 = myDataRow.cells[1].innerText.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\t\t\t\t\t\tlet el3 = myDataRow.cells[2].innerHTML\r\n\t\t\t\t\t\t\t.replace(/<\\/span>/g, '\\n\\n')\r\n\t\t\t\t\t\t\t.replace(/
  • /g, '\\n-')\r\n\t\t\t\t\t\t\t.replace(/<\\/li><\\/ul>/g, '\\n\\n')\r\n\t\t\t\t\t\t\t.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\t\t\t\t\t\tbody.push([el1, el2, el3]);\r\n\t\t\t\t\t}else {\r\n\t\t\t\t\t\tlet el2 = myDataRow.cells[1].innerText.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\t\t\t\t\t\tlet el3 = myDataRow.cells[2].innerHTML\r\n\t\t\t\t\t\t\t.replace(/<\\/span>/g, '\\n\\n')\r\n\t\t\t\t\t\t\t.replace(/
  • /g, '\\n-')\r\n\t\t\t\t\t\t\t.replace(/<\\/li><\\/ul>/g, '\\n\\n')\r\n\t\t\t\t\t\t\t.replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\t\t\t\t\t\tbody.push([el2, el3]);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tbody.push(['', '', myDataRow.cells[0].innerHTML\r\n\t\t\t\t\t\t.replace('', '\\n\\n')\r\n\t\t\t\t\t\t.replace(/<\\/?[^>]+(>|$)/g, \"\")\r\n\t\t\t\t\t]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tlet head = body[0];\r\n\t\t\thead.shift();\r\n\t\t\tbody.shift();\r\n\t\t\t// @ts-ignore\r\n\t\t\thead[1] = head[1].replace(/<\\/?[^>]+(>|$)/g, \"\");\r\n\r\n\t\t\tdoc.setFont('Roboto-Regular', 'normal');\r\n\t\t\tautoTable(doc, {\r\n\t\t\t\thead: [head],\r\n\t\t\t\t//html: \"#table-results\",\r\n\t\t\t\tstartY: (doc as any).autoTable.previous.finalY + 15,\r\n\t\t\t\tbody: body,\r\n\t\t\t\theadStyles: {\r\n\t\t\t\t\tfont: 'Roboto-Bold',\r\n\t\t\t\t\tfontStyle: 'normal'\r\n\t\t\t\t},\r\n\t\t\t\tstyles: {\r\n\t\t\t\t\tfont: 'Roboto-Regular',\r\n\t\t\t\t\tfontStyle: 'normal'\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tdoc.setFont('Roboto-Regular', 'normal');\r\n\t\t\tdoc.setFontSize(8);\r\n\t\t\tlet y = (doc as any).autoTable.previous.finalY + 20;\r\n\t\t\ty = this.writeMultiLinesText(doc, this.formService.t(this.t, \"disclaimer_title\", false), y);\r\n\t\t\tthis.writeMultiLinesText(doc, this.formService.t(this.t, \"disclaimer_text\", false), y);\r\n\r\n\t\t\tconst resultFormated = [[\r\n\t\t\t\t\tthis.formService.t(this.t, this.props.results[0].requirement, false),\r\n\t\t\t\t\tthis.formService.t(this.t, this.props.results[0].answer.toString(), false)\r\n\t\t\t]];\r\n\r\n\t\t\t// = Send Email\r\n\t\t\tthis.formService.sendPDF(\"default\", doc.output('blob'), this.props.values['question_email'], answersFormated, resultFormated)\r\n\t\t\t\t.then((res) => {\r\n\t\t\t\t\tconsole.log(\"Success\");\r\n\t\t\t\t})\r\n\t\t\t\t.catch(() => {\r\n\t\t\t\t\tconsole.log('Fail');\r\n\t\t\t\t})\r\n\t\t})\r\n\r\n\t}\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\t\telse if (this.props.form.type === FormType.EMAIL_SENT){\r\n\t\t\treturn (
    \r\n\t\t\t\t

    Devis Envoyé

    \r\n\t\t\t\t

    Vous retrouverez dans votre boîte mail votre devis personnalisés !

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

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

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

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

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

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

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

    {values[row][formQuestion.question]}

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

    {values}

    \n \n );\n }\n }\n}\n\nexport default withTranslation()(FormTable);\n","import { TFunction } from \"i18next\";\nimport React, { Component } from \"react\";\nimport { withTranslation, WithTranslation } from \"react-i18next\";\nimport \"./FormInputEmail.scss\";\nimport { FormService } from \"../services/FormService\";\nimport { FormQuestion } from \"../models/FormQuestion\";\n\ninterface Props extends WithTranslation {\n question: FormQuestion;\n onChange: (v: any) => void;\n value?: any;\n disabled?: boolean;\n}\n\n\ninterface States {\n value: string;\n\thasError: boolean;\n\tisBlur: boolean;\n}\n\nclass FormInputEmail extends Component {\n private t: TFunction;\n private formService: FormService;\n\n constructor(props: Props) {\n super(props);\n\n this.t = this.props.t;\n this.formService = new FormService();\n\t\tthis.state = {\n\t\t\thasError: false,\n\t\t\tvalue: '',\n\t\t\tisBlur: false\n\t\t};\n\t\tthis.handleBlur = this.handleBlur.bind(this);\n\t\tthis.handleChange = this.handleChange.bind(this);\n }\n\n\tprivate _validateEmail(email) {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n return emailRegex.test(email);\n }\n\n\thandleBlur(e: React.FocusEvent) {\n\t\tif (e.target.value !== \"\") {\n\t\t\tthis.setState({...this.state, isBlur: true});\n\t\t}\n\t}\n\n\thandleChange(e: React.ChangeEvent) {\n\t\tif (e.target.value === \"\") {\n\t\t\tthis.setState({...this.state, value: e.target.value, hasError: false, isBlur: false});\n\t\t}else {\n\t\t\tthis.setState({...this.state, value: e.target.value, hasError: !this._validateEmail(e.target.value)});\n\t\t}\n\t\tthis.props.onChange(e);\n\t}\n\n render() {\n return (\n \n
    \n \n\t\t\t\t\t\t{(this.state.hasError && this.state.isBlur) &&

    Email Invalide

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

    Loading...

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

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

    \n

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

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

    Decision tree editor

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

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

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

    {this.props.currenToolsName}

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

    NODES

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

    END NODES

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

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

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

    Separate different element using \" ; \"

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

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

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

    Separate different element using \" ; \"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    Left member

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

    Right member

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

    Node edition

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

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

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

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

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

    Script editor

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

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

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

    Available tags

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

    {\"Questions\"}

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

    {\"Requirements\"}

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

    {\"Prismic keys\"}

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

    {\"Images (Prismic keys)\"}

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

    HTML template editor

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

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

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

    Requirement editor

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

    Form editor

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

    Please wait while the app is loading …

    \n

    This can take up to 30 seconds.

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

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

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