{"version":3,"sources":["webpack:///./src/components/Video.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./src/sections/Home/Hero.js","webpack:///./src/sections/Home/HowItWorks.js","webpack:///./src/components/PostCard/PostCard.js","webpack:///./src/components/Stroke.js","webpack:///./src/sections/Home/LastNews.js","webpack:///./src/components/Accordion/AccordionSection.js","webpack:///./src/components/Accordion/Accordion.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./src/sections/FAQ.js","webpack:///./src/sections/Home/AboutUs.js","webpack:///./src/sections/Home/WhatWeAre.js","webpack:///./src/sections/Home/HowToSubscribe.js","webpack:///./node_modules/react-number-format/dist/react-number-format.es.js","webpack:///./src/components/Inputs/TextInputLarge.js","webpack:///./src/sections/Home/ContactSection.js","webpack:///./src/pages/index.js"],"names":["VideoContainer","styled","div","IFrameVideo","iframe","Video","videoSrcURL","videoTitle","source","excluded","key","i","target","sourceKeys","Object","keys","length","indexOf","src","title","allow","frameBorder","webkitallowfullscreen","mozallowfullscreen","allowFullScreen","Title","h1","theme","fonts","secondary","colors","white","up","ImageContainer","HeroBackground","blue","HeroContainer","Container","Description","p","section","dark","text","primary","HeroSection","Section","id","variant","disableVerticalMargins","FeaturesList","ul","HowItWorksSection","noPaddingTop","description","image","url","href","map","feature","index","FeatureBox","imagePath","blueStroke","h3","gray","Stroke","header","article","li","ol","hr","AccordionSectionBox","AccordionContentBox","lightGreen","CheckBoxContainer","props","isOpen","midGreen","AccordionTitleBox","AccordionSection","onClick","label","render","this","bottom","children","Component","AccordionSectionsContainer","AccordionContainer","Accordion","self","ReferenceError","state","openSections","setState","child","FrequentQuestionsContainer","FrequentQuestionsSection","Header","name","content","item","AboutUsContainer","grey","ListContainer","ListItem","AboutUs","WhatWeAreContainer","WhatWeAre","HowToSubscribeContainer","HowToSubscribe","Button","small","_defineProperties","descriptor","enumerable","configurable","writable","defineProperty","_extends","assign","arguments","prototype","hasOwnProperty","call","apply","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","_setPrototypeOf","emptyFunction","emptyFunctionWithReset","resetWarningCache","propTypes","fn","module","exports","createCommonjsModule","shim","propName","componentName","location","propFullName","secret","err","Error","getShim","isRequired","ReactPropTypes","array","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","factoryWithThrowingShims","noop","charIsNumber","_char","match","isNil","val","escapeRegExp","str","replace","splitDecimal","numStr","allowNegative","undefined","hasNagation","addNegation","parts","split","beforeDecimal","afterDecimal","limitToScale","scale","fixedDecimalScale","filler","setCaretPosition","el","caretPos","value","createTextRange","range","move","select","selectionStart","focus","setSelectionRange","clamp","num","min","max","Math","getCurrentCaretPosition","selectionEnd","propTypes$1","thousandSeparator","decimalSeparator","allowedDecimalSeparators","thousandsGroupStyle","decimalScale","displayType","prefix","suffix","format","removeFormatting","mask","defaultValue","isNumericString","customInput","allowEmptyFormatting","allowLeadingZeros","onValueChange","onKeyDown","onMouseUp","onChange","onFocus","onBlur","type","isAllowed","renderText","getInputRef","current","defaultProps","_React$Component","NumberFormat","_this","instance","Constructor","TypeError","_classCallCheck","validateProps","formattedValue","formatValueProp","numAsString","mounted","selectionBeforeInput","bind","protoProps","staticProps","subClass","superClass","create","constructor","_inherits","prevProps","updateValueIfRequired","clearTimeout","focusTimeout","focusedElm","stateValue","_state$numAsString","lastNumStr","lastValueWithNewFormat","formatNumString","floatValue","parseFloat","lastFloatValue","isNaN","updateValue","input","_this$getSeparators","getSeparators","numRegex","getNumberRegex","hasNegation","firstDecimalIndex","join","concat","substring","RegExp","g","ignoreDecimalSeparator","_this$props","_this$props2","_this$props$mask","_this$getSeparators3","toString","currentValue","setTimeout","direction","_this$props3","firstHashPosition","lastIndexOf","nextPos","caretLeftBound","caretRightBound","inputValue","j","inputNumber","formattedNumber","currentInputChar","currentFormatChar","correctCaretPosition","_this$props4","isNegative","suffixLastIndex","formatArray","filter","start","ln","part","_this$props5","removePatternFormatting","removePrefixAndSuffix","getFloatString","hashCount","formattedNumberAry","getMaskAtIndex","_this$props6","_this$getSeparators4","hasDecimalSeparator","_splitDecimal","thousandsGroupRegex","getThousandsGroupRegex","search","applyThousandSeparator","_this$props7","formatWithPattern","formatAsNumber","_this$props8","_this$props9","isNonNumericFalsy","shoudHaveDecimalSeparator","roundedDecimalParts","toFixed","intPart","reverse","reduce","roundedStr","idx","Number","decimalPart","roundToPrecision","formatInput","negationRegex","doubleNegationRegex","test","removeNegation","formatNegation","_this$props10","end","isCharacterAFormat","lastValue","_this$props11","_this$getSeparators6","_this$selectionBefore","_findChangedIndex","prevValue","newValue","prevLength","newLength","findChangedIndex","separator","substr","leftBound","rightBound","checkIfFormatGotDeleted","numericString","_splitDecimal2","isBeforeDecimalPoint","params","_params$setCaretPosit","currentCaretPosition","getCaretPosition","setPatchedCaretPosition","getValueObject","e","correctInputValue","fixLeadingZero","expectedCaretPosition","_el$value","_this$props12","negativeRegex","isPatternFormat","newCaretPosition","preventDefault","isUnitTestRun","_el$value2","caretPosition","_this2","persist","_el$value3","obj","keyMaps","filteredObj","_this$props13","_this$state","otherProps","forEach","inputProps","inputMode","navigator","platform","addInputMode","createElement","ref","CustomInput","Input","InputStyle","TextInputLarge","error","invertColors","required","useState","inputFocused","toggleInputFocus","isFilledOrActive","large","event","focused","area-invalid","htmlFor","ContactContainer","ContactInfo","ContactForm","form","ContactSection","useTheme","isSubmitting","setIsSubmitting","useForm","handleSubmit","errors","control","reset","openSuccessSnackbar","useSnackbar","successSnackbar","openErrorSnackbar","errorSnackbar","onSubmit","formValues","a","phone","slice","fetch","CONTACT_URL","method","headers","Accept","body","JSON","stringify","response","json","message","data","email","dirtyFields","isDirty","isSubmitted","touched","isValid","submitCount","as","rules","maxLength","validate","isEmail","TextAreaInput","rows","color","size","IndexPage","Layout","SEO","Hero","HowItWorks","Features","FAQ","Newsletter","Footer"],"mappings":"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","file":"component---src-pages-index-js-a0af1864b027d08330f1.js","sourcesContent":["import React from \"react\";\nimport styled from \"styled-components\";\n\nconst VideoContainer = styled.div`\n width: 100%;\n height: 100%;\n`;\n\nconst IFrameVideo = styled.iframe`\n width: 100%;\n height: 100%;\n min-height: 340px;\n`;\n\nconst Video = ({ videoSrcURL, videoTitle, ...props }) => (\n \n \n \n);\nexport default Video;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","import React from \"react\";\nimport { up } from \"styled-breakpoints\";\n\nimport styled from \"styled-components\";\nimport Section from \"../../components/Section\";\nimport { Container } from \"../../components/Container\";\nimport { Button } from \"../../components/Button\";\nimport Image from \"../../components/Image\";\nimport Video from \"../../components/Video\";\nimport { Media } from \"../../components/Media\";\nimport { Link } from \"gatsby\";\n\nconst Title = styled.h1`\n font-family: ${({ theme }) => theme.fonts.secondary};\n color: ${({ theme }) => theme.colors.white};\n font-size: 24px;\n word-wrap: break-word;\n\n ${up(\"lg\")} {\n font-size: 42px;\n }\n`;\n\nconst ImageContainer = styled.div`\n position: absolute;\n bottom: -100px;\n margin: 0 auto;\n`;\n\nconst ImageBox = styled.div`\n position: relative;\n top: 0;\n left: 0;\n width: 100%;\n margin: 0 auto;\n display: flex;\n justify-content: center;\n\n ${ImageContainer} {\n width: 430px;\n }\n`;\n\nconst ImageBackgroundStripe = styled.div`\n height: 300px;\n width: 100%;\n background: ${({ theme }) => theme.colors.blue};\n border-radius: 4px;\n opacity: 0.2;\n`;\n\nconst HeroBackground = styled.div`\n display: flex;\n align-items: center;\n width: 100%;\n\n ${up(\"lg\")} {\n height: 500px;\n }\n`;\n\nconst HeroContainer = styled(Container)`\n display: flex;\n align-items: center;\n width: 100%;\n place-content: center;\n height: 100%;\n\n ${up(\"lg\")} {\n padding: 0 20px;\n }\n`;\n\nconst Description = styled.p`\n letter-spacing: 0;\n text-align: left;\n color: ${({ theme }) => theme.colors.section.dark.text};\n font-family: ${({ theme }) => theme.fonts.primary};\n word-wrap: break-word;\n\n ${up(\"lg\")} {\n font-size: 18px;\n }\n`;\n\nconst CallToActionButtons = styled.div`\n display: grid;\n width: 100%;\n grid-template-columns: 1fr;\n grid-row-gap: 20px;\n\n ${up(\"lg\")} {\n grid-template-columns: auto auto;\n grid-column-gap: 20px;\n }\n`;\n\nconst HeroTextContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n max-width: 100%;\n\n ${up(\"lg\")} {\n max-width: 530px;\n }\n\n ${Title} {\n margin-top: 0;\n margin-bottom: 20px;\n }\n\n ${Description} {\n margin-bottom: 40px;\n }\n`;\n\nconst HeroSection = () => {\n return (\n \n \n \n {/* \n \n \n \n \n \n \n */}\n {/* \n Seus direitos garantidos pelo sindicato.\n \n Colaborador, tire suas dúvidas e saiba como recuperar valores que\n lhe estão sendo indevidamente descontados pela previdência!\n \n\n \n \n \n \n \n */}\n\n \n \n \n \n );\n};\n\nexport default HeroSection;\n","import React from \"react\";\r\nimport Section from \"../../components/Section\";\r\nimport styled from \"styled-components\";\r\nimport { Container } from \"../../components/Container\";\r\nimport FeatureBox from \"../../components/FeatureBox/FeatureBox\";\r\nimport { up } from \"styled-breakpoints\";\r\n\r\nconst FeaturesList = styled.ul`\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n grid-row-gap: 40px;\r\n\r\n ${up(\"lg\")} {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n`;\r\n\r\nconst HowItWorksSection = () => {\r\n const features = [\r\n {\r\n title: \"Crie sua conta\",\r\n description: \"Preencha suas informações.\",\r\n image: {\r\n url: \"how-it-works/fig01.png\",\r\n },\r\n href: \"#\",\r\n },\r\n {\r\n title: \"Escolha o seu sindicato\",\r\n description: \"O sindicato que representa a sua categoria.\",\r\n image: {\r\n url: \"how-it-works/fig02.png\",\r\n },\r\n },\r\n {\r\n title: \"Formalize a sua adesão\",\r\n description:\r\n \"Faça a adesão a ação coletiva do sindicado que lhe representa para recuperar o seu crédito.\",\r\n image: {\r\n url: \"how-it-works/fig03.png\",\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n {features.map((feature, index) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default HowItWorksSection;\r\n","import React from 'react';\r\nimport styled from 'styled-components';\r\nimport Image from '../Image';\r\nimport { up } from 'styled-breakpoints';\r\n\r\nconst Title = styled.h3`\r\n color: ${({ theme }) => theme.colors.gray};\r\n font-size: 24px;\r\n line-height: 28px;\r\n font-weight: 700;\r\n letter-spacing: 0px;\r\n`;\r\n\r\nconst Description = styled.p`\r\n line-height: 24px;\r\n letter-spacing: 0;\r\n`;\r\n\r\nconst Header = styled.header`\r\n display: flex;\r\n flex-direction: column;\r\n\r\n ${Title} {\r\n margin-top: 40px;\r\n }\r\n`;\r\n\r\nconst Content = styled.div`\r\n display: flex;\r\n margin-top: 15px;\r\n`;\r\n\r\nconst Card = styled.article`\r\n display: flex;\r\n flex-direction: column;\r\n cursor: pointer;\r\n padding: 30px;\r\n box-shadow: 0px 3px 6px #00000026;\r\n border-radius: 4px;\r\n width: 100%;\r\n overflow: auto;\r\n background: ${({ theme }) => theme.colors.white};\r\n\r\n ${up('md')} {\r\n max-width: 320px;\r\n }\r\n`;\r\n\r\nconst PostCard = ({ title, description, imagePath }) => {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {description}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PostCard;\r\n","import styled from 'styled-components';\r\n\r\nconst Stroke = styled.hr`\r\n background: ${({ theme }) => theme.colors.gray};\r\n width: 100%;\r\n height: 2px;\r\n margin: 0;\r\n padding: 0;\r\n`;\r\n\r\nexport default Stroke;\r\n","import React from 'react';\r\nimport Section from '../../components/Section';\r\nimport styled from 'styled-components';\r\nimport { Container } from '../../components/Container';\r\nimport { up } from 'styled-breakpoints';\r\nimport PostCard from '../../components/PostCard/PostCard';\r\n\r\nconst PostContainer = styled.li`\r\n list-style-type: none;\r\n padding: 0;\r\n margin: 0 auto;\r\n`;\r\n\r\nconst PostsShowcaseContainer = styled.ol`\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n grid-row-gap: 40px;\r\n grid-column-gap: 30px;\r\n\r\n ${up('lg')} {\r\n grid-template-columns: repeat(3, 1fr);\r\n }\r\n`;\r\n\r\nconst LastNewsContainer = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst LastNews = () => {\r\n const posts = [\r\n {\r\n title: 'Mais de 1 milhão de trabalhadores afastados',\r\n description:\r\n 'Devido ao distanciamento social, algumas empresas optaram por...',\r\n image: {\r\n url: 'posts/thumb1.png',\r\n },\r\n },\r\n {\r\n title: 'Sindicato cobra Embraer por segurança à saúde',\r\n description:\r\n 'Representantes da entidade e da fabricante de aeronaves se...',\r\n image: {\r\n url: 'posts/thumb2.png',\r\n },\r\n },\r\n {\r\n title: 'Volta ao trabalho apenas com medidas sanitárias',\r\n description:\r\n 'O trabalhador pode se recusar a voltar à atividade se a empresa...',\r\n image: {\r\n url: 'posts/thumb3.png',\r\n },\r\n },\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n \r\n \r\n {posts.map((post, index) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LastNews;\r\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styled from \"styled-components\";\nimport { Slide, Reveal } from \"react-reveal\";\n\nconst AccordionSectionBox = styled.div``;\n\nconst AccordionContentBox = styled.div`\n background: ${({ theme }) => theme.colors.gray};\n margin: 20px;\n margin-left: 40px;\n padding-left: 20px;\n border-left: 5px solid ${({ theme }) => theme.colors.lightGreen};\n`;\n\nconst CheckBoxContainer = styled.div`\n float: right;\n color: ${(props) =>\n props.isOpen ? props.theme.colors.white : props.theme.colors.midGreen};\n`;\n\nconst AccordionTitleBox = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n background: ${(props) => props.theme.colors.blue};\n opacity: ${(props) => (props.isOpen ? \"0.5\" : \"1\")};\n padding: 30px 25px;\n border-radius: 10px;\n cursor: pointer;\n color: ${(props) => props.theme.colors.white};\n\n label {\n max-width: 70%;\n margin: 0;\n padding: 0;\n display: inline-block;\n font-size: 18px;\n }\n`;\n\nclass AccordionSection extends Component {\n static propTypes = {\n children: PropTypes.instanceOf(Object).isRequired,\n isOpen: PropTypes.bool.isRequired,\n label: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n };\n\n onClick = () => {\n this.props.onClick(this.props.label);\n };\n\n render() {\n const {\n onClick,\n props: { isOpen, label },\n } = this;\n\n return (\n \n \n \n \n \n {isOpen && ▲}\n {!isOpen && ▼}\n \n \n\n {isOpen && (\n \n {this.props.children}\n \n )}\n \n \n );\n }\n}\n\nexport default AccordionSection;\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport AccordionSection from \"./AccordionSection\";\nimport styled from \"styled-components\";\n\nconst AccordionSectionsContainer = styled.ul`\n display: grid;\n grid-template-columns: 1fr;\n grid-row-gap: 20px;\n margin: 0;\n padding: 0;\n`;\n\nconst AccordionContainer = styled.li`\n margin: 0;\n padding: 0;\n`;\n\nclass Accordion extends Component {\n static propTypes = {\n children: PropTypes.instanceOf(Object).isRequired,\n };\n\n constructor(props) {\n super(props);\n\n const openSections = {};\n\n this.state = { openSections };\n }\n\n onClick = (label) => {\n const {\n state: { openSections },\n } = this;\n\n const isOpen = !!openSections[label];\n\n this.setState({\n openSections: {\n [label]: !isOpen,\n },\n });\n };\n\n render() {\n const {\n onClick,\n props: { children },\n state: { openSections },\n } = this;\n\n return (\n \n {children.map((child, index) => (\n \n \n {child.props.children}\n \n \n ))}\n \n );\n }\n}\n\nexport default Accordion;\n","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}","import React from \"react\";\nimport styled from \"styled-components\";\n\nimport Section from \"../components/Section\";\nimport { Container } from \"../components/Container\";\nimport Accordion from \"../components/Accordion/Accordion\";\nimport { up } from \"styled-breakpoints\";\n\nconst FrequentQuestionsContainer = styled.div`\n display: grid;\n grid-template-columns: 1fr;\n\n ${up(\"xl\")} {\n justify-content: space-between;\n align-items: center;\n }\n`;\nconst FrequentQuestionsSection = () => {\n const items = [\n {\n title: \"Tenho valores a recuperar?\",\n content:\n \"Se você é um colaborador (celetista ou funcionário público) está, obrigatoriamente, contribuindo para um regime de previdência e você possui SIM créditos a serem recuperados.\",\n },\n {\n title: \"Por quê tenho esse crédito a recuperar?\",\n content:\n \"Isso ocorre porque, apesar da contribuição à previdência incidir sobre todas as parcelas de remuneração constantes do seu holerite, os tribunais já decidiram que não deveria incidir sobre determinadas parcelas, a exemplo do que ocorre sobre: o terço constitucional de férias; os quinze dias que antecedem o afastamento do trabalhador por motivo de doença ou acidente; e o aviso prévio indenizado.\",\n },\n {\n title: \"Por qual via consigo recuperar o meu crédito?\",\n content:\n \"O crédito deve ser requerido pela via judicial. A função desse portal é possibilitar a adesão do colaborador à ação coletiva promovida pela entidade que representa a sua categoria.\",\n },\n {\n title: \"Quanto tempo demorarei para receber esses créditos?\",\n content: `\n O tempo para recebimento dos créditos depende da tramitação da ação coletiva perante o Poder Judiciário, estimando-se em aproximadamente 3 anos a contar da data de distribuição da ação.\n `,\n },\n {\n title: \"Devo ter medo do meu empregador ao aderir a essa ação?\",\n content:\n \"Não! Você, colaborador, não precisa ter qualquer medo porque essa ação não é contra o seu empregador e sim contra o regime de previdência para o qual você contribui (exemplo: o INSS).\",\n },\n {\n title: \"Qual o valor que tenho a receber? \",\n content:\n \"De pronto não é possível estimar exatamente esse valor, porque dependerá da análise da sua documentação em específico. Contudo, fique atento junto à entidade que representa a sua categoria, pois eles estão orientados sobre um valor estimado acerca do crédito que você tem direito.\",\n },\n {\n title:\n \"Quais os documentos necessários para calcular o meu crédito? Como obtê-los caso eu não tenha guardado?\",\n content:\n \"Você precisará dos seus últimos 60 holerites. Caso não os tenha guardado, basta solicitá-los ao departamento pessoal do seu empregador. O nosso portal também poderá fazer esse pedido em seu nome. \",\n },\n {\n title:\n \"Por qual razão tenho que pagar Taxa de Adesão? Qual a sua finalidade?\",\n content:\n \"Ao aderir à ação coletiva pelo nosso portal você está, automaticamente, nos autorizando a receber e organizar a sua documentação, além da elaboração das planilhas de cálculo do seu crédito. A taxa de adesão serve para custear essas providências. Essa taxa de adesão pode ser paga imediatamente ou, caso preferir, pode ser descontada do valor do seu crédito ao final.\",\n },\n {\n title:\n \"Por qual razão tenho que pagar Honorários Advocatícios? Qual a sua finalidade?\",\n content:\n \"O seu empregador contratou advogados que promoveram a ação coletiva que tem por objetivo recuperar os seus créditos. Os honorários advocatícios servem para remunerar esses profissionais. Esses honorários somente serão pagos caso você receba e serão descontados dos seus créditos ao final.\",\n },\n ];\n return (\n \n \n \n \n \n {items.map((item, index) => (\n
\n
{item.content}
\n
\n ))}\n \n \n \n \n );\n};\n\nexport default FrequentQuestionsSection;\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { up } from \"styled-breakpoints\";\nimport Section from \"../../components/Section\";\nimport { Container } from \"../../components/Container\";\n\nconst AboutUsContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n`;\n\nconst Description = styled.p`\n letter-spacing: 0;\n text-align: left;\n color: ${({ theme }) => theme.colors.grey};\n font-family: ${({ theme }) => theme.fonts.primary};\n word-wrap: break-word;\n\n ${up(\"lg\")} {\n font-size: 18px;\n }\n`;\n\nconst ListContainer = styled.ul`\n display: grid;\n grid-template-columns: 1fr;\n grid-row-gap: 25px;\n margin-top: 60px;\n margin: 0;\n padding: 0;\n`;\n\nconst ListItem = styled.li`\n padding: 0;\n margin: 0;\n padding-left: 25px;\n border-left: 5px solid ${(props) => props.theme.colors.blue};\n width: auto;\n overflow: hidden;\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst AboutUs = () => {\n const listItems = [\n \"Aderir de forma virtual e segura a ações coletivas propostas pelas entidades, possibilitando a restituição de créditos que os trabalhadores tenham direito;\",\n \"Participar de clube de benefícios oferecidos pelas entidades; e\",\n \"Ficar por dentro de informações e notícias do seu interesse.\",\n ];\n\n return (\n \n \n \n \n \n Colaborador Online – Portal Entidade-Trabalhador é uma plataforma\n virtual que tem por objetivo possibilitar a interação entre\n entidades (sindicatos, associações e conselhos) com os seus\n associados.\n \n \n Através do nosso portal, os colaboradores têm a oportunidade de:\n \n\n \n {listItems.map((item, index) => (\n {item}\n ))}\n \n \n \n \n );\n};\n\nexport default AboutUs;\n","import React from \"react\";\r\nimport styled from \"styled-components\";\r\nimport { up } from \"styled-breakpoints\";\r\nimport Section from \"../../components/Section\";\r\nimport { Container } from \"../../components/Container\";\r\n\r\nconst WhatWeAreContainer = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n`;\r\n\r\nconst Description = styled.p`\r\n letter-spacing: 0;\r\n text-align: center;\r\n color: ${({ theme }) => theme.colors.grey};\r\n font-family: ${({ theme }) => theme.fonts.primary};\r\n word-wrap: break-word;\r\n\r\n ${up(\"lg\")} {\r\n font-size: 18px;\r\n }\r\n`;\r\n\r\nconst WhatWeAre = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Todos os trabalhadores do Brasil vêm perdendo dinheiro há\r\n muitos anos.\r\n \r\n\r\n \r\n No entanto o nosso trabalho vem conseguindo recuperar uma boa parte\r\n desse dinheiro em favor de trabalhadores como você!\r\n \r\n\r\n \r\n Você pode não saber, mas o seu empregador é obrigado a reter um\r\n percentual da sua remuneração mensal e destiná-lo à Previdência\r\n Social.\r\n \r\n\r\n \r\n Esse percentual, que varia de 8 a 11%, incide sobre todas as verbas\r\n que você recebe, como por exemplo: sobre o seu salário, sobre o seu\r\n décimo terceiro, sobre as suas férias, sobre o seu aviso prévio,\r\n dentre outras.\r\n \r\n\r\n \r\n Depois dessa notícia, você deve ter ficado incomodado, se\r\n perguntando:{\" \"}\r\n \r\n {\" \"}\r\n “Ora, mas se é indevido, como faço para buscar esse dinheiro que\r\n foi descontado indevidamente e passar a não mais sofrer esse tipo\r\n de injustiça?”\r\n \r\n \r\n\r\n \r\n Para conseguir buscar esse dinheiro é necessário que você,\r\n trabalhador, busque a justiça através de uma ação judicial.\r\n Considerando que essa ação para você custaria muito tempo e\r\n dinheiro, o sindicato da sua categoria está apto a representa-lo\r\n perante o judiciário através de uma ação coletiva.\r\n \r\n\r\n \r\n É aí que nós da Colaborador OnLine entramos!! Pelo nosso\r\n portal você pode: tomar conhecimento se o seu sindicato já promoveu\r\n a ação judicial que te beneficia, aderir a essa ação judicial,\r\n inclusive mediante a organização dos documentos e dos cálculos\r\n necessários a esse ressarcimento. Não perca tempo,{\" \"}\r\n informe-se! Divulgue! Faça a sua adesão!\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default WhatWeAre;\r\n","import React from \"react\";\nimport styled from \"styled-components\";\nimport { up } from \"styled-breakpoints\";\nimport Section from \"../../components/Section\";\nimport { Container } from \"../../components/Container\";\nimport { Button } from \"../../components/Button\";\n\nconst HowToSubscribeContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n max-width: 430px;\n margin: auto;\n`;\n\nconst Description = styled.p`\n letter-spacing: 0;\n text-align: center;\n color: ${({ theme }) => theme.colors.grey};\n font-family: ${({ theme }) => theme.fonts.primary};\n word-wrap: break-word;\n\n ${up(\"lg\")} {\n font-size: 18px;\n }\n`;\n\nconst HowToSubscribe = () => {\n return (\n \n \n \n \n \n É tudo muito fácil, rápido e seguro. Não se preocupe, nós vamos te\n orientar durante todo o processo. Comece clicando no botão abaixo:\n \n \n \n \n \n );\n};\n\nexport default HowToSubscribe;\n","import \"core-js/modules/es.array.reduce.js\";\n\n/**\n * react-number-format - 4.4.4\n * Author : Sudhanshu Yadav\n * Copyright (c) 2016, 2021 to Sudhanshu Yadav, released under the MIT license.\n * https://github.com/s-yadav/react-number-format\n */\nimport React from 'react';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n}\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\nvar ReactPropTypesSecret_1 = ReactPropTypesSecret;\n\nfunction emptyFunction() {}\n\nfunction emptyFunctionWithReset() {}\n\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nvar factoryWithThrowingShims = function factoryWithThrowingShims() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret_1) {\n // It is still safe when called from React.\n return;\n }\n\n var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n shim.isRequired = shim;\n\n function getShim() {\n return shim;\n } // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\n\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n ReactPropTypes.PropTypes = ReactPropTypes;\n return ReactPropTypes;\n};\n\nvar propTypes = createCommonjsModule(function (module) {\n /**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = factoryWithThrowingShims();\n }\n}); // basic noop function\n\nfunction noop() {}\n\nfunction returnTrue() {\n return true;\n}\n\nfunction charIsNumber(_char) {\n return !!(_char || '').match(/\\d/);\n}\n\nfunction isNil(val) {\n return val === null || val === undefined;\n}\n\nfunction escapeRegExp(str) {\n return str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, \"\\\\$&\");\n}\n\nfunction getThousandsGroupRegex(thousandsGroupStyle) {\n switch (thousandsGroupStyle) {\n case 'lakh':\n return /(\\d+?)(?=(\\d\\d)+(\\d)(?!\\d))(\\.\\d+)?/g;\n\n case 'wan':\n return /(\\d)(?=(\\d{4})+(?!\\d))/g;\n\n case 'thousand':\n default:\n return /(\\d)(?=(\\d{3})+(?!\\d))/g;\n }\n}\n\nfunction applyThousandSeparator(str, thousandSeparator, thousandsGroupStyle) {\n var thousandsGroupRegex = getThousandsGroupRegex(thousandsGroupStyle);\n var index = str.search(/[1-9]/);\n index = index === -1 ? str.length : index;\n return str.substring(0, index) + str.substring(index, str.length).replace(thousandsGroupRegex, '$1' + thousandSeparator);\n} //spilt a float number into different parts beforeDecimal, afterDecimal, and negation\n\n\nfunction splitDecimal(numStr) {\n var allowNegative = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var hasNagation = numStr[0] === '-';\n var addNegation = hasNagation && allowNegative;\n numStr = numStr.replace('-', '');\n var parts = numStr.split('.');\n var beforeDecimal = parts[0];\n var afterDecimal = parts[1] || '';\n return {\n beforeDecimal: beforeDecimal,\n afterDecimal: afterDecimal,\n hasNagation: hasNagation,\n addNegation: addNegation\n };\n}\n\nfunction fixLeadingZero(numStr) {\n if (!numStr) return numStr;\n var isNegative = numStr[0] === '-';\n if (isNegative) numStr = numStr.substring(1, numStr.length);\n var parts = numStr.split('.');\n var beforeDecimal = parts[0].replace(/^0+/, '') || '0';\n var afterDecimal = parts[1] || '';\n return \"\".concat(isNegative ? '-' : '').concat(beforeDecimal).concat(afterDecimal ? \".\".concat(afterDecimal) : '');\n}\n/**\n * limit decimal numbers to given scale\n * Not used .fixedTo because that will break with big numbers\n */\n\n\nfunction limitToScale(numStr, scale, fixedDecimalScale) {\n var str = '';\n var filler = fixedDecimalScale ? '0' : '';\n\n for (var i = 0; i <= scale - 1; i++) {\n str += numStr[i] || filler;\n }\n\n return str;\n}\n/**\n * This method is required to round prop value to given scale.\n * Not used .round or .fixedTo because that will break with big numbers\n */\n\n\nfunction roundToPrecision(numStr, scale, fixedDecimalScale) {\n //if number is empty don't do anything return empty string\n if (['', '-'].indexOf(numStr) !== -1) return numStr;\n var shoudHaveDecimalSeparator = numStr.indexOf('.') !== -1 && scale;\n\n var _splitDecimal = splitDecimal(numStr),\n beforeDecimal = _splitDecimal.beforeDecimal,\n afterDecimal = _splitDecimal.afterDecimal,\n hasNagation = _splitDecimal.hasNagation;\n\n var roundedDecimalParts = parseFloat(\"0.\".concat(afterDecimal || '0')).toFixed(scale).split('.');\n var intPart = beforeDecimal.split('').reverse().reduce(function (roundedStr, current, idx) {\n if (roundedStr.length > idx) {\n return (Number(roundedStr[0]) + Number(current)).toString() + roundedStr.substring(1, roundedStr.length);\n }\n\n return current + roundedStr;\n }, roundedDecimalParts[0]);\n var decimalPart = limitToScale(roundedDecimalParts[1] || '', Math.min(scale, afterDecimal.length), fixedDecimalScale);\n var negation = hasNagation ? '-' : '';\n var decimalSeparator = shoudHaveDecimalSeparator ? '.' : '';\n return \"\".concat(negation).concat(intPart).concat(decimalSeparator).concat(decimalPart);\n}\n\nfunction omit(obj, keyMaps) {\n var filteredObj = {};\n Object.keys(obj).forEach(function (key) {\n if (!keyMaps[key]) filteredObj[key] = obj[key];\n });\n return filteredObj;\n}\n/** set the caret positon in an input field **/\n\n\nfunction setCaretPosition(el, caretPos) {\n el.value = el.value; // ^ this is used to not only get \"focus\", but\n // to make sure we don't have it everything -selected-\n // (it causes an issue in chrome, and having it doesn't hurt any other browser)\n\n if (el !== null) {\n if (el.createTextRange) {\n var range = el.createTextRange();\n range.move('character', caretPos);\n range.select();\n return true;\n } // (el.selectionStart === 0 added for Firefox bug)\n\n\n if (el.selectionStart || el.selectionStart === 0) {\n el.focus();\n el.setSelectionRange(caretPos, caretPos);\n return true;\n } // fail city, fortunately this never happens (as far as I've tested) :)\n\n\n el.focus();\n return false;\n }\n}\n/**\n Given previous value and newValue it returns the index\n start - end to which values have changed.\n This function makes assumption about only consecutive\n characters are changed which is correct assumption for caret input.\n*/\n\n\nfunction findChangedIndex(prevValue, newValue) {\n var i = 0,\n j = 0;\n var prevLength = prevValue.length;\n var newLength = newValue.length;\n\n while (prevValue[i] === newValue[i] && i < prevLength) {\n i++;\n } //check what has been changed from last\n\n\n while (prevValue[prevLength - 1 - j] === newValue[newLength - 1 - j] && newLength - j > i && prevLength - j > i) {\n j++;\n }\n\n return {\n start: i,\n end: prevLength - j\n };\n}\n/*\n Returns a number whose value is limited to the given range\n*/\n\n\nfunction clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\n\nfunction getCurrentCaretPosition(el) {\n /*Max of selectionStart and selectionEnd is taken for the patch of pixel and other mobile device caret bug*/\n return Math.max(el.selectionStart, el.selectionEnd);\n}\n\nfunction addInputMode(format) {\n return format || !(navigator.platform && /iPhone|iPod/.test(navigator.platform));\n}\n\nvar propTypes$1 = {\n thousandSeparator: propTypes.oneOfType([propTypes.string, propTypes.oneOf([true])]),\n decimalSeparator: propTypes.string,\n allowedDecimalSeparators: propTypes.arrayOf(propTypes.string),\n thousandsGroupStyle: propTypes.oneOf(['thousand', 'lakh', 'wan']),\n decimalScale: propTypes.number,\n fixedDecimalScale: propTypes.bool,\n displayType: propTypes.oneOf(['input', 'text']),\n prefix: propTypes.string,\n suffix: propTypes.string,\n format: propTypes.oneOfType([propTypes.string, propTypes.func]),\n removeFormatting: propTypes.func,\n mask: propTypes.oneOfType([propTypes.string, propTypes.arrayOf(propTypes.string)]),\n value: propTypes.oneOfType([propTypes.number, propTypes.string]),\n defaultValue: propTypes.oneOfType([propTypes.number, propTypes.string]),\n isNumericString: propTypes.bool,\n customInput: propTypes.elementType,\n allowNegative: propTypes.bool,\n allowEmptyFormatting: propTypes.bool,\n allowLeadingZeros: propTypes.bool,\n onValueChange: propTypes.func,\n onKeyDown: propTypes.func,\n onMouseUp: propTypes.func,\n onChange: propTypes.func,\n onFocus: propTypes.func,\n onBlur: propTypes.func,\n type: propTypes.oneOf(['text', 'tel', 'password']),\n isAllowed: propTypes.func,\n renderText: propTypes.func,\n getInputRef: propTypes.oneOfType([propTypes.func, // for legacy refs\n propTypes.shape({\n current: propTypes.any\n })])\n};\nvar defaultProps = {\n displayType: 'input',\n decimalSeparator: '.',\n thousandsGroupStyle: 'thousand',\n fixedDecimalScale: false,\n prefix: '',\n suffix: '',\n allowNegative: true,\n allowEmptyFormatting: false,\n allowLeadingZeros: false,\n isNumericString: false,\n type: 'text',\n onValueChange: noop,\n onChange: noop,\n onKeyDown: noop,\n onMouseUp: noop,\n onFocus: noop,\n onBlur: noop,\n isAllowed: returnTrue\n};\n\nvar NumberFormat = /*#__PURE__*/function (_React$Component) {\n _inherits(NumberFormat, _React$Component);\n\n function NumberFormat(props) {\n var _this;\n\n _classCallCheck(this, NumberFormat);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(NumberFormat).call(this, props));\n var defaultValue = props.defaultValue; //validate props\n\n _this.validateProps();\n\n var formattedValue = _this.formatValueProp(defaultValue);\n\n _this.state = {\n value: formattedValue,\n numAsString: _this.removeFormatting(formattedValue),\n mounted: false\n };\n _this.selectionBeforeInput = {\n selectionStart: 0,\n selectionEnd: 0\n };\n _this.onChange = _this.onChange.bind(_assertThisInitialized(_this));\n _this.onKeyDown = _this.onKeyDown.bind(_assertThisInitialized(_this));\n _this.onMouseUp = _this.onMouseUp.bind(_assertThisInitialized(_this));\n _this.onFocus = _this.onFocus.bind(_assertThisInitialized(_this));\n _this.onBlur = _this.onBlur.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n _createClass(NumberFormat, [{\n key: \"componentDidMount\",\n value: function componentDidMount() {\n // set mounted state\n // eslint-disable-next-line react/no-did-mount-set-state\n this.setState({\n mounted: true\n });\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate(prevProps) {\n this.updateValueIfRequired(prevProps);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n clearTimeout(this.focusTimeout);\n }\n }, {\n key: \"updateValueIfRequired\",\n value: function updateValueIfRequired(prevProps) {\n var props = this.props,\n state = this.state,\n focusedElm = this.focusedElm;\n var stateValue = state.value,\n _state$numAsString = state.numAsString,\n lastNumStr = _state$numAsString === void 0 ? '' : _state$numAsString; // If only state changed no need to do any thing\n\n if (prevProps !== props) {\n //validate props\n this.validateProps();\n var lastValueWithNewFormat = this.formatNumString(lastNumStr);\n var formattedValue = isNil(props.value) ? lastValueWithNewFormat : this.formatValueProp();\n var numAsString = this.removeFormatting(formattedValue);\n var floatValue = parseFloat(numAsString);\n var lastFloatValue = parseFloat(lastNumStr);\n\n if ( //while typing set state only when float value changes\n (!isNaN(floatValue) || !isNaN(lastFloatValue)) && floatValue !== lastFloatValue || //can also set state when float value is same and the format props changes\n lastValueWithNewFormat !== stateValue || //set state always when not in focus and formatted value is changed\n focusedElm === null && formattedValue !== stateValue) {\n this.updateValue({\n formattedValue: formattedValue,\n numAsString: numAsString,\n input: focusedElm\n });\n }\n }\n }\n /** Misc methods **/\n\n }, {\n key: \"getFloatString\",\n value: function getFloatString() {\n var num = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var decimalScale = this.props.decimalScale;\n\n var _this$getSeparators = this.getSeparators(),\n decimalSeparator = _this$getSeparators.decimalSeparator;\n\n var numRegex = this.getNumberRegex(true); //remove negation for regex check\n\n var hasNegation = num[0] === '-';\n if (hasNegation) num = num.replace('-', ''); //if decimal scale is zero remove decimal and number after decimalSeparator\n\n if (decimalSeparator && decimalScale === 0) {\n num = num.split(decimalSeparator)[0];\n }\n\n num = (num.match(numRegex) || []).join('').replace(decimalSeparator, '.'); //remove extra decimals\n\n var firstDecimalIndex = num.indexOf('.');\n\n if (firstDecimalIndex !== -1) {\n num = \"\".concat(num.substring(0, firstDecimalIndex), \".\").concat(num.substring(firstDecimalIndex + 1, num.length).replace(new RegExp(escapeRegExp(decimalSeparator), 'g'), ''));\n } //add negation back\n\n\n if (hasNegation) num = '-' + num;\n return num;\n } //returned regex assumes decimalSeparator is as per prop\n\n }, {\n key: \"getNumberRegex\",\n value: function getNumberRegex(g, ignoreDecimalSeparator) {\n var _this$props = this.props,\n format = _this$props.format,\n decimalScale = _this$props.decimalScale;\n\n var _this$getSeparators2 = this.getSeparators(),\n decimalSeparator = _this$getSeparators2.decimalSeparator;\n\n return new RegExp('\\\\d' + (decimalSeparator && decimalScale !== 0 && !ignoreDecimalSeparator && !format ? '|' + escapeRegExp(decimalSeparator) : ''), g ? 'g' : undefined);\n }\n }, {\n key: \"getSeparators\",\n value: function getSeparators() {\n var decimalSeparator = this.props.decimalSeparator;\n var _this$props2 = this.props,\n thousandSeparator = _this$props2.thousandSeparator,\n allowedDecimalSeparators = _this$props2.allowedDecimalSeparators;\n\n if (thousandSeparator === true) {\n thousandSeparator = ',';\n }\n\n if (!allowedDecimalSeparators) {\n allowedDecimalSeparators = [decimalSeparator, '.'];\n }\n\n return {\n decimalSeparator: decimalSeparator,\n thousandSeparator: thousandSeparator,\n allowedDecimalSeparators: allowedDecimalSeparators\n };\n }\n }, {\n key: \"getMaskAtIndex\",\n value: function getMaskAtIndex(index) {\n var _this$props$mask = this.props.mask,\n mask = _this$props$mask === void 0 ? ' ' : _this$props$mask;\n\n if (typeof mask === 'string') {\n return mask;\n }\n\n return mask[index] || ' ';\n }\n }, {\n key: \"getValueObject\",\n value: function getValueObject(formattedValue, numAsString) {\n var floatValue = parseFloat(numAsString);\n return {\n formattedValue: formattedValue,\n value: numAsString,\n floatValue: isNaN(floatValue) ? undefined : floatValue\n };\n }\n }, {\n key: \"validateProps\",\n value: function validateProps() {\n var mask = this.props.mask; //validate decimalSeparator and thousandSeparator\n\n var _this$getSeparators3 = this.getSeparators(),\n decimalSeparator = _this$getSeparators3.decimalSeparator,\n thousandSeparator = _this$getSeparators3.thousandSeparator;\n\n if (decimalSeparator === thousandSeparator) {\n throw new Error(\"\\n Decimal separator can't be same as thousand separator.\\n thousandSeparator: \".concat(thousandSeparator, \" (thousandSeparator = {true} is same as thousandSeparator = \\\",\\\")\\n decimalSeparator: \").concat(decimalSeparator, \" (default value for decimalSeparator is .)\\n \"));\n } //validate mask\n\n\n if (mask) {\n var maskAsStr = mask === 'string' ? mask : mask.toString();\n\n if (maskAsStr.match(/\\d/g)) {\n throw new Error(\"\\n Mask \".concat(mask, \" should not contain numeric character;\\n \"));\n }\n }\n }\n /** Misc methods end **/\n\n /** caret specific methods **/\n\n }, {\n key: \"setPatchedCaretPosition\",\n value: function setPatchedCaretPosition(el, caretPos, currentValue) {\n /* setting caret position within timeout of 0ms is required for mobile chrome,\n otherwise browser resets the caret position after we set it\n We are also setting it without timeout so that in normal browser we don't see the flickering */\n setCaretPosition(el, caretPos);\n setTimeout(function () {\n if (el.value === currentValue) setCaretPosition(el, caretPos);\n }, 0);\n }\n /* This keeps the caret within typing area so people can't type in between prefix or suffix */\n\n }, {\n key: \"correctCaretPosition\",\n value: function correctCaretPosition(value, caretPos, direction) {\n var _this$props3 = this.props,\n prefix = _this$props3.prefix,\n suffix = _this$props3.suffix,\n format = _this$props3.format; //if value is empty return 0\n\n if (value === '') return 0; //caret position should be between 0 and value length\n\n caretPos = clamp(caretPos, 0, value.length); //in case of format as number limit between prefix and suffix\n\n if (!format) {\n var hasNegation = value[0] === '-';\n return clamp(caretPos, prefix.length + (hasNegation ? 1 : 0), value.length - suffix.length);\n } //in case if custom format method don't do anything\n\n\n if (typeof format === 'function') return caretPos;\n /* in case format is string find the closest # position from the caret position */\n //in case the caretPos have input value on it don't do anything\n\n if (format[caretPos] === '#' && charIsNumber(value[caretPos])) return caretPos; //if caretPos is just after input value don't do anything\n\n if (format[caretPos - 1] === '#' && charIsNumber(value[caretPos - 1])) return caretPos; //find the nearest caret position\n\n var firstHashPosition = format.indexOf('#');\n var lastHashPosition = format.lastIndexOf('#'); //limit the cursor between the first # position and the last # position\n\n caretPos = clamp(caretPos, firstHashPosition, lastHashPosition + 1);\n var nextPos = format.substring(caretPos, format.length).indexOf('#');\n var caretLeftBound = caretPos;\n var caretRightBound = caretPos + (nextPos === -1 ? 0 : nextPos); //get the position where the last number is present\n\n while (caretLeftBound > firstHashPosition && (format[caretLeftBound] !== '#' || !charIsNumber(value[caretLeftBound]))) {\n caretLeftBound -= 1;\n }\n\n var goToLeft = !charIsNumber(value[caretRightBound]) || direction === 'left' && caretPos !== firstHashPosition || caretPos - caretLeftBound < caretRightBound - caretPos;\n\n if (goToLeft) {\n //check if number should be taken after the bound or after it\n //if number preceding a valid number keep it after\n return charIsNumber(value[caretLeftBound]) ? caretLeftBound + 1 : caretLeftBound;\n }\n\n return caretRightBound;\n }\n }, {\n key: \"getCaretPosition\",\n value: function getCaretPosition(inputValue, formattedValue, caretPos) {\n var format = this.props.format;\n var stateValue = this.state.value;\n var numRegex = this.getNumberRegex(true);\n var inputNumber = (inputValue.match(numRegex) || []).join('');\n var formattedNumber = (formattedValue.match(numRegex) || []).join('');\n var j, i;\n j = 0;\n\n for (i = 0; i < caretPos; i++) {\n var currentInputChar = inputValue[i] || '';\n var currentFormatChar = formattedValue[j] || ''; //no need to increase new cursor position if formatted value does not have those characters\n //case inputValue = 1a23 and formattedValue = 123\n\n if (!currentInputChar.match(numRegex) && currentInputChar !== currentFormatChar) continue; //When we are striping out leading zeros maintain the new cursor position\n //Case inputValue = 00023 and formattedValue = 23;\n\n if (currentInputChar === '0' && currentFormatChar.match(numRegex) && currentFormatChar !== '0' && inputNumber.length !== formattedNumber.length) continue; //we are not using currentFormatChar because j can change here\n\n while (currentInputChar !== formattedValue[j] && j < formattedValue.length) {\n j++;\n }\n\n j++;\n }\n\n if (typeof format === 'string' && !stateValue) {\n //set it to the maximum value so it goes after the last number\n j = formattedValue.length;\n } //correct caret position if its outside of editable area\n\n\n j = this.correctCaretPosition(formattedValue, j);\n return j;\n }\n /** caret specific methods ends **/\n\n /** methods to remove formattting **/\n\n }, {\n key: \"removePrefixAndSuffix\",\n value: function removePrefixAndSuffix(val) {\n var _this$props4 = this.props,\n format = _this$props4.format,\n prefix = _this$props4.prefix,\n suffix = _this$props4.suffix; //remove prefix and suffix\n\n if (!format && val) {\n var isNegative = val[0] === '-'; //remove negation sign\n\n if (isNegative) val = val.substring(1, val.length); //remove prefix\n\n val = prefix && val.indexOf(prefix) === 0 ? val.substring(prefix.length, val.length) : val; //remove suffix\n\n var suffixLastIndex = val.lastIndexOf(suffix);\n val = suffix && suffixLastIndex !== -1 && suffixLastIndex === val.length - suffix.length ? val.substring(0, suffixLastIndex) : val; //add negation sign back\n\n if (isNegative) val = '-' + val;\n }\n\n return val;\n }\n }, {\n key: \"removePatternFormatting\",\n value: function removePatternFormatting(val) {\n var format = this.props.format;\n var formatArray = format.split('#').filter(function (str) {\n return str !== '';\n });\n var start = 0;\n var numStr = '';\n\n for (var i = 0, ln = formatArray.length; i <= ln; i++) {\n var part = formatArray[i] || ''; //if i is the last fragment take the index of end of the value\n //For case like +1 (911) 911 91 91 having pattern +1 (###) ### ## ##\n\n var index = i === ln ? val.length : val.indexOf(part, start);\n /* in any case if we don't find the pattern part in the value assume the val as numeric string\n This will be also in case if user has started typing, in any other case it will not be -1\n unless wrong prop value is provided */\n\n if (index === -1) {\n numStr = val;\n break;\n } else {\n numStr += val.substring(start, index);\n start = index + part.length;\n }\n }\n\n return (numStr.match(/\\d/g) || []).join('');\n }\n }, {\n key: \"removeFormatting\",\n value: function removeFormatting(val) {\n var _this$props5 = this.props,\n format = _this$props5.format,\n removeFormatting = _this$props5.removeFormatting;\n if (!val) return val;\n\n if (!format) {\n val = this.removePrefixAndSuffix(val);\n val = this.getFloatString(val);\n } else if (typeof format === 'string') {\n val = this.removePatternFormatting(val);\n } else if (typeof removeFormatting === 'function') {\n //condition need to be handled if format method is provide,\n val = removeFormatting(val);\n } else {\n val = (val.match(/\\d/g) || []).join('');\n }\n\n return val;\n }\n /** methods to remove formattting end **/\n\n /*** format specific methods start ***/\n\n /**\n * Format when # based string is provided\n * @param {string} numStr Numeric String\n * @return {string} formatted Value\n */\n\n }, {\n key: \"formatWithPattern\",\n value: function formatWithPattern(numStr) {\n var format = this.props.format;\n var hashCount = 0;\n var formattedNumberAry = format.split('');\n\n for (var i = 0, ln = format.length; i < ln; i++) {\n if (format[i] === '#') {\n formattedNumberAry[i] = numStr[hashCount] || this.getMaskAtIndex(hashCount);\n hashCount += 1;\n }\n }\n\n return formattedNumberAry.join('');\n }\n /**\n * @param {string} numStr Numeric string/floatString] It always have decimalSeparator as .\n * @return {string} formatted Value\n */\n\n }, {\n key: \"formatAsNumber\",\n value: function formatAsNumber(numStr) {\n var _this$props6 = this.props,\n decimalScale = _this$props6.decimalScale,\n fixedDecimalScale = _this$props6.fixedDecimalScale,\n prefix = _this$props6.prefix,\n suffix = _this$props6.suffix,\n allowNegative = _this$props6.allowNegative,\n thousandsGroupStyle = _this$props6.thousandsGroupStyle;\n\n var _this$getSeparators4 = this.getSeparators(),\n thousandSeparator = _this$getSeparators4.thousandSeparator,\n decimalSeparator = _this$getSeparators4.decimalSeparator;\n\n var hasDecimalSeparator = numStr.indexOf('.') !== -1 || decimalScale && fixedDecimalScale;\n\n var _splitDecimal = splitDecimal(numStr, allowNegative),\n beforeDecimal = _splitDecimal.beforeDecimal,\n afterDecimal = _splitDecimal.afterDecimal,\n addNegation = _splitDecimal.addNegation; // eslint-disable-line prefer-const\n //apply decimal precision if its defined\n\n\n if (decimalScale !== undefined) afterDecimal = limitToScale(afterDecimal, decimalScale, fixedDecimalScale);\n\n if (thousandSeparator) {\n beforeDecimal = applyThousandSeparator(beforeDecimal, thousandSeparator, thousandsGroupStyle);\n } //add prefix and suffix\n\n\n if (prefix) beforeDecimal = prefix + beforeDecimal;\n if (suffix) afterDecimal = afterDecimal + suffix; //restore negation sign\n\n if (addNegation) beforeDecimal = '-' + beforeDecimal;\n numStr = beforeDecimal + (hasDecimalSeparator && decimalSeparator || '') + afterDecimal;\n return numStr;\n }\n }, {\n key: \"formatNumString\",\n value: function formatNumString() {\n var numStr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var _this$props7 = this.props,\n format = _this$props7.format,\n allowEmptyFormatting = _this$props7.allowEmptyFormatting;\n var formattedValue = numStr;\n\n if (numStr === '' && !allowEmptyFormatting) {\n formattedValue = '';\n } else if (numStr === '-' && !format) {\n formattedValue = '-';\n } else if (typeof format === 'string') {\n formattedValue = this.formatWithPattern(formattedValue);\n } else if (typeof format === 'function') {\n formattedValue = format(formattedValue);\n } else {\n formattedValue = this.formatAsNumber(formattedValue);\n }\n\n return formattedValue;\n }\n }, {\n key: \"formatValueProp\",\n value: function formatValueProp(defaultValue) {\n var _this$props8 = this.props,\n format = _this$props8.format,\n decimalScale = _this$props8.decimalScale,\n fixedDecimalScale = _this$props8.fixedDecimalScale,\n allowEmptyFormatting = _this$props8.allowEmptyFormatting;\n var _this$props9 = this.props,\n value = _this$props9.value,\n isNumericString = _this$props9.isNumericString; // if value is undefined or null, use defaultValue instead\n\n value = isNil(value) ? defaultValue : value;\n var isNonNumericFalsy = !value && value !== 0;\n\n if (isNonNumericFalsy && allowEmptyFormatting) {\n value = '';\n } // if value is not defined return empty string\n\n\n if (isNonNumericFalsy && !allowEmptyFormatting) return '';\n\n if (typeof value === 'number') {\n value = value.toString();\n isNumericString = true;\n } //change infinity value to empty string\n\n\n if (value === 'Infinity' && isNumericString) {\n value = '';\n } //round the number based on decimalScale\n //format only if non formatted value is provided\n\n\n if (isNumericString && !format && typeof decimalScale === 'number') {\n value = roundToPrecision(value, decimalScale, fixedDecimalScale);\n }\n\n var formattedValue = isNumericString ? this.formatNumString(value) : this.formatInput(value);\n return formattedValue;\n }\n }, {\n key: \"formatNegation\",\n value: function formatNegation() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var allowNegative = this.props.allowNegative;\n var negationRegex = new RegExp('(-)');\n var doubleNegationRegex = new RegExp('(-)(.)*(-)'); // Check number has '-' value\n\n var hasNegation = negationRegex.test(value); // Check number has 2 or more '-' values\n\n var removeNegation = doubleNegationRegex.test(value); //remove negation\n\n value = value.replace(/-/g, '');\n\n if (hasNegation && !removeNegation && allowNegative) {\n value = '-' + value;\n }\n\n return value;\n }\n }, {\n key: \"formatInput\",\n value: function formatInput() {\n var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var format = this.props.format; //format negation only if we are formatting as number\n\n if (!format) {\n value = this.removePrefixAndSuffix(value);\n value = this.formatNegation(value);\n } //remove formatting from number\n\n\n value = this.removeFormatting(value);\n return this.formatNumString(value);\n }\n /*** format specific methods end ***/\n\n }, {\n key: \"isCharacterAFormat\",\n value: function isCharacterAFormat(caretPos, value) {\n var _this$props10 = this.props,\n format = _this$props10.format,\n prefix = _this$props10.prefix,\n suffix = _this$props10.suffix,\n decimalScale = _this$props10.decimalScale,\n fixedDecimalScale = _this$props10.fixedDecimalScale;\n\n var _this$getSeparators5 = this.getSeparators(),\n decimalSeparator = _this$getSeparators5.decimalSeparator; //check within format pattern\n\n\n if (typeof format === 'string' && format[caretPos] !== '#') return true; //check in number format\n\n if (!format && (caretPos < prefix.length || caretPos >= value.length - suffix.length || decimalScale && fixedDecimalScale && value[caretPos] === decimalSeparator)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"checkIfFormatGotDeleted\",\n value: function checkIfFormatGotDeleted(start, end, value) {\n for (var i = start; i < end; i++) {\n if (this.isCharacterAFormat(i, value)) return true;\n }\n\n return false;\n }\n /**\n * This will check if any formatting got removed by the delete or backspace and reset the value\n * It will also work as fallback if android chome keyDown handler does not work\n **/\n\n }, {\n key: \"correctInputValue\",\n value: function correctInputValue(caretPos, lastValue, value) {\n var _this$props11 = this.props,\n format = _this$props11.format,\n allowNegative = _this$props11.allowNegative,\n prefix = _this$props11.prefix,\n suffix = _this$props11.suffix,\n decimalScale = _this$props11.decimalScale;\n\n var _this$getSeparators6 = this.getSeparators(),\n allowedDecimalSeparators = _this$getSeparators6.allowedDecimalSeparators,\n decimalSeparator = _this$getSeparators6.decimalSeparator;\n\n var lastNumStr = this.state.numAsString || '';\n var _this$selectionBefore = this.selectionBeforeInput,\n selectionStart = _this$selectionBefore.selectionStart,\n selectionEnd = _this$selectionBefore.selectionEnd;\n\n var _findChangedIndex = findChangedIndex(lastValue, value),\n start = _findChangedIndex.start,\n end = _findChangedIndex.end;\n /** Check for any allowed decimal separator is added in the numeric format and replace it with decimal separator */\n\n\n if (!format && start === end && allowedDecimalSeparators.indexOf(value[selectionStart]) !== -1) {\n var separator = decimalScale === 0 ? '' : decimalSeparator;\n return value.substr(0, selectionStart) + separator + value.substr(selectionStart + 1, value.length);\n }\n /* don't do anyhting if something got added,\n or if value is empty string (when whole input is cleared)\n or whole input is replace with a number\n */\n\n\n var leftBound = !!format ? 0 : prefix.length;\n var rightBound = lastValue.length - (!!format ? 0 : suffix.length);\n\n if (value.length > lastValue.length || !value.length || start === end || selectionStart === 0 && selectionEnd === lastValue.length || selectionStart === leftBound && selectionEnd === rightBound) {\n return value;\n } //if format got deleted reset the value to last value\n\n\n if (this.checkIfFormatGotDeleted(start, end, lastValue)) {\n value = lastValue;\n } //for numbers check if beforeDecimal got deleted and there is nothing after decimal,\n //clear all numbers in such case while keeping the - sign\n\n\n if (!format) {\n var numericString = this.removeFormatting(value);\n\n var _splitDecimal2 = splitDecimal(numericString, allowNegative),\n beforeDecimal = _splitDecimal2.beforeDecimal,\n afterDecimal = _splitDecimal2.afterDecimal,\n addNegation = _splitDecimal2.addNegation; // eslint-disable-line prefer-const\n //clear only if something got deleted\n\n\n var isBeforeDecimalPoint = caretPos < value.indexOf(decimalSeparator) + 1;\n\n if (numericString.length < lastNumStr.length && isBeforeDecimalPoint && beforeDecimal === '' && !parseFloat(afterDecimal)) {\n return addNegation ? '-' : '';\n }\n }\n\n return value;\n }\n /** Update value and caret position */\n\n }, {\n key: \"updateValue\",\n value: function updateValue(params) {\n var formattedValue = params.formattedValue,\n input = params.input,\n _params$setCaretPosit = params.setCaretPosition,\n setCaretPosition = _params$setCaretPosit === void 0 ? true : _params$setCaretPosit;\n var numAsString = params.numAsString,\n caretPos = params.caretPos;\n var onValueChange = this.props.onValueChange;\n var lastValue = this.state.value;\n\n if (input) {\n //set caret position, and value imperatively when element is provided\n if (setCaretPosition) {\n //calculate caret position if not defined\n if (!caretPos) {\n var inputValue = params.inputValue || input.value;\n var currentCaretPosition = getCurrentCaretPosition(input);\n /**\n * set the value imperatively, this is required for IE fix\n * This is also required as if new caret position is beyond the previous value.\n * Caret position will not be set correctly\n */\n\n input.value = formattedValue; //get the caret position\n\n caretPos = this.getCaretPosition(inputValue, formattedValue, currentCaretPosition);\n } //set caret position\n\n\n this.setPatchedCaretPosition(input, caretPos, formattedValue);\n } else {\n /**\n * if we are not setting caret position set the value imperatively.\n * This is required on onBlur method\n */\n input.value = formattedValue;\n }\n } //calculate numeric string if not passed\n\n\n if (numAsString === undefined) {\n numAsString = this.removeFormatting(formattedValue);\n } //update state if value is changed\n\n\n if (formattedValue !== lastValue) {\n this.setState({\n value: formattedValue,\n numAsString: numAsString\n }); // trigger onValueChange synchronously, so parent is updated along with the number format. Fix for #277, #287\n\n onValueChange(this.getValueObject(formattedValue, numAsString));\n }\n }\n }, {\n key: \"onChange\",\n value: function onChange(e) {\n var el = e.target;\n var inputValue = el.value;\n var state = this.state,\n props = this.props;\n var isAllowed = props.isAllowed;\n var lastValue = state.value || '';\n var currentCaretPosition = getCurrentCaretPosition(el);\n inputValue = this.correctInputValue(currentCaretPosition, lastValue, inputValue);\n var formattedValue = this.formatInput(inputValue) || '';\n var numAsString = this.removeFormatting(formattedValue);\n var valueObj = this.getValueObject(formattedValue, numAsString);\n\n if (!isAllowed(valueObj)) {\n formattedValue = lastValue;\n }\n\n this.updateValue({\n formattedValue: formattedValue,\n numAsString: numAsString,\n inputValue: inputValue,\n input: el\n });\n props.onChange(e);\n }\n }, {\n key: \"onBlur\",\n value: function onBlur(e) {\n var props = this.props,\n state = this.state;\n var format = props.format,\n onBlur = props.onBlur,\n allowLeadingZeros = props.allowLeadingZeros;\n var numAsString = state.numAsString;\n var lastValue = state.value;\n this.focusedElm = null;\n clearTimeout(this.focusTimeout);\n\n if (!format) {\n // if the numAsString is not a valid number reset it to empty\n if (isNaN(parseFloat(numAsString))) {\n numAsString = '';\n }\n\n if (!allowLeadingZeros) {\n numAsString = fixLeadingZero(numAsString);\n }\n\n var formattedValue = this.formatNumString(numAsString); //change the state\n\n if (formattedValue !== lastValue) {\n // the event needs to be persisted because its properties can be accessed in an asynchronous way\n this.updateValue({\n formattedValue: formattedValue,\n numAsString: numAsString,\n input: e.target,\n setCaretPosition: false\n });\n onBlur(e);\n return;\n }\n }\n\n onBlur(e);\n }\n }, {\n key: \"onKeyDown\",\n value: function onKeyDown(e) {\n var el = e.target;\n var key = e.key;\n var selectionStart = el.selectionStart,\n selectionEnd = el.selectionEnd,\n _el$value = el.value,\n value = _el$value === void 0 ? '' : _el$value;\n var expectedCaretPosition;\n var _this$props12 = this.props,\n decimalScale = _this$props12.decimalScale,\n fixedDecimalScale = _this$props12.fixedDecimalScale,\n prefix = _this$props12.prefix,\n suffix = _this$props12.suffix,\n format = _this$props12.format,\n onKeyDown = _this$props12.onKeyDown;\n var ignoreDecimalSeparator = decimalScale !== undefined && fixedDecimalScale;\n var numRegex = this.getNumberRegex(false, ignoreDecimalSeparator);\n var negativeRegex = new RegExp('-');\n var isPatternFormat = typeof format === 'string';\n this.selectionBeforeInput = {\n selectionStart: selectionStart,\n selectionEnd: selectionEnd\n }; //Handle backspace and delete against non numerical/decimal characters or arrow keys\n\n if (key === 'ArrowLeft' || key === 'Backspace') {\n expectedCaretPosition = selectionStart - 1;\n } else if (key === 'ArrowRight') {\n expectedCaretPosition = selectionStart + 1;\n } else if (key === 'Delete') {\n expectedCaretPosition = selectionStart;\n } //if expectedCaretPosition is not set it means we don't want to Handle keyDown\n //also if multiple characters are selected don't handle\n\n\n if (expectedCaretPosition === undefined || selectionStart !== selectionEnd) {\n onKeyDown(e);\n return;\n }\n\n var newCaretPosition = expectedCaretPosition;\n var leftBound = isPatternFormat ? format.indexOf('#') : prefix.length;\n var rightBound = isPatternFormat ? format.lastIndexOf('#') + 1 : value.length - suffix.length;\n\n if (key === 'ArrowLeft' || key === 'ArrowRight') {\n var direction = key === 'ArrowLeft' ? 'left' : 'right';\n newCaretPosition = this.correctCaretPosition(value, expectedCaretPosition, direction);\n } else if (key === 'Delete' && !numRegex.test(value[expectedCaretPosition]) && !negativeRegex.test(value[expectedCaretPosition])) {\n while (!numRegex.test(value[newCaretPosition]) && newCaretPosition < rightBound) {\n newCaretPosition++;\n }\n } else if (key === 'Backspace' && !numRegex.test(value[expectedCaretPosition])) {\n /* NOTE: This is special case when backspace is pressed on a\n negative value while the cursor position is after prefix. We can't handle it on onChange because\n we will not have any information of keyPress\n */\n if (selectionStart <= leftBound + 1 && value[0] === '-' && typeof format === 'undefined') {\n var newValue = value.substring(1);\n this.updateValue({\n formattedValue: newValue,\n caretPos: newCaretPosition,\n input: el\n });\n } else if (!negativeRegex.test(value[expectedCaretPosition])) {\n while (!numRegex.test(value[newCaretPosition - 1]) && newCaretPosition > leftBound) {\n newCaretPosition--;\n }\n\n newCaretPosition = this.correctCaretPosition(value, newCaretPosition, 'left');\n }\n }\n\n if (newCaretPosition !== expectedCaretPosition || expectedCaretPosition < leftBound || expectedCaretPosition > rightBound) {\n e.preventDefault();\n this.setPatchedCaretPosition(el, newCaretPosition, value);\n }\n /* NOTE: this is just required for unit test as we need to get the newCaretPosition,\n Remove this when you find different solution */\n\n\n if (e.isUnitTestRun) {\n this.setPatchedCaretPosition(el, newCaretPosition, value);\n }\n\n onKeyDown(e);\n }\n /** required to handle the caret position when click anywhere within the input **/\n\n }, {\n key: \"onMouseUp\",\n value: function onMouseUp(e) {\n var el = e.target;\n /**\n * NOTE: we have to give default value for value as in case when custom input is provided\n * value can come as undefined when nothing is provided on value prop.\n */\n\n var selectionStart = el.selectionStart,\n selectionEnd = el.selectionEnd,\n _el$value2 = el.value,\n value = _el$value2 === void 0 ? '' : _el$value2;\n\n if (selectionStart === selectionEnd) {\n var caretPosition = this.correctCaretPosition(value, selectionStart);\n\n if (caretPosition !== selectionStart) {\n this.setPatchedCaretPosition(el, caretPosition, value);\n }\n }\n\n this.props.onMouseUp(e);\n }\n }, {\n key: \"onFocus\",\n value: function onFocus(e) {\n var _this2 = this; // Workaround Chrome and Safari bug https://bugs.chromium.org/p/chromium/issues/detail?id=779328\n // (onFocus event target selectionStart is always 0 before setTimeout)\n\n\n e.persist();\n this.focusedElm = e.target;\n this.focusTimeout = setTimeout(function () {\n var el = e.target;\n var selectionStart = el.selectionStart,\n selectionEnd = el.selectionEnd,\n _el$value3 = el.value,\n value = _el$value3 === void 0 ? '' : _el$value3;\n\n var caretPosition = _this2.correctCaretPosition(value, selectionStart); //setPatchedCaretPosition only when everything is not selected on focus (while tabbing into the field)\n\n\n if (caretPosition !== selectionStart && !(selectionStart === 0 && selectionEnd === value.length)) {\n _this2.setPatchedCaretPosition(el, caretPosition, value);\n }\n\n _this2.props.onFocus(e);\n }, 0);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props13 = this.props,\n type = _this$props13.type,\n displayType = _this$props13.displayType,\n customInput = _this$props13.customInput,\n renderText = _this$props13.renderText,\n getInputRef = _this$props13.getInputRef,\n format = _this$props13.format;\n var _this$state = this.state,\n value = _this$state.value,\n mounted = _this$state.mounted;\n var otherProps = omit(this.props, propTypes$1); // add input mode on element based on format prop and device once the component is mounted \n\n var inputMode = mounted && addInputMode(format) ? 'numeric' : undefined;\n\n var inputProps = _extends({\n inputMode: inputMode\n }, otherProps, {\n type: type,\n value: value,\n onChange: this.onChange,\n onKeyDown: this.onKeyDown,\n onMouseUp: this.onMouseUp,\n onFocus: this.onFocus,\n onBlur: this.onBlur\n });\n\n if (displayType === 'text') {\n return renderText ? renderText(value) || null : React.createElement(\"span\", _extends({}, otherProps, {\n ref: getInputRef\n }), value);\n } else if (customInput) {\n var CustomInput = customInput;\n return React.createElement(CustomInput, _extends({}, inputProps, {\n ref: getInputRef\n }));\n }\n\n return React.createElement(\"input\", _extends({}, inputProps, {\n ref: getInputRef\n }));\n }\n }]);\n\n return NumberFormat;\n}(React.Component);\n\nNumberFormat.defaultProps = defaultProps;\nexport default NumberFormat;","import React, { useState } from \"react\";\nimport styled from \"styled-components\";\nimport { InputContainer, InputStyle, Label } from \"./SharedStyles\";\n\nexport const Input = styled.input`\n ${InputStyle};\n box-shadow: 0px 3px 6px #00000000;\n`;\n\nexport const TextInputLarge = ({\n id,\n name = \"\",\n type = \"\",\n title = \"\",\n value = \"\",\n error,\n invertColors = false,\n required = false,\n onChange,\n onBlur,\n}) => {\n const [inputFocused, toggleInputFocus] = useState(false);\n\n const handleFocus = () => {\n toggleInputFocus(!inputFocused);\n };\n\n const handleBlur = (event) => {\n toggleInputFocus(!inputFocused);\n onBlur(event);\n };\n\n const isFilledOrActive = () => {\n return inputFocused || value;\n };\n\n return (\n \n \n \n \n );\n};\n","import React, { useState } from \"react\";\r\nimport Section from \"../../components/Section\";\r\nimport styled from \"styled-components\";\r\nimport { Container } from \"../../components/Container\";\r\nimport { Button } from \"../../components/Button\";\r\nimport PuffLoader from \"react-spinners/PuffLoader\";\r\nimport { useSnackbar } from \"react-simple-snackbar\";\r\nimport { useTheme } from \"styled-components\";\r\nimport { successSnackbar, errorSnackbar } from \"../../shared/SnackbarSettings\";\r\nimport { TextAreaInput } from \"../../components/Inputs\";\r\nimport { useForm, Controller } from \"react-hook-form\";\r\nimport NumberFormat from \"react-number-format\";\r\nimport { isEmail } from \"../../validators\";\r\nimport { CONTACT_URL } from \"../../API/ApiConstants\";\r\nimport { TextInputLarge } from \"../../components/Inputs/TextInputLarge\";\r\n\r\nconst ContactContainer = styled.div``;\r\n\r\nconst ContactInfo = styled.div`\r\n font-size: 18px;\r\n text-align: center;\r\n`;\r\n\r\nconst ContactForm = styled.form``;\r\n\r\nconst ContactSection = () => {\r\n const { colors } = useTheme();\r\n\r\n const [isSubmitting, setIsSubmitting] = useState(false);\r\n\r\n const { handleSubmit, errors, control, reset } = useForm();\r\n\r\n const [openSuccessSnackbar] = useSnackbar(successSnackbar(colors));\r\n const [openErrorSnackbar] = useSnackbar(errorSnackbar(colors));\r\n\r\n const onSubmit = async (formValues) => {\r\n try {\r\n setIsSubmitting(true);\r\n formValues.phone = formValues.phone.slice(3)?.replace(/\\D/g, \"\");\r\n\r\n const response = await fetch(CONTACT_URL, {\r\n method: \"POST\",\r\n headers: {\r\n Accept: \"application/json\",\r\n \"Content-Type\": \"application/json\",\r\n },\r\n body: JSON.stringify(formValues),\r\n });\r\n\r\n const { data: message } = await response.json();\r\n\r\n openSuccessSnackbar(message);\r\n\r\n reset(\r\n {\r\n name: \"\",\r\n email: \"\",\r\n phone: \"\",\r\n message: \"\",\r\n },\r\n {\r\n errors: false,\r\n dirtyFields: false,\r\n isDirty: false,\r\n isSubmitted: false,\r\n touched: false,\r\n isValid: false,\r\n submitCount: false,\r\n }\r\n );\r\n } catch (error) {\r\n openErrorSnackbar(\"Falha ao enviar o contato\");\r\n }\r\n setIsSubmitting(false);\r\n };\r\n\r\n function phoneMask(val) {\r\n const prefix = `+55 (${val.substring(2, 4)})`;\r\n\r\n if (val.length <= 12) {\r\n return prefix + \" \" + val.substring(4, 8) + \"-\" + val.substring(8, 12);\r\n }\r\n\r\n return prefix + \" 9 \" + val.substring(5, 9) + \"-\" + val.substring(9, 13);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Nos envie uma mensagem\r\n \r\n \r\n isEmail(value),\r\n }}\r\n required\r\n />\r\n \r\n }\r\n control={control}\r\n defaultValue=\"\"\r\n rules={{\r\n required: true,\r\n maxLength: 20,\r\n }}\r\n required\r\n />\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContactSection;\r\n","import React from \"react\";\n\nimport { Header } from \"../components/Header\";\nimport Footer from \"../components/Footer\";\nimport { Layout } from \"../components/Layout\";\nimport Hero from \"../sections/Home/Hero\";\nimport Features from \"../sections/Features\";\nimport HowItWorks from \"../sections/Home/HowItWorks\";\nimport ClientTestimonials from \"../sections/ClientTestimonials\";\nimport Newsletter from \"../sections/Newsletter\";\nimport LastNews from \"../sections/Home/LastNews\";\nimport Stroke from \"../components/Stroke\";\nimport { Container } from \"../components/Container\";\nimport { SEO } from \"../components/SEO\";\nimport FAQ from \"../sections/FAQ\";\nimport AboutUs from \"../sections/Home/AboutUs\";\nimport WhatWeAre from \"../sections/Home/WhatWeAre\";\nimport HowToSubscribe from \"../sections/Home/HowToSubscribe\";\nimport ContactSection from \"../sections/Home/ContactSection\";\n\nconst IndexPage = () => {\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\nexport default IndexPage;\n"],"sourceRoot":""}