{"version":3,"file":"sections-trusted-advisors.1712d7901d36c0fea5fd.js","mappings":"6JAIA,MAAMA,EAAWC,SAASC,cAAc,oBAElCC,EAAmB,KACvB,MAAMC,EAAQJ,EAASK,iBAAiB,gBAClCC,EAAQN,EAASO,YACjBC,EAASR,EAASS,aAClBC,EAAiB,GAARJ,EAEf,IAAIK,EAAQ,EACZ,MAAMC,EAAQ,EAAIC,KAAKC,GAAMV,EAAMW,OAEnCX,EAAMY,SAASC,IACb,MAAMC,EAAOlB,EAASE,cAAe,iCAAgCe,EAAGE,QAAQC,WAE1EC,EAAYJ,EAAGV,YACfe,EAAaL,EAAGR,aAEhBc,EAAIV,KAAKW,MAAMlB,EAAQ,EAAII,EAASG,KAAKY,IAAId,GAASU,EAAY,GAClEK,EAAIb,KAAKW,MAAMhB,EAAS,EAAIE,EAASG,KAAKc,IAAIhB,GAASW,EAAa,GAE1EJ,EAAKU,MAAMC,UAAa,UAASlB,QACjCO,EAAKU,MAAMtB,MAAS,GAAEI,MAEtBO,EAAGW,MAAME,KAAQ,GAAEP,MACnBN,EAAGW,MAAMG,IAAO,GAAEL,MAElBf,GAASC,MA2ETZ,IACFC,SAAS+B,iBAAiB,oBAAoB,KAC5C7B,IAzEmB,MACrB,MAAM8B,EAASjC,EAASE,cAAc,kBAChCE,EAAQJ,EAASK,iBAAiB,gBAClC6B,EAAQlC,EAASK,iBAAiB,qBAExC8B,EAAAA,GAAAA,IAASF,EAAQ,CAAEG,QAAS,IAC5BD,EAAAA,GAAAA,IAASD,EAAO,CAAEE,QAAS,IAC3BD,EAAAA,GAAAA,IAAS/B,EAAO,CAAEgC,QAAS,IAE3BpC,EAASqC,UAAUC,IAAI,WAEvB,MAAMC,EAAWJ,EAAAA,GAAAA,SAAc,CAC7BK,QAAQ,IAGVD,EAASE,GAAGR,EAAQ,CAAEG,QAAS,EAAGM,SAAU,EAAGC,MAAO,MACtDJ,EAASE,GAAGP,EAAO,CAAEE,QAAS,EAAGQ,QAAS,KAC1CL,EAASE,GAAGrC,EAAO,CAAEgC,QAAS,EAAGQ,QAAS,KAE1CL,EAASM,QAuDPC,MAGFC,OAAOf,iBAAiB,SAAUgB,IAAS7C,EAAkB,OAE7D8C,EAAAA,EAAAA,IAAG,QAAS,+BAzDWC,IACvBA,EAAEC,iBAEF,MAAMC,EAAOF,EAAEG,OAAOC,QAAQ,gBACxBC,EAAQtD,SAASC,cAAe,kCAAiCkD,EAAKjC,QAAQC,WAEhFmC,GACFpB,EAAAA,GAAAA,WAEGM,GAAG,mBAAoB,CAAEL,QAAS,EAAGM,SAAU,KAC/Cc,OACCD,EACA,CACEnB,QAAS,EACTV,EAAG,OAEL,CACEU,QAAS,EACTV,EAAG,EACH+B,QAAS,KACPF,EAAMlB,UAAUC,IAAI,oBAsC9BW,EAAAA,EAAAA,IAAG,QAAS,4BA/BYC,IACxB,MAAMK,EAAQL,EAAEG,OAAOC,QAAQ,sBAE/BnB,EAAAA,GAAAA,WAEGqB,OACCD,EACA,CACEnB,QAAS,EACTV,EAAG,GAEL,CACEU,QAAS,EACTV,EAAG,OACH+B,QAAS,KACPF,EAAMlB,UAAUqB,OAAO,gBAI5BjB,GAAG,mBAAoB,CAAEL,QAAS,EAAGM,SAAU,U","sources":["webpack://adjusters/./src/sections/trusted-advisors.js"],"sourcesContent":["import { on } from 'delegated-events'\nimport throttle from 'lodash/throttle'\nimport { gsap } from 'gsap'\n\nconst selector = document.querySelector('.circle-selector')\n\nconst positionSelector = () => {\n const items = selector.querySelectorAll('.circle-item')\n const width = selector.offsetWidth\n const height = selector.offsetHeight\n const radius = width * 0.5\n\n let angle = 0\n const step = (2 * Math.PI) / items.length\n\n items.forEach((el) => {\n const line = selector.querySelector(`.circle-item-line[data-index=\"${el.dataset.index}\"]`)\n\n const itemWidth = el.offsetWidth\n const itemHeight = el.offsetHeight\n\n const x = Math.round(width / 2 + radius * Math.cos(angle) - itemWidth / 2)\n const y = Math.round(height / 2 + radius * Math.sin(angle) - itemHeight / 2)\n\n line.style.transform = `rotate(${angle}rad)`\n line.style.width = `${radius}px`\n\n el.style.left = `${x}px`\n el.style.top = `${y}px`\n\n angle += step\n })\n}\n\nconst setupAnimation = () => {\n const center = selector.querySelector('.circle-center')\n const items = selector.querySelectorAll('.circle-item')\n const lines = selector.querySelectorAll('.circle-item-line')\n\n gsap.set(center, { opacity: 0 })\n gsap.set(lines, { opacity: 0 })\n gsap.set(items, { opacity: 0 })\n\n selector.classList.add('is-init')\n\n const timeline = gsap.timeline({\n paused: true,\n })\n\n timeline.to(center, { opacity: 1, duration: 1, delay: 0.25 })\n timeline.to(lines, { opacity: 1, stagger: 0.1 })\n timeline.to(items, { opacity: 1, stagger: 0.2 })\n\n timeline.play()\n}\n\nconst handleModalOpen = (e) => {\n e.preventDefault()\n\n const item = e.target.closest('.circle-item')\n const modal = document.querySelector(`.circle-item-modal[data-index=\"${item.dataset.index}\"]`)\n\n if (modal) {\n gsap\n .timeline()\n .to('.circle-selector', { opacity: 0, duration: 0.5 })\n .fromTo(\n modal,\n {\n opacity: 0,\n y: '20%',\n },\n {\n opacity: 1,\n y: 0,\n onStart: () => {\n modal.classList.add('is-active')\n },\n }\n )\n }\n}\n\nconst handleModalClose = (e) => {\n const modal = e.target.closest('.circle-item-modal')\n\n gsap\n .timeline()\n .fromTo(\n modal,\n {\n opacity: 1,\n y: 0,\n },\n {\n opacity: 0,\n y: '-20%',\n onStart: () => {\n modal.classList.remove('is-active')\n },\n }\n )\n .to('.circle-selector', { opacity: 1, duration: 0.5 })\n}\n\nif (selector) {\n document.addEventListener('DOMContentLoaded', () => {\n positionSelector()\n setupAnimation()\n })\n\n window.addEventListener('resize', throttle(positionSelector, 250))\n\n on('click', '.circle-item:not(.no-modal)', handleModalOpen)\n on('click', '.circle-item-modal-close', handleModalClose)\n}\n"],"names":["selector","document","querySelector","positionSelector","items","querySelectorAll","width","offsetWidth","height","offsetHeight","radius","angle","step","Math","PI","length","forEach","el","line","dataset","index","itemWidth","itemHeight","x","round","cos","y","sin","style","transform","left","top","addEventListener","center","lines","gsap","opacity","classList","add","timeline","paused","to","duration","delay","stagger","play","setupAnimation","window","throttle","on","e","preventDefault","item","target","closest","modal","fromTo","onStart","remove"],"sourceRoot":""}