{"version":3,"sources":["components/Configuration/Configuration.js","components/Configure/Configure.js","components/Application/Application.js","components/Configure/index.js","components/Application/index.js","components/Personalization/Personalization.js","components/Setting/Setting.js","utils/Constanst.js","components/pageError/index.js","components/Container/Container.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","utils/localization.js","Localization/en.js","Localization/es.js","Localization/pt.js","context/withIntl.js","App.js","reportWebVitals.js","index.js","hooks/useTranslate.js","utils/Utils.js","theme/theme.js"],"names":["selectedTheme","mainTheme","initializeIcons","loadTheme","createTheme","AccordionSummary","withStyles","expandIcon","order","MuiAccordionSummary","Configuration","props","useState","expanded","setExpanded","activeConfig","setActiveConfig","configsList","setConfigsList","isProcessing","setIsProcessing","fetchDataLoader","setFetchDataLoader","translate","useTranslate","React","messageBar","setMessageBar","errorMessage","setErrorMessage","hasError","setErrors","handleChange","panel","event","isExpanded","updateConfig","item","allConfigs","JSON","parse","localStorage","getItem","length","dataSelected","filter","x","Id","key","dataSent","_","cloneDeep","Name","BackEndUrl","Version","IdVersion","IsActive","__RequestVerificationToken","getAntiForgeryTokenValue","dataConfiguration","BotUser","IntegrationToken","trim","Buffer","toString","requestOptions","method","body","stringify","headers","console","log","fetch","URL_API","then","response","json","data","DataError","MessageResult","catch","error","finally","err","setTimeout","closeMessageBar","className","onChange","id","fetchData","setFetchData","theme","messageBarType","MessageBarType","success","isMultiline","dismissButtonAriaLabel","onDismiss","baseItem","FrontEndUrl","VersionName","NumberId","Project","User","Password","IntegrationTokenEncryp","baseAppConfiguration","TemplateCreateCase","TemplateShowCase","AccessToken","VerifyToken","TemplateApproveCase","TemplateNotification","Configure","tooltipId","useId","hasAction","setHasAction","versions","setVersions","version","setVersion","details","setDetails","useBoolean","hideDialog","toggleHideDialog","toggle","isEditMode","setEditMode","email","setEmail","selectedItem","setSelectedItem","logs","setLogs","openDebug","setOpenDebug","hasUserError","setHasUserError","userError","setUserError","initialDataParsed","setInitialDataParsed","seeTokenIntegration","setSeeTokenIntegration","useForm","resolver","yupResolver","yup","shape","required","matches","when","is","idVersion","undefined","otherwise","nullable","defaultValues","handleSubmit","control","errors","register","reset","getValues","setValue","parsed","iconClass","mergeStyles","height","width","modalPropsStyles","main","maxWidth","handleSelectedItemChanges","field","value","prevState","modalProps","useMemo","isBlocking","styles","dragOptions","tooltipProps","onRenderContent","columns","name","fieldName","minWidth","isRowHeader","isResizable","isSorted","isSortedDescending","isPadded","onRender","title","headerClassName","isCollapsible","iconName","onClick","openDetail","style","color","palette","themePrimary","deleteItem","useEffect","initialData","fetchDetails","versionsData","IsNew","Backend","atob","number","res","ObjectResult","setItem","configs","forEach","element","push","text","handleNewItem","removeItem","createConfiguration","AppConfiguration","editConfiguration","validateSeeTokenIntegration","tokenData","SiteKey","Object","keys","numberDecoded","ValidFormTokenIntegration","debugCounter","isValidUrl","url","URL","e","callback","backEndUrl","encodedBackEndUrl","encodeURIComponent","debouncedValidFormTokenIntegration","useCallback","debounce","fontSize","delay","TooltipDelay","zero","directionalHint","DirectionalHint","bottomCenter","root","display","alignSelf","justifySelf","gridRow","gridColumn","window","location","href","gap","items","compact","selectionMode","SelectionMode","none","setKey","layoutMode","DetailsListLayoutMode","justified","isHeaderVisible","hidden","dialogContentProps","type","DialogType","normal","subText","onSubmit","ActivateInformationLog","noValidate","ref","as","TextField","label","rules","defaultValue","message","render","target","onBlur","placeholder","options","selectedKey","IdVersion9","checked","disabled","flexDirection","backgroundColor","variant","Application","schema","methods","updateApplication","clearErrors","updateGlobalPersonality","getDefaultValue","marginTop","marginBottom","templateValue","assign","marginLeft","Personalization","maxCaracterMessage","botName","max","format","attentionMessage","goodbayMessage","languages","languageSelected","setLanguageSelected","updatePersonalization","personalization","find","LanguageId","Value","values","addInfoForm","infoForm","ConfigurationId","loadInfoForm","language","infoLanguageSelected","map","RadioButton","Abbreviation","maxLength","Setting","min","ValidateTaskId","onSettingChanged","settingId","newActiveConfig","validate","result","TaskId","Domain","isValidConfig","successTest","onSettingValidate","settingValue","SettingValues","SettingId","preventDefault","replace","origin","PageError","src","alt","Container","uri","pathname","uriDecode","setUriDecode","expired","setExpired","validateUriDecode","urlEncode","NewUri","decodeURIComponent","indexOf","substring","arrayUrl","split","getUrlCreateCase","Url","getUrlCase","Footer","process","RecaptchaV2","siteKey","isRecaptchaLoaded","setIsRecaptchaLoaded","recaptchaRef","useRef","onRecaptchaLoad","grecaptcha","script","document","createElement","async","defer","head","appendChild","current","sitekey","RecaptchaV3","isRecaptchaReady","setIsRecaptchaReady","onload","loadRecaptcha","observer","MutationObserver","badge","querySelector","HTMLElement","bottom","disconnect","observe","childList","subtree","executeRecaptcha","action","execute","VersionRecaptcha","Recaptcha","dom","container","useRecaptchaV3","RecaptchaController","forwardRef","token","setToken","getToken","reloadToken","useImperativeHandle","Login","seterrorMessage","isValidated","setIsValidated","resetDataRecaptcha","dataRecaptcha","setDataRecaptcha","itemOptions","queryString","search","deleteBag","recaptchaResult","userData","tokenCaptcha","formData","FormData","append","dataUser","TokenCaptcha","redirectTo","getLanguage","Label","doLogin","MessageBar","Dropdown","Separator","PrimaryButton","allowDisabledFocus","en","ATTENTION_MESSAGE","ACCOUNT_SETTINGS","ACTIVE","ACTIVATE","ATTEND_REQUEST","ACCESS_TOKEN","BOT_NAME","BOT_APPEARENCE","BACK_URL","CANNOT_DELETED","CANCEL","CHANGE","CREATE","CREATE_CASE","CLICK_HERE","CONNECTION","CONNECTIONS_CONFIGURED","CONNECT_WE_NEED","CONNECT","CONFIGURATION_ADD","CONFIGURATION_UPDATE","CONFIGURATION_DELETE","DATE","DOMAIN_CONFIGURATION","DEFAULT_SUBTITLE","DEFAULT_BOT_IMAGES","DETAILS","DESCRIPTION","DELETE","EDIT_CONFIGURATION","EDIT","EDIT_IMAGE","EMAIL_CORPORATE","ENTER","ERROR_BACK_URL","ERROR_CREATING_CONFIG","ERROR_USER","ERROR_USER_PERMISSIONS","ERROR_UPDATING_CONFIG","EXIT","EVENT_SUMMARY","EVENT","ERROR_PROJECT","ERROR_PROJECT_ENCODED","FEMALE","FRONT_URL","GOODBAY_MESSAGES","HELLO","IDENTIFIER","INVALID_URL","IMAGE_CONFIGURATION","IMAGE_UPDATE","IMAGES_UPDATE","IMAGE_URL","IMAGE_NOT_UPLOADED","IMAGE_ERROR","INACTIVE","LEAST_ONE_CONFIGURATION","LOGIN_WITH","LIST_CONNECTIONS","MALE","MESSAGE_CONFIGURATION","APPLICATION_CONFIGURATION","MESSAGE_UPDATE","MESSAGE_UPDATE_MESSAGE","SETTING_UPDATE_MESSAGE","MESSAGE_EVENT","BOT_PERSONALIZATION","NAME_CONFIGURATION","NEW_CONFIGURATION","NEW","NEWS","NEGATIVE_REACTIONS","NOT_UPDATE_IMAGE","NOT_UPDATE_IMAGE_SELECT","NOT_UPDATE_MESSAGE","NOT_NAME","NOT_NOTIFICATIOS","NOTIFICATION","NUMBER_IDENTIFIER","PASSWORD","POSITIVE_FEEDBACK","PLEASURE_REQUEST","PROJECT","REQUIRED_ACCESS_TOKEN","REQUIRED_VERSION","REQUIRED_BACK_URL","REQUIRED_HTTPS","REQUIRED_EMAIL","REQUIRED_USER","REQUIRED_PASSWORD","REQUIRED_URL","REQUIRED_FRONT_URL","REQUIRED_CONFIGURATION_NAME","REQUIRED_VERSION_9","REQUIRED_SPECIALIST","REQUIRED_BOT_NAME","REQUIRED_ATTENTION_MESSAGE","REQUIRED_GOODBAY_MESSAGES","REQUIRED_RESOLUTION","REQUIRED_NUMBER_IDENTIFIER","REQUIRED_VERIFY_TOKEN","REQUIRED_TEMPLATE_CREATE_CASE","REQUIRED_TEMPLATE_SHOW_CASE","REQUIRED_TEMPLATE_APPROVE_CASE","REQUIRED_TEMPLATE_NOTIFICATION","REQUIRED_INTEGRATION_TOKEN","SAVE","SELECT_VERSION","SELECT_CONNECTION_MESSAGE","SELECT_CONNECTION_MESSAGES","SELECT_CONNECTION","SECTION_MESSAGE_IMAGE","SECTION_MESSAGE_MESSAGE","SECTION_MESSAGE_APPLICATION","SECTION_SETTING_MESSAGE","STATE","SURVEY","TEMPLATE_CREATE_CASE","TEMPLATE_SHOW_CASE","TEMPLATE_APPROVE_CASE","TEMPLATE_NOTIFICATION","USER","UPDATE","VALID_EMAIL","VERSION","VIEW_SERVEY","VIEW_PROCESS","VOTING_PROCESS","VERIFY_TOKEN","SELECT_LANGUAGE","SELECT_LANGUAGE_NOTE","LANGUAGE_ES","LANGUAGE_EN","LANGUAGE_PT","ATTENTION_MESSAGE_NOTE","GOODBAY_MESSAGES_NOTE","LINK_EXPIRED","ERROR_MAXLENGTH","SETTING1","SETTING2","SETTING3","SETTING4","SETTING5","SETTING6","SETTING7","RANGE_ERROR","NAME_TASK2","NAME_TASK4","NAME_TASK5","NAME_TASK7","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","NOTE_ATTENTION_MESSAGE","NOTE_GOODBAY_MESSAGES","es","pt","IntlProvider","children","lan","loadMessages","getLocales","culture","parseLanguageCode","navigator","getCulture","LocalizationProvider","locale","code","App","languageNavigator","toLocaleLowerCase","getLanguageBrowser","path","exact","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","getElementById","localizationService","useLocalization","defaultMessage","toLanguageString","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.0420e6b9.chunk.js","sourcesContent":["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\";\nimport { Spinner, SpinnerSize } from \"office-ui-fabric-react/lib/Spinner\";\nimport Configure from \"../Configure\";\nimport Application from \"../Application\";\nimport { mainTheme } from \"../../theme/theme\";\nimport useTranslate from \"../../hooks/useTranslate\";\nimport { URL_API } from \"../../utils/Constanst\";\nimport \"./Configuration.css\";\nimport Personalization from \"../Personalization/Personalization\";\nimport { Setting } from \"../Setting/Setting\";\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\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 updateConfig = (item) => {\n let allConfigs = JSON.parse(localStorage.getItem(\"configs\"));\n\n if (allConfigs && allConfigs.length > 0) {\n let dataSelected = allConfigs.filter((x) => x.Id === item.key);\n dataSelected = dataSelected[0];\n let dataSent = _.cloneDeep(dataSelected);\n dataSent.Name =\n dataSelected.Name !== \"\"\n ? dataSelected.Name\n : translate(\"NOT_NAME\") + dataSelected.BackEndUrl;\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 console.log(\"dataSent\", dataSent);\n\n fetch(URL_API + \"/api/Whatsapp/EditConfiguration\", requestOptions)\n .then((response) => response.json())\n .then((data) => {\n setIsProcessing(false);\n console.log(\"Edit Configuration Data:\", data);\n if (data.DataError === true) {\n setErrors(true);\n setMessageBar(true);\n setFetchDataLoader(false);\n setErrorMessage(translate(data.MessageResult, translate(\"ERROR_CHANGE_CONFIGURATION\")));\n } else {\n setActiveConfig(dataSent);\n setFetchDataLoader(true);\n }\n })\n .catch((error) => {\n setIsProcessing(false);\n setFetchDataLoader(false);\n console.error(\"Edit Configuration Error:\", error);\n })\n .finally((err) => {\n setTimeout(() => {\n closeMessageBar();\n }, 5000);\n });\n }\n };\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage({});\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(\"APPLICATION_CONFIGURATION\")}\n \n \n \n \n \n \n }\n aria-controls=\"panel3a-content\"\n id=\"panel3a-header\"\n >\n {translate('MESSAGE_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 {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n\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 {\n Dialog,\n DialogType,\n DialogFooter,\n} 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 {\n TooltipHost,\n TooltipDelay,\n DirectionalHint,\n} 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 { URL_API, IdVersion9 } from \"../../utils/Constanst\";\nimport debounce from 'lodash.debounce';\nimport \"./Configure.css\";\nimport \"../../App.css\";\n\n\nlet selectedTheme = mainTheme();\ninitializeIcons();\nloadTheme(createTheme(selectedTheme));\n\nlet baseItem = {\n Id: 0,\n FrontEndUrl: \"\",\n BackEndUrl: \"\",\n IsActive: true,\n Version: {\n Id: \"\",\n Name: \"\",\n },\n IdVersion: \"\",\n VersionName: \"\",\n NumberId: \"\",\n Project: \"\",\n BotUser: {\n Id: \"\",\n User: \"\",\n Password: \"\",\n IntegrationToken: \"\",\n IntegrationTokenEncryp: \"\",\n },\n};\nlet baseAppConfiguration = {\n TemplateCreateCase: \"\",\n TemplateShowCase: \"\",\n AccessToken: \"\",\n VerifyToken: \"\",\n TemplateApproveCase: \"\",\n TemplateNotification: \"\"\n};\n\nconst Configure = (props) => {\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 translate = useTranslate();\n const [seeTokenIntegration, setSeeTokenIntegration] = useState(false);\n\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 NumberId: yup.string().required(\"REQUIRED_NUMBER_IDENTIFIER\"),\n IsActive: yup.boolean(),\n IdVersion: yup.number(),\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 Project: yup.string().nullable(),\n });\n\n }\n\n const { handleSubmit, control, errors, register, reset, setValue, getValues } = useForm({\n resolver: yupResolver(getValidationSchema()),\n defaultValues: {\n BackEndUrl: '',\n IdVersion: '',\n }\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 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 (\n \n {item.Name !== null ? item.Name : \"Sin Nombre\"}\n \n );\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: \"project\",\n name: translate(\"PROJECT\"),\n fieldName: \"Project\",\n minWidth: 50,\n maxWidth: 100,\n isRowHeader: true,\n isResizable: true,\n isSorted: false,\n data: \"string\",\n onRender: (item) => {\n return {item.Project};\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\n ? translate(\"ACTIVE\")\n : translate(\"INACTIVE\")}\n \n );\n },\n isPadded: true,\n headerClassName: \"DetailsHeader\",\n },\n\n {\n key: \"actions1\",\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: \"actions2\",\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.NumberId);\n }\n }, [props]);\n\n /**\n * Handle Submit\n * @param {*} Config Data\n */\n const onSubmit = (data) => {\n data.ActivateInformationLog = selectedItem.ActivateInformationLog;\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.NumberId !== \"undefined\") {\n setEmail(parsed.NumberId);\n setInitialDataParsed({ ...initialDataParsed, NumberId: parsed.NumberId });\n fetchDetails(parsed.NumberId);\n setSelectedItem({\n ...selectedItem,\n NumberId: atob(parsed.NumberId),\n BackEndUrl: atob(parsed.Backend),\n });\n }\n };\n\n /**\n * Get All Configurations\n */\n async function fetchDetails(number) {\n const res = await fetch(\n `${URL_API}/api/Whatsapp/GetConfiguration/${number}`\n );\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:\n element.Name ||\n `${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 = {\n ...dataSelected,\n };\n dataSent.AppConfiguration = baseAppConfiguration;\n dataSent.NumberId = dataSelected.NumberId;\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 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(`${URL_API}/api/Whatsapp/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 = {\n ...dataSelected,\n };\n\n dataSent.NumberId = dataSelected.NumberId;\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(`${URL_API}/api/Whatsapp/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(false);\n setUserError(\"\");\n setMessageBar(true);\n toggleHideDialog();\n fetchDetails(email);\n }\n })\n .catch((error) => {\n props.setIsProcessing(false);\n console.log(\"Edit Configuration Error:\", error);\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.NumberId !== undefined) {\n Object.keys(initialDataParsed).forEach((key) => {\n if (key == \"NumberId\" || key == \"BackEndUrl\") {\n handleSelectedItemChanges(key, atob(initialDataParsed[key]));\n } else {\n handleSelectedItemChanges(key, initialDataParsed[key]);\n }\n });\n handleSelectedItemChanges(\n \"NumberId\",\n atob(initialDataParsed[\"NumberId\"])\n );\n } else {\n if (email !== \"\") {\n let numberDecoded = atob(email);\n let item = baseItem;\n item.NumberId = numberDecoded;\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 item.Project = item.Project || \"\";\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 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(`${URL_API}/api/Whatsapp/DeleteConfiguration/${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 console.error(\"Delete Configuration error:\", error);\n setMessageBar(true);\n setErrorMessage(error);\n setUserError(false);\n setUserError(\"\");\n })\n .finally(() => {\n props.setIsProcessing(false);\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 renderDetailsHeader = (detailsHeaderProps) => {\n return (\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 const res = await fetch(`${URL_API}/api/Whatsapp/GetApplyReCaptcha?backenUrl=${encodedBackEndUrl}&version=${idVersion}`);\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 // eslint-disable-next-line react-hooks/exhaustive-deps\n const debouncedValidFormTokenIntegration = useCallback(\n debounce(() => {\n ValidFormTokenIntegration();\n }, 1000),\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 {\n hasAction == true ? (\n
\n
\n
\n ) : null\n }\n {\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};\n\nexport default Configure;\n","import React, { useEffect, useState } from \"react\";\nimport { Label } from \"office-ui-fabric-react/lib/Label\";\nimport { PrimaryButton, 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\";\nimport { getAntiForgeryTokenValue } from \"../../utils/Utils\";\nimport \"./Application.css\";\nimport useTranslate from \"../../hooks/useTranslate\";\nimport { URL_API } from \"../../utils/Constanst\";\nimport _ from 'lodash';\n\nexport default function Application(props) {\n const [messageBar, setMessageBar] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState(\"\");\n const [hasError, setErrors] = React.useState(false);\n const number = JSON.parse(localStorage.getItem(\"userData\")).NumberId;\n const translate = useTranslate();\n\n let schema = yup.object().shape({\n AccessToken: yup.string().required(\"REQUIRED_ACCESS_TOKEN\"),\n VerifyToken: yup.string().required(\"REQUIRED_VERIFY_TOKEN\"),\n TemplateCreateCase: yup.string().required(\"REQUIRED_TEMPLATE_CREATE_CASE\"),\n TemplateShowCase: yup.string().required(\"REQUIRED_TEMPLATE_SHOW_CASE\"),\n TemplateApproveCase: yup.string().required(\"REQUIRED_TEMPLATE_APPROVE_CASE\"),\n });\n\n if (props.activeConfig && props.activeConfig.Version && props.activeConfig.Version.Id === 3) {\n schema = schema.shape({\n TemplateNotification: yup.string().required(\"REQUIRED_TEMPLATE_NOTIFICATION\"),\n });\n }\n\n //Declarations\n const methods = useForm({\n resolver: yupResolver(schema),\n defaultValues: {\n TemplateCreateCase: \"\",\n TemplateShowCase: \"\",\n TemplateApproveCase: \"\",\n AccessToken: \"\",\n VerifyToken: \"\",\n TemplateNotification: \"\",\n },\n });\n const { handleSubmit, control, errors, register, setValue, clearErrors } =\n methods;\n\n const updateGlobalPersonality = (data) => {\n Object.keys(props.activeConfig.AppConfiguration).forEach((key) => {\n if (data.AppConfiguration[key] !== null) {\n props.activeConfig.AppConfiguration[key] = data.AppConfiguration[key];\n }\n });\n\n props.setActiveConfig(props.activeConfig);\n };\n\n /**\n * Update application\n */\n const updateApplication = (dataSelected) => {\n props.setIsProcessing(true);\n let dataSent = {\n ...dataSelected,\n };\n dataSent.NumberId = atob(number);\n dataSent.IdVersion = dataSelected.Version.Id;\n dataSent.Version = dataSelected.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(`${URL_API}/api/Whatsapp/EditConfiguration`, requestOptions)\n .then((response) => response.json())\n .then((data) => {\n props.setIsProcessing(false);\n console.log(\"Edit Configuration Data:\", data);\n if (data.DataError === true) {\n setErrors(true);\n setMessageBar(true);\n setErrorMessage(translate(data.MessageResult, translate('NOT_UPDATE_MESSAGE'))); \n } else {\n if (dataSent.AppConfiguration.Id == 1) {\n if (\n data.ObjectResult.AppConfiguration != null &&\n data.ObjectResult.AppConfiguration.Id > 1\n ) {\n dataSent.AppConfiguration.Id =\n data.ObjectResult.AppConfiguration.Id;\n }\n }\n\n setErrors(false);\n setMessageBar(true);\n setErrorMessage(translate(\"MESSAGE_UPDATE\"));\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 data.AccessToken =\n data.AccessToken.trim().length > 0 ? data.AccessToken : null;\n\n data.VerifyToken =\n data.VerifyToken.trim().length > 0 ? data.VerifyToken : null;\n\n data.TemplateCreateCase =\n data.TemplateCreateCase.trim().length > 0\n ? data.TemplateCreateCase\n : null;\n\n data.TemplateShowCase =\n data.TemplateShowCase.trim().length > 0 ? data.TemplateShowCase : null;\n\n data.TemplateApproveCase =\n data.TemplateApproveCase.trim().length > 0 ? data.TemplateApproveCase : null;\n\n\n let templateValue = data.TemplateNotification === undefined ? \"\" :\n (data.TemplateNotification.trim().length > 0 ? data.TemplateNotification : null);\n data.TemplateNotification = templateValue;\n\n Object.assign(props.activeConfig.AppConfiguration, data);\n updateApplication(props.activeConfig);\n };\n\n const closeMessageBar = () => {\n setMessageBar(false);\n setErrorMessage(\"\");\n };\n\n const getDefaultValue = (field) => {\n if (\n typeof props.activeConfig !== \"undefined\" &&\n props.activeConfig !== null\n ) {\n if (\n typeof props.activeConfig.AppConfiguration !== \"undefined\" &&\n props.activeConfig.AppConfiguration !== null\n ) {\n if (props.activeConfig.AppConfiguration[field] !== null) {\n return props.activeConfig.AppConfiguration[field];\n } else {\n return \"\";\n }\n }\n }\n };\n\n useEffect(() => {\n setValue(\"AccessToken\", \"\");\n setValue(\"VerifyToken\", \"\");\n setValue(\"TemplateCreateCase\", \"\");\n setValue(\"TemplateShowCase\", \"\");\n setValue(\"TemplateApproveCase\", \"\");\n setValue(\"TemplateNotification\", \"\");\n\n if (typeof props.activeConfig !== \"undefined\") {\n if (typeof props.activeConfig.AppConfiguration !== \"undefined\") {\n Object.keys(props.activeConfig.AppConfiguration).forEach((key) => {\n if (props.activeConfig.AppConfiguration[key] !== null) {\n setValue(key, props.activeConfig.AppConfiguration[key]);\n } else {\n setValue(key, \"\");\n }\n });\n }\n }\n }, [props]);\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(\"APPLICATION_CONFIGURATION\")}\n \n \n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n
\n\n \n
\n getDefaultValue(\"AccessToken\")}\n errorMessage={\n errors.AccessToken\n ? translate(errors.AccessToken?.message)\n : undefined\n }\n />\n getDefaultValue(\"VerifyToken\")}\n errorMessage={\n errors.VerifyToken\n ? translate(errors.VerifyToken?.message)\n : undefined\n }\n />\n getDefaultValue(\"TemplateCreateCase\")}\n errorMessage={\n errors.TemplateCreateCase\n ? translate(errors.TemplateCreateCase?.message)\n : undefined\n }\n />\n getDefaultValue(\"TemplateShowCase\")}\n errorMessage={\n errors.TemplateShowCase\n ? translate(errors.TemplateShowCase?.message)\n : undefined\n }\n />\n getDefaultValue(\"TemplateApproveCase\")}\n errorMessage={\n errors.TemplateApproveCase\n ? translate(errors.TemplateApproveCase?.message)\n : undefined\n }\n />\n {props.activeConfig.Version && props.activeConfig.Version.Id === 3 &&\n getDefaultValue(\"TemplateNotification\")}\n errorMessage={\n errors.TemplateNotification\n ? translate(errors.TemplateNotification?.message)\n : undefined\n }\n />\n }\n
\n \n
\n
\n \n
\n );\n}\n","export { default } from \"./Configure\";\n","export { default } from \"./Application\";\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 { format } from 'react-string-format'\nimport _ from 'lodash';\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 number = JSON.parse(localStorage.getItem(\"userData\")).NumberId;\n const translate = useTranslate();\n const maxCaracterBotName = 46;\n const maxCaracterMessage = 1000;\n\n //Declarations\n\n const schema = yup.object({\n botName: yup.string().max(maxCaracterBotName, format(translate('ERROR_MAXLENGTH'), maxCaracterBotName)),\n attentionMessage: yup.string().max(maxCaracterMessage, format(translate('ERROR_MAXLENGTH'), maxCaracterMessage)),\n goodbayMessage: yup.string().max(maxCaracterMessage, format(translate('ERROR_MAXLENGTH'), maxCaracterMessage)),\n });\n\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.Personalization);\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.Personalization).forEach((key) => {\n if (data.Personalization[key] !== null) {\n props.activeConfig.Personalization[key] = data.Personalization[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.NumberId = atob(number);\n dataSent.IdVersion = dataSelected.Version.Id;\n dataSent.Version = dataSelected.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/Whatsapp/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.Personalization = 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.Personalization?.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.Personalization !== 'undefined'\n && props.activeConfig.Personalization.length > 0\n ) {\n let personalization = props.activeConfig.Personalization.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.Personalization?.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.Personalization) {\n props.activeConfig.Personalization = [];\n }\n\n props.activeConfig.Personalization.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.Personalization?.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 ? errors.botName?.message : undefined}\n maxLength={maxCaracterBotName}\n />\n \n\n \n
\n \n
\n
\n \n
\n );\n}\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\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 = { 2: 1, 4: 2, 5: 3, 7: 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.NumberId,\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/Whatsapp/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\n if (!response) {\n value = \"0\";\n }\n let settingValue = newActiveConfig.SettingValues.find(x => x.SettingId === settingId);\n if (!!settingValue) {\n settingValue.Value = value;\n }\n props.setActiveConfig(newActiveConfig);\n });\n\n };\n\n\n const onUpdate = (event) => {\n event.preventDefault();\n props.setIsProcessing(true);\n let dataSent = {\n ...props.activeConfig\n };\n\n dataSent.SettingValues[2].Value = \"1\";\n\n if (dataSent.SettingValues !== undefined\n && dataSent.SettingValues.length > 0) {\n\n if (dataSent.SettingValues[3].Value === \"0\") {\n dataSent.SettingValues[6].Value = \"0\";\n }\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 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/Whatsapp/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.SettingValues = 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 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, item) => (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.SettingValues[item].Value = '';\n props.setActiveConfig(newActiveConfig);\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('BOT_PERSONALIZATION')}

\n

{translate('SECTION_SETTING_MESSAGE')}

\n \n {messageBar ? (\n \n {errorMessage}\n \n ) : null}\n
\n
\n {props.activeConfig.SettingValues &&\n\n
\n\n \n\n {props.activeConfig.Version && props.activeConfig.Version.Id === 3 &&\n\n
\n\n \n\n {props.activeConfig.SettingValues[1].Value === \"1\" &&\n
\n\n {!props.activeConfig.SettingValues &&\n\n \n }\n \n {props.activeConfig.SettingValues[3].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\nexport { Setting };","export const URL_API = window.location.origin; //\"http://localhost:3978\"; \"https://app-teamsapi-dev-001.azurewebsites.net\";\nexport const IdVersion9 = 3;\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 const getUrlCreateCase = (id) => {\n return fetch(`${URL_API}/api/url/${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 getUrlCase = () => {\n\n if (uri.indexOf(\"redirect/\") !== -1) {\n let urlEncode = uri.substring(uri.indexOf(\"redirect/\") + 9);\n validateUriDecode(urlEncode);\n }\n else {\n let arrayUrl = uri.split(\"/\");\n let id = arrayUrl[arrayUrl.length - 1];\n if (id !== null && id !== undefined) {\n getUrlCreateCase(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 getUrlCase();\n\n return (\n
\n \n
\n \n
\n
\n );\n}\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 { 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\nexport default function Login() {\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 [isValidated, setIsValidated] = useState(false);\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(),\n NumberId: yup.string().required(\"REQUIRED_NUMBER_IDENTIFIER\"),\n User: yup.string().required('REQUIRED_USER'),\n Password: yup.string().required('REQUIRED_PASSWORD')\n })\n };\n\n\n const { handleSubmit, control, errors, setValue, getValues } = useForm({\n resolver: yupResolver(getValidationSchema()),\n });\n const translate = useTranslate();\n\n const onSubmit = (data) => {\n setMessageBar(false);\n doLogin({\n BackEndUrl: data.BackEndUrl,\n NumberId: data.NumberId,\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/Whatsapp/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 useEffect(() => {\n const parsed = queryString.parse(window.location.search);\n console.log(parsed);\n setValue(\"Correo\", parsed[\"email\"]);\n fetchData();\n }, []);\n\n useEffect(() => {\n const parsed = queryString.parse(window.location.search);\n console.log(parsed);\n setValue(\"Correo\", parsed[\"email\"]);\n fetchData();\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(`${URL_API}/api/Whatsapp/GetApplyReCaptcha?backenUrl=${encodedBackEndUrl}&version=${version}`);\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 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 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(\"NumberId\", userData.NumberId);\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 NumberId: userData.NumberId,\n TokenCaptcha: tokenCaptcha,\n };\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/Whatsapp/login\", requestOptions)\n .then((response) => response.json())\n .then((data) => {\n if (data.DataError === true) {\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 } else {\n if (data.redirectTo !== \"\") {\n getLanguage(function () {\n localStorage.setItem(\"userData\", JSON.stringify(data.ObjectResult));\n window.location.replace(\n window.location.origin +\n `/configuration/?number=${data.ObjectResult.NumberId}&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/Whatsapp/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 const debouncedValidFormTokenIntegration = useCallback(\n debounce(() => {\n ValidFormTokenIntegration();\n }, 1000),\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 {\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={\n errors.IdVersion ? translate(\"REQUIRED_VERSION\") : undefined\n }\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","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 ACCESS_TOKEN: \"Permanent access token\",\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 CLICK_HERE: \"click here\",\n CONNECTION: \"Connection to Aranda SERVICE DESK\",\n CONNECTIONS_CONFIGURED: \"Connections configured for phone number identifier\",\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 phone number identifier 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:\n \"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 ERROR_PROJECT: \"The project does not exist\",\n ERROR_PROJECT_ENCODED: \"The project code must be encoded\",\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:\n \"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 APPLICATION_CONFIGURATION: \"Application configuration\",\n MESSAGE_UPDATE: \"Application configuration correctly updated\",\n MESSAGE_UPDATE_MESSAGE: \"Message settings updated successfully\",\n SETTING_UPDATE_MESSAGE: \"Bot customization updated successfully\",\n MESSAGE_EVENT: \"See the activity of events that have occurred in the bot.\",\n BOT_PERSONALIZATION: \"Bot customization\",\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:\n \"It was not possible to update the images to the selected appearance\",\n NOT_UPDATE_MESSAGE: \"It was not possible to update the configuration\",\n NOT_NAME: \"No Name - \",\n NOT_NOTIFICATIOS: \"There are no notifications at this time.\",\n NOTIFICATION: \"Notification\",\n NUMBER_IDENTIFIER: \"Phone number identifier\",\n\n PASSWORD: \"Password\",\n POSITIVE_FEEDBACK: \"Positive reactions\",\n PLEASURE_REQUEST: \"Fue un placer atender tu solicitud\",\n PROJECT: \"Project\",\n\n REQUIRED_ACCESS_TOKEN: \"Permanent access token is required.\",\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:\n \"This functionality requires a resolution higher than 1024x768.\",\n REQUIRED_NUMBER_IDENTIFIER: \"Phone number identifier is required\",\n REQUIRED_VERIFY_TOKEN: \"The verification token is required.\",\n REQUIRED_TEMPLATE_CREATE_CASE: \"The create case template is required.\",\n REQUIRED_TEMPLATE_SHOW_CASE: \"The see case template is required.\",\n REQUIRED_TEMPLATE_APPROVE_CASE: \"The case approval template is required.\",\n REQUIRED_TEMPLATE_NOTIFICATION: \"Notification template is required.\", \n REQUIRED_INTEGRATION_TOKEN : 'Integration token is required',\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:\n \"Select the connection for which you are going to change.\",\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 that the bot uses to interact with the user.\",\n SECTION_MESSAGE_APPLICATION:\n \"In this section you will configure the variables provided by whatsapp that the bot uses 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 TEMPLATE_CREATE_CASE: \"Create case template\",\n TEMPLATE_SHOW_CASE: \"Case See Template\",\n TEMPLATE_APPROVE_CASE: \"Case Approval Template\",\n TEMPLATE_NOTIFICATION: \"Notification template\",\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 VERIFY_TOKEN: \"Verification token\",\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 LINK_EXPIRED : \"The link has expired\",\n\n ERROR_MAXLENGTH : \"The maximum number of characters allowed is {0}\",\n\n SETTING1: \"Use quick category links\",\n SETTING2: \"Enable automatic categorization\",\n SETTING3: \"Effectiveness percentage\",\n SETTING4: \"Extraction of additional fields\",\n SETTING5: \"Enable speech to text\",\n SETTING6: \"Prompt user for additional missing fields\",\n SETTING7: \"Extraction of list-type fields\",\n\n RANGE_ERROR : \"The entered value must be between {0} and {1}\",\n\n NAME_TASK2 : \"Automatic categorization\",\n NAME_TASK4 : \"Extracting values ​​from fields\",\n NAME_TASK5 : \"voice to text\",\n NAME_TASK7 : \"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 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\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 ACCESS_TOKEN: \"Token de acceso permanente\",\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 CLICK_HERE: \"clic aquí\",\n CONNECTION: \"Conexión a Aranda SERVICE DESK\",\n CONNECTIONS_CONFIGURED: \"Conexiones configuradas para el Identificador de número de teléfono\",\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 identificador de número de teléfono ya cuenta con una configuración.\",\n DEFAULT_SUBTITLE:\n \"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:\n \"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 ERROR_PROJECT: \"El proyecto no existe\",\n ERROR_PROJECT_ENCODED: \"El código de proyecto debe estar codificado\",\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 APPLICATION_CONFIGURATION: \"Configuración de aplicación\",\n MESSAGE_UPDATE: \"Configuración de aplicación actualizada correctamente\",\n MESSAGE_UPDATE_MESSAGE: \"Configuración de mensajes actualizada correctamente\",\n SETTING_UPDATE_MESSAGE: \"Personalización del bot actualizada correctamente\",\n MESSAGE_EVENT: \"Consulte la actividad de eventos que han sucedido en el bot.\",\n BOT_PERSONALIZATION: \"Personalización del 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:\n \"No fue posible actualizar las imágenes a la apariencia seleccionado\",\n NOT_UPDATE_MESSAGE: \"No fue posible actualizar la configuración\",\n NOT_NAME: \"Sin Nombre - \",\n NOT_NOTIFICATIOS: \"No hay notificaciones en este momento.\",\n NOTIFICATION: \"Notificación\",\n NUMBER_IDENTIFIER: \"Identificador de número de teléfono\",\n\n PASSWORD: \"Contraseña\",\n POSITIVE_FEEDBACK: \"Reacciones positivas\",\n PLEASURE_REQUEST: \"Fue un placer atender tu solicitud\",\n PROJECT: \"Proyecto\",\n\n REQUIRED_ACCESS_TOKEN: \"El token de acceso permanente es requerido.\",\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:\n \"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:\n \"Esta funcionalidad requiere tener una resolución mayor a 1024x768.\",\n REQUIRED_NUMBER_IDENTIFIER:\n \"El identificador de número de teléfono es requerido\",\n REQUIRED_VERIFY_TOKEN: \"El token de verificación es requerido.\",\n REQUIRED_TEMPLATE_CREATE_CASE: \"La plantilla de crear caso es requerida.\",\n REQUIRED_TEMPLATE_SHOW_CASE: \"La plantilla de ver caso es requerida.\",\n REQUIRED_TEMPLATE_APPROVE_CASE: \"La plantilla de aprobar caso es requerida.\", \n REQUIRED_TEMPLATE_NOTIFICATION: \"La plantilla de notificación es requerida.\", \n REQUIRED_INTEGRATION_TOKEN : 'El token de integración es requerido',\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.\",\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 se puede personalizar los mensajes que utiliza el bot para interactuar con el usuario.\",\n SECTION_MESSAGE_APPLICATION:\n \"En esta sección va a configurar las variables que provee whatsapp 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 TEMPLATE_CREATE_CASE: \"Plantilla de crear caso\",\n TEMPLATE_SHOW_CASE: \"Plantilla de ver caso\",\n TEMPLATE_APPROVE_CASE: \"Plantilla de aprobar caso\",\n TEMPLATE_NOTIFICATION: \"Plantilla de notificación\",\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 VERIFY_TOKEN: \"Token de verificació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 LINK_EXPIRED : \"El enlace ha expirado\",\n\n ERROR_MAXLENGTH : \"El numero máximo de caracteres permitidos es de {0}\",\n\n SETTING1: \"Usar enlaces rápidos de categorías\",\n SETTING2: \"Habilitar categorización automática\",\n SETTING3: \"Porcentaje de efectividad\",\n SETTING4: \"Extracción de campos adicionales\",\n SETTING5: \"Habilitar voz a texto\",\n SETTING6: \"Solicitar al usuario campos adicionales faltantes\",\n SETTING7: \"Extracción de campos tipo lista\",\n\n RANGE_ERROR : \"El valor digitado debe estar entre {0} y {1}\",\n\n NAME_TASK2 : \"Categorización automática\",\n NAME_TASK4 : \"Extracción de valores de campos\",\n NAME_TASK5 : \"Voz a texto\",\n NAME_TASK7 : \"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 NOTE_ATTENTION_MESSAGE : 'Es la segunda vez que interactua con el bot',\n NOTE_GOODBAY_MESSAGES : 'Cuando el bot termina la ayuda'\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 ACCESS_TOKEN: \"Ficha de acesso permanente\",\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 CLICK_HERE: \"clique aqui\",\n CONNECTION: \"Conexão com Aranda SERVICE DESK\",\n CONNECTIONS_CONFIGURED: \"Conexões configuradas para identificador de número de telefone\",\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 identificador do número de telefone já possui uma configuração.\",\n DEFAULT_SUBTITLE:\n \"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 ERROR_PROJECT: \"O projeto não existe\",\n ERROR_PROJECT_ENCODED: \"O código do projeto deve ser codificado\",\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ções de mensagem\",\n APPLICATION_CONFIGURATION: \"Configuração da aplicação\",\n MESSAGE_UPDATE: \"Configuração da aplicação corretamente atualizada\",\n MESSAGE_UPDATE_MESSAGE: \"Configurações de mensagem atualizadas com sucesso\",\n SETTING_UPDATE_MESSAGE: \"Customização de bot corretamente atualizada\",\n MESSAGE_EVENT: \"Veja a atividade dos eventos que aconteceram no bot.\",\n BOT_PERSONALIZATION: \"Customização de 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 \"Não foi possível atualizar as imagens para a aparência selecionada.\",\n NOT_UPDATE_MESSAGE: \"Não foi possível atualizar a configuração\",\n NOT_NAME: \"Sem nome - \",\n NOT_NOTIFICATIOS: \"Neste momento, não há notificações.\",\n NOTIFICATION: \"Notificação\",\n NUMBER_IDENTIFIER: \"Identificador do número de telefone\",\n\n PASSWORD: \"Senha\",\n POSITIVE_FEEDBACK: \"Reações positivas\",\n PLEASURE_REQUEST: \"Foi um prazer atender ao seu pedido\",\n PROJECT: \"Projeto\",\n\n REQUIRED_ACCESS_TOKEN: \"O token de acesso permanente é necessário.\",\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:\n \"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:\n \"Esta funcionalidade requer uma resolução superior a 1024x768.\",\n REQUIRED_NUMBER_IDENTIFIER:\n \"O identificador do número de telefone é necessário\",\n REQUIRED_VERIFY_TOKEN: \"A ficha de verificação é necessária.\",\n REQUIRED_TEMPLATE_CREATE_CASE: \"É necessário criar o modelo do caso.\",\n REQUIRED_TEMPLATE_SHOW_CASE: \"O ver modelo de caso é necessário.\",\n REQUIRED_TEMPLATE_APPROVE_CASE: \"O modelo de aprovação de caso é necessário.\",\n REQUIRED_TEMPLATE_NOTIFICATION: \"O modelo de notificação é obrigatório.\", \n REQUIRED_INTEGRATION_TOKEN : 'O token de integração é obrigatório',\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:\n \"Selecione a conexão para a qual você vai fazer a mudar.\",\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_MESSAGE_APPLICATION:\n \"Nesta secção irá configurar as variáveis fornecidas por whatsapp que o bot utiliza para interagir com o utilizador.\",\n SECTION_SETTING_MESSAGE:\n \"Nesta seção você pode customizar o comportamento do bot.\",\n STATE: \"Estado\",\n SURVEY: \"Pesquisa\",\n\n TEMPLATE_CREATE_CASE: \"Criar modelo de caso\",\n TEMPLATE_SHOW_CASE: \"Modelo veja o caso\",\n TEMPLATE_APPROVE_CASE: \"Modelo de aprovação de caso\",\n TEMPLATE_NOTIFICATION: \"Modelo de notificação\",\n\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 VERIFY_TOKEN: \"Ficha de verificaçã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 LINK_EXPIRED : \"O link expirou\",\n\n ERROR_MAXLENGTH : \"O número máximo de caracteres permitido é {0}\",\n\n SETTING1: \"Use links rápidos de categoria\",\n SETTING2: \"Ativar categorização automática\",\n SETTING3: \"Porcentagem de eficácia\",\n SETTING4: \"Extração de campos adicionais\",\n SETTING5: \"Habilitar voz para texto\",\n SETTING6: \"Solicitar ao usuário campos adicionais ausentes\",\n SETTING7: \"Extração de campos do tipo lista\",\n\n RANGE_ERROR : \"O valor inserido deve estar entre {0} e {1}\",\n\n NAME_TASK2 : \"Categorização automática\",\n NAME_TASK4 : \"Extraindo valores de campos\",\n NAME_TASK5 : \"voz para texto\",\n NAME_TASK7 : \"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 NOTE_ATTENTION_MESSAGE : 'Esta é a segunda vez que você interage com o bot',\n NOTE_GOODBAY_MESSAGES : 'Quando o bot termina a ajuda'\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 Container from \"./components/Container\";\nimport Login from \"./components/Login\";\nimport Configuration from \"./components/Configuration\";\nimport IntlProvider from \"./context/withIntl\";\n\nfunction App() {\n\n const getLanguageBrowser = () => {\n let language = \"es\";\n let languageNavigator = window.navigator.language;\n if (!!languageNavigator) {\n language = languageNavigator.split(\"-\")[0]?.toLocaleLowerCase()\n }\n return language;\n }\n\n\n return (\n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n // \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\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","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 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":""}