{"version":3,"file":"what-we-do-Ce8JxWOg.js","sources":["../../../app/frontend/entrypoints/javascript/home_page/what-we-do.js"],"sourcesContent":["import $ from \"jquery\";\nimport { Breakpoints } from \"../breakpoints\"\nimport { triggerAnalyticsEvent } from '../shared/analytics'\nimport { ANALYTICS_EVENT } from \"./analyticsEvent\";\n\nconst rotationDelay = 2000;\nconst resetDelay = 5000;\nconst $dinamicContent = $(\"[data-service-content]\");\nconst $menuItems = $(\"[data-service-title]\");\nconst $indicator = $(\"[data-service-bar]\");\nconst $services = $(\"[data-service-container]\");\nconst $card = $(\"[data-service-card-mobile]\");\n\nfunction showContent(service) {\n $dinamicContent.each(function () {\n $(this).addClass(\"hidden\").removeClass(\"fade-in\");\n });\n\n $(\"[data-service-content='\" + service + \"']\")\n .removeClass(\"hidden\")\n .addClass(\"fade-in\");\n}\n\nfunction titleInteraction(rotationDelay, resetDelay) {\n let autoRotateInterval;\n let autoRotateTimeout;\n\n function activateTitle($this) {\n const service = $this.data(\"service-title\");\n const currentIndex = $(\".section-active\").index();\n const targetIndex = $this.index();\n\n $dinamicContent.removeClass(\"before after\");\n\n if (targetIndex > currentIndex) {\n $(\"[data-service-content='\" + service + \"']\").addClass(\"after\");\n } else if (targetIndex < currentIndex) {\n $(\"[data-service-content='\" + service + \"']\").addClass(\"before\");\n }\n\n showContent(service);\n\n $menuItems.removeClass(\"section-active\");\n $this.addClass(\"section-active\");\n\n updateIndicator($this);\n }\n\n function updateIndicator($item) {\n const dimensions = $item.position();\n const height = $item.outerHeight();\n\n $indicator.css({\n top: dimensions.top + \"px\",\n height: height + \"px\",\n });\n }\n\n function startAutoRotate() {\n if (autoRotateInterval) return;\n autoRotateInterval = setInterval(() => {\n const $current = $(\".section-active[data-service-title]\");\n const $next = $current.next(\"[data-service-title]\").length\n ? $current.next(\"[data-service-title]\")\n : $(\"[data-service-title]\").first();\n\n activateTitle($next);\n }, rotationDelay);\n }\n\n function stopAutoRotate() {\n clearInterval(autoRotateInterval);\n autoRotateInterval = null;\n }\n\n function resetAutoRotate() {\n stopAutoRotate();\n clearTimeout(autoRotateTimeout);\n autoRotateTimeout = setTimeout(startAutoRotate, resetDelay);\n }\n\n $menuItems.on(\"click\", function () {\n const $this = $(this);\n const analytics = $this.data(\"analytics\");\n\n if ($this.hasClass(\"section-active\")) {\n return;\n }\n\n const dynamicEvent = `${ANALYTICS_EVENT.WhatWeDo}_${analytics}`;\n triggerAnalyticsEvent(dynamicEvent);\n activateTitle($this);\n });\n\n $services.on(\"mouseenter\", function () {\n stopAutoRotate();\n clearTimeout(autoRotateTimeout);\n });\n\n $services.on(\"mouseleave\", function () {\n resetAutoRotate();\n });\n\n startAutoRotate();\n}\n\nfunction titlesBar() {\n let initialDimensions = [];\n\n function initialize() {\n initialDimensions = $menuItems\n .map(function () {\n const $this = $(this);\n const originalClass = $this.attr(\"class\");\n $this.removeClass(\"section-active\");\n const rect = $this[0].getBoundingClientRect();\n $this.attr(\"class\", originalClass);\n return {\n height: rect.height,\n top: $this.position().top,\n };\n })\n .get();\n\n function updateIndicator($item) {\n const index = $menuItems.index($item);\n const dimensions = initialDimensions[index];\n\n $indicator.css({\n top: dimensions.top + \"px\",\n height: dimensions.height + \"px\",\n });\n }\n\n const $activeItem = $menuItems.filter(\".section-active\");\n if ($activeItem.length) {\n updateIndicator($activeItem);\n } else {\n const $firstItem = $menuItems.first();\n $firstItem.addClass(\".section-active\");\n updateIndicator($firstItem);\n }\n }\n\n initialize();\n\n\t$(window).on(\"resize\", function () {\n $menuItems.removeClass(\".section-active\");\n\n initialize();\n });\n}\n\nfunction mobileAccordion() {\n \n $card.on(\"click\", function () {\n let isActive = $(this).hasClass(\"accordion-active\");\n const analytics = $(this).data(\"analytics\");\n \n $card.removeClass(\"accordion-active\");\n $(this).toggleClass(\"accordion-active\", !isActive);\n \n if(!isActive){\n const dynamicEvent = `${ANALYTICS_EVENT.WhatWeDo}_${analytics}`;\n triggerAnalyticsEvent(dynamicEvent);\n }\n });\n}\n\n$(document).ready(function () {\n\tif ($(window).width() >= Breakpoints.desktop) {\n\t\ttitlesBar();\n\t\ttitleInteraction(rotationDelay, resetDelay);\n\t} else {\n\t\tmobileAccordion();\n\t}\n});\n"],"names":["rotationDelay","resetDelay","$dinamicContent","$","$menuItems","$indicator","$services","$card","showContent","service","titleInteraction","autoRotateInterval","autoRotateTimeout","activateTitle","$this","currentIndex","targetIndex","updateIndicator","$item","dimensions","height","startAutoRotate","$current","$next","stopAutoRotate","resetAutoRotate","analytics","dynamicEvent","ANALYTICS_EVENT","triggerAnalyticsEvent","titlesBar","initialDimensions","initialize","originalClass","rect","index","$activeItem","$firstItem","mobileAccordion","isActive","Breakpoints"],"mappings":"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"}