{"version":3,"file":"index.js","sources":["../../../w3t_front/redesign/js/tabs/index.js","../../../w3t_front/redesign/index.js"],"sourcesContent":["import './tabs.css';\n\n/**\n *\n * @param {Object|string} config Tabs configuration object or container selector;\n * @param {string} config.containerSelector Tabs parent component selector\n * @param {string} config.tabToggleSelector Tabs parent component selector\n * @param {string} config.tabContentSelector Tabs parent component selector\n * @param {function|undefined} config.openCallback Tabs parent component selector\n * @param {function|undefined} config.initCallback Tabs parent component selector\n */\nfunction initTabs(config) {\n\n const options = {\n containerSelector : '.tabs',\n tabToggleSelector : '.tabs__toggle',\n tabContentSelector : '.tabs__content',\n activeClass : 'tab_active',\n openCallback: undefined,\n initCallback: undefined,\n ...( typeof config === 'string' ? { containerSelector: config } : config ),\n };\n\n const {\n containerSelector,\n tabToggleSelector,\n tabContentSelector,\n activeClass,\n openCallback,\n initCallback,\n } = options;\n\n const container = document.querySelector(containerSelector);\n\n if(!container) {\n return;\n }\n\n const toggles = container.querySelectorAll(tabToggleSelector);\n const contentTabs = container.querySelectorAll(tabContentSelector);\n let tabName;\n\n toggles.forEach((toggle,index) => {\n if(!index) {\n toggles[0].classList.add(activeClass);\n contentTabs[0].classList.add(activeClass);\n }\n toggle.addEventListener('click', selectTab);\n });\n\n function selectTab(e) {\n toggles.forEach(toggle => {\n toggle.classList.remove(activeClass);\n });\n\n this.classList.add(activeClass);\n tabName = this.dataset.tab;\n selectTabContent(tabName);\n\n if(openCallback) {\n openCallback(e);\n }\n }\n\n function selectTabContent(tabName) {\n contentTabs.forEach(contentTab => {\n contentTab.classList.contains(tabName) ? contentTab.classList.add(activeClass) : contentTab.classList.remove(activeClass);\n });\n }\n\n function init() {\n if (initCallback) {\n initCallback();\n }\n\n container.style.visibility = 'visible';\n }\n\n init();\n}\n\nexport default initTabs;\n","// TODO: update splide version\nimport Splide from '@splidejs/splide';\n\nimport {\n _isMobile,\n _isOnPage,\n _isOnScreen,\n _on,\n _once,\n _scrollTo,\n initSplideWidget,\n} from '../utils';\n\nimport initTabs from './js/tabs';\n\nimport '@splidejs/splide/dist/css/splide.min.css';\nimport './index.scss';\nimport './css/design-system.css';\nimport './css/redesign.css';\nimport './css/landing.css';\nimport './css/landing-v2.css';\nimport './css/table.css';\nimport './css/our-team.css';\nimport './css/hiw-block.css';\n\nwindow.dataLayer = window.dataLayer || [];\nconst MOBILE_FLOW_BREAKPOINT = 431;\n\n_isOnScreen('.hiw__beacon', () => document.querySelector('.hiw__list').classList.add('animate'));\n\n_on('click', 'js--order', () => {\n window.bbSetOrder({ threshold: 400 });\n});\n\n_on('click', 'js--request-writer-form', ({ target }) => {\n window.bbSetOrder({ domain: '/', writer_req_slug: target.dataset.slug, threshold: 240 });\n});\n\n_on('click', 'js--flow-order', () => {\n if (window.innerWidth > MOBILE_FLOW_BREAKPOINT) {\n window.bbSetOrder({ threshold: 350 });\n } else {\n window.location.href = '/registration.html';\n }\n});\n\n['.tabs--reviews'].forEach(tab => initTabs(tab));\n\n_isOnPage(\n '.splide--hiw',\n _once(() => {\n const splide = new Splide('.splide--hiw', {\n perPage: 1,\n arrows: true,\n pagination: true,\n fixedHeight: 340,\n breakpoints: {\n 1024: {\n fixedHeight: false,\n },\n },\n });\n\n splide.on('pagination:mounted', function (data) {\n data.list.classList.add('splide__pagination--hiw');\n data.items.forEach(function (item) {\n item.button.textContent = `Step ${item.page + 1}`;\n });\n });\n splide.mount();\n }),\n);\n\n_isOnPage(\n '.splide--hiw-block',\n _once(() => {\n const splide = new Splide('.splide--hiw-block', {\n type: 'fade',\n rewind: true,\n autoplay: true,\n interval: 5000,\n width: 558,\n pauseOnFocus: false,\n pauseOnHover: false,\n perPage: 1,\n pagination: false,\n fixedHeight: 493,\n resetProgress: true,\n breakpoints: {\n 320: {\n width: 300,\n arrows: true,\n fixedHeight: false,\n },\n 375: {\n width: 360,\n arrows: true,\n fixedHeight: false,\n },\n 425: {\n width: 410,\n arrows: true,\n fixedHeight: false,\n },\n 558: {\n width: 545,\n arrows: true,\n fixedHeight: false,\n },\n 1024: {\n arrows: true,\n fixedHeight: false,\n width: 558,\n },\n 4096: {\n arrows: false,\n width: 558,\n },\n },\n });\n const desktopSteps = document.querySelectorAll('.hiw__step');\n // side desktop step buttons click\n desktopSteps.forEach(function (button) {\n button.addEventListener('click', function () {\n var slideIndex = button.getAttribute('data-slide');\n splide.go(slideIndex);\n });\n });\n\n splide.on('active', function ({ index }) {\n desktopSteps.forEach((step, stepIndex) => {\n step.classList.toggle('active', index === stepIndex);\n });\n });\n\n splide.mount();\n\n if (_isMobile()) {\n const maxStepHeight = [...desktopSteps].reduce((max, el) => {\n return Math.max(max, el.clientHeight);\n }, 0);\n\n const stepsContainer = document.querySelector('.hiw__steps');\n stepsContainer.style.minHeight = `${maxStepHeight}px`;\n } else {\n const stepDescriptions = document.querySelectorAll('.hiw__step-description');\n const maxDescriptionHeight = [...stepDescriptions].reduce((max, el) => {\n return Math.max(max, el.clientHeight);\n }, 0);\n\n stepDescriptions.forEach(el => {\n el.style.height = `${maxDescriptionHeight}px`;\n });\n }\n }),\n);\n\ninitSplideWidget('splide--reviews', {\n breakpoints: {\n 600: {\n perPage: 1,\n fixedWidth: 312,\n },\n 1024: {\n perPage: 2,\n },\n 4096: {\n perPage: 3,\n },\n },\n});\ninitSplideWidget('splide--sitejabber', {\n breakpoints: {\n 600: {\n perPage: 1,\n fixedWidth: 312,\n },\n 1024: {\n perPage: 2,\n },\n 4096: {\n perPage: 3,\n },\n },\n});\ninitSplideWidget('splide--reviewsIO', {\n breakpoints: {\n 600: {\n perPage: 1,\n fixedWidth: 312,\n },\n 1024: {\n perPage: 2,\n },\n 4096: {\n perPage: 3,\n },\n },\n});\ninitSplideWidget('splide--best-writers');\ninitSplideWidget('splide--writing-app');\ninitSplideWidget('splide--essay-app', { arrows: false });\n\n_on('click', 'js--seo-space', e => {\n if (document.querySelector('.seo-space_hidden')) {\n document\n .querySelectorAll('.seo-space_hidden')\n .forEach(item => item.classList.add('seo-space_visible'));\n e.target.remove();\n }\n});\n\n_on('click', 'js--to-reviews', () => {\n _scrollTo('.section--reviews', { threshold: 20 });\n});\n"],"names":["initTabs","config","options","containerSelector","tabToggleSelector","tabContentSelector","activeClass","openCallback","initCallback","container","toggles","contentTabs","tabName","toggle","index","selectTab","e","selectTabContent","contentTab","init","MOBILE_FLOW_BREAKPOINT","_isOnScreen","_on","target","tab","_isOnPage","_once","splide","Splide","data","item","desktopSteps","button","slideIndex","step","stepIndex","_isMobile","maxStepHeight","max","el","stepsContainer","stepDescriptions","maxDescriptionHeight","initSplideWidget","_scrollTo"],"mappings":"+FAWA,SAASA,EAASC,EAAQ,CAExB,MAAMC,EAAU,CACd,kBAAoB,QACpB,kBAAoB,gBACpB,mBAAqB,iBACrB,YAAc,aACd,aAAc,OACd,aAAc,OACd,GAAK,OAAOD,GAAW,SAAW,CAAE,kBAAmBA,CAAQ,EAAGA,CACtE,EAEQ,CACJ,kBAAAE,EACA,kBAAAC,EACA,mBAAAC,EACA,YAAAC,EACA,aAAAC,EACA,aAAAC,CACD,EAAGN,EAEEO,EAAY,SAAS,cAAcN,CAAiB,EAE1D,GAAG,CAACM,EACF,OAGF,MAAMC,EAAUD,EAAU,iBAAiBL,CAAiB,EACtDO,EAAcF,EAAU,iBAAiBJ,CAAkB,EACjE,IAAIO,EAEJF,EAAQ,QAAQ,CAACG,EAAOC,IAAU,CAC5BA,IACFJ,EAAQ,CAAC,EAAE,UAAU,IAAIJ,CAAW,EACpCK,EAAY,CAAC,EAAE,UAAU,IAAIL,CAAW,GAE1CO,EAAO,iBAAiB,QAASE,CAAS,CAC9C,CAAG,EAED,SAASA,EAAUC,EAAG,CACpBN,EAAQ,QAAQG,GAAU,CACxBA,EAAO,UAAU,OAAOP,CAAW,CACzC,CAAK,EAED,KAAK,UAAU,IAAIA,CAAW,EAC9BM,EAAU,KAAK,QAAQ,IACvBK,EAAiBL,CAAO,EAErBL,GACDA,EAAaS,CAAC,CAEjB,CAED,SAASC,EAAiBL,EAAS,CACjCD,EAAY,QAAQO,GAAc,CAChCA,EAAW,UAAU,SAASN,CAAO,EAAIM,EAAW,UAAU,IAAIZ,CAAW,EAAIY,EAAW,UAAU,OAAOZ,CAAW,CAC9H,CAAK,CACF,CAED,SAASa,GAAO,CACVX,GACFA,IAGFC,EAAU,MAAM,WAAa,SAC9B,CAEDU,GACF,CCtDA,OAAO,UAAY,OAAO,WAAa,GACvC,MAAMC,EAAyB,IAE/BC,EAAY,eAAgB,IAAM,SAAS,cAAc,YAAY,EAAE,UAAU,IAAI,SAAS,CAAC,EAE/FC,EAAI,QAAS,YAAa,IAAM,CAC9B,OAAO,WAAW,CAAE,UAAW,GAAK,CAAA,CACtC,CAAC,EAEDA,EAAI,QAAS,0BAA2B,CAAC,CAAE,OAAAC,CAAM,IAAO,CACtD,OAAO,WAAW,CAAE,OAAQ,IAAK,gBAAiBA,EAAO,QAAQ,KAAM,UAAW,GAAK,CAAA,CACzF,CAAC,EAEDD,EAAI,QAAS,iBAAkB,IAAM,CAC/B,OAAO,WAAaF,EACtB,OAAO,WAAW,CAAE,UAAW,GAAK,CAAA,EAEpC,OAAO,SAAS,KAAO,oBAE3B,CAAC,EAED,CAAC,gBAAgB,EAAE,QAAQI,GAAOxB,EAASwB,CAAG,CAAC,EAE/CC,EACE,eACAC,EAAM,IAAM,CACV,MAAMC,EAAS,IAAIC,EAAO,eAAgB,CACxC,QAAS,EACT,OAAQ,GACR,WAAY,GACZ,YAAa,IACb,YAAa,CACX,KAAM,CACJ,YAAa,EACd,CACF,CACP,CAAK,EAEDD,EAAO,GAAG,qBAAsB,SAAUE,EAAM,CAC9CA,EAAK,KAAK,UAAU,IAAI,yBAAyB,EACjDA,EAAK,MAAM,QAAQ,SAAUC,EAAM,CACjCA,EAAK,OAAO,YAAc,QAAQA,EAAK,KAAO,CAAC,EACvD,CAAO,CACP,CAAK,EACDH,EAAO,MAAK,CAChB,CAAG,CACH,EAEAF,EACE,qBACAC,EAAM,IAAM,CACV,MAAMC,EAAS,IAAIC,EAAO,qBAAsB,CAC9C,KAAM,OACN,OAAQ,GACR,SAAU,GACV,SAAU,IACV,MAAO,IACP,aAAc,GACd,aAAc,GACd,QAAS,EACT,WAAY,GACZ,YAAa,IACb,cAAe,GACf,YAAa,CACX,IAAK,CACH,MAAO,IACP,OAAQ,GACR,YAAa,EACd,EACD,IAAK,CACH,MAAO,IACP,OAAQ,GACR,YAAa,EACd,EACD,IAAK,CACH,MAAO,IACP,OAAQ,GACR,YAAa,EACd,EACD,IAAK,CACH,MAAO,IACP,OAAQ,GACR,YAAa,EACd,EACD,KAAM,CACJ,OAAQ,GACR,YAAa,GACb,MAAO,GACR,EACD,KAAM,CACJ,OAAQ,GACR,MAAO,GACR,CACF,CACP,CAAK,EACKG,EAAe,SAAS,iBAAiB,YAAY,EAiB3D,GAfAA,EAAa,QAAQ,SAAUC,EAAQ,CACrCA,EAAO,iBAAiB,QAAS,UAAY,CAC3C,IAAIC,EAAaD,EAAO,aAAa,YAAY,EACjDL,EAAO,GAAGM,CAAU,CAC5B,CAAO,CACP,CAAK,EAEDN,EAAO,GAAG,SAAU,SAAU,CAAE,MAAAb,CAAK,EAAI,CACvCiB,EAAa,QAAQ,CAACG,EAAMC,IAAc,CACxCD,EAAK,UAAU,OAAO,SAAUpB,IAAUqB,CAAS,CAC3D,CAAO,CACP,CAAK,EAEDR,EAAO,MAAK,EAERS,EAAS,EAAI,CACf,MAAMC,EAAgB,CAAC,GAAGN,CAAY,EAAE,OAAO,CAACO,EAAKC,IAC5C,KAAK,IAAID,EAAKC,EAAG,YAAY,EACnC,CAAC,EAEEC,EAAiB,SAAS,cAAc,aAAa,EAC3DA,EAAe,MAAM,UAAY,GAAGH,CAAa,IACvD,KAAW,CACL,MAAMI,EAAmB,SAAS,iBAAiB,wBAAwB,EACrEC,EAAuB,CAAC,GAAGD,CAAgB,EAAE,OAAO,CAACH,EAAKC,IACvD,KAAK,IAAID,EAAKC,EAAG,YAAY,EACnC,CAAC,EAEJE,EAAiB,QAAQF,GAAM,CAC7BA,EAAG,MAAM,OAAS,GAAGG,CAAoB,IACjD,CAAO,CACF,CACL,CAAG,CACH,EAEAC,EAAiB,kBAAmB,CAClC,YAAa,CACX,IAAK,CACH,QAAS,EACT,WAAY,GACb,EACD,KAAM,CACJ,QAAS,CACV,EACD,KAAM,CACJ,QAAS,CACV,CACF,CACH,CAAC,EACDA,EAAiB,qBAAsB,CACrC,YAAa,CACX,IAAK,CACH,QAAS,EACT,WAAY,GACb,EACD,KAAM,CACJ,QAAS,CACV,EACD,KAAM,CACJ,QAAS,CACV,CACF,CACH,CAAC,EACDA,EAAiB,oBAAqB,CACpC,YAAa,CACX,IAAK,CACH,QAAS,EACT,WAAY,GACb,EACD,KAAM,CACJ,QAAS,CACV,EACD,KAAM,CACJ,QAAS,CACV,CACF,CACH,CAAC,EACDA,EAAiB,sBAAsB,EACvCA,EAAiB,qBAAqB,EACtCA,EAAiB,oBAAqB,CAAE,OAAQ,EAAO,CAAA,EAEvDrB,EAAI,QAAS,gBAAiB,GAAK,CAC7B,SAAS,cAAc,mBAAmB,IAC5C,SACG,iBAAiB,mBAAmB,EACpC,QAAQQ,GAAQA,EAAK,UAAU,IAAI,mBAAmB,CAAC,EAC1D,EAAE,OAAO,SAEb,CAAC,EAEDR,EAAI,QAAS,iBAAkB,IAAM,CACnCsB,EAAU,oBAAqB,CAAE,UAAW,EAAI,CAAA,CAClD,CAAC"}