{"version":3,"file":"elements-callout-content-list.js","mappings":"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","sources":["webpack://silverstripe-base/./themes/app/src/elements/callout-content-list.js","webpack://silverstripe-base/./node_modules/js-cookie/dist/js.cookie.mjs"],"sourcesContent":["import Cookies from \"js-cookie\";\nimport { gsap } from \"gsap\";\nimport { ScrollTrigger } from \"gsap/ScrollTrigger\";\n\ngsap.registerPlugin(ScrollTrigger);\n\nconst runTimeline = (el, shouldPlayFullAnimation = true) => {\n const isMobile = window.matchMedia(\"(max-width: 767px)\").matches;\n const panelContainer = el.querySelector(\".animation-panel-container\");\n\n gsap.set(el.querySelectorAll(\".intro-block > *\"), { opacity: 0, y: \"40%\" });\n gsap.set(el.querySelector(\".item-blocks\"), { opacity: 0 });\n gsap.set(el.querySelectorAll(\".item-end-block\"), { opacity: 0, y: \"40%\" });\n\n const itemBlocks = el.querySelector(\".item-blocks\");\n const blocks = el.querySelectorAll(\".item-animate-block\");\n\n blocks.forEach((block) => {\n const title = block.querySelector(\".item-animate-block-title\");\n\n gsap.set(title, {\n opacity: 0,\n transformOrigin: \"center center\",\n transform: `scale(6)`,\n });\n\n gsap.set(block.querySelectorAll(\".item-animate-block-part\"), {\n opacity: 0,\n });\n });\n\n panelContainer.setAttribute(\"data-animation-ready\", true);\n\n const itemBlocksTimeline = gsap.timeline({\n scrollTrigger: {\n trigger: el,\n start: () => {\n if (isMobile) {\n return \"center center\";\n }\n\n const siteHeaderHeight =\n parseInt(getComputedStyle(document.documentElement).getPropertyValue(\"--site-header-stuck-height\")) + 2;\n\n return `top ${siteHeaderHeight}px`;\n },\n once: true,\n markers: false,\n },\n });\n\n const timeline = gsap.timeline({\n scrollTrigger: {\n trigger: el,\n start: () => {\n const siteHeaderHeight =\n parseInt(getComputedStyle(document.documentElement).getPropertyValue(\"--site-header-stuck-height\")) + 2;\n\n return `top ${siteHeaderHeight}px`;\n },\n once: true,\n markers: false,\n },\n });\n\n timeline.to(el.querySelectorAll(\".intro-block > *\"), { opacity: 1, y: 0, stagger: 0.2, duration: 1 });\n\n itemBlocksTimeline.to(el.querySelector(\".item-blocks\"), {\n opacity: 1,\n duration: 1.5,\n delay: isMobile ? 0 : 0.5,\n });\n\n if (shouldPlayFullAnimation) {\n blocks.forEach((block) => {\n const title = block.querySelector(\".item-animate-block-title\");\n\n itemBlocksTimeline.to(title, {\n opacity: 1,\n transform: \"scale(1) translate(0, 0)\",\n ease: \"expo\",\n duration: 0.8,\n });\n\n itemBlocksTimeline.to(\n block.querySelectorAll(\".item-animate-block-part\"),\n {\n opacity: 1,\n y: 0,\n ease: \"ease\",\n duration: 0.4,\n stagger: 0.2,\n },\n \"<50%\",\n );\n\n itemBlocksTimeline.to(block, {\n opacity: 0,\n duration: 0.2,\n delay: 1.5,\n });\n });\n }\n\n itemBlocksTimeline.to(el.querySelectorAll(\".item-end-block\"), {\n opacity: 1,\n y: 0,\n stagger: 0.3,\n });\n};\n\ndocument.querySelectorAll(\".element-calloutcontentlist\").forEach((el) => {\n if (!window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches) {\n const elementContainer = el.querySelector(\".element-container\");\n\n let shouldPlayFullAnimation = true;\n\n const cookieName = `biotouch_elementanimation-${el.id}`;\n\n if (elementContainer.dataset.cookie !== undefined) {\n if (Cookies.get(cookieName)) {\n shouldPlayFullAnimation = false;\n }\n }\n\n runTimeline(el, shouldPlayFullAnimation);\n }\n});\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n"],"names":["gsap","registerPlugin","ScrollTrigger","document","querySelectorAll","forEach","el","window","matchMedia","matches","elementContainer","querySelector","shouldPlayFullAnimation","cookieName","id","undefined","dataset","cookie","Cookies","get","runTimeline","isMobile","panelContainer","set","opacity","y","blocks","block","title","transformOrigin","transform","setAttribute","itemBlocksTimeline","timeline","scrollTrigger","trigger","start","parseInt","getComputedStyle","documentElement","getPropertyValue","once","markers","to","stagger","duration","delay","ease","assign","target","i","arguments","length","source","key","api","init","converter","defaultAttributes","name","value","attributes","expires","Date","now","toUTCString","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","attributeName","split","write","Object","create","cookies","jar","parts","slice","join","found","read","e","remove","withAttributes","this","withConverter","freeze","path"],"sourceRoot":""}