{"version":3,"sources":["components/Images/ImageLoader.js","components/Configuration/Configuration.js","components/Configure/Configure.js","components/Personalization/Personalization.js","components/Images/Images.js","components/Configure/index.js","components/Personalization/index.js","components/Images/index.js","components/Setting/Setting.js","hooks/useTranslate.js","utils/Constanst.js","components/Footer/Footer.js","components/ReCaptcha/RecaptchaV2.js","components/ReCaptcha/RecaptchaV3.js","components/ReCaptcha/Recaptcha.js","components/ReCaptcha/index.js","components/Login/Login.js","components/PageError/index.js","components/Container/Container.js","hooks/useFetch.js","components/Modalcontainer/Modalcontainer.js","components/Notify/Notify.js","components/Boards/Boards.js","hooks/useWindowDimensions.js","components/ModalLogs/ModalLogs.js","components/Logs/Logs.js","components/News/News.js","utils/localization.js","Localization/en.js","Localization/es.js","Localization/pt.js","context/withIntl.js","App.js","hooks/useTeams.js","reportWebVitals.js","index.js","utils/Utils.js","theme/theme.js"],"names":["schema","yup","shape","url","matches","required","ImageLoader","props","parsedForEducation","JSON","parse","localStorage","getItem","useBoolean","hideDialog","toggleHideDialog","toggle","useState","currentImage","setCurrentImage","translate","useTranslate","FEMALE_POSITIVE","window","location","origin","FEMALE_NEGATIVE","methods","useForm","resolver","yupResolver","handleSubmit","control","errors","setValue","register","toggleDialog","updateImage","dataSet","formName","modalPropsStyles","main","maxWidth","modalProps","React","useMemo","isBlocking","styles","dragOptions","undefined","useEffect","defaultImage","activeConfig","PersonalityTemplate","Object","keys","forEach","key","length","title","style","color","fontSize","subtitle","src","text","onClick","disabled","disableChange","hidden","onDismiss","dialogContentProps","type","DialogType","normal","subText","theme","palette","themePrimary","onSubmit","data","imgSrc","img","Image","onload","this","width","height","setError","handler","onerror","checkImage","noValidate","className","as","TextField","label","name","rules","defaultValue","errorMessage","message","selectedTheme","mainTheme","initializeIcons","loadTheme","createTheme","AccordionSummary","withStyles","expandIcon","order","MuiAccordionSummary","Configuration","expanded","setExpanded","setActiveConfig","configsList","setConfigsList","isProcessing","setIsProcessing","fetchDataLoader","setFetchDataLoader","messageBar","setMessageBar","setErrorMessage","hasError","setErrors","handleChange","panel","event","isExpanded","closeMessageBar","updateConfig","item","allConfigs","email","Email","dataSelected","filter","x","Id","dataSent","Name","BackEndUrl","Domain","atob","split","Version","IdVersion","IsActive","__RequestVerificationToken","getAntiForgeryTokenValue","dataConfiguration","_","cloneDeep","BotUser","IntegrationToken","trim","Buffer","toString","requestOptions","method","body","stringify","headers","fetch","then","response","json","DataError","MessageResult","catch","error","finally","err","setTimeout","onChange","id","fetchData","setFetchData","messageBarType","MessageBarType","success","isMultiline","dismissButtonAriaLabel","baseItem","FrontEndUrl","VersionName","Correo","User","Password","IntegrationTokenEncryp","basePersonality","BotName","CreateCaseImage","NewsImage","BotPositiveImage","BotNegativeImage","ComplementGreeting","ConversationFinish","Configure","tooltipId","useId","hasAction","setHasAction","versions","setVersions","version","setVersion","details","setDetails","isEditMode","setEditMode","setEmail","selectedItem","setSelectedItem","logs","setLogs","openDebug","setOpenDebug","hasUserError","setHasUserError","userError","setUserError","initialDataParsed","setInitialDataParsed","seeTokenIntegration","setSeeTokenIntegration","when","is","idVersion","otherwise","defaultValues","getValues","reset","parsed","iconClass","mergeStyles","handleSelectedItemChanges","field","value","prevState","isValidUrl","URL","e","ValidFormTokenIntegration","callback","a","backEndUrl","encodedBackEndUrl","encodeURIComponent","res","validateSeeTokenIntegration","ObjectResult","tooltipProps","onRenderContent","columns","fieldName","minWidth","isRowHeader","isResizable","isSorted","isSortedDescending","isPadded","onRender","headerClassName","isCollapsible","iconName","openDetail","deleteItem","initialData","fetchDetails","versionsData","IsNew","Backend","correo","originPath","setItem","configs","element","push","handleNewItem","removeItem","createConfiguration","console","editConfiguration","tokenData","SiteKey","emailDecoded","log","debugCounter","debouncedValidFormTokenIntegration","useCallback","debounce","delay","TooltipDelay","zero","directionalHint","DirectionalHint","bottomCenter","root","display","alignSelf","justifySelf","gridRow","gridColumn","href","gap","toUpperCase","items","compact","selectionMode","SelectionMode","none","setKey","layoutMode","DetailsListLayoutMode","justified","isHeaderVisible","ref","render","target","onBlur","placeholder","options","selectedKey","checked","flexDirection","backgroundColor","variant","botName","attentionMessage","goodbayMessage","Personalization","clearErrors","TeamsPersonalization","languages","languageSelected","setLanguageSelected","updatePersonalization","updateGlobalPersonality","getDefaultValue","personalization","find","LanguageId","Value","values","addInfoForm","infoForm","ConfigurationId","loadInfoForm","language","infoLanguageSelected","marginTop","marginBottom","marginLeft","map","RadioButton","Abbreviation","Images","DEFAULT_SUBTITLE","MALE_POSITIVE","MALE_NEGATIVE","genre","setGenre","useDefaultImages","setUseDefaultImages","genres","uploadImage","assign","format","changeGenre","personality","updateGenreImage","setErrorOnLoad","ev","isChecked","defaultSelectedKey","Setting","min","max","ValidateTaskId","onSettingChanged","settingId","newActiveConfig","validate","result","TaskId","IsValidConfig","SuccessTest","onSettingValidate","settingValue","TeamsSettingValues","SettingId","preventDefault","replace","IsCreateCaseAdaptiveCard","localizationService","useLocalization","defaultMessage","toLanguageString","URL_API","Footer","alt","process","RecaptchaV2","siteKey","isRecaptchaLoaded","setIsRecaptchaLoaded","recaptchaRef","useRef","onRecaptchaLoad","grecaptcha","script","document","createElement","async","defer","head","appendChild","current","sitekey","RecaptchaV3","isRecaptchaReady","setIsRecaptchaReady","loadRecaptcha","observer","MutationObserver","badge","querySelector","HTMLElement","bottom","disconnect","observe","childList","subtree","action","execute","VersionRecaptcha","Recaptcha","dom","container","executeRecaptcha","useRecaptchaV3","RecaptchaController","forwardRef","token","setToken","getToken","reloadToken","useImperativeHandle","Login","isValidated","setIsValidated","seterrorMessage","resetDataRecaptcha","dataRecaptcha","setDataRecaptcha","itemOptions","queryString","search","fetchForEducation","deleteBag","recaptchaResult","userData","tokenCaptcha","formData","FormData","append","dataUser","TokenCaptcha","redirectTo","getLanguage","Label","doLogin","MessageBar","Dropdown","Separator","PrimaryButton","allowDisabledFocus","PageError","Container","uri","pathname","uriDecode","setUriDecode","expired","setExpired","validateUriDecode","urlEncode","NewUri","decodeURIComponent","indexOf","substring","arrayUrl","getFullUrl","Url","getUrlToEmbed","useFetch","loading","setLoading","setResult","Modalcontainer","isOpenModal","closedModal","urlFinal","Modal","open","onClose","closeAfterTransition","Notify","context","loginHint","userPrincipalName","RenderNotify","locale","RederNotNotify","originUrl","Spinner","ariaLive","labelPosition","index","NotifyItem","Message","date","Send","notify","setIsOpenModal","openModal","closeModal","moment","Date","Boards","hasWindow","getWindowDimensions","innerWidth","innerHeight","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","useWindowDimensions","NoSupport","GetInformationBoards","RenderBoards","HasPermissions","RenderUrl","ModalLogs","description","identify","Logs","useParams","RenderLogs","createDataState","dataState","slice","pageable","buttonCount","info","pageSizes","previousNext","initialState","skip","take","setDataState","sortable","onDataStateChange","update","cell","CellDate","CellEvent","columnMenu","searchBox","dataItem","Event","Description","News","Title","Search","SECTION_SETTING_MESSAGE","SELECT_LANGUAGE","SELECT_LANGUAGE_NOTE","LANGUAGE_ES","LANGUAGE_EN","LANGUAGE_PT","ATTENTION_MESSAGE_NOTE","GOODBAY_MESSAGES_NOTE","BOT_PERSONALIZATION","SETTING_UPDATE_MESSAGE","SETTING1","SETTING2","SETTING3","SETTING4","SETTING5","SETTING6","RANGE_ERROR","NAME_TASK1","NAME_TASK3","NAME_TASK5","ERROR_VALIDATE_CONFIGURATION_TASK","ERROR_VALIDATE_TEST_TASK","PLACEHOLDER_NAME","INTEGRATION_TOKEN","INVALID_TOKEN","ERROR_RECAPTCHA","INSUFFICIENT_PERMISSIONS","ERROR_LOGIN","ERROR_CHANGE_CONFIGURATION","ERROR_RECAPTCHA_REQUIRED","PLACEHOLDER_EMAIL","NOTE_ATTENTION_MESSAGE","NOTE_GOODBAY_MESSAGES","LINK_EXPIRED","IntlProvider","children","lan","loadMessages","getLocales","en","es","pt","culture","parseLanguageCode","navigator","getCulture","code","App","inTeams","setInTeams","setContext","load","microsoftTeams","parent","self","nativeInterface","batchedUpdates","useTeams","path","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","getElementById","themeLighterAlt","themeLighter","themeLight","themeTertiary","themeSecondary","themeDarkAlt","themeDark","themeDarker","neutralLighterAlt","neutralLighter","neutralLight","neutralQuaternaryAlt","neutralQuaternary","neutralTertiaryAlt","neutralTertiary","neutralSecondary","neutralPrimaryAlt","neutralPrimary","neutralDark","black","white"],"mappings":"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","file":"static/js/main.4877897d.chunk.js","sourcesContent":["import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport { PrimaryButton, DefaultButton } from 'office-ui-fabric-react';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { useBoolean } from '@uifabric/react-hooks';\nimport { Dialog, DialogType, DialogFooter } from 'office-ui-fabric-react/lib/Dialog';\nimport { useForm, Controller } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers';\nimport * as yup from 'yup';\nimport useTranslate from '../../hooks/useTranslate';\n\nimport './Images.css';\n\nconst schema = yup.object().shape({\n url: yup\n .string()\n .matches(\n /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)/,\n 'INVALID_URL'\n )\n .required('REQUIRED_URL'),\n});\n\nfunction ImageLoader(props) {\n let parsedForEducation = JSON.parse(localStorage.getItem('forEducation'));\n const [hideDialog, { toggle: toggleHideDialog }] = useBoolean(true);\n const [currentImage, setCurrentImage] = useState('');\n const translate = useTranslate();\n\n const CREATECASEIMAGEDATA =\n 'data:image/png;base64,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';\n const NEWSIMAGEDATA =\n 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAYAAAA9zQYyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAIMNJREFUeNrsXQl4lPWZf+eeyUySyX1AICTIIUeCBypoCVWoba0G29V1RQk+W+NudxWt2m27LWC7a61bkXV3K219iKu93LWga1cFLXG1gAcSEDzAhAgSSDgm50ySufZ9v/m+mW/uO5lJ3t/z/J/vvn/f+/+97/8CYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAYjOSj4FYwN3G53A04o9WJqUSgUvfxWGNlIZDOmXW5/WESCS9vXYdpGU35jjEwn9FZ3eOwPsa6J31riUPIrSCuZq3ESiaD1IdZV85ubJBp6yxZLHk6+ium15uaCM1mim3fFeVgnpkWssSeHhZ6CSYepOEvuNxFSkoW2yLQ2S5CJDLTSNRNIQ8eKDZjq+eszMoXUG0RrmwpQxKSR3+oE0NATgNgNcX8ghaKV3xyDwRaawUgo1yFtL0mgNsxRtvNbYWQjkc1hHF4qLDLzG2JkG6F3RXJcWXJkCMTCm0sx5WDqaG4uOJzCc8/GSR6e89003LcGJ1U0j+fvGAPnNhppZ6D86Bzr78dF38GQyEyoQaKUp/Dc9LMUpem+iczzKOE9V6WYwJtEi7xJJPOmGA5rGI+Pp2b+BiEnynLCSIdllsEum7emkMzk8K2TkTTWGoFrMLWwhR5/dASQ5HQ23DT+LCdwQj/Mbpw/l8JTL0vwuIZE4u6sodOjo8tFy3wayWGdTM8uRiiaMN2AieaTKXKnuiwbgRs0pNjknuF6EHHq5VTDMlbF9YoJSN5qUevVidaF5ltqShRrma4RiVwtWub1abpEK1rp5ewURiavWSRsvaj1aGoeRuXrcALoNfiAKiHbuzcbnmfltQ9skjldj+945dF7x4DA3veW5sdry0gL/clpb2PPttnlY1vMiQQOJG+1tM3lBhi0AQwMAxQYUQDrvIdtROu8IQvITFnytoDVi5DUbWkitFRkvSyKBj6Q4CXyxZ/kM0ydaJ3HJOKhjoPIZvGFN8jW0ctehcTuFLc3iQ+RMrKL+ndrOOeErPEAEnkQiWzSA1QUACgVfh/k8SzJcOrDrEsLoZFgbWNlNccS8YTtdkFwsJxe+H4kM22zgCfgThpsG65LiSOG1rVNlAxtcmvcbwU4cQ7glMVDaiJySZ4fmSXrnC3edUsI69jK6j4NkgPJGSo7jIblaKVT+kE+7HJvQGu8nqyxBJIXZmPI3TuRzDOy6WOg7CCDcY+4uBnlxoQn9JYtFuJWa3NzQUoMT6ySIxFre0+qLQxa48clL1yr9lhkbfgn2JhtH1ck8KSxykjmBjFXp2dOSRQqVsmRyN/TiJbdQnJETA3J3uzV8wT5INzLx2cA+obDh4jQOrcAI9PRmaTjmTChWxJ0IKSwWoOoq5tE5zGp8I8VNbMFNfQbRwGO9ghWuzPbrfNkBMoM+m6rcJoyxz3msF2oKEeSfyb9IJvj1dmvH3Zv7bRA0zmr8GevenClolWMR5MUWSda55gC+KhZzdetWb+NqZWYYSHDcfctpoxyuhOJQ1dDkr37JOMsvnzQveHDHrjH6YLlSGa/XEMq4hYjIzE5YUXl1buYm/ED3xvMqltGhmlRJpFanQAZO0Nk8WOCV467Z5yzwHuhyBwPkeU4d7qT2ZkA6L3lGPOrp86sb4RxqCaaMkKPF5DMt+Ckp6gA3rm1TtHDlBp/WIf6wDbYW51J96TOEjJTPNl47TTF60yjzEBeYTnMmHsZvLfr98CEjt8yDyGZfxXvsfdvfKOxfNqce7T60CUvoyNW84CFjX2ihP7w3VczTrKpM5zMpSKZX4z32O8+/E69ubhy28E9L8Hp4x8zAycJMr0J1vcxJSQzKqovbOz46G0mMxM6Y6zzApz8Fq3zUKLncIwO8xdmQmcM/hrJvDfRgy+br6U4KeSYuBOfyYRM1tAvJnPw4vkayDWWQVnZOugfcvOXTgGOHHgDjrS1xrTvli0W6n+Emll0NzcXOCc1oVFuXI+TY8meZ+4MtZAYqcGzTg0SOiYyU4v5atmqLrbQAINhyE4xOArlvY1pPiaKuwlxuUSiIYy0w8GSw0PSUGQmIu+VOYsfyLaVkiOJ6z+YDCwZHLJBR/uptJy7rKxASImC+jJBK/0RzqpwfoAJDUBkXSDJDtEq0/LrSNiQZKf1olSZFIQmMj/wnSfTcu7bVq+A1beuSOoc49VBT0YSmqwsknM+EVm0xETUF2MI4b2d6DWf3PIidHdbYP0P1/it37nzPWjv6IK7mq8Xpk9u+Z+gYx99pBm2bX8Ljz8v7Cc/dsdr+4TtEuga//LYc3id28FkNAj77N5zGC3usGAVb0MiJWMdA1FbUwlLlszzLh842AEHD7ZzlCNWkEOQor+TrPMtSOpjSOTfxuBIUn2PyxK10O0dp9DqdQnEXNV4pY+APRZhm5BtDA4LZHj0kbuCjjcZ9fDszn1+hCai0v4HkUQLF3oG76JlIj6RmX4i2rYaLSItH/wgtUS7/76b8OcohJraCtj40H8KywsX1EL3NRcLP9VEhDLFZKavdqno5SZrpfeK9TeuF4vAI5GZ5IiJtHUy16yprYRnn90pWNFIIHLKk3Qs6Vr5sUTWJVfM8yPqgQ886wj08xCZaZnOszqF1pl+rBUrLhF+nj27DwtT+pnoHhcurPX78ZjQ4ZEnWn1DKk6GRL0aJ/9EfgrOfw/T5WSJSYqITuDVtE6MdnQkU6pIqBMJSpYzkaxdsLJidk7yxGjSC+Rpb/dFrYhctE5yvjo6Uh/Rovug57i96WHxRxuGlURuzG3omqS96X5TKW0mquSg3u6LUtidq1F0Asnho25uS0XnkJxEquPRI0Y19qbqAchy/e23HhfkgmRJA0GW13uDSFoih2S5icgrxH2IuLSNrL5Eco+F9Fh10suU9ZOuJZkT7nqJ5DR79hwWcguSSfIfVJAcuH73nkPCvUXLjSY1oZHIqe5P+QOZBBkSdfWxaOG9ZENWq1ZdCT/72XOw8Ol/CLnPM7/eKbPMFVArZt9EYHLyJK0sSQkiMZFZIjlZUAJJAlqm89H1tiERJWcxWRBxb1vteR6KWsifj5ZrkMwT0TnM9GK0yyEFJYbxgrTsDiTmdtS4oSCPWgRqa8kaEnm//e2bvEQnh5MIVLewJugHImet+1aLIAXImierb4cGbYJmfgbPRcTetu0t4aeSiP6MeA3J2WVCjx1CVh1duvB71Bi2888H/zltjTPvv+9mgWDyiEesOpqcPSKqZGnrRClCafXqFWFzBtK5Bw4mP94PXYdkB/0oFOH4j39fJ0gLkkfSD0TbE/EVmNBR8K+/HZR6ie+9+xZTYE2By5G8x8HTC1O1uE7q+pW6KmhN132RtSVJQFqaQl/xHEdWdsWKi/2yfyIP6VlJbwshwW6L1zEjC7obHUZ5zDgZkIShmDrFzUn6bHzoaYHIJIlWNV4lLGcKxBETpAc/Ig6vkX2ERjITSfeLBKXlFiT12gAN/QcI6IrMZFDCoM2V9vu7q/lrsGbNT9B8+q9/4DtbgvbzOYa1wk8gRTI8TlqFx1nEH0QCEZicTyK00WQQJAlZzcY4coRoVppIS9KCfjKKndO0DHMAWt/e0QUZBPq+GmkeCX4u0bKM8bbQTeDf0XYTknqzZKl/dN33pX6g4YIpOrjj2gJhSvjGQ5/Vx2OhnW4AlSIyeQOdMVqm7FrSn0TMUIUq8vAXWWYi90KZVqbz0HHy/Wjd8/+90RsxSbb+RDhSS8Xj9IMd/E7mOYHiuJCagNX0IbKS0NEgyQy4aVk+XLXA19j1tfWFdYavRz/BqMyQRyK0XAoEkrUMCrwkXBjg1AUi3D7hjot2vkjRmNtWx1ffoi7Ga5FEGiugJe5HUveDpwyD0J9M2He8CU2dosvH9GgL0NGC0/eVxbmw/1MbfBmn3hs3GCI2RRm0A2hVSGgnkkz8/0edLjhvmyDNsow6uOaGpWk5tUmrGeun2Q3iKLiIE8mcaFwJTeRFiTFDlB5E3paAXWh5PRLZXFHo/5LVen1IQot1Onp6R2H+VDToWllZqFalhHJTDjAyC2L5RUqGcx53yYGk7sTJhlDbKCy3dOH31v6gpfuef7y1tLq8UC1IEJfDCUq16gUZiaXSQyp86aZCGLfbfQjn/USJy+WCkRF7xn9gpVIJOp3G775dLvcYXl8h3EM2IuPbJyGpSZZsf+nHTxHp19uHrNDv0v38vUV3/PKV43cQkQdjrdRPpLDZRjL+o2g06gBCu8Fud8DoqBu02tSMxEfnsljofDTvW19QoACjUQNZyufMJzRKkgbBOVxuvAHe3S64w0X1196i/XRkxxcX6+MamEiFkiMvz5jxH0URhrNEwLKyyITu6XFDeblKsOqRCU1xcBeSVwFDskbERqMKU8IRC6HAK1XDS0wYQovx6fWithbQcdIJNZc2Apw+CpBbbFarYRvuR3JlLcqW1ljO60SnsL9/KOMJTRY6Nzcn7p+AZEJZmUsgM81HIrXJpICFC1P3+UUy0/ASnTh/73iRWp2BZCZnz1vYIuG1t0dgzdcMsP3tQvjkoy5YsryCVlc7nM5t//jkyRk/vmtK1BeY7RY68jEKIblFY4s+hKCFx1B7d4rpwHi+u0y00OsgxKimI6j5fveKDWo+74YZOXZ4+1iJ9OHMZqORLHnUYQ3IYmWDhqYfLydHFTPxicQeQnumvu1KTC6B3GMQqeglyyzNZwWh8YZJCvSm+YZvCLeBOozROe0wZei8T0YgSfVa7Q2QPQNsJuXIWa2AZPcRmLgqOXAeYvsI7na7hJ+DpJac1HQeQqocTDmps8YpFMlMuvYAzrek4+ZlFZW82aYiIP+Vk1mGhlizZbValfHEDRcyIwKSE0dSQiKo5/UohORZpZBJFoWfNZc4HU1fZzPisdBmSHJslRjgVwnJhV9AFUFQknVWq1TSz1AforZegOTIzrCdT4oogn5wibS0OpReljuIkiTRaMhi+85DIcH39x+FoaFh0OK16+tnQkmJeWITGi1yG1rmtWmWHObAj6GKEBAlKyUROpTunmhOoVrts75ykpLlDS2T3eJ7cgkhv8LC0Jb5kyMn4NgxX2X//gErfP3GL0x4Cy2NKxcXVl77wCbR0SO0YLp3xyuP9kaz0HZH6B6kSHKcNHrqJweQnWRHa6R7yfawnUdqeIjqiWIo4dw5JxJVJZA2zG8vHFNQAGFlRk+P/+cYHLSN2bOikdwkcuvejI9yIJmbZGQm0HI9rl8uJzWNF4iTTcc+eqdhxtzFHkI7naCk7DGyJm6DOIZtznYL7dHNCr8cjEr2ounhaEEOo1EfsEYXcj8HXmfQbgOTxpDKx20Uc9fMJzRiTRgrvD7gAbbSg9lHbX762RXmS+TaPfvdsCSnLS8f6i39LtLaa5r63HVIhgODA6GHncv2sF1/v1u0xG5ZvDmYtL55d5AcCfVKKytqwT7qgM9PnsHcwYi/zAXebX0DQ3D3xidg977D3mWtSgM1eeVgUOtS8biLxk1ypBDr0Cq/QIO1i9a5UbDKsh731ZidWuWVDGTIE4lfXKRozEGDa84XPn61mBpNuULNvc0TzYOvqlIERS+i2PoY99PiuRfIfnzPz3ToyDFYc/8jcKLLv3H9qNMOnw30wPTc0qRJnWp/LN2EjnSz60XN65UM/ed9PSDotVrB4RscHgajTuf17vu1BoHQpXkqQDKHcwS3T6SwHVlspXLs6ihL75qsciCZJdgcIwKp5xRUZa9TmAAOSNY3BBpoaGL5Choi7PNP22DqTA/HidAmTNaREdDgVKNWw4GiamFbzdSIt/5CKG2drWG7gVE39A2PXdw4X4++hk4BN1+3HF7e/gIsqS2CX7x5DPL0GjhhsfqRetBum1SEDmyREoh7AqVB259fAMfw2e2Lv7Cyoee8S7DAOWihHegkjtjt0FY0Xdjvr6aEtbS9aGG2owNVHxz2UkFhYV7WSQ2dSiGQbCyvJ+SGg0MCmR9YMUtIfTY7rHpyDxzq6vdFRCYToVEjt6EVjhSJaBStqQBqj0eNVa9YMq+xdZ8Tus9bId+kAZ1GI1jrQu0wXGnaC73qKigqmgfxyA3BS3c4szJs50DjPOwYuwr+VJhFyriqohTyi31N3vMNGni66VL43Xsn4NEdR4R1hbq8yUNoERsxbYuwXai7QY1Uf/rTZoHUg1Y3PPX7czglzesAo9EBeSY13HJhB9Tqu8BhawdXhx2UNfXh5EYYbaoAg0GX8YTOpNYid95xC8D+//Vb9/Ihj69TYjCDVqWG01Yb6cAmcXNreY6hNfA8orykb/0GGrrt6bpfRbpOLD5Ag+j4rYfw9S16y8oKzNRdgNSNwKNPDcCOt4Ibs5q0dlhZewJun/kOqPILQX/1raHkRoEnPOXeEEXuMGKBYxTgzWf9VpGefm63DS25Er7aeGXbzbev9LMsg0PWlpklRWtlXGgMMGqLKPdOizFIE5mJTLtEQtE0UrG0mbrdkveJsfv90I7b4KgG9p6ZBcbrm0F/2ZfjkhuMRPNwLdLvKwDlvtj0nVfNEMh81fJFEEhmglaraWrrPC4vUNsUQmpmleQIrAIatjSP+peQ903RftwhSI5w6DrrgBXf7IO6ORpM1o233ZDTKrP+TOgUwtPt7mEYGrKBwe2Cr0/xrO93GmHxwtnwWecp+OUT2+Ciy+bAxYvn+giNPo9GrV6PpG558K4niLzV2a6hY66qFdgnciQyy3HgY7uQbm80tqK86BRfmhnnq1F2dE4kp7B/xDXmYbvftLwkdDrptUhLb4BR/ZdApxyFs/YCyL1gCN55fjMcP3Ya3ty1H4pLzXDn398Ic+Z5uJuTYzD39Q+sgwj127OJ0J2R/kpyAKk/N2k+UVw8T1u30+2WV34CUT9vF+/B33vP0rocORqlN5Q2FvjTn/b5kZmGl6aygbOy+mIGXFeF60586pHCZ3t64RdP/AEee/I+YVmv00EfDNwTj3HLZEK/EMoJ9HTlenPE7q9ISsSKeRdowmmxkOuztS7HiMMNQ/axs9BSp+0SpIKuQNBY6hKhJVL7fkoFaWnzvPoaONwW1IdM2lq2pCs+1BJ401LHh9H6cotVcjDSgzM9Fjh8yEPAnHxPu82q2rqQ+5KVnj5ncdhzaTVaqJ01JdSmtsCIGKZ1gSXH426h8YaqxaiG9Bd6s5tQvXuGAjmFoXDjSgP8YUdypVJUy5JaZ2Q63G7/z6JGs6NXj43k+NPLu73z0xcsg/5TRwXihoNTVnV17vwZ/r6AWgU1s6YGHUOV0kS+kOnfKg8a4DqqL/94RhAafDXegnBFEh15kwxZuVSfNKEdDgecO9ef8YSmwp+8PJ9TOOIcm7ocVusw6meP3Mgrngq5mCorIwco5BXKgsilVkPl1GIw5OjAZvVKve0icRtFMpsTDSikndBidVCSG02B25IZCKduDmZd09RQVqyC7rNOmTyZmA09A5GnUwopUYyiBreNRH9XNtswXLNiiegJlkNBqR4UYICzFldU6xzaF/D4AUTq9iMnvf6VzDKHIm/rmBNarMNMkYU1ISxyygX/wtkar6Xe8ZYzqjyZaEg6bIeEdsdQF0RvzIOvNX7RQ1bMFbQaF3zUoQxL6MCWMtOqy0OSuqCI6nuclOvncIVtrZIcGWunkCzw+jDyImSWQQH6ZCQHYeki7aR01KTadommXEP8n5lamJNVn1Iavv44tSga6jvjXc4Jasrlidh4CO2VG5siyIqN4+UUkqyokwhdVlEStcv3XW8cokKUuGuDL7lI5zdvylFMukhISmrbkU8ZcAqywp+dHgCdVgVTSoLj8wNWJ1SVKiPclwucdl8YlApXQoHGctzp87HClRo/nqx1TpjQYgPXtZ+cdlOpyN9g2hdTSGgAZhab4FqxdmJIDAXo4rrZ/nFpY44SCe0ERpwfWq0Ah92f0afPW+FMr8fRzs3RQJ7RPwc04To3xN6fdklp6DFiFl0ySxhjZuOPnq4O06K8DTk1/o1kZ5crupDUNNgdhTAo4Bhx1BuLFT4dGIZfFhphHuZEQfnTqR5n3qNPDfiFQ2bN1O4ZGPZtR6fQu33I5u7HbSG1jE4NU7VqqJoQZExB2G7UpURC+xsCldJ3TrLSQe9Qo4LegVHcphT6FozmFIbS0NJ+VP7w00eazQ8+uMU7CJPM51qVsneV7AmQ1O/i5F1pWbTaBjHJy7VrpeyzZwA+FNdJ+wp46N/6bpLLibIS1QmtUbX7VJ9nee8hexX4xrOD833ubtz2TMAt0XhltmmFcBtOV08EQqcrbFdelCNYZdLLRN6QOSZe15yrgG5xGB/qL8Vmt4PNNgSDlm6/fUNp6NFRO+Tn5YrSo1IYXTdgjMRVaJ07xTKMapnF7k0LoePtxJqstmzxUKw3ck1TD13n2/J13Wect+P5WmX7NODkJi+he52/we0/D3U+t9u9hMN2AZLP7QgK3+XoI1NAj9lcx8kenBZB1+efwsn2AzBw9nMYsfrH8wMLVTwa3SnmBL57p8polMQgAdWZJjJT1KNBbrXFApaWlBIaybxO9Eqpq9RFifScFAcC+/Bofa2ltBUYqattF0df0dphCzitA1De2wGXq/vhsec/DiKxn7WfGRwXGLV79LcyoLYVDQaKhJbIuh9CF65sRVJTGK8zZYRGLJNdgLKDdBK6MYYQTudkJHQ6Gsme7xuG+zbtgvcPfx60TWMwwTfmq2DVTA8huywO6FHmo5eY7yOr2ghuhRpcSpUwf+BcsNwYHPK0EDfp/bdRJbWLLpplfv/9I1tT7m9E2S6RiiRH2qwlSgm5fgprnXFdJ+476Qidjkayd2/eDUdP2cFQWAYupwPcKA8cI1ZQIEHVBiNsbwdMMiIa4xvl1mq1CZJDq1aDIcS4h/MunN6IhI50ipZ4rXNUQlOPo6n0QCMgMDYZaWR1eSvyuBwH6uti6tSSjCdwuhvJ2oZH4ejJQd/1VEgDTCqtDpwjidWXMRk0svMPQ/+g5/xl+aFbhXtGq90Z7vtuTkQ/pyTKkQZCd6IlbomR0G0wCZDK2nZ2NPdKcMGU4hw4eTZ4OG2FWpMQmZuumwkjIyMwZLMJkQ1CockopFAwmvSCc1hbW0n1pntNJsN2TJuXfaEuqW+aKYSeHkU7y5HwoDTZ2nNSKsN2A0PDML3IAHOm5fsR+u8a58Clc4rh+f/rhBd3+3T1hdW5cOGMXDhjGYEzvf59DZaYtTCj0giLLyyAPN0IWPp8LfVL8nKhsiB8xTkK4a3/4Rq5E9hEye12k9RcG64ZXbYQWtLPvVGsc1JWOVt7TkpV2E74obVaMOpUcPVFFfD6+75Ozre9dRy+haR+9+OzQcd9o6EihgCKG4ZHlKDXGmHuVJOgnRNEA0U+kNhE6rgbPWdKjyYNkiMQbcc4QnmtwAginU7rIdpitMZykLV+B8lcWezf0bpJr4P5VVOgtqxUSAqXGfVxqXeZ0twpFVA3vQrQXMDZ3txkyCy32FtDdeeW8RZajHBIiLUL3LDdi31y2k3eRu2RbnTgjfC7PD0sneQkVrpcLoU47zbp1UKbKNLQJDs+Pt7n3ZfmaV0gqGCEiO0B/hQaHS4HX2vuNB28um8YTp3PgYpCSAWpqQxkeVYRurt9W0N+6cWgz51GobpYdZMQ3eg/s98cQOZLcXI9iMXp54fgJKbnJrddJi77irVn6X2lsauunAYP/+YDPysditBBGj9MjVKjXgnFqOh6et1I6JQ4sQ1kpcWRGjKX0Eg8sygz6t98o23Z5seeg36Fov6/Xj26a2HdzIZox3/3wV/Bhx+dhVFr97blX/1J61XL6jtvvf1Ln4mW+2eilKLAaSH4Kkz51RsBsW7JRIZeA3lFRrgYCSjEKmmIGfl20tFyQpOFnl1VHEOkxOn3k8gxo1wDB47ZYfZULerplDxGYzx+07j14A+ernTNSEaYMrUE9vz5kPnXT7/aUPZgIZSVR86vvtn8ZWFgmyFMHe1dDTW13jpQZOHvnV0uOBM0oGF7nD9aIOmDnPMM5a5FfF4vSnOhPt8Av45UVTdQdpCFtrv0MWnxcKgq0cAHx6xwpk+L82P/IsaF0Ei4DTjZIFrq+praKYCpGq1sdSzH0/6Slr5i6YJe8ZytKbivrii7tEMWgIaLxsmvACBqV6ty2UGE1gQMMRGLBAn6PhUq6Ox2IaGVk4PQMgL1cjQiLWiCGFtPB8qOmZX+hM7L0SRAaC18dGIYBm0GMBnG9sGV/O0nJGLuCoBkB5FawvCIJaKFLjNHt4FatQIq0HM5cTYlzxJXLFqdqV9kyxYLVeanROWobc3NBXbmaXoQWMhCMep3xAKWKcU5ieW+6BS+/ckozK1KyjNsjSfCkbEWGslcBJ44M02pXc+lTLu40BnPzqSj9drQti0RDU0oyFWBWuWEU+eTeo642xlmquQIjB0VMUdjB1q1Fogj1EXNrGaJ4Tp5QUuiZPZq6XIVnLYkVAdFaIQdr3XOZMlxAtOsgGVGDPjktHs+TiqPnYXnqgqgUq2C0mjHfHR8BP7ishJYYN8Hzi6KLxck7BAGOod/fGcYZYc+5pj0qAOl9yC8PDgCBnyWvwRPDzWHZ5crzmctoVEvW1F27BYttZ0JHTOZSZrdTPPUwLvjLDxTkAMz9ZrIpD56YuCKF17aNbJ3X7sOXm+Hi665ngpg8moq808MDINfk5Z+mztv1KGoCtfaPsg7NUHJ8TOgqyiCzyPt53TBcP8wfDps9xb+SDH/SzCtxPSDmHInpsGEIzWVSlWKSSoplZeY+uGHD2+9du+7Hwgt6UuKzT3XLLvkfaMaqgpcffMK6pc/c8nccr8mQmcto1VDNsUV0ys1MVUpGLI58wat7pllRer3Y3wEKdZPZQJklbvQOscc/1czBSYWxKyZ0qEIhPeS+2RX9/Nf/MJFF5aVFI6svfUrPX98dXf9k1tfeKjEqIDyTwdGLvnBnTtAVm3A4XSrXG7FaQhfyCR0IyEtGA0qCOinM6hUMx7CsoVmxITpS+5tAk+PoHKs/Wz3phb5imdes9QbDbqGG5fmPJ6Jz8GEZshJ3SBFGZDIbfxGGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGAwGg8FgMBgMBoPBYDAYDAaDwWAwGBmA/xdgAPaF+7UpSU5HAAAAAElFTkSuQmCC';\n\n const POSITIVEIMAGEDATA =\n 'data:image/png;base64,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';\n const NEGATIVEIMAGEDATA =\n 'data:image/png;base64,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';\n\n const FEMALE_POSITIVE = `${window.location.origin}/images/albi-positiva${\n parsedForEducation === '1' ? '-for' : ''\n }.png`;\n const FEMALE_NEGATIVE = `${window.location.origin}/images/albi-negativa${\n parsedForEducation === '1' ? '-for' : ''\n }.png`;\n\n //Declarations\n const methods = useForm({\n resolver: yupResolver(schema),\n });\n const { handleSubmit, control, errors, register, setValue } = methods;\n\n const handleChange = () => {\n toggleHideDialog();\n };\n\n const toggleDialog = (updateImage, dataSet) => {\n if (updateImage === true) {\n setCurrentImage(dataSet[props.formName]);\n }\n toggleHideDialog();\n };\n\n const checkImage = (imgSrc, PersonalityTemplate) => {\n const img = new Image();\n img.onload = function () {\n if (this.width > 120 || this.height > 120) {\n props.setError(translate('IMAGE_ERROR'), toggleDialog);\n } else {\n props.handler(props.title, PersonalityTemplate, toggleDialog);\n }\n };\n\n img.onerror = function () {\n props.setError(translate('IMAGE_NOT_UPLOADED'), toggleDialog);\n };\n\n img.src = imgSrc;\n };\n\n const onSubmit = (data) => {\n let PersonalityTemplate = {\n [props.formName]: data.url,\n };\n checkImage(data.url, PersonalityTemplate);\n };\n\n const modalPropsStyles = { main: { maxWidth: 450 } };\n\n const modalProps = React.useMemo(\n () => ({\n isBlocking: true,\n styles: modalPropsStyles,\n dragOptions: undefined,\n }),\n [false]\n );\n\n useEffect(() => {\n let defaultImage = '';\n if (props.formName === 'CreateCaseImage') {\n defaultImage = CREATECASEIMAGEDATA;\n }\n if (props.formName === 'NewsImage') {\n defaultImage = NEWSIMAGEDATA;\n }\n if (props.formName === 'BotPositiveImage') {\n defaultImage = FEMALE_POSITIVE;\n }\n if (props.formName === 'BotNegativeImage') {\n defaultImage = FEMALE_NEGATIVE;\n }\n setValue('url', defaultImage);\n setCurrentImage(defaultImage);\n if (typeof props.activeConfig !== 'undefined') {\n if (typeof props.activeConfig.PersonalityTemplate !== 'undefined') {\n Object.keys(props.activeConfig.PersonalityTemplate).forEach((key) => {\n if (key === props.formName) {\n if (props.activeConfig.PersonalityTemplate[key]?.length > 0) {\n setValue('url', props.activeConfig.PersonalityTemplate[key]);\n setCurrentImage(props.activeConfig.PersonalityTemplate[key]);\n }\n }\n });\n }\n }\n }, [props]);\n\n return (\n
\n \n \n {props.subtitle}\n \n \n \n
\n );\n}\n\nImageLoader.propTypes = {\n title: PropTypes.string.isRequired,\n subtitle: PropTypes.string,\n image: PropTypes.object,\n handler: PropTypes.func.isRequired,\n theme: PropTypes.object,\n formName: PropTypes.string,\n};\n\nexport default ImageLoader;\n","import React, { useState, useEffect } from 'react';\nimport * as ReactDOM from 'react-dom';\n\nimport Accordion from '@material-ui/core/Accordion';\nimport MuiAccordionSummary from '@material-ui/core/AccordionSummary';\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\nimport Typography from '@material-ui/core/Typography';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport withStyles from '@material-ui/core/styles/withStyles';\nimport { initializeIcons } from 'office-ui-fabric-react/lib/Icons';\nimport { MessageBar, loadTheme, createTheme, MessageBarType } from 'office-ui-fabric-react';\nimport { getAntiForgeryTokenValue } from '../../utils/Utils';\n\nimport { Spinner, SpinnerSize } from 'office-ui-fabric-react/lib/Spinner';\n\nimport Configure from '../Configure';\nimport Personalization from '../Personalization';\nimport Images from '../Images';\nimport { Setting } from \"../Setting/Setting\";\n\nimport { mainTheme } from '../../theme/theme';\nimport useTranslate from '../../hooks/useTranslate';\n\nimport './Configuration.css';\nimport _ from 'lodash';\n\nconst selectedTheme = mainTheme();\ninitializeIcons();\nloadTheme(createTheme(selectedTheme));\n\nconst AccordionSummary = withStyles({\n expandIcon: {\n order: -1,\n },\n})(MuiAccordionSummary);\n\n\nexport default function Configuration(props) {\n const [expanded, setExpanded] = useState('panel1');\n const [activeConfig, setActiveConfig] = useState({});\n const [configsList, setConfigsList] = useState([]);\n const [isProcessing, setIsProcessing] = useState(false);\n const [fetchDataLoader, setFetchDataLoader] = useState(false);\n const translate = useTranslate();\n const [messageBar, setMessageBar] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState({});\n const [hasError, setErrors] = React.useState(false);\n\n const handleChange = (panel) => (event, isExpanded) => {\n setExpanded(isExpanded ? panel : false);\n };\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage({});\n };\n\n const updateConfig = (item) => {\n let allConfigs = JSON.parse(localStorage.getItem('configs'));\n const email = JSON.parse(localStorage.getItem('userData')).Email;\n\n if (allConfigs && allConfigs.length > 0) {\n let dataSelected = allConfigs.filter((x) => x.Id === item.key);\n dataSelected = dataSelected[0];\n let dataSent = {\n ...dataSelected\n };\n dataSent.Name =\n dataSelected.Name !== ''\n ? dataSelected.Name\n : translate('NOT_NAME') + dataSelected.BackEndUrl;\n dataSent.Domain = atob(email).split('@')[1];\n dataSent.Id = item.key;\n dataSent.Version = {\n Id: dataSelected.Version.Id,\n Name: dataSelected.Version.Name,\n };\n\n dataSent.IdVersion = dataSelected.Version.Id;\n dataSent.IsActive = true;\n\n dataSent.__RequestVerificationToken = getAntiForgeryTokenValue();\n\n let dataConfiguration = _.cloneDeep(dataSent);\n\n if (dataConfiguration.BotUser.IntegrationToken && dataConfiguration.BotUser.IntegrationToken.trim() !== \"\") {\n dataConfiguration.BotUser.IntegrationToken = new Buffer(dataConfiguration.BotUser.IntegrationToken).toString('base64');\n }\n else {\n dataConfiguration.BotUser.IntegrationToken = \"\";\n }\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataConfiguration),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n fetch(localStorage.getItem('href') + `/api/Teams/EditConfiguration`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n\n setIsProcessing(false);\n\n if (data.DataError === true) {\n \n setErrors(true);\n setMessageBar(true);\n setFetchDataLoader(false);\n setErrorMessage(translate(data.MessageResult, translate(\"ERROR_CHANGE_CONFIGURATION\")));\n \n } else {\n setActiveConfig(dataSent);\n setFetchDataLoader(true);\n }\n })\n .catch((error) => {\n setIsProcessing(false);\n setFetchDataLoader(false);\n })\n .finally((err) => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n }\n };\n\n return (\n
\n
\n \n }\n aria-controls=\"panel1a-content\"\n id=\"panel1a-header\"\n >\n {translate('ACCOUNT_SETTINGS')}\n \n \n \n \n \n \n }\n aria-controls=\"panel2a-content\"\n id=\"panel2a-header\"\n >\n {translate('MESSAGE_CONFIGURATION')}\n \n \n \n \n \n \n }\n aria-controls=\"panel3a-content\"\n id=\"panel3a-header\"\n >\n {translate('IMAGE_CONFIGURATION')}\n \n \n \n \n \n \n }\n aria-controls=\"panel4a-content\"\n id=\"panel4a-header\"\n >\n {translate('BOT_PERSONALIZATION')}\n\n \n \n \n \n \n \n\n
\n\n

\n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n\n {isProcessing === true && (\n
\n
\n
\n )}\n
\n );\n}\n","import { useState, useEffect, useMemo, useCallback } from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport {\n PrimaryButton,\n loadTheme,\n createTheme,\n DefaultButton,\n Checkbox,\n MessageBar,\n MessageBarType,\n} from 'office-ui-fabric-react';\nimport { Dialog, DialogType, DialogFooter } from 'office-ui-fabric-react/lib/Dialog';\nimport { Dropdown } from 'office-ui-fabric-react/lib/Dropdown';\nimport { initializeIcons } from 'office-ui-fabric-react/lib/Icons';\nimport { mainTheme } from '../../theme/theme';\nimport { getAntiForgeryTokenValue } from '../../utils/Utils';\nimport { useBoolean, useId } from '@uifabric/react-hooks';\nimport { FontIcon } from 'office-ui-fabric-react/lib/Icon';\nimport { mergeStyles } from 'office-ui-fabric-react/lib/Styling';\nimport { TooltipHost, TooltipDelay, DirectionalHint } from 'office-ui-fabric-react/lib/Tooltip';\nimport {\n DetailsList,\n DetailsListLayoutMode,\n SelectionMode,\n DetailsHeader,\n} from 'office-ui-fabric-react/lib/DetailsList';\nimport { Console, Hook, Unhook } from 'console-feed';\nimport { useForm, Controller } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers';\nimport * as yup from 'yup';\nimport useTranslate from '../../hooks/useTranslate';\nimport _ from 'lodash';\nimport './Configure.css';\nimport '../../App.css';\nimport debounce from 'lodash.debounce';\n\nlet selectedTheme = mainTheme();\ninitializeIcons();\nloadTheme(createTheme(selectedTheme));\n\nlet baseItem = {\n Id: 0,\n FrontEndUrl: '',\n BackEndUrl: '',\n IsActive: true,\n Domain: '',\n Version: {\n Id: '',\n Name: '',\n },\n IdVersion: '',\n VersionName: '',\n Correo: '',\n BotUser: {\n User: '',\n Password: '',\n IntegrationToken: '',\n IntegrationTokenEncryp: '',\n },\n};\n\nlet basePersonality = {\n Name: '',\n BotName: '',\n CreateCaseImage: '',\n NewsImage: '',\n BotPositiveImage: '',\n BotNegativeImage: '',\n ComplementGreeting: '',\n ConversationFinish: '',\n};\n\nconst Configure = (props) => {\n //Declarations\n\n const tooltipId = useId('tooltip');\n const [hasAction, setHasAction] = useState(false);\n const [messageBar, setMessageBar] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n const [hasError, setErrors] = useState(false);\n const [versions, setVersions] = useState();\n const [version, setVersion] = useState(0);\n const [details, setDetails] = useState([]);\n const [hideDialog, { toggle: toggleHideDialog }] = useBoolean(true);\n const [isEditMode, setEditMode] = useState(false);\n const [email, setEmail] = useState('');\n const [selectedItem, setSelectedItem] = useState(baseItem);\n const [logs, setLogs] = useState([]);\n const [openDebug, setOpenDebug] = useState(false);\n const [hasUserError, setHasUserError] = useState(false);\n const [userError, setUserError] = useState('');\n const [initialDataParsed, setInitialDataParsed] = useState({});\n const [seeTokenIntegration, setSeeTokenIntegration] = useState(false);\n const translate = useTranslate();\n\n const getValidationSchema = () => {\n\n return yup.object().shape({\n FrontEndUrl: yup\n .string()\n .required('REQUIRED_FRONT_URL')\n .matches(/^https:\\/\\/(.*)/, 'REQUIRED_HTTPS'),\n BackEndUrl: yup\n .string()\n .required('REQUIRED_BACK_URL')\n .matches(/^https:\\/\\/(.*)/, 'REQUIRED_HTTPS'),\n Correo: yup.string().email().required(),\n IsActive: yup.boolean(),\n IdVersion: yup.number().required('REQUIRED_USER'),\n User: yup.string().when('IdVersion', {\n is: (idVersion) => !seeTokenIntegration && idVersion !== undefined,\n then: yup.string().required('REQUIRED_USER'),\n otherwise: yup.string()\n }),\n Password: yup.string().when('IdVersion', {\n is: (idVersion) => !seeTokenIntegration && idVersion !== undefined,\n then: yup.string().required('REQUIRED_PASSWORD'),\n otherwise: yup.string()\n }),\n IntegrationToken: yup.string().when('IdVersion', {\n is: (idVersion) => seeTokenIntegration && idVersion !== undefined,\n then: yup.string().required('REQUIRED_INTEGRATION_TOKEN'),\n otherwise: yup.string()\n }),\n Name: yup.string().required('REQUIRED_CONFIGURATION_NAME'),\n });\n\n }\n\n const { handleSubmit, control, errors, register, getValues, reset } = useForm({\n resolver: yupResolver(getValidationSchema()),\n defaultValues: {\n BackEndUrl: '',\n IdVersion: '',\n }\n });\n\n let parsed = JSON.parse(localStorage.getItem('userData'));\n\n const iconClass = mergeStyles({\n height: 20,\n width: 20,\n });\n\n const modalPropsStyles = { main: { maxWidth: 450 } };\n\n const handleSelectedItemChanges = (field, value) => {\n setSelectedItem((prevState) => ({\n ...prevState,\n [field]: value,\n }));\n };\n\n\n const isValidUrl = (url) => {\n try {\n new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n };\n\n const ValidFormTokenIntegration = async (item, callback) => {\n\n const idVersion = item?.IdVersion || getValues(\"IdVersion\");\n const backEndUrl = item?.BackEndUrl || getValues(\"BackEndUrl\");\n\n if (idVersion === 3 && isValidUrl(backEndUrl)) {\n\n setHasAction(true);\n const encodedBackEndUrl = encodeURIComponent(backEndUrl);\n\n const res = await fetch(\n `${localStorage.getItem('href')}/api/Teams/GetApplyReCaptcha?backenUrl=${encodedBackEndUrl}&version=${idVersion}`\n );\n res\n .json()\n .then((res) => {\n setSeeTokenIntegration(validateSeeTokenIntegration(res.ObjectResult));\n })\n .catch((err) => {\n setSeeTokenIntegration(validateSeeTokenIntegration());\n })\n .finally((err) => {\n setHasAction(false);\n if (callback) callback();\n });\n\n }\n else {\n setSeeTokenIntegration(validateSeeTokenIntegration());\n if (callback) callback();\n }\n\n }\n\n const modalProps = useMemo(\n () => ({\n isBlocking: true,\n styles: modalPropsStyles,\n dragOptions: undefined,\n }),\n [false]\n );\n\n const tooltipProps = {\n onRenderContent: () => {translate('EXIT')},\n };\n\n const hostStyles = {\n root: {\n display: 'inline-block',\n alignSelf: 'center',\n justifySelf: 'end',\n gridRow: '1/3',\n gridColumn: '2',\n },\n };\n\n const columns = [\n {\n key: 'column1',\n name: translate('CONNECT'),\n fieldName: 'Name',\n minWidth: 210,\n maxWidth: 350,\n isRowHeader: true,\n isResizable: true,\n isSorted: false,\n isSortedDescending: false,\n data: 'string',\n isPadded: true,\n onRender: (item) => {\n return {item.Name !== null ? item.Name : 'Sin Nombre'};\n },\n headerClassName: 'DetailsHeader',\n },\n {\n key: 'column2',\n name: translate('FRONT_URL'),\n fieldName: 'FrontEndURL',\n minWidth: 210,\n maxWidth: 350,\n isRowHeader: true,\n isResizable: true,\n isSorted: false,\n isSortedDescending: false,\n data: 'string',\n isPadded: true,\n onRender: (item) => {\n return {item.FrontEndUrl};\n },\n headerClassName: 'DetailsHeader',\n },\n {\n key: 'column3',\n name: translate('BACK_URL'),\n fieldName: 'BackEndURL',\n minWidth: 210,\n maxWidth: 350,\n isRowHeader: true,\n isResizable: true,\n isSorted: false,\n data: 'string',\n onRender: (item) => {\n return {item.BackEndUrl};\n },\n isPadded: true,\n headerClassName: 'DetailsHeader',\n },\n {\n key: 'version',\n name: translate('VERSION'),\n fieldName: 'Versión',\n minWidth: 50,\n maxWidth: 100,\n isRowHeader: true,\n isResizable: true,\n isCollapsible: false,\n data: 'string',\n onRender: (item) => {\n return {item.Version.Name};\n },\n isPadded: true,\n headerClassName: 'DetailsHeader',\n },\n {\n key: 'user',\n name: translate('USER'),\n fieldName: 'Usuario',\n minWidth: 50,\n maxWidth: 100,\n isRowHeader: true,\n isResizable: true,\n isCollapsible: false,\n data: 'string',\n onRender: (item) => {\n return {item.BotUser?.User};\n },\n isPadded: true,\n headerClassName: 'DetailsHeader',\n },\n {\n key: 'column4',\n name: translate('STATE'),\n fieldName: 'isActive',\n minWidth: 70,\n maxWidth: 90,\n isResizable: false,\n isCollapsible: false,\n data: 'string',\n onRender: (item) => {\n return (\n
\n {item.IsActive == true ? translate('ACTIVE') : translate('INACTIVE')}\n
\n );\n },\n isPadded: true,\n headerClassName: 'DetailsHeader',\n },\n\n {\n key: 'actions',\n name: '',\n fieldName: 'edit',\n minWidth: 20,\n maxWidth: 20,\n isResizable: false,\n isCollapsible: false,\n isRowHeader: true,\n data: 'string',\n onRender: (item) => {\n return (\n openDetail(item)}\n className={'gridIcon'}\n style={{\n color: selectedTheme.palette.themePrimary,\n }}\n />\n );\n },\n isPadded: true,\n headerClassName: 'DetailsHeader',\n },\n\n {\n key: 'actions',\n name: '',\n fieldName: 'edit',\n minWidth: 20,\n maxWidth: 20,\n isResizable: false,\n isCollapsible: false,\n isRowHeader: true,\n data: 'string',\n onRender: (item) => {\n return (\n deleteItem(item)}\n className={'gridIcon'}\n style={{\n color: selectedTheme.palette.themePrimary,\n }}\n />\n );\n },\n isPadded: true,\n headerClassName: 'DetailsHeader',\n },\n ];\n\n // Methods\n\n useEffect(() => {\n initialData();\n }, []);\n\n useEffect(() => {\n if (props.fetchData === true) {\n props.setFetchData(false);\n fetchDetails(initialDataParsed.Correo);\n }\n }, [props]);\n\n /**\n * Handle Submit\n * @param {*} Config Data\n */\n const onSubmit = (data) => {\n props.setIsProcessing(true);\n isEditMode === true ? editConfiguration(data) : createConfiguration(data);\n };\n\n /**\n * Load Initial Data\n */\n const initialData = () => {\n let versionsData = JSON.parse(localStorage.getItem('versions'));\n setVersions(versionsData);\n let initialDataParsed = {};\n if (typeof parsed.IsNew !== 'undefined') {\n setInitialDataParsed({ ...initialDataParsed, IsNew: parsed.IsNew });\n }\n if (typeof parsed.Version !== 'undefined') {\n setVersion(parsed.Version);\n setInitialDataParsed({ ...initialDataParsed, IdVersion: parsed.Version });\n }\n if (typeof parsed.Backend !== 'undefined') {\n setInitialDataParsed({\n ...initialDataParsed,\n BackEndUrl: parsed.Backend,\n });\n }\n if (typeof parsed.Email !== 'undefined') {\n setEmail(parsed.Email);\n setInitialDataParsed({ ...initialDataParsed, Correo: parsed.Email });\n fetchDetails(parsed.Email);\n setSelectedItem({\n ...selectedItem,\n Correo: atob(parsed.Email),\n BackEndUrl: atob(parsed.Backend),\n });\n }\n };\n\n /**\n * Get All Configurations\n */\n async function fetchDetails(correo) {\n let originPath = '';\n if (localStorage.getItem('href') !== null) {\n originPath = localStorage.getItem('href');\n } else {\n originPath = window.location.origin;\n }\n const res = await fetch(originPath + `/api/Teams/GetConfiguration/?user=${correo}`);\n res\n .json()\n .then((res) => {\n if (res.ObjectResult.length) {\n setDetails(res.ObjectResult);\n localStorage.setItem('configs', JSON.stringify(res.ObjectResult));\n let configs = [];\n res.ObjectResult.forEach((element) => {\n configs.push({\n key: element.Id,\n text: element.Name || `${translate('NOT_NAME')} ${element.BackEndUrl}`,\n });\n });\n props.setConfigsList(configs);\n res.ObjectResult.forEach((element) => {\n if (element.IsActive === true) {\n props.setActiveConfig(element);\n }\n });\n } else {\n setInitialDataParsed({ ...initialDataParsed, IsNew: true });\n handleNewItem(initialDataParsed);\n }\n })\n .catch((err) => {\n localStorage.removeItem('configs');\n setErrors(err);\n setInitialDataParsed({ ...initialDataParsed, IsNew: true });\n handleNewItem(initialDataParsed);\n });\n }\n\n /**\n * Create Configuration\n */\n const createConfiguration = (dataSelected) => {\n setHasAction(true);\n let dataSent = _.cloneDeep(dataSelected);\n dataSent.PersonalityTemplate = basePersonality;\n dataSent.Domain = dataSelected.Correo.split('@')[1];\n dataSent.Version = {\n Id: dataSelected.IdVersion,\n Name: dataSelected.Version,\n };\n dataSent.User = !seeTokenIntegration ? new Buffer(dataSelected.User).toString('base64') : \"\";\n dataSent.Password = !seeTokenIntegration ? new Buffer(dataSelected.Password).toString('base64') : \"\";\n\n dataSent.Id = 0;\n dataSent.BotUser = {\n Id: dataSent.Id,\n User: dataSent.User,\n Password: dataSent.Password,\n IntegrationToken: seeTokenIntegration ? new Buffer(dataSent.IntegrationToken).toString('base64') : \"\",\n };\n\n dataSent.__RequestVerificationToken = getAntiForgeryTokenValue();\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataSent),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n fetch(localStorage.getItem('href') + `/api/Teams/AddConfiguration`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n props.setIsProcessing(false); \n if (data.DataError === true) {\n setHasUserError(true);\n setUserError(translate(data.MessageResult, translate('ERROR_CREATING_CONFIG'))); \n } else {\n setHasUserError(false);\n setErrors(false);\n setUserError('');\n setErrorMessage(translate('CONFIGURATION_ADD'));\n setMessageBar(true);\n toggleHideDialog();\n fetchDetails(email);\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n console.error('Create Configuration error:', error);\n setMessageBar(true);\n setErrorMessage(error);\n setUserError(false);\n setUserError('');\n })\n .finally(() => {\n props.setIsProcessing(false);\n setHasAction(false);\n parsed.IsNew = false;\n localStorage.setItem('userData', JSON.stringify(parsed));\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n /**\n * Edit Configuration\n */\n const editConfiguration = (dataSelected) => {\n setHasUserError(false);\n setUserError();\n setHasAction(true);\n\n let dataSent = _.cloneDeep(dataSelected);\n dataSent.Domain = dataSelected.Correo.split('@')[1];\n dataSent.Id = selectedItem.Id;\n dataSent.Version = {\n Id: dataSelected.IdVersion,\n };\n dataSent.BotUser = {\n Id: dataSent.Id,\n User: !seeTokenIntegration ? dataSent.User : \"\",\n Password: !seeTokenIntegration ? dataSent.Password : \"\",\n IntegrationToken: seeTokenIntegration ? new Buffer(dataSent.IntegrationToken).toString('base64') : \"\",\n IntegrationTokenEncryp: seeTokenIntegration ? selectedItem.BotUser.IntegrationTokenEncryp : \"\"\n };\n\n dataSent.__RequestVerificationToken = getAntiForgeryTokenValue();\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataSent),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n fetch(localStorage.getItem('href') + `/api/Teams/EditConfiguration`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n props.setIsProcessing(false);\n\n if (data.DataError === true) {\n setHasUserError(true); \n setUserError(translate(data.MessageResult, translate('ERROR_UPDATING_CONFIG'))); \n } else {\n setErrors(false);\n setErrorMessage(translate('CONFIGURATION_UPDATE'));\n setUserError('');\n setMessageBar(true);\n toggleHideDialog();\n fetchDetails(email);\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n setMessageBar(true);\n setErrorMessage(error);\n })\n .finally(() => {\n props.setIsProcessing(false);\n setHasAction(false);\n parsed.IsNew = false;\n localStorage.setItem('userData', JSON.stringify(parsed));\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n function validateSeeTokenIntegration(tokenData)\n {\n if(tokenData === undefined)\n {\n return false;\n }\n\n if(tokenData.Version > 0 && tokenData.SiteKey !== \"\")\n {\n return true\n }\n\n return false;\n\n }\n\n const handleNewItem = (initialDataParsed) => {\n try {\n setEditMode(false);\n closeMessageBar();\n reset({\n IdVersion: \"\",\n BackEndUrl: \"\",\n });\n\n setSeeTokenIntegration(validateSeeTokenIntegration());\n\n if (initialDataParsed.Correo !== undefined) {\n Object.keys(initialDataParsed).forEach((key) => {\n if (key == 'Correo' || key == 'BackEndUrl') {\n handleSelectedItemChanges(key, atob(initialDataParsed[key]));\n } else {\n handleSelectedItemChanges(key, initialDataParsed[key]);\n }\n });\n handleSelectedItemChanges('Domain', '@' + atob(initialDataParsed['Correo']).split('@')[1]);\n } else {\n if (email !== '') {\n let emailDecoded = atob(email);\n let item = baseItem;\n item.Correo = emailDecoded;\n item.Domain = '@' + emailDecoded.split('@')[1];\n setSelectedItem(item);\n } else {\n console.log(selectedItem);\n }\n }\n\n toggleHideDialog();\n } catch (error) {\n console.error('ERROR ON handleNewItem, ', error);\n }\n };\n\n const openDetail = (item) => {\n item['IdVersion'] = item['Version'].Id;\n closeMessageBar();\n setEditMode(true);\n setSelectedItem(item);\n reset({\n BackEndUrl: item.BackEndUrl,\n IdVersion: item.IdVersion,\n });\n ValidFormTokenIntegration(item, toggleHideDialog);\n\n };\n\n\n const deleteItem = (item) => {\n props.setIsProcessing(true);\n let allConfigs = JSON.parse(localStorage.getItem('configs'));\n\n if (item.IsActive) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate('CANNOT_DELETED'));\n props.setIsProcessing(false);\n return;\n }\n\n if (allConfigs && allConfigs.length > 0 && allConfigs.length < 2) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate('LEAST_ONE_CONFIGURATION'));\n props.setIsProcessing(false);\n return;\n }\n\n fetch(localStorage.getItem('href') + `/api/Teams/DeleteConfiguration/?id=${item.Id}`)\n .then((response) => response.json())\n .then((data) => {\n props.setIsProcessing(false);\n setHasUserError(false);\n setErrors(false);\n setUserError('');\n setErrorMessage(translate('CONFIGURATION_DELETE'));\n setMessageBar(true);\n fetchDetails(email);\n })\n .catch((error) => {\n props.setIsProcessing(false);\n setMessageBar(true);\n setErrorMessage(error);\n setUserError(false);\n setUserError('');\n })\n .finally(() => {\n props.setIsProcessing(false);\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage('');\n setHasUserError(false);\n setUserError('');\n };\n\n const handleLogout = () => {\n localStorage.removeItem('userData');\n window.location.href = '/';\n };\n\n let debugCounter = 0;\n\n const handleDebugMode = () => {\n debugCounter++;\n if (debugCounter >= 7) {\n setOpenDebug(!openDebug);\n debugCounter = 0;\n } else {\n setOpenDebug(false);\n }\n };\n\n const debouncedValidFormTokenIntegration = useCallback(\n debounce(() => {\n ValidFormTokenIntegration();\n }, 1000),\n []\n );\n\n\n return (\n
\n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n\n
\n
\n \n {translate('LIST_CONNECTIONS')}\n \n \n \n \n
\n {' '}\n \n
\n
\n \n \n
\n {hasAction == true ? (\n
\n
\n
\n ) : null}\n {openDebug == true ? (\n
\n
\n \n Debug Mode Enabled\n \n setLogs([])} text=\"Clear Log\" />\n
\n
\n \n
\n
\n ) : null}\n
\n );\n};\n\nexport default Configure;\n\n// ReactDOM.render(, document.getElementById(\"component-container\"));\n","import React, { useEffect, useState } from 'react';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport { PrimaryButton, DefaultButton, MessageBar, MessageBarType } from 'office-ui-fabric-react';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { useForm, Controller } from 'react-hook-form';\nimport { yupResolver } from '@hookform/resolvers';\nimport * as yup from 'yup';\nimport { Dropdown } from 'office-ui-fabric-react/lib/Dropdown';\n\nimport { getAntiForgeryTokenValue } from '../../utils/Utils';\n\nimport * as styles from './Personalization.css';\nimport useTranslate from '../../hooks/useTranslate';\nimport { Language } from '@material-ui/icons';\nimport { parse } from 'query-string';\nimport { RadioButton } from '@progress/kendo-react-inputs';\nimport _ from 'lodash';\n\nconst schema = yup.object().shape({\n botName: yup.string(),\n attentionMessage: yup.string(),\n goodbayMessage: yup.string(),\n});\n\nexport default function Personalization(props) {\n const [messageBar, setMessageBar] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n const [hasError, setErrors] = React.useState(false);\n const [activeConfigId, setactiveConfigId] = useState(0);\n const email = JSON.parse(localStorage.getItem('userData')).Email;\n const translate = useTranslate();\n //Declarations\n const methods = useForm({\n resolver: yupResolver(schema),\n defaultValues: {\n botName: '',\n attentionMessage: '',\n goodbayMessage: ''\n },\n });\n const { handleSubmit, control, errors, register, setValue, getValues, clearErrors } = methods;\n\n const [formPersonalization, setFormPersonalization] = React.useState(props.activeConfig.TeamsPersonalization);\n\n const languages = !!localStorage.getItem(\"languages\") ? JSON.parse(localStorage.getItem(\"languages\")) : [];\n const [languageSelected, setLanguageSelected] = React.useState(languages.length > 0 ? languages[0] : []);\n\n const updateGlobalPersonality = (data) => {\n Object.keys(props.activeConfig.TeamsPersonalization).forEach((key) => {\n if (data.TeamsPersonalization[key] !== null) {\n props.activeConfig.TeamsPersonalization[key] = data.TeamsPersonalization[key];\n }\n });\n props.setActiveConfig(props.activeConfig);\n };\n\n /**\n * Update Personalization\n */\n const updatePersonalization = (dataSelected) => {\n props.setIsProcessing(true);\n let dataSent = {\n ...dataSelected\n };\n dataSent.Domain = atob(email).split('@')[1];\n\n dataSent.IdVersion = dataSelected.Version.Id;\n dataSent.Version = dataSelected.Version;\n dataSent.__RequestVerificationToken = getAntiForgeryTokenValue();\n\n let dataConfiguration = _.cloneDeep(dataSent);\n\n if (dataConfiguration.BotUser.IntegrationToken && dataConfiguration.BotUser.IntegrationToken.trim() !== \"\") {\n dataConfiguration.BotUser.IntegrationToken = new Buffer(dataConfiguration.BotUser.IntegrationToken).toString('base64');\n }\n else {\n dataConfiguration.BotUser.IntegrationToken = \"\";\n }\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataConfiguration),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n fetch(localStorage.getItem('href') + `/api/Teams/SetPersonalization`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n props.setIsProcessing(false);\n if (data.DataError === true) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate(data.MessageResult,translate('NOT_UPDATE_MESSAGE'))); \n } else {\n if (\n data.ObjectResult != null &&\n data.ObjectResult.length > 0\n ) {\n dataSent.TeamsPersonalization = data.ObjectResult;\n }\n setErrors(false);\n setMessageBar(true);\n setErrorMessage(translate('MESSAGE_UPDATE_MESSAGE'));\n updateGlobalPersonality(dataSent);\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n console.log('Edit Configuration Error:', error);\n\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(error.message);\n })\n .finally(() => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n const onSubmit = (data) => {\n addInfoForm();\n updatePersonalization(props.activeConfig);\n };\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage('');\n };\n\n const getDefaultValue = (field) => {\n if (typeof props.activeConfig !== 'undefined' && props.activeConfig !== null) {\n let personalization = props.activeConfig.TeamsPersonalization?.find(x => x.LanguageId === languageSelected.Id)\n if (!!personalization) {\n let values = JSON.parse(personalization.Value)\n return values[field];\n } else {\n return '';\n }\n }\n };\n\n useEffect(() => {\n setValue('botName', '');\n setValue('attentionMessage', '');\n setValue('goodbayMessage', '');\n\n if (typeof props.activeConfig !== 'undefined') {\n\n if (\n typeof props.activeConfig.TeamsPersonalization !== 'undefined'\n && props.activeConfig.TeamsPersonalization.length > 0\n ) {\n let personalization = props.activeConfig.TeamsPersonalization.find(x => x.LanguageId === languageSelected.Id);\n\n if (!!personalization) {\n let values = JSON.parse(personalization.Value)\n Object.keys(values).forEach((key) => {\n if (values[key] !== null) {\n setValue(key, values[key]);\n } else {\n setValue(key, '');\n }\n });\n }\n\n\n }\n }\n }, [props]);\n\n const onSelectedLanguage = (language) => {\n\n addInfoForm();\n loadInfoForm(language);\n setLanguageSelected(language);\n\n }\n\n\n const addInfoForm = () => {\n\n let botName = getValues('botName');\n let attentionMessage = getValues('attentionMessage');\n let goodbayMessage = getValues('goodbayMessage');\n\n let infoForm = props.activeConfig.TeamsPersonalization?.find(x => x.LanguageId === languageSelected.Id);\n if (!!infoForm) {\n infoForm.Value = JSON.stringify({\n botName: botName,\n attentionMessage: attentionMessage,\n goodbayMessage: goodbayMessage\n });\n\n }\n else {\n\n if (!props.activeConfig.TeamsPersonalization) {\n props.activeConfig.TeamsPersonalization = [];\n }\n\n props.activeConfig.TeamsPersonalization.push({\n ConfigurationId: props.activeConfig.Id,\n LanguageId: languageSelected.Id,\n Value: JSON.stringify({\n botName: botName,\n attentionMessage: attentionMessage,\n goodbayMessage: goodbayMessage\n })\n });\n }\n\n }\n\n const loadInfoForm = (language) => {\n\n let infoLanguageSelected = props.activeConfig.TeamsPersonalization?.find(x => x.LanguageId === language.Id);\n if (!!infoLanguageSelected) {\n let values = JSON.parse(infoLanguageSelected.Value)\n setValue('botName', values.botName);\n setValue('attentionMessage', values.attentionMessage);\n setValue('goodbayMessage', values.goodbayMessage);\n }\n else {\n setValue('botName', '');\n setValue('attentionMessage', '');\n setValue('goodbayMessage', '');\n }\n\n }\n\n\n return (\n
\n
\n \n {translate('SELECT_CONNECTION_MESSAGES')}\n \n {\n props.setIsProcessing(true);\n props.updateConfig(item);\n }}\n options={props.configsList}\n required={false}\n style={{ width: '50%', marginBottom: '27px' }}\n selectedKey={props.activeConfig ? props.activeConfig.Id : undefined}\n />\n \n

{translate('MESSAGE_CONFIGURATION')}

\n

{translate('SECTION_MESSAGE_MESSAGE')}

\n \n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n
\n\n \n\n
\n\n \n

{translate('SELECT_LANGUAGE')}

\n

{translate('SELECT_LANGUAGE_NOTE')}

\n \n
\n {languages.map(item => (\n onSelectedLanguage(item)}\n checked={languageSelected.Abbreviation === item.Abbreviation && true}\n />\n ))}\n\n
\n\n getDefaultValue('botName')}\n errorMessage={errors.botName ? translate(errors.botName?.message) : undefined}\n />\n \n\n \n
\n \n
\n
\n \n
\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport { Dropdown } from 'office-ui-fabric-react/lib/Dropdown';\nimport ImageLoader from './ImageLoader';\nimport { MessageBar, MessageBarType } from 'office-ui-fabric-react';\nimport { getAntiForgeryTokenValue } from '../../utils/Utils';\nimport { Checkbox } from 'office-ui-fabric-react/lib/Checkbox';\nimport useTranslate from '../../hooks/useTranslate';\nimport { format } from 'react-string-format';\nimport _ from 'lodash';\nimport './Images.css';\n\nfunction Images(props) {\n const translate = useTranslate();\n let parsedForEducation = JSON.parse(localStorage.getItem('forEducation'));\n const DEFAULT_SUBTITLE = translate('DEFAULT_SUBTITLE');\n\n const MALE_POSITIVE = `${window.location.origin}/images/saul-positivo${parsedForEducation === '1' ? '-for' : ''\n }.png`;\n const MALE_NEGATIVE = `${window.location.origin}/images/saul-negativo${parsedForEducation === '1' ? '-for' : ''\n }.png`;\n\n const FEMALE_POSITIVE = `${window.location.origin}/images/albi-positiva${parsedForEducation === '1' ? '-for' : ''\n }.png`;\n const FEMALE_NEGATIVE = `${window.location.origin}/images/albi-negativa${parsedForEducation === '1' ? '-for' : ''\n }.png`;\n\n const [genre, setGenre] = useState(localStorage.getItem('genre') || 'female');\n\n const [messageBar, setMessageBar] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n const [hasError, setErrors] = React.useState(false);\n\n const [useDefaultImages, setUseDefaultImages] = useState(false);\n\n const genres = [\n { key: 'female', text: translate('FEMALE') },\n { key: 'male', text: translate('MALE') },\n ];\n const email = JSON.parse(localStorage.getItem('userData')).Email;\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage('');\n };\n\n const updateGlobalPersonality = (data) => {\n Object.keys(props.activeConfig.PersonalityTemplate).forEach((key) => {\n if (data.PersonalityTemplate[key] !== null) {\n props.activeConfig.PersonalityTemplate[key] = data.PersonalityTemplate[key];\n }\n });\n\n props.setActiveConfig(props.activeConfig);\n };\n\n const uploadImage = (title, PersonalityTemplate, callback) => {\n \n let dataSent = {\n ...props.activeConfig,\n }; \n\n Object.assign(dataSent.PersonalityTemplate, PersonalityTemplate);\n props.setIsProcessing(true);\n dataSent.Domain = atob(email).split('@')[1];\n dataSent.IdVersion = props.activeConfig.Version.Id;\n dataSent.Version = props.activeConfig.Version; \n\n dataSent.__RequestVerificationToken = getAntiForgeryTokenValue();\n\n let dataConfiguration = _.cloneDeep(dataSent);\n\n if (dataConfiguration.BotUser.IntegrationToken && dataConfiguration.BotUser.IntegrationToken.trim() !== \"\") {\n dataConfiguration.BotUser.IntegrationToken = new Buffer(dataConfiguration.BotUser.IntegrationToken).toString('base64');\n }\n else {\n dataConfiguration.BotUser.IntegrationToken = \"\";\n }\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataConfiguration),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n fetch(localStorage.getItem('href') + `/api/Teams/EditConfiguration`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n\n props.setIsProcessing(false);\n\n if (data.DataError === true) {\n\n setErrors(true);\n setMessageBar(true); \n setErrorMessage(translate(data.MessageResult, `${translate('NOT_UPDATE_IMAGE')} \"${title}\"`)); \n \n } else {\n if (dataSent.PersonalityTemplate.Id == 1) {\n if (\n data.ObjectResult.PersonalityTemplate != null &&\n data.ObjectResult.PersonalityTemplate.Id > 1\n ) {\n dataSent.PersonalityTemplate.Id = data.ObjectResult.PersonalityTemplate.Id;\n }\n }\n setErrors(false);\n setMessageBar(true);\n setErrorMessage(format(translate('IMAGE_UPDATE'), title));\n updateGlobalPersonality(dataSent);\n callback(true, dataSent.PersonalityTemplate);\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n console.log('Edit Configuration Error:', error);\n callback();\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(error.message);\n })\n .finally(() => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n const updateGenreImage = (personality) => {\n let dataSent = {\n ...props.activeConfig,\n }; \n\n Object.assign(dataSent.PersonalityTemplate, personality);\n props.setIsProcessing(true);\n dataSent.Domain = atob(email).split('@')[1];\n dataSent.IdVersion = props.activeConfig.Version.Id;\n dataSent.Version = props.activeConfig.Version; \n dataSent.__RequestVerificationToken = getAntiForgeryTokenValue();\n\n let dataConfiguration = _.cloneDeep(dataSent);\n\n if (dataConfiguration.BotUser.IntegrationToken && dataConfiguration.BotUser.IntegrationToken.trim() !== \"\") {\n dataConfiguration.BotUser.IntegrationToken = new Buffer(dataConfiguration.BotUser.IntegrationToken).toString('base64');\n }\n else {\n dataConfiguration.BotUser.IntegrationToken = \"\";\n }\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataConfiguration),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n fetch(localStorage.getItem('href') + `/api/Teams/EditConfiguration`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n \n props.setIsProcessing(false);\n\n if (data.DataError === true) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate(data.MessageResult, translate('NOT_UPDATE_IMAGE_SELECT'))); \n } else {\n if (dataSent.PersonalityTemplate.Id == 1) {\n if (\n data.ObjectResult.PersonalityTemplate != null &&\n data.ObjectResult.PersonalityTemplate.Id > 1\n ) {\n dataSent.PersonalityTemplate.Id = data.ObjectResult.PersonalityTemplate.Id;\n }\n }\n setErrors(false);\n setMessageBar(true);\n setErrorMessage(translate('IMAGES_UPDATE'));\n updateGlobalPersonality(dataSent);\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n console.log('Edit Configuration Error:', error);\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(error.message);\n })\n .finally(() => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n const changeGenre = (event, item) => {\n\n setErrors(false);\n setMessageBar(false);\n let PersonalityTemplate = {\n ['BotPositiveImage']: item.key === 'male' ? MALE_POSITIVE : FEMALE_POSITIVE,\n ['BotNegativeImage']: item.key === 'male' ? MALE_NEGATIVE : FEMALE_NEGATIVE,\n };\n localStorage.setItem('genre', item.key);\n setGenre(item.key);\n updateGenreImage(PersonalityTemplate);\n };\n\n const setErrorOnLoad = (message, callback) => {\n callback();\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(message);\n };\n\n const _onChange = (ev, isChecked) => {\n setUseDefaultImages(isChecked);\n };\n\n return (\n
\n
\n \n {translate('SELECT_CONNECTION_MESSAGE')}\n \n {\n props.setIsProcessing(true);\n props.updateConfig(item);\n }}\n options={props.configsList}\n required={false}\n selectedKey={props.activeConfig ? props.activeConfig.Id : undefined}\n style={{ width: '50%', marginBottom: '27px' }}\n />\n \n {translate('IMAGE_CONFIGURATION')}\n \n \n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n
\n
\n \n \n
\n
\n
\n \n changeGenre(e, item)}\n options={genres}\n required={true}\n defaultSelectedKey={genre}\n style={{ width: '50%' }}\n disabled={!useDefaultImages}\n />\n
\n \n \n
\n
\n );\n}\n\nImages.propTypes = {};\n\nexport default Images;\n","export { default } from \"./Configure\";\n","export { default } from \"./Personalization\";","export { default } from \"./Images\";\n","import React from \"react\";\nimport useTranslate from \"../../hooks/useTranslate\";\nimport './Setting.css';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport { Dropdown } from \"office-ui-fabric-react/lib/Dropdown\";\nimport { MessageBar, MessageBarType, Checkbox, PrimaryButton } from 'office-ui-fabric-react';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { format } from 'react-string-format';\nimport _ from 'lodash';\n\n\nfunction Setting(props) {\n const translate = useTranslate();\n const [messageBar, setMessageBar] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState({});\n const [hasError, setErrors] = React.useState(false);\n const ValidateTaskId = { 1: 1, 3: 2, 5: 5 };\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage({});\n };\n\n const onSettingValidate = (settingId, validate, callback) => {\n\n let result = true;\n\n if (validate === \"1\") {\n\n let TaskId = ValidateTaskId[settingId];\n\n if (TaskId !== undefined) {\n\n let dataSent = {\n Domain: props.activeConfig.Domain,\n TaskId: TaskId,\n };\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataSent),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n props.setIsProcessing(true);\n\n fetch(localStorage.getItem('href') + `/api/Teams/ValidateConfigurationTask`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n\n if (!data.IsValidConfig) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(format(translate('ERROR_VALIDATE_CONFIGURATION_TASK'), translate('NAME_TASK' + settingId)));\n result = false;\n }\n else if (!data.SuccessTest) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(format(translate('ERROR_VALIDATE_TEST_TASK'), translate('NAME_TASK' + settingId)));\n result = false;\n }\n\n if (callback !== undefined) {\n callback(result);\n }\n\n props.setIsProcessing(false);\n\n })\n .catch((error) => {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(format(translate('ERROR_VALIDATE_CONFIGURATION_TASK'), translate('NAME_TASK' + settingId)));\n result = false;\n props.setIsProcessing(false);\n })\n .finally(() => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n }\n else {\n if (callback !== undefined) {\n callback(result);\n }\n props.setIsProcessing(false);\n }\n }\n else {\n if (callback !== undefined) {\n callback(result);\n }\n props.setIsProcessing(false);\n }\n\n }\n\n const onSettingChanged = (settingId) => (event, checked) => {\n\n let newActiveConfig = {\n ...props.activeConfig,\n };\n\n let value = checked;\n if (typeof (checked) == \"boolean\") {\n value = checked ? \"1\" : \"0\";\n }\n\n onSettingValidate(settingId, value, function (response) {\n if (!response) {\n value = \"0\";\n }\n let settingValue = newActiveConfig.TeamsSettingValues.find(x => x.SettingId === settingId);\n if (!!settingValue) {\n settingValue.Value = value;\n }\n props.setActiveConfig(newActiveConfig);\n });\n\n };\n\n const onCreateCaseByACChanged = () => (event, checked) => {\n\n let newActiveConfig = {\n ...props.activeConfig,\n };\n\n let value = checked;\n newActiveConfig.IsCreateCaseAdaptiveCard = value;\n props.setActiveConfig(newActiveConfig);\n };\n\n const onUpdate = (event) => {\n\n event.preventDefault();\n props.setIsProcessing(true);\n let dataSent = {\n ...props.activeConfig,\n }; \n\n if (dataSent.TeamsSettingValues !== undefined\n && dataSent.TeamsSettingValues.length > 0) {\n\n if (dataSent.TeamsSettingValues[0].Value === \"0\") {\n dataSent.TeamsSettingValues[1].Value = \"\";\n dataSent.TeamsSettingValues[2].Value = \"0\";\n }\n\n if (dataSent.TeamsSettingValues[2].Value === \"0\") {\n dataSent.TeamsSettingValues[4].Value = \"0\";\n }\n }\n\n dataSent.TeamsSettingValues[1].Value = \"1\";\n\n if (dataSent.TeamsSettingValues !== undefined\n && dataSent.TeamsSettingValues.length > 0\n && dataSent.TeamsSettingValues[0].Value === \"1\"\n && dataSent.TeamsSettingValues[1].Value === \"\") {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate('REQUIRED_SETTING2'));\n props.setIsProcessing(false);\n return;\n }\n\n let dataConfiguration = _.cloneDeep(dataSent);\n\n if (dataConfiguration.BotUser.IntegrationToken && dataConfiguration.BotUser.IntegrationToken.trim() !== \"\") {\n dataConfiguration.BotUser.IntegrationToken = new Buffer(dataConfiguration.BotUser.IntegrationToken).toString('base64');\n }\n else\n {\n dataConfiguration.BotUser.IntegrationToken = \"\";\n }\n\n\n const requestOptions = {\n method: 'POST',\n body: JSON.stringify(dataConfiguration),\n headers: {\n 'Content-Type': 'application/json',\n },\n };\n\n\n fetch(localStorage.getItem('href') + `/api/Teams/SetSettingValues`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n props.setIsProcessing(false);\n if (data.DataError === true) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate(data.MessageResult, translate('NOT_UPDATE_MESSAGE'))); \n }\n else {\n if (\n data.ObjectResult != null &&\n data.ObjectResult.length > 0\n ) { \n dataSent.TeamsSettingValues = data.ObjectResult;\n props.setActiveConfig(dataSent);\n }\n setErrors(false);\n setMessageBar(true);\n setErrorMessage(translate('SETTING_UPDATE_MESSAGE'));\n\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n console.log('Edit setting Error:', error);\n\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(error.message);\n })\n .finally(() => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n };\n\n const onRangeValidate = (min, max) => (event) => {\n let newActiveConfig = {\n ...props.activeConfig,\n };\n\n let value = event.target.value;\n if (value < min || value > max) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate('RANGE_ERROR').replace(\"{0}\", min).replace(\"{1}\", max));\n newActiveConfig.TeamsSettingValues[1].Value = '';\n props.setActiveConfig(newActiveConfig);\n }\n\n };\n\n return (\n
\n
\n \n {translate('SELECT_CONNECTION_SETTINGS')}\n \n {\n props.setIsProcessing(true);\n props.updateConfig(item);\n }}\n options={props.configsList}\n required={false}\n style={{ width: '50%', marginBottom: '27px' }}\n selectedKey={props.activeConfig ? props.activeConfig.Id : undefined}\n />\n \n

{translate('BOT_PERSONALIZATION')}

\n

{translate('SECTION_SETTING_MESSAGE')}

\n \n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n
\n
\n {props.activeConfig.TeamsSettingValues &&\n
\n {props.activeConfig.Version && props.activeConfig.Version.Id === 3 &&\n
\n \n\n {props.activeConfig.TeamsSettingValues[0].Value === \"1\" &&\n
\n\n {!props.activeConfig.TeamsSettingValues &&\n \n }\n\n \n {props.activeConfig.TeamsSettingValues[2].Value === \"1\" &&\n\n \n }\n\n \n\n
\n }\n\n \n
\n }\n \n\n\n
\n \n
\n
\n }\n
\n
\n\n );\n}\n\nexport { Setting };","import { useCallback } from 'react';\nimport { useLocalization } from '@progress/kendo-react-intl';\n\nconst useTranslate = () => {\n const localizationService = useLocalization();\n const translate = useCallback(\n (key, defaultMessage) =>\n localizationService.toLanguageString(key, defaultMessage || 'NO_TRANSLATION' ),\n [localizationService]\n );\n\n return translate;\n};\n\nexport default useTranslate;\n","export const URL_API = window.location.origin; // \"https://app-teamsapi-dev-001.azurewebsites.net\";\n","import './Footer.css'; // Asegúrate de importar los estilos con CSS Modules\n\nconst Footer = (props) => {\n\n return (\n
\n
\n \"Logo\n
\n

©

\n

Powered by Aranda SOFTWARE {process.env.REACT_APP_VERSION}

\n
\n
\n
\n\n );\n\n};\n\nexport default Footer;\n\n\n\n\n\n","import React, { useEffect, useRef, useState } from 'react';\n\nexport const RecaptchaV2 = ({ callback, siteKey }) => {\n const [isRecaptchaLoaded, setIsRecaptchaLoaded] = useState(false);\n const recaptchaRef = useRef(null);\n\n const onRecaptchaLoad = () => {\n setIsRecaptchaLoaded(true);\n };\n\n useEffect(() => {\n window.onRecaptchaLoad = onRecaptchaLoad;\n\n if (!window.grecaptcha) {\n const script = document.createElement('script');\n script.src = 'https://www.google.com/recaptcha/api.js?onload=onRecaptchaLoad&render=explicit';\n script.async = true;\n script.defer = true;\n document.head.appendChild(script);\n } else if (window.grecaptcha && window.grecaptcha.render) {\n setIsRecaptchaLoaded(true);\n }\n\n return () => {\n window.onRecaptchaLoad = undefined;\n };\n }, []);\n\n useEffect(() => {\n if (isRecaptchaLoaded && recaptchaRef.current) {\n window.grecaptcha?.render(recaptchaRef.current, {\n sitekey: siteKey,\n callback,\n 'expired-callback': () => callback(undefined),\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isRecaptchaLoaded]);\n\n return
;\n};","import { useState, useEffect, useCallback } from 'react';\n\nconst RecaptchaV3 = (sitekey) => {\n const [isRecaptchaReady, setIsRecaptchaReady] = useState(false);\n\n useEffect(() => {\n const loadRecaptcha = () => {\n if (window.grecaptcha) {\n setIsRecaptchaReady(true);\n } else {\n const script = document.createElement('script');\n script.src = `https://www.google.com/recaptcha/api.js?render=${sitekey}`;\n script.async = true;\n document.head.appendChild(script);\n script.onload = () => {\n setIsRecaptchaReady(true);\n };\n }\n };\n\n loadRecaptcha();\n\n const observer = new MutationObserver(() => {\n const badge = document.querySelector('.grecaptcha-badge');\n if (badge && badge instanceof HTMLElement) {\n badge.style.bottom = '80px';\n badge.style.display = 'inline';\n observer.disconnect();\n }\n });\n\n observer.observe(document.body, {\n childList: true,\n subtree: true,\n });\n\n return () => {\n observer.disconnect();\n };\n }, [sitekey]);\n\n const executeRecaptcha = useCallback(\n async (action) => {\n if (isRecaptchaReady && window.grecaptcha) {\n return window.grecaptcha.execute(sitekey, { action });\n }\n return undefined;\n },\n [isRecaptchaReady, sitekey]\n );\n\n return executeRecaptcha;\n};\n\nexport default RecaptchaV3;","/* eslint-disable react-hooks/rules-of-hooks */\nimport React from 'react';\nimport { RecaptchaV2 } from './RecaptchaV2';\nimport useRecaptchaV3 from './RecaptchaV3';\nimport styles from './Recaptcha.css';\n\nexport const VersionRecaptcha = {\n Version0: 0,\n Version2: 2,\n Version3: 3,\n};\n\nconst Recaptcha = (props) => {\n const { siteKey, version, callback } = props;\n\n if (!siteKey) {\n return {\n dom: <>,\n execute: () => {},\n };\n }\n\n if (version === VersionRecaptcha.Version2) {\n return {\n dom: (\n
\n {})} />\n
\n ),\n execute: () => {},\n };\n }\n \n if (version === VersionRecaptcha.Version3) {\n\n const executeRecaptcha = useRecaptchaV3(siteKey);\n \n return {\n dom: <>,\n execute: executeRecaptcha,\n };\n }\n\n};\n\nexport default Recaptcha;","import { useState, useImperativeHandle, forwardRef } from 'react';\nimport Recaptcha, { VersionRecaptcha } from './Recaptcha';\n\nexport { VersionRecaptcha };\n\nconst RecaptchaController = forwardRef((props, ref) => {\n\n const { siteKey, version, callback } = props;\n const [token, setToken] = useState(null);\n\n const executeRecaptcha = Recaptcha({\n version: version ?? VersionRecaptcha.Version2,\n siteKey: siteKey ?? '',\n callback: (token) => {\n setToken(token);\n if (callback) {\n callback(token);\n }\n },\n });\n\n const getToken = async () => {\n try {\n if (version && version === VersionRecaptcha.Version3) {\n const result = await executeRecaptcha?.execute('Login');\n\n return result || null;\n } else {\n return token || null;\n }\n } catch (error) {\n return null;\n }\n };\n\n const reloadToken = async () => {\n if (siteKey && version && version === VersionRecaptcha.Version2) {\n setToken(\"\");\n window.grecaptcha?.reset();\n }\n };\n\n useImperativeHandle(ref, () => ({\n getToken,\n reloadToken\n }));\n\n\n return (\n
\n {executeRecaptcha.dom}\n
\n );\n});\n\nexport default RecaptchaController;","import { useState, useEffect, useCallback, useRef } from 'react';\nimport ReactDOM from 'react-dom';\nimport * as yup from 'yup';\nimport { mainTheme } from '../../theme/theme';\nimport { useForm, Controller } from 'react-hook-form';\nimport { initializeIcons } from 'office-ui-fabric-react/lib/Icons';\nimport { TextField } from 'office-ui-fabric-react/lib/TextField';\nimport { Dropdown } from 'office-ui-fabric-react/lib/Dropdown';\nimport { Separator } from 'office-ui-fabric-react/lib/Separator';\nimport {\n PrimaryButton,\n loadTheme,\n createTheme,\n MessageBar,\n MessageBarType,\n} from 'office-ui-fabric-react';\nimport { Label } from 'office-ui-fabric-react/lib/Label';\nimport { yupResolver } from '@hookform/resolvers';\nimport queryString from 'query-string';\nimport { getAntiForgeryTokenValue } from '../../utils/Utils';\nimport { URL_API } from '../../utils/Constanst';\nimport useTranslate from '../../hooks/useTranslate';\nimport debounce from 'lodash.debounce';\nimport './Login.css';\nimport Footer from '../Footer';\nimport RecaptchaController, { VersionRecaptcha } from '../ReCaptcha';\n\nlet selectedTheme = mainTheme();\ninitializeIcons();\nloadTheme(createTheme(selectedTheme));\n\n\nexport default function Login() {\n const [hasAction, setHasAction] = useState(false);\n const [messageBar, setMessageBar] = useState(false);\n const [isValidated, setIsValidated] = useState(false);\n const [errorMessage, seterrorMessage] = useState('');\n const [hasError, setErrors] = useState(false);\n const [versions, setVersions] = useState();\n const resetDataRecaptcha = { Version: 0, SiteKey: \"\" };\n const [dataRecaptcha, setDataRecaptcha] = useState(resetDataRecaptcha);\n const recaptchaRef = useRef();\n\n const getValidationSchema = () => {\n return yup.object().shape({\n BackEndUrl: yup\n .string()\n .required('REQUIRED_BACK_URL')\n .matches(/^https:\\/\\/(.*)/, 'REQUIRED_HTTPS'),\n IdVersion: yup.number().required('REQUIRED_VERSION'),\n Correo: yup.string().email('VALID_EMAIL').required('REQUIRED_EMAIL'),\n User: yup.string().required('REQUIRED_USER'),\n Password: yup.string().required('REQUIRED_PASSWORD')\n });\n };\n\n const { handleSubmit, control, setValue, errors, getValues } = useForm({\n resolver: yupResolver(getValidationSchema()),\n });\n\n const translate = useTranslate();\n\n const onSubmit = (data) => {\n setMessageBar(false);\n doLogin({\n BackEndUrl: data.BackEndUrl,\n Correo: data.Correo,\n Password: data.Password,\n User: data.User,\n IdVersion: data.IdVersion,\n IntegrationToken: data.IntegrationToken,\n });\n };\n\n async function fetchData() {\n localStorage.setItem('href', URL_API);\n const res = await fetch(URL_API + '/api/Teams/GetVersions');\n res\n .json()\n .then((res) => {\n let itemOptions = [];\n res.ObjectResult.forEach((element) => {\n itemOptions.push({\n key: element.Id,\n text: element.Name,\n });\n });\n setVersions(itemOptions);\n localStorage.setItem('versions', JSON.stringify(itemOptions));\n })\n .catch((err) => {\n setErrors(err);\n })\n .finally(() => {\n setHasAction(false);\n });\n }\n\n async function fetchForEducation() {\n const res = await fetch(URL_API + '/api/Teams/GetForEducation');\n res\n .json()\n .then((res) => {\n localStorage.setItem('forEducation', JSON.stringify(res.ObjectResult));\n })\n .catch((err) => {\n localStorage.setItem('forEducation', '0');\n });\n }\n\n useEffect(() => {\n const parsed = queryString.parse(window.location.search);\n setValue('Correo', parsed['email']);\n fetchData();\n fetchForEducation();\n }, []);\n\n const isValidUrl = (url) => {\n try {\n new URL(url);\n return true;\n } catch (e) {\n return false;\n }\n };\n\n const ValidFormTokenIntegration = async () => {\n\n setIsValidated(false);\n deleteBag();\n const version = getValues(\"IdVersion\")\n const backEndUrl = getValues(\"BackEndUrl\")\n\n if (version === VersionRecaptcha.Version3 && isValidUrl(backEndUrl)) {\n\n setHasAction(true);\n const encodedBackEndUrl = encodeURIComponent(backEndUrl);\n\n const res = await fetch(\n `${URL_API}/api/Teams/GetApplyReCaptcha?backenUrl=${encodedBackEndUrl}&version=${version}`\n );\n res\n .json()\n .then((res) => {\n let recaptchaResult = res.ObjectResult.Version === VersionRecaptcha.Version0 ? resetDataRecaptcha : res.ObjectResult;\n setDataRecaptcha(recaptchaResult);\n })\n .catch((err) => {\n setDataRecaptcha(resetDataRecaptcha);\n })\n .finally((err) => {\n setHasAction(false);\n setIsValidated(true);\n });\n\n }\n else if (version === VersionRecaptcha.Version2) {\n setIsValidated(true);\n setDataRecaptcha(resetDataRecaptcha);\n }\n\n\n }\n\n function deleteBag() {\n const badge = document.querySelector('.grecaptcha-badge');\n\n // Verifica si el elemento existe\n if (badge) {\n badge.style.display = 'none';\n }\n }\n\n async function doLogin(userData) {\n setHasAction(true);\n\n let tokenCaptcha = \"\";\n\n if (dataRecaptcha.SiteKey && dataRecaptcha.Version > 0) {\n\n tokenCaptcha = await getToken();\n\n if (!tokenCaptcha || tokenCaptcha === \"\") {\n setErrors(true);\n setMessageBar(true);\n seterrorMessage(translate(\"ERROR_RECAPTCHA_REQUIRED\"));\n setHasAction(false);\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n return;\n }\n }\n\n const formData = new FormData();\n formData.append('BackEndUrl', userData.BackEndUrl);\n formData.append('Version', userData.IdVersion);\n formData.append('User', userData.User);\n formData.append('Password', userData.Password);\n formData.append('Correo', userData.Correo);\n formData.append('TokenCaptcha', tokenCaptcha);\n\n const dataUser = {\n BackEndUrl: userData.BackEndUrl,\n Version: userData.IdVersion,\n User: userData.User,\n Password: userData.Password,\n Correo: userData.Correo,\n TokenCaptcha: tokenCaptcha,\n };\n //formData.append(\"__RequestVerificationToken\", getAntiForgeryTokenValue());\n\n const requestOptions = {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n body: JSON.stringify(dataUser),\n };\n\n const res = await fetch(URL_API + '/api/Teams/login', requestOptions)\n .then((response) => response.json())\n .then((data) => {\n if (data.DataError === true) {\n\n setErrors(true);\n setMessageBar(true);\n seterrorMessage(translate(data.MessageResult, translate(\"ERROR_LOGIN\")));\n if (dataRecaptcha.SiteKey && dataRecaptcha.Version === VersionRecaptcha.Version2) {\n reloadToken();\n }\n\n\n } else {\n if (data.redirectTo !== '') {\n\n getLanguage(function () {\n localStorage.setItem('userData', JSON.stringify(data.ObjectResult));\n window.location.replace(\n window.location.origin +\n `/configuration/?correo=${data.ObjectResult.Email}&backend=${data.ObjectResult.Backend}`\n );\n });\n }\n }\n })\n .catch((error) => {\n setMessageBar(true);\n seterrorMessage(error);\n })\n .finally(() => {\n setHasAction(false);\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n }\n\n const closeMessageBar = () => {\n setMessageBar(false);\n seterrorMessage('');\n };\n\n const getLanguage = async (success) => {\n\n const res = await fetch(\n `${URL_API}/api/Teams/GetAllLanguage`\n );\n res\n .json()\n .then((res) => {\n if (res.ObjectResult.length) {\n localStorage.setItem(\"languages\", JSON.stringify(res.ObjectResult));\n }\n })\n .catch((err) => {\n localStorage.removeItem(\"languages\");\n setErrors(err);\n })\n .finally(() => {\n if (!!success) {\n success();\n }\n });\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedValidFormTokenIntegration = useCallback(\n debounce(() => {\n ValidFormTokenIntegration();\n }, 1000),\n []\n );\n\n\n const getToken = async () => {\n return await recaptchaRef.current.getToken();\n };\n\n const reloadToken = async () => {\n return await recaptchaRef.current.reloadToken();\n };\n\n\n return (\n
\n
\n \n {translate('CONNECTION')}\n \n \n\n \n
\n
\n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n\n \n Login\n \n \n\n (\n {\n onChange(e.target.value);\n debouncedValidFormTokenIntegration();\n }} \n errorMessage={errors.BackEndUrl ? translate(errors.BackEndUrl.message) : undefined}\n />\n )}\n />\n\n (\n {\n onChange(item.key)\n ValidFormTokenIntegration();\n }}\n options={versions}\n errorMessage={errors.IdVersion ? translate('REQUIRED_VERSION') : undefined}\n />\n )}\n />\n\n \n\n \n\n \n\n \n\n {dataRecaptcha.SiteKey && (\n {}}\n />\n )}\n\n \n
\n \n {hasAction === true ? (\n
\n
\n
\n ) : null\n }\n
\n );\n}\n\n\n\n\n","import * as React from \"react\";\nimport \"./pageError.css\";\nimport useTranslate from \"../../hooks/useTranslate\";\n\n\n\nfunction PageError() {\n\n const translate = useTranslate();\n\n return (\n
\n
\n \"\"\n
\n
\n \n

{translate(\"LINK_EXPIRED\")}

\n
\n
\n );\n}\n\nexport { PageError }","import * as React from \"react\";\nimport './Container.css';\nimport { URL_API } from \"../../utils/Constanst\";\nimport { PageError } from \"./../PageError\"\n\nexport default function Container() {\n const uri = window.location.pathname;\n const [uriDecode, setUriDecode] = React.useState('');\n const [expired, setExpired] = React.useState(false);\n\n\n const getFullUrl = (id) => {\n return fetch(`${URL_API}/api/Url/GetFullUrl?id=${id}`)\n .then((response) => response.json());\n };\n\n const validateUriDecode = (urlEncode) => {\n let NewUri = decodeURIComponent(urlEncode);\n if (NewUri !== uriDecode) {\n setUriDecode(NewUri);\n }\n }\n\n const getUrlToEmbed = () => {\n\n if (uri.indexOf(\"redirect/\") !== -1) {\n\n let urlEncode = uri.substring(uri.indexOf(\"redirect/\") + 9);\n validateUriDecode(urlEncode);\n }\n else if(uri.indexOf(\"u/\") !== -1) {\n\n let arrayUrl = uri.split(\"/\");\n let id = arrayUrl[arrayUrl.length - 1];\n\n if (id !== null && id !== undefined) {\n getFullUrl(id).then(data => {\n if (!!data?.ObjectResult?.Url) {\n validateUriDecode(data.ObjectResult.Url);\n }\n else {\n setExpired(true);\n }\n });\n }\n }\n }\n\n getUrlToEmbed();\n\n return (\n
\n \n
\n \n
\n
\n ); \n}\n","import { useState, useEffect } from \"react\";\n\nexport default function useFetch(url, options) {\n const [loading, setLoading] = useState(true);\n const [result, setResult] = useState(null);\n const [error, setError] = useState(null);\n\n useEffect(() => {\n (async () => {\n try {\n const res = await fetch(url, options);\n const json = await res.json();\n setResult(json);\n setLoading(false);\n } catch (err) {\n setError(err);\n setLoading(false);\n console.log(err);\n }\n })();\n }, [options, url]);\n\n return { loading, result, error };\n}\n","import { Modal } from '@material-ui/core';\n\nimport './Modalcontainer.css';\n\nexport default function Modalcontainer(props) {\n const { isOpenModal, closedModal, url, location } = props;\n let parsedForEducation = JSON.parse(localStorage.getItem('forEducation'));\n const urlFinal = `${url.trim()}&teams=true&lang=${location}`;\n return (\n \n
\n
\n
\n \n ×\n \n \n {parsedForEducation === '1' ? 'Aranda for Education' : 'Aranda Virtual Agent'}\n \n
\n\n
\n \n
\n
\n
\n \n );\n}\n","import { useState, useEffect } from 'react';\nimport { Spinner } from '@fluentui/react/lib/Spinner';\nimport { useParams } from 'react-router-dom';\nimport { URL_API } from '../../utils/Constanst';\nimport useFetch from '../../hooks/useFetch';\nimport parse from 'html-react-parser';\nimport moment from 'moment';\nimport './Notify.css';\nimport useTeams from '../../hooks/useTeams';\nimport { KeyboardReturnRounded, Translate } from '@material-ui/icons';\nimport ModalContainer from '../Modalcontainer/Modalcontainer';\nimport useTranslate from '../../hooks/useTranslate';\n\nexport default function Notify(props) {\n const { context } = props;\n const translate = useTranslate();\n\n const email = context?.loginHint\n ? context.loginHint\n : context?.userPrincipalName\n ? context.userPrincipalName\n : '';\n\n if (email) {\n return ;\n }\n return ;\n}\n\nfunction RederNotNotify(props) {\n const { translate } = props;\n const originUrl = window.location.origin;\n return (\n \n
\n
\n \n
{translate('NOT_NOTIFICATIOS')}
\n
\n
\n \n );\n}\n\nfunction RenderNotify(props) {\n const { email, translate, location } = props;\n const result = useFetch(`${URL_API}/api/Teams/GetHistoryPush/?email=${email}`);\n\n if (\n (!result.loading && result.error) ||\n (result.result && result.result.DataError) ||\n (result.result && result.result.ObjectResult && result.result.ObjectResult.length <= 0)\n ) {\n return ;\n }\n\n if (result.loading || !result.result) {\n return ;\n }\n const { ObjectResult } = result.result;\n\n return (\n
\n \n \n {ObjectResult.map((item, index) => (\n \n ))}\n \n
\n
\n );\n}\n\nfunction NotifyItem(props) {\n const { data, date, translate, location } = props;\n const { message, notify } = JSON.parse(data);\n\n const [isOpenModal, setIsOpenModal] = useState(false);\n\n const openModal = () => {\n setIsOpenModal(true);\n };\n\n const closeModal = () => {\n setIsOpenModal(false);\n };\n\n if (notify === 0) {\n return (\n \n {translate('NOTIFICATION')}\n {parse(message)}\n \n \n {moment(new Date(Date.parse(date))).format('DD/MM/YYYY hh:mm:ss a')}\n \n \n \n );\n }\n\n if (notify === 1) {\n return (\n \n {translate('VOTING_PROCESS')}\n \n {translate('VIEW_PROCESS')}{' '}\n \n {translate('CLICK_HERE')}\n \n .\n \n \n \n {moment(new Date(Date.parse(date))).format('DD/MM/YYYY hh:mm:ss a')}\n \n \n );\n }\n if (notify === 2) {\n return (\n \n {translate('SURVEY')}\n \n {translate('VIEW_SERVEY')}{' '}\n \n {translate('CLICK_HERE')}\n \n .\n \n \n \n {moment(new Date(Date.parse(date))).format('DD/MM/YYYY hh:mm:ss a')}\n \n \n );\n }\n\n return null;\n}\n","import useTeams from '../../hooks/useTeams';\nimport useFetch from '../../hooks/useFetch';\nimport { Spinner } from '@fluentui/react/lib/Spinner';\nimport { URL_API } from '../../utils/Constanst';\nimport useTranslate from '../../hooks/useTranslate';\nimport useWindowDimensions from '../../hooks/useWindowDimensions';\n\nimport './Boards.css';\n\nexport default function Boards(props) {\n const { height, width } = useWindowDimensions();\n const { context } = props;\n\n const email = context?.loginHint\n ? context.loginHint\n : context?.userPrincipalName\n ? context.userPrincipalName\n : '';\n\n if (width < 768 && height < 1024) {\n return ;\n } else {\n if (email) {\n return ;\n }\n return ;\n }\n}\n\nfunction GetInformationBoards(props) {\n const { email } = props;\n const result = useFetch(`${URL_API}/api/Teams/GetUrlBoard/?email=${email}`);\n\n if (result.loading || !result.result) {\n return ;\n }\n\n const {\n result: { DataError },\n } = result;\n\n if (DataError) {\n return ;\n }\n\n const {\n result: {\n ObjectResult: { HasPermissions, Url },\n },\n } = result;\n\n if (!HasPermissions) {\n return ;\n }\n\n return ;\n}\n\nfunction RenderUrl(props) {\n const { url } = props;\n return ;\n}\n\nfunction RenderBoards(props) {\n const { value } = props;\n const translate = useTranslate();\n const originUrl = window.location.origin;\n return (\n
\n
\n \n
{translate(value)}
\n
\n
\n );\n}\n\nfunction NoSupport() {\n const translate = useTranslate();\n const originUrl = window.location.origin;\n return (\n
\n
\n \n
{translate('REQUIRED_RESOLUTION')}
\n
\n
\n );\n}\n","import { useState, useEffect } from 'react';\n\nexport default function useWindowDimensions() {\n const hasWindow = typeof window !== 'undefined';\n\n function getWindowDimensions() {\n const width = hasWindow ? window.innerWidth : null;\n const height = hasWindow ? window.innerHeight : null;\n return {\n width,\n height,\n };\n }\n\n const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());\n\n useEffect(() => {\n if (hasWindow) {\n function handleResize() {\n setWindowDimensions(getWindowDimensions());\n }\n\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }\n }, [hasWindow]);\n\n return windowDimensions;\n}\n","import { Modal } from '@material-ui/core';\nimport './ModalLogs.css';\n\nexport default function ModalLogs(props) {\n const { isOpenModal, closedModal, description, identify, translate } = props;\n return (\n \n
\n
\n
\n
\n \n

{translate('DETAILS')}

\n
\n
\n \n {translate('IDENTIFIER')}:\n

{identify}

\n
\n
\n \n {translate('DESCRIPTION')}:\n

{description}

\n
\n
\n
\n
\n
\n \n );\n}\n","import { useState } from 'react';\nimport { useParams } from 'react-router-dom';\nimport useFetch from '../../hooks/useFetch';\nimport { URL_API } from '../../utils/Constanst';\nimport { Spinner } from '@fluentui/react/lib/Spinner';\nimport {\n Grid,\n GridColumn as Column,\n GridColumnMenuCheckboxFilter,\n} from '@progress/kendo-react-grid';\nimport useTranslate from '../../hooks/useTranslate';\nimport { process } from '@progress/kendo-data-query';\nimport ModalLogs from '../ModalLogs/ModalLogs';\nimport moment from 'moment';\n\nimport './Logs.css';\n\nexport default function Logs() {\n const { email } = useParams();\n const result = useFetch(`${URL_API}/api/Teams/GetLogs/?domain=${email}`);\n const translate = useTranslate();\n\n if (result.loading || !result.result) {\n return ;\n }\n return ;\n}\n\nconst ColumnMenuCheckboxFilter = (props) => {\n return (\n \n );\n};\n\nconst createDataState = (dataState, data) => {\n return {\n result: process(data.slice(0), dataState),\n dataState: dataState,\n };\n};\n\nconst pageable = {\n buttonCount: 5,\n info: false,\n type: 'numeric',\n pageSizes: false,\n previousNext: true,\n};\n\nfunction RenderLogs(props) {\n const { data, translate } = props;\n\n const initialState = createDataState(\n {\n skip: 0,\n take: 50,\n },\n data\n );\n\n const [result, setResult] = useState(initialState.result);\n const [dataState, setDataState] = useState(initialState.dataState);\n\n const dataStateChange = (event) => {\n let update = createDataState(event.dataState, data);\n setResult(update.result);\n setDataState(update.dataState);\n };\n\n return (\n
\n \n
\n \n
\n
\n
\n \n }\n />\n \n }\n sortable={false}\n columnMenu={(props) => (\n null}\n />\n )}\n />\n \n
\n
\n );\n}\n\nfunction CellEvent(props) {\n const { dataItem, translate } = props;\n\n const [isOpenModal, setIsOpenModal] = useState(false);\n\n const openModal = () => {\n setIsOpenModal(true);\n };\n\n const closeModal = () => {\n setIsOpenModal(false);\n };\n\n if (dataItem.Event.Id === 5 || dataItem.Event.Id === 6) {\n return (\n \n \n {dataItem.Event.Name}\n \n \n \n );\n }\n return {dataItem.Event.Name};\n}\n\nfunction CellDate(props) {\n const { dataItem } = props;\n return {moment(new Date(Date.parse(dataItem.Date))).format('DD/MM/YYYY hh:mm:ss a')};\n}\n","import { useParams } from 'react-router-dom';\nimport useFetch from '../../hooks/useFetch';\nimport { Spinner } from '@fluentui/react/lib/Spinner';\nimport { URL_API } from '../../utils/Constanst';\nimport parse from 'html-react-parser';\n\nimport './News.css';\n\nexport default function News() {\n const { id, version, email } = useParams();\n\n const result = useFetch(`${URL_API}/api/Teams/GetNew?id=${id}`);\n\n if (result.loading) {\n return ;\n }\n\n const {\n ObjectResult: { Title, Search },\n } = result.result;\n return (\n
\n
\n
\n {Title} \n
\n
\n
{parse(Search)}
\n
\n );\n}\n","import en from '../Localization/en';\nimport es from '../Localization/es';\nimport pt from '../Localization/pt';\nexport default {\n 'en': {\n ...en,\n },\n 'es': {\n ...es,\n },\n 'pt': {\n ...pt,\n },\n};\n","export default {\n 'ATTENTION_MESSAGE': 'Attention message',\n 'ACCOUNT_SETTINGS': 'Account Settings',\n 'ACTIVE': 'ACTIVE',\n 'ACTIVATE': 'Activate',\n 'ATTEND_REQUEST': 'I will attend to your request in a few moments',\n\n 'BOT_NAME': 'Bot Name',\n 'BOT_APPEARENCE': 'Bot Appearance',\n 'BACK_URL': 'BackEnd URL',\n\n 'CANNOT_DELETED': 'An active configuration cannot be deleted.',\n 'CANCEL': 'Cancel',\n 'CHANGE': 'Change',\n 'CREATE': 'Create',\n 'CREATE_CASE': 'Create case',\n 'CREATE_CASE_BY_AC': 'Enable case creation using Adaptive Card',\n 'CLICK_HERE': 'click here',\n 'CONNECTION': 'Connection to Aranda SERVICE DESK',\n 'CONNECTIONS_CONFIGURED': 'Connections configured for the domain',\n 'CONNECT_WE_NEED':\n 'To connect we need to configure the connection with your tenant where the users application is installed.',\n 'CONNECT': 'Connection',\n 'CONFIGURATION_ADD': 'Configuration added correctly.',\n 'CONFIGURATION_UPDATE': 'Configuration correctly updated.',\n 'CONFIGURATION_DELETE': 'Configuration deleted correctly.',\n\n 'DATE': 'Date',\n 'DOMAIN_CONFIGURATION': 'The domain already has a configuration.',\n 'DEFAULT_SUBTITLE': 'Image in png format, transparent, size 120px - 120px.',\n 'DEFAULT_BOT_IMAGES': 'Use the default bot images.',\n 'DETAILS': 'Details',\n 'DESCRIPTION': 'Description',\n 'DELETE': 'Delete',\n\n 'EDIT_CONFIGURATION': 'Edit Configuration',\n 'EDIT': 'Edit',\n 'EDIT_IMAGE': 'Edit Image',\n 'EMAIL_CORPORATE': 'Email corporate',\n 'ENTER': 'Enter',\n 'ERROR_BACK_URL': 'The BackEnd Url entered does not belong to an aranda service.',\n 'ERROR_CREATING_CONFIG': 'Error when creating the configuration',\n 'ERROR_USER': 'Bot user or password is incorrect',\n 'ERROR_USER_PERMISSIONS':\n 'The user does not have the required permissions, please contact Aranda support.',\n 'ERROR_UPDATING_CONFIG': 'Error updating configuration',\n 'EXIT': 'Exit',\n 'EVENT_SUMMARY': 'Summary of events',\n 'EVENT': 'Event',\n\n 'FEMALE': 'Female',\n 'FRONT_URL': 'FrontEnd URL',\n\n 'GOODBAY_MESSAGES': 'Goodbye message',\n\n 'HELLO': \"Hi I'm Albi ...\",\n\n 'IDENTIFIER': 'Identifier',\n 'INVALID_URL': 'Invalid URL',\n 'IMAGE_CONFIGURATION': 'Image configuration',\n 'IMAGE_UPDATE': 'Image \"{0}\" correctly updated',\n 'IMAGES_UPDATE': 'Images updated correctly',\n 'IMAGE_URL': 'Image URL',\n 'IMAGE_NOT_UPLOADED':\n 'The image could not be uploaded, please try again or check the URL and its content.',\n 'IMAGE_ERROR': 'The image must have a size less than or equal to 120px - 120px.',\n 'INACTIVE': 'INACTIVE',\n\n 'LEAST_ONE_CONFIGURATION': 'There must be at least one configuration.',\n 'LOGIN_WITH': 'Log in with your username and password',\n 'LIST_CONNECTIONS': 'List of connections',\n\n 'MALE': 'Male',\n 'MESSAGE_CONFIGURATION': 'Message configuration',\n 'MESSAGE_UPDATE': 'Personalized messages updated correctly',\n 'MESSAGE_UPDATE_MESSAGE': \"Message settings updated successfully\",\n 'MESSAGE_EVENT': 'See the activity of events that have occurred in the bot.',\n\n 'NAME_CONFIGURATION': 'Configuration name',\n 'NEW_CONFIGURATION': 'New Configuration',\n 'NEW': 'New',\n 'NEWS': 'News',\n 'NEGATIVE_REACTIONS': 'Negative reactions',\n 'NOT_UPDATE_IMAGE': 'Not possible to update the image',\n 'NOT_UPDATE_IMAGE_SELECT': 'It was not possible to update the images to the selected appearance',\n 'NOT_UPDATE_MESSAGE': 'Unable to update personalized messages',\n 'NOT_NAME': 'No Name - ',\n 'NOT_NOTIFICATIOS': 'There are no notifications at this time.',\n 'NOTIFICATION': 'Notification',\n\n 'PASSWORD': 'Password',\n 'POSITIVE_FEEDBACK': 'Positive reactions',\n 'PLEASURE_REQUEST': 'Fue un placer atender tu solicitud',\n\n 'REQUIRED_VERSION': 'You must select a version',\n 'REQUIRED_BACK_URL': 'BackEnd url is required',\n 'REQUIRED_HTTPS': 'The url must have a security certificate (https).',\n 'REQUIRED_EMAIL': 'E-mail is required',\n 'REQUIRED_USER': 'User is required',\n 'REQUIRED_PASSWORD': 'Password is required',\n 'REQUIRED_URL': 'Required URL',\n 'REQUIRED_FRONT_URL': 'FrontEnd url is required',\n 'REQUIRED_CONFIGURATION_NAME': 'The configuration name is required',\n 'REQUIRED_VERSION_9':\n 'This functionality requires ASMS version 9 to be installed, more information contact the administrator.',\n 'REQUIRED_SPECIALIST': 'This functionality is exclusive to specialist users.',\n 'REQUIRED_BOT_NAME': 'Bot name is required',\n 'REQUIRED_ATTENTION_MESSAGE': 'Attention message is required',\n 'REQUIRED_GOODBAY_MESSAGES': 'The goodbye message is required',\n 'REQUIRED_RESOLUTION': 'This functionality requires a resolution higher than 1024x768.',\n 'REQUIRED_SETTING2' : 'The percentage of effectiveness is required',\n 'REQUIRED_INTEGRATION_TOKEN' : 'Integration token is required',\n\n\n\n 'SAVE': 'Save',\n 'SELECT_VERSION': 'Select a version',\n 'SELECT_CONNECTION_MESSAGE':\n 'Select the connection for which you are going to perform the image exchange.',\n 'SELECT_CONNECTION_MESSAGES': 'Select the connection for which you are going to change messages.',\n 'SELECT_CONNECTION_SETTINGS':\n 'Select the connection you want to customize.',\n 'SELECT_CONNECTION': 'Select connection',\n 'SECTION_MESSAGE_IMAGE':\n 'In this section you can customize the images that appear in the bot actions.',\n 'SECTION_MESSAGE_MESSAGE':\n 'In this section you can customize the messages used by the bot to interact with the user.',\n SECTION_SETTING_MESSAGE:\n \"In this section you can customize the behavior of the bot.\",\n 'STATE': 'State',\n 'SURVEY': 'Survey',\n\n 'USER': 'User',\n 'UPDATE': 'Update',\n\n 'VALID_EMAIL': 'You must enter a valid email address',\n 'VERSION': 'Version',\n 'VIEW_SERVEY': 'To view the survey',\n 'VIEW_PROCESS': 'To view the process',\n 'VOTING_PROCESS': 'Voting process',\n\n //kendo\n 'grid.filterSubmitButton': 'Filter',\n 'grid.filterClearButton': 'Clear',\n 'grid.filterTitle': 'Filter',\n 'grid.filterCheckAll': 'Check All',\n 'grid.filterSelectedItems': 'selected items',\n\n SELECT_LANGUAGE : \"Select a language\",\n SELECT_LANGUAGE_NOTE : \"Customize messages according to the language you select\",\n LANGUAGE_ES: \"Spanish\",\n LANGUAGE_EN: \"English\",\n LANGUAGE_PT: \"Portuguese\",\n ATTENTION_MESSAGE_NOTE: \"This is the second time you interact with the bot\",\n GOODBAY_MESSAGES_NOTE: \"When the bot finished the help\",\n BOT_PERSONALIZATION: \"Bot customization\",\n SETTING_UPDATE_MESSAGE: \"Bot customization updated successfully\",\n\n\n SETTING1: \"Enable automatic categorization\",\n SETTING2: \"Effectiveness percentage\",\n SETTING3: \"Extraction of additional fields\",\n SETTING4: \"Prompt user for additional missing fields\",\n SETTING5: \"Extraction of list-type fields\",\n SETTING6: \"Enable streaming in the response of the smart search in the knowledge base\",\n\n RANGE_ERROR : \"The entered value must be between {0} and {1}\",\n\n NAME_TASK1 : \"Automatic categorization\",\n NAME_TASK3 : \"Extracting values ​​from fields\",\n NAME_TASK5 : \"Extraction of values from list-type fields\",\n\n ERROR_VALIDATE_CONFIGURATION_TASK : \"The {0} option has not yet been configured in the ASMS management console. To configure it, go to: General Settings -> AI Settings -> AI Connection Points\",\n ERROR_VALIDATE_TEST_TASK : \"The action has been configured, but is not working correctly. Please review and validate the action parameters in the ASMS management console. Go to: General Settings -> AI Settings -> AI Actions {0}\",\n\n PLACEHOLDER_NAME : \"Albi\",\n INTEGRATION_TOKEN : \"Integration token\",\n INVALID_TOKEN : \"The token is invalid\",\n ERROR_RECAPTCHA : \"Recaptcha is active in ASMS, check settings\",\n INSUFFICIENT_PERMISSIONS : \"The token does not have the necessary permissions to perform this action\",\n ERROR_LOGIN : 'Error when logging in, for more information contact the administrator',\n ERROR_CHANGE_CONFIGURATION : 'Error selecting connection, please check the settings in the account settings section',\n ERROR_RECAPTCHA_REQUIRED : 'To continue you must verify the reCaptcha',\n PLACEHOLDER_EMAIL : \"Client's corporate email (user@domain)\",\n NOTE_ATTENTION_MESSAGE : 'This is the second time you have interacted with the bot',\n NOTE_GOODBAY_MESSAGES : 'When the bot finishes the help',\n LINK_EXPIRED : \"The link has expired\"\n \n};\n","export default {\n 'ATTENTION_MESSAGE': 'Mensaje de atención',\n 'ACCOUNT_SETTINGS': 'Configuración de cuenta',\n 'ACTIVE': 'ACTIVO',\n 'ACTIVATE': 'Activa',\n 'ATTEND_REQUEST': 'Voy a atender tu solicitud en unos momentos',\n\n 'BOT_NAME': 'Nombre del Bot',\n 'BOT_APPEARENCE': 'Apariencia del Bot',\n 'BACK_URL': 'URL del BackEnd',\n\n 'CANNOT_DELETED': 'No se puede eliminar una configuración activa.',\n 'CANCEL': 'Cancelar',\n 'CHANGE': 'Cambiar',\n 'CREATE': 'Crear',\n 'CREATE_CASE': 'Crear Caso',\n 'CREATE_CASE_BY_AC': 'Habilitar creación de caso por Adaptive Card',\n 'CLICK_HERE': 'clic aquí',\n 'CONNECTION': 'Conexión a Aranda SERVICE DESK',\n 'CONNECTIONS_CONFIGURED': 'Conexiones configuradas para el dominio',\n 'CONNECT_WE_NEED':\n 'Para conectarnos necesitamos configurar la conexión con su tenant donde está instalada la aplicación del usuario.',\n 'CONNECT': 'Conexión',\n 'CONFIGURATION_ADD': 'Configuración agregada correctamente.',\n 'CONFIGURATION_UPDATE': 'Configuración actualizada correctamente.',\n 'CONFIGURATION_DELETE': 'Configuración eliminada correctamente.',\n\n 'DATE': 'Fecha',\n 'DOMAIN_CONFIGURATION': 'El dominio ya cuenta con una configuración.',\n 'DEFAULT_SUBTITLE': 'Imagen en formato png, transparente, tamaño 120px - 120px.',\n 'DEFAULT_BOT_IMAGES': 'Utilizar las imágenes predeterminadas del bot.',\n 'DETAILS': 'Detalles',\n 'DESCRIPTION': 'Descripción',\n 'DELETE': 'Eliminar',\n\n 'EDIT_CONFIGURATION': 'Editar Configuración',\n 'EDIT': 'Editar',\n 'EDIT_IMAGE': 'Editar Imagen',\n 'ENTER': 'Ingresar',\n 'EMAIL_CORPORATE': 'Email Corporativo',\n 'ERROR_BACK_URL': 'La Url de BackEnd ingresada no pertenece a un servicio de aranda',\n 'ERROR_CREATING_CONFIG': 'Error al crear la configuración',\n 'ERROR_USER': 'Usuario o contraseña del bot es incorrecto',\n 'ERROR_USER_PERMISSIONS':\n 'El usuario no tiene los permisos requeridos, por favor comuniquese con soporte Aranda.',\n 'ERROR_UPDATING_CONFIG': 'Error al actualizar la configuración',\n 'EXIT': 'Salir',\n 'EVENT_SUMMARY': 'Resumen de eventos',\n 'EVENT': 'Evento',\n\n 'FEMALE': 'Femenino',\n 'FRONT_URL': 'URL del FrontEnd',\n\n 'GOODBAY_MESSAGES': 'Mensaje de despedida',\n\n 'HELLO': 'Hola soy Albi ...',\n\n 'IDENTIFIER': 'Identificador',\n 'IMAGE_CONFIGURATION': 'Configuración de imágenes',\n 'IMAGE_UPDATE': 'Imagen \"{0}\" actualizada correctamente',\n 'IMAGES_UPDATE': 'Imágenes actualizadas correctamente',\n 'IMAGE_URL': 'URL de la imagen',\n 'IMAGE_NOT_UPLOADED':\n 'No fue posible cargar la imagen, intente nuevamente o verifique la URL y su contenido.',\n 'IMAGE_ERROR': 'La imagen debe tener un tamaño menor o igual a 120px - 120px.',\n 'INVALID_URL': 'URL inválida',\n 'INACTIVE': 'INACTIVO',\n\n 'LEAST_ONE_CONFIGURATION': 'Debe existir al menos una configuración.',\n 'LOGIN_WITH': 'Ingrese con su usuario y contraseña.',\n 'LIST_CONNECTIONS': 'Lista de conexiones',\n\n 'MALE': 'Masculino',\n 'MESSAGE_CONFIGURATION': 'Configuración de mensajes',\n 'MESSAGE_UPDATE': 'Mensajes personalizados actualizados correctamente',\n 'MESSAGE_UPDATE_MESSAGE': \"Configuración de mensajes actualizada correctamente\",\n 'MESSAGE_EVENT': 'Consulte la actividad de eventos que han sucedido en el bot.',\n\n 'NAME_CONFIGURATION': 'Nombre de la configuración',\n 'NEW_CONFIGURATION': 'Nueva Configuración',\n 'NEW': 'Nueva',\n 'NEWS': 'Noticias',\n 'NEGATIVE_REACTIONS': 'Reacciones negativas',\n 'NOT_UPDATE_IMAGE': 'No fue posible actualizar la imagen',\n 'NOT_UPDATE_IMAGE_SELECT': 'No fue posible actualizar las imágenes a la apariencia seleccionado',\n 'NOT_UPDATE_MESSAGE': 'No fue posible actualizar los mensajes personalizados',\n 'NOT_NAME': 'Sin Nombre - ',\n 'NOT_NOTIFICATIOS': 'No hay notificaciones en este momento.',\n 'NOTIFICATION': 'Notificación',\n\n 'PASSWORD': 'Contraseña',\n 'POSITIVE_FEEDBACK': 'Reacciones positivas',\n 'PLEASURE_REQUEST': 'Fue un placer atender tu solicitud',\n\n 'SAVE': 'Guardar',\n 'SELECT_VERSION': 'Seleccione una versión',\n 'SELECT_CONNECTION_MESSAGE':\n 'Seleccione la conexión para la cual va a realizar el cambio de imágenes.',\n 'SELECT_CONNECTION_MESSAGES':\n 'Seleccione la conexión para la cual va a realizar el cambio de mensajes.',\n 'SELECT_CONNECTION_SETTINGS':\n 'Seleccione la conexión que va a personalizar.',\n 'SELECT_CONNECTION': 'Seleccione conexión',\n 'SECTION_MESSAGE_IMAGE':\n 'En esta sección puede personalizar las imágenes que aparecen en las acciones del bot.',\n 'SECTION_MESSAGE_MESSAGE':\n 'En esta sección puede personalizar los mensajes que utiliza el bot para interactuar con el usuario.',\n SECTION_SETTING_MESSAGE:\n \"En esta sección puede personalizar el comportamiento del bot.\",\n 'STATE': 'Estado',\n 'SURVEY': 'Encuesta',\n\n 'REQUIRED_VERSION': 'Debe seleccionar una versión',\n 'REQUIRED_BACK_URL': 'La url de BackEnd es requerida',\n 'REQUIRED_HTTPS': 'La url debe tener un certificado de seguridad (https)',\n 'REQUIRED_EMAIL': 'El correo electrónico es requerido',\n 'REQUIRED_USER': 'El nombre de usuario es requerido',\n 'REQUIRED_PASSWORD': 'La contraseña es requerida',\n 'REQUIRED_URL': 'URL Requerida',\n 'REQUIRED_FRONT_URL': 'La url de FrontEnd es requerida',\n 'REQUIRED_CONFIGURATION_NAME': 'El nombre de la configuración es requerido',\n 'REQUIRED_VERSION_9':\n 'Esta funcionalidad requiere tener instalada la versión 9 de ASMS, para más información contacta al administrador.',\n 'REQUIRED_SPECIALIST': 'Esta funcionalidad es exclusiva de usuarios especialistas.',\n 'REQUIRED_BOT_NAME': 'El nombre del bot es requerido',\n 'REQUIRED_ATTENTION_MESSAGE': 'El mensaje de atención es requerido',\n 'REQUIRED_GOODBAY_MESSAGES': 'El mensaje de despedida es requerido',\n 'REQUIRED_RESOLUTION': 'Esta funcionalidad requiere tener una resolución mayor a 1024x768.',\n 'REQUIRED_SETTING2' : 'El porcentaje de efectividad es requerido',\n 'REQUIRED_INTEGRATION_TOKEN' : 'El token de integración es requerido',\n\n 'USER': 'Usuario',\n 'UPDATE': 'Actualizar',\n\n 'VALID_EMAIL': 'Debe ingresar un correo electrónico válido',\n 'VERSION': 'Versión',\n 'VIEW_SERVEY': 'Para ver la encuesta',\n 'VIEW_PROCESS': 'Para ver el proceso',\n 'VOTING_PROCESS': 'Proceso de votación',\n\n //Kendo\n 'grid.filterSubmitButton': 'Filtro',\n 'grid.filterClearButton': 'Borrar',\n 'grid.filterTitle': 'Filtro',\n 'grid.filterCheckAll': 'Seleccionar todos',\n 'grid.filterSelectedItems': 'elementos seleccionados',\n\n SELECT_LANGUAGE : \"Seleccionar un idioma\",\n SELECT_LANGUAGE_NOTE : \"Personaliza los mensajes de acuerdo al idioma que seleccione\",\n LANGUAGE_ES: \"Español\",\n LANGUAGE_EN: \"Inglés\",\n LANGUAGE_PT: \"Portugués\",\n ATTENTION_MESSAGE_NOTE: \"Es la segunda vez que interactúa con el bot\",\n GOODBAY_MESSAGES_NOTE: \"Cuando el bot término la ayuda\",\n BOT_PERSONALIZATION: \"Personalización del bot\",\n SETTING_UPDATE_MESSAGE: \"Personalización del bot actualizada correctamente\",\n\n\n SETTING1: \"Habilitar categorización automática\",\n SETTING2: \"Porcentaje de efectividad\",\n SETTING3: \"Extracción de campos adicionales\",\n SETTING4: \"Solicitar al usuario campos adicionales faltantes\",\n SETTING5: \"Extracción de campos tipo lista\",\n SETTING6: \"Habilitar streaming en respuesta de la búsqueda inteligente en la base de conocimiento\",\n\n RANGE_ERROR : \"El valor digitado debe estar entre {0} y {1}\",\n\n NAME_TASK1 : \"Categorización automática\",\n NAME_TASK3 : \"Extracción de valores de campos\",\n NAME_TASK5 : \"Extracción de valores de campos tipo lista\",\n\n ERROR_VALIDATE_CONFIGURATION_TASK : \"La opción {0} aún no ha sido configurada en la consola de administración ASMS. Para configurarla, dirígete a: Configuración General -> Configuración AI -> AI Puntos de Conexión\",\n ERROR_VALIDATE_TEST_TASK : \"La acción ha sido configurada, pero no está funcionando correctamente. Por favor, revise y valide los parámetros de la acción en la consola de administración ASMS. Diríjase a: Configuración general -> Configuración AI -> AI Acciones {0}\",\n\n PLACEHOLDER_NAME : \"Albi\",\n INTEGRATION_TOKEN : \"Token de integración\",\n INVALID_TOKEN : \"El token es inválido\",\n ERROR_RECAPTCHA : \"El recaptcha está activo en ASMS, verifique la configuración\",\n INSUFFICIENT_PERMISSIONS : \"El token no tiene los permisos necesarios para realizar esta acción\",\n ERROR_LOGIN : 'Error al realizar el login, para más información contacta al administrador',\n ERROR_CHANGE_CONFIGURATION : 'Error al seleccionar la conexión, por favor revisa la configuración en la sección configuración de cuenta',\n ERROR_RECAPTCHA_REQUIRED : 'Para continuar debe verificar el reCaptcha',\n PLACEHOLDER_EMAIL : \"Correo corporativo del cliente (usuario@dominio)\",\n NOTE_ATTENTION_MESSAGE : 'Es la segunda vez que interactua con el bot',\n NOTE_GOODBAY_MESSAGES : 'Cuando el bot termina la ayuda',\n LINK_EXPIRED : \"El enlace ha expirado\"\n\n};\n","export default {\n 'ATTENTION_MESSAGE': 'Mensagem de atenção',\n 'ACCOUNT_SETTINGS': 'Configurações da conta',\n 'ACTIVE': 'ATIVO',\n 'ACTIVATE': 'Ativar',\n 'ATTEND_REQUEST': 'Responderei ao seu pedido dentro de alguns instantes',\n\n 'BOT_NAME': 'Nome da Bot',\n 'BOT_APPEARENCE': 'Aspecto da Bot',\n 'BACK_URL': 'URL BackEnd',\n\n 'CANNOT_DELETED': 'Uma configuração ativa não pode ser excluída.',\n 'CANCEL': 'Cancelar',\n 'CHANGE': 'Mudança',\n 'CREATE': 'Criar',\n 'CREATE_CASE': 'Criar caso',\n 'CREATE_CASE_BY_AC': 'Habilitar a criação de caso por Adaptive Card',\n 'CLICK_HERE': 'clique aqui',\n 'CONNECTION': 'Conexão com Aranda SERVICE DESK',\n 'CONNECTIONS_CONFIGURED': 'Conexões configuradas para o domínio',\n 'CONNECT_WE_NEED':\n 'Para conectar, precisamos configurar a conexão com seu inquilino onde a aplicação do usuário está instalada.',\n 'CONNECT': 'Conexão',\n 'CONFIGURATION_ADD': 'Configuração adicionada com sucesso.',\n 'CONFIGURATION_UPDATE': 'Configuração corretamente atualizada.',\n 'CONFIGURATION_DELETE': 'Configuração apagada com sucesso.',\n\n 'DATE': 'Data',\n 'DOMAIN_CONFIGURATION': 'O domínio já possui uma configuração.',\n 'DEFAULT_SUBTITLE': 'Imagem em formato png, transparente, tamanho 120px - 120px.',\n 'DEFAULT_BOT_IMAGES': 'Use as imagens padrão do bot.',\n 'DETAILS': 'Detalhes',\n 'DESCRIPTION': 'Descrição',\n 'DELETE': 'Excluir',\n\n 'EDIT_CONFIGURATION': 'Editar configuração',\n 'EDIT': 'Editar',\n 'EDIT_IMAGE': 'Editar imagem',\n 'EMAIL_CORPORATE': 'E-mail corporativo',\n 'ENTER': 'Digite',\n 'ERROR_BACK_URL': 'A BackEnd Url entrada não pertence a um serviço aranda.',\n 'ERROR_CREATING_CONFIG': 'Erro ao criar a configuração',\n 'ERROR_USER': 'O nome de usuário ou senha do bot está incorreto',\n 'ERROR_USER_PERMISSIONS':\n 'O usuário não tem as permissões necessárias, favor contatar o suporte da Aranda.',\n 'ERROR_UPDATING_CONFIG': 'Error al actualizar la configuración',\n 'EXIT': 'Saída',\n 'EVENT_SUMMARY': 'Resumo dos eventos',\n 'EVENT': 'Evento',\n\n 'FEMALE': 'Feminino',\n 'FRONT_URL': 'URL FrontEnd',\n\n 'GOODBAY_MESSAGES': 'Mensagem de despedida',\n\n 'HELLO': 'Olá, eu sou Albi ...',\n\n 'IDENTIFIER': 'Identificação',\n 'IMAGE_CONFIGURATION': 'Configuração da imagem',\n 'IMAGE_UPDATE': 'Imagem \"{0}\" atualizada com sucesso',\n 'IMAGES_UPDATE': 'Imagens corretamente atualizadas',\n 'IMAGE_URL': 'URL da imagem',\n 'IMAGE_NOT_UPLOADED':\n 'A imagem não pôde ser carregada, por favor tente novamente ou verifique a URL e seu conteúdo.',\n 'IMAGE_ERROR': 'A imagem deve ser menor ou igual a 120px - 120px em tamanho.',\n 'INVALID_URL': 'URL inválido',\n 'INACTIVE': 'INATIVO',\n\n 'LEAST_ONE_CONFIGURATION': 'Pelo menos uma configuração deve existir.',\n 'LOGIN_WITH': 'Faça o login com seu nome de usuário e senha.',\n 'LIST_CONNECTIONS': 'Lista de conexões',\n\n 'MALE': 'Macho',\n 'MESSAGE_CONFIGURATION': 'Configuração da mensagem',\n 'MESSAGE_UPDATE': 'Mensagens personalizadas atualizadas corretamente',\n 'MESSAGE_UPDATE_MESSAGE': \"Configurações de mensagem atualizadas com sucesso\",\n 'MESSAGE_EVENT': 'Veja a atividade dos eventos que aconteceram no bot.',\n\n 'NAME_CONFIGURATION': 'Nome da configuração',\n 'NEW_CONFIGURATION': 'Nova configuração',\n 'NEW': 'Novo',\n 'NEWS': 'Notícias',\n 'NEGATIVE_REACTIONS': 'Reações negativas',\n 'NOT_UPDATE_IMAGE': 'Não foi possível atualizar a imagem',\n 'NOT_UPDATE_IMAGE_SELECT': 'Não foi possível atualizar as imagens para a aparência selecionada.',\n 'NOT_UPDATE_MESSAGE': 'Incapaz de atualizar mensagens personalizadas',\n 'NOT_NAME': 'Sem nome - ',\n 'NOT_NOTIFICATIOS': 'Neste momento, não há notificações.',\n 'NOTIFICATION': 'Notificação',\n\n 'PASSWORD': 'Senha',\n 'POSITIVE_FEEDBACK': 'Reações positivas',\n 'PLEASURE_REQUEST': 'Foi um prazer atender ao seu pedido',\n\n 'REQUIRED_VERSION': 'Selecione uma versão',\n 'REQUIRED_BACK_URL': 'O BackEnd url é necessário',\n 'REQUIRED_HTTPS': 'O url deve ter um certificado de segurança (https).',\n 'REQUIRED_EMAIL': 'O e-mail é necessário',\n 'REQUIRED_USER': 'O nome de usuário é obrigatório',\n 'REQUIRED_PASSWORD': 'É necessária uma senha',\n 'REQUIRED_URL': 'URL Necessário',\n 'REQUIRED_FRONT_URL': 'O FrontEnd url é necessário',\n 'REQUIRED_CONFIGURATION_NAME': 'O nome da configuração é necessário',\n 'REQUIRED_VERSION_9':\n 'Esta funcionalidade requer que a versão 9 do ASMS seja instalada, mais informações entre em contato com o administrador.',\n 'REQUIRED_SPECIALIST': 'Esta funcionalidade é exclusiva para usuários especializados.',\n 'REQUIRED_BOT_NAME': 'O nome da bot é obrigatório',\n 'REQUIRED_ATTENTION_MESSAGE': 'A mensagem de atenção é obrigatório',\n 'REQUIRED_GOODBAY_MESSAGES': 'A mensagem de despedida é necessária',\n 'REQUIRED_RESOLUTION': 'Esta funcionalidade requer uma resolução superior a 1024x768.',\n 'REQUIRED_SETTING2' : 'A porcentagem de eficácia é necessária',\n 'REQUIRED_INTEGRATION_TOKEN' : 'O token de integração é obrigatório',\n\n\n 'SAVE': 'Salvar',\n 'SELECT_VERSION': 'Selecione uma versão',\n 'SELECT_CONNECTION_MESSAGE':\n 'Selecione a conexão para a qual você vai realizar a troca de imagens.',\n 'SELECT_CONNECTION_MESSAGES': 'Selecione a conexão para a qual você vai fazer a mensagem mudar.',\n 'SELECT_CONNECTION_SETTINGS':\n 'Selecione a conexão que deseja personalizar.',\n 'SELECT_CONNECTION': 'Selecione a conexão',\n 'SECTION_MESSAGE_IMAGE':\n 'Nesta seção você pode personalizar as imagens que aparecem nas ações do bot.',\n 'SECTION_MESSAGE_MESSAGE':\n 'Nesta seção você pode personalizar as mensagens que o bot usa para interagir com o usuário.',\n SECTION_SETTING_MESSAGE:\n \"Nesta seção você pode customizar o comportamento do bot.\",\n 'STATE': 'Estado',\n 'SURVEY': 'Pesquisa',\n\n 'USER': 'Usuário',\n 'UPDATE': 'Atualização',\n\n 'VALID_EMAIL': 'Você deve digitar um endereço de e-mail válido',\n 'VERSION': 'Versão',\n 'VIEW_SERVEY': 'Para ver a pesquisa',\n 'VIEW_PROCESS': 'Para ver o processo',\n 'VOTING_PROCESS': 'Processo de votação',\n\n //Kendo\n 'grid.filterSubmitButton': 'Filtro',\n 'grid.filterClearButton': 'Limpo',\n 'grid.filterTitle': 'Filtro',\n 'grid.filterCheckAll': 'Selecionar tudo',\n 'grid.filterSelectedItems': 'itens selecionados',\n\n SELECT_LANGUAGE : \"Selecione um idioma\",\n SELECT_LANGUAGE_NOTE : \"Personalize as mensagens de acordo com o idioma que você selecionar\",\n LANGUAGE_ES: \"Espanhol\",\n LANGUAGE_EN: \"Inglês\",\n LANGUAGE_PT: \"Português\",\n ATTENTION_MESSAGE_NOTE: \"Esta é a segunda vez que você interage com o bot\",\n GOODBAY_MESSAGES_NOTE: \"Quando o bot terminou a ajuda\",\n BOT_PERSONALIZATION: \"Customização de bot\",\n SETTING_UPDATE_MESSAGE: \"Customização de bot corretamente atualizada\",\n\n\n SETTING1: \"Ativar categorização automática\",\n SETTING2: \"Porcentagem de eficácia\",\n SETTING3: \"Extração de campos adicionais\",\n SETTING4: \"Solicitar ao usuário campos adicionais ausentes\",\n SETTING5: \"Extração de campos do tipo lista\",\n SETTING6: \"Habilitar streaming na resposta da busca inteligente na base de conhecimento\",\n\n RANGE_ERROR : \"O valor inserido deve estar entre {0} e {1}\",\n\n NAME_TASK1 : \"Categorização automática\",\n NAME_TASK3 : \"Extraindo valores de campos\",\n NAME_TASK5 : \"Extração de valores de campos do tipo lista\",\n\n ERROR_VALIDATE_CONFIGURATION_TASK : \"A opção {0} ainda não foi configurada no console de gerenciamento ASMS. Para configurá-lo, vá para: Configurações Gerais -> Configurações AI -> Pontos de Conexão AI\",\n ERROR_VALIDATE_TEST_TASK : \"A ação foi configurada, mas não está funcionando corretamente. Revise e valide os parâmetros de ação no console de gerenciamento ASMS. Vá para: Configurações gerais -> Configurações de IA -> Ações de IA {0}\",\n\n PLACEHOLDER_NAME : \"Albi\",\n INTEGRATION_TOKEN : \"Token de integração\",\n INVALID_TOKEN : \"O token é inválido\",\n ERROR_RECAPTCHA : \"Recaptcha está ativo no ASMS, verifique as configurações\",\n INSUFFICIENT_PERMISSIONS : \"O token não possui as permissões necessárias para realizar esta ação\",\n ERROR_LOGIN : 'Erro ao fazer login, para mais informações entre em contato com o administrador',\n ERROR_CHANGE_CONFIGURATION : 'Erro ao selecionar a conexão. Verifique as configurações na seção de configurações da conta',\n ERROR_RECAPTCHA_REQUIRED : 'Para continuar você deve verificar o reCaptcha',\n PLACEHOLDER_EMAIL : 'E-mail corporativo do cliente (usuário@domínio)',\n NOTE_ATTENTION_MESSAGE : 'Esta é a segunda vez que você interage com o bot',\n NOTE_GOODBAY_MESSAGES : 'Quando o bot termina a ajuda',\n LINK_EXPIRED : \"O link expirou\",\n\n};\n","import { useState } from 'react';\n\nimport {\n LocalizationProvider,\n loadMessages,\n IntlProvider as Int,\n} from '@progress/kendo-react-intl';\n\nimport getLocales from '../utils/localization';\n\nconst getCulture = (lan) => {\n if (!lan) {\n return parseLanguageCode(navigator.language) || 'es';\n }\n return parseLanguageCode(lan) || 'es';\n};\n\nconst IntlProvider = (props) => {\n const { children, lan } = props;\n loadMessages(getLocales.en, 'en');\n loadMessages(getLocales.es, 'es');\n loadMessages(getLocales.pt, 'pt');\n const culture = getCulture(lan);\n\n return (\n \n {children}\n \n );\n};\n\nexport default IntlProvider;\n\nconst parseLanguageCode = (code) => {\n if (code?.indexOf('es') > -1) {\n return 'es';\n }\n if (code?.indexOf('en') > -1) {\n return 'en';\n }\n if (code?.indexOf('pt') > -1) {\n return 'pt';\n }\n};\n","import { BrowserRouter as Router, Switch, Route } from 'react-router-dom';\nimport Login from './components/Login';\nimport Container from './components/Container';\nimport Notify from './components/Notify';\nimport Boards from './components/Boards';\nimport Logs from './components/Logs';\nimport News from './components/News';\nimport Configuration from './components/Configuration';\nimport IntlProvider from './context/withIntl';\nimport useTeams from './hooks/useTeams';\n\nfunction App() {\n const [{ inTeams, context, load }] = useTeams();\n if (load) {\n return null;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { useEffect, useState } from 'react';\nimport { unstable_batchedUpdates as batchedUpdates } from 'react-dom';\nimport * as microsoftTeams from '@microsoft/teams-js';\n\nexport const checkInTeams = () => {\n const microsoftTeamsLib = microsoftTeams || window['microsoftTeams'];\n\n if (!microsoftTeamsLib) {\n return false; // the Microsoft Teams library is for some reason not loaded\n }\n\n if (\n (window.parent === window.self && window.nativeInterface) ||\n window.name === 'embedded-page-container' ||\n window.name === 'extension-tab-frame'\n ) {\n return true;\n }\n\n return false;\n};\n\nexport const getQueryVariable = (variable) => {\n const query = window.location.search.substring(1);\n const vars = query.split('&');\n for (const varPairs of vars) {\n const pair = varPairs.split('=');\n if (decodeURIComponent(pair[0]) === variable) {\n return decodeURIComponent(pair[1]);\n }\n }\n return undefined;\n};\n\n/**\n * Microsoft Teams React hook\n * @param options optional options\n * @returns A tuple with properties and methods\n * properties:\n * - inTeams: boolean = true if inside Microsoft Teams\n * - fullscreen: boolean = true if in full screen mode\n * - theme: Fluent UI Theme\n * - themeString: string - representation of the theme (default, dark or contrast)\n * - context - the Microsoft Teams JS SDK context\n * methods:\n * - setTheme - manually set the theme\n */\nexport default function useTeams() {\n const [inTeams, setInTeams] = useState(false);\n const [context, setContext] = useState({});\n const [load, setLoading] = useState(true);\n\n useEffect(() => {\n (async () => {\n const isInTeams = checkInTeams();\n if (isInTeams) {\n await microsoftTeams.initialize(() => {\n microsoftTeams.getContext((context) => {\n batchedUpdates(() => {\n setInTeams(true);\n setContext(context);\n setLoading(false);\n });\n });\n });\n } else {\n setInTeams(false);\n setLoading(false);\n }\n })();\n }, []);\n\n return [{ inTeams, context, load }];\n}\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","export const getAntiForgeryTokenValue = () => {\n // return document.querySelector(\"input[name='__RequestVerificationToken']\")\n // .value;\n return \"\";\n};\n","//Returns Palette Object\nexport const mainTheme = () => {\n return {\n palette: {\n themePrimary: \"#464976\",\n themeLighterAlt: \"#f7f7fb\",\n themeLighter: \"#e1e1f1\",\n themeLight: \"#c8c9e4\",\n themeTertiary: \"#989ac9\",\n themeSecondary: \"#7173b0\",\n themeDarkAlt: \"#585a95\",\n themeDark: \"#4a4c7e\",\n themeDarker: \"#37385d\",\n neutralLighterAlt: \"#faf9f8\",\n neutralLighter: \"#f3f2f1\",\n neutralLight: \"#edebe9\",\n neutralQuaternaryAlt: \"#e1dfdd\",\n neutralQuaternary: \"#d0d0d0\",\n neutralTertiaryAlt: \"#c8c6c4\",\n neutralTertiary: \"#a19f9d\",\n neutralSecondary: \"#605e5c\",\n neutralPrimaryAlt: \"#3b3a39\",\n neutralPrimary: \"#323130\",\n neutralDark: \"#201f1e\",\n black: \"#000000\",\n white: \"#ffffff\",\n },\n };\n };\n "],"sourceRoot":""}