{"version":3,"sources":["../../../../../dev/j/mkt/technology/common/components.js"],"names":["Abreast","$el","$","scene","vars","this","$contents","find","$bg","setParallaxTimeline","parallaxTimeline","TimelineMax","staggerFromTo","visibility","opacity","y","initHandler","ScrollMagic","Scene","triggerElement","duration","outerHeight","triggerHook","setTween","addTo","ScrollController","controller","w","autoHandle","Modal","_$currentModal","_currentName","_openClass","_callbacks","opening","opened","closing","closed","backdropFadeDuration","_this","document","on","e","preventDefault","close","stopImmediatePropagation","open","currentTarget","data","keyboard[27]Handler","name","_this2","$modal","length","forEach","cb","addClass","fromTo","onComplete","_this3","removeClass","event","handler","push","ModalVideoAi","aiVideoPlayer","Plyr","settings","hasPlayed","play","pause","EventHub","emit","args","arguments","apply"],"mappings":"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","file":"components.js","sourcesContent":["'use strict';\n\nvar Abreast = {\n\t$el: $('.abreast'),\n\tscene: null,\n\n\tvars: function vars() {\n\t\tthis.$contents = this.$el.find('.abreast__heading, .abreast__perex, .abreast__cta');\n\t\tthis.$bg = this.$el.find('.abreast__bg');\n\t},\n\tsetParallaxTimeline: function setParallaxTimeline() {\n\t\tthis.parallaxTimeline = new TimelineMax();\n\n\t\tthis.parallaxTimeline.staggerFromTo(this.$contents, 1, { visibility: 'visible', opacity: 0, y: 30 }, { opacity: 1, y: 0 }, 0.2, 0.4);\n\t},\n\tinitHandler: function initHandler() {\n\t\tthis.vars();\n\t\tthis.setParallaxTimeline();\n\n\t\tthis.scene = new ScrollMagic.Scene({\n\t\t\ttriggerElement: this.$el[0],\n\t\t\tduration: this.$el.outerHeight() / 3,\n\t\t\ttriggerHook: 0.85\n\t\t}).setTween(this.parallaxTimeline).addTo(ScrollController.controller);\n\t}\n};\n\nw.autoHandle(Abreast);\n;;var Modal = {\n\t_$currentModal: null,\n\t_currentName: null,\n\t_openClass: 'modal--open',\n\t_callbacks: {\n\t\topening: [],\n\t\topened: [],\n\t\tclosing: [],\n\t\tclosed: []\n\t},\n\n\tbackdropFadeDuration: 0.5,\n\n\tinitHandler: function initHandler() {\n\t\tvar _this = this;\n\n\t\t$(document).on('click', '.modal__close, .modal', function (e) {\n\t\t\t//Closing modal via button or backdrop\n\t\t\te.preventDefault();\n\t\t\t_this.close();\n\t\t}).on('click', '.modal__content', function (e) {\n\t\t\t//Prevent closing when clicking inside content\n\t\t\te.stopImmediatePropagation();\n\t\t\treturn false;\n\t\t}).on('click', '[data-modal]', function (e) {\n\t\t\t//Open modal on clicking triggers\n\t\t\t_this.open($(e.currentTarget).data('modal'));\n\t\t\te.preventDefault();\n\t\t});\n\t},\n\t'keyboard[27]Handler': function keyboard27Handler() {\n\t\t//ESC key\n\t\tthis.close();\n\t},\n\topen: function open(name) {\n\t\tvar _this2 = this;\n\n\t\tif (this._$currentModal !== null) {\n\t\t\t//Modal already open or opening\n\t\t\treturn;\n\t\t}\n\n\t\tvar $modal = $('#modal-' + name);\n\t\tif (!$modal.length) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._$currentModal = $modal;\n\t\tthis._currentName = name;\n\n\t\tthis._callbacks.opening.forEach(function (cb) {\n\t\t\treturn cb(name);\n\t\t});\n\t\tthis._$currentModal.addClass(this._openClass);\n\t\tvar openTl = new TimelineMax();\n\t\topenTl.fromTo(this._$currentModal, this.backdropFadeDuration, { opacity: 0 }, { opacity: 1, onComplete: function onComplete() {\n\t\t\t\t_this2._callbacks.opened.forEach(function (cb) {\n\t\t\t\t\treturn cb(name);\n\t\t\t\t});\n\t\t\t} });\n\t},\n\tclose: function close() {\n\t\tvar _this3 = this;\n\n\t\tif (!this._$currentModal) {\n\t\t\t//No modal open or some already closing\n\t\t\treturn;\n\t\t}\n\n\t\tthis._callbacks.closing.forEach(function (cb) {\n\t\t\treturn cb(_this3._currentName);\n\t\t});\n\t\tvar $modal = this._$currentModal;\n\t\tvar closeTl = new TimelineMax({\n\t\t\tonComplete: function onComplete() {\n\t\t\t\t$modal.removeClass(_this3._openClass);\n\t\t\t\t_this3._callbacks.closed.forEach(function (cb) {\n\t\t\t\t\treturn cb(_this3._currentName);\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\tcloseTl.fromTo($modal, this.backdropFadeDuration, { opacity: 1 }, { opacity: 0 });\n\t\tthis._$currentModal = null;\n\t\tthis._currentName = null;\n\t},\n\ton: function on(event, handler) {\n\t\tif (this._callbacks[event]) {\n\t\t\tthis._callbacks[event].push(handler);\n\t\t}\n\t\treturn this;\n\t}\n};\nw.autoHandle(Modal);\n;;var ModalVideoAi = {\n\tinitHandler: function initHandler() {\n\t\t//Load video player on modal open\n\t\tvar aiVideoPlayer = new Plyr('#video-ai', {\n\t\t\tsettings: []\n\t\t});\n\n\t\tvar hasPlayed = false;\n\n\t\tModal.on('opened', function (name) {\n\t\t\tif (!hasPlayed && name === 'video-ai') {\n\t\t\t\taiVideoPlayer.play();\n\t\t\t\thasPlayed = true;\n\t\t\t}\n\t\t}).on('closing', function (name) {\n\t\t\tif (name === 'video-ai') {\n\t\t\t\taiVideoPlayer.pause();\n\t\t\t}\n\t\t});\n\t}\n};\nw.autoHandle(ModalVideoAi);\n;;var EventHub = {\n\t_callbacks: {},\n\n\ton: function on(event, handler) {\n\t\tif (!this._callbacks[event]) {\n\t\t\tthis._callbacks[event] = [];\n\t\t}\n\t\tthis._callbacks[event].push(handler);\n\t},\n\temit: function emit(event) {\n\t\tvar args = arguments;\n\t\tif (this._callbacks[event]) {\n\t\t\tthis._callbacks[event].forEach(function (cb) {\n\t\t\t\treturn cb.apply(null, args);\n\t\t\t});\n\t\t}\n\t}\n};"]}