{"version":3,"sources":["webpack:///./node_modules/vanilla-modal/dist/index.js"],"names":["exports","Object","defineProperty","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","defaults","modal","modalInner","modalContent","open","close","page","class","loadClass","clickOutside","closeKeys","transitions","transitionEnd","onBeforeOpen","onBeforeClose","onOpen","onClose","throwError","message","console","error","getNode","selector","parent","node","document","querySelector","addClass","el","className","HTMLElement","setAttribute","split","filter","cn","concat","join","matches","e","allMatches","ownerDocument","querySelectorAll","body","parentNode","VanillaModal","settings","instance","TypeError","_classCallCheck","this","isOpen","current","isListening","createElement","arr","callback","_ref","style","filteredArray","undefined","applyUserSettings","dom","getDomNodes","bind","closeKeyHandler","outsideClickHandler","delegateOpen","delegateClose","listen","destroy","addLoadedCssClass","_settings","id","removeAttribute","_settings2","closeModal","releaseNode","hash","getElementContext","captureNode","setOpenId","css","window","getComputedStyle","Boolean","parseFloat","_settings3","hasTransition","detectTransition","closeModalWithTransition","removeOpenId","_this","addEventListener","closeTransitionHandler","removeEventListener","childNodes","appendChild","toString","indexOf","which","preventDefault","matchedNode","default"],"mappings":"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","file":"scripts/4.766f114c6111fb1c6061.component.js","sourcesContent":["(function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(['exports'], factory);\n } else if (typeof exports !== \"undefined\") {\n factory(exports);\n } else {\n var mod = {\n exports: {}\n };\n factory(mod.exports);\n global.VanillaModal = mod.exports;\n }\n})(this, function (exports) {\n 'use strict';\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var defaults = {\n modal: '.modal',\n modalInner: '.modal-inner',\n modalContent: '.modal-content',\n open: '[data-modal-open]',\n close: '[data-modal-close]',\n page: 'body',\n class: 'modal-visible',\n loadClass: 'vanilla-modal',\n clickOutside: true,\n closeKeys: [27],\n transitions: true,\n transitionEnd: null,\n onBeforeOpen: null,\n onBeforeClose: null,\n onOpen: null,\n onClose: null\n };\n\n function throwError(message) {\n // eslint-disable-next-line no-console\n console.error('VanillaModal: ' + message);\n }\n\n function find(arr, callback) {\n return function (key) {\n var filteredArray = arr.filter(callback);\n return filteredArray[0] ? filteredArray[0][key] : undefined;\n };\n }\n\n function transitionEndVendorSniff() {\n var el = document.createElement('div');\n var transitions = [{ key: 'transition', value: 'transitionend' }, { key: 'OTransition', value: 'otransitionend' }, { key: 'MozTransition', value: 'transitionend' }, { key: 'WebkitTransition', value: 'webkitTransitionEnd' }];\n return find(transitions, function (_ref) {\n var key = _ref.key;\n return typeof el.style[key] !== 'undefined';\n })('value');\n }\n\n function isPopulatedArray(arr) {\n return Object.prototype.toString.call(arr) === '[object Array]' && arr.length;\n }\n\n function getNode(selector, parent) {\n var targetNode = parent || document;\n var node = targetNode.querySelector(selector);\n if (!node) {\n throwError(selector + ' not found in document.');\n }\n return node;\n }\n\n function addClass(el, className) {\n if (!(el instanceof HTMLElement)) {\n throwError('Not a valid HTML element.');\n }\n el.setAttribute('class', el.className.split(' ').filter(function (cn) {\n return cn !== className;\n }).concat(className).join(' '));\n }\n\n function removeClass(el, className) {\n if (!(el instanceof HTMLElement)) {\n throwError('Not a valid HTML element.');\n }\n el.setAttribute('class', el.className.split(' ').filter(function (cn) {\n return cn !== className;\n }).join(' '));\n }\n\n function getElementContext(e) {\n if (e && typeof e.hash === 'string') {\n return document.querySelector(e.hash);\n } else if (typeof e === 'string') {\n return document.querySelector(e);\n }\n throwError('No selector supplied to open()');\n return null;\n }\n\n function applyUserSettings(settings) {\n return _extends({}, defaults, settings, {\n transitionEnd: transitionEndVendorSniff()\n });\n }\n\n function matches(e, selector) {\n var allMatches = (e.target.document || e.target.ownerDocument).querySelectorAll(selector);\n for (var i = 0; i < allMatches.length; i += 1) {\n var node = e.target;\n while (node && node !== document.body) {\n if (node === allMatches[i]) {\n return node;\n }\n node = node.parentNode;\n }\n }\n return null;\n }\n\n var VanillaModal = function () {\n function VanillaModal(settings) {\n _classCallCheck(this, VanillaModal);\n\n this.isOpen = false;\n this.current = null;\n this.isListening = false;\n\n this.settings = applyUserSettings(settings);\n this.dom = this.getDomNodes();\n\n this.open = this.open.bind(this);\n this.close = this.close.bind(this);\n this.closeKeyHandler = this.closeKeyHandler.bind(this);\n this.outsideClickHandler = this.outsideClickHandler.bind(this);\n this.delegateOpen = this.delegateOpen.bind(this);\n this.delegateClose = this.delegateClose.bind(this);\n this.listen = this.listen.bind(this);\n this.destroy = this.destroy.bind(this);\n\n this.addLoadedCssClass();\n this.listen();\n }\n\n _createClass(VanillaModal, [{\n key: 'getDomNodes',\n value: function getDomNodes() {\n var _settings = this.settings,\n modal = _settings.modal,\n page = _settings.page,\n modalInner = _settings.modalInner,\n modalContent = _settings.modalContent;\n\n return {\n modal: getNode(modal),\n page: getNode(page),\n modalInner: getNode(modalInner, getNode(modal)),\n modalContent: getNode(modalContent, getNode(modal))\n };\n }\n }, {\n key: 'addLoadedCssClass',\n value: function addLoadedCssClass() {\n addClass(this.dom.page, this.settings.loadClass);\n }\n }, {\n key: 'setOpenId',\n value: function setOpenId(id) {\n var page = this.dom.page;\n\n page.setAttribute('data-current-modal', id || 'anonymous');\n }\n }, {\n key: 'removeOpenId',\n value: function removeOpenId() {\n var page = this.dom.page;\n\n page.removeAttribute('data-current-modal');\n }\n }, {\n key: 'open',\n value: function open(allMatches, e) {\n var page = this.dom.page;\n var _settings2 = this.settings,\n onBeforeOpen = _settings2.onBeforeOpen,\n onOpen = _settings2.onOpen;\n\n this.closeModal(e);\n if (!(this.current instanceof HTMLElement === false)) {\n throwError('VanillaModal target must exist on page.');\n return;\n }\n this.releaseNode(this.current);\n this.current = getElementContext(allMatches);\n if (typeof onBeforeOpen === 'function') {\n onBeforeOpen.call(this, e);\n }\n this.captureNode(this.current);\n addClass(page, this.settings.class);\n this.setOpenId(this.current.id);\n this.isOpen = true;\n if (typeof onOpen === 'function') {\n onOpen.call(this, e);\n }\n }\n }, {\n key: 'detectTransition',\n value: function detectTransition() {\n var modal = this.dom.modal;\n\n var css = window.getComputedStyle(modal, null);\n return Boolean(['transitionDuration', 'oTransitionDuration', 'MozTransitionDuration', 'webkitTransitionDuration'].filter(function (i) {\n return typeof css[i] === 'string' && parseFloat(css[i]) > 0;\n }).length);\n }\n }, {\n key: 'close',\n value: function close(e) {\n var _settings3 = this.settings,\n transitions = _settings3.transitions,\n transitionEnd = _settings3.transitionEnd,\n onBeforeClose = _settings3.onBeforeClose;\n\n var hasTransition = this.detectTransition();\n if (this.isOpen) {\n this.isOpen = false;\n if (typeof onBeforeClose === 'function') {\n onBeforeClose.call(this, e);\n }\n removeClass(this.dom.page, this.settings.class);\n if (transitions && transitionEnd && hasTransition) {\n this.closeModalWithTransition(e);\n } else {\n this.closeModal(e);\n }\n }\n }\n }, {\n key: 'closeModal',\n value: function closeModal(e) {\n var onClose = this.settings.onClose;\n\n this.removeOpenId(this.dom.page);\n this.releaseNode(this.current);\n this.isOpen = false;\n this.current = null;\n if (typeof onClose === 'function') {\n onClose.call(this, e);\n }\n }\n }, {\n key: 'closeModalWithTransition',\n value: function closeModalWithTransition(e) {\n var _this = this;\n\n var modal = this.dom.modal;\n var transitionEnd = this.settings.transitionEnd;\n\n var closeTransitionHandler = function closeTransitionHandler() {\n modal.removeEventListener(transitionEnd, closeTransitionHandler);\n _this.closeModal(e);\n };\n modal.addEventListener(transitionEnd, closeTransitionHandler);\n }\n }, {\n key: 'captureNode',\n value: function captureNode(node) {\n var modalContent = this.dom.modalContent;\n\n while (node.childNodes.length) {\n modalContent.appendChild(node.childNodes[0]);\n }\n }\n }, {\n key: 'releaseNode',\n value: function releaseNode(node) {\n var modalContent = this.dom.modalContent;\n\n while (modalContent.childNodes.length) {\n node.appendChild(modalContent.childNodes[0]);\n }\n }\n }, {\n key: 'closeKeyHandler',\n value: function closeKeyHandler(e) {\n var closeKeys = this.settings.closeKeys;\n\n if (isPopulatedArray(closeKeys) && closeKeys.indexOf(e.which) > -1 && this.isOpen === true) {\n e.preventDefault();\n this.close(e);\n }\n }\n }, {\n key: 'outsideClickHandler',\n value: function outsideClickHandler(e) {\n var clickOutside = this.settings.clickOutside;\n var modalInner = this.dom.modalInner;\n\n if (clickOutside) {\n var node = e.target;\n while (node && node !== document.body) {\n if (node === modalInner) {\n return;\n }\n node = node.parentNode;\n }\n this.close(e);\n }\n }\n }, {\n key: 'delegateOpen',\n value: function delegateOpen(e) {\n var open = this.settings.open;\n\n var matchedNode = matches(e, open);\n if (matchedNode) {\n e.preventDefault();\n this.open(matchedNode, e);\n }\n }\n }, {\n key: 'delegateClose',\n value: function delegateClose(e) {\n var close = this.settings.close;\n\n if (matches(e, close)) {\n e.preventDefault();\n this.close(e);\n }\n }\n }, {\n key: 'listen',\n value: function listen() {\n var modal = this.dom.modal;\n\n if (!this.isListening) {\n modal.addEventListener('click', this.outsideClickHandler, false);\n document.addEventListener('keydown', this.closeKeyHandler, false);\n document.addEventListener('click', this.delegateOpen, false);\n document.addEventListener('click', this.delegateClose, false);\n this.isListening = true;\n } else {\n throwError('Event listeners already applied.');\n }\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n var modal = this.dom.modal;\n\n if (this.isListening) {\n this.close();\n modal.removeEventListener('click', this.outsideClickHandler);\n document.removeEventListener('keydown', this.closeKeyHandler);\n document.removeEventListener('click', this.delegateOpen);\n document.removeEventListener('click', this.delegateClose);\n this.isListening = false;\n } else {\n throwError('Event listeners already removed.');\n }\n }\n }]);\n\n return VanillaModal;\n }();\n\n exports.default = VanillaModal;\n});\n"],"sourceRoot":""}