{"version":3,"file":"vendor-d9b1b00d.js","sources":["../../node_modules/focus-visible/dist/focus-visible.js","../../node_modules/@verndale/core/lib/importModule.js","../../node_modules/@verndale/core/lib/render.js","../../node_modules/@verndale/core/lib/Component.js","../../node_modules/@verndale/core/lib/index.js"],"sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. ¯\\_(ツ)_/¯\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n","\"use strict\";\n/**\n * @ignore\n *\n * Imports a module dynamically.\n *\n * *You should never use this method directly* as this method is used in\n * conjunction with {@link Component}, {@link create} and {@link render} to provide a wrapper and simple interface for the engineer.\n *\n * @example\n * //'Foo' is the name of the JavaScript reference\n *
\n *\n * @example\n * //-- src/js/modules/Foo.js\n * import { Component } from '@verndale/core';\n *\n * class Foo extends Component{\n * constructor(el){\n * super(el);\n *\n * console.log(this.el);\n * }\n * }\n *\n * //-- src/js/main.js\n * import { importModule, render } from '@verndale/core';\n *\n * //import a single module/class called Foo.js located in src/js/modules\n * importModule('Foo', () => './modules/Foo').then(data => {\n * if(!data) return;\n * const { module, el } = data;\n *\n * render(el, $target => {\n * new module($target);\n * })\n * });\n *\n * @example\n * //'Bar' is the name of the JavaScript reference\n *
\n *\n * @example\n * //-- src/js/modules/global/Bar.js\n * import { Component } from '@verndale/core';\n *\n * class Bar extends Component{\n * constructor(el, props){\n * super(el, props);\n *\n * console.log(this.el);\n *\n * console.log(this.props.firstName);\n * console.log(this.props.lastName);\n * }\n * }\n *\n * //-- src/js/main.js\n * import { importComponent, render } from '@verndale/core';\n *\n * //import a single module and add some additional properties\n * importModule('Bar', () => import('./modules/global/Bar')).then(data => {\n * if(!data) return;\n * const { module, el } = data;\n *\n * render(el, $target => {\n * new module($target, {\n * firstName: 'foo',\n * lastName: 'bar'\n * });\n * })\n * });\n *\n * @see {@link create}\n * @param {String} name - Name of the module.\n * @param {String} loader - Dynamic import function `() => import('module-path')`\n * @returns {Promise.} - Returns a `data` object that holds the default module and the element `(data.module, data.el)`\n *\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction importModule(name, loader, styles) {\n const el = document.querySelectorAll(`[data-module=\"${name}\"]`);\n if (el.length === 0) {\n return Promise.resolve();\n }\n if (styles) {\n styles().catch((err) => {\n return Promise.reject(new Error(`There was an error loading your module's style file - ${err}`));\n });\n }\n if (loader) {\n return loader()\n .then((module) => {\n return {\n module: module.default,\n el,\n };\n })\n .catch((err) => {\n return Promise.reject(new Error(`There was an error loading your module's javascript file - ${err}`));\n });\n }\n}\nexports.default = importModule;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Iterates through any matched element and provides a callback to return the DOM object.\n *\n * @example\n * import { render } from '@verndale/core';\n *\n * render(document.querySelectorAll('.foo'), $target => {\n * new Foo($target);\n * });\n *\n * @param {Object} el - The DOM object to be used to iterate through.\n * @param {Function} cb - Callback which returns the raw element.\n */\nfunction render(el, cb) {\n if (!el) {\n throw new Error(\"You must define a dom object.\");\n }\n if (typeof el !== \"object\" || Array.isArray(el)) {\n throw new TypeError(\"This method requires a dom object to be passed in.\");\n }\n if (!cb) {\n throw new Error(\"You must define a callback method.\");\n }\n if (typeof cb !== \"function\") {\n throw new TypeError(\"You must provide a Function.\");\n }\n el.forEach(cb);\n}\nexports.default = render;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst domTree = new WeakMap();\nconst configuration = new WeakMap();\nclass Component {\n constructor(el, props = {}) {\n // if (typeof el === 'undefined') {\n // throw new Error(\n // 'You must provide an element as an HTMLElement type'\n // );\n // }\n var _a;\n this.el = el;\n /**\n * Main class element, this will be a native Node instance\n * This can be reachable at any time in your subclass with `this.el` after `super()` is called\n *\n * @type {Object}\n */\n this.el = el;\n if (!this.el || !(this.el instanceof HTMLElement)) {\n return;\n }\n domTree.set(this, {});\n configuration.set(this, props);\n if ((_a = this.props) === null || _a === void 0 ? void 0 : _a.dom) {\n this.dom = this.props.dom;\n }\n this.setupDefaults && this.setupDefaults();\n this.addListeners && this.addListeners();\n }\n /**\n * Get component configuration.\n *\n * @example\n * class Foo extends Component {\n * construction(el: HTMLElement, props: { name: string }){\n * super(el, props);\n * }\n *\n * setupDefaults(){\n * console.log(this.props.name); // Outputs \"Foo\"\n * }\n * }\n *\n * // Create a new Foo component with some configuration\n * new Foo(document.querySelector('.foo'), {\n * name: 'Foo'\n * });\n *\n * @type {Object}\n */\n get props() {\n return configuration.get(this);\n }\n /**\n * Set DOM object.\n *\n * @example\n * class Foo extends Component {\n * construction(el: HTMLElement){\n * super(el);\n * }\n *\n * setupDefaults(){\n * this.dom = {\n * $container: document.querySelector('.container')\n * }\n * }\n *\n * addListeners(){\n * //DOM object is available\n * console.log(this.dom.$container);\n * }\n * }\n *\n * // Create a new Foo component\n * new Foo(document.querySelector('.foo'));\n *\n * @type {Object}\n */\n set dom(elements) {\n elements = Object.assign(Object.assign({}, this.dom), elements);\n domTree.set(this, elements);\n }\n /**\n * Get DOM object.\n *\n * @example\n * this.dom\n *\n * @type {Object}\n */\n get dom() {\n return domTree.get(this) || {};\n }\n}\nexports.default = Component;\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Component = exports.importModule = exports.render = void 0;\n// @flow\nconst importModule_1 = __importDefault(require(\"./importModule\"));\nexports.importModule = importModule_1.default;\nconst render_1 = __importDefault(require(\"./render\"));\nexports.render = render_1.default;\nconst Component_1 = __importDefault(require(\"./Component\"));\nexports.Component = Component_1.default;\nfunction create(organisms) {\n return Promise.all(organisms.map((organism) => __awaiter(this, void 0, void 0, function* () {\n const data = yield (0, importModule_1.default)(organism.name, organism.loader, organism.styles);\n if (!data)\n return;\n const { module, el } = data;\n if (organism.render && typeof organism.render === \"function\") {\n organism.render(module, el);\n return;\n }\n (0, render_1.default)(el, ($target) => {\n new module($target, organism.props);\n });\n })));\n}\nexports.default = create;\n"],"names":["global","factory","this","applyFocusVisiblePolyfill","scope","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesAllowlist","isValidFocusTarget","el","focusTriggersKeyboardModality","type","tagName","addFocusVisibleClass","removeFocusVisibleClass","onKeyDown","onPointerDown","onFocus","onBlur","onVisibilityChange","addInitialPointerMoveListeners","onInitialPointerMove","removeInitialPointerMoveListeners","event","importModule_1","importModule","name","loader","styles","err","module","render_1","render","cb","Component_1","domTree","configuration","Component$1","props","_a","elements","Component","__awaiter","thisArg","_arguments","P","generator","adopt","value","resolve","reject","fulfilled","step","e","rejected","result","__importDefault","mod","lib","require$$0","require$$1","require$$2","create","organisms","organism","data","$target","_default"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4]}