{"version":3,"sources":["Pages/Login/img/bg.jpg","Pages/Login/img/avancie.png","i18n.js","Services/authentication.service.js","Services/date.service.js","Services/time.service.js","Services/i18nText.js","Helpers/auth-header.js","Helpers/handle-response.js","Helpers/history.js","Components/AutoForm/Elements/Checkbox.js","Components/AutoForm/Elements/Checklist.js","Components/AutoForm/Elements/Color.js","Components/AutoForm/Elements/Column.js","Components/AutoForm/Elements/Date.js","Components/AutoForm/Elements/DatetimeLocal.js","Components/AutoForm/Elements/Divider.js","Components/AutoForm/Elements/Element.js","Components/AutoForm/Elements/File.js","Components/AutoForm/Elements/FormGroup.js","Components/AutoForm/Elements/FormGroupCheckbox.js","Components/AutoForm/Elements/FormGroupChecklist.js","Components/AutoForm/Elements/FormGroupColor.js","Components/AutoForm/Elements/FormGroupDate.js","Components/AutoForm/Elements/FormGroupDatetimeLocal.js","Components/AutoForm/Elements/FormGroupFile.js","Components/AutoForm/Elements/FormGroupLink.js","Components/AutoForm/Elements/FormGroupMonth.js","Components/AutoForm/Elements/FormGroupMultiple.js","Components/AutoForm/Elements/FormGroupNumber.js","Components/AutoForm/Elements/FormGroupPassword.js","Components/AutoForm/Elements/FormGroupRadio.js","Components/AutoForm/Elements/FormGroupRange.js","Components/AutoForm/Elements/FormGroupSelect.js","Components/AutoForm/Elements/FormGroupSignature.js","Components/AutoForm/Elements/FormGroupText.js","Components/AutoForm/Elements/FormGroupTextarea.js","Components/AutoForm/Elements/FormGroupTime.js","Components/AutoForm/Elements/FormGroupUrl.js","Components/AutoForm/Elements/FormGroupWeek.js","Components/AutoForm/Elements/HelpText.js","Components/AutoForm/Elements/Input.js","Components/AutoForm/Elements/InvalidFeedback.js","Components/AutoForm/Elements/Label.js","Components/AutoForm/Elements/Link.js","Components/AutoForm/Elements/Month.js","Components/AutoForm/Elements/Multiple.js","Components/AutoForm/Elements/Number.js","Components/AutoForm/Elements/Password.js","Components/AutoForm/Elements/PageHeader.js","Components/AutoForm/Elements/Paragraph.js","Components/AutoForm/Elements/Radio.js","Components/AutoForm/Elements/Range.js","Components/AutoForm/Elements/Repeater.js","Components/AutoForm/Elements/RepeaterItem.js","Components/AutoForm/Elements/Row.js","Components/AutoForm/Elements/Section.js","Components/AutoForm/Elements/Select.js","Components/AutoForm/Elements/Signature.js","Components/AutoForm/Elements/Spacer.js","Components/AutoForm/Elements/StaticText.js","Components/AutoForm/Elements/Text.js","Components/AutoForm/Elements/Textarea.js","Components/AutoForm/Elements/Time.js","Components/AutoForm/Elements/Url.js","Components/AutoForm/Elements/Week.js","Components/AutoForm/AutoForm.js","Components/AutoForm/Consent.js","Components/BigButton/BigButton.js","Components/ColorBox/ColorBox.js","Components/Footer/Footer.js","Components/SelectLanguage/SelectLanguage.js","Components/Header/Header.js","Components/Loading/Loading.js","Components/MediaBox/MediaBox.js","Components/MediaBox/MediaBoxEmptyRow.js","Components/MediaBox/MediaBoxRow.js","Components/PageHeader/PageHeader.js","Components/PrivateRoute/PrivateRoute.js","Pages/Form/Form.js","Pages/Form/FormTerms.js","Pages/Home/Home.js","Pages/Login/Login.js","App/App.js","serviceWorker.js","index.js"],"names":["module","exports","i18n","use","initReactI18next","LanguageDetector","init","fallbackLng","debug","ns","defaultNS","keySeparator","interpolation","escapeValue","formatSeparator","react","useSuspense","wait","currentUserSubject","BehaviorSubject","JSON","parse","localStorage","getItem","authenticationService","login","username","password","requestOptions","method","headers","body","stringify","Name","Password","fetch","process","language","substring","then","handleResponse","user","setItem","next","logout","removeItem","currentUser","asObservable","value","dateService","getDate","text","d","getDateByText","getFullYear","String","getMonth","padStart","getDatetimeLocal","getHours","getMinutes","getWeek","onejan","Date","Math","ceil","getDay","now","date","toLowerCase","setDate","timeService","getTime","getTimeByText","i18nText","exists","result","rest","index","length","keys","Object","getText","args","entries","key","replace","authHeader","currentUserValue","token","mode","Authorization","response","data","ok","indexOf","status","url","window","location","reload","error","message","statusText","Promise","reject","history","createBrowserHistory","Checkbox","props","context","defaultValue","element","modelPath","inputModel","readModel","checked","inputRef","useRef","change","errors","validateElement","current","updateModel","useEffect","validators","subscribe","unsubscribe","className","type","ref","autoComplete","disabled","isReadOnly","id","name","onBlur","onChange","onFocus","required","htmlFor","Checklist","e","newValues","target","filter","p","isChecked","checklist","validator","max","min","options","map","option","Color","customProps","assign","Column","elements","eindex","DatetimeLocal","Divider","title","subtitle","Element","render","renderIf","$item","undefined","$root","getModel","evaluate","File","useTranslation","useState","state","setState","hiddenText","fileInput","filenames","x","z","push","filename","join","multiple","aform-path","files","newState","n","m","file","uuid","onClick","i","l","item","download","fileId","filetype","FileReader","readAsDataURL","blob","Blob","downloadBlob","icon","FormGroup","children","FormGroupCheckbox","helpText","FormGroupChecklist","FormGroupColor","FormGroupDate","FormGroupDatetimeLocal","FormGroupFile","FormGroupLink","labelText","FormGroupMonth","FormGroupMultiple","FormGroupNumber","FormGroupPassword","FormGroupRadio","FormGroupRange","FormGroupSelect","FormGroupSignature","FormGroupText","FormGroupTextarea","FormGroupTime","FormGroupUrl","FormGroupWeek","HelpText","Input","autocomplete","maxLength","minLength","pattern","step","InvalidFeedback","floor","validation","validations","v","Label","Link","href","Month","Multiple","Number","setType","PageHeader","Paragraph","Radio","inline","Range","Repeater","Array","isArray","validate","array","list","messages","parseInt","console","itemIndex","hideRemove","newArray","onDelete","deleteText","hideAdd","addText","RepeaterItem","clsx","Row","Section","Select","inputValue","selectOptions","values","getValues","selected","Signature","hiddenSignature","signature","container","image","src","fromDataURL","redrawOnResize","onEnd","newValue","toDataURL","alt","clear","Spacer","StaticText","Text","Textarea","log","Time","Url","Week","AutoForm","useHistory","t","addResourceBundle","EnglishResourceBundle","FrenchResourceBundle","formElement","formChanged","setFormChanged","formModel","model","setModel","form","defaultModel","saving","setSaving","saved","setSaved","setMessages","validated","setValidated","termsChecked","setTermsChecked","onSave","notify","fileInputs","formData","FormData","route","ea","append","formVersion","getLocalizeValue","clientTerms","formTerms","allFileIndex","forEach","fileIndex","getAttribute","request","json","messageType","atLeastOnError","hasErrors","scrollToFirstErrorOrTop","finally","Error","catch","URL","createObjectURL","tempLink","document","createElement","setAttribute","click","revokeObjectURL","deepRead","branch","startsWith","slice","presetDefaultValue","alternativeDefaultValue","path","split","readDefaultValue","newModel","modelString","deepUpdate","changed","observers","f","subscriber","observer","checkValidity","validity","valueMissing","typeMismatch","patternMismatch","tooLong","tooShort","rangeUnderflow","rangeOverflow","stepMismatch","badInput","email","phone","RegExp","test","regex","node","ReactDOM","findDOMNode","firstInvalidElement","querySelector","top","offsetTop","offsetParent","getOffsetTop","scrollTo","behavior","obj","atleastOnError","culture","localizeObj","onUnload","event","returnValue","addEventListener","removeEventListener","role","Trans","i18nKey","lang","noValidate","onSubmit","preventDefault","template","content","elementIndex","mindex","clientKey","formKey","termsChanged","verb","iconClassName","active","processing","disabledText","clientLocalizations","print","Consent","clientIsInvalid","formIsInvalid","clientRef","formRef","clientErrors","formErrors","hasClientTerms","hasFormTerms","to","templateLocalizations","BigButton","pulse","ColorBox","imageSrc","color","random","toString","width","height","xmlns","preserveAspectRatio","focusable","fill","Footer","rel","SelectLanguage","DropdownButton","variant","alignRight","languages","prefix","substr","getLanguageText","size","Dropdown","Item","changeLanguage","Header","setCurrentUser","userSubscription","Loading","MediaBox","description","emptyText","MediaBoxEmptyRow","MediaBoxRow","dIndex","PrivateRoute","Component","component","match","params","recipientEmail","pathname","from","Form","useParams","number","setData","loading","setLoading","isFormUnknown","setIsFormUnknown","safeJSONParse","scripts","setScripts","s","removeChild","newScripts","client","javascript","scriptClient","innerHTML","async","appendChild","scriptTemplate","runScripts","style","fax","utc","local","locale","creationDate","format","modificationDate","fromNow","formNumber","FormTerms","ReactMarkdown","require","termId","terms","setLocale","routeModifier","source","escapeHtml","Home","formsToComplete","formsNotified","notifications","clients","templates","forms","isRecipient","isSender","getFormData","getLocalize","localizations","localize","find","templateId","clientId","moment","version","privateKey","Login","api","placeholder","App","library","add","faArrowRight","faCheck","faChevronUp","faDownload","faEye","faEyeSlash","faSave","faShare","faSpinner","faTrashAlt","exact","Boolean","hostname","getElementById","navigator","serviceWorker","ready","registration","unregister"],"mappings":"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","file":"static/js/main.900e777a.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/bg.eb33fb74.jpg\";","module.exports = \"data:image/png;base64,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\"","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport LanguageDetector from \"i18next-browser-languagedetector\";\r\n\r\ni18n\r\n .use(initReactI18next)\r\n .use(LanguageDetector)\r\n .init({ \r\n fallbackLng: \"en\",\r\n debug: false,\r\n ns: [\"translations\"],\r\n defaultNS: \"translations\",\r\n keySeparator: false, // we use content as keys\r\n interpolation: {\r\n escapeValue: false,\r\n formatSeparator: \",\"\r\n },\r\n react: {\r\n useSuspense: false,\r\n wait: true\r\n }\r\n});\r\n\r\nexport default i18n;","import { BehaviorSubject } from 'rxjs';\r\nimport { handleResponse } from '../Helpers';\r\nimport i18n from \"i18next\";\r\n\r\nconst currentUserSubject = new BehaviorSubject(JSON.parse(localStorage.getItem('currentUser')));\r\n\r\nexport const authenticationService = {\r\n login,\r\n logout,\r\n currentUser: currentUserSubject.asObservable(),\r\n get currentUserValue () { return currentUserSubject.value }\r\n};\r\n\r\nfunction login(username, password) {\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Accept': '*/*', 'Content-Type': 'application/json; charset=utf-8' },\r\n body: JSON.stringify({ Name: username, Password: password })\r\n };\r\n\r\n return fetch(`${process.env.REACT_APP_APIURL}/api/users/authenticate?culture=${i18n.language.substring(0, 2)}`, requestOptions)\r\n .then(handleResponse)\r\n .then(user => {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n localStorage.setItem('currentUser', JSON.stringify(user));\r\n currentUserSubject.next(user);\r\n\r\n return user;\r\n });\r\n}\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n localStorage.removeItem('currentUser');\r\n currentUserSubject.next(null);\r\n}\r\n","export const dateService = {\r\n getDate,\r\n getDatetimeLocal,\r\n getMonth,\r\n getWeek\r\n}\r\n\r\nfunction getDateByText(text) {\r\n const now = new Date();\r\n\r\n if (!text)\r\n return null;\r\n\r\n let date = null;\r\n\r\n switch(text.toLowerCase()) { \r\n case \"today\": { \r\n date = now;\r\n break; \r\n } \r\n case \"yesterday\": { \r\n now.setDate(now.getDate() - 1);\r\n date = now;\r\n break; \r\n }\r\n case \"tomorrow\": { \r\n now.setDate(now.getDate() + 1);\r\n date = now;\r\n break; \r\n } \r\n case \"firstofyear\": {\r\n date = new Date(now.getFullYear(), 0, 1);\r\n break;\r\n }\r\n case \"lastofyear\": { \r\n date = new Date(now.getFullYear(), 11, 31, 23, 59, 59);\r\n break; \r\n } \r\n case \"firstofmonth\": { \r\n date = new Date(now.getFullYear(), now.getMonth(), 1);\r\n break;\r\n }\r\n case \"lastofmonth\": {\r\n date = new Date(now.getFullYear(), now.getMonth() + 1, 0, 23, 59, 59);\r\n break;\r\n } \r\n default: {\r\n date = text;\r\n break;\r\n }\r\n } \r\n\r\n return date;\r\n}\r\n\r\nfunction getDate(text) {\r\n const d = getDateByText(text);\r\n \r\n if (!d || typeof d === \"string\")\r\n return d;\r\n\r\n return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}`;\r\n}\r\n\r\nfunction getDatetimeLocal(text) {\r\n const d = getDateByText(text);\r\n \r\n if (!d || typeof d === \"string\")\r\n return d;\r\n\r\n return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}-${String(d.getDate()).padStart(2, '0')}T${String(d.getHours()).padStart(2, '0')}:${String(d.getMinutes()).padStart(2, '0')}`;\r\n}\r\n\r\nfunction getMonth(text) {\r\n const d = getDateByText(text);\r\n \r\n if (!d || typeof d === \"string\")\r\n return d;\r\n\r\n return `${d.getFullYear()}-${String(d.getMonth() + 1).padStart(2, '0')}`;\r\n}\r\n\r\nfunction getWeek(text) {\r\n const d = getDateByText(text);\r\n \r\n if (!d || typeof d === \"string\")\r\n return d;\r\n \r\n var onejan = new Date(d.getFullYear(),0,1); \r\n return `${d.getFullYear()}-W${Math.ceil((((d - onejan) / 86400000) + onejan.getDay()+1)/7)}`;\r\n}","export const timeService = {\r\n getTime\r\n}\r\n\r\nfunction getTimeByText(text) {\r\n const now = new Date();\r\n\r\n if (!text)\r\n return null;\r\n\r\n let date = null;\r\n\r\n switch(text.toLowerCase()) { \r\n case \"now\": { \r\n date = now;\r\n break; \r\n } \r\n default: {\r\n date = text;\r\n break;\r\n }\r\n } \r\n\r\n return date;\r\n}\r\n\r\nfunction getTime(text) {\r\n const d = getTimeByText(text);\r\n \r\n if (!d || typeof d === \"string\")\r\n return d;\r\n\r\n return `${d.getHours()}:${String(d.getMinutes()).padStart(2, '0')}`;\r\n}","import i18n from \"i18next\";\r\n\r\nexport const i18nText = {\r\n exists: (...rest) => {\r\n let result = false; \r\n\r\n for(let index in rest) \r\n {\r\n const value = rest[index];\r\n\r\n if (value == null || typeof value !== \"object\")\r\n continue;\r\n\r\n let text = value[i18n.language.substring(0, 2)];\r\n if (text == null || typeof text === \"undefined\" || text.length === 0) { \r\n const keys = Object.keys(value);\r\n if (keys.length > 0)\r\n text = value[keys[0]];\r\n }\r\n\r\n if (text == null || typeof text === \"undefined\" || text.length === 0)\r\n continue;\r\n\r\n result = true;\r\n break;\r\n }\r\n\r\n return result;\r\n },\r\n getText: (value, args) => {\r\n if (!i18nText.exists(value))\r\n return \"\";\r\n\r\n let text = value[i18n.language.substring(0, 2)];\r\n if (text == null || typeof text === \"undefined\" || text.length === 0) {\r\n const keys = Object.keys(value);\r\n if (keys.length > 0)\r\n text = value[keys[0]];\r\n }\r\n\r\n if (args){\r\n for (let [key, value] of Object.entries(args)) {\r\n text = text.replace(\"{{\" + key + \"}}\", value);\r\n }\r\n }\r\n return text;\r\n }\r\n}\r\n\r\nexport default i18nText;\r\n\r\n","import { authenticationService } from '../Services';\r\n\r\nexport function authHeader() {\r\n const currentUser = authenticationService.currentUserValue;\r\n\r\n if (currentUser && currentUser.token) {\r\n return { mode: 'no-cors', Authorization: `Bearer ${currentUser.token}` };\r\n }\r\n\r\n return {};\r\n}\r\n","import { authenticationService } from '../Services';\r\n\r\nexport function handleResponse(response) {\r\n if (!response)\r\n return Promise.reject();\r\n\r\n return response.text().then(text => {\r\n const data = text && JSON.parse(text);\r\n if (!response.ok) {\r\n if ([401, 403].indexOf(response.status) !== -1) {\r\n // auto logout if 401 Unauthorized or 403 Forbidden response returned from api\r\n authenticationService.logout();\r\n if (response.url.indexOf(\"/api/users/authenticate\") === -1)\r\n window.location.reload(true);\r\n }\r\n\r\n const error = (data && data.message) || response.statusText;\r\n return Promise.reject(error);\r\n }\r\n\r\n return data;\r\n });\r\n}","import { createBrowserHistory } from 'history';\r\n\r\nexport const history = createBrowserHistory();","import React, { useEffect, useRef } from 'react'\r\n\r\nimport { i18nText } from '../../../Services'\r\n\r\nexport const Checkbox = props => {\r\n const { context, defaultValue, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, defaultValue || element.defaultValue || false); \r\n const checked = inputModel.value ? (\"\" + inputModel.value).toLowerCase() === \"true\" ? true : false : false;\r\n\r\n let inputRef = useRef(null);\r\n\r\n const change = () => {\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.checked);\r\n context.updateModel(modelPath, inputRef.current.checked, errors);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(change);\r\n return () => context.validators.unsubscribe(change);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n
\r\n \r\n { i18nText.exists(element.text) && }\r\n
\r\n )\r\n}\r\n\r\nexport default Checkbox;","import React, { Fragment, useEffect, useRef } from 'react'\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const Checklist = props => {\r\n const { context, element, modelPath } = props; \r\n const inputModel = context.readModel(modelPath, element.defaultValue || []);\r\n let inputRef = useRef(null);\r\n\r\n const change = e => {\r\n let newValues = [ ...inputModel.value ];\r\n if (e.target.checked) {\r\n newValues = [...newValues, String(e.target.value)];\r\n } else {\r\n newValues = newValues.filter(p => String(p) !== String(e.target.value))\r\n }\r\n \r\n inputRef.current.value = newValues.length === 0 ? '' : newValues.length;\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.value);\r\n context.updateModel(modelPath, newValues, errors);\r\n }\r\n\r\n const isChecked = value => {\r\n let checklist = [ ...inputModel.value ];\r\n checklist = checklist.filter(p => String(p) === String(value));\r\n return checklist && checklist.length > 0; \r\n }\r\n\r\n const validator = () => {\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.value);\r\n context.updateModel(modelPath, inputModel.value, errors);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(validator);\r\n return () => context.validators.unsubscribe(validator);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n \r\n \r\n {element.options && element.options.map(option => {\r\n const id = `checkbox-${element.name}-${option.value}`;\r\n return (\r\n
\r\n \r\n \r\n
\r\n )})\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default Checklist;\r\n","import React from 'react'\r\nimport { Input } from './'\r\n\r\nexport const Color = props => { \r\n const customProps = Object.assign({}, { \"defaultValue\": \"#000000\", \"type\": \"color\" }, props);\r\n \r\n return ()\r\n}\r\n\r\nexport default Color;","import React from 'react'\r\nimport { Element } from './'\r\n\r\nexport const Column = (props) => {\r\n const { element } = props;\r\n\r\n return (\r\n
\r\n { element.elements && element.elements.map((e, eindex) => ) } \r\n
\r\n );\r\n}","import React from 'react'\r\nimport { Input } from './'\r\nimport { dateService } from '../../../Services';\r\n\r\nexport const Date = props => {\r\n if (!props.element)\r\n return null;\r\n\r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": \"date\" }, props);\r\n \r\n if (customProps.element.min)\r\n customProps.element.min = dateService.getDate(customProps.element.min);\r\n\r\n if (customProps.element.max)\r\n customProps.element.max = dateService.getDate(customProps.element.max);\r\n\r\n return ()\r\n}\r\n\r\nexport default Date;","import React from 'react'\r\nimport { Input } from './'\r\nimport { dateService } from '../../../Services';\r\n\r\nexport const DatetimeLocal = props => {\r\n if (!props.element)\r\n return null;\r\n\r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": \"datetime-local\" }, props);\r\n \r\n if (customProps.element.min)\r\n customProps.element.min = dateService.getDatetimeLocal(customProps.element.min);\r\n\r\n if (customProps.element.max)\r\n customProps.element.max = dateService.getDatetimeLocal(customProps.element.max);\r\n\r\n return ()\r\n}\r\n\r\nexport default DatetimeLocal;","import React from 'react'\r\nimport { Element } from './'\r\nimport { i18nText } from '../../../Services'\r\nimport './divider.css'\r\n\r\nexport const Divider = props => {\r\n const { element } = props;\r\n\r\n return (\r\n
\r\n
\r\n { i18nText.exists(element.title) &&

{i18nText.getText(element.title)}

}\r\n { i18nText.exists(element.subtitle) &&

{i18nText.getText(element.subtitle)}

}\r\n { element.elements && element.elements.map((e, eindex) => ) }\r\n
\r\n )\r\n}","import React from 'react'\r\nimport { \r\n Checkbox, \r\n Checklist,\r\n Color, \r\n Column, \r\n Date,\r\n DatetimeLocal,\r\n Divider, \r\n File,\r\n FormGroup, \r\n FormGroupCheckbox, \r\n FormGroupChecklist, \r\n FormGroupColor, \r\n FormGroupDate,\r\n FormGroupDatetimeLocal,\r\n FormGroupFile,\r\n FormGroupLink,\r\n FormGroupMonth,\r\n FormGroupMultiple,\r\n FormGroupNumber,\r\n FormGroupPassword,\r\n FormGroupRadio,\r\n FormGroupRange,\r\n FormGroupSelect,\r\n FormGroupSignature,\r\n FormGroupText, \r\n FormGroupTextarea,\r\n FormGroupTime, \r\n FormGroupUrl, \r\n FormGroupWeek,\r\n HelpText, \r\n Label,\r\n Link,\r\n Month,\r\n Multiple,\r\n Number,\r\n Password,\r\n PageHeader,\r\n Paragraph,\r\n Radio, \r\n Range, \r\n Repeater, \r\n Row, \r\n Section, \r\n Select,\r\n Signature,\r\n Spacer,\r\n StaticText,\r\n Text,\r\n Textarea,\r\n Time,\r\n Url,\r\n Week } from './'\r\nimport evaluate from 'simple-evaluate';\r\n\r\nexport const Element = (props) => { \r\n const customProps = { ...props, render: true };\r\n const { element } = customProps;\r\n\r\n if (element) {\r\n if (element.name) { \r\n customProps.modelPath = (customProps.modelPath == null || customProps.modelPath.length === 0 ? \"\" : `${customProps.modelPath}.`) + element.name;\r\n }\r\n\r\n if (element.renderIf) {\r\n const { context } = customProps;\r\n const $item = customProps.modelPath ? context.readModel(customProps.modelPath, {}) : undefined;\r\n const $root = context.getModel();\r\n customProps.render = evaluate({ $root: $root, $item: $item }, element.renderIf);\r\n }\r\n }\r\n\r\n if (customProps.render === false)\r\n return null;\r\n\r\n return (\r\n <> \r\n {{\r\n \"Checkbox\": ,\r\n \"Checklist\": ,\r\n \"Color\": ,\r\n \"Column\": ,\r\n \"Date\": ,\r\n \"DatetimeLocal\": ,\r\n \"Divider\": ,\r\n \"File\": ,\r\n \"FormGroup\": ,\r\n \"FormGroupChecklist\": ,\r\n \"FormGroupCheckbox\": ,\r\n \"FormGroupColor\": ,\r\n \"FormGroupDate\": ,\r\n \"FormGroupDatetimeLocal\": ,\r\n \"FormGroupFile\": ,\r\n \"FormGroupLink\": ,\r\n \"FormGroupMonth\": ,\r\n \"FormGroupMultiple\": ,\r\n \"FormGroupNumber\": ,\r\n \"FormGroupPassword\": ,\r\n \"FormGroupRadio\": ,\r\n \"FormGroupRange\": ,\r\n \"FormGroupSelect\": ,\r\n \"FormGroupSignature\": ,\r\n \"FormGroupText\": ,\r\n \"FormGroupTextarea\": ,\r\n \"FormGroupTime\": ,\r\n \"FormGroupUrl\": ,\r\n \"FormGroupWeek\": ,\r\n \"HelpText\": , \r\n \"Label\": ,\r\n \"Link\": ,\r\n \"Month\": ,\r\n \"Multiple\": ,\r\n \"Number\": ,\r\n \"Password\": ,\r\n \"PageHeader\": ,\r\n \"Paragraph\": ,\r\n \"Radio\": ,\r\n \"Range\": ,\r\n \"Repeater\": ,\r\n \"Row\": ,\r\n \"Section\":
,\r\n \"Select\": ,\r\n \"Signature\": ,\r\n \"Spacer\": ,\r\n \"StaticText\": ,\r\n \"Text\": ,\r\n \"Textarea\": ,\r\n \"Time\": ,\r\n \"Url\": ,\r\n \"Week\": \r\n }[props.element.type]} \r\n \r\n )\r\n}\r\n\r\nexport default Element;\r\n","import React, { useEffect, useRef, useState } from 'react'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport { uuid } from 'uuidv4';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const File = props => {\r\n const { context, element, modelPath } = props;\r\n const { i18n } = useTranslation();\r\n const inputModel = context.readModel(modelPath, []);\r\n\r\n const [state, setState] = useState(inputModel.value);\r\n\r\n let hiddenText = useRef(null);\r\n let fileInput = useRef(null);\r\n\r\n const download = () => {\r\n if (fileInput.current.files.length === 0 && state.length === 0)\r\n return;\r\n\r\n if (fileInput.current.files.length === 0 && state.length > 0)\r\n {\r\n for (var i = 0, l = state.length; i < l; i++) {\r\n var item = state[i];\r\n props.context.download(item.fileId,item.filename);\r\n }\r\n }\r\n\r\n if (fileInput.current.files.length > 0)\r\n {\r\n for (var n = 0, m = fileInput.current.files.length; n < m; n++)\r\n {\r\n let file = fileInput.current.files[n];\r\n\r\n const filename = file.name;\r\n const filetype = file.type;\r\n const fr = new FileReader();\r\n fr.readAsDataURL(file);\r\n\r\n const blob = new Blob([file], { type: filetype });\r\n\r\n props.context.downloadBlob(blob, filename);\r\n }\r\n }\r\n }\r\n\r\n const fileHandleChange = (e) => {\r\n let files = e.target.files;\r\n\r\n const count = files ? files.length : 0;\r\n let text = [];\r\n const newState = [];\r\n\r\n for (var n = 0, m = count; n < m; n++)\r\n {\r\n const file = files[n];\r\n newState.push({ \"filename\": file.name, \"fileId\": uuid() });\r\n text.push(file.name);\r\n }\r\n\r\n setState(newState);\r\n hiddenText.current.value = text.join(\", \");\r\n validator();\r\n }\r\n\r\n const clear = () => {\r\n setState([]);\r\n hiddenText.current.value = \"\"\r\n fileInput.current.value = \"\";\r\n validator();\r\n }\r\n\r\n const validator = () => {\r\n const errors = context.validateElement(hiddenText.current, element, hiddenText.current.value);\r\n context.updateModel(modelPath, state, errors);\r\n }\r\n\r\n let filenames = [];\r\n for (var x = 0, z = state.length; x < z; x++)\r\n {\r\n filenames.push(state[x].filename);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(validator);\r\n return () => context.validators.unsubscribe(validator);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, hiddenText]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n {state.length > 0 &&\r\n \r\n }\r\n {!context.isReadOnly &&\r\n \r\n }\r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default File;","import React from 'react'\r\n\r\nexport const FormGroup = props => {\r\n const { children, required } = props;\r\n \r\n return (\r\n
\r\n {children}\r\n
\r\n )\r\n}\r\n\r\nexport default FormGroup;","import React from 'react'\r\nimport { Checkbox, FormGroup, HelpText, InvalidFeedback, Label } from './'\r\n\r\nexport const FormGroupCheckbox = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || false);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupCheckbox;","import React from 'react'\r\nimport { Checklist, FormGroup, HelpText, InvalidFeedback, Label } from './'\r\n\r\nexport const FormGroupChecklist = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupChecklist;","import React from 'react'\r\nimport { Color, FormGroup, HelpText, InvalidFeedback, Label } from './'\r\n\r\nexport const FormGroupColor = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"#000000\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupColor;","import React from 'react'\r\nimport { Date, FormGroup, HelpText, InvalidFeedback, Label } from './'\r\n\r\nexport const FormGroupDate = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupDate;","import React from 'react'\r\nimport { DatetimeLocal, FormGroup, HelpText, InvalidFeedback, Label } from './'\r\n\r\nexport const FormGroupDatetimeLocal = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupDatetimeLocal;","import React from 'react'\r\nimport { File, FormGroup, HelpText, InvalidFeedback, Label } from './'\r\n\r\nexport const FormGroupFile = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupFile;","import React from 'react'\r\nimport { FormGroup, HelpText, Link, Label } from './'\r\n\r\nexport const FormGroupLink = props => {\r\n const { element } = props;\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n
\r\n )\r\n}\r\n\r\nexport default FormGroupLink;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Month } from './'\r\n\r\nexport const FormGroupMonth = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupMonth;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Multiple } from './'\r\n\r\nexport const FormGroupMultiple = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupMultiple;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Number } from './'\r\n\r\nexport const FormGroupNumber = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupNumber;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Password } from './'\r\n\r\nexport const FormGroupPassword = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupPassword;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Radio } from './'\r\n\r\nexport const FormGroupRadio = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupRadio;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Range } from './'\r\n\r\nexport const FormGroupRange = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupRange;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Select } from './'\r\n\r\nexport const FormGroupSelect = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupSelect;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Signature } from './'\r\n\r\nexport const FormGroupSignature = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupSignature;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Text } from './'\r\n\r\nexport const FormGroupText = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupText;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Textarea } from './'\r\n\r\nexport const FormGroupTextarea = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupTextarea;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Time } from './'\r\n\r\nexport const FormGroupTime = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupTime;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Url } from './'\r\n\r\nexport const FormGroupUrl = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"http://\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupUrl;","import React from 'react'\r\nimport { FormGroup, HelpText, InvalidFeedback, Label, Week } from './'\r\n\r\nexport const FormGroupWeek = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default FormGroupWeek;","import React from 'react'\r\nimport { i18nText } from '../../../Services'\r\n\r\nexport const HelpText = props => {\r\n const text = props.text || (props.element ? props.element.text : \"\");\r\n \r\n return (\r\n <>\r\n { i18nText.exists(text) && {i18nText.getText(text)} }\r\n \r\n )\r\n}\r\n\r\nexport default HelpText;","import React, { useEffect, useRef } from 'react'\r\n\r\nexport const Input = props => {\r\n const { context, defaultValue, element, modelPath, type, autocomplete } = props; \r\n const inputModel = context.readModel(modelPath, defaultValue);\r\n let inputRef = useRef(null);\r\n\r\n const change = () => {\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.value);\r\n context.updateModel(modelPath, inputRef.current.value, errors);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(change);\r\n return () => context.validators.unsubscribe(change);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Input;","import React, { Fragment } from 'react'\r\nimport { uuid } from 'uuidv4';\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const InvalidFeedback = props => {\r\n const { element, errors } = props;\r\n\r\n if (!errors)\r\n return null;\r\n\r\n const getText = error => {\r\n let text = null;\r\n\r\n switch (error.name)\r\n {\r\n case \"valueMissing\":\r\n text = {\r\n \"fr\": \"Veuillez renseigner ce champ.\",\r\n \"en\": \"Please fill out this field.\"\r\n }\r\n break;\r\n\r\n case \"typeMismatch\":\r\n if (error.type === \"url\")\r\n text = {\r\n \"fr\": \"Veuillez saisir une URL complète. La valeur du champ doit débuter par http:// ou https://.\",\r\n \"en\": \"Please enter a URL. The valeur of the field must start with http:// ou https://.\"\r\n }\r\n else if (error.type === \"email\")\r\n {\r\n text = {\r\n \"fr\": \"Veuillez saisir un courriel valide.\",\r\n \"en\": \"Please enter a valid e-mail.\"\r\n }\r\n }\r\n else\r\n {\r\n text = {\r\n \"fr\": \"Veuillez saisir une valeur valide.\",\r\n \"en\": \"Please enter a valid value.\"\r\n }\r\n }\r\n break;\r\n\r\n case \"patternMismatch\":\r\n text = {\r\n \"fr\": \"Veuillez respecter le format requis.\",\r\n \"en\": \"Please match the requested format.\"\r\n }\r\n break;\r\n\r\n case \"tooLong\":\r\n text = {\r\n \"fr\": \"Veuillez modifier ce texte pour qu'il comporte au plus {{maxLength}} caractère(s). Il en compte actuellement {{length}}.\",\r\n \"en\": \"Please edit this text to {{maxLength}} caracter(s) or less. You currently using {{length}} caracter(s).\"\r\n }\r\n break;\r\n\r\n case \"tooShort\":\r\n text = {\r\n \"fr\": \"Veuillez modifier ce texte pour qu'il comporte au moins {{minLength}} caractère(s). Il en compte actuellement {{length}}.\",\r\n \"en\": \"Please edit this text to {{minLength}} caracter(s) or more. You currently using {{length}} caracter(s).\"\r\n }\r\n break;\r\n\r\n case \"rangeUnderflow\":\r\n text = {\r\n \"fr\": \"Cette valeur doit être supérieure ou égale à {{min}}.\",\r\n \"en\": \"Value must be greater than or equal to {{min}}.\"\r\n }\r\n break;\r\n\r\n case \"rangeOverflow\":\r\n text = {\r\n \"fr\": \"Cette valeur doit être inférieure ou égale à {{max}}.\",\r\n \"en\": \"Value must be less than or equal to {{max}}.\"\r\n }\r\n break;\r\n\r\n case \"stepMismatch\":\r\n const floor = Math.floor(error.value);\r\n text = {\r\n \"fr\": `Veuillez saisir une valeur valide. Les deux valeurs valides les plus proches sont \"${floor}\" et \"${floor + error.step}\".`,\r\n \"en\": `Please enter a valid value. The two nearest valid values are \"${floor}\" et \"${floor + error.step}\".`\r\n }\r\n break;\r\n\r\n case \"badInput\":\r\n text = {\r\n \"fr\": \"Veuillez saisir une valeur valide. Le champ n'est pas complet ou contient une valeur invalide.\",\r\n \"en\": \"Please enter a valid value. The field is incomplete or has an invalid value.\"\r\n }\r\n break;\r\n\r\n case \"invalidEmailorPhone\":\r\n text = {\r\n \"fr\": \"Veuillez saisir un courriel ou un numéro de téléphone valide.\",\r\n \"en\": \"Please enter a valid e-mail or phone number.\"\r\n }\r\n break;\r\n\r\n case \"invalidEmail\":\r\n text = {\r\n \"fr\": \"Veuillez saisir un courriel valide.\",\r\n \"en\": \"Please enter a valid e-mail.\"\r\n }\r\n break;\r\n\r\n case \"invalidPhone\":\r\n text = {\r\n \"fr\": \"Veuillez saisir un numéro de téléphone valide.\",\r\n \"en\": \"Please enter a valid phone number.\"\r\n }\r\n break;\r\n\r\n case \"repeaterMin\":\r\n text = {\r\n \"fr\": `Veuillez modifier cette liste pour qu'elle contienne au moins {{min}} item(s). Elle en compte actuellement {{length}}.`,\r\n \"en\": `Please edit this list so that it contains at least {{min}} item(s) or more. You currently using {{length}}.`\r\n }\r\n break;\r\n\r\n case \"repeaterMax\":\r\n text = {\r\n \"fr\": `Veuillez modifier cette liste pour qu'elle contienne au plus {{max}} item(s). Elle en compte actuellement {{length}}.`,\r\n \"en\": `Please edit this list so that it contains at most {{max}} item(s) or less. You currently using {{length}}.`\r\n }\r\n break;\r\n\r\n default:\r\n const validation = element.validations.filter(v => v.name === error.name);\r\n text = validation.length > 0 ? validation[0].text : { \"fr\": \"Une règle n'est pas respectée.\", \"en\": \"A rule is not respected.\" };\r\n break;\r\n }\r\n\r\n return i18nText.getText(text, error);\r\n }\r\n\r\n return (
{errors.map(error => {getText(error)}
) }
)\r\n}\r\n\r\nexport default InvalidFeedback;","import React from 'react'\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const Label = props => {\r\n const { text } = props;\r\n \r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Label;\r\n","import React from 'react'\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const Link = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\"); \r\n\r\n let text = i18nText.getText(element.text);\r\n text = text.length === 0 ? inputModel.value : text;\r\n\r\n return (\r\n <>\r\n {inputModel.value && \r\n \r\n {text}\r\n \r\n }\r\n \r\n )\r\n}\r\n\r\nexport default Link;\r\n","import React from 'react'\r\nimport { Input } from './'\r\nimport { dateService } from '../../../Services';\r\n\r\nexport const Month = props => {\r\n if (!props.element)\r\n return null;\r\n\r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": \"month\" }, props);\r\n \r\n if (customProps.element.min)\r\n customProps.element.min = dateService.getMonth(customProps.element.min);\r\n\r\n if (customProps.element.max)\r\n customProps.element.max = dateService.getMonth(customProps.element.max);\r\n\r\n return ()\r\n}\r\n\r\nexport default Month;","import React from 'react'\r\nimport { Select } from './'\r\n\r\nexport const Multiple = props => { \r\n const customProps = {...props};\r\n customProps.element.multiple = \"multiple\";\r\n customProps.element.className += \" custom-select\";\r\n \r\n return ()\r\n}\r\n\r\nexport default Number;","import React, { useState } from 'react'\r\nimport { uuid } from 'uuidv4'\r\nimport { Input } from './'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nexport const Password = props => { \r\n const [type, setType] = useState(\"password\");\r\n const togglePassword = () => type === \"password\" ? setType(\"text\") : setType(\"password\");\r\n\r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": type, \"autocomplete\": uuid() }, props);\r\n\r\n return (\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Password;","import React from 'react'\r\nimport { Element } from './'\r\nimport { i18nText } from '../../../Services'\r\n\r\nexport const PageHeader = props => {\r\n const { element } = props;\r\n\r\n return (\r\n
\r\n {i18nText.exists(element.title) &&

{i18nText.getText(element.title)}

}\r\n {i18nText.exists(element.subtitle) &&

{i18nText.getText(element.subtitle)}

}\r\n {element.elements && element.elements.map((e, eindex) => )}\r\n
\r\n )\r\n}","import React from 'react'\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const Paragraph = props => {\r\n const { element } = props;\r\n\r\n return (\r\n <>\r\n {i18nText.exists(element.text) &&

{i18nText.getText(element.text)}

}\r\n \r\n )\r\n}\r\n\r\nexport default Paragraph;\r\n","import './radio.css'\r\n\r\nimport React, { useEffect, useRef } from 'react'\r\n\r\nimport { i18nText } from '../../../Services';\r\nimport { uuid } from 'uuidv4';\r\n\r\nexport const Radio = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n let inputRef = useRef(null);\r\n\r\n const change = e => {\r\n inputRef.current.value = e.target.value;\r\n validator();\r\n }\r\n\r\n const validator = () => {\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.value);\r\n context.updateModel(modelPath, inputRef.current.value, errors);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(validator);\r\n return () => context.validators.unsubscribe(validator);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n
\r\n \r\n {element.options && element.options.map((option) => {\r\n const id = uuid();\r\n return (\r\n
\r\n \r\n \r\n
\r\n )\r\n })}\r\n
\r\n )\r\n}\r\n\r\nexport default Radio;","import React, { useEffect, useRef } from 'react'\r\nimport './range.css'\r\n\r\nexport const Range = props => {\r\n const { context, defaultValue, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, defaultValue);\r\n let inputRef = useRef(null);\r\n\r\n const change = () => {\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.value);\r\n context.updateModel(modelPath, inputRef.current.value, errors);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(change);\r\n return () => context.validators.unsubscribe(change);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n
\r\n
\r\n
{inputModel.value}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n )\r\n}\r\n\r\nexport default Range;","import React, { Fragment, useEffect } from 'react'\r\nimport { InvalidFeedback, RepeaterItem } from './'\r\nimport { i18nText } from '../../../Services'\r\nimport './repeater.css'\r\n\r\nexport const Repeater = props => {\r\n const { context, element, modelPath } = props;\r\n\r\n const inputModel = context.readModel(modelPath, element.defaultValue || []);\r\n\r\n if (Array.isArray(inputModel.value) === false)\r\n inputModel.value = [];\r\n\r\n const validate = (array) => {\r\n const list = array || [...inputModel.value] || [];\r\n const messages = [];\r\n\r\n if (element.min && list.length < parseInt(element.min))\r\n messages.push({ name: \"repeaterMin\", type: \"repeater\", min: element.min, length: list.length });\r\n\r\n if (element.max && list.length > parseInt(element.max))\r\n messages.push({ name: \"repeaterMax\", type: \"repeater\", max: element.max, length: list.length });\r\n\r\n context.updateModel(modelPath, list, messages);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(validate);\r\n return () => context.validators.unsubscribe(validate);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context]);\r\n\r\n if (Array.isArray(inputModel.value) === false) {\r\n console.error(`Invalid element name : ${element ? element.name : \"\"}.\\nThe repeater model value must be an array.\\n`, element, \"\\n\", inputModel);\r\n return null;\r\n }\r\n\r\n const onAdd = (e) => {\r\n const newArray = [...inputModel.value, {}];\r\n validate(newArray);\r\n }\r\n\r\n const onDelete = (e, item) => {\r\n let newArray = [...inputModel.value];\r\n newArray = newArray.filter(i => i !== item);\r\n validate(newArray);\r\n }\r\n\r\n return (\r\n <>\r\n \r\n
\r\n
\r\n {inputModel.value.map((item, itemIndex) =>\r\n \r\n
\r\n
\r\n {element.title &&

{i18nText.getText(element.title)} {(itemIndex + 1)}

}\r\n
\r\n {(!context.isReadOnly && !element.hideRemove) &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n {element.elements.map((e, eindex) => )}\r\n
\r\n )}\r\n
\r\n {(!context.isReadOnly && !element.hideAdd) &&\r\n
\r\n \r\n
\r\n }\r\n
\r\n \r\n )\r\n}","import React from 'react'\r\nimport clsx from 'clsx';\r\nimport { Element } from './'\r\n\r\nexport const RepeaterItem = props => {\r\n const { element: { inline } } = props;\r\n return (\r\n
\r\n \r\n
\r\n )\r\n}\r\n\r\nexport default RepeaterItem;","import React from 'react'\r\nimport { Element } from './'\r\n\r\nexport const Row = props => {\r\n const { element } = props;\r\n\r\n return (\r\n
\r\n { element && element.elements && element.elements.map((e, eindex) => ) } \r\n
\r\n )\r\n}","import React from 'react'\r\nimport { Element } from './'\r\nimport { i18nText } from '../../../Services';\r\nimport './section.css'\r\n\r\nexport const Section = props => {\r\n const { element } = props;\r\n\r\n return (\r\n
\r\n {(i18nText.exists(element.title, element.subtitle)) &&
\r\n {i18nText.exists(element.title) &&
{i18nText.getText(element.title)}
}\r\n {i18nText.exists(element.subtitle) &&

{i18nText.getText(element.subtitle)}

}\r\n
}\r\n {element.elements &&
\r\n {element.elements.map((e, eindex) => )}\r\n
}\r\n
\r\n )\r\n}","import React, { useEffect, useRef } from 'react'\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const Select = props => {\r\n const { context, element, modelPath, type } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || []);\r\n const inputValue = inputModel.value || [];\r\n let inputRef = useRef(null);\r\n\r\n const selectOptions = element.options && element.options.map(i => );\r\n\r\n const change = () => {\r\n const values = getValues();\r\n const errors = context.validateElement(inputRef.current, element, values);\r\n context.updateModel(modelPath, values, errors);\r\n }\r\n\r\n const getValues = () => {\r\n const options = inputRef.current.options;\r\n let values = [];\r\n for (var i = 0, l = options.length; i < l; i++) {\r\n if (options[i].selected) {\r\n values = [...values, options[i].value];\r\n }\r\n }\r\n return values;\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(change);\r\n return () => context.validators.unsubscribe(change); \r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n {selectOptions}\r\n )\r\n}\r\n\r\nexport default Select;","import React, { useEffect, useRef } from 'react'\r\nimport SignaturePad from 'react-signature-pad'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport './signature.css'\r\n\r\nexport const Signature = props => {\r\n const { context, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, element.defaultValue || \"\");\r\n\r\n let hiddenSignature = useRef(null);\r\n let signature = useRef(null);\r\n let container = useRef(null);\r\n let image = useRef(null);\r\n\r\n const clear = () => {\r\n signature.current.clear();\r\n hiddenSignature.current.value = ''\r\n validator();\r\n }\r\n\r\n const handleEnd = () => {\r\n const newValue = signature.current.toDataURL();\r\n hiddenSignature.current.value = newValue;\r\n validator();\r\n }\r\n\r\n const validator = () => {\r\n const errors = context.validateElement(hiddenSignature.current, element, hiddenSignature.current.value);\r\n context.updateModel(modelPath, hiddenSignature.current.value, errors);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(validator);\r\n return () => context.validators.unsubscribe(validator);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context]);\r\n\r\n useEffect(() => {\r\n if (context.isReadOnly)\r\n {\r\n container.current.className = \"d-none\";\r\n image.current.className = \"\";\r\n image.current.src = inputModel.value;\r\n return;\r\n }\r\n \r\n container.current.className = \"\";\r\n image.current.className = \"d-none\";\r\n signature.current.fromDataURL(inputModel.value); \r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [hiddenSignature, signature, container, image]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {element.text}\r\n
\r\n {!context.isReadOnly && \r\n
\r\n \r\n
\r\n }\r\n
\r\n )\r\n}\r\n\r\nexport default Signature;","import React from 'react'\r\n\r\nexport const Spacer = props => {\r\n const { element } = props;\r\n \r\n return (\r\n
\r\n  \r\n
\r\n )\r\n}","import React from 'react'\r\nimport { i18nText } from '../../../Services';\r\n\r\nexport const StaticText = props => {\r\n const { context, defaultValue, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, defaultValue);\r\n\r\n if (i18nText.exists(element.text))\r\n return (\r\n {i18nText.getText(element.text)}\r\n );\r\n\r\n return (\r\n {inputModel?.value}\r\n )\r\n}\r\n\r\nexport default StaticText;\r\n","import React from 'react'\r\nimport { Input } from './'\r\n\r\nexport const Text = props => { \r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": \"text\" }, props);\r\n \r\n return ()\r\n}\r\n\r\nexport default Text;","import React, { useEffect, useRef } from 'react'\r\n\r\nexport const Textarea = props => {\r\n const { context, defaultValue, element, modelPath } = props;\r\n const inputModel = context.readModel(modelPath, defaultValue);\r\n let inputRef = useRef(null);\r\n\r\n const change = () => {\r\n const errors = context.validateElement(inputRef.current, element, inputRef.current.value);\r\n context.updateModel(modelPath, inputRef.current.value, errors);\r\n\r\n console.log('textarea', element.name, inputRef.current.value);\r\n }\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(change);\r\n return () => context.validators.unsubscribe(change);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, element, modelPath, inputRef]);\r\n\r\n return (\r\n \r\n )\r\n}\r\n\r\nexport default Textarea;","import React from 'react'\r\nimport { Input } from './'\r\nimport { timeService } from '../../../Services';\r\n\r\nexport const Time = props => {\r\n if (!props.element)\r\n return null;\r\n\r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": \"time\" }, props);\r\n \r\n if (customProps.element.min)\r\n customProps.element.min = timeService.getTime(customProps.element.min);\r\n\r\n if (customProps.element.max)\r\n customProps.element.max = timeService.getTime(customProps.element.max);\r\n\r\n return ()\r\n}\r\n\r\nexport default Time;","import React from 'react'\r\nimport { Input } from './'\r\n\r\nexport const Url = props => { \r\n const customProps = Object.assign({}, { \"defaultValue\": \"http://\", \"type\": \"url\" }, props);\r\n \r\n return ()\r\n}\r\n\r\nexport default Url;","import React from 'react'\r\nimport { Input } from './'\r\nimport { dateService } from '../../../Services';\r\n\r\nexport const Week = props => {\r\n if (!props.element)\r\n return null;\r\n\r\n const customProps = Object.assign({}, { \"defaultValue\": \"\", \"type\": \"week\" }, props);\r\n \r\n if (customProps.element.min)\r\n customProps.element.min = dateService.getWeek(customProps.element.min);\r\n\r\n if (customProps.element.max)\r\n customProps.element.max = dateService.getWeek(customProps.element.max);\r\n\r\n return ()\r\n}\r\n\r\nexport default Week;","import './autoform.css'\r\n\r\nimport React, { useEffect, useRef, useState } from 'react'\r\nimport { Trans, useTranslation } from 'react-i18next';\r\nimport { authHeader, handleResponse } from '../../Helpers'\r\n\r\nimport { BigButton } from '../../Components'\r\nimport { Consent } from '../'\r\nimport { Element } from './Elements'\r\nimport EnglishResourceBundle from './locale/autoform.en.json'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\nimport FrenchResourceBundle from './locale/autoform.fr.json'\r\nimport ReactDOM from \"react-dom\";\r\nimport {useHistory} from 'react-router-dom';\r\n\r\nexport const AutoForm = (props) => {\r\n const history = useHistory();\r\n \r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'autoform', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'autoform', FrenchResourceBundle);\r\n\r\n let formElement = useRef(null);\r\n\r\n const [formChanged, setFormChanged] = useState(false);\r\n const [model, setModel] = useState(props.data.formModel || {});\r\n const [defaultModel] = useState(props.data.form.defaultModel || {});\r\n const [saving, setSaving] = useState(false);\r\n const [saved, setSaved] = useState(null);\r\n const [messages, setMessages] = useState([]);\r\n const [validated, setValidated] = useState(false);\r\n const [termsChecked, setTermsChecked] = useState(false);\r\n\r\n const onSave = (notify) => {\r\n setSaving(true);\r\n setSaved(null);\r\n\r\n notify = notify || false;\r\n\r\n context.validators.validate();\r\n\r\n const fileInputs = [...formElement.current.elements].filter(p => p.type === \"file\");\r\n const formData = new FormData();\r\n const route = !props.ea || props.ea.length === 0 ? `/savemodel` : `/q/${props.ea}/savemodel`;\r\n\r\n formData.append(\"id\", props.data.form.id);\r\n formData.append(\"status\", props.data.formVersion.status);\r\n formData.append(\"model\", JSON.stringify(model));\r\n\r\n if (termsChecked) {\r\n formData.append(\"clientTermId\", getLocalizeValue(props.data.clientTerms, i18n.language, \"id\"));\r\n formData.append(\"formTermId\", getLocalizeValue(props.data.formTerms, i18n.language, \"id\"));\r\n }\r\n\r\n let allFileIndex = 0;\r\n fileInputs.forEach(fileInput => {\r\n let fileIndex = 0;\r\n [...fileInput.files].forEach(file => {\r\n formData.append(\"files\", file);\r\n formData.append(\"paths\", `${allFileIndex++};${fileInput.getAttribute(\"aform-path\")}.value[${fileIndex++}]`);\r\n });\r\n });\r\n formData.append(\"notify\", notify);\r\n\r\n const request = {\r\n method: \"POST\",\r\n headers: Object.assign({}, authHeader()),\r\n body: formData\r\n }\r\n\r\n fetch(`${process.env.REACT_APP_APIURL}/api/forms${route}?culture=${i18n.language.substring(0, 2)}`, request)\r\n .then(handleResponse)\r\n .then(json => {\r\n let saved = null;\r\n\r\n if (json.messages && json.messages.filter(m => m.messageType === 8).length === 0) {\r\n fileInputs.forEach(element => element.value = \"\");\r\n\r\n const atLeastOnError = hasErrors(model);\r\n saved = {\r\n hasErrors: atLeastOnError,\r\n message: atLeastOnError ? t(\"autoform:savedWithErrors\") : t(\"autoform:saved\")\r\n }\r\n\r\n if (props.onSave)\r\n props.onSave(json);\r\n\r\n setFormChanged(false);\r\n setValidated(!atLeastOnError);\r\n } else {\r\n setValidated(false);\r\n }\r\n\r\n setSaved(saved);\r\n setMessages(json.messages);\r\n\r\n if (saved && saved.hasErrors)\r\n scrollToFirstErrorOrTop();\r\n })\r\n .finally(() => {\r\n setSaving(false);\r\n\r\n if (notify)\r\n history.push('/');\r\n });\r\n }\r\n\r\n const onSubmit = (e) => {\r\n e.preventDefault();\r\n onSave(true);\r\n }\r\n\r\n const readDefaultValue = (modelPath, alternativeDefaultValue) => {\r\n\r\n const deepRead = (branch, name) => {\r\n if (name.startsWith(\"[\")) {\r\n if (Array.isArray(branch.value))\r\n return branch.value[parseInt(name.slice(1, -1))];\r\n\r\n return branch;\r\n }\r\n\r\n if (!branch[name]) {\r\n return alternativeDefaultValue;\r\n }\r\n\r\n return branch[name];\r\n }\r\n\r\n modelPath = modelPath || \"\";\r\n const path = modelPath.split('.');\r\n let branch = { ...defaultModel };\r\n\r\n for (let i = 0, l = path.length; i < l; i++) {\r\n const pathItem = path[i];\r\n branch = deepRead(branch, pathItem);\r\n }\r\n\r\n return branch;\r\n }\r\n\r\n const context = {\r\n defaultModel: { ...defaultModel },\r\n download: function (fileId, filename) {\r\n const request = {\r\n method: \"POST\",\r\n headers: Object.assign({}, authHeader())\r\n }\r\n\r\n const route = !props.ea || props.ea.length === 0 ? `/${props.data.form.id}/download/${fileId}` :\r\n `/q/${props.ea}/download/${fileId}`;\r\n\r\n fetch(`${process.env.REACT_APP_APIURL}/api/forms${route}?culture=${i18n.language.substring(0, 2)}`, request)\r\n .then(response => {\r\n if (!response.ok)\r\n throw Error(response);\r\n\r\n return response;\r\n })\r\n .then(response => {\r\n return response.blob();\r\n })\r\n .then(blob => {\r\n this.downloadBlob(blob, filename);\r\n })\r\n .catch(response => {\r\n console.error(\"download error\", response);\r\n });\r\n },\r\n downloadBlob: function (blob, filename) {\r\n const url = window.URL.createObjectURL(blob);\r\n let tempLink = document.createElement('a');\r\n tempLink.href = url;\r\n tempLink.setAttribute('download', filename);\r\n tempLink.click();\r\n URL.revokeObjectURL(url);\r\n },\r\n getModel: () => model,\r\n readModel: (modelPath, defaultValue) => {\r\n const deepRead = (branch, name) => {\r\n if (name.startsWith(\"[\")) {\r\n if (Array.isArray(branch.value))\r\n return branch.value[parseInt(name.slice(1, -1))];\r\n\r\n return branch;\r\n }\r\n\r\n if (!branch[name]) {\r\n const presetDefaultValue = Array.isArray(defaultValue) ? defaultValue : readDefaultValue(modelPath, defaultValue);\r\n branch[name] = { \"value\": presetDefaultValue, \"errors\": [] };\r\n }\r\n\r\n return branch[name];\r\n }\r\n\r\n modelPath = modelPath || \"\";\r\n let branch = model;\r\n const path = modelPath.split('.');\r\n\r\n for (let i = 0, l = path.length; i < l; i++) {\r\n const pathItem = path[i];\r\n branch = deepRead(branch, pathItem);\r\n }\r\n\r\n return branch;\r\n },\r\n isReadOnly: props.data.isReadOnly,\r\n updateModel: (modelPath, value, errors) => {\r\n const newModel = { ...model };\r\n const modelString = JSON.stringify(model);\r\n\r\n const deepUpdate = (branch, name) => {\r\n if (name.startsWith(\"[\")) {\r\n if (!branch.value)\r\n branch.value = { \"value\": [], \"errors\": [] };\r\n\r\n const index = parseInt(name.slice(1, -1));\r\n return branch.value[index];\r\n }\r\n\r\n if (!branch[name]) {\r\n branch[name] = { \"value\": \"\", \"errors\": [] };\r\n }\r\n\r\n return branch[name];\r\n }\r\n\r\n modelPath = modelPath || \"\";\r\n const path = modelPath.split('.');\r\n let branch = newModel;\r\n\r\n for (let i = 0, l = path.length; i < l; i++) {\r\n const pathItem = path[i];\r\n branch = deepUpdate(branch, pathItem);\r\n }\r\n\r\n branch.value = value;\r\n branch.errors = errors || [];\r\n\r\n const changed = formChanged || JSON.stringify(newModel) !== modelString\r\n\r\n setModel(newModel);\r\n setFormChanged(changed);\r\n setValidated(!changed);\r\n },\r\n validators: {\r\n observers: [],\r\n subscribe: f => context.validators.observers.push(f),\r\n unsubscribe: f => context.validators.observers.filter(subscriber => subscriber !== f),\r\n validate: () => {\r\n context.validators.observers.forEach(observer => observer());\r\n }\r\n },\r\n validateElement: function (e, element, value) {\r\n const messages = [];\r\n\r\n if (e && e.checkValidity && !e.checkValidity()) {\r\n if (e.validity.valueMissing) {\r\n messages.push({ name: \"valueMissing\", type: e.type });\r\n }\r\n else if (e.validity.typeMismatch) {\r\n messages.push({ name: \"typeMismatch\", type: e.type, value: e.value });\r\n }\r\n else if (e.validity.patternMismatch) {\r\n messages.push({ name: \"patternMismatch\", type: e.type, pattern: e.pattern, value: e.value });\r\n }\r\n else if (e.validity.tooLong) {\r\n messages.push({ name: \"tooLong\", type: e.type, maxLength: e.maxLength, value: e.value, length: e.value.length });\r\n }\r\n else if (e.validity.tooShort) {\r\n messages.push({ name: \"tooShort\", type: e.type, minLength: e.minLength, value: e.value, length: e.value.length });\r\n }\r\n else if (e.validity.rangeUnderflow) {\r\n messages.push({ name: \"rangeUnderflow\", type: e.type, min: e.min, value: e.value });\r\n }\r\n else if (e.validity.rangeOverflow) {\r\n messages.push({ name: \"rangeOverflow\", type: e.type, max: e.max, value: e.value });\r\n }\r\n else if (e.validity.stepMismatch) {\r\n messages.push({ name: \"stepMismatch\", type: e.type, step: e.step, value: e.value });\r\n }\r\n else if (e.validity.badInput) {\r\n messages.push({ name: \"badInput\", type: e.type });\r\n }\r\n }\r\n\r\n element.validations && element.validations.forEach(validation => {\r\n if (validation.email && validation.phone && value && value.length > 0) {\r\n if (!new RegExp(/^(([^<>()[\\],;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{2,})$|^[+]{0,1}[1]{0,1}[ ]{0,1}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s./0-9]*$/).test(value))\r\n messages.push({ name: \"invalidEmailorPhone\" });\r\n } else if (validation.email && value && value.length > 0) {\r\n if (!new RegExp(/^(([^<>()[\\],;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{2,})$/i).test(value))\r\n messages.push({ name: \"invalidEmail\" });\r\n } else if (validation.phone && value && value.length > 0) {\r\n if (!new RegExp(/^[+]{0,1}[1]{0,1}[ ]{0,1}[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s./0-9]*$/).test(value))\r\n messages.push({ name: \"invalidPhone\" });\r\n }\r\n\r\n if (validation.regex && validation.text && validation.name && !new RegExp(validation.regex).test(value)) {\r\n messages.push({ name: validation.name, regex: validation.regex });\r\n }\r\n })\r\n\r\n return messages;\r\n }\r\n }\r\n\r\n const scrollToFirstErrorOrTop = () => {\r\n const node = ReactDOM.findDOMNode(formElement.current);\r\n const firstInvalidElement = node && node.querySelector('.is-invalid');\r\n\r\n const getOffsetTop = element => {\r\n let offsetTop = 0;\r\n while (element) {\r\n offsetTop += element.offsetTop;\r\n element = element.offsetParent;\r\n }\r\n return offsetTop;\r\n }\r\n\r\n let top = firstInvalidElement ? getOffsetTop(firstInvalidElement) : 0;\r\n window.scrollTo({ top: top, behavior: 'smooth' });\r\n }\r\n\r\n const hasErrors = obj => {\r\n if (obj == null)\r\n return false;\r\n\r\n let atleastOnError = false;\r\n for (let [key, value] of Object.entries(obj)) {\r\n if (key === \"errors\" && Array.isArray(value) && value.length > 0) {\r\n atleastOnError = true;\r\n }\r\n else if (typeof value === \"object\") {\r\n atleastOnError = hasErrors(value);\r\n }\r\n\r\n if (atleastOnError)\r\n break;\r\n }\r\n\r\n return atleastOnError;\r\n }\r\n\r\n const getLocalizeValue = (obj, culture, name) => {\r\n let localizeObj = obj && obj[culture.substring(0, 2)] ? obj[culture.substring(0, 2)] : null;\r\n\r\n if (localizeObj == null) {\r\n const keys = Object.keys(obj);\r\n if (keys.length > 0)\r\n localizeObj = obj[keys[0]];\r\n }\r\n\r\n if (localizeObj == null)\r\n return \"\";\r\n\r\n return localizeObj[name] ? localizeObj[name] : \"\";\r\n }\r\n\r\n useEffect(() => {\r\n const onUnload = (event) => {\r\n if (!formChanged)\r\n return;\r\n\r\n event.returnValue = t(\"autoform:beforeUnload\");\r\n }\r\n\r\n window.addEventListener(\"beforeunload\", onUnload);\r\n\r\n return function cleanUp() {\r\n window.removeEventListener(\"beforeunload\", onUnload);\r\n }\r\n }, [formChanged, t, context]);\r\n\r\n return (\r\n <>\r\n {context.isReadOnly &&\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n }\r\n\r\n
\r\n {props.data.template.content && props.data.template.content.form && props.data.template.content.form.map((element, elementIndex) => )}\r\n\r\n {hasErrors(model) &&\r\n <>\r\n

\r\n\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n }\r\n\r\n {messages && messages.length > 0 &&\r\n <>\r\n

\r\n\r\n
\r\n
    \r\n {messages.map((m, mindex) =>
  • {m.text}
  • )}\r\n
\r\n
\r\n \r\n }\r\n\r\n \r\n\r\n {!context.isReadOnly &&\r\n
\r\n
\r\n onSave(false)}\r\n />\r\n onSave(true)}\r\n />\r\n
\r\n }\r\n\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n )\r\n}","import React, { useEffect, useRef, useState } from 'react';\r\nimport { Link } from 'react-router-dom'\r\n\r\nimport { useTranslation } from 'react-i18next';\r\nimport EnglishResourceBundle from './locale/consent.en.json'\r\nimport FrenchResourceBundle from './locale/consent.fr.json'\r\n\r\nexport const Consent = props => {\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'consent', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'consent', FrenchResourceBundle);\r\n\r\n const { clientKey, context, data, termsChanged } = props;\r\n const [state, setState] = useState({ clientIsInvalid: true, formIsInvalid: true });\r\n const clientRef = useRef(null);\r\n const formRef = useRef(null);\r\n\r\n const getLocalizeValue = (obj, culture, name) => {\r\n let localizeObj = obj && obj[culture.substring(0, 2)] ? obj[culture.substring(0, 2)] : null;\r\n\r\n if (localizeObj == null) {\r\n const keys = Object.keys(obj);\r\n if (keys.length > 0)\r\n localizeObj = obj[keys[0]];\r\n }\r\n\r\n if (localizeObj == null)\r\n return \"\";\r\n\r\n return localizeObj[name] ? localizeObj[name] : \"\";\r\n }\r\n\r\n const validator = () => {\r\n const newState = { ...state };\r\n\r\n if (clientRef.current) {\r\n const clientErrors = context.validateElement(clientRef.current, {}, clientRef.current.value);\r\n newState.clientIsInvalid = clientErrors && clientErrors.length > 0;\r\n }\r\n else {\r\n newState.clientIsInvalid = false;\r\n }\r\n\r\n if (formRef.current) {\r\n const formErrors = context.validateElement(formRef.current, {}, formRef.current.value);\r\n newState.formIsInvalid = formErrors && formErrors.length > 0;\r\n }\r\n else {\r\n newState.formIsInvalid = false;\r\n }\r\n\r\n setState(newState);\r\n\r\n if (termsChanged)\r\n termsChanged(!newState.clientIsInvalid && !newState.formIsInvalid);\r\n }\r\n\r\n const hasClientTerms = getLocalizeValue(data.clientTerms, i18n.language, \"id\").length > 0;\r\n const hasFormTerms = getLocalizeValue(data.formTerms, i18n.language, \"id\").length > 0;\r\n\r\n useEffect(() => {\r\n context.validators.subscribe(validator);\r\n return () => context.validators.unsubscribe(validator);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [context, clientRef, formRef]);\r\n\r\n return (\r\n <>\r\n {(hasFormTerms || hasClientTerms) &&\r\n <>\r\n
\r\n
\r\n
\r\n {hasClientTerms &&\r\n
\r\n \r\n \r\n
\r\n }\r\n {hasFormTerms &&\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n }\r\n \r\n );\r\n}","import React from 'react';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome'\r\n\r\nimport './bigButton.css'\r\n\r\nexport const BigButton = props => { \r\n return (\r\n
\r\n \r\n
\r\n );\r\n}","import React from 'react';\r\n\r\nexport const ColorBox = props => {\r\n const imageSrc = props.imageSrc;\r\n const color = props.color || `#${Math.random().toString(16).slice(2, 8)}`;\r\n const width = props.width || \"32\";\r\n const height = props.height || \"32\";\r\n\r\n return (\r\n <>\r\n {imageSrc && imageSrc.length > 0 ?\r\n \"logo\"\r\n :\r\n \r\n \r\n \r\n }\r\n \r\n );\r\n}","import './footer.css'\r\n\r\nimport EnglishResourceBundle from './locale/footer.en.json'\r\nimport FrenchResourceBundle from './locale/footer.fr.json'\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const Footer = () => {\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'footer', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'footer', FrenchResourceBundle);\r\n\r\n return (\r\n \r\n );\r\n}","import React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Dropdown, DropdownButton } from 'react-bootstrap';\r\n\r\nexport const SelectLanguage = (props) => { \r\n const { i18n } = useTranslation();\r\n\r\n const getLanguageText = (language) => {\r\n if (!language)\r\n return \"\"; \r\n \r\n const languages = [ { key: \"en\", text: \"English\" }, { key: \"fr\", text: \"Français\" } ]\r\n\r\n const prefix = language.substr(0, 2);\r\n const value = languages.filter(p => p.key === prefix) || languages.filter(p => p.key === \"en\");\r\n \r\n return `${value[0].text} `;\r\n }\r\n\r\n return (\r\n \r\n i18n.changeLanguage(\"en\")}>English\r\n i18n.changeLanguage(\"fr\")}>Français\r\n \r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nimport { history } from '../../Helpers';\r\nimport { authenticationService } from '../../Services';\r\n\r\nimport { SelectLanguage } from '../SelectLanguage/SelectLanguage'\r\n\r\nimport { useTranslation } from 'react-i18next';\r\nimport EnglishResourceBundle from './locale/header.en.json'\r\nimport FrenchResourceBundle from './locale/header.fr.json'\r\n\r\nimport './header.css'\r\n\r\nexport const Header = () => {\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'header', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'header', FrenchResourceBundle);\r\n\r\n const [currentUser, setCurrentUser] = useState(null);\r\n\r\n useEffect(() => {\r\n let userSubscription = authenticationService.currentUser.subscribe(x => setCurrentUser(x));\r\n return function cleanup() {\r\n userSubscription.unsubscribe();\r\n };\r\n });\r\n\r\n const logout = () => {\r\n authenticationService.logout();\r\n history.push('/login');\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n aform\r\n
\r\n\r\n
\r\n
    \r\n { currentUser &&
  • {t(\"header:yourRecentActivities\")}
  • }\r\n
  • \r\n
  • \r\n { currentUser &&\r\n {t(\"header:logOut\")}\r\n }\r\n {!currentUser &&\r\n {t(\"header:signIn\")}\r\n }\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React from 'react';\r\n\r\nimport { useTranslation } from 'react-i18next';\r\nimport EnglishResourceBundle from './locale/loading.en.json'\r\nimport FrenchResourceBundle from './locale/loading.fr.json'\r\n\r\nexport const Loading = () => {\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'loading', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'loading', FrenchResourceBundle);\r\n\r\n return (\r\n

{t(\"loading:text\")}

\r\n );\r\n}","import React from 'react'\r\n\r\nimport { MediaBoxEmptyRow } from '../../Components'\r\n\r\nexport const MediaBox = props => {\r\n const { title, description, emptyText } = props;\r\n\r\n return (\r\n
\r\n
{title} {description && {description}}
\r\n {props.children ? \r\n props.children \r\n :\r\n \r\n }\r\n {/* \r\n All updates\r\n */}\r\n
\r\n );\r\n}","import React from 'react'\r\n\r\nexport const MediaBoxEmptyRow = props => {\r\n return (\r\n

{props.text}

\r\n );\r\n}","import React, { Fragment } from 'react';\r\n\r\nimport { ColorBox } from '../../Components'\r\nimport { history } from '../../Helpers';\r\n\r\nexport const MediaBoxRow = props => {\r\n const { href, imageSrc, title, description } = props;\r\n\r\n const go = () => {\r\n if (!href)\r\n return;\r\n\r\n history.push(href);\r\n }\r\n\r\n return (\r\n
0 ? \" pointer\" : \"\")} onClick={go}>\r\n \r\n
\r\n {title}\r\n {description && \r\n
    \r\n {description.map((d, dIndex) => { \r\n return (\r\n \r\n {dIndex > 0 &&
  • ·
  • }\r\n
  • {d}
  • \r\n
    )\r\n })}\r\n
\r\n }\r\n
\r\n
\r\n );\r\n}","import React from 'react'\r\n\r\nexport const PageHeader = (props) => {\r\n return (\r\n
\r\n { props.title &&

{props.title}

}\r\n { props.description &&

{props.description}

}\r\n
\r\n );\r\n}","import React from 'react';\r\nimport { Route, Redirect } from 'react-router-dom';\r\n\r\nimport { authenticationService } from '../../Services';\r\n\r\nexport const PrivateRoute = ({ component: Component, ...rest }) => {\r\n return (\r\n {\r\n const currentUser = authenticationService.currentUserValue;\r\n if (!currentUser) { \r\n const email = (props.match && props.match.params && props.match.params.recipientEmail && /^\\w+([.-]?\\w+)*@\\w+([.-]?\\w+)*(.\\w{2,3})+$/.test(props.match.params.recipientEmail)) ? props.match.params.recipientEmail : \"\";\r\n return 0 ? \"/\" + email : \"\"), state: { from: props.location } }} />\r\n }\r\n\r\n // authorised so return component\r\n return \r\n }} />)\r\n}","import 'moment/locale/fr'\r\nimport './form.css'\r\n\r\nimport { AutoForm, Footer, Header, Loading } from '../../Components';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { authHeader, handleResponse } from '../../Helpers';\r\n\r\nimport EnglishResourceBundle from './locale/form.en.json'\r\nimport FrenchResourceBundle from './locale/form.fr.json'\r\nimport Moment from 'react-moment'\r\nimport { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const Form = () => {\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'form', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'form', FrenchResourceBundle);\r\n\r\n const { clientKey, key, recipientEmail, number, ea } = useParams();\r\n const [data, setData] = useState(null);\r\n const [loading, setLoading] = useState(true);\r\n const [isFormUnknown, setIsFormUnknown] = useState(false);\r\n\r\n const safeJSONParse = (json) => {\r\n let result = {};\r\n\r\n try {\r\n result = JSON.parse(json);\r\n }\r\n catch {\r\n }\r\n\r\n return result;\r\n }\r\n\r\n const [scripts, setScripts] = useState([]);\r\n\r\n const onSave = (json) => {\r\n if (json === null)\r\n return;\r\n\r\n setData({ ...data, form: json.form, formModel: json.formModel, formVersion: json.formVersion });\r\n }\r\n\r\n const getLocalizeValue = (obj, culture, name) => {\r\n let localizeObj = obj && obj[culture.substring(0, 2)] ? obj[culture.substring(0, 2)] : null;\r\n\r\n if (localizeObj == null) {\r\n const keys = Object.keys(obj);\r\n if (keys.length > 0)\r\n localizeObj = obj[keys[0]];\r\n }\r\n\r\n return localizeObj[name] ? localizeObj[name] : \"\";\r\n }\r\n\r\n useEffect(() => {\r\n if (!i18n.language)\r\n return;\r\n\r\n const runScripts = (json) => {\r\n scripts.map(s => document.body.removeChild(s));\r\n\r\n let newScripts = [...scripts];\r\n\r\n if (json.client.javascript) {\r\n const scriptClient = document.createElement('script');\r\n scriptClient.innerHTML = json.client.javascript;\r\n scriptClient.async = true;\r\n document.body.appendChild(scriptClient);\r\n newScripts = [...newScripts, scriptClient];\r\n }\r\n\r\n if (json.template.javascript) {\r\n const scriptTemplate = document.createElement('script');\r\n scriptTemplate.innerHTML = json.template.javascript;\r\n scriptTemplate.async = true;\r\n document.body.appendChild(scriptTemplate);\r\n newScripts = [...newScripts, scriptTemplate];\r\n }\r\n\r\n setScripts(newScripts);\r\n }\r\n\r\n const request = {\r\n method: \"GET\",\r\n headers: authHeader()\r\n }\r\n\r\n const route = ea && ea.length > 0 ? `/q/${ea}` : `/${clientKey}/${recipientEmail}/forms/${key}/${number}`;\r\n\r\n fetch(`${process.env.REACT_APP_APIURL}/api/forms${route}?culture=${i18n.language.substring(0, 2)}`, request)\r\n .then(response => {\r\n if (!response.ok) {\r\n setIsFormUnknown(true);\r\n setLoading(false);\r\n return;\r\n }\r\n\r\n return response;\r\n })\r\n .then(handleResponse)\r\n .then(json => {\r\n json.template.content = safeJSONParse(json.template ? json.template.content : \"\");\r\n json.formModel = safeJSONParse(json.formModel ? json.formModel : \"\");\r\n json.form.defaultModel = safeJSONParse(json.form ? json.form.defaultModel : \"\");\r\n\r\n setData(json);\r\n setLoading(false);\r\n\r\n runScripts(json);\r\n });\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [i18n.language]);\r\n\r\n return (\r\n
\r\n
\r\n {loading ? (\r\n \r\n ) : isFormUnknown ? (\r\n
\r\n
\r\n

{t(\"form:unknown\")}

\r\n
    \r\n
  • {t(\"form:unknownWhy1\")}
  • \r\n
  • {t(\"form:unknownWhy2\")}
  • \r\n
  • {t(\"form:unknownWhy4\")}
  • \r\n
  • {t(\"form:unknownWhy3\")}
  • \r\n
\r\n

{t(\"form:unknownTryAgain\")}

\r\n
\r\n
\r\n ) : (\r\n <>\r\n {data.client.style && }\r\n {data.template.style && }\r\n
\r\n
\r\n {getLocalizeValue(data.clientLocalizations, i18n.language, \"logo\") &&\r\n
\r\n {getLocalizeValue(data.clientLocalizations,\r\n
\r\n }\r\n
\r\n
\r\n

{getLocalizeValue(data.clientLocalizations, i18n.language, \"name\")}

\r\n
\r\n
\r\n
\r\n
\r\n

 

\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

{getLocalizeValue(data.templateLocalizations, i18n.language, \"name\")}

\r\n
    \r\n
  • {t(\"form:createdOn\")}
  • \r\n
  • {t(\"form:modifiedOn\")}
  • \r\n
\r\n

{getLocalizeValue(data.templateLocalizations, i18n.language, \"description\")}

\r\n * {t(\"form:requiredFieldsNote\")}\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n )}\r\n
\r\n
\r\n )\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\nimport { authHeader, handleResponse } from '../../Helpers';\r\nimport 'moment/locale/fr'\r\nimport Moment from 'react-moment'\r\n\r\nimport { useTranslation } from 'react-i18next';\r\nimport EnglishResourceBundle from './locale/formTerms.en.json'\r\nimport FrenchResourceBundle from './locale/formTerms.fr.json'\r\n\r\nimport './formTerms.css'\r\n\r\nexport const FormTerms = props => {\r\n const ReactMarkdown = require('react-markdown/with-html');\r\n\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'formTerms', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'formTerms', FrenchResourceBundle);\r\n\r\n const { clientKey, formKey, termId } = useParams();\r\n const [state, setState] = useState({ terms: [] });\r\n const [locale, setLocale] = useState(\"\")\r\n\r\n const getLocalizeValue = (obj, culture, name) => {\r\n let localizeObj = obj && obj[culture.substring(0, 2)] ? obj[culture.substring(0, 2)] : null;\r\n\r\n if (localizeObj == null) {\r\n const keys = Object.keys(obj);\r\n if (keys.length > 0)\r\n localizeObj = obj[keys[0]];\r\n }\r\n\r\n if (localizeObj == null)\r\n return \"\";\r\n\r\n return localizeObj[name] ? localizeObj[name] : \"\";\r\n }\r\n\r\n useEffect(() => {\r\n if (!i18n.language)\r\n return;\r\n\r\n const locale =i18n.language.substring(0, 2);\r\n setLocale(locale);\r\n\r\n const request = {\r\n method: \"GET\",\r\n headers: authHeader()\r\n }\r\n\r\n const routeModifier = formKey && formKey.length > 0 ? `/forms/${formKey}` : \"\";\r\n const route = `${process.env.REACT_APP_APIURL}/api/clients/${clientKey}${routeModifier}/terms/${termId}?culture=${locale}`;\r\n\r\n fetch(route, request)\r\n .then(handleResponse)\r\n .then(setState);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [i18n.language]);\r\n\r\n return (\r\n
\r\n
\r\n
    \r\n
  • {t(\"formTerms:version\")} {getLocalizeValue(state.terms, locale, \"version\")}
  • \r\n
  • {t(\"formTerms:modificationDate\")}
  • \r\n
\r\n \r\n
\r\n
\r\n );\r\n}","import './home.css'\r\n\r\nimport { Footer, Header, MediaBox, MediaBoxRow, PageHeader } from '../../Components';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { authHeader, handleResponse } from '../../Helpers';\r\n\r\nimport EnglishResourceBundle from './locale/home.en.json';\r\nimport FrenchResourceBundle from './locale/home.fr.json';\r\nimport moment from 'moment'\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport const Home = () => {\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'home', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'home', FrenchResourceBundle);\r\n\r\n const [state, setState] = useState({\r\n formsToComplete: [],\r\n formsNotified: [],\r\n notifications: [],\r\n clients: [],\r\n templates: []\r\n });\r\n\r\n useEffect(() => {\r\n if (!i18n.language)\r\n return;\r\n\r\n const request = {\r\n method: \"GET\",\r\n headers: authHeader()\r\n }\r\n\r\n fetch(`${process.env.REACT_APP_APIURL}/api/home?culture=${i18n.language.substring(0, 2)}`, request)\r\n .then(handleResponse)\r\n .then(json => { \r\n setState({\r\n formsToComplete: json.forms.filter(p => p.status < 3 && p.isRecipient),\r\n formsNotified: json.forms.filter(p => p.status >= 3 && p.isRecipient),\r\n notifications: json.forms.filter(p => p.status >= 3 && p.isSender),\r\n clients: json.clients,\r\n templates: json.templates\r\n });\r\n });\r\n }, [i18n.language]);\r\n\r\n const getFormData = form => {\r\n const getLocalize = (localizations, name) => {\r\n let localize = localizations.find(p => p.culture === culture) ?? localizations[0];\r\n\r\n if (!localize[name])\r\n localize = localizations[0];\r\n\r\n return localize ? localize[name] : \"\";\r\n }\r\n\r\n const culture = i18n.language.substring(0, 2);\r\n const templates = state.templates.filter(p => p.id === form.templateId);\r\n const clients = state.clients.filter(p => p.id === form.clientId);\r\n \r\n moment.locale(i18n.language.substring(0,2));\r\n\r\n let description = [ getLocalize(clients, \"name\"), `version ${form.version}`, moment.utc(form.modificationDate).fromNow(), form.number ];\r\n\r\n return {\r\n title: getLocalize(templates, \"name\"),\r\n description: description,\r\n href: `/${getLocalize(clients, \"key\")}/${form.recipientEmail}/forms/${getLocalize(templates, \"key\")}/${form.number}${form.privateKey && form.privateKey.length > 0 ? `/${form.privateKey}` : \"\"}`.toLowerCase(),\r\n imageSrc: getLocalize(clients, \"logo\")\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n\r\n

\r\n \r\n \r\n { state.formsToComplete.length > 0 && state.formsToComplete.map(form => {\r\n const formData = getFormData(form);\r\n return ();\r\n }) } \r\n \r\n\r\n { state.formsNotified.length > 0 && \r\n <>\r\n

\r\n\r\n \r\n { state.formsNotified.map(form => {\r\n const formData = getFormData(form);\r\n return ();\r\n }) } \r\n \r\n \r\n }\r\n\r\n { state.notifications.length > 0 && \r\n <>\r\n

\r\n \r\n \r\n { state.notifications.map(form => {\r\n const formData = getFormData(form);\r\n return ();\r\n }) } \r\n \r\n \r\n } \r\n
\r\n\r\n
\r\n
\r\n );\r\n}","import './login.css';\r\n\r\nimport React, { useRef, useState } from 'react';\r\n\r\nimport EnglishResourceBundle from './locale/login.en.json'\r\nimport FrenchResourceBundle from './locale/login.fr.json'\r\nimport { SelectLanguage } from '../../Components'\r\nimport { authenticationService } from '../../Services';\r\nimport { history } from '../../Helpers';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// import { Link } from 'react-router-dom';\r\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 const Login = (props) => { \r\n let formElement = useRef(null);\r\n\r\n const { t, i18n } = useTranslation();\r\n i18n.addResourceBundle('en', 'login', EnglishResourceBundle);\r\n i18n.addResourceBundle('fr', 'login', FrenchResourceBundle);\r\n\r\n const { email } = useParams();\r\n const [state, setState] = useState({\r\n username: email || \"\",\r\n password: \"\",\r\n disabled: false,\r\n errors: {\r\n username: \"\",\r\n password: \"\",\r\n api: \"\"\r\n }\r\n });\r\n\r\n if (authenticationService.currentUserValue) {\r\n history.push('/');\r\n }\r\n\r\n const onChange = (e) => {\r\n const newState = {...state};\r\n newState[e.target.name] = e.target.value;\r\n setState(newState);\r\n }\r\n\r\n const onSubmit = (e) => { \r\n e.preventDefault();\r\n setState({...state, disabled: true});\r\n authenticationService.login(state.username, state.password)\r\n .then(\r\n user => {\r\n const { from } = props.location.state || { from: { pathname: \"/\" } };\r\n history.push(from);\r\n history.replace(from.pathname);\r\n },\r\n error => {\r\n const newState = {...state};\r\n newState.disabled = false;\r\n newState.errors.api = error ? error : t(\"login:errorMessage\");\r\n setState(newState); \r\n }\r\n )\r\n }\r\n\r\n return (\r\n
\r\n \"\"\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \"Avancie\"\r\n
\r\n
\r\n
\r\n

{t(\"login:title\")}

\r\n\r\n
\r\n 0 ? ' is-invalid' : '')}\r\n required=\"required\" /> \r\n
\r\n
\r\n 0 ? ' is-invalid' : '')} \r\n required=\"required\" />\r\n
\r\n
\r\n \r\n {state.disabled &&\r\n \"Loading\"\r\n }\r\n
\r\n {state.errors.api.length > 0 && \r\n
\r\n {state.errors.api}\r\n
\r\n }\r\n {/*
\r\n
\r\n
Vous n'avez pas encore de compte ? Créez un compte
\r\n
\r\n */}\r\n
\r\n
\r\n
\r\n
\r\n

aform

\r\n

{t(\"login:yourForms\")}

\r\n

{t(\"login:yourFormsSubtitle\")}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n}\r\n","import 'bootstrap/dist/css/bootstrap.css';\r\nimport './app.css'\r\n\r\nimport { Form, FormTerms, Home, Login } from './../Pages';\r\nimport { Route, Router } from 'react-router-dom';\r\nimport { faArrowRight, faCheck, faChevronUp, faDownload, faEye, faEyeSlash, faSave, faShare, faSpinner, faTrashAlt } from '@fortawesome/free-solid-svg-icons'\r\n\r\nimport { PrivateRoute } from './../Components';\r\nimport React from 'react';\r\nimport { history } from './../Helpers';\r\nimport { library } from '@fortawesome/fontawesome-svg-core'\r\n\r\nconst App = () => {\r\n library.add(faArrowRight, faCheck, faChevronUp, faDownload, faEye, faEyeSlash, faSave, faShare, faSpinner, faTrashAlt);\r\n\r\n return ( \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n \r\n \r\n {/* */} \r\n \r\n \r\n );\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, config) {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl, config) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport \"./i18n\";\r\nimport './index.css';\r\nimport App from './App/App';\r\nimport * as serviceWorker from './serviceWorker';\r\n\r\n// ReactDOM.render(, document.getElementById('root'));\r\nReactDOM.render(, document.getElementById('root'));\r\n\r\n// If you want your app to work offline and load faster, you can change\r\n// unregister() to register() below. Note this comes with some pitfalls.\r\n// Learn more about service workers: https://bit.ly/CRA-PWA\r\nserviceWorker.unregister();\r\n"],"sourceRoot":""}