{"version":3,"file":"js/component-curatorFlpAnimations.chunk.js","mappings":"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","sources":["webpack:///./assets/common/src/scripts/base/baseComponent.ts","webpack:///./assets/common/src/scripts/components/curatorFlpAnimations.ts"],"sourcesContent":["import Bean from 'bean';\nimport deepFreeze from '../utilities/freeze';\nimport CommonInterface from './commonInterface';\nexport default class BaseComponent extends CommonInterface {\n    /**\n     *\n     * constructor\n     *\n     * @param {Element} element\n     */\n    constructor(element) {\n        super();\n        this._componentElement = element;\n        this._componentElement.setAttribute('data-component-init', 'true');\n        this._checkMessages();\n    }\n    /**\n     * @returns {HTMLElement}\n     */\n    get $el() {\n        return this._componentElement;\n    }\n    get $options() {\n        const compOptions = {};\n        const options = Object.assign({}, this.$el.dataset);\n        const optionsEntires = Object.keys(options).filter((entry) => entry.includes('option'));\n        optionsEntires.forEach((entry) => {\n            const cleanEntry = BaseComponent.cleanOptionKey(entry);\n            let optionValue;\n            if (options[entry].includes('{') && options[entry].includes('}')) {\n                optionValue = JSON.parse(options[entry].replace(/'/g, '\"'));\n            }\n            else {\n                optionValue = BaseComponent.convertType(options[entry]);\n            }\n            compOptions[cleanEntry] = optionValue;\n        });\n        return deepFreeze(compOptions);\n    }\n    get COMPONENT_NAME() {\n        return this.__proto__.constructor.name;\n    }\n    static convertType(option) {\n        let optionReturn;\n        switch (option) {\n            case 'false':\n                optionReturn = false;\n                break;\n            case 'true':\n                optionReturn = true;\n                break;\n            case 'null':\n                optionReturn = null;\n                break;\n            default:\n                optionReturn = option;\n                break;\n        }\n        return optionReturn;\n    }\n    static cleanOptionKey(key) {\n        const str = key.replace('option', '');\n        return `${str.charAt(0).toLocaleLowerCase()}${str.slice(1)}`;\n    }\n    /**\n     *\n     * $on\n     *\n     * @param {String} events\n     * @param {Function} cb\n     * @param {Element} [element = this.$el]\n     * @param {Array|String|Element} [elements = null]\n     */\n    $on(events, cb, element = this.$el, elements = null) {\n        if (!element || !events || !cb)\n            return;\n        if (!elements) {\n            Bean.on(element, events, (e) => {\n                if (e)\n                    e.stopPropagation();\n                cb(e);\n            });\n        }\n        else {\n            Bean.on(element, events, elements, (e) => {\n                if (e)\n                    e.stopPropagation();\n                cb(e);\n            });\n        }\n    }\n    /**\n     *\n     * $one\n     *\n     * @param {String} events\n     * @param {Function} cb\n     * @param {Element} [element = this.$el]\n     */\n    $one(events, cb, element = this.$el) {\n        Bean.one(element, events, cb);\n    }\n    /**\n     *\n     * $off\n     *\n     * @param {String} events\n     * @param {Element} [element = this.$el]\n     */\n    $off(events, element = this.$el) {\n        Bean.off(element, events);\n    }\n    /**\n     *\n     * $fire\n     *\n     * @param {String} events\n     * @param {Element} [element = this.$el]\n     */\n    $fire(events, element = this.$el) {\n        Bean.fire(element, events);\n    }\n}\n","import { gsap } from 'gsap';\nimport { ScrollTrigger } from 'gsap/ScrollTrigger';\nimport BaseComponent from '../base/baseComponent';\ngsap.registerPlugin(ScrollTrigger);\nexport default class curatorFlpAnimations extends BaseComponent {\n    constructor(element) {\n        super(element);\n        window.addEventListener('load', () => {\n            this.initGsap();\n        });\n    }\n    initGsap() {\n        const videoWrapper = this.$el.querySelector('.curator-flp-video');\n        const cardList = this.$el.querySelectorAll('.component-curator-card');\n        ScrollTrigger.matchMedia({\n            '(min-width: 1024px)': () => {\n                var _a;\n                // timeline video\n                let tl = gsap.timeline({\n                    scrollTrigger: {\n                        trigger: videoWrapper,\n                        scrub: true,\n                        pin: true,\n                        start: `top ${((_a = document.querySelector('header')) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0}px`,\n                        end: '+=200%',\n                    },\n                });\n                tl.from('.curator-video__title', { scale: 5, autoAlpha: 0, duration: 3 })\n                    .from('.curator-video__text-wrapper .date', { y: -30, opacity: 0, duration: 1 })\n                    .from('.curator-video__text-wrapper .curator-video__quote', { y: -30, opacity: 0, duration: 1 }, '<50%')\n                    .from('.curator-video__text-wrapper .button-primary', { y: -30, opacity: 0, duration: 1 }, '<50%');\n                // itero la lista di cards\n                cardList.forEach((currentCard, i) => {\n                    let tl2 = gsap.timeline({\n                        defaults: { duration: 1 },\n                        scrollTrigger: {\n                            trigger: currentCard,\n                            scrub: true,\n                            start: '10% bottom',\n                            end: '90% top',\n                            // markers: true,\n                        },\n                    });\n                    tl2\n                        .to(currentCard, { y: i % 2 == 0 ? '-10%' : '10%', duration: 5 })\n                        .to(currentCard, { opacity: 1 }, '<')\n                        .to(currentCard, { opacity: 0 }, '>+=3');\n                });\n            },\n            '(max-width: 1023px)': () => {\n                var _a;\n                // timeline video\n                let tl = gsap.timeline({\n                    scrollTrigger: {\n                        trigger: videoWrapper,\n                        scrub: true,\n                        pin: true,\n                        start: `top ${((_a = document.querySelector('header')) === null || _a === void 0 ? void 0 : _a.offsetHeight) || 0}px`,\n                        end: '+=150%',\n                    },\n                });\n                tl.from('.curator-video__title', { scale: 5, autoAlpha: 0, duration: 3 })\n                    .from('.curator-video__text-wrapper .date', { opacity: 0, duration: 1 })\n                    .from('.curator-video__text-wrapper .curator-video__quote', { opacity: 0, duration: 1 }, '<')\n                    .from('.curator-video__text-wrapper .button-primary', { opacity: 0, duration: 1 }, '<');\n                // itero la lista di cards\n                cardList.forEach((currentCard) => {\n                    let tl2 = gsap.timeline({\n                        defaults: { duration: 1 },\n                        scrollTrigger: {\n                            trigger: currentCard,\n                            scrub: true,\n                            start: 'top bottom',\n                            end: '70% top',\n                            // markers: true,\n                        },\n                    });\n                    tl2\n                        .to(currentCard, { opacity: 1 })\n                        .to(currentCard.querySelector('.image-wrapper'), { scale: 1.15 }, '>+=1')\n                        .to(currentCard.querySelector('.image-wrapper .overlay'), { opacity: 1 }, '<')\n                        .to(currentCard.querySelector('.curators-card__inner-container .date'), { opacity: 1 }, '<')\n                        .to(currentCard.querySelector('.curators-card__inner-container .curator-card__quote'), { opacity: 1 }, '<')\n                        .to(currentCard.querySelector('.curators-card__inner-container button'), { opacity: 1 }, '<')\n                        .to(currentCard, { opacity: 0 }, '>+=1');\n                });\n            },\n        });\n        // ScrollTrigger.sort();\n        // ScrollTrigger.refresh();\n        videoWrapper.querySelector('.curator-video__text-wrapper').classList.add('show-text');\n    }\n}\n"],"names":["BaseComponent","constructor","element","super","this","_componentElement","setAttribute","_checkMessages","$el","$options","compOptions","options","Object","assign","dataset","keys","filter","entry","includes","forEach","cleanEntry","cleanOptionKey","optionValue","JSON","parse","replace","convertType","COMPONENT_NAME","__proto__","name","static","option","optionReturn","key","str","charAt","toLocaleLowerCase","slice","$on","events","cb","elements","e","stopPropagation","$one","$off","$fire","curatorFlpAnimations","window","addEventListener","initGsap","videoWrapper","querySelector","cardList","querySelectorAll","_a","scrollTrigger","trigger","scrub","pin","start","document","offsetHeight","end","from","scale","autoAlpha","duration","y","opacity","currentCard","i","defaults","to","classList","add"],"sourceRoot":""}