{"version":3,"sources":["components/TopMenu/TopMenu.js","components/HomeHeader/HomeHeader.js","components/SolutionsSection/SolutionsSection.js","components/Quote/Quote.js","components/ProductOnHome_one/ProductOnHome_one.js","components/ProductOnHome_two/ProductOnHome_two.js","components/ProductOnHome_three/ProductOnHome_three.js","components/pages/Home.js","components/VideoHeader/VideoHeader.js","components/ServiceBasic/ServiceBasic.js","components/ServiceTwo/ServiceTwo.js","components/ServiceSimple/ServiceSimple.js","components/pages/Services.js","components/ProductHeader/ProductHeader.js","components/ProductDescription/ProductDescription.js","components/ProductBanner/ProductBanner.js","components/ProductPromotion/ProductPromotion.js","components/pages/Work.js","components/SimpleHeader/SimpleHeader.js","components/ContactForm/ContactForm.js","components/pages/Contact.js","components/AboutUsContent/AboutUsContent.js","components/SimpleBanner/SimpleBanner.js","components/pages/About.js","components/Footer/Footer.js","components/DefaultLayout.js","App.js","serviceWorker.js","index.js"],"names":["isOpen","keys","37","38","39","40","preventDefault","e","window","event","returnValue","preventDefaultForScrollKeys","keyCode","TopMenu","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","iconToggler","collapse","menusInfo","undefined","menuBG","toggleCustomNavbar","bind","assertThisInitialized","setState","collapsed","addEventListener","onwheel","onmousewheel","document","ontouchmove","onkeydown","body","style","overflow","removeEventListener","menuIcon","menuComplement","bgColor","component","itemList","itemID","i","length","id","selectItemByID","menuID","react_default","a","createElement","onClick","className","src","alt","acf","logo_icon","url","backgroundColor","reactstrap_es","color","dark","href","navbar","Link","to","Component","HomeHeader","pageInfo","clients","openModal","_this2","server","wpLocation","pageID","fetch","then","response","json","urlClients","console","log","build_default","videoId","bg_video_id","aspectRatio","overlay","onReady","backgroundImage","bg_image","title_line_1","title_line_2","base_color","subtitle","map","item","key","website","title","rendered","rel","target","better_featured_image","source_url","SolutionsSection","services","cards","card_icon","background","mini_banner_background_image","mini_banner_text_line_1","mini_banner_text_line_2","mini_banner_image","selectItemByIndex","itemIndex","cantidadTestimonios","positionTestimonio","quoteSelectedIndex","Quote","quote","quoteIndex","testimonio","fbLink","linkedInLink","GPlusLink","facebook_url","google_plus_url","linked_in_url","testimonial_background","client_selfie","author","job","company_name","ProductOnHome_one","productsList","position","slug","product_background_image","product_logo","product_descriptive_image","product_subtitle","product_description_paragraph_title","ProductOnHome_two","ProductOnHome_three","Home","quotes","products","loading","contentLoaded","loadInfo","siteData","name","setTimeout","testimonios","lib_default","assign","dots","infinite","speed","slidesToShow","slidesToScroll","autoplay","components_Quote_Quote","components_HomeHeader_HomeHeader","loadingControl","components_SolutionsSection_SolutionsSection","components_ProductOnHome_one_ProductOnHome_one","components_ProductOnHome_two_ProductOnHome_two","components_ProductOnHome_three_ProductOnHome_three","dist_default","spinnerColor","textColor","logoSrc","text","VideoHeader","videoIsOpen","header_icon","ServiceBasic","serviceSelected","serviceList","serviceID","selectServiceByID","service","replace","alt_text","description","ServiceTwo","ServiceSimple","ServiceSimpleBG","Services","components_VideoHeader_VideoHeader","components_ServiceBasic_ServiceBasic","components_ServiceTwo_ServiceTwo","components_ServiceSimple_ServiceSimple","ProductHeader","sizes","large","ProductDescription","tecnologies","technologiesUsed","technologiesOnProps","technologies_used_on_this_product","technologiesOnState","b","ID","push","product_description_paragraph","product_characteristic_one","product_characteristic_two","product_characteristics_list","icon","ProductBanner","productInfo","product_banner_background_image","product_banner_title","product_banner_subtitle","googlePlay","iOs","url_from_google_play","url_web","url_from_apple_store","product_promotion_title","product_promotion_description","Work","searchValue","ret","searchItem","match","params","components_ProductHeader_ProductHeader","components_ProductDescription_ProductDescription","components_ProductBanner_ProductBanner","ProductPromotion_ProductPromotion","Redirect","SimpleHeader","fitty","require","$","ContactForm","contactName","contactEmail","contactMessage","contactReason","contactReasonQuote","contactReasonHelp","contactReasonComment","handleSubmit","handleChange","handleChangeMessage","handleChangeName","handleChangeReason","maxSize","value","checked","numberOfReasons","message","ajax","type","data","email","reason","cache","success","error","xhr","status","err","ReactGA","category","action","swal","html","showConfirmButton","timer","onBeforeOpen","onClose","clearInterval","timerInterval","result","dismiss","DismissReason","forceUpdate","onSubmit","for","placeholder","onChange","required","label","rows","cols","Contact","components_SimpleHeader_SimpleHeader","components_ContactForm_ContactForm","AboutUsContent","about_us_content_title_line_1","about_us_content_title_line_2","card_image","about_us_content_subtitle","about_us_content_description","SimpleBanner","about_us_banner_background_image","about_us_banner_title_line_1","about_us_banner_title_line_2","about_us_banner_description","About","components_AboutUsContent_AboutUsContent","components_SimpleBanner_SimpleBanner","Footer","DefaultLayout","pathName","openMessagePopup","imageUrl","customClass","showCancelButton","confirmButtonColor","cancelButtonColor","confirmButtonText","cancelButtonText","location","el","setAttribute","left","appendChild","select","execCommand","removeChild","BrowserRouter","components_TopMenu_TopMenu","Switch","Route","exact","path","render","components_pages_Home","pages_About","pages_Contact","pages_Services","pages_Work","components_Footer_Footer","App","contentLoading","initialize","pageview","react_meta_tags_lib_default","content","components_DefaultLayout","isLocalhost","Boolean","hostname","registerValidSW","swUrl","config","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","onUpdate","onSuccess","catch","ReactDOM","src_App_0","getElementById","URL","process","origin","concat","contentType","headers","get","indexOf","ready","unregister","reload","checkValidServiceWorker"],"mappings":"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","file":"static/js/main.026451f4.chunk.js","sourcesContent":["import React, { Component } from 'react';\r\nimport {Link} from \"react-router-dom\";\r\nimport './TopMenu.css';\r\nimport { Collapse, Navbar, NavbarBrand, Nav, NavItem } from 'reactstrap';\r\n\r\n// variable utilizada para controlar el estado del menu: abierto o cerrado:\r\nvar isOpen=false;\r\n//varaible utilizada para desactivar el scroll, son las teclas que se pueden utilizar para hacer scroll\r\nvar keys = {37: 1, 38: 1, 39: 1, 40: 1};\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectItemByID.\r\n Descripción: Método creado para seleccionar un item del array, por su id,\r\n luego se crea en el state del componente actual\r\n Fecha de creación: 5/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction selectItemByID(component, itemList, itemID) {\r\n for (let i = 0; i < itemList.length; i++) {\r\n // eslint-disable-next-line\r\n if(itemID==itemList[i].id){\r\n component.state={menusInfo : itemList[i]};\r\n }\r\n }\r\n}\r\n/*-----------------------------------------------------------------------------\r\n Nombre:preventDefault.\r\n Descripción: Método creado para desactivar el scroll del sitio, se utiliza cuando se muestra el menu abierto\r\n Fecha de creación: 15/01/2019\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction preventDefault(e) {\r\n e = e || window.event;\r\n if (e.preventDefault)\r\n e.preventDefault();\r\n e.returnValue = false;\r\n}\r\n/*-----------------------------------------------------------------------------\r\n Nombre:preventDefaultForScrollKeys.\r\n Descripción: Método creado para desactivar el scroll del sitio, se utiliza cuando se muestra el menu abierto\r\n Fecha de creación: 15/01/2019\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction preventDefaultForScrollKeys(e) {\r\n if (keys[e.keyCode]) {\r\n preventDefault(e);\r\n return false;\r\n }\r\n}\r\n/*-----------------------------------------------------------------------------\r\n Nombre:disableScroll.\r\n Descripción: Método creado para desactivar el scroll del sitio, se utiliza cuando se muestra el menu abierto\r\n Fecha de creación: 15/01/2019\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction disableScroll() {\r\n if (window.addEventListener) // older FF\r\n window.addEventListener('DOMMouseScroll', preventDefault, false);\r\n window.onwheel = preventDefault; // modern standard\r\n window.onmousewheel = document.onmousewheel = preventDefault; // older browsers, IE\r\n window.ontouchmove = preventDefault; // mobile\r\n document.onkeydown = preventDefaultForScrollKeys;\r\n\r\n document.body.style.overflow = 'hidden';\r\n}\r\n/*-----------------------------------------------------------------------------\r\n Nombre:enableScroll.\r\n Descripción: Método creado para activar el scroll del sitio, se utiliza cuando se muestra el menu abierto\r\n Fecha de creación: 15/01/2019\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction enableScroll() {\r\n if (window.removeEventListener)\r\n window.removeEventListener('DOMMouseScroll', preventDefault, false);\r\n window.onmousewheel = document.onmousewheel = null;\r\n window.onwheel = null;\r\n window.ontouchmove = null;\r\n document.onkeydown = null;\r\n\r\n document.body.style.overflow = 'visible';\r\n}\r\n\r\nclass TopMenu extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n iconToggler: 'res/icons/menuIcon.svg',\r\n collapse: true,\r\n menusInfo: undefined,\r\n menuBG: '#cacaca'\r\n };\r\n this.toggleCustomNavbar = this.toggleCustomNavbar.bind(this);\r\n }\r\n\r\n toggleCustomNavbar() {\r\n isOpen = !isOpen;\r\n this.setState({\r\n collapsed: !this.state.collapse\r\n });\r\n if (isOpen) {\r\n this.setState({\r\n menuBG: 'rgba(0,0,0,0.79)'\r\n });\r\n disableScroll();\r\n } else {\r\n this.setState({\r\n menuBG: '#000'\r\n });\r\n enableScroll();\r\n }\r\n }\r\n\r\n componentWillMount(){\r\n this.setState({\r\n menuBG: '#000'\r\n });\r\n }\r\n\r\n render() {\r\n var bgColor = this.state.menuBG;\r\n selectItemByID(this, this.props.menusInfo, this.props.menuID);\r\n if(this.state.menusInfo !== undefined){\r\n let menuIcon, menuComplement;\r\n if( isOpen ){\r\n menuIcon = \"Menu;\r\n menuComplement =

The best way to get it done faster is to start sooner

\r\n\r\n } else {\r\n menuIcon = \"Menu;\r\n menuComplement = \"HomePage\"/;\r\n\r\n }\r\n return (\r\n
\r\n \r\n
\r\n \r\n {menuComplement}\r\n \r\n {menuIcon}\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport default TopMenu;\r\n","import React, { Component } from 'react';\r\nimport './HomeHeader.css';\r\nimport YoutubeBackground from 'react-youtube-background'\r\n\r\nclass HomeHeader extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined,\r\n clients: undefined\r\n };\r\n this.openModal = this.openModal.bind(this)\r\n }\r\n\r\n openModal () {\r\n this.setState({isOpen: true})\r\n }\r\n\r\n componentWillMount() {\r\n let url = this.props.server+this.props.wpLocation+\"wp-json/wp/v2/pages/\"+this.props.pageID;\r\n fetch(url)\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((pageInfo) => {\r\n this.setState({ pageInfo: pageInfo });\r\n });\r\n let urlClients = this.props.server+this.props.wpLocation+\"wp-json/wp/v2/clients/\";\r\n fetch(urlClients)\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((clients) => {\r\n this.setState({ clients: clients });\r\n });\r\n }\r\n\r\n render() {\r\n if ( this.state.pageInfo !== undefined && this.state.clients !== undefined ) {\r\n console.log(this.state.clients)\r\n return (\r\n
\r\n \"jssO8-5qmag\"\r\n aspectRatio={\"16:9\"} // default -> \"16:9\"\r\n overlay={\"rgba(0,0,0,.7)\"} // defaults -> null | e.g. \"rgba(0,0,0,.4)\"\r\n className={\"bg_video_container\"} // defaults -> null\r\n onReady={null} // defaults -> null\r\n >
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{this.state.pageInfo.acf.title_line_1}

\r\n

{this.state.pageInfo.acf.title_line_2}

\r\n
\r\n

{this.state.pageInfo.acf.subtitle} & more

\r\n
\r\n
\r\n Let's go\r\n
\r\n
\r\n
\r\n {/*Elemento comentado, descomentar cuando el chat este listo*/}\r\n
\r\n {/*
*/}\r\n
These are our clients. Wanna Join?
\r\n
\r\n {this.state.clients.map((item, i) =>\r\n
\r\n \r\n {item.better_featured_image.alt}/\r\n \r\n
\r\n )}\r\n
\r\n
\r\n\r\n {/*Elemento comentado, descomentar cuando el chat este listo*/}\r\n
\r\n
Let's talk
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return
\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default HomeHeader;\r\n","import React, { Component } from 'react';\r\nimport './SolutionsSection.css';\r\n\r\n//Variable constante para establecer el servidor de wordpress\r\nvar server = \"\";\r\nvar wpLocation = \"\";\r\n\r\nclass SolutionsSection extends Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n services: [],\r\n pageInfo: []\r\n }\r\n }\r\n\r\n\r\n componentWillMount(){\r\n //Variable constante para establecer el servidor de wordpress\r\n server = this.props.server;\r\n wpLocation = this.props.wpLocation;\r\n\r\n fetch(server+wpLocation+'wp-json/wp/v2/services/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((services) => {\r\n this.setState({ services: services });\r\n });\r\n fetch(this.props.server+this.props.wpLocation+\"wp-json/wp/v2/pages/\"+this.props.pageID)\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((pageInfo) => {\r\n this.setState({ pageInfo: pageInfo });\r\n });\r\n }\r\n\r\n\r\n render() {\r\n //Si no hay mas de dos servicios, esta seccion se oculta\r\n if(this.state.services.length > 2 && this.state.pageInfo.acf !== undefined) {\r\n console.log('dsf')\r\n console.log(this.state.pageInfo)\r\n var cards = this.state.services.map(function(item, i){\r\n if(i < 10) {\r\n return \r\n {item.acf.card_icon.alt}/\r\n

{item.title.rendered}

\r\n
;\r\n } else {\r\n return ;\r\n }\r\n });\r\n\r\n\r\n return (\r\n
\r\n
\r\n

We are a group of dedicated people who love making cutting-edge solutions

\r\n
\r\n
\r\n {cards}\r\n
\r\n
\r\n
\r\n
\r\n

And much more

\r\n Come and see\r\n
\r\n
\r\n
\r\n

{this.state.pageInfo.acf.mini_banner_text_line_1}

\r\n

{this.state.pageInfo.acf.mini_banner_text_line_2}

\r\n
\r\n
\r\n {this.state.pageInfo.acf.mini_banner_image.alt}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return(\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n}\r\n\r\nexport default SolutionsSection;\r\n","import React, { Component } from 'react';\r\nimport './Quote.css';\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectItemByID.\r\n Descripción: Método creado para seleccionar un item del array, por su id,\r\n luego se crea en el state del componente actual\r\n Fecha de creación: 5/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\n// function selectItemByID(component, itemList, itemID) {\r\n// for (let i = 0; i < itemList.length; i++) {\r\n// if(itemID===itemList[i].id){\r\n// component.state.quoteSelected = itemList[i];\r\n// }\r\n// }\r\n// }\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectItemByIndex.\r\n Descripción: Método creado para seleccionar un item del array, por su posicion en el array,\r\n si no existe, elige el anterior\r\n Fecha de creación: 5/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction selectItemByIndex(component, itemList, itemIndex) {\r\n let cantidadTestimonios = itemList.length;\r\n let positionTestimonio = itemIndex;\r\n\r\n if (positionTestimonio < 0){\r\n positionTestimonio = 0;\r\n }\r\n if (positionTestimonio > cantidadTestimonios) {\r\n positionTestimonio = cantidadTestimonios;\r\n }\r\n\r\n component.state.quoteSelectedIndex = positionTestimonio-1;\r\n // console.log(positionTestimonio)\r\n // console.log(component.props.quote[positionTestimonio])\r\n}\r\n\r\nclass Quote extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n quoteSelectedIndex: undefined,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n // selectItemByID(this, this.props.quote, this.props.quoteID);\r\n selectItemByIndex(this, this.props.quote, this.props.quoteIndex);\r\n }\r\n\r\n render() {\r\n // selectItemByID(this, this.props.quote, this.props.quoteID);\r\n selectItemByIndex(this, this.props.quote, this.props.quoteIndex);\r\n\r\n\r\n let testimonio = this.props.quote[this.state.quoteSelectedIndex];\r\n\r\n let fbLink =\"\", linkedInLink=\"\", GPlusLink=\"\";\r\n if ( testimonio.acf.facebook_url !== ''){\r\n fbLink = \"Facebook;\r\n }\r\n if ( testimonio.acf.google_plus_url !== ''){\r\n GPlusLink = \"Google;\r\n }\r\n if ( testimonio.acf.linked_in_url !== ''){\r\n linkedInLink = \"LinkedIn;\r\n }\r\n return (\r\n\r\n
\r\n {console.log(testimonio)}\r\n
\r\n
\r\n
\r\n
\r\n {testimonio.acf.client_selfie.alt}/\r\n
\r\n

{testimonio.acf.author}

\r\n

{testimonio.acf.job} of {testimonio.acf.company_name}

\r\n
\r\n
\r\n
\"{testimonio.acf.quote}\"
\r\n
\r\n {fbLink}\r\n {linkedInLink}\r\n {GPlusLink}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n\r\n\r\n\r\n\r\n }\r\n\r\n}\r\n\r\nexport default Quote;\r\n","import React, { Component } from 'react';\r\nimport './ProductOnHome_one.css';\r\n\r\nclass ProductOnHome_one extends Component {\r\n\r\n render() {\r\n if (this.props.productsList[0] !== undefined) {\r\n var item = undefined;\r\n for (let i = 0; i < this.props.productsList.length; i++) {\r\n if ( this.props.productsList[i].acf.position === '1' ) {\r\n item = this.props.productsList[i];\r\n }\r\n }\r\n if ( item !== undefined ) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
A solution made for
\r\n
\r\n {\"Image\r\n
\r\n
\r\n
\r\n

{ item.acf.product_subtitle }

\r\n
{ item.acf.product_description_paragraph_title }
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default ProductOnHome_one;\r\n","import React, { Component } from 'react';\r\nimport './ProductOnHome_two.css';\r\n\r\nclass ProductOnHome_two extends Component {\r\n\r\n render() {\r\n\r\n if (this.props.productsList[1] !== undefined) {\r\n var item = undefined;\r\n for (let i = 0; i < this.props.productsList.length; i++) {\r\n if ( this.props.productsList[i].acf.position === '2' ) {\r\n item = this.props.productsList[i];\r\n }\r\n }\r\n\r\n if ( item !== undefined ) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
A solution made for
\r\n {\"Image\r\n
\r\n
\r\n
\r\n
\r\n
{ item.acf.product_subtitle }
\r\n
{ item.acf.product_description_paragraph_title }
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n\r\n\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default ProductOnHome_two;\r\n","import React, { Component } from 'react';\r\nimport './ProductOnHome_three.css';\r\n\r\nclass ProductOnHome_three extends Component {\r\n\r\n render() {\r\n if (this.props.productsList[2] !== undefined) {\r\n var item = undefined;\r\n for (let i = 0; i < this.props.productsList.length; i++) {\r\n if ( this.props.productsList[i].acf.position === '3' ) {\r\n item = this.props.productsList[i];\r\n }\r\n }\r\n if ( item !== undefined ) {\r\n return (\r\n \r\n
\r\n
\r\n
\r\n
\r\n
A solution made for
\r\n {\"Image\r\n
\r\n
\r\n
\r\n
\r\n
{ item.acf.product_subtitle }
\r\n
{ item.acf.product_description_paragraph_title }
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n\r\n\r\n\r\n } else {\r\n return (\r\n \r\n )\r\n }\r\n }\r\n}\r\n\r\nexport default ProductOnHome_three;\r\n","import React, { Component } from 'react';\r\nimport Slider from \"react-slick\";\r\nimport HomeHeader from \"../HomeHeader/HomeHeader\";\r\nimport './Home.css';\r\nimport \"../../../node_modules/slick-carousel/slick/slick.css\";\r\nimport \"../../../node_modules/slick-carousel/slick/slick-theme.css\";\r\nimport SolutionsSection from \"../SolutionsSection/SolutionsSection\";\r\nimport Quote from '../Quote/Quote';\r\nimport LoadingScreen from \"react-loading-screen\";\r\nimport ProductOnHomeOne from \"../ProductOnHome_one/ProductOnHome_one\";\r\nimport ProductOnHomeTwo from \"../ProductOnHome_two/ProductOnHome_two\";\r\nimport ProductOnHomeThree from \"../ProductOnHome_three/ProductOnHome_three\";\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:loadInfo.\r\n Descripción: Metodo para obtener los datos de wordpress hasta que se carguen.\r\n Fecha de creación: 4/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction loadInfo(component) {\r\n if(component.props.siteData.name === undefined) {\r\n document.title = \"Making the magic ...\" ;\r\n setTimeout(function(){\r\n loadInfo(component);\r\n }, 30);\r\n } else {\r\n document.title = component.props.siteData.name + \" - It's possible\";\r\n }\r\n}\r\n\r\nclass Home extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n quotes: [],\r\n products: [],\r\n loading: true\r\n }\r\n this.contentLoaded = this.contentLoaded.bind(this)\r\n }\r\n\r\n componentWillMount(){\r\n fetch(this.props.server+this.props.wpLocation+'wp-json/wp/v2/testimonials/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((quotes) => {\r\n this.setState({ quotes: quotes });\r\n });\r\n fetch(this.props.server+this.props.wpLocation+'wp-json/wp/v2/products/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((products) => {\r\n this.setState({ products: products });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n loadInfo(this);\r\n }\r\n\r\n contentLoaded () {\r\n this.setState({\r\n loading: false\r\n });\r\n }\r\n\r\n render() {\r\n //Configuramos el slider de los tertimonios\r\n const sliderSettings = {\r\n dots: true,\r\n infinite: true,\r\n speed: 600,\r\n slidesToShow: 1,\r\n slidesToScroll: 1,\r\n autoplay: true\r\n };\r\n if ( this.state.quotes[0] !== undefined && this.state.products[0] !== undefined) {\r\n //Variable que cambia entre un testimonio y un slider de testimonios\r\n let testimonios = ;\r\n let component = this;\r\n if(this.state.quotes.length > 1) {\r\n testimonios=
\r\n \r\n {this.state.quotes.map(function (item, i) {\r\n return
\r\n \r\n
;\r\n })}\r\n
\r\n
;\r\n } else {\r\n testimonios=\r\n ;\r\n }\r\n return (\r\n
\r\n \r\n \r\n
\r\n
\r\n

An example of our work

\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n {testimonios}\r\n\r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n

Content done

\r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Home;\r\n","import React, { Component } from 'react';\r\nimport './VideoHeader.css';\r\n/*Youtube popup component */\r\nimport '../../../node_modules/react-modal-video/scss/modal-video.scss';\r\n\r\nclass VideoHeader extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined,\r\n videoIsOpen: false\r\n }\r\n this.openModal = this.openModal.bind(this)\r\n }\r\n\r\n openModal () {\r\n this.setState({isOpen: true})\r\n }\r\n\r\n componentWillMount() {\r\n let url = this.props.server+this.props.wpLocation+\"wp-json/wp/v2/pages/\"+this.props.pageID;\r\n fetch(url)\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((pageInfo) => {\r\n this.setState({ pageInfo: pageInfo });\r\n });\r\n }\r\n\r\n render() {\r\n if ( this.state.pageInfo !== undefined ) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.pageInfo.acf.title_line_1}

\r\n

{this.state.pageInfo.acf.title_line_2}

\r\n
\r\n

{this.state.pageInfo.acf.subtitle}

\r\n\r\n
\r\n {/* !! - Video comentado temporalmente, si se descomenta, lee los datos de wordpress y despliega el video en el componente*/}\r\n {/*
*/}\r\n {/* this.setState({isOpen: false})} />*/}\r\n {/*{this.state.pageInfo.acf.video_img.alt_text}/*/}\r\n {/*{this.state.pageInfo.acf.video_play_btn.alt_text}/*/}\r\n {/*
*/}\r\n {/*
*/}\r\n
\r\n
\r\n {this.state.pageInfo.acf.header_icon.alt}/\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return
\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default VideoHeader;\r\n","import React, { Component } from 'react';\r\nimport './ServiceBasic.css';\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectServiceByID.\r\n Descripción: Método creado para seleccionar un servicio del array, por su id,\r\n luego se crea en el state del componente ServiceBasic (componente actual)\r\n Fecha de creación: 5/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction selectServiceByID(component, serviceList, serviceID) {\r\n for (let i = 0; i < serviceList.length; i++) {\r\n if(serviceID===serviceList[i].id){\r\n component.state.serviceSelected = serviceList[i];\r\n }\r\n }\r\n}\r\n\r\nclass ServiceBasic extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { serviceSelected: undefined }\r\n }\r\n\r\n render() {\r\n\r\n selectServiceByID(this, this.props.service, this.props.serviceID);\r\n // console.log(this.props.service)\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {this.state.serviceSelected.better_featured_image.alt_text}/\r\n
\r\n
\r\n

{this.state.serviceSelected.acf.title_line_1}

\r\n

{this.state.serviceSelected.acf.title_line_2}

\r\n
\r\n

{this.state.serviceSelected.acf.description}

\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ServiceBasic;\r\n","import React, { Component } from 'react';\r\nimport './ServiceTwo.css';\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectServiceByID.\r\n Descripción: Método creado para seleccionar un servicio del array, por su id,\r\n luego se crea en el state del componente ServiceBasic (componente actual)\r\n Fecha de creación: 5/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction selectServiceByID(component, serviceList, serviceID) {\r\n for (let i = 0; i < serviceList.length; i++) {\r\n if(serviceID===serviceList[i].id){\r\n component.state.serviceSelected = serviceList[i];\r\n }\r\n }\r\n}\r\n\r\nclass ServiceTwo extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { serviceSelected: undefined }\r\n }\r\n\r\n render() {\r\n\r\n selectServiceByID(this, this.props.service, this.props.serviceID);\r\n // console.log(this.props.service)\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.serviceSelected.acf.title_line_1}

\r\n

{this.state.serviceSelected.acf.title_line_2}

\r\n
\r\n

{this.state.serviceSelected.acf.description}

\r\n
\r\n
\r\n {this.state.serviceSelected.better_featured_image.alt_text}/\r\n
\r\n
\r\n
\r\n
\r\n\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ServiceTwo;\r\n","import React, { Component } from 'react';\r\nimport './ServiceSimple.css';\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectServiceByID.\r\n Descripción: Método creado para seleccionar un servicio del array, por su id,\r\n luego se crea en el state del componente ServiceSimple (componente actual)\r\n Fecha de creación: 07/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction selectServiceByID(component, serviceList, serviceID) {\r\n for (let i = 0; i < serviceList.length; i++) {\r\n if(serviceID===serviceList[i].id){\r\n component.state.serviceSelected = serviceList[i];\r\n }\r\n }\r\n}\r\n\r\nclass ServiceSimple extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = { serviceSelected: undefined }\r\n }\r\n\r\n render (){\r\n selectServiceByID(this, this.props.service, this.props.serviceID);\r\n let ServiceSimpleBG = '#000';\r\n if( this.state.serviceSelected.better_featured_image !== null) {\r\n ServiceSimpleBG = 'url('+this.state.serviceSelected.better_featured_image.source_url+')';\r\n }\r\n return (\r\n
\r\n {/*
*/}\r\n
\r\n

{this.state.serviceSelected.acf.title_line_1}

\r\n

{this.state.serviceSelected.acf.title_line_2}

\r\n
\r\n
{this.state.serviceSelected.acf.description}
\r\n
\r\n
\r\n );\r\n };\r\n}\r\n\r\nexport default ServiceSimple;","import React, { Component } from 'react';\r\n/* Componentes propios */\r\nimport VideoHeader from '../VideoHeader/VideoHeader';\r\nimport ServiceBasic from '../ServiceBasic/ServiceBasic';\r\nimport ServiceTwo from '../ServiceTwo/ServiceTwo';\r\nimport Quote from '../Quote/Quote';\r\nimport ServiceSimple from \"../ServiceSimple/ServiceSimple\";\r\nimport LoadingScreen from \"react-loading-screen\";\r\n\r\n//Variable constante para establecer el servidor de wordpress\r\nvar server = \"\";\r\nvar wpLocation = \"\";\r\n\r\nclass Services extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n services: [],\r\n quotes: [],\r\n contentLoaded: true\r\n }\r\n }\r\n componentWillMount(){\r\n //Variable constante para establecer el servidor de wordpress\r\n server = this.props.server;\r\n wpLocation = this.props.wpLocation;\r\n\r\n fetch(server+wpLocation+'wp-json/wp/v2/services/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((services) => {\r\n this.setState({ services: services });\r\n });\r\n fetch(server+wpLocation+'wp-json/wp/v2/testimonials/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((quotes) => {\r\n this.setState({ quotes: quotes });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n contentLoaded: false\r\n })\r\n }\r\n\r\n render() {\r\n if (this.state.services.length > 0 && this.state.quotes.length > 0) {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n )\r\n } else {\r\n return (\r\n \r\n

Loadable content

\r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Services;\r\n","import React, { Component } from 'react';\r\nimport './ProductHeader.css';\r\n\r\nclass ProductHeader extends Component {\r\n render() {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n {this.props.item.acf.product_logo.alt}\r\n
\r\n

{this.props.item.acf.product_subtitle}

\r\n
\r\n
\r\n
\r\n
\r\n {this.props.item.acf.product_descriptive_image.alt}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default ProductHeader;\r\n","import React, { Component } from 'react';\r\nimport './ProductDescription.css';\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre: Array.prototype.compareWith\r\n Descripción: Método creado para buscar elementos en dos arreglos, los compara\r\n retorna los datos que coinciden en un arreglo\r\n Fecha de creación: 12/12/2018\r\n Autor: Josué Somarribas.\r\n-------------------------------------------------------------------------------*/\r\n// Array.prototype.compareWith = function(arr2) {\r\n// var coincidence = [];\r\n// this.sort();\r\n// arr2.sort();\r\n// for(var i = 0; i < this.length; i += 1) {\r\n// // if(arr2.indexOf(this[i]).id > -1){\r\n// console.log(arr2[i]ID)\r\n// coincidence.push(this[i]);\r\n// // }\r\n// }\r\n// return coincidence;\r\n// };\r\n\r\nclass ProductDescription extends Component {\r\n\r\n constructor(props){\r\n super(props);\r\n this.state={\r\n tecnologies: undefined\r\n };\r\n }\r\n\r\n componentWillMount(){\r\n fetch(this.props.server+this.props.wpLocation+'wp-json/wp/v2/technologies/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((tecnologies) => {\r\n this.setState({ tecnologies: tecnologies });\r\n });\r\n\r\n }\r\n\r\n render() {\r\n if(this.state.tecnologies !== undefined) {\r\n // Comparamos los dos arreglos y obtenemos las coincidencias.\r\n // Estas son las tecnologias utilizadas en este producto\r\n let technologiesUsed = [];\r\n let technologiesOnProps = this.props.item.acf.technologies_used_on_this_product;\r\n let technologiesOnState = this.state.tecnologies;\r\n\r\n for(var i = 0; i < technologiesOnProps.length; i += 1) {\r\n for(var b = 0; b < technologiesOnState.length; b += 1) {\r\n if (technologiesOnProps[i].ID === technologiesOnState[b].id) {\r\n console.log(technologiesOnProps[i].ID +\"==?\"+technologiesOnState[b].id)\r\n technologiesUsed.push(technologiesOnState[b]);\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.props.item.acf.product_description_paragraph_title}

\r\n

{this.props.item.acf.product_description_paragraph}

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

{this.props.item.acf.product_characteristic_one}

\r\n

{this.props.item.acf.product_characteristic_two}

\r\n\r\n {/*
*/}\r\n
\r\n

{this.props.item.acf.product_characteristics_list}

\r\n {technologiesUsed.map((item, i) =>\r\n
\r\n {item.acf.icon.alt}/\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n )\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport default ProductDescription;\r\n","import React, { Component } from 'react';\r\nimport './ProductBanner.css';\r\n\r\nclass ProductBanner extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n productInfo: undefined\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.setState({\r\n productInfo: this.props.productInfo\r\n });\r\n }\r\n\r\n render() {\r\n if ( this.state.productInfo !== undefined ) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.productInfo.acf.product_banner_title}

\r\n {/*
*/}\r\n
\r\n
{this.state.productInfo.acf.product_banner_subtitle}
\r\n
\r\n
\r\n \"Proudly\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return

Cargando ...

\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default ProductBanner;\r\n","import React, { Component } from 'react';\r\nimport './ProductPromotion.css';\r\n\r\n\r\nclass ProductBanner extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n productInfo: undefined\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.setState({\r\n productInfo: this.props.productInfo\r\n });\r\n }\r\n\r\n\r\n render() {\r\n if ( this.state.productInfo !== undefined ) {\r\n //Verificamos que esté establecida l a url de google play / apple story y sitio web\r\n //si no está establecida, se imprime un span vacío\r\n let googlePlay, iOs, website;\r\n if(this.state.productInfo.acf.url_from_google_play === \"\"){\r\n googlePlay = \r\n } else {\r\n googlePlay = \r\n \"Proudly\r\n ;\r\n }\r\n if(this.state.productInfo.acf.url_web === \"\"){\r\n website = \r\n } else {\r\n website = \r\n \"Proudly\r\n ;\r\n }\r\n if(this.state.productInfo.acf.url_from_apple_store === \"\"){\r\n iOs = \r\n } else {\r\n iOs = \r\n \"Proudly\r\n ;\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Try it yourself!

\r\n {googlePlay}\r\n {iOs}\r\n {website}\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.productInfo.acf.product_promotion_title}

\r\n
{this.state.productInfo.acf.product_promotion_description}
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return

Cargando ...

\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default ProductBanner;\r\n","import React, { Component } from 'react';\r\nimport LoadingScreen from \"react-loading-screen\";\r\nimport {Redirect} from \"react-router-dom\";\r\n\r\nimport ProductHeader from \"../ProductHeader/ProductHeader\";\r\nimport ProductDescription from \"../ProductDescription/ProductDescription\";\r\nimport ProductBanner from \"../ProductBanner/ProductBanner\";\r\nimport ProductPromotion from \"../ProductPromotion/ProductPromotion\";\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:searchItem.\r\n Descripción: Método creado para buscar elementos, segun los datos brindados\r\n Fecha de creación: 12/12/2018\r\n Autor: Josué Somarribas.\r\n-------------------------------------------------------------------------------*/\r\nfunction searchItem(component, itemList, searchValue) {\r\n var ret = false;\r\n for (let i = 0; i < itemList.length; i++) {\r\n console.log(searchValue+\"=?\"+itemList[i].acf.slug)\r\n if(searchValue===itemList[i].acf.slug){\r\n ret = itemList[i];\r\n // return true;\r\n\r\n } else {\r\n // ret = false;\r\n }\r\n }\r\n return ret;\r\n}\r\n/*-----------------------------------------------------------------------------\r\n Nombre:loadInfo.\r\n Descripción: Metodo para obtener los datos de wordpress hasta que se carguen.\r\n Fecha de creación: 4/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction loadInfo(component) {\r\n if(component.props.siteData.name === undefined) {\r\n document.title = \"Making the magic ...\" ;\r\n setTimeout(function(){\r\n loadInfo(component);\r\n }, 30);\r\n } else {\r\n document.title = component.props.siteData.name + \" - Work\";\r\n }\r\n}\r\n\r\nclass Work extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n products: []\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n loadInfo(this);\r\n }\r\n\r\n componentWillMount() {\r\n fetch(this.props.server+this.props.wpLocation+'wp-json/wp/v2/products/')\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((products) => {\r\n this.setState({ products: products });\r\n });\r\n }\r\n\r\n render() {\r\n if( this.state.products[0] !== undefined ){\r\n let item = searchItem(this, this.state.products, this.props.match.params.id);\r\n if ( item !==false ){\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n\r\n\r\n\r\n } else {\r\n return (\r\n \r\n

Content done

\r\n \r\n );\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport default Work;\r\n","import React, { Component } from 'react';\r\nimport './SimpleHeader.css';\r\n\r\nclass SimpleHeader extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.setState({\r\n pageInfo: this.props.pageInfo\r\n });\r\n }\r\n\r\n render() {\r\n if ( this.state.pageInfo !== undefined ) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.pageInfo.acf.title_line_1}

\r\n

{this.state.pageInfo.acf.title_line_2}

\r\n
\r\n

{this.state.pageInfo.acf.subtitle}

\r\n\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return

Cargando header ...

\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default SimpleHeader;\r\n","import React, { Component } from 'react';\r\nimport $ from 'jquery';\r\nimport './ContactForm.css';\r\nimport { CustomInput, Button, Form, FormGroup, Label, Input } from 'reactstrap';\r\nimport swal from 'sweetalert2';\r\nimport '../../../node_modules/animate.css/animate.css';\r\nimport ReactGA from 'react-ga';\r\n\r\nvar fitty = require('../../../node_modules/fitty/dist/fitty.min');\r\nwindow.$ = $;\r\n\r\nfunction addNotification(component) {\r\n let timerInterval\r\n swal({\r\n title: 'Thank you. Message sent!',\r\n html: 'We will contact you soon',\r\n // footer: 'We will contact you soon',\r\n showConfirmButton: false,\r\n timer: 4000,\r\n onBeforeOpen: () => {\r\n // swal.showLoading()\r\n // timerInterval = setInterval(() => {\r\n // swal.getContent().querySelector('strong')\r\n // .textContent = swal.getTimerLeft()\r\n // }, 100)\r\n },\r\n onClose: () => {\r\n clearInterval(timerInterval)\r\n }\r\n }).then((result) => {\r\n if (\r\n // Read more about handling dismissals\r\n result.dismiss === swal.DismissReason.timer\r\n ) {\r\n ///console.log('Message sent successfully')\r\n }\r\n });\r\n\r\n setTimeout(\r\n function() {\r\n component.forceUpdate()\r\n },\r\n 1200\r\n );\r\n}\r\n\r\n\r\nclass ContactForm extends Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n contactName: '',\r\n contactEmail: '',\r\n contactMessage: '',\r\n contactReason: 'Unknown reason',\r\n contactReasonQuote: false,\r\n contactReasonHelp: false,\r\n contactReasonComment: false,\r\n };\r\n\r\n this.handleSubmit = this.handleSubmit.bind(this);\r\n this.handleChange = this.handleChange.bind(this);\r\n this.handleChangeMessage = this.handleChangeMessage.bind(this);\r\n this.handleChangeName = this.handleChangeName.bind(this);\r\n this.handleChangeReason = this.handleChangeReason.bind(this);\r\n //redimencionamos el tamaño del titulo con fitty\r\n fitty('#ContactFormTitle', {maxSize:70})\r\n\r\n }\r\n\r\n componentDidMount(){\r\n //redimencionamos el tamaño del titulo con fitty\r\n fitty('#ContactFormTitle', {maxSize:70})\r\n }\r\n\r\n // Cambia el state del component con el texto actualizado del input\r\n handleChange(e) {\r\n this.setState({\r\n contactEmail: e.target.value,\r\n });\r\n }\r\n\r\n // Cambia el state del component con el texto actualizado del input\r\n handleChangeMessage(e) {\r\n this.setState({\r\n contactMessage: e.target.value\r\n });\r\n }\r\n // Cambia el state del component con el texto actualizado del input\r\n handleChangeName(e) {\r\n this.setState({\r\n contactName: e.target.value\r\n });\r\n }\r\n // Cambia el state del component con el texto actualizado del input\r\n handleChangeReason(event) {\r\n //Se obtienen los datos del formulario\r\n const target = event.target;\r\n // const value = target.type === 'checkbox' ? target.checked : target.value;\r\n\r\n //se limpia el state del mensaje\r\n this.setState({ contactReason: ''});\r\n\r\n //se actualiza el state correspondiente\r\n if(target.id === 'contactReasonQuote') {\r\n this.setState({ contactReasonQuote: target.checked});\r\n }\r\n if(target.id === 'contactReasonComment') {\r\n this.setState({ contactReasonComment: target.checked});\r\n }\r\n if(target.id === 'contactReasonHelp') {\r\n this.setState({ contactReasonHelp: target.checked});\r\n }\r\n //Se crea el mensaje del asunto del correo\r\n setTimeout(\r\n function() {\r\n let numberOfReasons = 0;\r\n let message = 'Unknown reason';\r\n if(this.state.contactReasonQuote) {\r\n message = 'I need a quote';\r\n numberOfReasons += 1 ;\r\n }\r\n if(this.state.contactReasonComment) {\r\n numberOfReasons += 1 ;\r\n if(numberOfReasons > 1) {\r\n message=message+', also I have a comment';\r\n } else {\r\n message='I have a comment';\r\n }\r\n }\r\n if(this.state.contactReasonHelp) {\r\n numberOfReasons += 1 ;\r\n if(numberOfReasons > 1) {\r\n message=message+' and I need help';\r\n } else {\r\n message='I have need help';\r\n }\r\n }\r\n this.setState({ contactReason: message});\r\n }\r\n .bind(this),\r\n 500\r\n );\r\n }\r\n\r\n handleSubmit(e) {\r\n //Evitamos que la pagina se recargue\r\n e.preventDefault();\r\n // se actualiza el state del componente\r\n this.setState({\r\n contactEmail: '',\r\n contactMessage: '',\r\n contactName: '',\r\n contactReason: '',\r\n contactReasonQuote: false,\r\n contactReasonHelp: false,\r\n contactReasonComment: false,\r\n });\r\n //Se envia el correo\r\n $.ajax({\r\n url: '/res/mail/index.php',\r\n type: 'GET',\r\n data: {\r\n 'message': this.state.contactMessage,\r\n 'email': this.state.contactEmail,\r\n 'name': this.state.contactName,\r\n 'reason': this.state.contactReason,\r\n },\r\n cache: false,\r\n success: function(data) {\r\n // Success..\r\n // this.setState({\r\n // contactEmail: 'success',\r\n // contactMessage: '

yay

'\r\n // });\r\n // $('#formContact').slideUp();\r\n // $('#formContact').after(this.state.contactMessage);\r\n // console.log('success', data);\r\n },\r\n // Fail..\r\n error: function(xhr, status, err) {\r\n // console.log(xhr, status);\r\n // console.log(err);\r\n // this.setState({\r\n // contactEmail: 'danger',\r\n // contactMessage: err+\"+\"+status+\":\"+xhr\r\n // });\r\n // console.log(this.state.contactEmail + this.state.contactMessage + 'fail');\r\n }\r\n });\r\n //Registramos la accion el google analytics\r\n ReactGA.event({\r\n category: 'User',\r\n action: 'Send a contact email'\r\n });\r\n //Se notifica el envio\r\n addNotification(this);\r\n }\r\n\r\n render() {\r\n\r\n //redimencionamos el tamaño del titulo con fitty\r\n fitty('#ContactFormTitle', {maxSize:70})\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n\r\n

LET’S GET IN TOUCH

\r\n
\r\n
We are glad to hear from you
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContactForm;\r\n","import React, { Component } from 'react';\r\nimport SimpleHeader from \"../SimpleHeader/SimpleHeader\";\r\nimport ContactForm from \"../ContactForm/ContactForm\";\r\nimport LoadingScreen from \"react-loading-screen\";\r\n//Variable constante para establecer el servidor de wordpress\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:loadInfo.\r\n Descripción: Metodo para obtener los datos de wordpress hasta que se carguen.\r\n Fecha de creación: 4/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction loadInfo(component) {\r\n if(component.props.siteData.name === undefined) {\r\n document.title = \"Making the magic ...\" ;\r\n setTimeout(function(){\r\n loadInfo(component);\r\n }, 30);\r\n } else {\r\n document.title = component.props.siteData.name + \" - Contact\";\r\n }\r\n}\r\n\r\nclass Contact extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined\r\n }\r\n }\r\n\r\n componentWillMount(){\r\n //Consultamos los datos de wordpress\r\n let url = this.props.server+this.props.wpLocation+\"wp-json/wp/v2/pages/\"+this.props.pageID;\r\n fetch(url)\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((pageInfo) => {\r\n this.setState({ pageInfo: pageInfo });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n loadInfo(this);\r\n }\r\n\r\n render() {\r\n\r\n if ( this.state.pageInfo !== undefined ){\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n } else {\r\n\r\n return (\r\n \r\n

Loadable content

\r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default Contact;\r\n","import React, { Component } from 'react';\r\nimport './AboutUsContent.css';\r\n\r\nclass AboutUsContent extends Component{\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n this.setState({\r\n pageInfo: this.props.pageInfo\r\n });\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n
\r\n

{this.state.pageInfo.acf.about_us_content_title_line_1} {this.state.pageInfo.acf.about_us_content_title_line_2}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {/*{this.state.pageInfo.acf.card_image.alt}/*/}\r\n
\r\n
\r\n
{this.state.pageInfo.acf.about_us_content_subtitle}
\r\n

{this.state.pageInfo.acf.about_us_content_description}

\r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n
\r\n );\r\n }\r\n}\r\nexport default AboutUsContent;","import React, { Component } from 'react';\r\nimport './SimpleBanner.css';\r\n\r\nclass SimpleBanner extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined\r\n }\r\n }\r\n\r\n componentWillMount() {\r\n this.setState({\r\n pageInfo: this.props.pageInfo\r\n });\r\n }\r\n\r\n render() {\r\n if ( this.state.pageInfo !== undefined ) {\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n

{this.state.pageInfo.acf.about_us_banner_title_line_1}

\r\n

{this.state.pageInfo.acf.about_us_banner_title_line_2}

\r\n
\r\n
{this.state.pageInfo.acf.about_us_banner_description}
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n } else {\r\n return

Cargando ...

\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default SimpleBanner;\r\n","import React, { Component } from 'react';\r\nimport SimpleHeader from \"../SimpleHeader/SimpleHeader\";\r\nimport AboutUsContent from \"../AboutUsContent/AboutUsContent\";\r\nimport SimpleBanner from \"../SimpleBanner/SimpleBanner\";\r\nimport LoadingScreen from \"react-loading-screen\";\r\n/*-----------------------------------------------------------------------------\r\n Nombre:loadInfo.\r\n Descripción: Metodo para obtener los datos de wordpress hasta que se carguen.\r\n Fecha de creación: 4/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction loadInfo(component) {\r\n if(component.props.siteData.name === undefined) {\r\n document.title = \"Making the magic ...\" ;\r\n setTimeout(function(){\r\n loadInfo(component);\r\n }, 30);\r\n } else {\r\n document.title = component.props.siteData.name + \" - About\";\r\n }\r\n}\r\n\r\nclass About extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pageInfo: undefined\r\n }\r\n }\r\n\r\n componentWillMount(){\r\n //Consultamos los datos de wordpress\r\n let url = this.props.server+this.props.wpLocation+\"wp-json/wp/v2/pages/\"+this.props.pageID;\r\n fetch(url)\r\n .then((response) => {\r\n return response.json()\r\n })\r\n .then((pageInfo) => {\r\n this.setState({ pageInfo: pageInfo });\r\n });\r\n }\r\n\r\n componentDidMount() {\r\n loadInfo(this);\r\n }\r\n\r\n render() {\r\n if ( this.state.pageInfo !== undefined ){\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n } else {\r\n return (\r\n \r\n

Loadable content

\r\n \r\n );\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default About;\r\n","import React, { Component } from 'react';\r\nimport {Link} from \"react-router-dom\";\r\nimport './Footer.css';\r\n\r\n/*-----------------------------------------------------------------------------\r\n Nombre:selectItemByID.\r\n Descripción: Método creado para seleccionar un item del array, por su id,\r\n luego se crea en el state del componente actual\r\n Fecha de creación: 5/12/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\nfunction selectItemByID(component, itemList, itemID) {\r\n for (let i = 0; i < itemList.length; i++) {\r\n // eslint-disable-next-line\r\n if (itemList[i].id == itemID) {\r\n component.state = {menusInfo: itemList[i]};\r\n}\r\n }\r\n}\r\n\r\nclass Footer extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { menusInfo: undefined }\r\n }\r\n\r\n\r\n render() {\r\n selectItemByID(this, this.props.menusInfo, this.props.menuID);\r\n if(this.state.menusInfo !== undefined){\r\n return (\r\n
\r\n
\r\n
\r\n \r\n \"Homepage\"/\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
It's possible
\r\n
\r\n
\r\n Home\r\n
\r\n
\r\n About\r\n
\r\n
\r\n Services\r\n
\r\n
\r\n Contact\r\n
\r\n
\r\n {/*\"Facebook*/}\r\n {/*\"LinkedIn*/}\r\n {/*\"Google*/}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n
    \r\n
  • \r\n Home \r\n
  • \r\n
  • \r\n Services\r\n
  • \r\n
  • \r\n About\r\n
  • \r\n
  • \r\n Contact\r\n
  • \r\n
  • \r\n Work\r\n
  • \r\n
\r\n
\r\n );\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport default Footer;\r\n","import React, { Component } from 'react';\r\nimport swal from 'sweetalert2';\r\n/* Componentes propios */\r\nimport TopMenu from './TopMenu/TopMenu';\r\nimport Home from './pages/Home';\r\nimport Services from './pages/Services';\r\nimport Work from './pages/Work';\r\nimport Contact from './pages/Contact';\r\nimport About from './pages/About';\r\nimport Footer from './Footer/Footer';\r\n/* Routing */\r\nimport {BrowserRouter as Router, Route, Switch} from \"react-router-dom\";\r\n//Variable constante para establecer el servidor de wordpress\r\nvar server = \"\";\r\n// eslint-disable-next-line\r\nvar wpLocation;\r\n\r\nclass DefaultLayout extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n pathName: '/'\r\n };\r\n this.openMessagePopup.bind(this);\r\n }\r\n\r\n componentWillMount(){\r\n //Variable constante para establecer el servidor de wordpress\r\n server = this.props.server;\r\n wpLocation = this.props.wpLocation;\r\n\r\n\r\n }\r\n\r\n openMessagePopup () {\r\n let timer = 15000;\r\n let contactMessage = swal({\r\n title: 'info@sevensoftit.com',\r\n imageUrl: '../res/icons/contactMessage.svg',\r\n customClass: 'contactPopUp rollIn',\r\n showCancelButton: true,\r\n confirmButtonColor: '#e92899',\r\n cancelButtonColor: '#e92899',\r\n confirmButtonText: 'Send us a message',\r\n timer: timer,\r\n cancelButtonText: 'Copy email . '\r\n })\r\n .then((result) => {\r\n if (result.value) {\r\n //Redirecciona a la pagina de contacto\r\n window.location.href = \"/contact\";\r\n }\r\n if (result.dismiss === 'cancel') {\r\n // Create new element\r\n var el = document.createElement('textarea');\r\n // Set value (string to be copied)\r\n el.value = 'info@sevensoftit.com';\r\n // Set non-editable to avoid focus and move outside of view\r\n el.setAttribute('readonly', '');\r\n el.style = {position: 'absolute', left: '-9999px'};\r\n document.body.appendChild(el);\r\n // Select text inside element\r\n el.select();\r\n // Copy text to clipboard\r\n document.execCommand('copy');\r\n // Remove temporary element\r\n document.body.removeChild(el);\r\n //Se confirma la accion\r\n\r\n let timerInterval;\r\n swal({\r\n title: 'Copied to clipboard!',\r\n showConfirmButton: false,\r\n type: 'success',\r\n timer: 1000,\r\n onClose: () => {\r\n clearInterval(timerInterval)\r\n }\r\n });\r\n } else {\r\n let timerInterval;\r\n swal({\r\n title: 'Feel free to contact us anytime',\r\n showConfirmButton: false,\r\n timer: 1500,\r\n onClose: () => {\r\n clearInterval(timerInterval)\r\n }\r\n });\r\n }\r\n });\r\n\r\n\r\n }\r\n\r\n render() {\r\n return (\r\n
\r\n \r\n
\r\n \r\n \r\n }/>\r\n }/>\r\n }/>\r\n }/>\r\n } />\r\n {/**/}\r\n\r\n }/>\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport default DefaultLayout;\r\n","import React, { Component } from 'react';\r\n//Estilos\r\nimport './App.css';\r\nimport './animate.css';\r\n//Componetes propios\r\nimport DefaultLayout from './components/DefaultLayout';\r\n//Componente para pantalla de carga, ayuda en las auditorias del sitio\r\nimport LoadingScreen from 'react-loading-screen';\r\n//Componente para manejar las meta tags del sitio\r\nimport MetaTags from 'react-meta-tags';\r\n//Analytics\r\nimport ReactGA from 'react-ga';\r\n//Variable constante para establecer el servidor de wordpress\r\n//const server = 'http://192.168.100.32:8080/';\r\n//const wpLocation = 'sevensoft_site/admin/';\r\nconst server = 'https://admin.sevensoftit.com/';\r\nconst wpLocation = 'sevensoftword/index.php/';\r\n\r\nclass App extends Component {\r\n /*-----------------------------------------------------------------------------\r\n Nombre:Constructor.\r\n Descripción: Constructor en el cuál se crean las variables para acceder a los\r\n datos de wordpress mediante API REST\r\n Fecha de creación: 29/11/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\n constructor (){\r\n super();\r\n this.state = {\r\n siteData: [],\r\n menusInfo: [],\r\n contentLoading: true\r\n }\r\n\r\n ReactGA.initialize('UA-129524116-1');\r\n ReactGA.pageview('/homepage');\r\n\r\n }\r\n /*-----------------------------------------------------------------------------\r\n Nombre:componentDidMount.\r\n Descripción: Metodo para obtener los datos de wordpress.\r\n Fecha de creación: 29/11/2018\r\n Autor: Josué Somarribas.\r\n -------------------------------------------------------------------------------*/\r\n componentDidMount() {\r\n let siteDataUrl = server+wpLocation+\"wp-json/\";\r\n fetch(siteDataUrl)\r\n .then(response => response.json())\r\n .then(response => {\r\n this.setState({\r\n siteData: response\r\n })\r\n });\r\n let menusInfo = server+wpLocation+\"wp-json/wp/v2/menu\";\r\n fetch(menusInfo)\r\n .then(response => response.json())\r\n .then(response => {\r\n this.setState({\r\n menusInfo: response,\r\n contentLoading: false\r\n })\r\n });\r\n }\r\n render() {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read http://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit http://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See http://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\n/*Bootstrap module*/\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nReactDOM.render(, document.getElementById('root'));\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: http://bit.ly/CRA-PWA\nserviceWorker.register();\n"],"sourceRoot":""}