diff --git a/.browserslistrc b/.browserslistrc index a3a72b77..0486491e 100644 --- a/.browserslistrc +++ b/.browserslistrc @@ -4,5 +4,5 @@ chrome >= 49 safari >= 10 android >= 4.4 ios >= 9 -not ie <= 11 -not op_mini all \ No newline at end of file +ie 11 +not op_mini all diff --git a/README.md b/README.md index dbca15dc..261f11a1 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Undernet](src/assets/images/github-logo.png?raw=true) +![Undernet](site/assets/images/github-logo.png?raw=true) [![CircleCI](https://circleci.com/gh/geotrev/undernet/tree/master.svg?style=svg)](https://circleci.com/gh/geotrev/undernet/tree/master) [![devDependencies Status](https://david-dm.org/geotrev/undernet/dev-status.svg)](https://david-dm.org/geotrev/undernet?type=dev) [![dependencies Status](https://david-dm.org/geotrev/undernet.svg)](https://david-dm.org/geotrev/undernet) [![npm version](https://badge.fury.io/js/undernet.svg)](https://badge.fury.io/js/undernet) ![Code style](https://img.shields.io/badge/code_style-prettier-ff69b4.svg) diff --git a/config/mocha.undernet.config.js b/config/mocha.undernet.config.js index 59c7a232..4f74bf81 100644 --- a/config/mocha.undernet.config.js +++ b/config/mocha.undernet.config.js @@ -9,6 +9,7 @@ const dom = new JSDOM("") const { window } = dom global.window = window global.document = window.document +global.navigator = { userAgent: "node" } /** * Create and fire a keyboard event. @@ -26,3 +27,13 @@ global.window.simulateKeyPress = (which, shiftKey = false, node = null) => { return node ? node.dispatchEvent(event) : document.dispatchEvent(event) } + +global.window.simulateMouseEvent = (name, node = null, bubbles = false, cancelable = false) => { + const event = new MouseEvent(name, { + bubbles: bubbles || true, + cancelable: cancelable || true, + relatedTarget: window + }) + + return node ? node.dispatchEvent(event) : document.dispatchEvent(event) +} diff --git a/dist/undernet.bundle.esm.js b/dist/undernet.bundle.esm.js index 1147c149..d409ef12 100644 --- a/dist/undernet.bundle.esm.js +++ b/dist/undernet.bundle.esm.js @@ -1,6 +1,6 @@ /*! * @license MIT (https://github.com/geotrev/undernet/blob/master/LICENSE) - * Undernet v3.3.7 (https://undernet.io) + * Undernet v4.0.0 (https://undernet.io) * Copyright 2017-2019 George Treviranus */ const KeyCodes = { @@ -26,14 +26,29 @@ const Events = { * @param {String} container - The enclosing container's class, attribute, etc. * @return {String} */ +const nodeListToArray = nodeList => { + return Array.apply(null, document.querySelectorAll(nodeList)) +}; + +/** + * Creates a string of element selector patterns using common elements. + * @param {String} container - The enclosing container's class, attribute, etc. + * @return {Array} + */ const getFocusableElements = container => { const focusables = Selectors.FOCUSABLE_TAGS.map( element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}` ).join(", "); - return document.querySelectorAll(focusables) + return nodeListToArray(focusables) }; +/** + * Detects if the browser being used is on an iphone, ipad, or ipod. + * @return {Boolean} + */ +const iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent); + /** * Utility methods for DOM traversal and focus trapping. * @module Utils @@ -116,17 +131,10 @@ class Utils { * @param {Object} event - Event (keypress). */ _listenForKeyboard(event) { - const tabKey = event.which === KeyCodes.TAB; - const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey; - const arrowUp = event.which === KeyCodes.ARROW_UP; - const arrowDown = event.which === KeyCodes.ARROW_DOWN; - - if (tabKey || shiftKey || arrowUp || arrowDown) { - document.body.classList.add(Selectors.KEYBOARD_CLASS); - document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard); - document.addEventListener(Events.CLICK, this._listenForClick); - this._listeningForKeydown = false; - } + document.body.classList.add(Selectors.KEYBOARD_CLASS); + document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard); + document.addEventListener(Events.CLICK, this._listenForClick); + this._listeningForKeydown = false; } /** @@ -211,270 +219,7 @@ class Utils { } } -const KeyCodes$1 = { - ESCAPE: 27, -}; - const Selectors$1 = { - // unique - DATA_MODAL: "data-modal", - DATA_MODAL_ID: "data-modal-id", - DATA_MODAL_BUTTON: "data-modal-button", - // common - DATA_VISIBLE: "data-visible", - DATA_CLOSE: "data-close", - DATA_TARGET: "data-target", - DATA_PARENT: "data-parent", - // accessibility - ARIA_HIDDEN: "aria-hidden", - ARIA_MODAL: "aria-modal", - ROLE: "role", - TABINDEX: "tabindex", - // classes - NO_SCROLL: "no-scroll", -}; - -const Events$1 = { - KEYDOWN: "keydown", - CLICK: "click", - RESIZE: "resize", -}; - -const Messages = { - NO_TARGET_ERROR: `Could not find [data-target] attribute associated with a [data-modal-button] element.`, - NO_PARENT_ERROR: `Could not find [data-parent] attribute associated with a [data-modal] element.`, - NO_ID_ERROR: id => - `Could not find [data-modal-id='${id}'] associated with a [data-modal] element.`, -}; - -/** - * Modal component class. - * @module Modal - * @requires Utils - */ -class Modal extends Utils { - constructor() { - super(); - - this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent); - - // events - this._render = this._render.bind(this); - this._handleClose = this._handleClose.bind(this); - this._handleOverlayClick = this._handleOverlayClick.bind(this); - this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this); - - // all modals - this._modals = []; - this._modalButtons = []; - - // active modal - this._activeModalButton = {}; - this._activeModalOverlay = {}; - this._activeModal = {}; - this._activeModalId = ""; - this._activeModalOverlayAttr = ""; - this._activeModalSelector = ""; - this._activeModalCloseButtons = []; - - // attribute helpers - this._modalContainerAttr = `[${Selectors$1.DATA_MODAL}]`; - } - - // public - - /** - * Add accessible attributes to modal containers - * Begin listening to elements with [data-modal-button] - */ - start() { - this._modals = document.querySelectorAll(this._modalContainerAttr); - this._modalButtons = document.querySelectorAll(`[${Selectors$1.DATA_MODAL_BUTTON}]`); - - getFocusableElements(this._modalContainerAttr).forEach(element => { - element.setAttribute(Selectors$1.TABINDEX, "-1"); - }); - - if (this._modals.length) { - this._modals.forEach(modal => { - this._setupModal(modal); - }); - } - - if (this._modalButtons.length) { - this._modalButtons.forEach(button => { - button.addEventListener(Events$1.CLICK, this._render); - }); - } - } - - /** - * Stop listening to modal buttons - */ - stop() { - this._modalButtons.forEach(button => { - button.removeEventListener(Events$1.CLICK, this._render); - }); - } - - // private - - /** - * Find a button through event.target, then render the corresponding modal attribute via matching target id - * @param {Object} event - The event object - */ - _render(event) { - event.preventDefault(); - this._activeModalButton = event.target; - - if (!this._activeModalButton.getAttribute(Selectors$1.DATA_TARGET)) { - return console.error(Messages.NO_TARGET_ERROR) - } - - this._activeModalId = this._activeModalButton.getAttribute(Selectors$1.DATA_TARGET); - this._activeModalOverlayAttr = `[${Selectors$1.DATA_MODAL_ID}="${this._activeModalId}"]`; - - if (!document.querySelector(this._activeModalOverlayAttr)) { - return console.error(Messages.NO_ID_ERROR(this._activeModalId)) - } - - this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr); - - this._activeModalSelector = `${this._activeModalOverlayAttr} ${this._modalContainerAttr}`; - this._activeModal = document.querySelector(this._activeModalSelector); - this._activeModalCloseButtons = document.querySelectorAll( - `${this._activeModalOverlayAttr} [${Selectors$1.DATA_CLOSE}]` - ); - - // allow focusable elements to be focused - getFocusableElements(this._activeModalSelector).forEach(element => { - element.setAttribute(Selectors$1.TABINDEX, "0"); - }); - - // capture focus, stop scrolling, and toggle attributes for visibility - this._handleScrollStop(); - this.captureFocus(this._activeModalSelector); - this._activeModalOverlay.setAttribute(Selectors$1.ARIA_HIDDEN, "false"); - this._activeModalOverlay.setAttribute(Selectors$1.DATA_VISIBLE, "true"); - - // focus the modal - this._activeModal.setAttribute(Selectors$1.TABINDEX, "-1"); - this._activeModal.focus(); - - // offset slight scroll caused by this._activeModal.focus() - this._activeModalOverlay.scrollTop = 0; - - // on ios devices, let the modal close on overlay click - if (this._iosMobile) { - this._activeModalOverlay.style.cursor = "pointer"; - } - - // begin listening to events - document.addEventListener(Events$1.KEYDOWN, this._handleEscapeKeyPress); - document.addEventListener(Events$1.CLICK, this._handleOverlayClick); - this._activeModalCloseButtons.forEach(button => { - button.addEventListener(Events$1.CLICK, this._handleClose); - }); - } - - _setupModal(modal) { - let modalId; - if (!modal.getAttribute(Selectors$1.DATA_PARENT)) { - return console.error(Messages.NO_PARENT_ERROR) - } else { - modalId = modal.getAttribute(Selectors$1.DATA_PARENT); - } - - let modalWrapper; - if (!document.querySelector(`[${Selectors$1.DATA_MODAL_ID}='${modalId}']`)) { - return console.error(Messages.NO_ID_ERROR(modalId)) - } else { - modalWrapper = document.querySelector(`[${Selectors$1.DATA_MODAL_ID}='${modalId}']`); - } - - modalWrapper.setAttribute(Selectors$1.ARIA_HIDDEN, "true"); - modalWrapper.setAttribute(Selectors$1.DATA_VISIBLE, "false"); - modal.setAttribute(Selectors$1.ARIA_MODAL, "true"); - modal.setAttribute(Selectors$1.ROLE, "dialog"); - } - - /** - * Turn off event listeners and reset focus to last selected DOM node (button) - * @param {Object} event - The event object - */ - _handleClose(event) { - event.preventDefault(); - this._activeModalOverlay.setAttribute(Selectors$1.DATA_VISIBLE, "false"); - this._handleReturnFocus(); - this._handleScrollRestore(); - this.releaseFocus(); - this._activeModalOverlay.setAttribute(Selectors$1.ARIA_HIDDEN, "true"); - this._activeModal.removeAttribute(Selectors$1.TABINDEX); - - getFocusableElements(this._activeModalSelector).forEach(element => { - element.setAttribute(Selectors$1.TABINDEX, "-1"); - }); - - if (this._iosMobile) { - this._activeModalOverlay.style.cursor = "auto"; - } - - // stop listening to events - document.removeEventListener(Events$1.KEYDOWN, this._handleEscapeKeyPress); - document.removeEventListener(Events$1.CLICK, this._handleOverlayClick); - this._activeModalCloseButtons.forEach(button => { - button.removeEventListener(Events$1.CLICK, this._handleClose); - }); - } - - /** - * Handles click event on the modal background to close it. - * @param {Object} event - The event object - */ - _handleOverlayClick(event) { - if (event.target === this._activeModalOverlay) { - this._handleClose(event); - } - } - - /** - * Handles escape key event to close the current modal - * @param {Object} event - The event object - */ - _handleEscapeKeyPress(event) { - if (event.which === KeyCodes$1.ESCAPE) { - this._handleClose(event); - } - } - - /** - * Returns focus to the last focused element before the modal was called. - * @param {Object} button - The current modal's corresponding button. - */ - _handleReturnFocus() { - this._activeModalButton.setAttribute(Selectors$1.TABINDEX, "-1"); - this._activeModalButton.focus(); - this._activeModalButton.removeAttribute(Selectors$1.TABINDEX); - } - - /** - * Restores scroll behavior to and - */ - _handleScrollRestore() { - document.body.classList.remove(Selectors$1.NO_SCROLL); - document.querySelector("html").classList.remove(Selectors$1.NO_SCROLL); - } - - /** - * Prevents scroll behavior on and - */ - _handleScrollStop() { - document.body.classList.add(Selectors$1.NO_SCROLL); - document.querySelector("html").classList.add(Selectors$1.NO_SCROLL); - } -} - -const Selectors$2 = { // unique DATA_ACCORDION: "data-accordion", DATA_ACCORDION_ROW: "data-accordion-row", @@ -491,12 +236,12 @@ const Selectors$2 = { TABINDEX: "tabindex", }; -const Events$2 = { +const Events$1 = { CLICK: "click", KEYDOWN: "keydown", }; -const Messages$1 = { +const Messages = { NO_VISIBLE_ERROR: id => `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`, NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`, @@ -542,29 +287,28 @@ class Accordion extends Utils { // public /** - * Sets up accordion components and listens to buttons for events. - * Begin listening to [data-accordion-button] elements + * Begin listening to accordions. */ start() { const accordionButtonSelector = this._getPossibleAccordionButtonAttrs( - `[${Selectors$2.DATA_ACCORDION}]` + `[${Selectors$1.DATA_ACCORDION}]` ); - this._accordionButtons = document.querySelectorAll(accordionButtonSelector); + this._accordionButtons = nodeListToArray(accordionButtonSelector); if (this._accordionButtons.length) { this._accordionButtons.forEach(button => { this._setupAccordion(button); - button.addEventListener(Events$2.CLICK, this._render); + button.addEventListener(Events$1.CLICK, this._render); }); } } /** - * Stop listening to accordion button events. + * Stop listening to accordions. */ stop() { this._accordionButtons.forEach(button => { - button.removeEventListener(Events$2.CLICK, this._render); + button.removeEventListener(Events$1.CLICK, this._render); }); } @@ -578,32 +322,35 @@ class Accordion extends Utils { event.preventDefault(); this._activeButton = event.target; - this._activeAccordionRowId = this._activeButton.getAttribute(Selectors$2.DATA_TARGET); + this._activeAccordionRowId = this._activeButton.getAttribute(Selectors$1.DATA_TARGET); this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId); this._activeRow = document.querySelector(this._activeRowAttr); + this._activeContainerId = this._activeButton.getAttribute(Selectors$1.DATA_PARENT); - if (!this._activeButton.getAttribute(Selectors$2.DATA_PARENT)) { - return console.error(Messages$1.NO_PARENT_ERROR(this._activeAccordionRowId)) + if (!this._activeContainerId) { + return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId)) } - this._activeContainerId = this._activeButton.getAttribute(Selectors$2.DATA_PARENT); - this._activeContainerAttr = `[${Selectors$2.DATA_ACCORDION}='${this._activeContainerId}']`; + this._activeContainerAttr = `[${Selectors$1.DATA_ACCORDION}='${this._activeContainerId}']`; + this._activeContainer = document.querySelector(this._activeContainerAttr); - if (!document.querySelector(this._activeContainerAttr)) { - return console.error(Messages$1.NO_ACCORDION_ERROR(this._activeContainerId)) + if (!this._activeContainer) { + return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId)) } - this._activeContainer = document.querySelector(this._activeContainerAttr); this._activeContent = document.getElementById(this._activeAccordionRowId); - const accordionButtonState = this._activeRow.getAttribute(Selectors$2.DATA_VISIBLE); + const accordionButtonState = this._activeRow.getAttribute(Selectors$1.DATA_VISIBLE); this._activeButtonExpandState = accordionButtonState === "true" ? "false" : "true"; this._activeContentHiddenState = this._activeButtonExpandState === "false" ? "true" : "false"; this._closeAllIfToggleable(); this._toggleSelectedAccordion(); + + this._activeContainerId = null; + this._activeContainer = null; } /** @@ -611,49 +358,50 @@ class Accordion extends Utils { * @param {Element} button - A button element that triggers an accordion. */ _setupAccordion(button) { - const buttonId = button.getAttribute(Selectors$2.DATA_TARGET); + const buttonId = button.getAttribute(Selectors$1.DATA_TARGET); + const buttonContent = document.getElementById(buttonId); - if (!document.getElementById(buttonId)) { - return console.error(Messages$1.NO_CONTENT_ERROR(buttonId)) + if (!buttonContent) { + return console.error(Messages.NO_CONTENT_ERROR(buttonId)) } - const buttonContent = document.getElementById(buttonId); const accordionRowAttr = this._getAccordionRowAttr(buttonId); + const accordionRow = document.querySelector(accordionRowAttr); - if (!document.querySelector(accordionRowAttr)) { - return console.error(Messages$1.NO_ROW_ERROR(buttonId)) + if (!accordionRow) { + return console.error(Messages.NO_ROW_ERROR(buttonId)) } - const accordionRow = document.querySelector(accordionRowAttr); const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr); - const buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0]; + const buttonHeader = nodeListToArray(buttonHeaderAttr)[0]; if (!buttonHeader || !buttonHeader.id) { - console.error(Messages$1.NO_HEADER_ID_ERROR(buttonId)); + console.error(Messages.NO_HEADER_ID_ERROR(buttonId)); } const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`); - button.setAttribute(Selectors$2.ARIA_CONTROLS, buttonId); - buttonContent.setAttribute(Selectors$2.ARIA_LABELLEDBY, buttonHeader.id); + button.setAttribute(Selectors$1.ARIA_CONTROLS, buttonId); + buttonContent.setAttribute(Selectors$1.ARIA_LABELLEDBY, buttonHeader.id); + + const contentShouldExpand = accordionRow.getAttribute(Selectors$1.DATA_VISIBLE); - if (!accordionRow.getAttribute(Selectors$2.DATA_VISIBLE)) { - return console.error(Messages$1.NO_VISIBLE_ERROR(buttonId)) + if (!contentShouldExpand) { + return console.error(Messages.NO_VISIBLE_ERROR(buttonId)) } - const contentShouldExpand = accordionRow.getAttribute(Selectors$2.DATA_VISIBLE); if (contentShouldExpand === "true") { buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`; - button.setAttribute(Selectors$2.ARIA_EXPANDED, "true"); - buttonContent.setAttribute(Selectors$2.ARIA_HIDDEN, "false"); + button.setAttribute(Selectors$1.ARIA_EXPANDED, "true"); + buttonContent.setAttribute(Selectors$1.ARIA_HIDDEN, "false"); buttonContentChildren.forEach(element => { - element.setAttribute(Selectors$2.TABINDEX, "0"); + element.setAttribute(Selectors$1.TABINDEX, "0"); }); } else { - button.setAttribute(Selectors$2.ARIA_EXPANDED, "false"); - buttonContent.setAttribute(Selectors$2.ARIA_HIDDEN, "true"); + button.setAttribute(Selectors$1.ARIA_EXPANDED, "false"); + buttonContent.setAttribute(Selectors$1.ARIA_HIDDEN, "true"); buttonContentChildren.forEach(element => { - element.setAttribute(Selectors$2.TABINDEX, "-1"); + element.setAttribute(Selectors$1.TABINDEX, "-1"); }); } } @@ -666,7 +414,7 @@ class Accordion extends Utils { _getPossibleAccordionButtonAttrs(attr) { return this._headerLevels .map( - num => `${attr} > [${Selectors$2.DATA_ACCORDION_ROW}] > h${num} [${Selectors$2.DATA_TARGET}]` + num => `${attr} > [${Selectors$1.DATA_ACCORDION_ROW}] > h${num} [${Selectors$1.DATA_TARGET}]` ) .join(", ") } @@ -686,7 +434,7 @@ class Accordion extends Utils { * @return {String} - A unique accordion row selector */ _getAccordionRowAttr(id) { - return `[${Selectors$2.DATA_ACCORDION_ROW}='${id}']` + return `[${Selectors$1.DATA_ACCORDION_ROW}='${id}']` } /** @@ -694,42 +442,40 @@ class Accordion extends Utils { * This ensures the selected one can be closed if it's already open. */ _closeAllIfToggleable() { - if (this._activeContainer.hasAttribute(Selectors$2.DATA_TOGGLE_MULTIPLE)) return + if (this._activeContainer.hasAttribute(Selectors$1.DATA_TOGGLE_MULTIPLE)) return - const allContentAttr = `${this._activeContainerAttr} [${Selectors$2.ARIA_HIDDEN}]`; - const allRows = document.querySelectorAll( - `${this._activeContainerAttr} [${Selectors$2.DATA_VISIBLE}]` - ); - const allContent = document.querySelectorAll(allContentAttr); + const allContentAttr = `${this._activeContainerAttr} [${Selectors$1.ARIA_HIDDEN}]`; + const allRows = nodeListToArray(`${this._activeContainerAttr} [${Selectors$1.DATA_VISIBLE}]`); + const allContent = nodeListToArray(allContentAttr); const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr); - const allButtons = document.querySelectorAll(accordionButtonSelector); + const allButtons = nodeListToArray(accordionButtonSelector); allContent.forEach(content => { if (content !== this._activeContent) content.style.maxHeight = null; }); getFocusableElements(allContentAttr).forEach(element => { - element.setAttribute(Selectors$2.TABINDEX, "-1"); + element.setAttribute(Selectors$1.TABINDEX, "-1"); }); - this._toggleAttributeInCollection(allRows, Selectors$2.DATA_VISIBLE, "true", "false"); - this._toggleAttributeInCollection(allButtons, Selectors$2.ARIA_EXPANDED, "true", "false"); - this._toggleAttributeInCollection(allContent, Selectors$2.ARIA_HIDDEN, "false", "true"); + this._toggleAttributeInCollection(allRows, Selectors$1.DATA_VISIBLE, "true", "false"); + this._toggleAttributeInCollection(allButtons, Selectors$1.ARIA_EXPANDED, "true", "false"); + this._toggleAttributeInCollection(allContent, Selectors$1.ARIA_HIDDEN, "false", "true"); } /** * Toggle the currently selected accordion button's content. */ _toggleSelectedAccordion() { - this._activeRow.setAttribute(Selectors$2.DATA_VISIBLE, this._activeButtonExpandState); - this._activeButton.setAttribute(Selectors$2.ARIA_EXPANDED, this._activeButtonExpandState); - this._activeContent.setAttribute(Selectors$2.ARIA_HIDDEN, this._activeContentHiddenState); + this._activeRow.setAttribute(Selectors$1.DATA_VISIBLE, this._activeButtonExpandState); + this._activeButton.setAttribute(Selectors$1.ARIA_EXPANDED, this._activeButtonExpandState); + this._activeContent.setAttribute(Selectors$1.ARIA_HIDDEN, this._activeContentHiddenState); const activeContentBlock = `#${this._activeAccordionRowId}`; getFocusableElements(activeContentBlock).forEach(element => { const value = this._activeButtonExpandState === "true" ? "0" : "-1"; - element.setAttribute(Selectors$2.TABINDEX, value); + element.setAttribute(Selectors$1.TABINDEX, value); }); if (this._activeContent.style.maxHeight) { @@ -755,7 +501,7 @@ class Accordion extends Utils { } } -const KeyCodes$2 = { +const KeyCodes$1 = { TAB: 9, SHIFT: 16, ESCAPE: 27, @@ -763,7 +509,7 @@ const KeyCodes$2 = { ARROW_DOWN: 40, }; -const Selectors$3 = { +const Selectors$2 = { // unique DATA_DROPDOWN: "data-dropdown", // common @@ -779,12 +525,12 @@ const Selectors$3 = { ROLE: "role", }; -const Events$3 = { +const Events$2 = { KEYDOWN: "keydown", CLICK: "click", }; -const Messages$2 = { +const Messages$1 = { NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`, NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`, NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`, @@ -798,9 +544,6 @@ const Messages$2 = { class Dropdown extends Utils { constructor() { super(); - - this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent); - // events this._render = this._render.bind(this); this._handleFirstTabClose = this._handleFirstTabClose.bind(this); @@ -825,19 +568,18 @@ class Dropdown extends Utils { this._dropdowns = []; // dropdown element selectors - this._dropdownContainerAttr = `[${Selectors$3.DATA_DROPDOWN}]`; - this._dropdownTargetAttr = `[${Selectors$3.DATA_TARGET}]`; + this._dropdownContainerAttr = `[${Selectors$2.DATA_DROPDOWN}]`; + this._dropdownTargetAttr = `[${Selectors$2.DATA_TARGET}]`; } // public /** - * Find and set up dropdown buttons and menus. - * Begin listening to dropdowns for events. + * Begin listening to dropdowns. */ start() { - this._dropdowns = document.querySelectorAll(`${this._dropdownContainerAttr}`); - this._dropdownButtons = document.querySelectorAll( + this._dropdowns = nodeListToArray(`${this._dropdownContainerAttr}`); + this._dropdownButtons = nodeListToArray( `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}` ); @@ -846,18 +588,18 @@ class Dropdown extends Utils { } this._dropdownButtons.forEach(button => { - button.addEventListener(Events$3.CLICK, this._render); - button.addEventListener(Events$3.KEYDOWN, this._renderWithKeys); + button.addEventListener(Events$2.CLICK, this._render); + button.addEventListener(Events$2.KEYDOWN, this._renderWithKeys); }); } /** - * Stop listening for dropdown events. + * Stop listening to dropdowns. */ stop() { this._dropdownButtons.forEach(button => { - button.removeEventListener(Events$3.CLICK, this._render); - button.removeEventListener(Events$3.KEYDOWN, this._renderWithKeys); + button.removeEventListener(Events$2.CLICK, this._render); + button.removeEventListener(Events$2.KEYDOWN, this._renderWithKeys); }); } @@ -880,39 +622,37 @@ class Dropdown extends Utils { // dropdown button / trigger this._activeDropdownButton = event.target; + this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors$2.DATA_PARENT); - if (!this._activeDropdownButton.getAttribute(Selectors$3.DATA_PARENT)) { - return console.error(Messages$2.NO_PARENT_ERROR) + if (!this._activeDropdownId) { + return console.error(Messages$1.NO_PARENT_ERROR) } - this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors$3.DATA_PARENT); - // dropdown container - this._activeDropdownAttr = `[${Selectors$3.DATA_DROPDOWN}="${this._activeDropdownId}"]`; + this._activeDropdownAttr = `[${Selectors$2.DATA_DROPDOWN}="${this._activeDropdownId}"]`; + this._activeDropdown = document.querySelector(this._activeDropdownAttr); - if (!document.querySelector(this._activeDropdownAttr)) { - return console.error(Messages$2.NO_DROPDOWN_ERROR(this._activeDropdownAttr)) + if (!this._activeDropdown) { + return console.error(Messages$1.NO_DROPDOWN_ERROR(this._activeDropdownAttr)) } - this._activeDropdown = document.querySelector(this._activeDropdownAttr); - // dropdown menu - this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors$3.DATA_TARGET); + this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors$2.DATA_TARGET); this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId); // toggle attributes on dropdown button, indicating a visible dropdown is present - this._activeDropdownButton.setAttribute(Selectors$3.ARIA_EXPANDED, "true"); - this._activeDropdown.setAttribute(Selectors$3.DATA_VISIBLE, "true"); + this._activeDropdownButton.setAttribute(Selectors$2.ARIA_EXPANDED, "true"); + this._activeDropdown.setAttribute(Selectors$2.DATA_VISIBLE, "true"); // trade button event listener to close the menu, instead of open it - this._activeDropdownButton.removeEventListener(Events$3.CLICK, this._render); - this._activeDropdownButton.addEventListener(Events$3.CLICK, this._handleClose); + this._activeDropdownButton.removeEventListener(Events$2.CLICK, this._render); + this._activeDropdownButton.addEventListener(Events$2.CLICK, this._handleClose); - document.addEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); - document.addEventListener(Events$3.CLICK, this._handleOffMenuClick); + document.addEventListener(Events$2.KEYDOWN, this._handleEscapeKeyPress); + document.addEventListener(Events$2.CLICK, this._handleOffMenuClick); // make click events work on mobile iOS - if (this._iosMobile) { + if (iOSMobile) { document.body.style.cursor = "pointer"; } @@ -921,18 +661,18 @@ class Dropdown extends Utils { this.firstDropdownLink = this._activeDropdownLinks[0]; this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]; - this.firstDropdownLink.addEventListener(Events$3.KEYDOWN, this._handleFirstTabClose); - this.lastDropdownLink.addEventListener(Events$3.KEYDOWN, this._handleLastTabClose); + this.firstDropdownLink.addEventListener(Events$2.KEYDOWN, this._handleFirstTabClose); + this.lastDropdownLink.addEventListener(Events$2.KEYDOWN, this._handleLastTabClose); - if (key && key === KeyCodes$2.ARROW_UP) { + if (key && key === KeyCodes$1.ARROW_UP) { this.lastDropdownLink.focus(); } else { this.firstDropdownLink.focus(); } this._activeDropdownLinks.forEach(link => { - link.setAttribute(Selectors$3.TABINDEX, "0"); - link.addEventListener(Events$3.CLICK, this._handleClose); + link.setAttribute(Selectors$2.TABINDEX, "0"); + link.addEventListener(Events$2.CLICK, this._handleClose); }); this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true }); @@ -943,8 +683,8 @@ class Dropdown extends Utils { * @param {Object} event - The event object */ _handleFirstTabClose(event) { - const shiftKey = event.which === KeyCodes$2.SHIFT || event.shiftKey; - const tabKey = event.which === KeyCodes$2.TAB; + const shiftKey = event.which === KeyCodes$1.SHIFT || event.shiftKey; + const tabKey = event.which === KeyCodes$1.TAB; if (shiftKey && tabKey) { this._handleClose(event); @@ -956,8 +696,8 @@ class Dropdown extends Utils { * @param {Object} event - The event object */ _handleLastTabClose(event) { - const shiftKey = event.which === KeyCodes$2.SHIFT || event.shiftKey; - const tabKey = event.which === KeyCodes$2.TAB; + const shiftKey = event.which === KeyCodes$1.SHIFT || event.shiftKey; + const tabKey = event.which === KeyCodes$1.TAB; if (tabKey && !shiftKey) { this._handleClose(event); @@ -969,7 +709,7 @@ class Dropdown extends Utils { * @param {Object} event - The event object */ _renderWithKeys(event) { - if (event.which === KeyCodes$2.ARROW_UP || event.which === KeyCodes$2.ARROW_DOWN) { + if (event.which === KeyCodes$1.ARROW_UP || event.which === KeyCodes$1.ARROW_DOWN) { this._render(event, event.which); } } @@ -983,30 +723,32 @@ class Dropdown extends Utils { this.releaseFocus(); - this._activeDropdownButton.setAttribute(Selectors$3.ARIA_EXPANDED, "false"); - this._activeDropdown.setAttribute(Selectors$3.DATA_VISIBLE, "false"); + this._activeDropdownButton.setAttribute(Selectors$2.ARIA_EXPANDED, "false"); + this._activeDropdown.setAttribute(Selectors$2.DATA_VISIBLE, "false"); this._activeDropdownLinks.forEach(link => { - link.setAttribute(Selectors$3.TABINDEX, "-1"); - link.removeEventListener(Events$3.CLICK, this._handleClose); + link.setAttribute(Selectors$2.TABINDEX, "-1"); + link.removeEventListener(Events$2.CLICK, this._handleClose); }); - this._activeDropdownButton.removeEventListener(Events$3.CLICK, this._handleClose); - this._activeDropdownButton.addEventListener(Events$3.CLICK, this._render); + this._activeDropdownButton.removeEventListener(Events$2.CLICK, this._handleClose); + this._activeDropdownButton.addEventListener(Events$2.CLICK, this._render); - document.removeEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); + document.removeEventListener(Events$2.KEYDOWN, this._handleEscapeKeyPress); - if (this._iosMobile) { + if (iOSMobile) { document.body.style.cursor = "auto"; } - document.removeEventListener(Events$3.CLICK, this._handleOffMenuClick); + document.removeEventListener(Events$2.CLICK, this._handleOffMenuClick); if (this._allowFocusReturn) { this._handleReturnFocus(); } this._activeDropdownButton = null; + this._activeDropdownId = null; + this._activeDropdown = null; } /** @@ -1014,7 +756,7 @@ class Dropdown extends Utils { * @param {Object} event - The event object */ _handleEscapeKeyPress(event) { - if (event.which === KeyCodes$2.ESCAPE) { + if (event.which === KeyCodes$1.ESCAPE) { this._handleClose(event); } } @@ -1033,9 +775,9 @@ class Dropdown extends Utils { * Puts focus on a the active dropdown button. */ _handleReturnFocus() { - this._activeDropdownButton.setAttribute(Selectors$3.TAB_INDEX, "-1"); + this._activeDropdownButton.setAttribute(Selectors$2.TAB_INDEX, "-1"); this._activeDropdownButton.focus(); - this._activeDropdownButton.removeAttribute(Selectors$3.TAB_INDEX); + this._activeDropdownButton.removeAttribute(Selectors$2.TAB_INDEX); } /** @@ -1044,7 +786,7 @@ class Dropdown extends Utils { * @return {String} - Selector for possible menu item links. */ _getDropdownLinks(attr) { - return document.querySelectorAll(`${attr} > ul > li > a, ${attr} > ul > li > button`) + return nodeListToArray(`${attr} > ul > li > a, ${attr} > ul > li > button`) } /** @@ -1052,35 +794,546 @@ class Dropdown extends Utils { * @param {Element} dropdown - A dropdown element. */ _setupDropdown(dropdown) { - const dropdownId = dropdown.getAttribute(Selectors$3.DATA_DROPDOWN); - const dropdownIdAttr = `[${Selectors$3.DATA_DROPDOWN}="${dropdownId}"]`; - const dropdownMenuItemsAttr = `${dropdownIdAttr} > ul > li`; + const dropdownId = dropdown.getAttribute(Selectors$2.DATA_DROPDOWN); + + // no id error + + const dropdownAttr = `[${Selectors$2.DATA_DROPDOWN}="${dropdownId}"]`; + const dropdownMenuItemsAttr = `${dropdownAttr} > ul > li`; + const dropdownMenu = document.querySelector(`${dropdownAttr} > ul`); + + // no ul error - if (!document.querySelector(`${dropdownIdAttr} > ul`)) { - return console.error(Messages$2.NO_MENU_ERROR(dropdownIdAttr)) + if (!dropdownMenu) { + return console.error(Messages$1.NO_MENU_ERROR(dropdownAttr)) } - const dropdownMenu = document.querySelector(`${dropdownIdAttr} > ul`); - const dropdownButton = document.querySelector(`${dropdownIdAttr} > ${this._dropdownTargetAttr}`); + const dropdownButton = document.querySelector(`${dropdownAttr} > ${this._dropdownTargetAttr}`); + + dropdownButton.setAttribute(Selectors$2.ARIA_CONTROLS, dropdownMenu.id); + dropdownButton.setAttribute(Selectors$2.ARIA_HASPOPUP, "true"); + dropdownButton.setAttribute(Selectors$2.ARIA_EXPANDED, "false"); + dropdownMenu.setAttribute(Selectors$2.ARIA_LABELLEDBY, dropdownButton.id); + + const dropdownMenuListItems = nodeListToArray(dropdownMenuItemsAttr); + + // no menu items error - dropdownButton.setAttribute(Selectors$3.ARIA_CONTROLS, dropdownMenu.id); - dropdownButton.setAttribute(Selectors$3.ARIA_HASPOPUP, "true"); - dropdownButton.setAttribute(Selectors$3.ARIA_EXPANDED, "false"); - dropdownMenu.setAttribute(Selectors$3.ARIA_LABELLEDBY, dropdownButton.id); + dropdownMenuListItems.forEach(item => item.setAttribute(Selectors$2.ROLE, "none")); - const dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr); - dropdownMenuItems.forEach(item => item.setAttribute(Selectors$3.ROLE, "none")); + const dropdownMenuButtons = this._getDropdownLinks(dropdownAttr); - this._getDropdownLinks(dropdownIdAttr).forEach(link => { - link.setAttribute(Selectors$3.ROLE, "menuitem"); - link.setAttribute(Selectors$3.TABINDEX, "-1"); + // no menu buttons error + + dropdownMenuButtons.forEach(link => { + link.setAttribute(Selectors$2.ROLE, "menuitem"); + link.setAttribute(Selectors$2.TABINDEX, "-1"); }); } } -const Modals = new Modal(); +const KeyCodes$2 = { + ESCAPE: 27, +}; + +const Selectors$3 = { + // unique + DATA_MODAL: "data-modal", + DATA_MODAL_BUTTON: "data-modal-button", + // common + DATA_VISIBLE: "data-visible", + DATA_CLOSE: "data-close", + DATA_PARENT: "data-parent", + // accessibility + ARIA_HIDDEN: "aria-hidden", + ARIA_MODAL: "aria-modal", + ROLE: "role", + TABINDEX: "tabindex", + // classes + NO_SCROLL: "no-scroll", +}; + +const Events$3 = { + KEYDOWN: "keydown", + CLICK: "click", + RESIZE: "resize", +}; + +const Messages$2 = { + NO_BUTTON_ID_ERROR: + "Could not find an id on your [data-modal-button] element. Modal can't be opened.", + NO_MODAL_ID_ERROR: + "Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.", + NO_MODAL_ERROR: id => + `Could not find a [data-parent='${id}'] attribute within your [data-modal='${id}'] element.`, +}; + +/** + * Modal component class. + * @module Modal + * @requires Utils + */ +class Modal extends Utils { + constructor() { + super(); + + // events + this._render = this._render.bind(this); + this._handleClose = this._handleClose.bind(this); + this._handleOverlayClick = this._handleOverlayClick.bind(this); + this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this); + + // all modals + this._modals = []; + this._modalButtons = []; + + // active modal + this._activeModalButton = {}; + this._activeModalOverlay = {}; + this._activeModal = {}; + this._activeModalId = ""; + this._activeModalOverlayAttr = ""; + this._activeModalSelector = ""; + this._activeModalCloseButtons = []; + + // attribute helpers + this._modalContainerAttr = `[${Selectors$3.DATA_MODAL}]`; + } + + // public + + /** + * Begin listening to modals. + */ + start() { + this._modals = nodeListToArray(this._modalContainerAttr); + this._modalButtons = nodeListToArray(`[${Selectors$3.DATA_MODAL_BUTTON}]`); + + getFocusableElements(this._modalContainerAttr).forEach(element => { + element.setAttribute(Selectors$3.TABINDEX, "-1"); + }); + + if (this._modals.length) { + this._modals.forEach(instance => { + this._setupModal(instance); + }); + } + + if (this._modalButtons.length) { + this._modalButtons.forEach(button => { + button.addEventListener(Events$3.CLICK, this._render); + }); + } + } + + /** + * Stop listening to modals + */ + stop() { + this._modalButtons.forEach(button => { + button.removeEventListener(Events$3.CLICK, this._render); + }); + } + + // private + + /** + * Find a button through event.target, then render the corresponding modal attribute via matching target id + * @param {Object} event - The event object + */ + _render(event) { + event.preventDefault(); + this._activeModalButton = event.target; + this._activeModalId = this._activeModalButton.getAttribute(Selectors$3.DATA_MODAL_BUTTON); + + if (!this._activeModalId) { + return console.error(Messages$2.NO_BUTTON_ID_ERROR) + } + + this._activeModalOverlay = document.querySelector( + `[${Selectors$3.DATA_MODAL}="${this._activeModalId}"]` + ); + this._activeModalSelector = `[${Selectors$3.DATA_PARENT}='${this._activeModalId}']`; + this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector); + this._activeModalCloseButtons = nodeListToArray( + `${this._activeModalSelector} [${Selectors$3.DATA_CLOSE}]` + ); + + getFocusableElements(this._activeModalSelector).forEach(element => { + element.setAttribute(Selectors$3.TABINDEX, "0"); + }); + + this._handleScrollStop(); + this.captureFocus(this._activeModalSelector); + this._activeModalOverlay.setAttribute(Selectors$3.ARIA_HIDDEN, "false"); + this._activeModalOverlay.setAttribute(Selectors$3.DATA_VISIBLE, "true"); + + this._activeModal.setAttribute(Selectors$3.TABINDEX, "-1"); + this._activeModal.focus(); + + this._activeModalOverlay.scrollTop = 0; + + if (iOSMobile) { + this._activeModalOverlay.style.cursor = "pointer"; + } + + // begin listening to events + document.addEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); + document.addEventListener(Events$3.CLICK, this._handleOverlayClick); + this._activeModalCloseButtons.forEach(button => { + button.addEventListener(Events$3.CLICK, this._handleClose); + }); + } + + /** + * Setup a modal instance. + * @param {Object} instance - The modal element + */ + _setupModal(instance) { + const modalId = instance.getAttribute(Selectors$3.DATA_MODAL); + + if (!modalId) { + return console.error(Messages$2.NO_MODAL_ID_ERROR) + } + + const modal = instance.querySelector(`[${Selectors$3.DATA_PARENT}='${modalId}']`); + + if (!modal) { + return console.error(Messages$2.NO_MODAL_ERROR(modalId)) + } + + const modalWrapper = document.querySelector(`[${Selectors$3.DATA_MODAL}='${modalId}']`); + + modalWrapper.setAttribute(Selectors$3.ARIA_HIDDEN, "true"); + modalWrapper.setAttribute(Selectors$3.DATA_VISIBLE, "false"); + modal.setAttribute(Selectors$3.ARIA_MODAL, "true"); + modal.setAttribute(Selectors$3.ROLE, "dialog"); + } + + /** + * Turn off event listeners and reset focus to last selected DOM node (button) + * @param {Object} event - The event object + */ + _handleClose(event) { + event.preventDefault(); + this._activeModalOverlay.setAttribute(Selectors$3.DATA_VISIBLE, "false"); + this._handleReturnFocus(); + this._handleScrollRestore(); + this.releaseFocus(); + this._activeModalOverlay.setAttribute(Selectors$3.ARIA_HIDDEN, "true"); + this._activeModal.removeAttribute(Selectors$3.TABINDEX); + + getFocusableElements(this._activeModalSelector).forEach(element => { + element.setAttribute(Selectors$3.TABINDEX, "-1"); + }); + + if (iOSMobile) { + this._activeModalOverlay.style.cursor = "auto"; + } + + // stop listening to events + document.removeEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); + document.removeEventListener(Events$3.CLICK, this._handleOverlayClick); + this._activeModalCloseButtons.forEach(button => { + button.removeEventListener(Events$3.CLICK, this._handleClose); + }); + + this._activeModalId = null; + } + + /** + * Handles click event on the modal background to close it. + * @param {Object} event - The event object + */ + _handleOverlayClick(event) { + if (event.target === this._activeModalOverlay) { + this._handleClose(event); + } + } + + /** + * Handles escape key event to close the current modal + * @param {Object} event - The event object + */ + _handleEscapeKeyPress(event) { + if (event.which === KeyCodes$2.ESCAPE) { + this._handleClose(event); + } + } + + /** + * Returns focus to the last focused element before the modal was called. + * @param {Object} button - The current modal's corresponding button. + */ + _handleReturnFocus() { + this._activeModalButton.setAttribute(Selectors$3.TABINDEX, "-1"); + this._activeModalButton.focus(); + this._activeModalButton.removeAttribute(Selectors$3.TABINDEX); + } + + /** + * Restores scroll behavior to and + */ + _handleScrollRestore() { + document.body.classList.remove(Selectors$3.NO_SCROLL); + document.documentElement.classList.remove(Selectors$3.NO_SCROLL); + } + + /** + * Prevents scroll behavior on and + */ + _handleScrollStop() { + document.body.classList.add(Selectors$3.NO_SCROLL); + document.documentElement.classList.add(Selectors$3.NO_SCROLL); + } +} + +const KeyCodes$3 = { + ESCAPE: 27, +}; + +const Selectors$4 = { + DATA_TOOLTIP: "data-tooltip", + DATA_VISIBLE: "data-visible", + DATA_TARGET: "data-target", + ROLE: "role", + ARIA_DESCRIBEDBY: "aria-describedby", + DROP_LEFT_CLASS: "is-drop-left", + DROP_RIGHT_CLASS: "is-drop-right", +}; + +const Events$4 = { + CLICK: "click", + MOUSEOVER: "mouseover", + MOUSEOUT: "mouseout", + FOCUS: "focus", + BLUR: "blur", + KEYDOWN: "keydown", +}; + +const Messages$3 = { + NO_ID_ERROR: "Could not find your tooltip's id.", + NO_TRIGGER_ERROR: id => `Could not find a tooltip trigger with id of ${id}.`, + NO_TOOLTIP_ERROR: id => `Could not find a tooltip with id of ${id}.`, +}; + +/** + * Tooltip component class. + * @module Tooltip + */ +class Tooltip { + constructor() { + // events + this._render = this._render.bind(this); + this._handleClose = this._handleClose.bind(this); + this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this); + + // active tooltip + this._activeTrigger = null; + this._activeTooltip = null; + + // all tooltips + this._allTooltips = []; + } + + // public + + /** + * Begin listening to tooltips. + */ + start() { + this._allTooltips = document.querySelectorAll(`[${Selectors$4.DATA_TOOLTIP}]`); + + this._allTooltips.forEach(instance => { + this._setupTooltip(instance); + }); + } + + /** + * Stop listening to tooltips. + */ + stop() { + this._allTooltips.forEach(instance => { + const id = instance.getAttribute(Selectors$4.DATA_TOOLTIP); + const trigger = instance.querySelector(this._getTrigger(id)); + + trigger.removeEventListener(Events$4.MOUSEOVER, this._render); + trigger.removeEventListener(Events$4.FOCUS, this._render); + }); + } + + // private + + /** + * Render a tooltip. + * @param {Object} event - The event object + */ + _render(event) { + this._activeTrigger = event.target; + const tooltipId = this._activeTrigger.getAttribute(Selectors$4.DATA_TARGET); + this._activeTooltip = document.getElementById(tooltipId); + + // align tooltip to its trigger + // -> if the trigger is on the left or right side, use height + // -> else use width + if (this._isLeftOrRight()) { + this._alignTooltip("height"); + } else { + this._alignTooltip("width"); + } + + this._showTooltip(); + this._listenForClose(); + } + + /** + * Close a tooltip. + */ + _handleClose() { + this._hideTooltip(); + this._listenForOpen(); + + this._activeTrigger = null; + this._activeTooltip = null; + } + + /** + * Add data-visible attribute to currently active tooltip. + */ + _showTooltip() { + this._activeTooltip.setAttribute(Selectors$4.DATA_VISIBLE, "true"); + } + + /** + * Remove data-visible attribute from currently active tooltip. + */ + _hideTooltip() { + this._activeTooltip.setAttribute(Selectors$4.DATA_VISIBLE, "false"); + } + + /** + * Stop listening for render events, and start listening to close events. + */ + _listenForClose() { + this._activeTrigger.removeEventListener(Events$4.MOUSEOVER, this._render); + this._activeTrigger.removeEventListener(Events$4.FOCUS, this._render); + this._activeTrigger.addEventListener(Events$4.MOUSEOUT, this._handleClose); + this._activeTrigger.addEventListener(Events$4.BLUR, this._handleClose); + document.addEventListener(Events$4.KEYDOWN, this._handleEscapeKeyPress); + + if (iOSMobile) { + document.body.style.cursor = "pointer"; + } + } + + /** + * Close a tooltip with the escape key. + * @param {Object} event - The event object + */ + _handleEscapeKeyPress(event) { + if (event.which === KeyCodes$3.ESCAPE) { + this._handleClose(); + } + } + + /** + * Stop listening to close events, start listening for render events. + */ + _listenForOpen() { + this._activeTrigger.removeEventListener(Events$4.MOUSEOUT, this._handleClose); + this._activeTrigger.removeEventListener(Events$4.BLUR, this._handleClose); + this._activeTrigger.addEventListener(Events$4.MOUSEOVER, this._render); + this._activeTrigger.addEventListener(Events$4.FOCUS, this._render); + document.removeEventListener(Events$4.KEYDOWN, this._handleEscapeKeyPress); + + if (iOSMobile) { + document.body.style.cursor = "auto"; + } + } + + /** + * Aligns a tooltip vertically or horizontally. + * @param {String} property - String specifying "height" or "width" + */ + _alignTooltip(property) { + const triggerLength = this._getComputedLength(this._activeTrigger, property); + const tooltipLength = this._getComputedLength(this._activeTooltip, property); + const triggerIsLongest = triggerLength > tooltipLength; + + const offset = triggerIsLongest + ? (triggerLength - tooltipLength) / 2 + : (tooltipLength - triggerLength) / -2; + + if (property === "height") { + this._activeTooltip.style.top = `${offset}px`; + } else { + this._activeTooltip.style.left = `${offset}px`; + } + } + + /** + * Setup a tooltip and trigger with appropriate event listeners and attributes. + * @param {Object} instance - A tooltip instance + */ + _setupTooltip(instance) { + const id = instance.getAttribute(Selectors$4.DATA_TOOLTIP); + const trigger = instance.querySelector(this._getTrigger(id)); + const tooltip = document.getElementById(id); + + if (!id) { + return console.error(Messages$3.NO_ID_ERROR) + } + + if (!trigger) { + return console.error(Messages$3.NO_TRIGGER_ERROR(id)) + } + + if (!tooltip) { + return console.error(Messages$3.NO_TOOLTIP_ERROR(id)) + } + + trigger.setAttribute(Selectors$4.ARIA_DESCRIBEDBY, id); + tooltip.setAttribute(Selectors$4.ROLE, "tooltip"); + + trigger.addEventListener(Events$4.MOUSEOVER, this._render); + trigger.addEventListener(Events$4.FOCUS, this._render); + } + + /** + * Get an attribute selector string. + * @param {String} id - A unique tooltip id + * @return {String} + */ + _getTrigger(id) { + return `[${Selectors$4.DATA_TARGET}="${id}"]` + } + + /** + * Render a tooltip. + * @param {Object} element - A tooltip element + * @param {String} property - The "height" or "width" property. + * @return {Number} + */ + _getComputedLength(element, property) { + return parseInt(window.getComputedStyle(element)[property].slice(0, -2)) + } + + /** + * Determine if a tooltip is rendering on the left or right. + * @return {Boolean} + */ + _isLeftOrRight() { + const classes = this._activeTooltip.classList; + return ( + classes.contains(Selectors$4.DROP_LEFT_CLASS) || classes.contains(Selectors$4.DROP_RIGHT_CLASS) + ) + } +} + const Accordions = new Accordion(); const Dropdowns = new Dropdown(); +const Modals = new Modal(); +const Tooltips = new Tooltip(); const Utils$1 = new Utils(); const Undernet = { @@ -1088,6 +1341,7 @@ const Undernet = { Modals, Accordions, Dropdowns, + Tooltips, // Utils Utils: Utils$1, @@ -1098,6 +1352,7 @@ Undernet.start = () => { Undernet.Modals.start(); Undernet.Accordions.start(); Undernet.Dropdowns.start(); + Undernet.Tooltips.start(); // Utils Undernet.Utils.enableFocusOutline(); @@ -1114,4 +1369,4 @@ Undernet.stop = () => { }; export default Undernet; -export { Modals, Accordions, Dropdowns, Utils$1 as Utils }; +export { Accordions, Dropdowns, Modals, Tooltips, Utils$1 as Utils }; diff --git a/dist/undernet.bundle.js b/dist/undernet.bundle.js index 9daea296..8b590923 100644 --- a/dist/undernet.bundle.js +++ b/dist/undernet.bundle.js @@ -1,6 +1,6 @@ /*! * @license MIT (https://github.com/geotrev/undernet/blob/master/LICENSE) - * Undernet v3.3.7 (https://undernet.io) + * Undernet v4.0.0 (https://undernet.io) * Copyright 2017-2019 George Treviranus */ (function (global, factory) { @@ -93,12 +93,16 @@ KEYDOWN: "keydown", CLICK: "click" }; + var nodeListToArray = function nodeListToArray(nodeList) { + return Array.apply(null, document.querySelectorAll(nodeList)); + }; var getFocusableElements = function getFocusableElements(container) { var focusables = Selectors.FOCUSABLE_TAGS.map(function (element) { return "".concat(container, " ").concat(element).concat(Selectors.NOT_VISUALLY_HIDDEN); }).join(", "); - return document.querySelectorAll(focusables); + return nodeListToArray(focusables); }; + var iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent); var Utils = function () { function Utils() { @@ -160,17 +164,10 @@ }, { key: "_listenForKeyboard", value: function _listenForKeyboard(event) { - var tabKey = event.which === KeyCodes.TAB; - var shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey; - var arrowUp = event.which === KeyCodes.ARROW_UP; - var arrowDown = event.which === KeyCodes.ARROW_DOWN; - - if (tabKey || shiftKey || arrowUp || arrowDown) { - document.body.classList.add(Selectors.KEYBOARD_CLASS); - document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard); - document.addEventListener(Events.CLICK, this._listenForClick); - this._listeningForKeydown = false; - } + document.body.classList.add(Selectors.KEYBOARD_CLASS); + document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard); + document.addEventListener(Events.CLICK, this._listenForClick); + this._listeningForKeydown = false; } }, { key: "_listenForClick", @@ -249,246 +246,7 @@ return Utils; }(); - var KeyCodes$1 = { - ESCAPE: 27 - }; var Selectors$1 = { - DATA_MODAL: "data-modal", - DATA_MODAL_ID: "data-modal-id", - DATA_MODAL_BUTTON: "data-modal-button", - DATA_VISIBLE: "data-visible", - DATA_CLOSE: "data-close", - DATA_TARGET: "data-target", - DATA_PARENT: "data-parent", - ARIA_HIDDEN: "aria-hidden", - ARIA_MODAL: "aria-modal", - ROLE: "role", - TABINDEX: "tabindex", - NO_SCROLL: "no-scroll" - }; - var Events$1 = { - KEYDOWN: "keydown", - CLICK: "click", - RESIZE: "resize" - }; - var Messages = { - NO_TARGET_ERROR: "Could not find [data-target] attribute associated with a [data-modal-button] element.", - NO_PARENT_ERROR: "Could not find [data-parent] attribute associated with a [data-modal] element.", - NO_ID_ERROR: function NO_ID_ERROR(id) { - return "Could not find [data-modal-id='".concat(id, "'] associated with a [data-modal] element."); - } - }; - - var Modal = function (_Utils) { - _inherits(Modal, _Utils); - - function Modal() { - var _this; - - _classCallCheck(this, Modal); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(Modal).call(this)); - _this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent); - _this._render = _this._render.bind(_assertThisInitialized(_this)); - _this._handleClose = _this._handleClose.bind(_assertThisInitialized(_this)); - _this._handleOverlayClick = _this._handleOverlayClick.bind(_assertThisInitialized(_this)); - _this._handleEscapeKeyPress = _this._handleEscapeKeyPress.bind(_assertThisInitialized(_this)); - _this._modals = []; - _this._modalButtons = []; - _this._activeModalButton = {}; - _this._activeModalOverlay = {}; - _this._activeModal = {}; - _this._activeModalId = ""; - _this._activeModalOverlayAttr = ""; - _this._activeModalSelector = ""; - _this._activeModalCloseButtons = []; - _this._modalContainerAttr = "[".concat(Selectors$1.DATA_MODAL, "]"); - return _this; - } - - _createClass(Modal, [{ - key: "start", - value: function start() { - var _this2 = this; - - this._modals = document.querySelectorAll(this._modalContainerAttr); - this._modalButtons = document.querySelectorAll("[".concat(Selectors$1.DATA_MODAL_BUTTON, "]")); - getFocusableElements(this._modalContainerAttr).forEach(function (element) { - element.setAttribute(Selectors$1.TABINDEX, "-1"); - }); - - if (this._modals.length) { - this._modals.forEach(function (modal) { - _this2._setupModal(modal); - }); - } - - if (this._modalButtons.length) { - this._modalButtons.forEach(function (button) { - button.addEventListener(Events$1.CLICK, _this2._render); - }); - } - } - }, { - key: "stop", - value: function stop() { - var _this3 = this; - - this._modalButtons.forEach(function (button) { - button.removeEventListener(Events$1.CLICK, _this3._render); - }); - } - }, { - key: "_render", - value: function _render(event) { - var _this4 = this; - - event.preventDefault(); - this._activeModalButton = event.target; - - if (!this._activeModalButton.getAttribute(Selectors$1.DATA_TARGET)) { - return console.error(Messages.NO_TARGET_ERROR); - } - - this._activeModalId = this._activeModalButton.getAttribute(Selectors$1.DATA_TARGET); - this._activeModalOverlayAttr = "[".concat(Selectors$1.DATA_MODAL_ID, "=\"").concat(this._activeModalId, "\"]"); - - if (!document.querySelector(this._activeModalOverlayAttr)) { - return console.error(Messages.NO_ID_ERROR(this._activeModalId)); - } - - this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr); - this._activeModalSelector = "".concat(this._activeModalOverlayAttr, " ").concat(this._modalContainerAttr); - this._activeModal = document.querySelector(this._activeModalSelector); - this._activeModalCloseButtons = document.querySelectorAll("".concat(this._activeModalOverlayAttr, " [").concat(Selectors$1.DATA_CLOSE, "]")); - getFocusableElements(this._activeModalSelector).forEach(function (element) { - element.setAttribute(Selectors$1.TABINDEX, "0"); - }); - - this._handleScrollStop(); - - this.captureFocus(this._activeModalSelector); - - this._activeModalOverlay.setAttribute(Selectors$1.ARIA_HIDDEN, "false"); - - this._activeModalOverlay.setAttribute(Selectors$1.DATA_VISIBLE, "true"); - - this._activeModal.setAttribute(Selectors$1.TABINDEX, "-1"); - - this._activeModal.focus(); - - this._activeModalOverlay.scrollTop = 0; - - if (this._iosMobile) { - this._activeModalOverlay.style.cursor = "pointer"; - } - - document.addEventListener(Events$1.KEYDOWN, this._handleEscapeKeyPress); - document.addEventListener(Events$1.CLICK, this._handleOverlayClick); - - this._activeModalCloseButtons.forEach(function (button) { - button.addEventListener(Events$1.CLICK, _this4._handleClose); - }); - } - }, { - key: "_setupModal", - value: function _setupModal(modal) { - var modalId; - - if (!modal.getAttribute(Selectors$1.DATA_PARENT)) { - return console.error(Messages.NO_PARENT_ERROR); - } else { - modalId = modal.getAttribute(Selectors$1.DATA_PARENT); - } - - var modalWrapper; - - if (!document.querySelector("[".concat(Selectors$1.DATA_MODAL_ID, "='").concat(modalId, "']"))) { - return console.error(Messages.NO_ID_ERROR(modalId)); - } else { - modalWrapper = document.querySelector("[".concat(Selectors$1.DATA_MODAL_ID, "='").concat(modalId, "']")); - } - - modalWrapper.setAttribute(Selectors$1.ARIA_HIDDEN, "true"); - modalWrapper.setAttribute(Selectors$1.DATA_VISIBLE, "false"); - modal.setAttribute(Selectors$1.ARIA_MODAL, "true"); - modal.setAttribute(Selectors$1.ROLE, "dialog"); - } - }, { - key: "_handleClose", - value: function _handleClose(event) { - var _this5 = this; - - event.preventDefault(); - - this._activeModalOverlay.setAttribute(Selectors$1.DATA_VISIBLE, "false"); - - this._handleReturnFocus(); - - this._handleScrollRestore(); - - this.releaseFocus(); - - this._activeModalOverlay.setAttribute(Selectors$1.ARIA_HIDDEN, "true"); - - this._activeModal.removeAttribute(Selectors$1.TABINDEX); - - getFocusableElements(this._activeModalSelector).forEach(function (element) { - element.setAttribute(Selectors$1.TABINDEX, "-1"); - }); - - if (this._iosMobile) { - this._activeModalOverlay.style.cursor = "auto"; - } - - document.removeEventListener(Events$1.KEYDOWN, this._handleEscapeKeyPress); - document.removeEventListener(Events$1.CLICK, this._handleOverlayClick); - - this._activeModalCloseButtons.forEach(function (button) { - button.removeEventListener(Events$1.CLICK, _this5._handleClose); - }); - } - }, { - key: "_handleOverlayClick", - value: function _handleOverlayClick(event) { - if (event.target === this._activeModalOverlay) { - this._handleClose(event); - } - } - }, { - key: "_handleEscapeKeyPress", - value: function _handleEscapeKeyPress(event) { - if (event.which === KeyCodes$1.ESCAPE) { - this._handleClose(event); - } - } - }, { - key: "_handleReturnFocus", - value: function _handleReturnFocus() { - this._activeModalButton.setAttribute(Selectors$1.TABINDEX, "-1"); - - this._activeModalButton.focus(); - - this._activeModalButton.removeAttribute(Selectors$1.TABINDEX); - } - }, { - key: "_handleScrollRestore", - value: function _handleScrollRestore() { - document.body.classList.remove(Selectors$1.NO_SCROLL); - document.querySelector("html").classList.remove(Selectors$1.NO_SCROLL); - } - }, { - key: "_handleScrollStop", - value: function _handleScrollStop() { - document.body.classList.add(Selectors$1.NO_SCROLL); - document.querySelector("html").classList.add(Selectors$1.NO_SCROLL); - } - }]); - - return Modal; - }(Utils); - - var Selectors$2 = { DATA_ACCORDION: "data-accordion", DATA_ACCORDION_ROW: "data-accordion-row", DATA_VISIBLE: "data-visible", @@ -501,11 +259,11 @@ ARIA_LABELLEDBY: "aria-labelledby", TABINDEX: "tabindex" }; - var Events$2 = { + var Events$1 = { CLICK: "click", KEYDOWN: "keydown" }; - var Messages$1 = { + var Messages = { NO_VISIBLE_ERROR: function NO_VISIBLE_ERROR(id) { return "Could not find parent with [data-visible] attribute associated with [data-target='".concat(id, "']."); }, @@ -555,15 +313,15 @@ value: function start() { var _this2 = this; - var accordionButtonSelector = this._getPossibleAccordionButtonAttrs("[".concat(Selectors$2.DATA_ACCORDION, "]")); + var accordionButtonSelector = this._getPossibleAccordionButtonAttrs("[".concat(Selectors$1.DATA_ACCORDION, "]")); - this._accordionButtons = document.querySelectorAll(accordionButtonSelector); + this._accordionButtons = nodeListToArray(accordionButtonSelector); if (this._accordionButtons.length) { this._accordionButtons.forEach(function (button) { _this2._setupAccordion(button); - button.addEventListener(Events$2.CLICK, _this2._render); + button.addEventListener(Events$1.CLICK, _this2._render); }); } } @@ -573,7 +331,7 @@ var _this3 = this; this._accordionButtons.forEach(function (button) { - button.removeEventListener(Events$2.CLICK, _this3._render); + button.removeEventListener(Events$1.CLICK, _this3._render); }); } }, { @@ -581,25 +339,25 @@ value: function _render(event) { event.preventDefault(); this._activeButton = event.target; - this._activeAccordionRowId = this._activeButton.getAttribute(Selectors$2.DATA_TARGET); + this._activeAccordionRowId = this._activeButton.getAttribute(Selectors$1.DATA_TARGET); this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId); this._activeRow = document.querySelector(this._activeRowAttr); + this._activeContainerId = this._activeButton.getAttribute(Selectors$1.DATA_PARENT); - if (!this._activeButton.getAttribute(Selectors$2.DATA_PARENT)) { - return console.error(Messages$1.NO_PARENT_ERROR(this._activeAccordionRowId)); + if (!this._activeContainerId) { + return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId)); } - this._activeContainerId = this._activeButton.getAttribute(Selectors$2.DATA_PARENT); - this._activeContainerAttr = "[".concat(Selectors$2.DATA_ACCORDION, "='").concat(this._activeContainerId, "']"); + this._activeContainerAttr = "[".concat(Selectors$1.DATA_ACCORDION, "='").concat(this._activeContainerId, "']"); + this._activeContainer = document.querySelector(this._activeContainerAttr); - if (!document.querySelector(this._activeContainerAttr)) { - return console.error(Messages$1.NO_ACCORDION_ERROR(this._activeContainerId)); + if (!this._activeContainer) { + return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId)); } - this._activeContainer = document.querySelector(this._activeContainerAttr); this._activeContent = document.getElementById(this._activeAccordionRowId); - var accordionButtonState = this._activeRow.getAttribute(Selectors$2.DATA_VISIBLE); + var accordionButtonState = this._activeRow.getAttribute(Selectors$1.DATA_VISIBLE); this._activeButtonExpandState = accordionButtonState === "true" ? "false" : "true"; this._activeContentHiddenState = this._activeButtonExpandState === "false" ? "true" : "false"; @@ -607,56 +365,57 @@ this._closeAllIfToggleable(); this._toggleSelectedAccordion(); + + this._activeContainerId = null; + this._activeContainer = null; } }, { key: "_setupAccordion", value: function _setupAccordion(button) { - var buttonId = button.getAttribute(Selectors$2.DATA_TARGET); + var buttonId = button.getAttribute(Selectors$1.DATA_TARGET); + var buttonContent = document.getElementById(buttonId); - if (!document.getElementById(buttonId)) { - return console.error(Messages$1.NO_CONTENT_ERROR(buttonId)); + if (!buttonContent) { + return console.error(Messages.NO_CONTENT_ERROR(buttonId)); } - var buttonContent = document.getElementById(buttonId); - var accordionRowAttr = this._getAccordionRowAttr(buttonId); - if (!document.querySelector(accordionRowAttr)) { - return console.error(Messages$1.NO_ROW_ERROR(buttonId)); - } - var accordionRow = document.querySelector(accordionRowAttr); + if (!accordionRow) { + return console.error(Messages.NO_ROW_ERROR(buttonId)); + } + var buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr); - var buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0]; + var buttonHeader = nodeListToArray(buttonHeaderAttr)[0]; if (!buttonHeader || !buttonHeader.id) { - console.error(Messages$1.NO_HEADER_ID_ERROR(buttonId)); + console.error(Messages.NO_HEADER_ID_ERROR(buttonId)); } var buttonContentChildren = getFocusableElements("#".concat(buttonContent.id)); - button.setAttribute(Selectors$2.ARIA_CONTROLS, buttonId); - buttonContent.setAttribute(Selectors$2.ARIA_LABELLEDBY, buttonHeader.id); + button.setAttribute(Selectors$1.ARIA_CONTROLS, buttonId); + buttonContent.setAttribute(Selectors$1.ARIA_LABELLEDBY, buttonHeader.id); + var contentShouldExpand = accordionRow.getAttribute(Selectors$1.DATA_VISIBLE); - if (!accordionRow.getAttribute(Selectors$2.DATA_VISIBLE)) { - return console.error(Messages$1.NO_VISIBLE_ERROR(buttonId)); + if (!contentShouldExpand) { + return console.error(Messages.NO_VISIBLE_ERROR(buttonId)); } - var contentShouldExpand = accordionRow.getAttribute(Selectors$2.DATA_VISIBLE); - if (contentShouldExpand === "true") { buttonContent.style.maxHeight = "".concat(buttonContent.scrollHeight, "px"); - button.setAttribute(Selectors$2.ARIA_EXPANDED, "true"); - buttonContent.setAttribute(Selectors$2.ARIA_HIDDEN, "false"); + button.setAttribute(Selectors$1.ARIA_EXPANDED, "true"); + buttonContent.setAttribute(Selectors$1.ARIA_HIDDEN, "false"); buttonContentChildren.forEach(function (element) { - element.setAttribute(Selectors$2.TABINDEX, "0"); + element.setAttribute(Selectors$1.TABINDEX, "0"); }); } else { - button.setAttribute(Selectors$2.ARIA_EXPANDED, "false"); - buttonContent.setAttribute(Selectors$2.ARIA_HIDDEN, "true"); + button.setAttribute(Selectors$1.ARIA_EXPANDED, "false"); + buttonContent.setAttribute(Selectors$1.ARIA_HIDDEN, "true"); buttonContentChildren.forEach(function (element) { - element.setAttribute(Selectors$2.TABINDEX, "-1"); + element.setAttribute(Selectors$1.TABINDEX, "-1"); }); } } @@ -664,7 +423,7 @@ key: "_getPossibleAccordionButtonAttrs", value: function _getPossibleAccordionButtonAttrs(attr) { return this._headerLevels.map(function (num) { - return "".concat(attr, " > [").concat(Selectors$2.DATA_ACCORDION_ROW, "] > h").concat(num, " [").concat(Selectors$2.DATA_TARGET, "]"); + return "".concat(attr, " > [").concat(Selectors$1.DATA_ACCORDION_ROW, "] > h").concat(num, " [").concat(Selectors$1.DATA_TARGET, "]"); }).join(", "); } }, { @@ -677,49 +436,49 @@ }, { key: "_getAccordionRowAttr", value: function _getAccordionRowAttr(id) { - return "[".concat(Selectors$2.DATA_ACCORDION_ROW, "='").concat(id, "']"); + return "[".concat(Selectors$1.DATA_ACCORDION_ROW, "='").concat(id, "']"); } }, { key: "_closeAllIfToggleable", value: function _closeAllIfToggleable() { var _this4 = this; - if (this._activeContainer.hasAttribute(Selectors$2.DATA_TOGGLE_MULTIPLE)) return; - var allContentAttr = "".concat(this._activeContainerAttr, " [").concat(Selectors$2.ARIA_HIDDEN, "]"); - var allRows = document.querySelectorAll("".concat(this._activeContainerAttr, " [").concat(Selectors$2.DATA_VISIBLE, "]")); - var allContent = document.querySelectorAll(allContentAttr); + if (this._activeContainer.hasAttribute(Selectors$1.DATA_TOGGLE_MULTIPLE)) return; + var allContentAttr = "".concat(this._activeContainerAttr, " [").concat(Selectors$1.ARIA_HIDDEN, "]"); + var allRows = nodeListToArray("".concat(this._activeContainerAttr, " [").concat(Selectors$1.DATA_VISIBLE, "]")); + var allContent = nodeListToArray(allContentAttr); var accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr); - var allButtons = document.querySelectorAll(accordionButtonSelector); + var allButtons = nodeListToArray(accordionButtonSelector); allContent.forEach(function (content) { if (content !== _this4._activeContent) content.style.maxHeight = null; }); getFocusableElements(allContentAttr).forEach(function (element) { - element.setAttribute(Selectors$2.TABINDEX, "-1"); + element.setAttribute(Selectors$1.TABINDEX, "-1"); }); - this._toggleAttributeInCollection(allRows, Selectors$2.DATA_VISIBLE, "true", "false"); + this._toggleAttributeInCollection(allRows, Selectors$1.DATA_VISIBLE, "true", "false"); - this._toggleAttributeInCollection(allButtons, Selectors$2.ARIA_EXPANDED, "true", "false"); + this._toggleAttributeInCollection(allButtons, Selectors$1.ARIA_EXPANDED, "true", "false"); - this._toggleAttributeInCollection(allContent, Selectors$2.ARIA_HIDDEN, "false", "true"); + this._toggleAttributeInCollection(allContent, Selectors$1.ARIA_HIDDEN, "false", "true"); } }, { key: "_toggleSelectedAccordion", value: function _toggleSelectedAccordion() { var _this5 = this; - this._activeRow.setAttribute(Selectors$2.DATA_VISIBLE, this._activeButtonExpandState); + this._activeRow.setAttribute(Selectors$1.DATA_VISIBLE, this._activeButtonExpandState); - this._activeButton.setAttribute(Selectors$2.ARIA_EXPANDED, this._activeButtonExpandState); + this._activeButton.setAttribute(Selectors$1.ARIA_EXPANDED, this._activeButtonExpandState); - this._activeContent.setAttribute(Selectors$2.ARIA_HIDDEN, this._activeContentHiddenState); + this._activeContent.setAttribute(Selectors$1.ARIA_HIDDEN, this._activeContentHiddenState); var activeContentBlock = "#".concat(this._activeAccordionRowId); getFocusableElements(activeContentBlock).forEach(function (element) { var value = _this5._activeButtonExpandState === "true" ? "0" : "-1"; - element.setAttribute(Selectors$2.TABINDEX, value); + element.setAttribute(Selectors$1.TABINDEX, value); }); if (this._activeContent.style.maxHeight) { @@ -742,14 +501,14 @@ return Accordion; }(Utils); - var KeyCodes$2 = { + var KeyCodes$1 = { TAB: 9, SHIFT: 16, ESCAPE: 27, ARROW_UP: 38, ARROW_DOWN: 40 }; - var Selectors$3 = { + var Selectors$2 = { DATA_DROPDOWN: "data-dropdown", DATA_TARGET: "data-target", DATA_PARENT: "data-parent", @@ -761,11 +520,11 @@ ARIA_EXPANDED: "aria-expanded", ROLE: "role" }; - var Events$3 = { + var Events$2 = { KEYDOWN: "keydown", CLICK: "click" }; - var Messages$2 = { + var Messages$1 = { NO_PARENT_ERROR: "Could not find dropdown button's [data-parent] attribute.", NO_DROPDOWN_ERROR: function NO_DROPDOWN_ERROR(attr) { return "Could not find dropdown container associated with ".concat(attr, "."); @@ -784,7 +543,6 @@ _classCallCheck(this, Dropdown); _this = _possibleConstructorReturn(this, _getPrototypeOf(Dropdown).call(this)); - _this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent); _this._render = _this._render.bind(_assertThisInitialized(_this)); _this._handleFirstTabClose = _this._handleFirstTabClose.bind(_assertThisInitialized(_this)); _this._handleLastTabClose = _this._handleLastTabClose.bind(_assertThisInitialized(_this)); @@ -802,8 +560,8 @@ _this._activeDropdownMenuId = ""; _this._dropdownButtons = []; _this._dropdowns = []; - _this._dropdownContainerAttr = "[".concat(Selectors$3.DATA_DROPDOWN, "]"); - _this._dropdownTargetAttr = "[".concat(Selectors$3.DATA_TARGET, "]"); + _this._dropdownContainerAttr = "[".concat(Selectors$2.DATA_DROPDOWN, "]"); + _this._dropdownTargetAttr = "[".concat(Selectors$2.DATA_TARGET, "]"); return _this; } @@ -812,8 +570,8 @@ value: function start() { var _this2 = this; - this._dropdowns = document.querySelectorAll("".concat(this._dropdownContainerAttr)); - this._dropdownButtons = document.querySelectorAll("".concat(this._dropdownContainerAttr, " > ").concat(this._dropdownTargetAttr)); + this._dropdowns = nodeListToArray("".concat(this._dropdownContainerAttr)); + this._dropdownButtons = nodeListToArray("".concat(this._dropdownContainerAttr, " > ").concat(this._dropdownTargetAttr)); if (this._dropdowns.length) { this._dropdowns.forEach(function (dropdown) { @@ -822,8 +580,8 @@ } this._dropdownButtons.forEach(function (button) { - button.addEventListener(Events$3.CLICK, _this2._render); - button.addEventListener(Events$3.KEYDOWN, _this2._renderWithKeys); + button.addEventListener(Events$2.CLICK, _this2._render); + button.addEventListener(Events$2.KEYDOWN, _this2._renderWithKeys); }); } }, { @@ -832,8 +590,8 @@ var _this3 = this; this._dropdownButtons.forEach(function (button) { - button.removeEventListener(Events$3.CLICK, _this3._render); - button.removeEventListener(Events$3.KEYDOWN, _this3._renderWithKeys); + button.removeEventListener(Events$2.CLICK, _this3._render); + button.removeEventListener(Events$2.KEYDOWN, _this3._renderWithKeys); }); } }, { @@ -853,52 +611,52 @@ } this._activeDropdownButton = event.target; + this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors$2.DATA_PARENT); - if (!this._activeDropdownButton.getAttribute(Selectors$3.DATA_PARENT)) { - return console.error(Messages$2.NO_PARENT_ERROR); + if (!this._activeDropdownId) { + return console.error(Messages$1.NO_PARENT_ERROR); } - this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors$3.DATA_PARENT); - this._activeDropdownAttr = "[".concat(Selectors$3.DATA_DROPDOWN, "=\"").concat(this._activeDropdownId, "\"]"); + this._activeDropdownAttr = "[".concat(Selectors$2.DATA_DROPDOWN, "=\"").concat(this._activeDropdownId, "\"]"); + this._activeDropdown = document.querySelector(this._activeDropdownAttr); - if (!document.querySelector(this._activeDropdownAttr)) { - return console.error(Messages$2.NO_DROPDOWN_ERROR(this._activeDropdownAttr)); + if (!this._activeDropdown) { + return console.error(Messages$1.NO_DROPDOWN_ERROR(this._activeDropdownAttr)); } - this._activeDropdown = document.querySelector(this._activeDropdownAttr); - this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors$3.DATA_TARGET); + this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors$2.DATA_TARGET); this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId); - this._activeDropdownButton.setAttribute(Selectors$3.ARIA_EXPANDED, "true"); + this._activeDropdownButton.setAttribute(Selectors$2.ARIA_EXPANDED, "true"); - this._activeDropdown.setAttribute(Selectors$3.DATA_VISIBLE, "true"); + this._activeDropdown.setAttribute(Selectors$2.DATA_VISIBLE, "true"); - this._activeDropdownButton.removeEventListener(Events$3.CLICK, this._render); + this._activeDropdownButton.removeEventListener(Events$2.CLICK, this._render); - this._activeDropdownButton.addEventListener(Events$3.CLICK, this._handleClose); + this._activeDropdownButton.addEventListener(Events$2.CLICK, this._handleClose); - document.addEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); - document.addEventListener(Events$3.CLICK, this._handleOffMenuClick); + document.addEventListener(Events$2.KEYDOWN, this._handleEscapeKeyPress); + document.addEventListener(Events$2.CLICK, this._handleOffMenuClick); - if (this._iosMobile) { + if (iOSMobile) { document.body.style.cursor = "pointer"; } this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr); this.firstDropdownLink = this._activeDropdownLinks[0]; this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]; - this.firstDropdownLink.addEventListener(Events$3.KEYDOWN, this._handleFirstTabClose); - this.lastDropdownLink.addEventListener(Events$3.KEYDOWN, this._handleLastTabClose); + this.firstDropdownLink.addEventListener(Events$2.KEYDOWN, this._handleFirstTabClose); + this.lastDropdownLink.addEventListener(Events$2.KEYDOWN, this._handleLastTabClose); - if (key && key === KeyCodes$2.ARROW_UP) { + if (key && key === KeyCodes$1.ARROW_UP) { this.lastDropdownLink.focus(); } else { this.firstDropdownLink.focus(); } this._activeDropdownLinks.forEach(function (link) { - link.setAttribute(Selectors$3.TABINDEX, "0"); - link.addEventListener(Events$3.CLICK, _this4._handleClose); + link.setAttribute(Selectors$2.TABINDEX, "0"); + link.addEventListener(Events$2.CLICK, _this4._handleClose); }); this.captureFocus("".concat(this._activeDropdownAttr, " > ul"), { @@ -908,8 +666,8 @@ }, { key: "_handleFirstTabClose", value: function _handleFirstTabClose(event) { - var shiftKey = event.which === KeyCodes$2.SHIFT || event.shiftKey; - var tabKey = event.which === KeyCodes$2.TAB; + var shiftKey = event.which === KeyCodes$1.SHIFT || event.shiftKey; + var tabKey = event.which === KeyCodes$1.TAB; if (shiftKey && tabKey) { this._handleClose(event); @@ -918,8 +676,8 @@ }, { key: "_handleLastTabClose", value: function _handleLastTabClose(event) { - var shiftKey = event.which === KeyCodes$2.SHIFT || event.shiftKey; - var tabKey = event.which === KeyCodes$2.TAB; + var shiftKey = event.which === KeyCodes$1.SHIFT || event.shiftKey; + var tabKey = event.which === KeyCodes$1.TAB; if (tabKey && !shiftKey) { this._handleClose(event); @@ -928,7 +686,7 @@ }, { key: "_renderWithKeys", value: function _renderWithKeys(event) { - if (event.which === KeyCodes$2.ARROW_UP || event.which === KeyCodes$2.ARROW_DOWN) { + if (event.which === KeyCodes$1.ARROW_UP || event.which === KeyCodes$1.ARROW_DOWN) { this._render(event, event.which); } } @@ -940,37 +698,39 @@ event.preventDefault(); this.releaseFocus(); - this._activeDropdownButton.setAttribute(Selectors$3.ARIA_EXPANDED, "false"); + this._activeDropdownButton.setAttribute(Selectors$2.ARIA_EXPANDED, "false"); - this._activeDropdown.setAttribute(Selectors$3.DATA_VISIBLE, "false"); + this._activeDropdown.setAttribute(Selectors$2.DATA_VISIBLE, "false"); this._activeDropdownLinks.forEach(function (link) { - link.setAttribute(Selectors$3.TABINDEX, "-1"); - link.removeEventListener(Events$3.CLICK, _this5._handleClose); + link.setAttribute(Selectors$2.TABINDEX, "-1"); + link.removeEventListener(Events$2.CLICK, _this5._handleClose); }); - this._activeDropdownButton.removeEventListener(Events$3.CLICK, this._handleClose); + this._activeDropdownButton.removeEventListener(Events$2.CLICK, this._handleClose); - this._activeDropdownButton.addEventListener(Events$3.CLICK, this._render); + this._activeDropdownButton.addEventListener(Events$2.CLICK, this._render); - document.removeEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); + document.removeEventListener(Events$2.KEYDOWN, this._handleEscapeKeyPress); - if (this._iosMobile) { + if (iOSMobile) { document.body.style.cursor = "auto"; } - document.removeEventListener(Events$3.CLICK, this._handleOffMenuClick); + document.removeEventListener(Events$2.CLICK, this._handleOffMenuClick); if (this._allowFocusReturn) { this._handleReturnFocus(); } this._activeDropdownButton = null; + this._activeDropdownId = null; + this._activeDropdown = null; } }, { key: "_handleEscapeKeyPress", value: function _handleEscapeKeyPress(event) { - if (event.which === KeyCodes$2.ESCAPE) { + if (event.which === KeyCodes$1.ESCAPE) { this._handleClose(event); } } @@ -984,42 +744,44 @@ }, { key: "_handleReturnFocus", value: function _handleReturnFocus() { - this._activeDropdownButton.setAttribute(Selectors$3.TAB_INDEX, "-1"); + this._activeDropdownButton.setAttribute(Selectors$2.TAB_INDEX, "-1"); this._activeDropdownButton.focus(); - this._activeDropdownButton.removeAttribute(Selectors$3.TAB_INDEX); + this._activeDropdownButton.removeAttribute(Selectors$2.TAB_INDEX); } }, { key: "_getDropdownLinks", value: function _getDropdownLinks(attr) { - return document.querySelectorAll("".concat(attr, " > ul > li > a, ").concat(attr, " > ul > li > button")); + return nodeListToArray("".concat(attr, " > ul > li > a, ").concat(attr, " > ul > li > button")); } }, { key: "_setupDropdown", value: function _setupDropdown(dropdown) { - var dropdownId = dropdown.getAttribute(Selectors$3.DATA_DROPDOWN); - var dropdownIdAttr = "[".concat(Selectors$3.DATA_DROPDOWN, "=\"").concat(dropdownId, "\"]"); - var dropdownMenuItemsAttr = "".concat(dropdownIdAttr, " > ul > li"); + var dropdownId = dropdown.getAttribute(Selectors$2.DATA_DROPDOWN); + var dropdownAttr = "[".concat(Selectors$2.DATA_DROPDOWN, "=\"").concat(dropdownId, "\"]"); + var dropdownMenuItemsAttr = "".concat(dropdownAttr, " > ul > li"); + var dropdownMenu = document.querySelector("".concat(dropdownAttr, " > ul")); - if (!document.querySelector("".concat(dropdownIdAttr, " > ul"))) { - return console.error(Messages$2.NO_MENU_ERROR(dropdownIdAttr)); + if (!dropdownMenu) { + return console.error(Messages$1.NO_MENU_ERROR(dropdownAttr)); } - var dropdownMenu = document.querySelector("".concat(dropdownIdAttr, " > ul")); - var dropdownButton = document.querySelector("".concat(dropdownIdAttr, " > ").concat(this._dropdownTargetAttr)); - dropdownButton.setAttribute(Selectors$3.ARIA_CONTROLS, dropdownMenu.id); - dropdownButton.setAttribute(Selectors$3.ARIA_HASPOPUP, "true"); - dropdownButton.setAttribute(Selectors$3.ARIA_EXPANDED, "false"); - dropdownMenu.setAttribute(Selectors$3.ARIA_LABELLEDBY, dropdownButton.id); - var dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr); - dropdownMenuItems.forEach(function (item) { - return item.setAttribute(Selectors$3.ROLE, "none"); + var dropdownButton = document.querySelector("".concat(dropdownAttr, " > ").concat(this._dropdownTargetAttr)); + dropdownButton.setAttribute(Selectors$2.ARIA_CONTROLS, dropdownMenu.id); + dropdownButton.setAttribute(Selectors$2.ARIA_HASPOPUP, "true"); + dropdownButton.setAttribute(Selectors$2.ARIA_EXPANDED, "false"); + dropdownMenu.setAttribute(Selectors$2.ARIA_LABELLEDBY, dropdownButton.id); + var dropdownMenuListItems = nodeListToArray(dropdownMenuItemsAttr); + dropdownMenuListItems.forEach(function (item) { + return item.setAttribute(Selectors$2.ROLE, "none"); }); - this._getDropdownLinks(dropdownIdAttr).forEach(function (link) { - link.setAttribute(Selectors$3.ROLE, "menuitem"); - link.setAttribute(Selectors$3.TABINDEX, "-1"); + var dropdownMenuButtons = this._getDropdownLinks(dropdownAttr); + + dropdownMenuButtons.forEach(function (link) { + link.setAttribute(Selectors$2.ROLE, "menuitem"); + link.setAttribute(Selectors$2.TABINDEX, "-1"); }); } }]); @@ -1027,14 +789,451 @@ return Dropdown; }(Utils); - var Modals = new Modal(); + var KeyCodes$2 = { + ESCAPE: 27 + }; + var Selectors$3 = { + DATA_MODAL: "data-modal", + DATA_MODAL_BUTTON: "data-modal-button", + DATA_VISIBLE: "data-visible", + DATA_CLOSE: "data-close", + DATA_PARENT: "data-parent", + ARIA_HIDDEN: "aria-hidden", + ARIA_MODAL: "aria-modal", + ROLE: "role", + TABINDEX: "tabindex", + NO_SCROLL: "no-scroll" + }; + var Events$3 = { + KEYDOWN: "keydown", + CLICK: "click", + RESIZE: "resize" + }; + var Messages$2 = { + NO_BUTTON_ID_ERROR: "Could not find an id on your [data-modal-button] element. Modal can't be opened.", + NO_MODAL_ID_ERROR: "Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.", + NO_MODAL_ERROR: function NO_MODAL_ERROR(id) { + return "Could not find a [data-parent='".concat(id, "'] attribute within your [data-modal='").concat(id, "'] element."); + } + }; + + var Modal = function (_Utils) { + _inherits(Modal, _Utils); + + function Modal() { + var _this; + + _classCallCheck(this, Modal); + + _this = _possibleConstructorReturn(this, _getPrototypeOf(Modal).call(this)); + _this._render = _this._render.bind(_assertThisInitialized(_this)); + _this._handleClose = _this._handleClose.bind(_assertThisInitialized(_this)); + _this._handleOverlayClick = _this._handleOverlayClick.bind(_assertThisInitialized(_this)); + _this._handleEscapeKeyPress = _this._handleEscapeKeyPress.bind(_assertThisInitialized(_this)); + _this._modals = []; + _this._modalButtons = []; + _this._activeModalButton = {}; + _this._activeModalOverlay = {}; + _this._activeModal = {}; + _this._activeModalId = ""; + _this._activeModalOverlayAttr = ""; + _this._activeModalSelector = ""; + _this._activeModalCloseButtons = []; + _this._modalContainerAttr = "[".concat(Selectors$3.DATA_MODAL, "]"); + return _this; + } + + _createClass(Modal, [{ + key: "start", + value: function start() { + var _this2 = this; + + this._modals = nodeListToArray(this._modalContainerAttr); + this._modalButtons = nodeListToArray("[".concat(Selectors$3.DATA_MODAL_BUTTON, "]")); + getFocusableElements(this._modalContainerAttr).forEach(function (element) { + element.setAttribute(Selectors$3.TABINDEX, "-1"); + }); + + if (this._modals.length) { + this._modals.forEach(function (instance) { + _this2._setupModal(instance); + }); + } + + if (this._modalButtons.length) { + this._modalButtons.forEach(function (button) { + button.addEventListener(Events$3.CLICK, _this2._render); + }); + } + } + }, { + key: "stop", + value: function stop() { + var _this3 = this; + + this._modalButtons.forEach(function (button) { + button.removeEventListener(Events$3.CLICK, _this3._render); + }); + } + }, { + key: "_render", + value: function _render(event) { + var _this4 = this; + + event.preventDefault(); + this._activeModalButton = event.target; + this._activeModalId = this._activeModalButton.getAttribute(Selectors$3.DATA_MODAL_BUTTON); + + if (!this._activeModalId) { + return console.error(Messages$2.NO_BUTTON_ID_ERROR); + } + + this._activeModalOverlay = document.querySelector("[".concat(Selectors$3.DATA_MODAL, "=\"").concat(this._activeModalId, "\"]")); + this._activeModalSelector = "[".concat(Selectors$3.DATA_PARENT, "='").concat(this._activeModalId, "']"); + this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector); + this._activeModalCloseButtons = nodeListToArray("".concat(this._activeModalSelector, " [").concat(Selectors$3.DATA_CLOSE, "]")); + getFocusableElements(this._activeModalSelector).forEach(function (element) { + element.setAttribute(Selectors$3.TABINDEX, "0"); + }); + + this._handleScrollStop(); + + this.captureFocus(this._activeModalSelector); + + this._activeModalOverlay.setAttribute(Selectors$3.ARIA_HIDDEN, "false"); + + this._activeModalOverlay.setAttribute(Selectors$3.DATA_VISIBLE, "true"); + + this._activeModal.setAttribute(Selectors$3.TABINDEX, "-1"); + + this._activeModal.focus(); + + this._activeModalOverlay.scrollTop = 0; + + if (iOSMobile) { + this._activeModalOverlay.style.cursor = "pointer"; + } + + document.addEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); + document.addEventListener(Events$3.CLICK, this._handleOverlayClick); + + this._activeModalCloseButtons.forEach(function (button) { + button.addEventListener(Events$3.CLICK, _this4._handleClose); + }); + } + }, { + key: "_setupModal", + value: function _setupModal(instance) { + var modalId = instance.getAttribute(Selectors$3.DATA_MODAL); + + if (!modalId) { + return console.error(Messages$2.NO_MODAL_ID_ERROR); + } + + var modal = instance.querySelector("[".concat(Selectors$3.DATA_PARENT, "='").concat(modalId, "']")); + + if (!modal) { + return console.error(Messages$2.NO_MODAL_ERROR(modalId)); + } + + var modalWrapper = document.querySelector("[".concat(Selectors$3.DATA_MODAL, "='").concat(modalId, "']")); + modalWrapper.setAttribute(Selectors$3.ARIA_HIDDEN, "true"); + modalWrapper.setAttribute(Selectors$3.DATA_VISIBLE, "false"); + modal.setAttribute(Selectors$3.ARIA_MODAL, "true"); + modal.setAttribute(Selectors$3.ROLE, "dialog"); + } + }, { + key: "_handleClose", + value: function _handleClose(event) { + var _this5 = this; + + event.preventDefault(); + + this._activeModalOverlay.setAttribute(Selectors$3.DATA_VISIBLE, "false"); + + this._handleReturnFocus(); + + this._handleScrollRestore(); + + this.releaseFocus(); + + this._activeModalOverlay.setAttribute(Selectors$3.ARIA_HIDDEN, "true"); + + this._activeModal.removeAttribute(Selectors$3.TABINDEX); + + getFocusableElements(this._activeModalSelector).forEach(function (element) { + element.setAttribute(Selectors$3.TABINDEX, "-1"); + }); + + if (iOSMobile) { + this._activeModalOverlay.style.cursor = "auto"; + } + + document.removeEventListener(Events$3.KEYDOWN, this._handleEscapeKeyPress); + document.removeEventListener(Events$3.CLICK, this._handleOverlayClick); + + this._activeModalCloseButtons.forEach(function (button) { + button.removeEventListener(Events$3.CLICK, _this5._handleClose); + }); + + this._activeModalId = null; + } + }, { + key: "_handleOverlayClick", + value: function _handleOverlayClick(event) { + if (event.target === this._activeModalOverlay) { + this._handleClose(event); + } + } + }, { + key: "_handleEscapeKeyPress", + value: function _handleEscapeKeyPress(event) { + if (event.which === KeyCodes$2.ESCAPE) { + this._handleClose(event); + } + } + }, { + key: "_handleReturnFocus", + value: function _handleReturnFocus() { + this._activeModalButton.setAttribute(Selectors$3.TABINDEX, "-1"); + + this._activeModalButton.focus(); + + this._activeModalButton.removeAttribute(Selectors$3.TABINDEX); + } + }, { + key: "_handleScrollRestore", + value: function _handleScrollRestore() { + document.body.classList.remove(Selectors$3.NO_SCROLL); + document.documentElement.classList.remove(Selectors$3.NO_SCROLL); + } + }, { + key: "_handleScrollStop", + value: function _handleScrollStop() { + document.body.classList.add(Selectors$3.NO_SCROLL); + document.documentElement.classList.add(Selectors$3.NO_SCROLL); + } + }]); + + return Modal; + }(Utils); + + var KeyCodes$3 = { + ESCAPE: 27 + }; + var Selectors$4 = { + DATA_TOOLTIP: "data-tooltip", + DATA_VISIBLE: "data-visible", + DATA_TARGET: "data-target", + ROLE: "role", + ARIA_DESCRIBEDBY: "aria-describedby", + DROP_LEFT_CLASS: "is-drop-left", + DROP_RIGHT_CLASS: "is-drop-right" + }; + var Events$4 = { + CLICK: "click", + MOUSEOVER: "mouseover", + MOUSEOUT: "mouseout", + FOCUS: "focus", + BLUR: "blur", + KEYDOWN: "keydown" + }; + var Messages$3 = { + NO_ID_ERROR: "Could not find your tooltip's id.", + NO_TRIGGER_ERROR: function NO_TRIGGER_ERROR(id) { + return "Could not find a tooltip trigger with id of ".concat(id, "."); + }, + NO_TOOLTIP_ERROR: function NO_TOOLTIP_ERROR(id) { + return "Could not find a tooltip with id of ".concat(id, "."); + } + }; + + var Tooltip = function () { + function Tooltip() { + _classCallCheck(this, Tooltip); + + this._render = this._render.bind(this); + this._handleClose = this._handleClose.bind(this); + this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this); + this._activeTrigger = null; + this._activeTooltip = null; + this._allTooltips = []; + } + + _createClass(Tooltip, [{ + key: "start", + value: function start() { + var _this = this; + + this._allTooltips = document.querySelectorAll("[".concat(Selectors$4.DATA_TOOLTIP, "]")); + + this._allTooltips.forEach(function (instance) { + _this._setupTooltip(instance); + }); + } + }, { + key: "stop", + value: function stop() { + var _this2 = this; + + this._allTooltips.forEach(function (instance) { + var id = instance.getAttribute(Selectors$4.DATA_TOOLTIP); + var trigger = instance.querySelector(_this2._getTrigger(id)); + trigger.removeEventListener(Events$4.MOUSEOVER, _this2._render); + trigger.removeEventListener(Events$4.FOCUS, _this2._render); + }); + } + }, { + key: "_render", + value: function _render(event) { + this._activeTrigger = event.target; + + var tooltipId = this._activeTrigger.getAttribute(Selectors$4.DATA_TARGET); + + this._activeTooltip = document.getElementById(tooltipId); + + if (this._isLeftOrRight()) { + this._alignTooltip("height"); + } else { + this._alignTooltip("width"); + } + + this._showTooltip(); + + this._listenForClose(); + } + }, { + key: "_handleClose", + value: function _handleClose() { + this._hideTooltip(); + + this._listenForOpen(); + + this._activeTrigger = null; + this._activeTooltip = null; + } + }, { + key: "_showTooltip", + value: function _showTooltip() { + this._activeTooltip.setAttribute(Selectors$4.DATA_VISIBLE, "true"); + } + }, { + key: "_hideTooltip", + value: function _hideTooltip() { + this._activeTooltip.setAttribute(Selectors$4.DATA_VISIBLE, "false"); + } + }, { + key: "_listenForClose", + value: function _listenForClose() { + this._activeTrigger.removeEventListener(Events$4.MOUSEOVER, this._render); + + this._activeTrigger.removeEventListener(Events$4.FOCUS, this._render); + + this._activeTrigger.addEventListener(Events$4.MOUSEOUT, this._handleClose); + + this._activeTrigger.addEventListener(Events$4.BLUR, this._handleClose); + + document.addEventListener(Events$4.KEYDOWN, this._handleEscapeKeyPress); + + if (iOSMobile) { + document.body.style.cursor = "pointer"; + } + } + }, { + key: "_handleEscapeKeyPress", + value: function _handleEscapeKeyPress(event) { + if (event.which === KeyCodes$3.ESCAPE) { + this._handleClose(); + } + } + }, { + key: "_listenForOpen", + value: function _listenForOpen() { + this._activeTrigger.removeEventListener(Events$4.MOUSEOUT, this._handleClose); + + this._activeTrigger.removeEventListener(Events$4.BLUR, this._handleClose); + + this._activeTrigger.addEventListener(Events$4.MOUSEOVER, this._render); + + this._activeTrigger.addEventListener(Events$4.FOCUS, this._render); + + document.removeEventListener(Events$4.KEYDOWN, this._handleEscapeKeyPress); + + if (iOSMobile) { + document.body.style.cursor = "auto"; + } + } + }, { + key: "_alignTooltip", + value: function _alignTooltip(property) { + var triggerLength = this._getComputedLength(this._activeTrigger, property); + + var tooltipLength = this._getComputedLength(this._activeTooltip, property); + + var triggerIsLongest = triggerLength > tooltipLength; + var offset = triggerIsLongest ? (triggerLength - tooltipLength) / 2 : (tooltipLength - triggerLength) / -2; + + if (property === "height") { + this._activeTooltip.style.top = "".concat(offset, "px"); + } else { + this._activeTooltip.style.left = "".concat(offset, "px"); + } + } + }, { + key: "_setupTooltip", + value: function _setupTooltip(instance) { + var id = instance.getAttribute(Selectors$4.DATA_TOOLTIP); + var trigger = instance.querySelector(this._getTrigger(id)); + var tooltip = document.getElementById(id); + + if (!id) { + return console.error(Messages$3.NO_ID_ERROR); + } + + if (!trigger) { + return console.error(Messages$3.NO_TRIGGER_ERROR(id)); + } + + if (!tooltip) { + return console.error(Messages$3.NO_TOOLTIP_ERROR(id)); + } + + trigger.setAttribute(Selectors$4.ARIA_DESCRIBEDBY, id); + tooltip.setAttribute(Selectors$4.ROLE, "tooltip"); + trigger.addEventListener(Events$4.MOUSEOVER, this._render); + trigger.addEventListener(Events$4.FOCUS, this._render); + } + }, { + key: "_getTrigger", + value: function _getTrigger(id) { + return "[".concat(Selectors$4.DATA_TARGET, "=\"").concat(id, "\"]"); + } + }, { + key: "_getComputedLength", + value: function _getComputedLength(element, property) { + return parseInt(window.getComputedStyle(element)[property].slice(0, -2)); + } + }, { + key: "_isLeftOrRight", + value: function _isLeftOrRight() { + var classes = this._activeTooltip.classList; + return classes.contains(Selectors$4.DROP_LEFT_CLASS) || classes.contains(Selectors$4.DROP_RIGHT_CLASS); + } + }]); + + return Tooltip; + }(); + var Accordions = new Accordion(); var Dropdowns = new Dropdown(); + var Modals = new Modal(); + var Tooltips = new Tooltip(); var Utils$1 = new Utils(); var Undernet = { Modals: Modals, Accordions: Accordions, Dropdowns: Dropdowns, + Tooltips: Tooltips, Utils: Utils$1 }; @@ -1042,6 +1241,7 @@ Undernet.Modals.start(); Undernet.Accordions.start(); Undernet.Dropdowns.start(); + Undernet.Tooltips.start(); Undernet.Utils.enableFocusOutline(); }; @@ -1054,10 +1254,11 @@ window.Undernet = Undernet; - exports.default = Undernet; + exports.Undernet = Undernet; exports.Modals = Modals; exports.Accordions = Accordions; exports.Dropdowns = Dropdowns; + exports.Tooltips = Tooltips; exports.Utils = Utils$1; Object.defineProperty(exports, '__esModule', { value: true }); diff --git a/dist/undernet.bundle.js.map b/dist/undernet.bundle.js.map index 8e856b38..7a045588 100644 --- a/dist/undernet.bundle.js.map +++ b/dist/undernet.bundle.js.map @@ -1 +1 @@ -{"version":3,"file":"undernet.bundle.js","sources":["../js/src/utils.js","../js/src/components/modal.js","../js/src/components/accordion.js","../js/src/components/dropdown.js","../js/src/index.js","../js/src/index.bundle.js"],"sourcesContent":["const KeyCodes = {\n SHIFT: 16,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n NOT_VISUALLY_HIDDEN: \":not(.is-visually-hidden)\",\n FOCUSABLE_TAGS: [\"a\", \"button\", \"input\", \"object\", \"select\", \"textarea\", \"[tabindex]\"],\n KEYBOARD_CLASS: \"using-keyboard\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {String}\n */\nexport const getFocusableElements = container => {\n const focusables = Selectors.FOCUSABLE_TAGS.map(\n element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}`\n ).join(\", \")\n\n return document.querySelectorAll(focusables)\n}\n\n/**\n * Utility methods for DOM traversal and focus trapping.\n * @module Utils\n */\nexport default class Utils {\n constructor() {\n // events\n this._listenForKeyboard = this._listenForKeyboard.bind(this)\n this._listenForClick = this._listenForClick.bind(this)\n this._handleFocusTrapWithTab = this._handleFocusTrapWithTab.bind(this)\n this._handleFocusTrapWithArrows = this._handleFocusTrapWithArrows.bind(this)\n\n this._focusContainerSelector = \"\"\n this._focusableChildren = []\n this._focusableFirstChild = {}\n this._focusableLastChild = {}\n this._listeningForKeydown = false\n this._trapFocusWithArrows = false\n }\n\n // public\n\n /**\n * Listens to the first and last elements matched from this.getFocusableElements()\n * @param {String} container - The container's class, attribute, etc.\n * @param {Object} options - Optional has hof options.\n */\n captureFocus(container, options) {\n this._focusContainerSelector = container\n this._focusableChildren = getFocusableElements(this._focusContainerSelector)\n this._focusableFirstChild = this._focusableChildren[0]\n this._focusableLastChild = this._focusableChildren[this._focusableChildren.length - 1]\n\n if (options) {\n if (options.useArrows) {\n this._trapFocusWithArrows = options.useArrows || this._trapFocusWithArrows\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n }\n } else {\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Stop trapping focus set in this.captureFocus()\n */\n releaseFocus() {\n if (this._trapFocusWithArrows) {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n this._trapFocusWithArrows = false\n } else {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Begin listening to _listenForKeyboard()\n */\n enableFocusOutline() {\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n }\n\n /**\n * Completely disable focus outline utility.\n */\n disableFocusOutline() {\n if (this._listeningForKeydown) {\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n } else {\n document.removeEventListener(Events.CLICK, this._listenForClick)\n }\n }\n\n // private\n\n /**\n * When a key is pressed, detect if it's tab or shift keys and enable\n * focus outlines on currently focused element(s). Then, remove keydown listener\n * and add click listener on _listenForClick().\n * @param {Object} event - Event (keypress).\n */\n _listenForKeyboard(event) {\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (tabKey || shiftKey || arrowUp || arrowDown) {\n document.body.classList.add(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n document.addEventListener(Events.CLICK, this._listenForClick)\n this._listeningForKeydown = false\n }\n }\n\n /**\n * On click, remove Selectors.KEYBOARD_CLASS and re-add keydown listener.\n * @param {Object} event - Event (keypress).\n */\n _listenForClick(event) {\n document.body.classList.remove(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.CLICK, this._listenForClick)\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n this._listeningForKeydown = true\n }\n\n /**\n * Handles focus on first or last child in a container, using tab and tab+shift keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithTab(event) {\n const containerElement = document.querySelector(this._focusContainerSelector)\n const containerActive = document.activeElement === containerElement\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const hasShift = shiftKey && tabKey\n const noShift = !shiftKey && tabKey\n\n if (shiftKey && tabKey && (firstActive || containerActive)) {\n event.preventDefault()\n this._focusableLastChild.focus()\n } else if (!shiftKey && tabKey && lastActive) {\n event.preventDefault()\n this._focusableFirstChild.focus()\n }\n }\n\n /**\n * Handles focus on the first, last, next, or previous child in a container, using up and down arrow keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithArrows(event) {\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (arrowUp || arrowDown) {\n event.preventDefault()\n\n if (firstActive && arrowUp) {\n this._focusableLastChild.focus()\n } else if (lastActive && arrowDown) {\n this._focusableFirstChild.focus()\n } else if (arrowDown) {\n this._focusNextChild()\n } else if (arrowUp) {\n this._focusLastChild()\n }\n }\n }\n\n /**\n * Focus the next child in this._focusableChildren.\n */\n _focusNextChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i + 1].focus()\n break\n }\n }\n }\n\n /**\n * Focus the previous child in this._focusableChildren.\n */\n _focusLastChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i - 1].focus()\n break\n }\n }\n }\n}\n","import Utils, { getFocusableElements } from \"../utils\"\n\nconst KeyCodes = {\n ESCAPE: 27,\n}\n\nconst Selectors = {\n // unique\n DATA_MODAL: \"data-modal\",\n DATA_MODAL_ID: \"data-modal-id\",\n DATA_MODAL_BUTTON: \"data-modal-button\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_CLOSE: \"data-close\",\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_MODAL: \"aria-modal\",\n ROLE: \"role\",\n TABINDEX: \"tabindex\",\n // classes\n NO_SCROLL: \"no-scroll\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n RESIZE: \"resize\",\n}\n\nconst Messages = {\n NO_TARGET_ERROR: `Could not find [data-target] attribute associated with a [data-modal-button] element.`,\n NO_PARENT_ERROR: `Could not find [data-parent] attribute associated with a [data-modal] element.`,\n NO_ID_ERROR: id =>\n `Could not find [data-modal-id='${id}'] associated with a [data-modal] element.`,\n}\n\n/**\n * Modal component class.\n * @module Modal\n * @requires Utils\n */\nexport default class Modal extends Utils {\n constructor() {\n super()\n\n this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent)\n\n // events\n this._render = this._render.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleOverlayClick = this._handleOverlayClick.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n\n // all modals\n this._modals = []\n this._modalButtons = []\n\n // active modal\n this._activeModalButton = {}\n this._activeModalOverlay = {}\n this._activeModal = {}\n this._activeModalId = \"\"\n this._activeModalOverlayAttr = \"\"\n this._activeModalSelector = \"\"\n this._activeModalCloseButtons = []\n\n // attribute helpers\n this._modalContainerAttr = `[${Selectors.DATA_MODAL}]`\n }\n\n // public\n\n /**\n * Add accessible attributes to modal containers\n * Begin listening to elements with [data-modal-button]\n */\n start() {\n this._modals = document.querySelectorAll(this._modalContainerAttr)\n this._modalButtons = document.querySelectorAll(`[${Selectors.DATA_MODAL_BUTTON}]`)\n\n getFocusableElements(this._modalContainerAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._modals.length) {\n this._modals.forEach(modal => {\n this._setupModal(modal)\n })\n }\n\n if (this._modalButtons.length) {\n this._modalButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to modal buttons\n */\n stop() {\n this._modalButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n this._activeModalButton = event.target\n\n if (!this._activeModalButton.getAttribute(Selectors.DATA_TARGET)) {\n return console.error(Messages.NO_TARGET_ERROR)\n }\n\n this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_TARGET)\n this._activeModalOverlayAttr = `[${Selectors.DATA_MODAL_ID}=\"${this._activeModalId}\"]`\n\n if (!document.querySelector(this._activeModalOverlayAttr)) {\n return console.error(Messages.NO_ID_ERROR(this._activeModalId))\n }\n\n this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr)\n\n this._activeModalSelector = `${this._activeModalOverlayAttr} ${this._modalContainerAttr}`\n this._activeModal = document.querySelector(this._activeModalSelector)\n this._activeModalCloseButtons = document.querySelectorAll(\n `${this._activeModalOverlayAttr} [${Selectors.DATA_CLOSE}]`\n )\n\n // allow focusable elements to be focused\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n\n // capture focus, stop scrolling, and toggle attributes for visibility\n this._handleScrollStop()\n this.captureFocus(this._activeModalSelector)\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // focus the modal\n this._activeModal.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModal.focus()\n\n // offset slight scroll caused by this._activeModal.focus()\n this._activeModalOverlay.scrollTop = 0\n\n // on ios devices, let the modal close on overlay click\n if (this._iosMobile) {\n this._activeModalOverlay.style.cursor = \"pointer\"\n }\n\n // begin listening to events\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n _setupModal(modal) {\n let modalId\n if (!modal.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR)\n } else {\n modalId = modal.getAttribute(Selectors.DATA_PARENT)\n }\n\n let modalWrapper\n if (!document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)) {\n return console.error(Messages.NO_ID_ERROR(modalId))\n } else {\n modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)\n }\n\n modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n modalWrapper.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n modal.setAttribute(Selectors.ARIA_MODAL, \"true\")\n modal.setAttribute(Selectors.ROLE, \"dialog\")\n }\n\n /**\n * Turn off event listeners and reset focus to last selected DOM node (button)\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n this._handleReturnFocus()\n this._handleScrollRestore()\n this.releaseFocus()\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n this._activeModal.removeAttribute(Selectors.TABINDEX)\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._iosMobile) {\n this._activeModalOverlay.style.cursor = \"auto\"\n }\n\n // stop listening to events\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.removeEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n /**\n * Handles click event on the modal background to close it.\n * @param {Object} event - The event object\n */\n _handleOverlayClick(event) {\n if (event.target === this._activeModalOverlay) {\n this._handleClose(event)\n }\n }\n\n /**\n * Handles escape key event to close the current modal\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Returns focus to the last focused element before the modal was called.\n * @param {Object} button - The current modal's corresponding button.\n */\n _handleReturnFocus() {\n this._activeModalButton.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModalButton.focus()\n this._activeModalButton.removeAttribute(Selectors.TABINDEX)\n }\n\n /**\n * Restores scroll behavior to and \n */\n _handleScrollRestore() {\n document.body.classList.remove(Selectors.NO_SCROLL)\n document.querySelector(\"html\").classList.remove(Selectors.NO_SCROLL)\n }\n\n /**\n * Prevents scroll behavior on and \n */\n _handleScrollStop() {\n document.body.classList.add(Selectors.NO_SCROLL)\n document.querySelector(\"html\").classList.add(Selectors.NO_SCROLL)\n }\n}\n","import Utils, { getFocusableElements } from \"../utils\"\n\nconst Selectors = {\n // unique\n DATA_ACCORDION: \"data-accordion\",\n DATA_ACCORDION_ROW: \"data-accordion-row\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_TARGET: \"data-target\",\n DATA_TOGGLE_MULTIPLE: \"data-toggle-multiple\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_EXPANDED: \"aria-expanded\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n TABINDEX: \"tabindex\",\n}\n\nconst Events = {\n CLICK: \"click\",\n KEYDOWN: \"keydown\",\n}\n\nconst Messages = {\n NO_VISIBLE_ERROR: id =>\n `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`,\n NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`,\n NO_HEADER_ID_ERROR: id => `Could not find header tag associated with [data-target='${id}'].`,\n NO_PARENT_ERROR: id => `Could not find [data-parent] associated with [data-target='${id}'].`,\n NO_CONTENT_ERROR: id =>\n `Could not find accordion content block with [id] ${id} associated with [data-target='${id}'].`,\n}\n\n/**\n * Accordion component class.\n * @module Accordion\n * @requires Utils\n */\nexport default class Accordion extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n\n // all accordions\n this._accordionButtons = []\n this._accordionContentsAttr = \"\"\n this._accordionContents = []\n\n // active accordion\n this._activeContainer = {}\n this._activeButton = {}\n this._activeAccordionRowId = \"\"\n this._activeRowAttr = \"\"\n this._activeRow = \"\"\n this._activeContainerId = \"\"\n this._activeContainerAttr = \"\"\n this._activeContent = {}\n this._activeButtonExpandState = \"\"\n this._activeContentHiddenState = \"\"\n\n // other data\n this._headerLevels = [1, 2, 3, 4, 5, 6]\n }\n\n // public\n\n /**\n * Sets up accordion components and listens to buttons for events.\n * Begin listening to [data-accordion-button] elements\n */\n start() {\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(\n `[${Selectors.DATA_ACCORDION}]`\n )\n this._accordionButtons = document.querySelectorAll(accordionButtonSelector)\n\n if (this._accordionButtons.length) {\n this._accordionButtons.forEach(button => {\n this._setupAccordion(button)\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to accordion button events.\n */\n stop() {\n this._accordionButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Open accordion content associated with an accordion button.\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n\n this._activeButton = event.target\n this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET)\n\n this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId)\n this._activeRow = document.querySelector(this._activeRowAttr)\n\n if (!this._activeButton.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId))\n }\n\n this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT)\n this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']`\n\n if (!document.querySelector(this._activeContainerAttr)) {\n return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId))\n }\n\n this._activeContainer = document.querySelector(this._activeContainerAttr)\n this._activeContent = document.getElementById(this._activeAccordionRowId)\n\n const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE)\n\n this._activeButtonExpandState = accordionButtonState === \"true\" ? \"false\" : \"true\"\n this._activeContentHiddenState = this._activeButtonExpandState === \"false\" ? \"true\" : \"false\"\n\n this._closeAllIfToggleable()\n this._toggleSelectedAccordion()\n }\n\n /**\n * Add initial attributes to accordion elements.\n * @param {Element} button - A button element that triggers an accordion.\n */\n _setupAccordion(button) {\n const buttonId = button.getAttribute(Selectors.DATA_TARGET)\n\n if (!document.getElementById(buttonId)) {\n return console.error(Messages.NO_CONTENT_ERROR(buttonId))\n }\n\n const buttonContent = document.getElementById(buttonId)\n const accordionRowAttr = this._getAccordionRowAttr(buttonId)\n\n if (!document.querySelector(accordionRowAttr)) {\n return console.error(Messages.NO_ROW_ERROR(buttonId))\n }\n\n const accordionRow = document.querySelector(accordionRowAttr)\n const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr)\n const buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0]\n\n if (!buttonHeader || !buttonHeader.id) {\n console.error(Messages.NO_HEADER_ID_ERROR(buttonId))\n }\n\n const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`)\n\n button.setAttribute(Selectors.ARIA_CONTROLS, buttonId)\n buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id)\n\n if (!accordionRow.getAttribute(Selectors.DATA_VISIBLE)) {\n return console.error(Messages.NO_VISIBLE_ERROR(buttonId))\n }\n\n const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE)\n if (contentShouldExpand === \"true\") {\n buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`\n button.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n } else {\n button.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n }\n\n /**\n * Build a selector string to match possible accordion buttons\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible button selectors\n */\n _getPossibleAccordionButtonAttrs(attr) {\n return this._headerLevels\n .map(\n num => `${attr} > [${Selectors.DATA_ACCORDION_ROW}] > h${num} [${Selectors.DATA_TARGET}]`\n )\n .join(\", \")\n }\n\n /**\n * Build a selector string to match possible accordion headers\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible header selectors\n */\n _getPossibleAccordionHeaderAttrs(attr) {\n return this._headerLevels.map(num => `${attr} > h${num}`).join(\", \")\n }\n\n /**\n * Build a unique accordion row attribute selector.\n * @param {String} id - An id value associated with a given Selectors.DATA_TARGET\n * @return {String} - A unique accordion row selector\n */\n _getAccordionRowAttr(id) {\n return `[${Selectors.DATA_ACCORDION_ROW}='${id}']`\n }\n\n /**\n * If toggling multiple rows at once isn't enabled, close all rows except the selected one.\n * This ensures the selected one can be closed if it's already open.\n */\n _closeAllIfToggleable() {\n if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return\n\n const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]`\n const allRows = document.querySelectorAll(\n `${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`\n )\n const allContent = document.querySelectorAll(allContentAttr)\n\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr)\n const allButtons = document.querySelectorAll(accordionButtonSelector)\n\n allContent.forEach(content => {\n if (content !== this._activeContent) content.style.maxHeight = null\n })\n\n getFocusableElements(allContentAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n this._toggleAttributeInCollection(allRows, Selectors.DATA_VISIBLE, \"true\", \"false\")\n this._toggleAttributeInCollection(allButtons, Selectors.ARIA_EXPANDED, \"true\", \"false\")\n this._toggleAttributeInCollection(allContent, Selectors.ARIA_HIDDEN, \"false\", \"true\")\n }\n\n /**\n * Toggle the currently selected accordion button's content.\n */\n _toggleSelectedAccordion() {\n this._activeRow.setAttribute(Selectors.DATA_VISIBLE, this._activeButtonExpandState)\n this._activeButton.setAttribute(Selectors.ARIA_EXPANDED, this._activeButtonExpandState)\n this._activeContent.setAttribute(Selectors.ARIA_HIDDEN, this._activeContentHiddenState)\n\n const activeContentBlock = `#${this._activeAccordionRowId}`\n getFocusableElements(activeContentBlock).forEach(element => {\n const value = this._activeButtonExpandState === \"true\" ? \"0\" : \"-1\"\n element.setAttribute(Selectors.TABINDEX, value)\n })\n\n if (this._activeContent.style.maxHeight) {\n this._activeContent.style.maxHeight = null\n } else {\n this._activeContent.style.maxHeight = `${this._activeContent.scrollHeight}px`\n }\n }\n\n /**\n * Toggles a single attribute of a series of elements.\n * @param {Array} elements - An array of elements to be operated on.\n * @param {String} attributeName - An attribute to be changed.\n * @param {String} currentValue - The current value of attributeName\n * @param {String} newValue - The new value of attributeName\n */\n _toggleAttributeInCollection(elements, attributeName, currentValue, newValue) {\n elements.forEach(element => {\n if (element.hasAttribute(attributeName, currentValue)) {\n element.setAttribute(attributeName, newValue)\n }\n })\n }\n}\n","import Utils from \"../utils\"\n\nconst KeyCodes = {\n TAB: 9,\n SHIFT: 16,\n ESCAPE: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n // unique\n DATA_DROPDOWN: \"data-dropdown\",\n // common\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n DATA_VISIBLE: \"data-visible\",\n // accessibility\n TABINDEX: \"tabindex\",\n ARIA_HASPOPUP: \"aria-haspopup\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n ARIA_EXPANDED: \"aria-expanded\",\n ROLE: \"role\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\nconst Messages = {\n NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`,\n NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`,\n NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`,\n}\n\n/**\n * Dropdown component class.\n * @module Dropdown\n * @requires Utils\n */\nexport default class Dropdown extends Utils {\n constructor() {\n super()\n\n this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent)\n\n // events\n this._render = this._render.bind(this)\n this._handleFirstTabClose = this._handleFirstTabClose.bind(this)\n this._handleLastTabClose = this._handleLastTabClose.bind(this)\n this._renderWithKeys = this._renderWithKeys.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n this._handleOffMenuClick = this._handleOffMenuClick.bind(this)\n\n // active dropdown\n this._activeDropdownButton = null\n this._activeDropdown = null\n this._activeDropdownMenu = null\n this._activeDropdownLinks = []\n this._allowFocusReturn = true\n this._activeDropdownId = \"\"\n this._activeDropdownAttr = \"\"\n this._activeDropdownMenuId = \"\"\n\n // all dropdowns\n this._dropdownButtons = []\n this._dropdowns = []\n\n // dropdown element selectors\n this._dropdownContainerAttr = `[${Selectors.DATA_DROPDOWN}]`\n this._dropdownTargetAttr = `[${Selectors.DATA_TARGET}]`\n }\n\n // public\n\n /**\n * Find and set up dropdown buttons and menus.\n * Begin listening to dropdowns for events.\n */\n start() {\n this._dropdowns = document.querySelectorAll(`${this._dropdownContainerAttr}`)\n this._dropdownButtons = document.querySelectorAll(\n `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}`\n )\n\n if (this._dropdowns.length) {\n this._dropdowns.forEach(dropdown => this._setupDropdown(dropdown))\n }\n\n this._dropdownButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n button.addEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n /**\n * Stop listening for dropdown events.\n */\n stop() {\n this._dropdownButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n button.removeEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n * @param {Number} key - The key code that called _render()\n */\n _render(event, key) {\n event.preventDefault()\n event.stopPropagation()\n\n if (this._activeDropdownButton) {\n this._allowFocusReturn = false\n this._handleClose(event)\n this._allowFocusReturn = true\n }\n\n // dropdown button / trigger\n this._activeDropdownButton = event.target\n\n if (!this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR)\n }\n\n this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)\n\n // dropdown container\n this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${this._activeDropdownId}\"]`\n\n if (!document.querySelector(this._activeDropdownAttr)) {\n return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr))\n }\n\n this._activeDropdown = document.querySelector(this._activeDropdownAttr)\n\n // dropdown menu\n this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET)\n this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId)\n\n // toggle attributes on dropdown button, indicating a visible dropdown is present\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // trade button event listener to close the menu, instead of open it\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._render)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._handleClose)\n\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOffMenuClick)\n\n // make click events work on mobile iOS\n if (this._iosMobile) {\n document.body.style.cursor = \"pointer\"\n }\n\n this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr)\n\n this.firstDropdownLink = this._activeDropdownLinks[0]\n this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]\n\n this.firstDropdownLink.addEventListener(Events.KEYDOWN, this._handleFirstTabClose)\n this.lastDropdownLink.addEventListener(Events.KEYDOWN, this._handleLastTabClose)\n\n if (key && key === KeyCodes.ARROW_UP) {\n this.lastDropdownLink.focus()\n } else {\n this.firstDropdownLink.focus()\n }\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"0\")\n link.addEventListener(Events.CLICK, this._handleClose)\n })\n\n this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true })\n }\n\n /**\n * Closes the dropdown if user uses shift and tab keys on the first dropdown element.\n * @param {Object} event - The event object\n */\n _handleFirstTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (shiftKey && tabKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes the dropdown if user uses tab key on the last dropdown element.\n * @param {Object} event - The event object\n */\n _handleLastTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (tabKey && !shiftKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Renders dropdown if the user uses arrow up or down.\n * @param {Object} event - The event object\n */\n _renderWithKeys(event) {\n if (event.which === KeyCodes.ARROW_UP || event.which === KeyCodes.ARROW_DOWN) {\n this._render(event, event.which)\n }\n }\n\n /**\n * Closes currently open dropdown.\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n\n this.releaseFocus()\n\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n link.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._handleClose)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._render)\n\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n\n if (this._iosMobile) {\n document.body.style.cursor = \"auto\"\n }\n\n document.removeEventListener(Events.CLICK, this._handleOffMenuClick)\n\n if (this._allowFocusReturn) {\n this._handleReturnFocus()\n }\n\n this._activeDropdownButton = null\n }\n\n /**\n * Use escape key to close dropdown.\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes dropdown\n * @param {Object} event - The event object\n */\n _handleOffMenuClick(event) {\n if (event.target !== this._activeDropdownButton && event.target !== this._activeDropdownMenu) {\n this._handleClose(event)\n }\n }\n\n /**\n * Puts focus on a the active dropdown button.\n */\n _handleReturnFocus() {\n this._activeDropdownButton.setAttribute(Selectors.TAB_INDEX, \"-1\")\n this._activeDropdownButton.focus()\n this._activeDropdownButton.removeAttribute(Selectors.TAB_INDEX)\n }\n\n /**\n * Retrieve possible menu links or buttons as an array\n * @param {String} attr - The unique attribute for a dropdown.\n * @return {String} - Selector for possible menu item links.\n */\n _getDropdownLinks(attr) {\n return document.querySelectorAll(`${attr} > ul > li > a, ${attr} > ul > li > button`)\n }\n\n /**\n * Add starting attributes to a dropdown.\n * @param {Element} dropdown - A dropdown element.\n */\n _setupDropdown(dropdown) {\n const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN)\n const dropdownIdAttr = `[${Selectors.DATA_DROPDOWN}=\"${dropdownId}\"]`\n const dropdownMenuItemsAttr = `${dropdownIdAttr} > ul > li`\n\n if (!document.querySelector(`${dropdownIdAttr} > ul`)) {\n return console.error(Messages.NO_MENU_ERROR(dropdownIdAttr))\n }\n\n const dropdownMenu = document.querySelector(`${dropdownIdAttr} > ul`)\n const dropdownButton = document.querySelector(`${dropdownIdAttr} > ${this._dropdownTargetAttr}`)\n\n dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id)\n dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, \"true\")\n dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id)\n\n const dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr)\n dropdownMenuItems.forEach(item => item.setAttribute(Selectors.ROLE, \"none\"))\n\n this._getDropdownLinks(dropdownIdAttr).forEach(link => {\n link.setAttribute(Selectors.ROLE, \"menuitem\")\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n}\n","import _Modals from \"./components/modal\"\nimport _Accordion from \"./components/accordion\"\nimport _Dropdown from \"./components/dropdown\"\nimport _Utils from \"./utils\"\n\nexport const Modals = new _Modals()\nexport const Accordions = new _Accordion()\nexport const Dropdowns = new _Dropdown()\nexport const Utils = new _Utils()\n\nconst Undernet = {\n // Components\n Modals,\n Accordions,\n Dropdowns,\n\n // Utils\n Utils,\n}\n\nUndernet.start = () => {\n // Components\n Undernet.Modals.start()\n Undernet.Accordions.start()\n Undernet.Dropdowns.start()\n\n // Utils\n Undernet.Utils.enableFocusOutline()\n}\n\nUndernet.stop = () => {\n // Components\n Undernet.Modals.stop()\n Undernet.Accordions.stop()\n Undernet.Dropdowns.stop()\n\n // Utils\n Undernet.Utils.disableFocusOutline()\n}\n\nexport default Undernet\n","import Undernet from \"./index\"\n\nexport default Undernet\nexport { Modals, Accordions, Dropdowns, Utils } from \"./index\"\n\nwindow.Undernet = Undernet\n"],"names":["KeyCodes","SHIFT","TAB","ARROW_UP","ARROW_DOWN","Selectors","NOT_VISUALLY_HIDDEN","FOCUSABLE_TAGS","KEYBOARD_CLASS","Events","KEYDOWN","CLICK","getFocusableElements","container","focusables","map","element","join","document","querySelectorAll","Utils","_listenForKeyboard","bind","_listenForClick","_handleFocusTrapWithTab","_handleFocusTrapWithArrows","_focusContainerSelector","_focusableChildren","_focusableFirstChild","_focusableLastChild","_listeningForKeydown","_trapFocusWithArrows","options","length","useArrows","addEventListener","removeEventListener","event","tabKey","which","shiftKey","arrowUp","arrowDown","body","classList","add","remove","containerElement","querySelector","containerActive","activeElement","firstActive","lastActive","preventDefault","focus","_focusNextChild","_focusLastChild","i","ESCAPE","DATA_MODAL","DATA_MODAL_ID","DATA_MODAL_BUTTON","DATA_VISIBLE","DATA_CLOSE","DATA_TARGET","DATA_PARENT","ARIA_HIDDEN","ARIA_MODAL","ROLE","TABINDEX","NO_SCROLL","RESIZE","Messages","NO_TARGET_ERROR","NO_PARENT_ERROR","NO_ID_ERROR","id","Modal","_iosMobile","test","navigator","userAgent","_render","_handleClose","_handleOverlayClick","_handleEscapeKeyPress","_modals","_modalButtons","_activeModalButton","_activeModalOverlay","_activeModal","_activeModalId","_activeModalOverlayAttr","_activeModalSelector","_activeModalCloseButtons","_modalContainerAttr","forEach","setAttribute","modal","_setupModal","button","target","getAttribute","console","error","_handleScrollStop","captureFocus","scrollTop","style","cursor","modalId","modalWrapper","_handleReturnFocus","_handleScrollRestore","releaseFocus","removeAttribute","DATA_ACCORDION","DATA_ACCORDION_ROW","DATA_TOGGLE_MULTIPLE","ARIA_EXPANDED","ARIA_CONTROLS","ARIA_LABELLEDBY","NO_VISIBLE_ERROR","NO_ROW_ERROR","NO_HEADER_ID_ERROR","NO_CONTENT_ERROR","Accordion","_accordionButtons","_accordionContentsAttr","_accordionContents","_activeContainer","_activeButton","_activeAccordionRowId","_activeRowAttr","_activeRow","_activeContainerId","_activeContainerAttr","_activeContent","_activeButtonExpandState","_activeContentHiddenState","_headerLevels","accordionButtonSelector","_getPossibleAccordionButtonAttrs","_setupAccordion","_getAccordionRowAttr","NO_ACCORDION_ERROR","getElementById","accordionButtonState","_closeAllIfToggleable","_toggleSelectedAccordion","buttonId","buttonContent","accordionRowAttr","accordionRow","buttonHeaderAttr","_getPossibleAccordionHeaderAttrs","buttonHeader","buttonContentChildren","contentShouldExpand","maxHeight","scrollHeight","attr","num","hasAttribute","allContentAttr","allRows","allContent","allButtons","content","_toggleAttributeInCollection","activeContentBlock","value","elements","attributeName","currentValue","newValue","DATA_DROPDOWN","ARIA_HASPOPUP","NO_DROPDOWN_ERROR","NO_MENU_ERROR","Dropdown","_handleFirstTabClose","_handleLastTabClose","_renderWithKeys","_handleOffMenuClick","_activeDropdownButton","_activeDropdown","_activeDropdownMenu","_activeDropdownLinks","_allowFocusReturn","_activeDropdownId","_activeDropdownAttr","_activeDropdownMenuId","_dropdownButtons","_dropdowns","_dropdownContainerAttr","_dropdownTargetAttr","dropdown","_setupDropdown","key","stopPropagation","_getDropdownLinks","firstDropdownLink","lastDropdownLink","link","TAB_INDEX","dropdownId","dropdownIdAttr","dropdownMenuItemsAttr","dropdownMenu","dropdownButton","dropdownMenuItems","item","Modals","_Modals","Accordions","_Accordion","Dropdowns","_Dropdown","_Utils","Undernet","start","enableFocusOutline","stop","disableFocusOutline","window"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"undernet.bundle.js","sources":["../js/src/utils.js","../js/src/accordion.js","../js/src/dropdown.js","../js/src/modal.js","../js/src/tooltip.js","../js/src/index.js","../js/src/index.bundle.js"],"sourcesContent":["const KeyCodes = {\n SHIFT: 16,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n NOT_VISUALLY_HIDDEN: \":not(.is-visually-hidden)\",\n FOCUSABLE_TAGS: [\"a\", \"button\", \"input\", \"object\", \"select\", \"textarea\", \"[tabindex]\"],\n KEYBOARD_CLASS: \"using-keyboard\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {String}\n */\nexport const nodeListToArray = nodeList => {\n return Array.apply(null, document.querySelectorAll(nodeList))\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {Array}\n */\nexport const getFocusableElements = container => {\n const focusables = Selectors.FOCUSABLE_TAGS.map(\n element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}`\n ).join(\", \")\n\n return nodeListToArray(focusables)\n}\n\n/**\n * Detects if the browser being used is on an iphone, ipad, or ipod.\n * @return {Boolean}\n */\nexport const iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent)\n\n/**\n * Utility methods for DOM traversal and focus trapping.\n * @module Utils\n */\nexport default class Utils {\n constructor() {\n // events\n this._listenForKeyboard = this._listenForKeyboard.bind(this)\n this._listenForClick = this._listenForClick.bind(this)\n this._handleFocusTrapWithTab = this._handleFocusTrapWithTab.bind(this)\n this._handleFocusTrapWithArrows = this._handleFocusTrapWithArrows.bind(this)\n\n this._focusContainerSelector = \"\"\n this._focusableChildren = []\n this._focusableFirstChild = {}\n this._focusableLastChild = {}\n this._listeningForKeydown = false\n this._trapFocusWithArrows = false\n }\n\n // public\n\n /**\n * Listens to the first and last elements matched from this.getFocusableElements()\n * @param {String} container - The container's class, attribute, etc.\n * @param {Object} options - Optional has hof options.\n */\n captureFocus(container, options) {\n this._focusContainerSelector = container\n this._focusableChildren = getFocusableElements(this._focusContainerSelector)\n this._focusableFirstChild = this._focusableChildren[0]\n this._focusableLastChild = this._focusableChildren[this._focusableChildren.length - 1]\n\n if (options) {\n if (options.useArrows) {\n this._trapFocusWithArrows = options.useArrows || this._trapFocusWithArrows\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n }\n } else {\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Stop trapping focus set in this.captureFocus()\n */\n releaseFocus() {\n if (this._trapFocusWithArrows) {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n this._trapFocusWithArrows = false\n } else {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Begin listening to _listenForKeyboard()\n */\n enableFocusOutline() {\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n }\n\n /**\n * Completely disable focus outline utility.\n */\n disableFocusOutline() {\n if (this._listeningForKeydown) {\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n } else {\n document.removeEventListener(Events.CLICK, this._listenForClick)\n }\n }\n\n // private\n\n /**\n * When a key is pressed, detect if it's tab or shift keys and enable\n * focus outlines on currently focused element(s). Then, remove keydown listener\n * and add click listener on _listenForClick().\n * @param {Object} event - Event (keypress).\n */\n _listenForKeyboard(event) {\n document.body.classList.add(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n document.addEventListener(Events.CLICK, this._listenForClick)\n this._listeningForKeydown = false\n }\n\n /**\n * On click, remove Selectors.KEYBOARD_CLASS and re-add keydown listener.\n * @param {Object} event - Event (keypress).\n */\n _listenForClick(event) {\n document.body.classList.remove(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.CLICK, this._listenForClick)\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n this._listeningForKeydown = true\n }\n\n /**\n * Handles focus on first or last child in a container, using tab and tab+shift keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithTab(event) {\n const containerElement = document.querySelector(this._focusContainerSelector)\n const containerActive = document.activeElement === containerElement\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const hasShift = shiftKey && tabKey\n const noShift = !shiftKey && tabKey\n\n if (shiftKey && tabKey && (firstActive || containerActive)) {\n event.preventDefault()\n this._focusableLastChild.focus()\n } else if (!shiftKey && tabKey && lastActive) {\n event.preventDefault()\n this._focusableFirstChild.focus()\n }\n }\n\n /**\n * Handles focus on the first, last, next, or previous child in a container, using up and down arrow keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithArrows(event) {\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (arrowUp || arrowDown) {\n event.preventDefault()\n\n if (firstActive && arrowUp) {\n this._focusableLastChild.focus()\n } else if (lastActive && arrowDown) {\n this._focusableFirstChild.focus()\n } else if (arrowDown) {\n this._focusNextChild()\n } else if (arrowUp) {\n this._focusLastChild()\n }\n }\n }\n\n /**\n * Focus the next child in this._focusableChildren.\n */\n _focusNextChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i + 1].focus()\n break\n }\n }\n }\n\n /**\n * Focus the previous child in this._focusableChildren.\n */\n _focusLastChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i - 1].focus()\n break\n }\n }\n }\n}\n","import Utils, { getFocusableElements, nodeListToArray } from \"./utils\"\n\nconst Selectors = {\n // unique\n DATA_ACCORDION: \"data-accordion\",\n DATA_ACCORDION_ROW: \"data-accordion-row\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_TARGET: \"data-target\",\n DATA_TOGGLE_MULTIPLE: \"data-toggle-multiple\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_EXPANDED: \"aria-expanded\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n TABINDEX: \"tabindex\",\n}\n\nconst Events = {\n CLICK: \"click\",\n KEYDOWN: \"keydown\",\n}\n\nconst Messages = {\n NO_VISIBLE_ERROR: id =>\n `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`,\n NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`,\n NO_HEADER_ID_ERROR: id => `Could not find header tag associated with [data-target='${id}'].`,\n NO_PARENT_ERROR: id => `Could not find [data-parent] associated with [data-target='${id}'].`,\n NO_CONTENT_ERROR: id =>\n `Could not find accordion content block with [id] ${id} associated with [data-target='${id}'].`,\n}\n\n/**\n * Accordion component class.\n * @module Accordion\n * @requires Utils\n */\nexport default class Accordion extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n\n // all accordions\n this._accordionButtons = []\n this._accordionContentsAttr = \"\"\n this._accordionContents = []\n\n // active accordion\n this._activeContainer = {}\n this._activeButton = {}\n this._activeAccordionRowId = \"\"\n this._activeRowAttr = \"\"\n this._activeRow = \"\"\n this._activeContainerId = \"\"\n this._activeContainerAttr = \"\"\n this._activeContent = {}\n this._activeButtonExpandState = \"\"\n this._activeContentHiddenState = \"\"\n\n // other data\n this._headerLevels = [1, 2, 3, 4, 5, 6]\n }\n\n // public\n\n /**\n * Begin listening to accordions.\n */\n start() {\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(\n `[${Selectors.DATA_ACCORDION}]`\n )\n this._accordionButtons = nodeListToArray(accordionButtonSelector)\n\n if (this._accordionButtons.length) {\n this._accordionButtons.forEach(button => {\n this._setupAccordion(button)\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to accordions.\n */\n stop() {\n this._accordionButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Open accordion content associated with an accordion button.\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n\n this._activeButton = event.target\n this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET)\n\n this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId)\n this._activeRow = document.querySelector(this._activeRowAttr)\n this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT)\n\n if (!this._activeContainerId) {\n return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId))\n }\n\n this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']`\n this._activeContainer = document.querySelector(this._activeContainerAttr)\n\n if (!this._activeContainer) {\n return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId))\n }\n\n this._activeContent = document.getElementById(this._activeAccordionRowId)\n\n const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE)\n\n this._activeButtonExpandState = accordionButtonState === \"true\" ? \"false\" : \"true\"\n this._activeContentHiddenState = this._activeButtonExpandState === \"false\" ? \"true\" : \"false\"\n\n this._closeAllIfToggleable()\n this._toggleSelectedAccordion()\n\n this._activeContainerId = null\n this._activeContainer = null\n }\n\n /**\n * Add initial attributes to accordion elements.\n * @param {Element} button - A button element that triggers an accordion.\n */\n _setupAccordion(button) {\n const buttonId = button.getAttribute(Selectors.DATA_TARGET)\n const buttonContent = document.getElementById(buttonId)\n\n if (!buttonContent) {\n return console.error(Messages.NO_CONTENT_ERROR(buttonId))\n }\n\n const accordionRowAttr = this._getAccordionRowAttr(buttonId)\n const accordionRow = document.querySelector(accordionRowAttr)\n\n if (!accordionRow) {\n return console.error(Messages.NO_ROW_ERROR(buttonId))\n }\n\n const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr)\n const buttonHeader = nodeListToArray(buttonHeaderAttr)[0]\n\n if (!buttonHeader || !buttonHeader.id) {\n console.error(Messages.NO_HEADER_ID_ERROR(buttonId))\n }\n\n const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`)\n\n button.setAttribute(Selectors.ARIA_CONTROLS, buttonId)\n buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id)\n\n const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE)\n\n if (!contentShouldExpand) {\n return console.error(Messages.NO_VISIBLE_ERROR(buttonId))\n }\n\n if (contentShouldExpand === \"true\") {\n buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`\n button.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n } else {\n button.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n }\n\n /**\n * Build a selector string to match possible accordion buttons\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible button selectors\n */\n _getPossibleAccordionButtonAttrs(attr) {\n return this._headerLevels\n .map(\n num => `${attr} > [${Selectors.DATA_ACCORDION_ROW}] > h${num} [${Selectors.DATA_TARGET}]`\n )\n .join(\", \")\n }\n\n /**\n * Build a selector string to match possible accordion headers\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible header selectors\n */\n _getPossibleAccordionHeaderAttrs(attr) {\n return this._headerLevels.map(num => `${attr} > h${num}`).join(\", \")\n }\n\n /**\n * Build a unique accordion row attribute selector.\n * @param {String} id - An id value associated with a given Selectors.DATA_TARGET\n * @return {String} - A unique accordion row selector\n */\n _getAccordionRowAttr(id) {\n return `[${Selectors.DATA_ACCORDION_ROW}='${id}']`\n }\n\n /**\n * If toggling multiple rows at once isn't enabled, close all rows except the selected one.\n * This ensures the selected one can be closed if it's already open.\n */\n _closeAllIfToggleable() {\n if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return\n\n const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]`\n const allRows = nodeListToArray(`${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`)\n const allContent = nodeListToArray(allContentAttr)\n\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr)\n const allButtons = nodeListToArray(accordionButtonSelector)\n\n allContent.forEach(content => {\n if (content !== this._activeContent) content.style.maxHeight = null\n })\n\n getFocusableElements(allContentAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n this._toggleAttributeInCollection(allRows, Selectors.DATA_VISIBLE, \"true\", \"false\")\n this._toggleAttributeInCollection(allButtons, Selectors.ARIA_EXPANDED, \"true\", \"false\")\n this._toggleAttributeInCollection(allContent, Selectors.ARIA_HIDDEN, \"false\", \"true\")\n }\n\n /**\n * Toggle the currently selected accordion button's content.\n */\n _toggleSelectedAccordion() {\n this._activeRow.setAttribute(Selectors.DATA_VISIBLE, this._activeButtonExpandState)\n this._activeButton.setAttribute(Selectors.ARIA_EXPANDED, this._activeButtonExpandState)\n this._activeContent.setAttribute(Selectors.ARIA_HIDDEN, this._activeContentHiddenState)\n\n const activeContentBlock = `#${this._activeAccordionRowId}`\n getFocusableElements(activeContentBlock).forEach(element => {\n const value = this._activeButtonExpandState === \"true\" ? \"0\" : \"-1\"\n element.setAttribute(Selectors.TABINDEX, value)\n })\n\n if (this._activeContent.style.maxHeight) {\n this._activeContent.style.maxHeight = null\n } else {\n this._activeContent.style.maxHeight = `${this._activeContent.scrollHeight}px`\n }\n }\n\n /**\n * Toggles a single attribute of a series of elements.\n * @param {Array} elements - An array of elements to be operated on.\n * @param {String} attributeName - An attribute to be changed.\n * @param {String} currentValue - The current value of attributeName\n * @param {String} newValue - The new value of attributeName\n */\n _toggleAttributeInCollection(elements, attributeName, currentValue, newValue) {\n elements.forEach(element => {\n if (element.hasAttribute(attributeName, currentValue)) {\n element.setAttribute(attributeName, newValue)\n }\n })\n }\n}\n","import Utils, { iOSMobile, nodeListToArray } from \"./utils\"\n\nconst KeyCodes = {\n TAB: 9,\n SHIFT: 16,\n ESCAPE: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n // unique\n DATA_DROPDOWN: \"data-dropdown\",\n // common\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n DATA_VISIBLE: \"data-visible\",\n // accessibility\n TABINDEX: \"tabindex\",\n ARIA_HASPOPUP: \"aria-haspopup\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n ARIA_EXPANDED: \"aria-expanded\",\n ROLE: \"role\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\nconst Messages = {\n NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`,\n NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`,\n NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`,\n}\n\n/**\n * Dropdown component class.\n * @module Dropdown\n * @requires Utils\n */\nexport default class Dropdown extends Utils {\n constructor() {\n super()\n // events\n this._render = this._render.bind(this)\n this._handleFirstTabClose = this._handleFirstTabClose.bind(this)\n this._handleLastTabClose = this._handleLastTabClose.bind(this)\n this._renderWithKeys = this._renderWithKeys.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n this._handleOffMenuClick = this._handleOffMenuClick.bind(this)\n\n // active dropdown\n this._activeDropdownButton = null\n this._activeDropdown = null\n this._activeDropdownMenu = null\n this._activeDropdownLinks = []\n this._allowFocusReturn = true\n this._activeDropdownId = \"\"\n this._activeDropdownAttr = \"\"\n this._activeDropdownMenuId = \"\"\n\n // all dropdowns\n this._dropdownButtons = []\n this._dropdowns = []\n\n // dropdown element selectors\n this._dropdownContainerAttr = `[${Selectors.DATA_DROPDOWN}]`\n this._dropdownTargetAttr = `[${Selectors.DATA_TARGET}]`\n }\n\n // public\n\n /**\n * Begin listening to dropdowns.\n */\n start() {\n this._dropdowns = nodeListToArray(`${this._dropdownContainerAttr}`)\n this._dropdownButtons = nodeListToArray(\n `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}`\n )\n\n if (this._dropdowns.length) {\n this._dropdowns.forEach(dropdown => this._setupDropdown(dropdown))\n }\n\n this._dropdownButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n button.addEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n /**\n * Stop listening to dropdowns.\n */\n stop() {\n this._dropdownButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n button.removeEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n * @param {Number} key - The key code that called _render()\n */\n _render(event, key) {\n event.preventDefault()\n event.stopPropagation()\n\n if (this._activeDropdownButton) {\n this._allowFocusReturn = false\n this._handleClose(event)\n this._allowFocusReturn = true\n }\n\n // dropdown button / trigger\n this._activeDropdownButton = event.target\n this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)\n\n if (!this._activeDropdownId) {\n return console.error(Messages.NO_PARENT_ERROR)\n }\n\n // dropdown container\n this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${this._activeDropdownId}\"]`\n this._activeDropdown = document.querySelector(this._activeDropdownAttr)\n\n if (!this._activeDropdown) {\n return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr))\n }\n\n // dropdown menu\n this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET)\n this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId)\n\n // toggle attributes on dropdown button, indicating a visible dropdown is present\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // trade button event listener to close the menu, instead of open it\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._render)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._handleClose)\n\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOffMenuClick)\n\n // make click events work on mobile iOS\n if (iOSMobile) {\n document.body.style.cursor = \"pointer\"\n }\n\n this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr)\n\n this.firstDropdownLink = this._activeDropdownLinks[0]\n this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]\n\n this.firstDropdownLink.addEventListener(Events.KEYDOWN, this._handleFirstTabClose)\n this.lastDropdownLink.addEventListener(Events.KEYDOWN, this._handleLastTabClose)\n\n if (key && key === KeyCodes.ARROW_UP) {\n this.lastDropdownLink.focus()\n } else {\n this.firstDropdownLink.focus()\n }\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"0\")\n link.addEventListener(Events.CLICK, this._handleClose)\n })\n\n this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true })\n }\n\n /**\n * Closes the dropdown if user uses shift and tab keys on the first dropdown element.\n * @param {Object} event - The event object\n */\n _handleFirstTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (shiftKey && tabKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes the dropdown if user uses tab key on the last dropdown element.\n * @param {Object} event - The event object\n */\n _handleLastTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (tabKey && !shiftKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Renders dropdown if the user uses arrow up or down.\n * @param {Object} event - The event object\n */\n _renderWithKeys(event) {\n if (event.which === KeyCodes.ARROW_UP || event.which === KeyCodes.ARROW_DOWN) {\n this._render(event, event.which)\n }\n }\n\n /**\n * Closes currently open dropdown.\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n\n this.releaseFocus()\n\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n link.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._handleClose)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._render)\n\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n\n if (iOSMobile) {\n document.body.style.cursor = \"auto\"\n }\n\n document.removeEventListener(Events.CLICK, this._handleOffMenuClick)\n\n if (this._allowFocusReturn) {\n this._handleReturnFocus()\n }\n\n this._activeDropdownButton = null\n this._activeDropdownId = null\n this._activeDropdown = null\n }\n\n /**\n * Use escape key to close dropdown.\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes dropdown\n * @param {Object} event - The event object\n */\n _handleOffMenuClick(event) {\n if (event.target !== this._activeDropdownButton && event.target !== this._activeDropdownMenu) {\n this._handleClose(event)\n }\n }\n\n /**\n * Puts focus on a the active dropdown button.\n */\n _handleReturnFocus() {\n this._activeDropdownButton.setAttribute(Selectors.TAB_INDEX, \"-1\")\n this._activeDropdownButton.focus()\n this._activeDropdownButton.removeAttribute(Selectors.TAB_INDEX)\n }\n\n /**\n * Retrieve possible menu links or buttons as an array\n * @param {String} attr - The unique attribute for a dropdown.\n * @return {String} - Selector for possible menu item links.\n */\n _getDropdownLinks(attr) {\n return nodeListToArray(`${attr} > ul > li > a, ${attr} > ul > li > button`)\n }\n\n /**\n * Add starting attributes to a dropdown.\n * @param {Element} dropdown - A dropdown element.\n */\n _setupDropdown(dropdown) {\n const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN)\n\n // no id error\n\n const dropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${dropdownId}\"]`\n const dropdownMenuItemsAttr = `${dropdownAttr} > ul > li`\n const dropdownMenu = document.querySelector(`${dropdownAttr} > ul`)\n\n // no ul error\n\n if (!dropdownMenu) {\n return console.error(Messages.NO_MENU_ERROR(dropdownAttr))\n }\n\n const dropdownButton = document.querySelector(`${dropdownAttr} > ${this._dropdownTargetAttr}`)\n\n dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id)\n dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, \"true\")\n dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id)\n\n const dropdownMenuListItems = nodeListToArray(dropdownMenuItemsAttr)\n\n // no menu items error\n\n dropdownMenuListItems.forEach(item => item.setAttribute(Selectors.ROLE, \"none\"))\n\n const dropdownMenuButtons = this._getDropdownLinks(dropdownAttr)\n\n // no menu buttons error\n\n dropdownMenuButtons.forEach(link => {\n link.setAttribute(Selectors.ROLE, \"menuitem\")\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n}\n","import Utils, { iOSMobile, getFocusableElements, nodeListToArray } from \"./utils\"\n\nconst KeyCodes = {\n ESCAPE: 27,\n}\n\nconst Selectors = {\n // unique\n DATA_MODAL: \"data-modal\",\n DATA_MODAL_BUTTON: \"data-modal-button\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_CLOSE: \"data-close\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_MODAL: \"aria-modal\",\n ROLE: \"role\",\n TABINDEX: \"tabindex\",\n // classes\n NO_SCROLL: \"no-scroll\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n RESIZE: \"resize\",\n}\n\nconst Messages = {\n NO_BUTTON_ID_ERROR:\n \"Could not find an id on your [data-modal-button] element. Modal can't be opened.\",\n NO_MODAL_ID_ERROR:\n \"Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.\",\n NO_MODAL_ERROR: id =>\n `Could not find a [data-parent='${id}'] attribute within your [data-modal='${id}'] element.`,\n}\n\n/**\n * Modal component class.\n * @module Modal\n * @requires Utils\n */\nexport default class Modal extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleOverlayClick = this._handleOverlayClick.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n\n // all modals\n this._modals = []\n this._modalButtons = []\n\n // active modal\n this._activeModalButton = {}\n this._activeModalOverlay = {}\n this._activeModal = {}\n this._activeModalId = \"\"\n this._activeModalOverlayAttr = \"\"\n this._activeModalSelector = \"\"\n this._activeModalCloseButtons = []\n\n // attribute helpers\n this._modalContainerAttr = `[${Selectors.DATA_MODAL}]`\n }\n\n // public\n\n /**\n * Begin listening to modals.\n */\n start() {\n this._modals = nodeListToArray(this._modalContainerAttr)\n this._modalButtons = nodeListToArray(`[${Selectors.DATA_MODAL_BUTTON}]`)\n\n getFocusableElements(this._modalContainerAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._modals.length) {\n this._modals.forEach(instance => {\n this._setupModal(instance)\n })\n }\n\n if (this._modalButtons.length) {\n this._modalButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to modals\n */\n stop() {\n this._modalButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n this._activeModalButton = event.target\n this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_MODAL_BUTTON)\n\n if (!this._activeModalId) {\n return console.error(Messages.NO_BUTTON_ID_ERROR)\n }\n\n this._activeModalOverlay = document.querySelector(\n `[${Selectors.DATA_MODAL}=\"${this._activeModalId}\"]`\n )\n this._activeModalSelector = `[${Selectors.DATA_PARENT}='${this._activeModalId}']`\n this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector)\n this._activeModalCloseButtons = nodeListToArray(\n `${this._activeModalSelector} [${Selectors.DATA_CLOSE}]`\n )\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n\n this._handleScrollStop()\n this.captureFocus(this._activeModalSelector)\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n this._activeModal.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModal.focus()\n\n this._activeModalOverlay.scrollTop = 0\n\n if (iOSMobile) {\n this._activeModalOverlay.style.cursor = \"pointer\"\n }\n\n // begin listening to events\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n /**\n * Setup a modal instance.\n * @param {Object} instance - The modal element\n */\n _setupModal(instance) {\n const modalId = instance.getAttribute(Selectors.DATA_MODAL)\n\n if (!modalId) {\n return console.error(Messages.NO_MODAL_ID_ERROR)\n }\n\n const modal = instance.querySelector(`[${Selectors.DATA_PARENT}='${modalId}']`)\n\n if (!modal) {\n return console.error(Messages.NO_MODAL_ERROR(modalId))\n }\n\n const modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL}='${modalId}']`)\n\n modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n modalWrapper.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n modal.setAttribute(Selectors.ARIA_MODAL, \"true\")\n modal.setAttribute(Selectors.ROLE, \"dialog\")\n }\n\n /**\n * Turn off event listeners and reset focus to last selected DOM node (button)\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n this._handleReturnFocus()\n this._handleScrollRestore()\n this.releaseFocus()\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n this._activeModal.removeAttribute(Selectors.TABINDEX)\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (iOSMobile) {\n this._activeModalOverlay.style.cursor = \"auto\"\n }\n\n // stop listening to events\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.removeEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeModalId = null\n }\n\n /**\n * Handles click event on the modal background to close it.\n * @param {Object} event - The event object\n */\n _handleOverlayClick(event) {\n if (event.target === this._activeModalOverlay) {\n this._handleClose(event)\n }\n }\n\n /**\n * Handles escape key event to close the current modal\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Returns focus to the last focused element before the modal was called.\n * @param {Object} button - The current modal's corresponding button.\n */\n _handleReturnFocus() {\n this._activeModalButton.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModalButton.focus()\n this._activeModalButton.removeAttribute(Selectors.TABINDEX)\n }\n\n /**\n * Restores scroll behavior to and \n */\n _handleScrollRestore() {\n document.body.classList.remove(Selectors.NO_SCROLL)\n document.documentElement.classList.remove(Selectors.NO_SCROLL)\n }\n\n /**\n * Prevents scroll behavior on and \n */\n _handleScrollStop() {\n document.body.classList.add(Selectors.NO_SCROLL)\n document.documentElement.classList.add(Selectors.NO_SCROLL)\n }\n}\n","import { iOSMobile } from \"./utils\"\r\n\r\nconst KeyCodes = {\r\n ESCAPE: 27,\r\n}\r\n\r\nconst Selectors = {\r\n DATA_TOOLTIP: \"data-tooltip\",\r\n DATA_VISIBLE: \"data-visible\",\r\n DATA_TARGET: \"data-target\",\r\n ROLE: \"role\",\r\n ARIA_DESCRIBEDBY: \"aria-describedby\",\r\n DROP_LEFT_CLASS: \"is-drop-left\",\r\n DROP_RIGHT_CLASS: \"is-drop-right\",\r\n}\r\n\r\nconst Events = {\r\n CLICK: \"click\",\r\n MOUSEOVER: \"mouseover\",\r\n MOUSEOUT: \"mouseout\",\r\n FOCUS: \"focus\",\r\n BLUR: \"blur\",\r\n KEYDOWN: \"keydown\",\r\n}\r\n\r\nconst Messages = {\r\n NO_ID_ERROR: \"Could not find your tooltip's id.\",\r\n NO_TRIGGER_ERROR: id => `Could not find a tooltip trigger with id of ${id}.`,\r\n NO_TOOLTIP_ERROR: id => `Could not find a tooltip with id of ${id}.`,\r\n}\r\n\r\n/**\r\n * Tooltip component class.\r\n * @module Tooltip\r\n */\r\nexport default class Tooltip {\r\n constructor() {\r\n // events\r\n this._render = this._render.bind(this)\r\n this._handleClose = this._handleClose.bind(this)\r\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\r\n\r\n // active tooltip\r\n this._activeTrigger = null\r\n this._activeTooltip = null\r\n\r\n // all tooltips\r\n this._allTooltips = []\r\n }\r\n\r\n // public\r\n\r\n /**\r\n * Begin listening to tooltips.\r\n */\r\n start() {\r\n this._allTooltips = document.querySelectorAll(`[${Selectors.DATA_TOOLTIP}]`)\r\n\r\n this._allTooltips.forEach(instance => {\r\n this._setupTooltip(instance)\r\n })\r\n }\r\n\r\n /**\r\n * Stop listening to tooltips.\r\n */\r\n stop() {\r\n this._allTooltips.forEach(instance => {\r\n const id = instance.getAttribute(Selectors.DATA_TOOLTIP)\r\n const trigger = instance.querySelector(this._getTrigger(id))\r\n\r\n trigger.removeEventListener(Events.MOUSEOVER, this._render)\r\n trigger.removeEventListener(Events.FOCUS, this._render)\r\n })\r\n }\r\n\r\n // private\r\n\r\n /**\r\n * Render a tooltip.\r\n * @param {Object} event - The event object\r\n */\r\n _render(event) {\r\n this._activeTrigger = event.target\r\n const tooltipId = this._activeTrigger.getAttribute(Selectors.DATA_TARGET)\r\n this._activeTooltip = document.getElementById(tooltipId)\r\n\r\n // align tooltip to its trigger\r\n // -> if the trigger is on the left or right side, use height\r\n // -> else use width\r\n if (this._isLeftOrRight()) {\r\n this._alignTooltip(\"height\")\r\n } else {\r\n this._alignTooltip(\"width\")\r\n }\r\n\r\n this._showTooltip()\r\n this._listenForClose()\r\n }\r\n\r\n /**\r\n * Close a tooltip.\r\n */\r\n _handleClose() {\r\n this._hideTooltip()\r\n this._listenForOpen()\r\n\r\n this._activeTrigger = null\r\n this._activeTooltip = null\r\n }\r\n\r\n /**\r\n * Add data-visible attribute to currently active tooltip.\r\n */\r\n _showTooltip() {\r\n this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, \"true\")\r\n }\r\n\r\n /**\r\n * Remove data-visible attribute from currently active tooltip.\r\n */\r\n _hideTooltip() {\r\n this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, \"false\")\r\n }\r\n\r\n /**\r\n * Stop listening for render events, and start listening to close events.\r\n */\r\n _listenForClose() {\r\n this._activeTrigger.removeEventListener(Events.MOUSEOVER, this._render)\r\n this._activeTrigger.removeEventListener(Events.FOCUS, this._render)\r\n this._activeTrigger.addEventListener(Events.MOUSEOUT, this._handleClose)\r\n this._activeTrigger.addEventListener(Events.BLUR, this._handleClose)\r\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\r\n\r\n if (iOSMobile) {\r\n document.body.style.cursor = \"pointer\"\r\n }\r\n }\r\n\r\n /**\r\n * Close a tooltip with the escape key.\r\n * @param {Object} event - The event object\r\n */\r\n _handleEscapeKeyPress(event) {\r\n if (event.which === KeyCodes.ESCAPE) {\r\n this._handleClose()\r\n }\r\n }\r\n\r\n /**\r\n * Stop listening to close events, start listening for render events.\r\n */\r\n _listenForOpen() {\r\n this._activeTrigger.removeEventListener(Events.MOUSEOUT, this._handleClose)\r\n this._activeTrigger.removeEventListener(Events.BLUR, this._handleClose)\r\n this._activeTrigger.addEventListener(Events.MOUSEOVER, this._render)\r\n this._activeTrigger.addEventListener(Events.FOCUS, this._render)\r\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\r\n\r\n if (iOSMobile) {\r\n document.body.style.cursor = \"auto\"\r\n }\r\n }\r\n\r\n /**\r\n * Aligns a tooltip vertically or horizontally.\r\n * @param {String} property - String specifying \"height\" or \"width\"\r\n */\r\n _alignTooltip(property) {\r\n const triggerLength = this._getComputedLength(this._activeTrigger, property)\r\n const tooltipLength = this._getComputedLength(this._activeTooltip, property)\r\n const triggerIsLongest = triggerLength > tooltipLength\r\n\r\n const offset = triggerIsLongest\r\n ? (triggerLength - tooltipLength) / 2\r\n : (tooltipLength - triggerLength) / -2\r\n\r\n if (property === \"height\") {\r\n this._activeTooltip.style.top = `${offset}px`\r\n } else {\r\n this._activeTooltip.style.left = `${offset}px`\r\n }\r\n }\r\n\r\n /**\r\n * Setup a tooltip and trigger with appropriate event listeners and attributes.\r\n * @param {Object} instance - A tooltip instance\r\n */\r\n _setupTooltip(instance) {\r\n const id = instance.getAttribute(Selectors.DATA_TOOLTIP)\r\n const trigger = instance.querySelector(this._getTrigger(id))\r\n const tooltip = document.getElementById(id)\r\n\r\n if (!id) {\r\n return console.error(Messages.NO_ID_ERROR)\r\n }\r\n\r\n if (!trigger) {\r\n return console.error(Messages.NO_TRIGGER_ERROR(id))\r\n }\r\n\r\n if (!tooltip) {\r\n return console.error(Messages.NO_TOOLTIP_ERROR(id))\r\n }\r\n\r\n trigger.setAttribute(Selectors.ARIA_DESCRIBEDBY, id)\r\n tooltip.setAttribute(Selectors.ROLE, \"tooltip\")\r\n\r\n trigger.addEventListener(Events.MOUSEOVER, this._render)\r\n trigger.addEventListener(Events.FOCUS, this._render)\r\n }\r\n\r\n /**\r\n * Get an attribute selector string.\r\n * @param {String} id - A unique tooltip id\r\n * @return {String}\r\n */\r\n _getTrigger(id) {\r\n return `[${Selectors.DATA_TARGET}=\"${id}\"]`\r\n }\r\n\r\n /**\r\n * Render a tooltip.\r\n * @param {Object} element - A tooltip element\r\n * @param {String} property - The \"height\" or \"width\" property.\r\n * @return {Number}\r\n */\r\n _getComputedLength(element, property) {\r\n return parseInt(window.getComputedStyle(element)[property].slice(0, -2))\r\n }\r\n\r\n /**\r\n * Determine if a tooltip is rendering on the left or right.\r\n * @return {Boolean}\r\n */\r\n _isLeftOrRight() {\r\n const classes = this._activeTooltip.classList\r\n return (\r\n classes.contains(Selectors.DROP_LEFT_CLASS) || classes.contains(Selectors.DROP_RIGHT_CLASS)\r\n )\r\n }\r\n}\r\n","import _Accordion from \"./accordion\"\nimport _Dropdown from \"./dropdown\"\nimport _Modals from \"./modal\"\nimport _Tooltips from \"./tooltip\"\nimport _Utils from \"./utils\"\n\nexport const Accordions = new _Accordion()\nexport const Dropdowns = new _Dropdown()\nexport const Modals = new _Modals()\nexport const Tooltips = new _Tooltips()\nexport const Utils = new _Utils()\n\nconst Undernet = {\n // Components\n Modals,\n Accordions,\n Dropdowns,\n Tooltips,\n\n // Utils\n Utils,\n}\n\nUndernet.start = () => {\n // Components\n Undernet.Modals.start()\n Undernet.Accordions.start()\n Undernet.Dropdowns.start()\n Undernet.Tooltips.start()\n\n // Utils\n Undernet.Utils.enableFocusOutline()\n}\n\nUndernet.stop = () => {\n // Components\n Undernet.Modals.stop()\n Undernet.Accordions.stop()\n Undernet.Dropdowns.stop()\n\n // Utils\n Undernet.Utils.disableFocusOutline()\n}\n\nexport default Undernet\n","import Undernet from \"./index\"\n\nwindow.Undernet = Undernet\nexport { default as Undernet, Modals, Accordions, Dropdowns, Tooltips, Utils } from \"./index\"\n"],"names":["KeyCodes","SHIFT","TAB","ARROW_UP","ARROW_DOWN","Selectors","NOT_VISUALLY_HIDDEN","FOCUSABLE_TAGS","KEYBOARD_CLASS","Events","KEYDOWN","CLICK","nodeListToArray","nodeList","Array","apply","document","querySelectorAll","getFocusableElements","container","focusables","map","element","join","iOSMobile","test","navigator","userAgent","Utils","_listenForKeyboard","bind","_listenForClick","_handleFocusTrapWithTab","_handleFocusTrapWithArrows","_focusContainerSelector","_focusableChildren","_focusableFirstChild","_focusableLastChild","_listeningForKeydown","_trapFocusWithArrows","options","length","useArrows","addEventListener","removeEventListener","event","body","classList","add","remove","containerElement","querySelector","containerActive","activeElement","firstActive","lastActive","tabKey","which","shiftKey","preventDefault","focus","arrowUp","arrowDown","_focusNextChild","_focusLastChild","i","DATA_ACCORDION","DATA_ACCORDION_ROW","DATA_VISIBLE","DATA_TARGET","DATA_TOGGLE_MULTIPLE","DATA_PARENT","ARIA_EXPANDED","ARIA_CONTROLS","ARIA_HIDDEN","ARIA_LABELLEDBY","TABINDEX","Messages","NO_VISIBLE_ERROR","id","NO_ROW_ERROR","NO_HEADER_ID_ERROR","NO_PARENT_ERROR","NO_CONTENT_ERROR","Accordion","_render","_accordionButtons","_accordionContentsAttr","_accordionContents","_activeContainer","_activeButton","_activeAccordionRowId","_activeRowAttr","_activeRow","_activeContainerId","_activeContainerAttr","_activeContent","_activeButtonExpandState","_activeContentHiddenState","_headerLevels","accordionButtonSelector","_getPossibleAccordionButtonAttrs","forEach","button","_setupAccordion","target","getAttribute","_getAccordionRowAttr","console","error","NO_ACCORDION_ERROR","getElementById","accordionButtonState","_closeAllIfToggleable","_toggleSelectedAccordion","buttonId","buttonContent","accordionRowAttr","accordionRow","buttonHeaderAttr","_getPossibleAccordionHeaderAttrs","buttonHeader","buttonContentChildren","setAttribute","contentShouldExpand","style","maxHeight","scrollHeight","attr","num","hasAttribute","allContentAttr","allRows","allContent","allButtons","content","_toggleAttributeInCollection","activeContentBlock","value","elements","attributeName","currentValue","newValue","ESCAPE","DATA_DROPDOWN","ARIA_HASPOPUP","ROLE","NO_DROPDOWN_ERROR","NO_MENU_ERROR","Dropdown","_handleFirstTabClose","_handleLastTabClose","_renderWithKeys","_handleClose","_handleEscapeKeyPress","_handleOffMenuClick","_activeDropdownButton","_activeDropdown","_activeDropdownMenu","_activeDropdownLinks","_allowFocusReturn","_activeDropdownId","_activeDropdownAttr","_activeDropdownMenuId","_dropdownButtons","_dropdowns","_dropdownContainerAttr","_dropdownTargetAttr","dropdown","_setupDropdown","key","stopPropagation","cursor","_getDropdownLinks","firstDropdownLink","lastDropdownLink","link","captureFocus","releaseFocus","_handleReturnFocus","TAB_INDEX","removeAttribute","dropdownId","dropdownAttr","dropdownMenuItemsAttr","dropdownMenu","dropdownButton","dropdownMenuListItems","item","dropdownMenuButtons","DATA_MODAL","DATA_MODAL_BUTTON","DATA_CLOSE","ARIA_MODAL","NO_SCROLL","RESIZE","NO_BUTTON_ID_ERROR","NO_MODAL_ID_ERROR","NO_MODAL_ERROR","Modal","_handleOverlayClick","_modals","_modalButtons","_activeModalButton","_activeModalOverlay","_activeModal","_activeModalId","_activeModalOverlayAttr","_activeModalSelector","_activeModalCloseButtons","_modalContainerAttr","instance","_setupModal","_handleScrollStop","scrollTop","modalId","modal","modalWrapper","_handleScrollRestore","documentElement","DATA_TOOLTIP","ARIA_DESCRIBEDBY","DROP_LEFT_CLASS","DROP_RIGHT_CLASS","MOUSEOVER","MOUSEOUT","FOCUS","BLUR","NO_ID_ERROR","NO_TRIGGER_ERROR","NO_TOOLTIP_ERROR","Tooltip","_activeTrigger","_activeTooltip","_allTooltips","_setupTooltip","trigger","_getTrigger","tooltipId","_isLeftOrRight","_alignTooltip","_showTooltip","_listenForClose","_hideTooltip","_listenForOpen","property","triggerLength","_getComputedLength","tooltipLength","triggerIsLongest","offset","top","left","tooltip","parseInt","window","getComputedStyle","slice","classes","contains","Accordions","_Accordion","Dropdowns","_Dropdown","Modals","_Modals","Tooltips","_Tooltips","_Utils","Undernet","start","enableFocusOutline","stop","disableFocusOutline"],"mappings":"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"} \ No newline at end of file diff --git a/dist/undernet.bundle.min.js b/dist/undernet.bundle.min.js index cf5bc621..2a514010 100644 --- a/dist/undernet.bundle.min.js +++ b/dist/undernet.bundle.min.js @@ -1,7 +1,7 @@ /*! * @license MIT (https://github.com/geotrev/undernet/blob/master/LICENSE) - * Undernet v3.3.7 (https://undernet.io) + * Undernet v4.0.0 (https://undernet.io) * Copyright 2017-2019 George Treviranus */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).undernet={})}(this,function(t){"use strict";function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var o=0;o [").concat(K,"] > h").concat(t," [").concat(W,"]")}).join(", ")}},{key:"_getPossibleAccordionHeaderAttrs",value:function(e){return this._headerLevels.map(function(t){return"".concat(e," > h").concat(t)}).join(", ")}},{key:"_getAccordionRowAttr",value:function(t){return"[".concat(K,"='").concat(t,"']")}},{key:"_closeAllIfToggleable",value:function(){var e=this;if(!this._activeContainer.hasAttribute(x)){var t="".concat(this._activeContainerAttr," [").concat(X,"]"),o=document.querySelectorAll("".concat(this._activeContainerAttr," [").concat(q,"]")),n=document.querySelectorAll(t),i=this._getPossibleAccordionButtonAttrs(this._activeContainerAttr),r=document.querySelectorAll(i);n.forEach(function(t){t!==e._activeContent&&(t.style.maxHeight=null)}),b(t).forEach(function(t){t.setAttribute(Y,"-1")}),this._toggleAttributeInCollection(o,q,"true","false"),this._toggleAttributeInCollection(r,j,"true","false"),this._toggleAttributeInCollection(n,X,"false","true")}}},{key:"_toggleSelectedAccordion",value:function(){var o=this;this._activeRow.setAttribute(q,this._activeButtonExpandState),this._activeButton.setAttribute(j,this._activeButtonExpandState),this._activeContent.setAttribute(X,this._activeContentHiddenState);var t="#".concat(this._activeAccordionRowId);b(t).forEach(function(t){var e="true"===o._activeButtonExpandState?"0":"-1";t.setAttribute(Y,e)}),this._activeContent.style.maxHeight?this._activeContent.style.maxHeight=null:this._activeContent.style.maxHeight="".concat(this._activeContent.scrollHeight,"px")}},{key:"_toggleAttributeInCollection",value:function(t,e,o,n){t.forEach(function(t){t.hasAttribute(e,o)&&t.setAttribute(e,n)})}}]),e}(),Q=9,Z=16,$=27,tt=38,et=40,ot={DATA_DROPDOWN:"data-dropdown",DATA_TARGET:"data-target",DATA_PARENT:"data-parent",DATA_VISIBLE:"data-visible",TABINDEX:"tabindex",ARIA_HASPOPUP:"aria-haspopup",ARIA_CONTROLS:"aria-controls",ARIA_LABELLEDBY:"aria-labelledby",ARIA_EXPANDED:"aria-expanded",ROLE:"role"},nt="keydown",it="click",rt="Could not find dropdown button's [data-parent] attribute.",at=function(t){return"Could not find dropdown container associated with ".concat(t,".")},st=function(t){return"Could not find menu associated with ".concat(t,".")},ct=function(t){function e(){var t;return o(this,e),(t=l(this,a(e).call(this)))._iosMobile=/(iphone|ipod)/i.test(navigator.userAgent),t._render=t._render.bind(c(t)),t._handleFirstTabClose=t._handleFirstTabClose.bind(c(t)),t._handleLastTabClose=t._handleLastTabClose.bind(c(t)),t._renderWithKeys=t._renderWithKeys.bind(c(t)),t._handleClose=t._handleClose.bind(c(t)),t._handleEscapeKeyPress=t._handleEscapeKeyPress.bind(c(t)),t._handleOffMenuClick=t._handleOffMenuClick.bind(c(t)),t._activeDropdownButton=null,t._activeDropdown=null,t._activeDropdownMenu=null,t._activeDropdownLinks=[],t._allowFocusReturn=!0,t._activeDropdownId="",t._activeDropdownAttr="",t._activeDropdownMenuId="",t._dropdownButtons=[],t._dropdowns=[],t._dropdownContainerAttr="[".concat(ot.DATA_DROPDOWN,"]"),t._dropdownTargetAttr="[".concat(ot.DATA_TARGET,"]"),t}return r(e,p),i(e,[{key:"start",value:function(){var e=this;this._dropdowns=document.querySelectorAll("".concat(this._dropdownContainerAttr)),this._dropdownButtons=document.querySelectorAll("".concat(this._dropdownContainerAttr," > ").concat(this._dropdownTargetAttr)),this._dropdowns.length&&this._dropdowns.forEach(function(t){return e._setupDropdown(t)}),this._dropdownButtons.forEach(function(t){t.addEventListener(it,e._render),t.addEventListener(nt,e._renderWithKeys)})}},{key:"stop",value:function(){var e=this;this._dropdownButtons.forEach(function(t){t.removeEventListener(it,e._render),t.removeEventListener(nt,e._renderWithKeys)})}},{key:"_render",value:function(t,e){var o=this;return t.preventDefault(),t.stopPropagation(),this._activeDropdownButton&&(this._allowFocusReturn=!1,this._handleClose(t),this._allowFocusReturn=!0),this._activeDropdownButton=t.target,this._activeDropdownButton.getAttribute(ot.DATA_PARENT)?(this._activeDropdownId=this._activeDropdownButton.getAttribute(ot.DATA_PARENT),this._activeDropdownAttr="[".concat(ot.DATA_DROPDOWN,'="').concat(this._activeDropdownId,'"]'),document.querySelector(this._activeDropdownAttr)?(this._activeDropdown=document.querySelector(this._activeDropdownAttr),this._activeDropdownMenuId=this._activeDropdownButton.getAttribute(ot.DATA_TARGET),this._activeDropdownMenu=document.getElementById(this._activeDropdownMenuId),this._activeDropdownButton.setAttribute(ot.ARIA_EXPANDED,"true"),this._activeDropdown.setAttribute(ot.DATA_VISIBLE,"true"),this._activeDropdownButton.removeEventListener(it,this._render),this._activeDropdownButton.addEventListener(it,this._handleClose),document.addEventListener(nt,this._handleEscapeKeyPress),document.addEventListener(it,this._handleOffMenuClick),this._iosMobile&&(document.body.style.cursor="pointer"),this._activeDropdownLinks=this._getDropdownLinks(this._activeDropdownAttr),this.firstDropdownLink=this._activeDropdownLinks[0],this.lastDropdownLink=this._activeDropdownLinks[this._activeDropdownLinks.length-1],this.firstDropdownLink.addEventListener(nt,this._handleFirstTabClose),this.lastDropdownLink.addEventListener(nt,this._handleLastTabClose),e&&e===tt?this.lastDropdownLink.focus():this.firstDropdownLink.focus(),this._activeDropdownLinks.forEach(function(t){t.setAttribute(ot.TABINDEX,"0"),t.addEventListener(it,o._handleClose)}),void this.captureFocus("".concat(this._activeDropdownAttr," > ul"),{useArrows:!0})):console.error(at(this._activeDropdownAttr))):console.error(rt)}},{key:"_handleFirstTabClose",value:function(t){var e=t.which===Z||t.shiftKey,o=t.which===Q;e&&o&&this._handleClose(t)}},{key:"_handleLastTabClose",value:function(t){var e=t.which===Z||t.shiftKey;t.which===Q&&!e&&this._handleClose(t)}},{key:"_renderWithKeys",value:function(t){t.which!==tt&&t.which!==et||this._render(t,t.which)}},{key:"_handleClose",value:function(t){var e=this;t.preventDefault(),this.releaseFocus(),this._activeDropdownButton.setAttribute(ot.ARIA_EXPANDED,"false"),this._activeDropdown.setAttribute(ot.DATA_VISIBLE,"false"),this._activeDropdownLinks.forEach(function(t){t.setAttribute(ot.TABINDEX,"-1"),t.removeEventListener(it,e._handleClose)}),this._activeDropdownButton.removeEventListener(it,this._handleClose),this._activeDropdownButton.addEventListener(it,this._render),document.removeEventListener(nt,this._handleEscapeKeyPress),this._iosMobile&&(document.body.style.cursor="auto"),document.removeEventListener(it,this._handleOffMenuClick),this._allowFocusReturn&&this._handleReturnFocus(),this._activeDropdownButton=null}},{key:"_handleEscapeKeyPress",value:function(t){t.which===$&&this._handleClose(t)}},{key:"_handleOffMenuClick",value:function(t){t.target!==this._activeDropdownButton&&t.target!==this._activeDropdownMenu&&this._handleClose(t)}},{key:"_handleReturnFocus",value:function(){this._activeDropdownButton.setAttribute(ot.TAB_INDEX,"-1"),this._activeDropdownButton.focus(),this._activeDropdownButton.removeAttribute(ot.TAB_INDEX)}},{key:"_getDropdownLinks",value:function(t){return document.querySelectorAll("".concat(t," > ul > li > a, ").concat(t," > ul > li > button"))}},{key:"_setupDropdown",value:function(t){var e=t.getAttribute(ot.DATA_DROPDOWN),o="[".concat(ot.DATA_DROPDOWN,'="').concat(e,'"]'),n="".concat(o," > ul > li");if(!document.querySelector("".concat(o," > ul")))return console.error(st(o));var i=document.querySelector("".concat(o," > ul")),r=document.querySelector("".concat(o," > ").concat(this._dropdownTargetAttr));r.setAttribute(ot.ARIA_CONTROLS,i.id),r.setAttribute(ot.ARIA_HASPOPUP,"true"),r.setAttribute(ot.ARIA_EXPANDED,"false"),i.setAttribute(ot.ARIA_LABELLEDBY,r.id),document.querySelectorAll(n).forEach(function(t){return t.setAttribute(ot.ROLE,"none")}),this._getDropdownLinks(o).forEach(function(t){t.setAttribute(ot.ROLE,"menuitem"),t.setAttribute(ot.TABINDEX,"-1")})}}]),e}(),lt=new e,dt=new J,ut=new ct,ht=new p,Undernet={Modals:lt,Accordions:dt,Dropdowns:ut,Utils:ht,start:function(){Undernet.Modals.start(),Undernet.Accordions.start(),Undernet.Dropdowns.start(),Undernet.Utils.enableFocusOutline()},stop:function(){Undernet.Modals.stop(),Undernet.Accordions.stop(),Undernet.Dropdowns.stop(),Undernet.Utils.disableFocusOutline()}};window.Undernet=Undernet,t.default=Undernet,t.Modals=lt,t.Accordions=dt,t.Dropdowns=ut,t.Utils=ht,Object.defineProperty(t,"__esModule",{value:!0})}); +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).undernet={})}(this,function(t){"use strict";function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t,e){for(var o=0;o [").concat(w,"] > h").concat(t," [").concat(g,"]")}).join(", ")}},{key:"_getPossibleAccordionHeaderAttrs",value:function(e){return this._headerLevels.map(function(t){return"".concat(e," > h").concat(t)}).join(", ")}},{key:"_getAccordionRowAttr",value:function(t){return"[".concat(w,"='").concat(t,"']")}},{key:"_closeAllIfToggleable",value:function(){var e=this;if(!this._activeContainer.hasAttribute(m)){var t="".concat(this._activeContainerAttr," [").concat(k,"]"),o=p("".concat(this._activeContainerAttr," [").concat(C,"]")),n=p(t),i=this._getPossibleAccordionButtonAttrs(this._activeContainerAttr),r=p(i);n.forEach(function(t){t!==e._activeContent&&(t.style.maxHeight=null)}),A(t).forEach(function(t){t.setAttribute(O,"-1")}),this._toggleAttributeInCollection(o,C,"true","false"),this._toggleAttributeInCollection(r,L,"true","false"),this._toggleAttributeInCollection(n,k,"false","true")}}},{key:"_toggleSelectedAccordion",value:function(){var o=this;this._activeRow.setAttribute(C,this._activeButtonExpandState),this._activeButton.setAttribute(L,this._activeButtonExpandState),this._activeContent.setAttribute(k,this._activeContentHiddenState);var t="#".concat(this._activeAccordionRowId);A(t).forEach(function(t){var e="true"===o._activeButtonExpandState?"0":"-1";t.setAttribute(O,e)}),this._activeContent.style.maxHeight?this._activeContent.style.maxHeight=null:this._activeContent.style.maxHeight="".concat(this._activeContent.scrollHeight,"px")}},{key:"_toggleAttributeInCollection",value:function(t,e,o,n){t.forEach(function(t){t.hasAttribute(e,o)&&t.setAttribute(e,n)})}}]),e}(),S=9,M=16,P=27,N=38,K=40,x={DATA_DROPDOWN:"data-dropdown",DATA_TARGET:"data-target",DATA_PARENT:"data-parent",DATA_VISIBLE:"data-visible",TABINDEX:"tabindex",ARIA_HASPOPUP:"aria-haspopup",ARIA_CONTROLS:"aria-controls",ARIA_LABELLEDBY:"aria-labelledby",ARIA_EXPANDED:"aria-expanded",ROLE:"role"},W="keydown",H="click",q="Could not find dropdown button's [data-parent] attribute.",j=function(t){return"Could not find dropdown container associated with ".concat(t,".")},U=function(t){return"Could not find menu associated with ".concat(t,".")},X=function(t){function e(){var t;return o(this,e),(t=l(this,a(e).call(this)))._render=t._render.bind(c(t)),t._handleFirstTabClose=t._handleFirstTabClose.bind(c(t)),t._handleLastTabClose=t._handleLastTabClose.bind(c(t)),t._renderWithKeys=t._renderWithKeys.bind(c(t)),t._handleClose=t._handleClose.bind(c(t)),t._handleEscapeKeyPress=t._handleEscapeKeyPress.bind(c(t)),t._handleOffMenuClick=t._handleOffMenuClick.bind(c(t)),t._activeDropdownButton=null,t._activeDropdown=null,t._activeDropdownMenu=null,t._activeDropdownLinks=[],t._allowFocusReturn=!0,t._activeDropdownId="",t._activeDropdownAttr="",t._activeDropdownMenuId="",t._dropdownButtons=[],t._dropdowns=[],t._dropdownContainerAttr="[".concat(x.DATA_DROPDOWN,"]"),t._dropdownTargetAttr="[".concat(x.DATA_TARGET,"]"),t}return r(e,y),i(e,[{key:"start",value:function(){var e=this;this._dropdowns=p("".concat(this._dropdownContainerAttr)),this._dropdownButtons=p("".concat(this._dropdownContainerAttr," > ").concat(this._dropdownTargetAttr)),this._dropdowns.length&&this._dropdowns.forEach(function(t){return e._setupDropdown(t)}),this._dropdownButtons.forEach(function(t){t.addEventListener(H,e._render),t.addEventListener(W,e._renderWithKeys)})}},{key:"stop",value:function(){var e=this;this._dropdownButtons.forEach(function(t){t.removeEventListener(H,e._render),t.removeEventListener(W,e._renderWithKeys)})}},{key:"_render",value:function(t,e){var o=this;return t.preventDefault(),t.stopPropagation(),this._activeDropdownButton&&(this._allowFocusReturn=!1,this._handleClose(t),this._allowFocusReturn=!0),this._activeDropdownButton=t.target,this._activeDropdownId=this._activeDropdownButton.getAttribute(x.DATA_PARENT),this._activeDropdownId?(this._activeDropdownAttr="[".concat(x.DATA_DROPDOWN,'="').concat(this._activeDropdownId,'"]'),this._activeDropdown=document.querySelector(this._activeDropdownAttr),this._activeDropdown?(this._activeDropdownMenuId=this._activeDropdownButton.getAttribute(x.DATA_TARGET),this._activeDropdownMenu=document.getElementById(this._activeDropdownMenuId),this._activeDropdownButton.setAttribute(x.ARIA_EXPANDED,"true"),this._activeDropdown.setAttribute(x.DATA_VISIBLE,"true"),this._activeDropdownButton.removeEventListener(H,this._render),this._activeDropdownButton.addEventListener(H,this._handleClose),document.addEventListener(W,this._handleEscapeKeyPress),document.addEventListener(H,this._handleOffMenuClick),b&&(document.body.style.cursor="pointer"),this._activeDropdownLinks=this._getDropdownLinks(this._activeDropdownAttr),this.firstDropdownLink=this._activeDropdownLinks[0],this.lastDropdownLink=this._activeDropdownLinks[this._activeDropdownLinks.length-1],this.firstDropdownLink.addEventListener(W,this._handleFirstTabClose),this.lastDropdownLink.addEventListener(W,this._handleLastTabClose),e&&e===N?this.lastDropdownLink.focus():this.firstDropdownLink.focus(),this._activeDropdownLinks.forEach(function(t){t.setAttribute(x.TABINDEX,"0"),t.addEventListener(H,o._handleClose)}),void this.captureFocus("".concat(this._activeDropdownAttr," > ul"),{useArrows:!0})):console.error(j(this._activeDropdownAttr))):console.error(q)}},{key:"_handleFirstTabClose",value:function(t){var e=t.which===M||t.shiftKey,o=t.which===S;e&&o&&this._handleClose(t)}},{key:"_handleLastTabClose",value:function(t){var e=t.which===M||t.shiftKey;t.which===S&&!e&&this._handleClose(t)}},{key:"_renderWithKeys",value:function(t){t.which!==N&&t.which!==K||this._render(t,t.which)}},{key:"_handleClose",value:function(t){var e=this;t.preventDefault(),this.releaseFocus(),this._activeDropdownButton.setAttribute(x.ARIA_EXPANDED,"false"),this._activeDropdown.setAttribute(x.DATA_VISIBLE,"false"),this._activeDropdownLinks.forEach(function(t){t.setAttribute(x.TABINDEX,"-1"),t.removeEventListener(H,e._handleClose)}),this._activeDropdownButton.removeEventListener(H,this._handleClose),this._activeDropdownButton.addEventListener(H,this._render),document.removeEventListener(W,this._handleEscapeKeyPress),b&&(document.body.style.cursor="auto"),document.removeEventListener(H,this._handleOffMenuClick),this._allowFocusReturn&&this._handleReturnFocus(),this._activeDropdownButton=null,this._activeDropdownId=null,this._activeDropdown=null}},{key:"_handleEscapeKeyPress",value:function(t){t.which===P&&this._handleClose(t)}},{key:"_handleOffMenuClick",value:function(t){t.target!==this._activeDropdownButton&&t.target!==this._activeDropdownMenu&&this._handleClose(t)}},{key:"_handleReturnFocus",value:function(){this._activeDropdownButton.setAttribute(x.TAB_INDEX,"-1"),this._activeDropdownButton.focus(),this._activeDropdownButton.removeAttribute(x.TAB_INDEX)}},{key:"_getDropdownLinks",value:function(t){return p("".concat(t," > ul > li > a, ").concat(t," > ul > li > button"))}},{key:"_setupDropdown",value:function(t){var e=t.getAttribute(x.DATA_DROPDOWN),o="[".concat(x.DATA_DROPDOWN,'="').concat(e,'"]'),n="".concat(o," > ul > li"),i=document.querySelector("".concat(o," > ul"));if(!i)return console.error(U(o));var r=document.querySelector("".concat(o," > ").concat(this._dropdownTargetAttr));r.setAttribute(x.ARIA_CONTROLS,i.id),r.setAttribute(x.ARIA_HASPOPUP,"true"),r.setAttribute(x.ARIA_EXPANDED,"false"),i.setAttribute(x.ARIA_LABELLEDBY,r.id),p(n).forEach(function(t){return t.setAttribute(x.ROLE,"none")}),this._getDropdownLinks(o).forEach(function(t){t.setAttribute(x.ROLE,"menuitem"),t.setAttribute(x.TABINDEX,"-1")})}}]),e}(),V=27,Y="data-modal",G="data-modal-button",z="data-visible",J="data-close",Q="data-parent",Z="aria-hidden",$="aria-modal",tt="role",et="tabindex",ot="no-scroll",nt="keydown",it="click",rt="Could not find an id on your [data-modal-button] element. Modal can't be opened.",at="Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.",st=function(t){return"Could not find a [data-parent='".concat(t,"'] attribute within your [data-modal='").concat(t,"'] element.")},ct=function(t){function e(){var t;return o(this,e),(t=l(this,a(e).call(this)))._render=t._render.bind(c(t)),t._handleClose=t._handleClose.bind(c(t)),t._handleOverlayClick=t._handleOverlayClick.bind(c(t)),t._handleEscapeKeyPress=t._handleEscapeKeyPress.bind(c(t)),t._modals=[],t._modalButtons=[],t._activeModalButton={},t._activeModalOverlay={},t._activeModal={},t._activeModalId="",t._activeModalOverlayAttr="",t._activeModalSelector="",t._activeModalCloseButtons=[],t._modalContainerAttr="[".concat(Y,"]"),t}return r(e,y),i(e,[{key:"start",value:function(){var e=this;this._modals=p(this._modalContainerAttr),this._modalButtons=p("[".concat(G,"]")),A(this._modalContainerAttr).forEach(function(t){t.setAttribute(et,"-1")}),this._modals.length&&this._modals.forEach(function(t){e._setupModal(t)}),this._modalButtons.length&&this._modalButtons.forEach(function(t){t.addEventListener(it,e._render)})}},{key:"stop",value:function(){var e=this;this._modalButtons.forEach(function(t){t.removeEventListener(it,e._render)})}},{key:"_render",value:function(t){var e=this;if(t.preventDefault(),this._activeModalButton=t.target,this._activeModalId=this._activeModalButton.getAttribute(G),!this._activeModalId)return console.error(rt);this._activeModalOverlay=document.querySelector("[".concat(Y,'="').concat(this._activeModalId,'"]')),this._activeModalSelector="[".concat(Q,"='").concat(this._activeModalId,"']"),this._activeModal=this._activeModalOverlay.querySelector(this._activeModalSelector),this._activeModalCloseButtons=p("".concat(this._activeModalSelector," [").concat(J,"]")),A(this._activeModalSelector).forEach(function(t){t.setAttribute(et,"0")}),this._handleScrollStop(),this.captureFocus(this._activeModalSelector),this._activeModalOverlay.setAttribute(Z,"false"),this._activeModalOverlay.setAttribute(z,"true"),this._activeModal.setAttribute(et,"-1"),this._activeModal.focus(),this._activeModalOverlay.scrollTop=0,b&&(this._activeModalOverlay.style.cursor="pointer"),document.addEventListener(nt,this._handleEscapeKeyPress),document.addEventListener(it,this._handleOverlayClick),this._activeModalCloseButtons.forEach(function(t){t.addEventListener(it,e._handleClose)})}},{key:"_setupModal",value:function(t){var e=t.getAttribute(Y);if(!e)return console.error(at);var o=t.querySelector("[".concat(Q,"='").concat(e,"']"));if(!o)return console.error(st(e));var n=document.querySelector("[".concat(Y,"='").concat(e,"']"));n.setAttribute(Z,"true"),n.setAttribute(z,"false"),o.setAttribute($,"true"),o.setAttribute(tt,"dialog")}},{key:"_handleClose",value:function(t){var e=this;t.preventDefault(),this._activeModalOverlay.setAttribute(z,"false"),this._handleReturnFocus(),this._handleScrollRestore(),this.releaseFocus(),this._activeModalOverlay.setAttribute(Z,"true"),this._activeModal.removeAttribute(et),A(this._activeModalSelector).forEach(function(t){t.setAttribute(et,"-1")}),b&&(this._activeModalOverlay.style.cursor="auto"),document.removeEventListener(nt,this._handleEscapeKeyPress),document.removeEventListener(it,this._handleOverlayClick),this._activeModalCloseButtons.forEach(function(t){t.removeEventListener(it,e._handleClose)}),this._activeModalId=null}},{key:"_handleOverlayClick",value:function(t){t.target===this._activeModalOverlay&&this._handleClose(t)}},{key:"_handleEscapeKeyPress",value:function(t){t.which===V&&this._handleClose(t)}},{key:"_handleReturnFocus",value:function(){this._activeModalButton.setAttribute(et,"-1"),this._activeModalButton.focus(),this._activeModalButton.removeAttribute(et)}},{key:"_handleScrollRestore",value:function(){document.body.classList.remove(ot),document.documentElement.classList.remove(ot)}},{key:"_handleScrollStop",value:function(){document.body.classList.add(ot),document.documentElement.classList.add(ot)}}]),e}(),lt=27,dt="data-tooltip",ut="data-visible",ht="data-target",_t="role",vt="aria-describedby",ft="is-drop-left",pt="is-drop-right",At="mouseover",bt="mouseout",yt="focus",Et="blur",wt="keydown",Ct="Could not find your tooltip's id.",gt=function(t){return"Could not find a tooltip trigger with id of ".concat(t,".")},mt=function(t){return"Could not find a tooltip with id of ".concat(t,".")},Dt=function(){function t(){o(this,t),this._render=this._render.bind(this),this._handleClose=this._handleClose.bind(this),this._handleEscapeKeyPress=this._handleEscapeKeyPress.bind(this),this._activeTrigger=null,this._activeTooltip=null,this._allTooltips=[]}return i(t,[{key:"start",value:function(){var e=this;this._allTooltips=document.querySelectorAll("[".concat(dt,"]")),this._allTooltips.forEach(function(t){e._setupTooltip(t)})}},{key:"stop",value:function(){var n=this;this._allTooltips.forEach(function(t){var e=t.getAttribute(dt),o=t.querySelector(n._getTrigger(e));o.removeEventListener(At,n._render),o.removeEventListener(yt,n._render)})}},{key:"_render",value:function(t){this._activeTrigger=t.target;var e=this._activeTrigger.getAttribute(ht);this._activeTooltip=document.getElementById(e),this._isLeftOrRight()?this._alignTooltip("height"):this._alignTooltip("width"),this._showTooltip(),this._listenForClose()}},{key:"_handleClose",value:function(){this._hideTooltip(),this._listenForOpen(),this._activeTrigger=null,this._activeTooltip=null}},{key:"_showTooltip",value:function(){this._activeTooltip.setAttribute(ut,"true")}},{key:"_hideTooltip",value:function(){this._activeTooltip.setAttribute(ut,"false")}},{key:"_listenForClose",value:function(){this._activeTrigger.removeEventListener(At,this._render),this._activeTrigger.removeEventListener(yt,this._render),this._activeTrigger.addEventListener(bt,this._handleClose),this._activeTrigger.addEventListener(Et,this._handleClose),document.addEventListener(wt,this._handleEscapeKeyPress),b&&(document.body.style.cursor="pointer")}},{key:"_handleEscapeKeyPress",value:function(t){t.which===lt&&this._handleClose()}},{key:"_listenForOpen",value:function(){this._activeTrigger.removeEventListener(bt,this._handleClose),this._activeTrigger.removeEventListener(Et,this._handleClose),this._activeTrigger.addEventListener(At,this._render),this._activeTrigger.addEventListener(yt,this._render),document.removeEventListener(wt,this._handleEscapeKeyPress),b&&(document.body.style.cursor="auto")}},{key:"_alignTooltip",value:function(t){var e=this._getComputedLength(this._activeTrigger,t),o=this._getComputedLength(this._activeTooltip,t),n=o {\n const focusables = Selectors.FOCUSABLE_TAGS.map(\n element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}`\n ).join(\", \")\n\n return document.querySelectorAll(focusables)\n}\n\n/**\n * Utility methods for DOM traversal and focus trapping.\n * @module Utils\n */\nexport default class Utils {\n constructor() {\n // events\n this._listenForKeyboard = this._listenForKeyboard.bind(this)\n this._listenForClick = this._listenForClick.bind(this)\n this._handleFocusTrapWithTab = this._handleFocusTrapWithTab.bind(this)\n this._handleFocusTrapWithArrows = this._handleFocusTrapWithArrows.bind(this)\n\n this._focusContainerSelector = \"\"\n this._focusableChildren = []\n this._focusableFirstChild = {}\n this._focusableLastChild = {}\n this._listeningForKeydown = false\n this._trapFocusWithArrows = false\n }\n\n // public\n\n /**\n * Listens to the first and last elements matched from this.getFocusableElements()\n * @param {String} container - The container's class, attribute, etc.\n * @param {Object} options - Optional has hof options.\n */\n captureFocus(container, options) {\n this._focusContainerSelector = container\n this._focusableChildren = getFocusableElements(this._focusContainerSelector)\n this._focusableFirstChild = this._focusableChildren[0]\n this._focusableLastChild = this._focusableChildren[this._focusableChildren.length - 1]\n\n if (options) {\n if (options.useArrows) {\n this._trapFocusWithArrows = options.useArrows || this._trapFocusWithArrows\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n }\n } else {\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Stop trapping focus set in this.captureFocus()\n */\n releaseFocus() {\n if (this._trapFocusWithArrows) {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n this._trapFocusWithArrows = false\n } else {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Begin listening to _listenForKeyboard()\n */\n enableFocusOutline() {\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n }\n\n /**\n * Completely disable focus outline utility.\n */\n disableFocusOutline() {\n if (this._listeningForKeydown) {\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n } else {\n document.removeEventListener(Events.CLICK, this._listenForClick)\n }\n }\n\n // private\n\n /**\n * When a key is pressed, detect if it's tab or shift keys and enable\n * focus outlines on currently focused element(s). Then, remove keydown listener\n * and add click listener on _listenForClick().\n * @param {Object} event - Event (keypress).\n */\n _listenForKeyboard(event) {\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (tabKey || shiftKey || arrowUp || arrowDown) {\n document.body.classList.add(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n document.addEventListener(Events.CLICK, this._listenForClick)\n this._listeningForKeydown = false\n }\n }\n\n /**\n * On click, remove Selectors.KEYBOARD_CLASS and re-add keydown listener.\n * @param {Object} event - Event (keypress).\n */\n _listenForClick(event) {\n document.body.classList.remove(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.CLICK, this._listenForClick)\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n this._listeningForKeydown = true\n }\n\n /**\n * Handles focus on first or last child in a container, using tab and tab+shift keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithTab(event) {\n const containerElement = document.querySelector(this._focusContainerSelector)\n const containerActive = document.activeElement === containerElement\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const hasShift = shiftKey && tabKey\n const noShift = !shiftKey && tabKey\n\n if (shiftKey && tabKey && (firstActive || containerActive)) {\n event.preventDefault()\n this._focusableLastChild.focus()\n } else if (!shiftKey && tabKey && lastActive) {\n event.preventDefault()\n this._focusableFirstChild.focus()\n }\n }\n\n /**\n * Handles focus on the first, last, next, or previous child in a container, using up and down arrow keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithArrows(event) {\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (arrowUp || arrowDown) {\n event.preventDefault()\n\n if (firstActive && arrowUp) {\n this._focusableLastChild.focus()\n } else if (lastActive && arrowDown) {\n this._focusableFirstChild.focus()\n } else if (arrowDown) {\n this._focusNextChild()\n } else if (arrowUp) {\n this._focusLastChild()\n }\n }\n }\n\n /**\n * Focus the next child in this._focusableChildren.\n */\n _focusNextChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i + 1].focus()\n break\n }\n }\n }\n\n /**\n * Focus the previous child in this._focusableChildren.\n */\n _focusLastChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i - 1].focus()\n break\n }\n }\n }\n}\n","import Utils, { getFocusableElements } from \"../utils\"\n\nconst KeyCodes = {\n ESCAPE: 27,\n}\n\nconst Selectors = {\n // unique\n DATA_MODAL: \"data-modal\",\n DATA_MODAL_ID: \"data-modal-id\",\n DATA_MODAL_BUTTON: \"data-modal-button\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_CLOSE: \"data-close\",\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_MODAL: \"aria-modal\",\n ROLE: \"role\",\n TABINDEX: \"tabindex\",\n // classes\n NO_SCROLL: \"no-scroll\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n RESIZE: \"resize\",\n}\n\nconst Messages = {\n NO_TARGET_ERROR: `Could not find [data-target] attribute associated with a [data-modal-button] element.`,\n NO_PARENT_ERROR: `Could not find [data-parent] attribute associated with a [data-modal] element.`,\n NO_ID_ERROR: id =>\n `Could not find [data-modal-id='${id}'] associated with a [data-modal] element.`,\n}\n\n/**\n * Modal component class.\n * @module Modal\n * @requires Utils\n */\nexport default class Modal extends Utils {\n constructor() {\n super()\n\n this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent)\n\n // events\n this._render = this._render.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleOverlayClick = this._handleOverlayClick.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n\n // all modals\n this._modals = []\n this._modalButtons = []\n\n // active modal\n this._activeModalButton = {}\n this._activeModalOverlay = {}\n this._activeModal = {}\n this._activeModalId = \"\"\n this._activeModalOverlayAttr = \"\"\n this._activeModalSelector = \"\"\n this._activeModalCloseButtons = []\n\n // attribute helpers\n this._modalContainerAttr = `[${Selectors.DATA_MODAL}]`\n }\n\n // public\n\n /**\n * Add accessible attributes to modal containers\n * Begin listening to elements with [data-modal-button]\n */\n start() {\n this._modals = document.querySelectorAll(this._modalContainerAttr)\n this._modalButtons = document.querySelectorAll(`[${Selectors.DATA_MODAL_BUTTON}]`)\n\n getFocusableElements(this._modalContainerAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._modals.length) {\n this._modals.forEach(modal => {\n this._setupModal(modal)\n })\n }\n\n if (this._modalButtons.length) {\n this._modalButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to modal buttons\n */\n stop() {\n this._modalButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n this._activeModalButton = event.target\n\n if (!this._activeModalButton.getAttribute(Selectors.DATA_TARGET)) {\n return console.error(Messages.NO_TARGET_ERROR)\n }\n\n this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_TARGET)\n this._activeModalOverlayAttr = `[${Selectors.DATA_MODAL_ID}=\"${this._activeModalId}\"]`\n\n if (!document.querySelector(this._activeModalOverlayAttr)) {\n return console.error(Messages.NO_ID_ERROR(this._activeModalId))\n }\n\n this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr)\n\n this._activeModalSelector = `${this._activeModalOverlayAttr} ${this._modalContainerAttr}`\n this._activeModal = document.querySelector(this._activeModalSelector)\n this._activeModalCloseButtons = document.querySelectorAll(\n `${this._activeModalOverlayAttr} [${Selectors.DATA_CLOSE}]`\n )\n\n // allow focusable elements to be focused\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n\n // capture focus, stop scrolling, and toggle attributes for visibility\n this._handleScrollStop()\n this.captureFocus(this._activeModalSelector)\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // focus the modal\n this._activeModal.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModal.focus()\n\n // offset slight scroll caused by this._activeModal.focus()\n this._activeModalOverlay.scrollTop = 0\n\n // on ios devices, let the modal close on overlay click\n if (this._iosMobile) {\n this._activeModalOverlay.style.cursor = \"pointer\"\n }\n\n // begin listening to events\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n _setupModal(modal) {\n let modalId\n if (!modal.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR)\n } else {\n modalId = modal.getAttribute(Selectors.DATA_PARENT)\n }\n\n let modalWrapper\n if (!document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)) {\n return console.error(Messages.NO_ID_ERROR(modalId))\n } else {\n modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)\n }\n\n modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n modalWrapper.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n modal.setAttribute(Selectors.ARIA_MODAL, \"true\")\n modal.setAttribute(Selectors.ROLE, \"dialog\")\n }\n\n /**\n * Turn off event listeners and reset focus to last selected DOM node (button)\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n this._handleReturnFocus()\n this._handleScrollRestore()\n this.releaseFocus()\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n this._activeModal.removeAttribute(Selectors.TABINDEX)\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._iosMobile) {\n this._activeModalOverlay.style.cursor = \"auto\"\n }\n\n // stop listening to events\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.removeEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n /**\n * Handles click event on the modal background to close it.\n * @param {Object} event - The event object\n */\n _handleOverlayClick(event) {\n if (event.target === this._activeModalOverlay) {\n this._handleClose(event)\n }\n }\n\n /**\n * Handles escape key event to close the current modal\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Returns focus to the last focused element before the modal was called.\n * @param {Object} button - The current modal's corresponding button.\n */\n _handleReturnFocus() {\n this._activeModalButton.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModalButton.focus()\n this._activeModalButton.removeAttribute(Selectors.TABINDEX)\n }\n\n /**\n * Restores scroll behavior to and \n */\n _handleScrollRestore() {\n document.body.classList.remove(Selectors.NO_SCROLL)\n document.querySelector(\"html\").classList.remove(Selectors.NO_SCROLL)\n }\n\n /**\n * Prevents scroll behavior on and \n */\n _handleScrollStop() {\n document.body.classList.add(Selectors.NO_SCROLL)\n document.querySelector(\"html\").classList.add(Selectors.NO_SCROLL)\n }\n}\n","import Utils, { getFocusableElements } from \"../utils\"\n\nconst Selectors = {\n // unique\n DATA_ACCORDION: \"data-accordion\",\n DATA_ACCORDION_ROW: \"data-accordion-row\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_TARGET: \"data-target\",\n DATA_TOGGLE_MULTIPLE: \"data-toggle-multiple\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_EXPANDED: \"aria-expanded\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n TABINDEX: \"tabindex\",\n}\n\nconst Events = {\n CLICK: \"click\",\n KEYDOWN: \"keydown\",\n}\n\nconst Messages = {\n NO_VISIBLE_ERROR: id =>\n `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`,\n NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`,\n NO_HEADER_ID_ERROR: id => `Could not find header tag associated with [data-target='${id}'].`,\n NO_PARENT_ERROR: id => `Could not find [data-parent] associated with [data-target='${id}'].`,\n NO_CONTENT_ERROR: id =>\n `Could not find accordion content block with [id] ${id} associated with [data-target='${id}'].`,\n}\n\n/**\n * Accordion component class.\n * @module Accordion\n * @requires Utils\n */\nexport default class Accordion extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n\n // all accordions\n this._accordionButtons = []\n this._accordionContentsAttr = \"\"\n this._accordionContents = []\n\n // active accordion\n this._activeContainer = {}\n this._activeButton = {}\n this._activeAccordionRowId = \"\"\n this._activeRowAttr = \"\"\n this._activeRow = \"\"\n this._activeContainerId = \"\"\n this._activeContainerAttr = \"\"\n this._activeContent = {}\n this._activeButtonExpandState = \"\"\n this._activeContentHiddenState = \"\"\n\n // other data\n this._headerLevels = [1, 2, 3, 4, 5, 6]\n }\n\n // public\n\n /**\n * Sets up accordion components and listens to buttons for events.\n * Begin listening to [data-accordion-button] elements\n */\n start() {\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(\n `[${Selectors.DATA_ACCORDION}]`\n )\n this._accordionButtons = document.querySelectorAll(accordionButtonSelector)\n\n if (this._accordionButtons.length) {\n this._accordionButtons.forEach(button => {\n this._setupAccordion(button)\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to accordion button events.\n */\n stop() {\n this._accordionButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Open accordion content associated with an accordion button.\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n\n this._activeButton = event.target\n this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET)\n\n this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId)\n this._activeRow = document.querySelector(this._activeRowAttr)\n\n if (!this._activeButton.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId))\n }\n\n this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT)\n this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']`\n\n if (!document.querySelector(this._activeContainerAttr)) {\n return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId))\n }\n\n this._activeContainer = document.querySelector(this._activeContainerAttr)\n this._activeContent = document.getElementById(this._activeAccordionRowId)\n\n const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE)\n\n this._activeButtonExpandState = accordionButtonState === \"true\" ? \"false\" : \"true\"\n this._activeContentHiddenState = this._activeButtonExpandState === \"false\" ? \"true\" : \"false\"\n\n this._closeAllIfToggleable()\n this._toggleSelectedAccordion()\n }\n\n /**\n * Add initial attributes to accordion elements.\n * @param {Element} button - A button element that triggers an accordion.\n */\n _setupAccordion(button) {\n const buttonId = button.getAttribute(Selectors.DATA_TARGET)\n\n if (!document.getElementById(buttonId)) {\n return console.error(Messages.NO_CONTENT_ERROR(buttonId))\n }\n\n const buttonContent = document.getElementById(buttonId)\n const accordionRowAttr = this._getAccordionRowAttr(buttonId)\n\n if (!document.querySelector(accordionRowAttr)) {\n return console.error(Messages.NO_ROW_ERROR(buttonId))\n }\n\n const accordionRow = document.querySelector(accordionRowAttr)\n const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr)\n const buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0]\n\n if (!buttonHeader || !buttonHeader.id) {\n console.error(Messages.NO_HEADER_ID_ERROR(buttonId))\n }\n\n const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`)\n\n button.setAttribute(Selectors.ARIA_CONTROLS, buttonId)\n buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id)\n\n if (!accordionRow.getAttribute(Selectors.DATA_VISIBLE)) {\n return console.error(Messages.NO_VISIBLE_ERROR(buttonId))\n }\n\n const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE)\n if (contentShouldExpand === \"true\") {\n buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`\n button.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n } else {\n button.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n }\n\n /**\n * Build a selector string to match possible accordion buttons\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible button selectors\n */\n _getPossibleAccordionButtonAttrs(attr) {\n return this._headerLevels\n .map(\n num => `${attr} > [${Selectors.DATA_ACCORDION_ROW}] > h${num} [${Selectors.DATA_TARGET}]`\n )\n .join(\", \")\n }\n\n /**\n * Build a selector string to match possible accordion headers\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible header selectors\n */\n _getPossibleAccordionHeaderAttrs(attr) {\n return this._headerLevels.map(num => `${attr} > h${num}`).join(\", \")\n }\n\n /**\n * Build a unique accordion row attribute selector.\n * @param {String} id - An id value associated with a given Selectors.DATA_TARGET\n * @return {String} - A unique accordion row selector\n */\n _getAccordionRowAttr(id) {\n return `[${Selectors.DATA_ACCORDION_ROW}='${id}']`\n }\n\n /**\n * If toggling multiple rows at once isn't enabled, close all rows except the selected one.\n * This ensures the selected one can be closed if it's already open.\n */\n _closeAllIfToggleable() {\n if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return\n\n const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]`\n const allRows = document.querySelectorAll(\n `${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`\n )\n const allContent = document.querySelectorAll(allContentAttr)\n\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr)\n const allButtons = document.querySelectorAll(accordionButtonSelector)\n\n allContent.forEach(content => {\n if (content !== this._activeContent) content.style.maxHeight = null\n })\n\n getFocusableElements(allContentAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n this._toggleAttributeInCollection(allRows, Selectors.DATA_VISIBLE, \"true\", \"false\")\n this._toggleAttributeInCollection(allButtons, Selectors.ARIA_EXPANDED, \"true\", \"false\")\n this._toggleAttributeInCollection(allContent, Selectors.ARIA_HIDDEN, \"false\", \"true\")\n }\n\n /**\n * Toggle the currently selected accordion button's content.\n */\n _toggleSelectedAccordion() {\n this._activeRow.setAttribute(Selectors.DATA_VISIBLE, this._activeButtonExpandState)\n this._activeButton.setAttribute(Selectors.ARIA_EXPANDED, this._activeButtonExpandState)\n this._activeContent.setAttribute(Selectors.ARIA_HIDDEN, this._activeContentHiddenState)\n\n const activeContentBlock = `#${this._activeAccordionRowId}`\n getFocusableElements(activeContentBlock).forEach(element => {\n const value = this._activeButtonExpandState === \"true\" ? \"0\" : \"-1\"\n element.setAttribute(Selectors.TABINDEX, value)\n })\n\n if (this._activeContent.style.maxHeight) {\n this._activeContent.style.maxHeight = null\n } else {\n this._activeContent.style.maxHeight = `${this._activeContent.scrollHeight}px`\n }\n }\n\n /**\n * Toggles a single attribute of a series of elements.\n * @param {Array} elements - An array of elements to be operated on.\n * @param {String} attributeName - An attribute to be changed.\n * @param {String} currentValue - The current value of attributeName\n * @param {String} newValue - The new value of attributeName\n */\n _toggleAttributeInCollection(elements, attributeName, currentValue, newValue) {\n elements.forEach(element => {\n if (element.hasAttribute(attributeName, currentValue)) {\n element.setAttribute(attributeName, newValue)\n }\n })\n }\n}\n","import Utils from \"../utils\"\n\nconst KeyCodes = {\n TAB: 9,\n SHIFT: 16,\n ESCAPE: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n // unique\n DATA_DROPDOWN: \"data-dropdown\",\n // common\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n DATA_VISIBLE: \"data-visible\",\n // accessibility\n TABINDEX: \"tabindex\",\n ARIA_HASPOPUP: \"aria-haspopup\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n ARIA_EXPANDED: \"aria-expanded\",\n ROLE: \"role\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\nconst Messages = {\n NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`,\n NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`,\n NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`,\n}\n\n/**\n * Dropdown component class.\n * @module Dropdown\n * @requires Utils\n */\nexport default class Dropdown extends Utils {\n constructor() {\n super()\n\n this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent)\n\n // events\n this._render = this._render.bind(this)\n this._handleFirstTabClose = this._handleFirstTabClose.bind(this)\n this._handleLastTabClose = this._handleLastTabClose.bind(this)\n this._renderWithKeys = this._renderWithKeys.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n this._handleOffMenuClick = this._handleOffMenuClick.bind(this)\n\n // active dropdown\n this._activeDropdownButton = null\n this._activeDropdown = null\n this._activeDropdownMenu = null\n this._activeDropdownLinks = []\n this._allowFocusReturn = true\n this._activeDropdownId = \"\"\n this._activeDropdownAttr = \"\"\n this._activeDropdownMenuId = \"\"\n\n // all dropdowns\n this._dropdownButtons = []\n this._dropdowns = []\n\n // dropdown element selectors\n this._dropdownContainerAttr = `[${Selectors.DATA_DROPDOWN}]`\n this._dropdownTargetAttr = `[${Selectors.DATA_TARGET}]`\n }\n\n // public\n\n /**\n * Find and set up dropdown buttons and menus.\n * Begin listening to dropdowns for events.\n */\n start() {\n this._dropdowns = document.querySelectorAll(`${this._dropdownContainerAttr}`)\n this._dropdownButtons = document.querySelectorAll(\n `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}`\n )\n\n if (this._dropdowns.length) {\n this._dropdowns.forEach(dropdown => this._setupDropdown(dropdown))\n }\n\n this._dropdownButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n button.addEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n /**\n * Stop listening for dropdown events.\n */\n stop() {\n this._dropdownButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n button.removeEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n * @param {Number} key - The key code that called _render()\n */\n _render(event, key) {\n event.preventDefault()\n event.stopPropagation()\n\n if (this._activeDropdownButton) {\n this._allowFocusReturn = false\n this._handleClose(event)\n this._allowFocusReturn = true\n }\n\n // dropdown button / trigger\n this._activeDropdownButton = event.target\n\n if (!this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR)\n }\n\n this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)\n\n // dropdown container\n this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${this._activeDropdownId}\"]`\n\n if (!document.querySelector(this._activeDropdownAttr)) {\n return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr))\n }\n\n this._activeDropdown = document.querySelector(this._activeDropdownAttr)\n\n // dropdown menu\n this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET)\n this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId)\n\n // toggle attributes on dropdown button, indicating a visible dropdown is present\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // trade button event listener to close the menu, instead of open it\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._render)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._handleClose)\n\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOffMenuClick)\n\n // make click events work on mobile iOS\n if (this._iosMobile) {\n document.body.style.cursor = \"pointer\"\n }\n\n this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr)\n\n this.firstDropdownLink = this._activeDropdownLinks[0]\n this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]\n\n this.firstDropdownLink.addEventListener(Events.KEYDOWN, this._handleFirstTabClose)\n this.lastDropdownLink.addEventListener(Events.KEYDOWN, this._handleLastTabClose)\n\n if (key && key === KeyCodes.ARROW_UP) {\n this.lastDropdownLink.focus()\n } else {\n this.firstDropdownLink.focus()\n }\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"0\")\n link.addEventListener(Events.CLICK, this._handleClose)\n })\n\n this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true })\n }\n\n /**\n * Closes the dropdown if user uses shift and tab keys on the first dropdown element.\n * @param {Object} event - The event object\n */\n _handleFirstTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (shiftKey && tabKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes the dropdown if user uses tab key on the last dropdown element.\n * @param {Object} event - The event object\n */\n _handleLastTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (tabKey && !shiftKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Renders dropdown if the user uses arrow up or down.\n * @param {Object} event - The event object\n */\n _renderWithKeys(event) {\n if (event.which === KeyCodes.ARROW_UP || event.which === KeyCodes.ARROW_DOWN) {\n this._render(event, event.which)\n }\n }\n\n /**\n * Closes currently open dropdown.\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n\n this.releaseFocus()\n\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n link.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._handleClose)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._render)\n\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n\n if (this._iosMobile) {\n document.body.style.cursor = \"auto\"\n }\n\n document.removeEventListener(Events.CLICK, this._handleOffMenuClick)\n\n if (this._allowFocusReturn) {\n this._handleReturnFocus()\n }\n\n this._activeDropdownButton = null\n }\n\n /**\n * Use escape key to close dropdown.\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes dropdown\n * @param {Object} event - The event object\n */\n _handleOffMenuClick(event) {\n if (event.target !== this._activeDropdownButton && event.target !== this._activeDropdownMenu) {\n this._handleClose(event)\n }\n }\n\n /**\n * Puts focus on a the active dropdown button.\n */\n _handleReturnFocus() {\n this._activeDropdownButton.setAttribute(Selectors.TAB_INDEX, \"-1\")\n this._activeDropdownButton.focus()\n this._activeDropdownButton.removeAttribute(Selectors.TAB_INDEX)\n }\n\n /**\n * Retrieve possible menu links or buttons as an array\n * @param {String} attr - The unique attribute for a dropdown.\n * @return {String} - Selector for possible menu item links.\n */\n _getDropdownLinks(attr) {\n return document.querySelectorAll(`${attr} > ul > li > a, ${attr} > ul > li > button`)\n }\n\n /**\n * Add starting attributes to a dropdown.\n * @param {Element} dropdown - A dropdown element.\n */\n _setupDropdown(dropdown) {\n const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN)\n const dropdownIdAttr = `[${Selectors.DATA_DROPDOWN}=\"${dropdownId}\"]`\n const dropdownMenuItemsAttr = `${dropdownIdAttr} > ul > li`\n\n if (!document.querySelector(`${dropdownIdAttr} > ul`)) {\n return console.error(Messages.NO_MENU_ERROR(dropdownIdAttr))\n }\n\n const dropdownMenu = document.querySelector(`${dropdownIdAttr} > ul`)\n const dropdownButton = document.querySelector(`${dropdownIdAttr} > ${this._dropdownTargetAttr}`)\n\n dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id)\n dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, \"true\")\n dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id)\n\n const dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr)\n dropdownMenuItems.forEach(item => item.setAttribute(Selectors.ROLE, \"none\"))\n\n this._getDropdownLinks(dropdownIdAttr).forEach(link => {\n link.setAttribute(Selectors.ROLE, \"menuitem\")\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n}\n","import _Modals from \"./components/modal\"\nimport _Accordion from \"./components/accordion\"\nimport _Dropdown from \"./components/dropdown\"\nimport _Utils from \"./utils\"\n\nexport const Modals = new _Modals()\nexport const Accordions = new _Accordion()\nexport const Dropdowns = new _Dropdown()\nexport const Utils = new _Utils()\n\nconst Undernet = {\n // Components\n Modals,\n Accordions,\n Dropdowns,\n\n // Utils\n Utils,\n}\n\nUndernet.start = () => {\n // Components\n Undernet.Modals.start()\n Undernet.Accordions.start()\n Undernet.Dropdowns.start()\n\n // Utils\n Undernet.Utils.enableFocusOutline()\n}\n\nUndernet.stop = () => {\n // Components\n Undernet.Modals.stop()\n Undernet.Accordions.stop()\n Undernet.Dropdowns.stop()\n\n // Utils\n Undernet.Utils.disableFocusOutline()\n}\n\nexport default Undernet\n","import Undernet from \"./index\"\n\nexport default Undernet\nexport { Modals, Accordions, Dropdowns, Utils } from \"./index\"\n\nwindow.Undernet = Undernet\n"],"names":["KeyCodes","Selectors","NOT_VISUALLY_HIDDEN","FOCUSABLE_TAGS","KEYBOARD_CLASS","Events","getFocusableElements","container","focusables","map","element","join","document","querySelectorAll","Utils","_listenForKeyboard","this","bind","_listenForClick","_handleFocusTrapWithTab","_handleFocusTrapWithArrows","_focusContainerSelector","_focusableChildren","_focusableFirstChild","_focusableLastChild","_listeningForKeydown","_trapFocusWithArrows","options","length","useArrows","addEventListener","removeEventListener","event","tabKey","which","shiftKey","arrowUp","arrowDown","body","classList","add","remove","containerElement","querySelector","containerActive","activeElement","firstActive","lastActive","preventDefault","focus","_focusNextChild","_focusLastChild","i","Messages","id","Modal","_iosMobile","test","navigator","userAgent","_render","_this","_handleClose","_handleOverlayClick","_handleEscapeKeyPress","_modals","_modalButtons","_activeModalButton","_activeModalOverlay","_activeModal","_activeModalId","_activeModalOverlayAttr","_activeModalSelector","_activeModalCloseButtons","_modalContainerAttr","forEach","setAttribute","modal","_this2","_setupModal","button","_this3","target","getAttribute","_handleScrollStop","captureFocus","scrollTop","style","cursor","_this4","console","error","modalId","modalWrapper","_handleReturnFocus","_handleScrollRestore","releaseFocus","removeAttribute","_this5","NO_VISIBLE_ERROR","NO_ROW_ERROR","NO_HEADER_ID_ERROR","NO_PARENT_ERROR","NO_CONTENT_ERROR","Accordion","_accordionButtons","_accordionContentsAttr","_accordionContents","_activeContainer","_activeButton","_activeAccordionRowId","_activeRowAttr","_activeRow","_activeContainerId","_activeContainerAttr","_activeContent","_activeButtonExpandState","_activeContentHiddenState","_headerLevels","accordionButtonSelector","_getPossibleAccordionButtonAttrs","_setupAccordion","_getAccordionRowAttr","NO_ACCORDION_ERROR","getElementById","accordionButtonState","_closeAllIfToggleable","_toggleSelectedAccordion","buttonId","buttonContent","accordionRowAttr","accordionRow","buttonHeaderAttr","_getPossibleAccordionHeaderAttrs","buttonHeader","buttonContentChildren","maxHeight","scrollHeight","attr","num","hasAttribute","allContentAttr","allRows","allContent","allButtons","content","_toggleAttributeInCollection","activeContentBlock","value","elements","attributeName","currentValue","newValue","DATA_DROPDOWN","DATA_TARGET","DATA_PARENT","DATA_VISIBLE","TABINDEX","ARIA_HASPOPUP","ARIA_CONTROLS","ARIA_LABELLEDBY","ARIA_EXPANDED","ROLE","Dropdown","_handleFirstTabClose","_handleLastTabClose","_renderWithKeys","_handleOffMenuClick","_activeDropdownButton","_activeDropdown","_activeDropdownMenu","_activeDropdownLinks","_allowFocusReturn","_activeDropdownId","_activeDropdownAttr","_activeDropdownMenuId","_dropdownButtons","_dropdowns","_dropdownContainerAttr","_dropdownTargetAttr","dropdown","_setupDropdown","key","stopPropagation","_getDropdownLinks","firstDropdownLink","lastDropdownLink","link","TAB_INDEX","dropdownId","dropdownIdAttr","dropdownMenuItemsAttr","dropdownMenu","dropdownButton","item","Modals","_Modals","Accordions","_Accordion","Dropdowns","_Dropdown","_Utils","Undernet","start","enableFocusOutline","stop","disableFocusOutline","window"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"undernet.bundle.min.js","sources":["../js/src/utils.js","../js/src/accordion.js","../js/src/dropdown.js","../js/src/modal.js","../js/src/tooltip.js","../js/src/index.js","../js/src/index.bundle.js"],"sourcesContent":["const KeyCodes = {\n SHIFT: 16,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n NOT_VISUALLY_HIDDEN: \":not(.is-visually-hidden)\",\n FOCUSABLE_TAGS: [\"a\", \"button\", \"input\", \"object\", \"select\", \"textarea\", \"[tabindex]\"],\n KEYBOARD_CLASS: \"using-keyboard\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {String}\n */\nexport const nodeListToArray = nodeList => {\n return Array.apply(null, document.querySelectorAll(nodeList))\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {Array}\n */\nexport const getFocusableElements = container => {\n const focusables = Selectors.FOCUSABLE_TAGS.map(\n element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}`\n ).join(\", \")\n\n return nodeListToArray(focusables)\n}\n\n/**\n * Detects if the browser being used is on an iphone, ipad, or ipod.\n * @return {Boolean}\n */\nexport const iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent)\n\n/**\n * Utility methods for DOM traversal and focus trapping.\n * @module Utils\n */\nexport default class Utils {\n constructor() {\n // events\n this._listenForKeyboard = this._listenForKeyboard.bind(this)\n this._listenForClick = this._listenForClick.bind(this)\n this._handleFocusTrapWithTab = this._handleFocusTrapWithTab.bind(this)\n this._handleFocusTrapWithArrows = this._handleFocusTrapWithArrows.bind(this)\n\n this._focusContainerSelector = \"\"\n this._focusableChildren = []\n this._focusableFirstChild = {}\n this._focusableLastChild = {}\n this._listeningForKeydown = false\n this._trapFocusWithArrows = false\n }\n\n // public\n\n /**\n * Listens to the first and last elements matched from this.getFocusableElements()\n * @param {String} container - The container's class, attribute, etc.\n * @param {Object} options - Optional has hof options.\n */\n captureFocus(container, options) {\n this._focusContainerSelector = container\n this._focusableChildren = getFocusableElements(this._focusContainerSelector)\n this._focusableFirstChild = this._focusableChildren[0]\n this._focusableLastChild = this._focusableChildren[this._focusableChildren.length - 1]\n\n if (options) {\n if (options.useArrows) {\n this._trapFocusWithArrows = options.useArrows || this._trapFocusWithArrows\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n }\n } else {\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Stop trapping focus set in this.captureFocus()\n */\n releaseFocus() {\n if (this._trapFocusWithArrows) {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n this._trapFocusWithArrows = false\n } else {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Begin listening to _listenForKeyboard()\n */\n enableFocusOutline() {\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n }\n\n /**\n * Completely disable focus outline utility.\n */\n disableFocusOutline() {\n if (this._listeningForKeydown) {\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n } else {\n document.removeEventListener(Events.CLICK, this._listenForClick)\n }\n }\n\n // private\n\n /**\n * When a key is pressed, detect if it's tab or shift keys and enable\n * focus outlines on currently focused element(s). Then, remove keydown listener\n * and add click listener on _listenForClick().\n * @param {Object} event - Event (keypress).\n */\n _listenForKeyboard(event) {\n document.body.classList.add(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n document.addEventListener(Events.CLICK, this._listenForClick)\n this._listeningForKeydown = false\n }\n\n /**\n * On click, remove Selectors.KEYBOARD_CLASS and re-add keydown listener.\n * @param {Object} event - Event (keypress).\n */\n _listenForClick(event) {\n document.body.classList.remove(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.CLICK, this._listenForClick)\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n this._listeningForKeydown = true\n }\n\n /**\n * Handles focus on first or last child in a container, using tab and tab+shift keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithTab(event) {\n const containerElement = document.querySelector(this._focusContainerSelector)\n const containerActive = document.activeElement === containerElement\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const hasShift = shiftKey && tabKey\n const noShift = !shiftKey && tabKey\n\n if (shiftKey && tabKey && (firstActive || containerActive)) {\n event.preventDefault()\n this._focusableLastChild.focus()\n } else if (!shiftKey && tabKey && lastActive) {\n event.preventDefault()\n this._focusableFirstChild.focus()\n }\n }\n\n /**\n * Handles focus on the first, last, next, or previous child in a container, using up and down arrow keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithArrows(event) {\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (arrowUp || arrowDown) {\n event.preventDefault()\n\n if (firstActive && arrowUp) {\n this._focusableLastChild.focus()\n } else if (lastActive && arrowDown) {\n this._focusableFirstChild.focus()\n } else if (arrowDown) {\n this._focusNextChild()\n } else if (arrowUp) {\n this._focusLastChild()\n }\n }\n }\n\n /**\n * Focus the next child in this._focusableChildren.\n */\n _focusNextChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i + 1].focus()\n break\n }\n }\n }\n\n /**\n * Focus the previous child in this._focusableChildren.\n */\n _focusLastChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i - 1].focus()\n break\n }\n }\n }\n}\n","import Utils, { getFocusableElements, nodeListToArray } from \"./utils\"\n\nconst Selectors = {\n // unique\n DATA_ACCORDION: \"data-accordion\",\n DATA_ACCORDION_ROW: \"data-accordion-row\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_TARGET: \"data-target\",\n DATA_TOGGLE_MULTIPLE: \"data-toggle-multiple\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_EXPANDED: \"aria-expanded\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n TABINDEX: \"tabindex\",\n}\n\nconst Events = {\n CLICK: \"click\",\n KEYDOWN: \"keydown\",\n}\n\nconst Messages = {\n NO_VISIBLE_ERROR: id =>\n `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`,\n NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`,\n NO_HEADER_ID_ERROR: id => `Could not find header tag associated with [data-target='${id}'].`,\n NO_PARENT_ERROR: id => `Could not find [data-parent] associated with [data-target='${id}'].`,\n NO_CONTENT_ERROR: id =>\n `Could not find accordion content block with [id] ${id} associated with [data-target='${id}'].`,\n}\n\n/**\n * Accordion component class.\n * @module Accordion\n * @requires Utils\n */\nexport default class Accordion extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n\n // all accordions\n this._accordionButtons = []\n this._accordionContentsAttr = \"\"\n this._accordionContents = []\n\n // active accordion\n this._activeContainer = {}\n this._activeButton = {}\n this._activeAccordionRowId = \"\"\n this._activeRowAttr = \"\"\n this._activeRow = \"\"\n this._activeContainerId = \"\"\n this._activeContainerAttr = \"\"\n this._activeContent = {}\n this._activeButtonExpandState = \"\"\n this._activeContentHiddenState = \"\"\n\n // other data\n this._headerLevels = [1, 2, 3, 4, 5, 6]\n }\n\n // public\n\n /**\n * Begin listening to accordions.\n */\n start() {\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(\n `[${Selectors.DATA_ACCORDION}]`\n )\n this._accordionButtons = nodeListToArray(accordionButtonSelector)\n\n if (this._accordionButtons.length) {\n this._accordionButtons.forEach(button => {\n this._setupAccordion(button)\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to accordions.\n */\n stop() {\n this._accordionButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Open accordion content associated with an accordion button.\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n\n this._activeButton = event.target\n this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET)\n\n this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId)\n this._activeRow = document.querySelector(this._activeRowAttr)\n this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT)\n\n if (!this._activeContainerId) {\n return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId))\n }\n\n this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']`\n this._activeContainer = document.querySelector(this._activeContainerAttr)\n\n if (!this._activeContainer) {\n return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId))\n }\n\n this._activeContent = document.getElementById(this._activeAccordionRowId)\n\n const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE)\n\n this._activeButtonExpandState = accordionButtonState === \"true\" ? \"false\" : \"true\"\n this._activeContentHiddenState = this._activeButtonExpandState === \"false\" ? \"true\" : \"false\"\n\n this._closeAllIfToggleable()\n this._toggleSelectedAccordion()\n\n this._activeContainerId = null\n this._activeContainer = null\n }\n\n /**\n * Add initial attributes to accordion elements.\n * @param {Element} button - A button element that triggers an accordion.\n */\n _setupAccordion(button) {\n const buttonId = button.getAttribute(Selectors.DATA_TARGET)\n const buttonContent = document.getElementById(buttonId)\n\n if (!buttonContent) {\n return console.error(Messages.NO_CONTENT_ERROR(buttonId))\n }\n\n const accordionRowAttr = this._getAccordionRowAttr(buttonId)\n const accordionRow = document.querySelector(accordionRowAttr)\n\n if (!accordionRow) {\n return console.error(Messages.NO_ROW_ERROR(buttonId))\n }\n\n const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr)\n const buttonHeader = nodeListToArray(buttonHeaderAttr)[0]\n\n if (!buttonHeader || !buttonHeader.id) {\n console.error(Messages.NO_HEADER_ID_ERROR(buttonId))\n }\n\n const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`)\n\n button.setAttribute(Selectors.ARIA_CONTROLS, buttonId)\n buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id)\n\n const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE)\n\n if (!contentShouldExpand) {\n return console.error(Messages.NO_VISIBLE_ERROR(buttonId))\n }\n\n if (contentShouldExpand === \"true\") {\n buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`\n button.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n } else {\n button.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n }\n\n /**\n * Build a selector string to match possible accordion buttons\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible button selectors\n */\n _getPossibleAccordionButtonAttrs(attr) {\n return this._headerLevels\n .map(\n num => `${attr} > [${Selectors.DATA_ACCORDION_ROW}] > h${num} [${Selectors.DATA_TARGET}]`\n )\n .join(\", \")\n }\n\n /**\n * Build a selector string to match possible accordion headers\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible header selectors\n */\n _getPossibleAccordionHeaderAttrs(attr) {\n return this._headerLevels.map(num => `${attr} > h${num}`).join(\", \")\n }\n\n /**\n * Build a unique accordion row attribute selector.\n * @param {String} id - An id value associated with a given Selectors.DATA_TARGET\n * @return {String} - A unique accordion row selector\n */\n _getAccordionRowAttr(id) {\n return `[${Selectors.DATA_ACCORDION_ROW}='${id}']`\n }\n\n /**\n * If toggling multiple rows at once isn't enabled, close all rows except the selected one.\n * This ensures the selected one can be closed if it's already open.\n */\n _closeAllIfToggleable() {\n if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return\n\n const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]`\n const allRows = nodeListToArray(`${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`)\n const allContent = nodeListToArray(allContentAttr)\n\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr)\n const allButtons = nodeListToArray(accordionButtonSelector)\n\n allContent.forEach(content => {\n if (content !== this._activeContent) content.style.maxHeight = null\n })\n\n getFocusableElements(allContentAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n this._toggleAttributeInCollection(allRows, Selectors.DATA_VISIBLE, \"true\", \"false\")\n this._toggleAttributeInCollection(allButtons, Selectors.ARIA_EXPANDED, \"true\", \"false\")\n this._toggleAttributeInCollection(allContent, Selectors.ARIA_HIDDEN, \"false\", \"true\")\n }\n\n /**\n * Toggle the currently selected accordion button's content.\n */\n _toggleSelectedAccordion() {\n this._activeRow.setAttribute(Selectors.DATA_VISIBLE, this._activeButtonExpandState)\n this._activeButton.setAttribute(Selectors.ARIA_EXPANDED, this._activeButtonExpandState)\n this._activeContent.setAttribute(Selectors.ARIA_HIDDEN, this._activeContentHiddenState)\n\n const activeContentBlock = `#${this._activeAccordionRowId}`\n getFocusableElements(activeContentBlock).forEach(element => {\n const value = this._activeButtonExpandState === \"true\" ? \"0\" : \"-1\"\n element.setAttribute(Selectors.TABINDEX, value)\n })\n\n if (this._activeContent.style.maxHeight) {\n this._activeContent.style.maxHeight = null\n } else {\n this._activeContent.style.maxHeight = `${this._activeContent.scrollHeight}px`\n }\n }\n\n /**\n * Toggles a single attribute of a series of elements.\n * @param {Array} elements - An array of elements to be operated on.\n * @param {String} attributeName - An attribute to be changed.\n * @param {String} currentValue - The current value of attributeName\n * @param {String} newValue - The new value of attributeName\n */\n _toggleAttributeInCollection(elements, attributeName, currentValue, newValue) {\n elements.forEach(element => {\n if (element.hasAttribute(attributeName, currentValue)) {\n element.setAttribute(attributeName, newValue)\n }\n })\n }\n}\n","import Utils, { iOSMobile, nodeListToArray } from \"./utils\"\n\nconst KeyCodes = {\n TAB: 9,\n SHIFT: 16,\n ESCAPE: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n // unique\n DATA_DROPDOWN: \"data-dropdown\",\n // common\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n DATA_VISIBLE: \"data-visible\",\n // accessibility\n TABINDEX: \"tabindex\",\n ARIA_HASPOPUP: \"aria-haspopup\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n ARIA_EXPANDED: \"aria-expanded\",\n ROLE: \"role\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\nconst Messages = {\n NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`,\n NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`,\n NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`,\n}\n\n/**\n * Dropdown component class.\n * @module Dropdown\n * @requires Utils\n */\nexport default class Dropdown extends Utils {\n constructor() {\n super()\n // events\n this._render = this._render.bind(this)\n this._handleFirstTabClose = this._handleFirstTabClose.bind(this)\n this._handleLastTabClose = this._handleLastTabClose.bind(this)\n this._renderWithKeys = this._renderWithKeys.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n this._handleOffMenuClick = this._handleOffMenuClick.bind(this)\n\n // active dropdown\n this._activeDropdownButton = null\n this._activeDropdown = null\n this._activeDropdownMenu = null\n this._activeDropdownLinks = []\n this._allowFocusReturn = true\n this._activeDropdownId = \"\"\n this._activeDropdownAttr = \"\"\n this._activeDropdownMenuId = \"\"\n\n // all dropdowns\n this._dropdownButtons = []\n this._dropdowns = []\n\n // dropdown element selectors\n this._dropdownContainerAttr = `[${Selectors.DATA_DROPDOWN}]`\n this._dropdownTargetAttr = `[${Selectors.DATA_TARGET}]`\n }\n\n // public\n\n /**\n * Begin listening to dropdowns.\n */\n start() {\n this._dropdowns = nodeListToArray(`${this._dropdownContainerAttr}`)\n this._dropdownButtons = nodeListToArray(\n `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}`\n )\n\n if (this._dropdowns.length) {\n this._dropdowns.forEach(dropdown => this._setupDropdown(dropdown))\n }\n\n this._dropdownButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n button.addEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n /**\n * Stop listening to dropdowns.\n */\n stop() {\n this._dropdownButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n button.removeEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n * @param {Number} key - The key code that called _render()\n */\n _render(event, key) {\n event.preventDefault()\n event.stopPropagation()\n\n if (this._activeDropdownButton) {\n this._allowFocusReturn = false\n this._handleClose(event)\n this._allowFocusReturn = true\n }\n\n // dropdown button / trigger\n this._activeDropdownButton = event.target\n this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)\n\n if (!this._activeDropdownId) {\n return console.error(Messages.NO_PARENT_ERROR)\n }\n\n // dropdown container\n this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${this._activeDropdownId}\"]`\n this._activeDropdown = document.querySelector(this._activeDropdownAttr)\n\n if (!this._activeDropdown) {\n return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr))\n }\n\n // dropdown menu\n this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET)\n this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId)\n\n // toggle attributes on dropdown button, indicating a visible dropdown is present\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // trade button event listener to close the menu, instead of open it\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._render)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._handleClose)\n\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOffMenuClick)\n\n // make click events work on mobile iOS\n if (iOSMobile) {\n document.body.style.cursor = \"pointer\"\n }\n\n this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr)\n\n this.firstDropdownLink = this._activeDropdownLinks[0]\n this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]\n\n this.firstDropdownLink.addEventListener(Events.KEYDOWN, this._handleFirstTabClose)\n this.lastDropdownLink.addEventListener(Events.KEYDOWN, this._handleLastTabClose)\n\n if (key && key === KeyCodes.ARROW_UP) {\n this.lastDropdownLink.focus()\n } else {\n this.firstDropdownLink.focus()\n }\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"0\")\n link.addEventListener(Events.CLICK, this._handleClose)\n })\n\n this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true })\n }\n\n /**\n * Closes the dropdown if user uses shift and tab keys on the first dropdown element.\n * @param {Object} event - The event object\n */\n _handleFirstTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (shiftKey && tabKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes the dropdown if user uses tab key on the last dropdown element.\n * @param {Object} event - The event object\n */\n _handleLastTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (tabKey && !shiftKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Renders dropdown if the user uses arrow up or down.\n * @param {Object} event - The event object\n */\n _renderWithKeys(event) {\n if (event.which === KeyCodes.ARROW_UP || event.which === KeyCodes.ARROW_DOWN) {\n this._render(event, event.which)\n }\n }\n\n /**\n * Closes currently open dropdown.\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n\n this.releaseFocus()\n\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n link.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._handleClose)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._render)\n\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n\n if (iOSMobile) {\n document.body.style.cursor = \"auto\"\n }\n\n document.removeEventListener(Events.CLICK, this._handleOffMenuClick)\n\n if (this._allowFocusReturn) {\n this._handleReturnFocus()\n }\n\n this._activeDropdownButton = null\n this._activeDropdownId = null\n this._activeDropdown = null\n }\n\n /**\n * Use escape key to close dropdown.\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes dropdown\n * @param {Object} event - The event object\n */\n _handleOffMenuClick(event) {\n if (event.target !== this._activeDropdownButton && event.target !== this._activeDropdownMenu) {\n this._handleClose(event)\n }\n }\n\n /**\n * Puts focus on a the active dropdown button.\n */\n _handleReturnFocus() {\n this._activeDropdownButton.setAttribute(Selectors.TAB_INDEX, \"-1\")\n this._activeDropdownButton.focus()\n this._activeDropdownButton.removeAttribute(Selectors.TAB_INDEX)\n }\n\n /**\n * Retrieve possible menu links or buttons as an array\n * @param {String} attr - The unique attribute for a dropdown.\n * @return {String} - Selector for possible menu item links.\n */\n _getDropdownLinks(attr) {\n return nodeListToArray(`${attr} > ul > li > a, ${attr} > ul > li > button`)\n }\n\n /**\n * Add starting attributes to a dropdown.\n * @param {Element} dropdown - A dropdown element.\n */\n _setupDropdown(dropdown) {\n const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN)\n\n // no id error\n\n const dropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${dropdownId}\"]`\n const dropdownMenuItemsAttr = `${dropdownAttr} > ul > li`\n const dropdownMenu = document.querySelector(`${dropdownAttr} > ul`)\n\n // no ul error\n\n if (!dropdownMenu) {\n return console.error(Messages.NO_MENU_ERROR(dropdownAttr))\n }\n\n const dropdownButton = document.querySelector(`${dropdownAttr} > ${this._dropdownTargetAttr}`)\n\n dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id)\n dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, \"true\")\n dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id)\n\n const dropdownMenuListItems = nodeListToArray(dropdownMenuItemsAttr)\n\n // no menu items error\n\n dropdownMenuListItems.forEach(item => item.setAttribute(Selectors.ROLE, \"none\"))\n\n const dropdownMenuButtons = this._getDropdownLinks(dropdownAttr)\n\n // no menu buttons error\n\n dropdownMenuButtons.forEach(link => {\n link.setAttribute(Selectors.ROLE, \"menuitem\")\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n}\n","import Utils, { iOSMobile, getFocusableElements, nodeListToArray } from \"./utils\"\n\nconst KeyCodes = {\n ESCAPE: 27,\n}\n\nconst Selectors = {\n // unique\n DATA_MODAL: \"data-modal\",\n DATA_MODAL_BUTTON: \"data-modal-button\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_CLOSE: \"data-close\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_MODAL: \"aria-modal\",\n ROLE: \"role\",\n TABINDEX: \"tabindex\",\n // classes\n NO_SCROLL: \"no-scroll\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n RESIZE: \"resize\",\n}\n\nconst Messages = {\n NO_BUTTON_ID_ERROR:\n \"Could not find an id on your [data-modal-button] element. Modal can't be opened.\",\n NO_MODAL_ID_ERROR:\n \"Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.\",\n NO_MODAL_ERROR: id =>\n `Could not find a [data-parent='${id}'] attribute within your [data-modal='${id}'] element.`,\n}\n\n/**\n * Modal component class.\n * @module Modal\n * @requires Utils\n */\nexport default class Modal extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleOverlayClick = this._handleOverlayClick.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n\n // all modals\n this._modals = []\n this._modalButtons = []\n\n // active modal\n this._activeModalButton = {}\n this._activeModalOverlay = {}\n this._activeModal = {}\n this._activeModalId = \"\"\n this._activeModalOverlayAttr = \"\"\n this._activeModalSelector = \"\"\n this._activeModalCloseButtons = []\n\n // attribute helpers\n this._modalContainerAttr = `[${Selectors.DATA_MODAL}]`\n }\n\n // public\n\n /**\n * Begin listening to modals.\n */\n start() {\n this._modals = nodeListToArray(this._modalContainerAttr)\n this._modalButtons = nodeListToArray(`[${Selectors.DATA_MODAL_BUTTON}]`)\n\n getFocusableElements(this._modalContainerAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._modals.length) {\n this._modals.forEach(instance => {\n this._setupModal(instance)\n })\n }\n\n if (this._modalButtons.length) {\n this._modalButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to modals\n */\n stop() {\n this._modalButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n this._activeModalButton = event.target\n this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_MODAL_BUTTON)\n\n if (!this._activeModalId) {\n return console.error(Messages.NO_BUTTON_ID_ERROR)\n }\n\n this._activeModalOverlay = document.querySelector(\n `[${Selectors.DATA_MODAL}=\"${this._activeModalId}\"]`\n )\n this._activeModalSelector = `[${Selectors.DATA_PARENT}='${this._activeModalId}']`\n this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector)\n this._activeModalCloseButtons = nodeListToArray(\n `${this._activeModalSelector} [${Selectors.DATA_CLOSE}]`\n )\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n\n this._handleScrollStop()\n this.captureFocus(this._activeModalSelector)\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n this._activeModal.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModal.focus()\n\n this._activeModalOverlay.scrollTop = 0\n\n if (iOSMobile) {\n this._activeModalOverlay.style.cursor = \"pointer\"\n }\n\n // begin listening to events\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n /**\n * Setup a modal instance.\n * @param {Object} instance - The modal element\n */\n _setupModal(instance) {\n const modalId = instance.getAttribute(Selectors.DATA_MODAL)\n\n if (!modalId) {\n return console.error(Messages.NO_MODAL_ID_ERROR)\n }\n\n const modal = instance.querySelector(`[${Selectors.DATA_PARENT}='${modalId}']`)\n\n if (!modal) {\n return console.error(Messages.NO_MODAL_ERROR(modalId))\n }\n\n const modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL}='${modalId}']`)\n\n modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n modalWrapper.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n modal.setAttribute(Selectors.ARIA_MODAL, \"true\")\n modal.setAttribute(Selectors.ROLE, \"dialog\")\n }\n\n /**\n * Turn off event listeners and reset focus to last selected DOM node (button)\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n this._handleReturnFocus()\n this._handleScrollRestore()\n this.releaseFocus()\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n this._activeModal.removeAttribute(Selectors.TABINDEX)\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (iOSMobile) {\n this._activeModalOverlay.style.cursor = \"auto\"\n }\n\n // stop listening to events\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.removeEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeModalId = null\n }\n\n /**\n * Handles click event on the modal background to close it.\n * @param {Object} event - The event object\n */\n _handleOverlayClick(event) {\n if (event.target === this._activeModalOverlay) {\n this._handleClose(event)\n }\n }\n\n /**\n * Handles escape key event to close the current modal\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Returns focus to the last focused element before the modal was called.\n * @param {Object} button - The current modal's corresponding button.\n */\n _handleReturnFocus() {\n this._activeModalButton.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModalButton.focus()\n this._activeModalButton.removeAttribute(Selectors.TABINDEX)\n }\n\n /**\n * Restores scroll behavior to and \n */\n _handleScrollRestore() {\n document.body.classList.remove(Selectors.NO_SCROLL)\n document.documentElement.classList.remove(Selectors.NO_SCROLL)\n }\n\n /**\n * Prevents scroll behavior on and \n */\n _handleScrollStop() {\n document.body.classList.add(Selectors.NO_SCROLL)\n document.documentElement.classList.add(Selectors.NO_SCROLL)\n }\n}\n","import { iOSMobile } from \"./utils\"\r\n\r\nconst KeyCodes = {\r\n ESCAPE: 27,\r\n}\r\n\r\nconst Selectors = {\r\n DATA_TOOLTIP: \"data-tooltip\",\r\n DATA_VISIBLE: \"data-visible\",\r\n DATA_TARGET: \"data-target\",\r\n ROLE: \"role\",\r\n ARIA_DESCRIBEDBY: \"aria-describedby\",\r\n DROP_LEFT_CLASS: \"is-drop-left\",\r\n DROP_RIGHT_CLASS: \"is-drop-right\",\r\n}\r\n\r\nconst Events = {\r\n CLICK: \"click\",\r\n MOUSEOVER: \"mouseover\",\r\n MOUSEOUT: \"mouseout\",\r\n FOCUS: \"focus\",\r\n BLUR: \"blur\",\r\n KEYDOWN: \"keydown\",\r\n}\r\n\r\nconst Messages = {\r\n NO_ID_ERROR: \"Could not find your tooltip's id.\",\r\n NO_TRIGGER_ERROR: id => `Could not find a tooltip trigger with id of ${id}.`,\r\n NO_TOOLTIP_ERROR: id => `Could not find a tooltip with id of ${id}.`,\r\n}\r\n\r\n/**\r\n * Tooltip component class.\r\n * @module Tooltip\r\n */\r\nexport default class Tooltip {\r\n constructor() {\r\n // events\r\n this._render = this._render.bind(this)\r\n this._handleClose = this._handleClose.bind(this)\r\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\r\n\r\n // active tooltip\r\n this._activeTrigger = null\r\n this._activeTooltip = null\r\n\r\n // all tooltips\r\n this._allTooltips = []\r\n }\r\n\r\n // public\r\n\r\n /**\r\n * Begin listening to tooltips.\r\n */\r\n start() {\r\n this._allTooltips = document.querySelectorAll(`[${Selectors.DATA_TOOLTIP}]`)\r\n\r\n this._allTooltips.forEach(instance => {\r\n this._setupTooltip(instance)\r\n })\r\n }\r\n\r\n /**\r\n * Stop listening to tooltips.\r\n */\r\n stop() {\r\n this._allTooltips.forEach(instance => {\r\n const id = instance.getAttribute(Selectors.DATA_TOOLTIP)\r\n const trigger = instance.querySelector(this._getTrigger(id))\r\n\r\n trigger.removeEventListener(Events.MOUSEOVER, this._render)\r\n trigger.removeEventListener(Events.FOCUS, this._render)\r\n })\r\n }\r\n\r\n // private\r\n\r\n /**\r\n * Render a tooltip.\r\n * @param {Object} event - The event object\r\n */\r\n _render(event) {\r\n this._activeTrigger = event.target\r\n const tooltipId = this._activeTrigger.getAttribute(Selectors.DATA_TARGET)\r\n this._activeTooltip = document.getElementById(tooltipId)\r\n\r\n // align tooltip to its trigger\r\n // -> if the trigger is on the left or right side, use height\r\n // -> else use width\r\n if (this._isLeftOrRight()) {\r\n this._alignTooltip(\"height\")\r\n } else {\r\n this._alignTooltip(\"width\")\r\n }\r\n\r\n this._showTooltip()\r\n this._listenForClose()\r\n }\r\n\r\n /**\r\n * Close a tooltip.\r\n */\r\n _handleClose() {\r\n this._hideTooltip()\r\n this._listenForOpen()\r\n\r\n this._activeTrigger = null\r\n this._activeTooltip = null\r\n }\r\n\r\n /**\r\n * Add data-visible attribute to currently active tooltip.\r\n */\r\n _showTooltip() {\r\n this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, \"true\")\r\n }\r\n\r\n /**\r\n * Remove data-visible attribute from currently active tooltip.\r\n */\r\n _hideTooltip() {\r\n this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, \"false\")\r\n }\r\n\r\n /**\r\n * Stop listening for render events, and start listening to close events.\r\n */\r\n _listenForClose() {\r\n this._activeTrigger.removeEventListener(Events.MOUSEOVER, this._render)\r\n this._activeTrigger.removeEventListener(Events.FOCUS, this._render)\r\n this._activeTrigger.addEventListener(Events.MOUSEOUT, this._handleClose)\r\n this._activeTrigger.addEventListener(Events.BLUR, this._handleClose)\r\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\r\n\r\n if (iOSMobile) {\r\n document.body.style.cursor = \"pointer\"\r\n }\r\n }\r\n\r\n /**\r\n * Close a tooltip with the escape key.\r\n * @param {Object} event - The event object\r\n */\r\n _handleEscapeKeyPress(event) {\r\n if (event.which === KeyCodes.ESCAPE) {\r\n this._handleClose()\r\n }\r\n }\r\n\r\n /**\r\n * Stop listening to close events, start listening for render events.\r\n */\r\n _listenForOpen() {\r\n this._activeTrigger.removeEventListener(Events.MOUSEOUT, this._handleClose)\r\n this._activeTrigger.removeEventListener(Events.BLUR, this._handleClose)\r\n this._activeTrigger.addEventListener(Events.MOUSEOVER, this._render)\r\n this._activeTrigger.addEventListener(Events.FOCUS, this._render)\r\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\r\n\r\n if (iOSMobile) {\r\n document.body.style.cursor = \"auto\"\r\n }\r\n }\r\n\r\n /**\r\n * Aligns a tooltip vertically or horizontally.\r\n * @param {String} property - String specifying \"height\" or \"width\"\r\n */\r\n _alignTooltip(property) {\r\n const triggerLength = this._getComputedLength(this._activeTrigger, property)\r\n const tooltipLength = this._getComputedLength(this._activeTooltip, property)\r\n const triggerIsLongest = triggerLength > tooltipLength\r\n\r\n const offset = triggerIsLongest\r\n ? (triggerLength - tooltipLength) / 2\r\n : (tooltipLength - triggerLength) / -2\r\n\r\n if (property === \"height\") {\r\n this._activeTooltip.style.top = `${offset}px`\r\n } else {\r\n this._activeTooltip.style.left = `${offset}px`\r\n }\r\n }\r\n\r\n /**\r\n * Setup a tooltip and trigger with appropriate event listeners and attributes.\r\n * @param {Object} instance - A tooltip instance\r\n */\r\n _setupTooltip(instance) {\r\n const id = instance.getAttribute(Selectors.DATA_TOOLTIP)\r\n const trigger = instance.querySelector(this._getTrigger(id))\r\n const tooltip = document.getElementById(id)\r\n\r\n if (!id) {\r\n return console.error(Messages.NO_ID_ERROR)\r\n }\r\n\r\n if (!trigger) {\r\n return console.error(Messages.NO_TRIGGER_ERROR(id))\r\n }\r\n\r\n if (!tooltip) {\r\n return console.error(Messages.NO_TOOLTIP_ERROR(id))\r\n }\r\n\r\n trigger.setAttribute(Selectors.ARIA_DESCRIBEDBY, id)\r\n tooltip.setAttribute(Selectors.ROLE, \"tooltip\")\r\n\r\n trigger.addEventListener(Events.MOUSEOVER, this._render)\r\n trigger.addEventListener(Events.FOCUS, this._render)\r\n }\r\n\r\n /**\r\n * Get an attribute selector string.\r\n * @param {String} id - A unique tooltip id\r\n * @return {String}\r\n */\r\n _getTrigger(id) {\r\n return `[${Selectors.DATA_TARGET}=\"${id}\"]`\r\n }\r\n\r\n /**\r\n * Render a tooltip.\r\n * @param {Object} element - A tooltip element\r\n * @param {String} property - The \"height\" or \"width\" property.\r\n * @return {Number}\r\n */\r\n _getComputedLength(element, property) {\r\n return parseInt(window.getComputedStyle(element)[property].slice(0, -2))\r\n }\r\n\r\n /**\r\n * Determine if a tooltip is rendering on the left or right.\r\n * @return {Boolean}\r\n */\r\n _isLeftOrRight() {\r\n const classes = this._activeTooltip.classList\r\n return (\r\n classes.contains(Selectors.DROP_LEFT_CLASS) || classes.contains(Selectors.DROP_RIGHT_CLASS)\r\n )\r\n }\r\n}\r\n","import _Accordion from \"./accordion\"\nimport _Dropdown from \"./dropdown\"\nimport _Modals from \"./modal\"\nimport _Tooltips from \"./tooltip\"\nimport _Utils from \"./utils\"\n\nexport const Accordions = new _Accordion()\nexport const Dropdowns = new _Dropdown()\nexport const Modals = new _Modals()\nexport const Tooltips = new _Tooltips()\nexport const Utils = new _Utils()\n\nconst Undernet = {\n // Components\n Modals,\n Accordions,\n Dropdowns,\n Tooltips,\n\n // Utils\n Utils,\n}\n\nUndernet.start = () => {\n // Components\n Undernet.Modals.start()\n Undernet.Accordions.start()\n Undernet.Dropdowns.start()\n Undernet.Tooltips.start()\n\n // Utils\n Undernet.Utils.enableFocusOutline()\n}\n\nUndernet.stop = () => {\n // Components\n Undernet.Modals.stop()\n Undernet.Accordions.stop()\n Undernet.Dropdowns.stop()\n\n // Utils\n Undernet.Utils.disableFocusOutline()\n}\n\nexport default Undernet\n","import Undernet from \"./index\"\n\nwindow.Undernet = Undernet\nexport { default as Undernet, Modals, Accordions, Dropdowns, Tooltips, Utils } from \"./index\"\n"],"names":["KeyCodes","Selectors","NOT_VISUALLY_HIDDEN","FOCUSABLE_TAGS","KEYBOARD_CLASS","Events","nodeListToArray","nodeList","Array","apply","document","querySelectorAll","getFocusableElements","container","focusables","map","element","join","iOSMobile","test","navigator","userAgent","Utils","_listenForKeyboard","this","bind","_listenForClick","_handleFocusTrapWithTab","_handleFocusTrapWithArrows","_focusContainerSelector","_focusableChildren","_focusableFirstChild","_focusableLastChild","_listeningForKeydown","_trapFocusWithArrows","options","length","useArrows","addEventListener","removeEventListener","event","body","classList","add","remove","containerElement","querySelector","containerActive","activeElement","firstActive","lastActive","tabKey","which","shiftKey","preventDefault","focus","arrowUp","arrowDown","_focusNextChild","_focusLastChild","i","Messages","NO_VISIBLE_ERROR","id","NO_ROW_ERROR","NO_HEADER_ID_ERROR","NO_PARENT_ERROR","NO_CONTENT_ERROR","Accordion","_render","_this","_accordionButtons","_accordionContentsAttr","_accordionContents","_activeContainer","_activeButton","_activeAccordionRowId","_activeRowAttr","_activeRow","_activeContainerId","_activeContainerAttr","_activeContent","_activeButtonExpandState","_activeContentHiddenState","_headerLevels","accordionButtonSelector","_getPossibleAccordionButtonAttrs","forEach","button","_this2","_setupAccordion","_this3","target","getAttribute","_getAccordionRowAttr","console","error","NO_ACCORDION_ERROR","getElementById","accordionButtonState","_closeAllIfToggleable","_toggleSelectedAccordion","buttonId","buttonContent","accordionRowAttr","accordionRow","buttonHeaderAttr","_getPossibleAccordionHeaderAttrs","buttonHeader","buttonContentChildren","setAttribute","contentShouldExpand","style","maxHeight","scrollHeight","attr","num","hasAttribute","allContentAttr","allRows","allContent","allButtons","content","_this4","_toggleAttributeInCollection","activeContentBlock","value","_this5","elements","attributeName","currentValue","newValue","DATA_DROPDOWN","DATA_TARGET","DATA_PARENT","DATA_VISIBLE","TABINDEX","ARIA_HASPOPUP","ARIA_CONTROLS","ARIA_LABELLEDBY","ARIA_EXPANDED","ROLE","Dropdown","_handleFirstTabClose","_handleLastTabClose","_renderWithKeys","_handleClose","_handleEscapeKeyPress","_handleOffMenuClick","_activeDropdownButton","_activeDropdown","_activeDropdownMenu","_activeDropdownLinks","_allowFocusReturn","_activeDropdownId","_activeDropdownAttr","_activeDropdownMenuId","_dropdownButtons","_dropdowns","_dropdownContainerAttr","_dropdownTargetAttr","dropdown","_setupDropdown","key","stopPropagation","cursor","_getDropdownLinks","firstDropdownLink","lastDropdownLink","link","captureFocus","releaseFocus","_handleReturnFocus","TAB_INDEX","removeAttribute","dropdownId","dropdownAttr","dropdownMenuItemsAttr","dropdownMenu","dropdownButton","item","Modal","_handleOverlayClick","_modals","_modalButtons","_activeModalButton","_activeModalOverlay","_activeModal","_activeModalId","_activeModalOverlayAttr","_activeModalSelector","_activeModalCloseButtons","_modalContainerAttr","instance","_setupModal","_handleScrollStop","scrollTop","modalId","modal","modalWrapper","_handleScrollRestore","documentElement","Tooltip","_activeTrigger","_activeTooltip","_allTooltips","_setupTooltip","trigger","_getTrigger","tooltipId","_isLeftOrRight","_alignTooltip","_showTooltip","_listenForClose","_hideTooltip","_listenForOpen","property","triggerLength","_getComputedLength","tooltipLength","offset","top","left","tooltip","parseInt","window","getComputedStyle","slice","classes","contains","Accordions","_Accordion","Dropdowns","_Dropdown","Modals","_Modals","Tooltips","_Tooltips","_Utils","Undernet","start","enableFocusOutline","stop","disableFocusOutline"],"mappings":"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"} \ No newline at end of file diff --git a/dist/undernet.css b/dist/undernet.css index b36047e7..6ac006e8 100644 --- a/dist/undernet.css +++ b/dist/undernet.css @@ -1,7 +1,7 @@ @charset "UTF-8"; /*! * @license MIT (https://github.com/geotrev/undernet/blob/master/LICENSE) -* Undernet v3.3.7 (https://undernet.io) +* Undernet v4.0.0 (https://undernet.io) * Copyright 2017-2019 George Treviranus */ html, @@ -1924,8 +1924,6 @@ textarea:disabled, textarea.disabled, button:disabled, button.disabled, -a:disabled, -a.disabled, .button:disabled, .button.disabled { background: #dedede !important; @@ -1973,8 +1971,6 @@ a.disabled, textarea.disabled:hover, button:disabled:hover, button.disabled:hover, - a:disabled:hover, - a.disabled:hover, .button:disabled:hover, .button.disabled:hover { background: #dedede !important; @@ -2071,7 +2067,7 @@ textarea { border: 1px solid #dedede; z-index: 1999; } .modal-dialog .dropdown .dropdown-menu { - z-index: 2001; } + z-index: 2002; } .dropdown .dropdown-menu:not(.has-no-arrow)::after { content: ""; border-bottom: 7px solid transparent; @@ -2080,7 +2076,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-bottom: 7px solid #ffffff; - top: -14px; + top: -13px; left: 12px; right: auto; bottom: auto; } @@ -2092,7 +2088,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-bottom: 7px solid #dedede; - top: -15px; + top: -14.5px; left: 12px; right: auto; bottom: auto; } @@ -2108,7 +2104,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-top: 7px solid #ffffff; - bottom: -14px; + bottom: -13px; left: 12px; top: auto; right: auto; } @@ -2120,7 +2116,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-top: 7px solid #dedede; - bottom: -15px; + bottom: -14.5px; left: 12px; top: auto; right: auto; } @@ -2136,7 +2132,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-left: 7px solid #ffffff; - right: -14px; + right: -13px; top: 12px; left: auto; bottom: auto; } @@ -2148,7 +2144,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-left: 7px solid #dedede; - right: -15px; + right: -14.5px; top: 12px; left: auto; bottom: auto; } @@ -2164,7 +2160,7 @@ textarea { border-right: 7px solid transparent; position: absolute; border-right: 7px solid #ffffff; - left: -14px; + left: -13px; top: 12px; bottom: auto; right: auto; } @@ -2176,25 +2172,25 @@ textarea { border-right: 7px solid transparent; position: absolute; border-right: 7px solid #dedede; - left: -15px; + left: -14.5px; top: 12px; bottom: auto; right: auto; } .dropdown .dropdown-menu.is-aligned-right { right: 0; } - .dropdown .dropdown-menu.is-aligned-right:not(.has-no-arrow)::after { + .dropdown .dropdown-menu.is-aligned-right::after { left: auto; right: 12px; } - .dropdown .dropdown-menu.is-aligned-right:not(.has-no-arrow)::before { + .dropdown .dropdown-menu.is-aligned-right::before { left: auto; right: 12px; } .dropdown .dropdown-menu.is-aligned-bottom { top: auto; bottom: 16px; } - .dropdown .dropdown-menu.is-aligned-bottom:not(.has-no-arrow)::after { + .dropdown .dropdown-menu.is-aligned-bottom::after { top: auto; bottom: 12px; } - .dropdown .dropdown-menu.is-aligned-bottom:not(.has-no-arrow)::before { + .dropdown .dropdown-menu.is-aligned-bottom::before { top: auto; bottom: 12px; } } .dropdown .dropdown-menu li { @@ -2346,4 +2342,152 @@ textarea { transition: max-height 0.5s cubic-bezier(0.12, 0.72, 0.58, 1.03); border-bottom: 2px solid #dedede; } +.tooltip { + position: relative; + display: inline-block; } + +.tooltip-trigger { + display: inline-block; + cursor: pointer; } + .tooltip-trigger > *:disabled, + .tooltip-trigger > .disabled { + pointer-events: none; } + +.tooltip-box { + padding: 4px 8px; + border-radius: 4px; + border: 1px solid #111; + background: #111; + position: absolute; + display: block; + opacity: 0; + transition: opacity cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s; + pointer-events: none; + word-wrap: break-word; + white-space: nowrap; + text-align: center; + z-index: 1998; + color: #ffffff; + font-size: 14px; + margin: 0 0 7px; + bottom: 100%; + left: 0; } + .tooltip-box[data-visible="true"] { + opacity: 1; + pointer-events: auto; } + .modal-dialog .tooltip-box { + z-index: 2001; } + .tooltip-box:not(.has-no-arrow)::after { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-top: 7px solid #111; + bottom: -13px; + left: calc(50% - 7px); + top: auto; + right: auto; } + .tooltip-box:not(.has-no-arrow)::before { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-top: 7px solid #111; + bottom: -14.5px; + left: calc(50% - 7px); + top: auto; + right: auto; } + .tooltip-box.is-drop-right { + left: 100%; + margin: 0 0 0 7px; + bottom: auto; + top: 0; } + .tooltip-box.is-drop-right:not(.has-no-arrow)::after { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-right: 7px solid #111; + left: -13px; + top: calc(50% - 7px); + bottom: auto; + right: auto; } + .tooltip-box.is-drop-right:not(.has-no-arrow)::before { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-right: 7px solid #111; + left: -14.5px; + top: calc(50% - 7px); + bottom: auto; + right: auto; } + .tooltip-box.is-drop-left { + right: 100%; + margin: 0 7px 0 0; + bottom: auto; + left: auto; + top: 0; } + .tooltip-box.is-drop-left:not(.has-no-arrow)::after { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-left: 7px solid #111; + right: -13px; + top: calc(50% - 7px); + left: auto; + bottom: auto; } + .tooltip-box.is-drop-left:not(.has-no-arrow)::before { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-left: 7px solid #111; + right: -14.5px; + top: calc(50% - 7px); + left: auto; + bottom: auto; } + .tooltip-box.is-drop-down { + top: 100%; + margin: -7px 0 0 0; + bottom: auto; + left: 0; } + .tooltip-box.is-drop-down:not(.has-no-arrow)::after { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-bottom: 7px solid #111; + top: -13px; + left: calc(50% - 7px); + right: auto; + bottom: auto; } + .tooltip-box.is-drop-down:not(.has-no-arrow)::before { + content: ""; + border-bottom: 7px solid transparent; + border-top: 7px solid transparent; + border-left: 7px solid transparent; + border-right: 7px solid transparent; + position: absolute; + border-bottom: 7px solid #111; + top: -14.5px; + left: calc(50% - 7px); + right: auto; + bottom: auto; } + /*# sourceMappingURL=undernet.css.map */ \ No newline at end of file diff --git a/dist/undernet.css.map b/dist/undernet.css.map index cbd7cdbd..3357ca9b 100644 --- a/dist/undernet.css.map +++ b/dist/undernet.css.map @@ -3,21 +3,21 @@ "file": "undernet.css", "sources": [ "../scss/undernet.scss", - "../scss/helpers/_functions.scss", + "../scss/utilities/_functions.scss", "../scss/_config.scss", - "../scss/helpers/_mixins.scss", - "../scss/elements/_reset.scss", - "../scss/helpers/_classes.scss", - "../scss/elements/_grid.scss", + "../scss/utilities/_mixins.scss", + "../scss/utilities/_reset.scss", + "../scss/utilities/_classes.scss", + "../scss/layout/_grid.scss", "../scss/elements/_typography.scss", - "../scss/elements/_link.scss", "../scss/elements/_button.scss", "../scss/elements/_form.scss", "../scss/components/_dropdown.scss", "../scss/components/_modal.scss", "../scss/components/_accordion.scss", - "../scss/helpers/_scope-overrides.scss" + "../scss/components/_tooltip.scss", + "../scss/utilities/_scope-overrides.scss" ], "names": [], - "mappings": ";AAAA;;;;EAIE;AIJF,AAAA,IAAI;AACJ,IAAI;AACJ,CAAC;AACD,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,UAAU;AACV,MAAM;AACN,QAAQ;AACR,MAAM;AACN,QAAQ;AACR,GAAG;AACH,MAAM;AACN,GAAG;AACH,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE,CAAC;EACD,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC,GACX;;AAED,AAAA,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE,CAAC;EACD,SAAS,EAAE,IAAI;EACf,WAAW,EAAE,MAAM,GACpB;;AAED,AAAA,EAAE,CAAC;EACD,UAAU,EAAE,IAAI,GACjB;;AAED,AAAA,MAAM;AACN,KAAK;AACL,MAAM;AACN,QAAQ,CAAC;EACP,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,CAAC;AACD,MAAM;AACN,KAAK;AACL,KAAK;AACL,MAAM;AACN,QAAQ,CAAC;EACP,2BAA2B,EAAE,WAAW,GACzC;;AAED,AAAA,GAAG;AACH,KAAK;AACL,MAAM;AACN,MAAM;AACN,KAAK;AACL,KAAK,CAAC;EACJ,MAAM,EAAE,IAAI;EACZ,SAAS,EAAE,IAAI,GAChB;;AAED,AAAA,MAAM,CAAC;EACL,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,KAAK,CAAC;EACJ,eAAe,EAAE,QAAQ;EACzB,cAAc,EAAE,CAAC,GAClB;;AAED,AAAA,EAAE;AACF,EAAE,CAAC;EACD,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,IAAI,GACjB;;AAED,AAAA,IAAI;AACJ,IAAI,CAAC;EACH,WAAW,EFvDM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;EEuDvC,SAAS,EFnDQ,IAAI;EEoDrB,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC;EACV,UAAU,EAAE,UAAU;EACtB,WAAW,EFlDQ,GAAG,GEmDvB;;AAED,AAAA,CAAC;AACD,CAAC,AAAA,OAAO;AACR,CAAC,AAAA,MAAM,CAAC;EACN,UAAU,EAAE,OAAO,GACpB;;AAED,AAEE,IAFE,CAEF,CAAC,AAAA,MAAM;AADT,IAAI,CACF,CAAC,AAAA,MAAM,CAAC;EACN,OAAO,EFlBM,IAAI,GEmBlB;;ADgFD,AAAA,eAAe,CACb,CAAC,AAAA,IAAK,EAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa,IAAK,EAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,EAAc,IAAK,EAAA,AAAA,IAAC,CAAK,UAAU,AAAf,EAAiB,IAAK,EAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,EAAe,IAAK,EAAA,AAAA,IAAC,CAAK,KAAK,AAAV,EAAY,IAAK,CAAA,QAAQ,CAAC,IAAK,CAAA,MAAM,CAAC,MAAM,CAAC;EACvI,OAAO,EDpGqB,GAAG,CAAC,KAAK,CAxCvB,OAAO,CC4ImB,UAAU,GACnD;;AEjLH,AAAA,cAAc,CAAC;EACb,WAAW,EHoBM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU,CGrBR,UAAU,GAC1C;;AACD,AAAA,eAAe,CAAC;EACd,WAAW,EHmBO,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,EACnF,cAAc,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,OAAO,EAAE,KAAK,CGpB1C,UAAU,GAC3C;;AAGC,AAAA,gBAAgB,CAAO;EACrB,UAAU,EAFK,MAAM,CAEC,UAAU,GACjC;;AAFD,AAAA,cAAc,CAAS;EACrB,UAAU,EAFa,IAAI,CAEL,UAAU,GACjC;;AAFD,AAAA,eAAe,CAAQ;EACrB,UAAU,EAFmB,KAAK,CAEZ,UAAU,GACjC;;AAGH,AAAA,QAAQ,CAAC;EACP,WAAW,EHca,IAAI,CGdU,UAAU,GACjD;;AACD,AAAA,UAAU,CAAC;EACT,UAAU,EHae,MAAM,CGbO,UAAU,GACjD;;AAKC,AAAA,uBAAuB,CAAJ;EACjB,KAAK,EHWO,OAAO,CGXL,UAAU,GACzB;;AACD,AAAA,qBAAqB,CAAJ;EACf,gBAAgB,EHQJ,OAAO,CGRM,UAAU,GACpC;;AALD,AAAA,yBAAyB,CAAN;EACjB,KAAK,EHYS,OAAO,CGZP,UAAU,GACzB;;AACD,AAAA,uBAAuB,CAAN;EACf,gBAAgB,EHSF,OAAO,CGTI,UAAU,GACpC;;AALD,AAAA,wBAAwB,CAAL;EACjB,KAAK,EHaQ,IAAI,CGbH,UAAU,GACzB;;AACD,AAAA,sBAAsB,CAAL;EACf,gBAAgB,EHUH,IAAI,CGVQ,UAAU,GACpC;;AALD,AAAA,eAAe,CAAI;EACjB,KAAK,EHcD,OAAO,CGdG,UAAU,GACzB;;AACD,AAAA,aAAa,CAAI;EACf,gBAAgB,EHWZ,OAAO,CGXc,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHeC,IAAI,CGfI,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHYV,IAAI,CGZe,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHgBC,IAAI,CGhBI,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHaV,IAAI,CGbe,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHiBC,IAAI,CGjBI,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHcV,IAAI,CGde,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHkBC,IAAI,CGlBI,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHeV,IAAI,CGfe,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHmBC,IAAI,CGnBI,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHgBV,IAAI,CGhBe,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHoBC,OAAO,CGpBC,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHiBV,OAAO,CGjBY,UAAU,GACpC;;AALD,AAAA,eAAe,CAAI;EACjB,KAAK,EHqBD,OAAO,CGrBG,UAAU,GACzB;;AACD,AAAA,aAAa,CAAI;EACf,gBAAgB,EHkBZ,OAAO,CGlBc,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHwBI,KAAK,CGxBA,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHqBP,KAAK,CGrBW,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EHyBI,OAAO,CGzBF,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHsBP,OAAO,CGtBS,UAAU,GACpC;;AALD,AAAA,iBAAiB,CAAE;EACjB,KAAK,EH0BI,OAAO,CG1BF,UAAU,GACzB;;AACD,AAAA,eAAe,CAAE;EACf,gBAAgB,EHuBP,OAAO,CGvBS,UAAU,GACpC;;AALD,AAAA,gBAAgB,CAAG;EACjB,KAAK,EH2BG,SAAS,CG3BH,UAAU,GACzB;;AACD,AAAA,cAAc,CAAG;EACf,gBAAgB,EHwBR,SAAS,CGxBQ,UAAU,GACpC;;AAUC,AAAA,QAAQ,CAAC;EACP,OAAO,EAAE,eAAe,GACzB;;AACD,AAAA,SAAS,CAAC;EACR,OAAO,EAAE,gBAAgB,GAC1B;;AACD,AAAA,UAAU,CAAC;EACT,OAAO,EAAE,eAAe,GACzB;;AFfH,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EA6HnC,AAAA,cAAc,CAAI;IAChB,OAAO,EAAE,eAAe,GACzB;EACD,AAAA,eAAe,CAAI;IACjB,OAAO,EAAE,gBAAgB,GAC1B;EACD,AAAA,gBAAgB,CAAI;IAClB,OAAO,EAAE,eAAe,GACzB;;AArID,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EA6HnC,AAAA,eAAe,CAAG;IAChB,OAAO,EAAE,eAAe,GACzB;EACD,AAAA,gBAAgB,CAAG;IACjB,OAAO,EAAE,gBAAgB,GAC1B;EACD,AAAA,iBAAiB,CAAG;IAClB,OAAO,EAAE,eAAe,GACzB;;AArID,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EA6HnC,AAAA,cAAc,CAAI;IAChB,OAAO,EAAE,eAAe,GACzB;EACD,AAAA,eAAe,CAAI;IACjB,OAAO,EAAE,gBAAgB,GAC1B;EACD,AAAA,gBAAgB,CAAI;IAClB,OAAO,EAAE,eAAe,GACzB;;AArID,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,MAAM;EA6HpC,AAAA,eAAe,CAAG;IAChB,OAAO,EAAE,eAAe,GACzB;EACD,AAAA,gBAAgB,CAAG;IACjB,OAAO,EAAE,gBAAgB,GAC1B;EACD,AAAA,iBAAiB,CAAG;IAClB,OAAO,EAAE,eAAe,GACzB;;AE3GD,AAAA,YAAY,CAAU;EACpB,cAAc,EAFC,GAAG,CAEQ,UAAU,GACrC;;AAFD,AAAA,eAAe,CAAO;EACpB,cAAc,EAFM,MAAM,CAEA,UAAU,GACrC;;AAMD,AAAA,oBAAoB,CAAO;EACzB,eAAe,EAFA,MAAM,CAEM,UAAU,GACtC;;AAFD,AAAA,sBAAsB,CAAK;EACzB,eAAe,EAFQ,QAAQ,CAEJ,UAAU,GACtC;;AAFD,AAAA,wBAAwB,CAAG;EACzB,eAAe,EAFkB,UAAU,CAEhB,UAAU,GACtC;;AAFD,AAAA,0BAA0B,CAAC;EACzB,eAAe,EAF8B,YAAY,CAE9B,UAAU,GACtC;;AAFD,AAAA,2BAA2B,CAAA;EACzB,eAAe,EAF4C,aAAa,CAE7C,UAAU,GACtC;;AAMD,AAAA,kBAAkB,CAAO;EACvB,WAAW,EAFI,MAAM,CAEE,UAAU,GAClC;;AAFD,AAAA,oBAAoB,CAAK;EACvB,WAAW,EAFY,QAAQ,CAER,UAAU,GAClC;;AAFD,AAAA,sBAAsB,CAAG;EACvB,WAAW,EAFsB,UAAU,CAEpB,UAAU,GAClC;;AAFD,AAAA,mBAAmB,CAAM;EACvB,WAAW,EAFkC,OAAO,CAE7B,UAAU,GAClC;;AAMD,AAAA,mBAAmB,CAAO;EACxB,aAAa,EAFE,MAAM,CAEI,UAAU,GACpC;;AAFD,AAAA,qBAAqB,CAAK;EACxB,aAAa,EAFU,QAAQ,CAEN,UAAU,GACpC;;AAFD,AAAA,uBAAuB,CAAG;EACxB,aAAa,EAFoB,UAAU,CAElB,UAAU,GACpC;;AAFD,AAAA,yBAAyB,CAAC;EACxB,aAAa,EAFgC,YAAY,CAEhC,UAAU,GACpC;;AAFD,AAAA,0BAA0B,CAAA;EACxB,aAAa,EAF8C,aAAa,CAE/C,UAAU,GACpC;;AAFD,AAAA,oBAAoB,CAAM;EACxB,aAAa,EAF6D,OAAO,CAExD,UAAU,GACpC;;AAKH,AAAA,SAAS,CAAC;EACR,SAAS,EAAE,YAAY,GACxB;;AACD,AAAA,WAAW,CAAC;EACV,WAAW,EAAE,YAAY,GAC1B;;AACD,AAAA,UAAU,CAAC;EACT,SAAS,EAAE,YAAY,GACxB;;AACD,AAAA,YAAY,CAAC;EACX,WAAW,EAAE,YAAY,GAC1B;;AAID,AAAA,cAAc,CAAC;EACb,MAAM,EAAE,YAAY,GACrB;;AACD,AAAA,eAAe,CAAC;EACd,OAAO,EAAE,YAAY,GACtB;;AAKC,AAAA,oBAAoB,CAAK;EACvB,YAAgB,EAAU,YAAY,GACvC;;AACD,AAAA,mBAAmB,CAAK;EACtB,WAAe,EAAS,YAAY,GACrC;;AALD,AAAA,qBAAqB,CAAI;EACvB,aAAgB,EAAU,YAAY,GACvC;;AACD,AAAA,oBAAoB,CAAI;EACtB,YAAe,EAAS,YAAY,GACrC;;AALD,AAAA,mBAAmB,CAAM;EACvB,WAAgB,EAAU,YAAY,GACvC;;AACD,AAAA,kBAAkB,CAAM;EACtB,UAAe,EAAS,YAAY,GACrC;;AALD,AAAA,sBAAsB,CAAG;EACvB,cAAgB,EAAU,YAAY,GACvC;;AACD,AAAA,qBAAqB,CAAG;EACtB,aAAe,EAAS,YAAY,GACrC;;AAKH,AAAA,YAAY,CAAC;EACX,OAAO,EH9CM,IAAI,CG8CM,UAAU,GAClC;;AACD,AAAA,WAAW,CAAC;EACV,MAAM,EHjDO,IAAI,CGiDK,UAAU,GACjC;;AAKC,AAAA,iBAAiB,CAAK;EACpB,YAAgB,EHxDL,IAAI,CGwDyB,UAAU,GACnD;;AACD,AAAA,gBAAgB,CAAK;EACnB,WAAe,EH3DJ,IAAI,CG2DuB,UAAU,GACjD;;AALD,AAAA,kBAAkB,CAAI;EACpB,aAAgB,EHxDL,IAAI,CGwDyB,UAAU,GACnD;;AACD,AAAA,iBAAiB,CAAI;EACnB,YAAe,EH3DJ,IAAI,CG2DuB,UAAU,GACjD;;AALD,AAAA,gBAAgB,CAAM;EACpB,WAAgB,EHxDL,IAAI,CGwDyB,UAAU,GACnD;;AACD,AAAA,eAAe,CAAM;EACnB,UAAe,EH3DJ,IAAI,CG2DuB,UAAU,GACjD;;AALD,AAAA,mBAAmB,CAAG;EACpB,cAAgB,EHxDL,IAAI,CGwDyB,UAAU,GACnD;;AACD,AAAA,kBAAkB,CAAG;EACnB,aAAe,EH3DJ,IAAI,CG2DuB,UAAU,GACjD;;AAKD,AAAA,cAAc,CAAQ;EACpB,OAAO,EHhEJ,GAAmB,CGgEN,UAAU,GAC3B;;AACD,AAAA,aAAa,CAAQ;EACnB,MAAM,EHnEH,GAAmB,CGmEP,UAAU,GAC1B;;AAIC,AAAA,kBAAkB,CAAY;EAC5B,WAAe,EHzEd,GAAmB,CGyEW,UAAU,GAC1C;;AACD,AAAA,mBAAmB,CAAY;EAC7B,YAAgB,EH5Ef,GAAmB,CG4Ea,UAAU,GAC5C;;AALD,AAAA,mBAAmB,CAAW;EAC5B,YAAe,EHzEd,GAAmB,CGyEW,UAAU,GAC1C;;AACD,AAAA,oBAAoB,CAAW;EAC7B,aAAgB,EH5Ef,GAAmB,CG4Ea,UAAU,GAC5C;;AALD,AAAA,iBAAiB,CAAa;EAC5B,UAAe,EHzEd,GAAmB,CGyEW,UAAU,GAC1C;;AACD,AAAA,kBAAkB,CAAa;EAC7B,WAAgB,EH5Ef,GAAmB,CG4Ea,UAAU,GAC5C;;AALD,AAAA,oBAAoB,CAAU;EAC5B,aAAe,EHzEd,GAAmB,CGyEW,UAAU,GAC1C;;AACD,AAAA,qBAAqB,CAAU;EAC7B,cAAgB,EH5Ef,GAAmB,CG4Ea,UAAU,GAC5C;;AAdH,AAAA,cAAc,CAAQ;EACpB,OAAO,EH/DJ,IAAoB,CG+DP,UAAU,GAC3B;;AACD,AAAA,aAAa,CAAQ;EACnB,MAAM,EHlEH,IAAoB,CGkER,UAAU,GAC1B;;AAIC,AAAA,kBAAkB,CAAY;EAC5B,WAAe,EHxEd,IAAoB,CGwEU,UAAU,GAC1C;;AACD,AAAA,mBAAmB,CAAY;EAC7B,YAAgB,EH3Ef,IAAoB,CG2EY,UAAU,GAC5C;;AALD,AAAA,mBAAmB,CAAW;EAC5B,YAAe,EHxEd,IAAoB,CGwEU,UAAU,GAC1C;;AACD,AAAA,oBAAoB,CAAW;EAC7B,aAAgB,EH3Ef,IAAoB,CG2EY,UAAU,GAC5C;;AALD,AAAA,iBAAiB,CAAa;EAC5B,UAAe,EHxEd,IAAoB,CGwEU,UAAU,GAC1C;;AACD,AAAA,kBAAkB,CAAa;EAC7B,WAAgB,EH3Ef,IAAoB,CG2EY,UAAU,GAC5C;;AALD,AAAA,oBAAoB,CAAU;EAC5B,aAAe,EHxEd,IAAoB,CGwEU,UAAU,GAC1C;;AACD,AAAA,qBAAqB,CAAU;EAC7B,cAAgB,EH3Ef,IAAoB,CG2EY,UAAU,GAC5C;;AAdH,AAAA,cAAc,CAAQ;EACpB,OAAO,EH9DJ,IAAmB,CG8DN,UAAU,GAC3B;;AACD,AAAA,aAAa,CAAQ;EACnB,MAAM,EHjEH,IAAmB,CGiEP,UAAU,GAC1B;;AAIC,AAAA,kBAAkB,CAAY;EAC5B,WAAe,EHvEd,IAAmB,CGuEW,UAAU,GAC1C;;AACD,AAAA,mBAAmB,CAAY;EAC7B,YAAgB,EH1Ef,IAAmB,CG0Ea,UAAU,GAC5C;;AALD,AAAA,mBAAmB,CAAW;EAC5B,YAAe,EHvEd,IAAmB,CGuEW,UAAU,GAC1C;;AACD,AAAA,oBAAoB,CAAW;EAC7B,aAAgB,EH1Ef,IAAmB,CG0Ea,UAAU,GAC5C;;AALD,AAAA,iBAAiB,CAAa;EAC5B,UAAe,EHvEd,IAAmB,CGuEW,UAAU,GAC1C;;AACD,AAAA,kBAAkB,CAAa;EAC7B,WAAgB,EH1Ef,IAAmB,CG0Ea,UAAU,GAC5C;;AALD,AAAA,oBAAoB,CAAU;EAC5B,aAAe,EHvEd,IAAmB,CGuEW,UAAU,GAC1C;;AACD,AAAA,qBAAqB,CAAU;EAC7B,cAAgB,EH1Ef,IAAmB,CG0Ea,UAAU,GAC5C;;AAdH,AAAA,cAAc,CAAQ;EACpB,OAAO,EH7DJ,IAAiB,CG6DJ,UAAU,GAC3B;;AACD,AAAA,aAAa,CAAQ;EACnB,MAAM,EHhEH,IAAiB,CGgEL,UAAU,GAC1B;;AAIC,AAAA,kBAAkB,CAAY;EAC5B,WAAe,EHtEd,IAAiB,CGsEa,UAAU,GAC1C;;AACD,AAAA,mBAAmB,CAAY;EAC7B,YAAgB,EHzEf,IAAiB,CGyEe,UAAU,GAC5C;;AALD,AAAA,mBAAmB,CAAW;EAC5B,YAAe,EHtEd,IAAiB,CGsEa,UAAU,GAC1C;;AACD,AAAA,oBAAoB,CAAW;EAC7B,aAAgB,EHzEf,IAAiB,CGyEe,UAAU,GAC5C;;AALD,AAAA,iBAAiB,CAAa;EAC5B,UAAe,EHtEd,IAAiB,CGsEa,UAAU,GAC1C;;AACD,AAAA,kBAAkB,CAAa;EAC7B,WAAgB,EHzEf,IAAiB,CGyEe,UAAU,GAC5C;;AALD,AAAA,oBAAoB,CAAU;EAC5B,aAAe,EHtEd,IAAiB,CGsEa,UAAU,GAC1C;;AACD,AAAA,qBAAqB,CAAU;EAC7B,cAAgB,EHzEf,IAAiB,CGyEe,UAAU,GAC5C;;AAML,AAAA,iBAAiB,CAAC;EAChB,eAAe,EAAE,eAAe;EAChC,YAAY,EAAE,YAAY,GAC3B;;AASD,AAAA,mBAAmB,EAgBnB,6BAA6B,CAhBT;EAClB,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,aAAa;EACnB,MAAM,EAAE,GAAG;EACX,MAAM,EAAE,IAAI;EACZ,QAAQ,EAAE,MAAM;EAChB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,QAAQ;EAClB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,GAAG,GACX;;AAMD,AAGE,6BAH2B,AAG1B,OAAO,EAHV,6BAA6B,AAI1B,MAAM,CAAC;EACN,IAAI,EAAE,IAAI;EACV,MAAM,EAAE,IAAI;EACZ,MAAM,EAAE,CAAC;EACT,QAAQ,EAAE,OAAO;EACjB,QAAQ,EAAE,MAAM;EAChB,WAAW,EAAE,MAAM;EACnB,KAAK,EAAE,IAAI,GACZ;;AChNH,AAAA,KAAK,AAAA,QAAQ;AACb,KAAK,AAAA,OAAO;AACZ,KAAK,CAAC,IAAI,AAAA,QAAQ;AAClB,KAAK,CAAC,IAAI,AAAA,OAAO;AACjB,IAAI,CAAC,OAAO,AAAA,QAAQ;AACpB,IAAI,CAAC,OAAO,AAAA,OAAO;AACnB,IAAI,CAAC,QAAQ,AAAA,QAAQ;AACrB,IAAI,CAAC,QAAQ,AAAA,OAAO,CAAS;EAC3B,OAAO,EAAE,KAAK;EACd,MAAM,EAAE,CAAC;EACT,KAAK,EAAE,CAAC;EACR,OAAO,EAAE,CAAC;EACV,MAAM,EAAE,CAAC,GACV;;AAED,AAAA,KAAK,CAAK;EHVR,OAAO,EGWO,IAAI;EHVlB,SAAS,EGUW,MAAM,CAAE,MAAM;EHTlC,IAAI,EGSgC,CAAC,CAAE,CAAC,CAAE,CAAC;EAE3C,UAAU,EAAE,UAAU;EACtB,MAAM,EAAE,MAAM;EACd,SAAS,EJ6GE,KAAK;EI5GhB,YAAY,EJ8DC,IAAI;EI7DjB,aAAa,EJ6DA,IAAI;EI5DjB,QAAQ,EAAE,QAAQ,GACnB;;AAED,AAAA,IAAI,CAAK;EHrBP,OAAO,EGsBO,IAAI;EHrBlB,SAAS,EGqBW,GAAG,CAAE,IAAI;EHpB7B,IAAI,EGoB2B,CAAC,CAAE,CAAC,CAAE,IAAI;EACzC,QAAQ,EAAE,QAAQ;EAClB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,GAAG,GAChB;;AAED,AAAA,QAAQ;AACR,OAAO,CAAK;EH3BV,IAAI,EG4BiB,CAAC,CAAW,CAAC,CAAU,IAAI;EAChD,UAAU,EAAE,UAAU;EACtB,SAAS,EAAE,IAAI;EACf,UAAU,EAAE,GAAG;EACf,SAAS,EAAE,CAAC;EACZ,cAAc,EJ2CD,IAAI;EI1CjB,YAAY,EJ6FE,GAAiB;EI5F/B,aAAa,EJ4FC,GAAiB;EI3F/B,WAAW,EJyFQ,CAAC;EIxFpB,SAAS,EAAE,UAAU,GACtB;;AHhCG,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,QAAyB;EACrE,SAAS,EAAE,QAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,QAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,GAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,GAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;EACrE,SAAS,EAAE,GAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,GAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,GAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;EACrE,SAAS,EAAE,GAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,GAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,SAAS,CAAO;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;EACrE,SAAS,EAAE,GAAyB,GACrC;;AAGC,AAAA,gBAAgB,CAAO;EACrB,WAAW,EAAE,GAAyB,GACvC;;AAOD,AAAA,eAAe,CAAO;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,UAAU,CAAM;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,iBAAiB,CAAM;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,gBAAgB,CAAM;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,UAAU,CAAM;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;EACrE,SAAS,EAAE,SAAyB,GACrC;;AAGC,AAAA,iBAAiB,CAAM;EACrB,WAAW,EAAE,SAAyB,GACvC;;AAOD,AAAA,gBAAgB,CAAM;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAjBH,AAAA,UAAU,CAAM;EANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,IAAyB;EACrE,SAAS,EAAE,IAAyB,GACrC;;AAGC,AAAA,iBAAiB,CAAM;EACrB,WAAW,EAAE,IAAyB,GACvC;;AAOD,AAAA,gBAAgB,CAAM;EACpB,KAAK,EAjBE,EAAC,GAkBT;;AAML,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EAvBjC,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,QAAyB;IACrE,SAAS,EAAE,QAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,QAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,IAAyB;IACrE,SAAS,EAAE,IAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,IAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;;AAML,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EAvBjC,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,QAAyB;IACrE,SAAS,EAAE,QAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,QAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,UAAU,CAAM;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,iBAAiB,CAAM;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,gBAAgB,CAAM;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,UAAU,CAAM;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,iBAAiB,CAAM;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,gBAAgB,CAAM;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,UAAU,CAAM;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,IAAyB;IACrE,SAAS,EAAE,IAAyB,GACrC;EAGC,AAAA,iBAAiB,CAAM;IACrB,WAAW,EAAE,IAAyB,GACvC;EAOD,AAAA,gBAAgB,CAAM;IACpB,KAAK,EAjBE,EAAC,GAkBT;;AAML,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EAvBjC,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,QAAyB;IACrE,SAAS,EAAE,QAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,QAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,QAAQ,CAAQ;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,eAAe,CAAQ;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,cAAc,CAAQ;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,IAAyB;IACrE,SAAS,EAAE,IAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,IAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;;AAML,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,MAAM;EAvBlC,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,QAAyB;IACrE,SAAS,EAAE,QAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,QAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,GAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,SAAS,CAAO;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,GAAyB;IACrE,SAAS,EAAE,GAAyB,GACrC;EAGC,AAAA,gBAAgB,CAAO;IACrB,WAAW,EAAE,GAAyB,GACvC;EAOD,AAAA,eAAe,CAAO;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,UAAU,CAAM;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,iBAAiB,CAAM;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,gBAAgB,CAAM;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,UAAU,CAAM;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,SAAyB;IACrE,SAAS,EAAE,SAAyB,GACrC;EAGC,AAAA,iBAAiB,CAAM;IACrB,WAAW,EAAE,SAAyB,GACvC;EAOD,AAAA,gBAAgB,CAAM;IACpB,KAAK,EAjBE,EAAC,GAkBT;EAjBH,AAAA,UAAU,CAAM;IANlB,IAAI,EAOqB,CAAC,CAAW,CAAC,CAAU,IAAyB;IACrE,SAAS,EAAE,IAAyB,GACrC;EAGC,AAAA,iBAAiB,CAAM;IACrB,WAAW,EAAE,IAAyB,GACvC;EAOD,AAAA,gBAAgB,CAAM;IACpB,KAAK,EAjBE,EAAC,GAkBT;;AGiCP,AAEI,KAFC,AAEA,MAAM,CAAI;EACT,SAAS,EJ2CJ,IAAI,GI1CV;;AAJL,AAEI,KAFC,AAEA,OAAO,CAAG;EACT,SAAS,EJ4CH,KAAK,GI3CZ;;AAJL,AAEI,KAFC,AAEA,KAAK,CAAK;EACT,SAAS,EJ6CL,MAAM,GI5CX;;AAJL,AAQI,KARC,AAQA,cAAc,CAAI;EACjB,WAAW,EJ2CN,IAAI;EI1CT,cAAc,EJ0CT,IAAI,GIzCV;;AAXL,AAQI,KARC,AAQA,eAAe,CAAG;EACjB,WAAW,EJ4CL,IAAI;EI3CV,cAAc,EJ2CR,IAAI,GI1CX;;AAXL,AAQI,KARC,AAQA,cAAc,CAAI;EACjB,WAAW,EJ6CN,KAAK;EI5CV,cAAc,EJ4CT,KAAK,GI3CX;;AAXL,AAcE,KAdG,AAcF,WAAW,CAAC;EACX,UAAU,EAAE,UAAU;EACtB,MAAM,EAAE,KAAK;EACb,SAAS,EAAE,KAAK;EAChB,KAAK,EAAE,KAAK,GAOb;EAzBH,AAoBI,KApBC,AAcF,WAAW,CAMV,IAAI,CAAK;IH5EX,IAAI,EG6EqB,CAAC,CAAW,CAAC,CAAU,IAAI;IAChD,WAAW,EAAE,MAAM;IACnB,aAAa,EAAE,MAAM,GACtB;;AC3FL,AAAA,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,EAAE;AACF,CAAC;AACD,EAAE;AACF,KAAK;AACL,IAAI,CAAC;EACH,WAAW,ELoBM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;EKpBvC,MAAM,EAAE,CAAC;EACT,OAAO,EAAE,CAAC,GACX;;AAED,AAAA,EAAE;AACF,EAAE,CAAC;EACD,OAAO,EL6RM,CAAC,CAAC,CAAC,CAvNH,IAAI,CAuNc,IAAI;EK5RnC,MAAM,EL6RM,CAAC;EK5Rb,WAAW,ELWM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU,GKNxC;EAVD,AAME,EANA,CAMA,EAAE;EALJ,EAAE,CAKA,EAAE,CAAC;IACD,MAAM,EL2RS,CAAC;IK1RhB,OAAO,EL2RS,GAAG,CAAC,CAAC,GK1RtB;;AHcH,AAAA,EAAE,CGXC;EACD,eAAe,ELgRD,IAAI,GK/QnB;;AACD,AAAA,EAAE,CAAC;EACD,eAAe,EL8QD,OAAO,GK7QtB;;AAGC,AAAA,EAAE;AACF,GAAG,CAAS;EACV,WAAW,ELkOW,GAAG;EK/NvB,KAAY,ELSR,IAAI;EKTR,UAAY,ELiMA,MAAM;EKjMlB,WAAY,ELkMC,IAAI,GKhMpB;;AAPD,AAAA,EAAE;AACF,GAAG,CAAS;EACV,WAAW,ELkOW,GAAG;EK/NvB,KAAY,ELSR,IAAI;EKTR,UAAY,ELsMA,MAAM;EKtMlB,WAAY,ELuMC,IAAI,GKrMpB;;AAPD,AAAA,EAAE;AACF,GAAG,CAAS;EACV,WAAW,ELkOW,GAAG;EK/NvB,KAAY,ELSR,IAAI;EKTR,UAAY,EL2MA,MAAM;EK3MlB,WAAY,EL4MC,IAAI,GK1MpB;;AAPD,AAAA,EAAE;AACF,GAAG,CAAS;EACV,WAAW,ELkOW,GAAG;EK/NvB,KAAY,ELSR,IAAI;EKTR,UAAY,ELgNA,MAAM;EKhNlB,WAAY,ELiNC,IAAI,GK/MpB;;AAPD,AAAA,EAAE;AACF,GAAG,CAAS;EACV,WAAW,ELkOW,GAAG;EK/NvB,KAAY,ELSR,IAAI;EKTR,UAAY,ELqNA,MAAM;EKrNlB,WAAY,ELsNC,IAAI,GKpNpB;;AAPD,AAAA,EAAE;AACF,GAAG,CAAS;EACV,WAAW,ELkOW,GAAG;EK/NvB,KAAY,ELSR,IAAI;EKTR,UAAY,EL0NA,MAAM;EK1NlB,WAAY,EL2NC,IAAI,GKzNpB;;AAPD,AAAA,EAAE;AACF,GAAG,CJ0BW;EAER,SAAY,EDuFD,IAAI;ECvFf,MAAY,EDwFJ,CAAC,CAAC,CAAC,CAjEJ,IAAI,CAiEe,CAAC,GCtF9B;;AI/BH,AAAA,EAAE;AACF,GAAG,CJ0BW;EAER,SAAY,ED2FD,IAAI;EC3Ff,MAAY,ED4FJ,CAAC,CAAC,CAAC,CArEJ,IAAI,CAqEe,CAAC,GC1F9B;;AI/BH,AAAA,EAAE;AACF,GAAG,CJ0BW;EAER,SAAY,ED+FD,IAAI;EC/Ff,MAAY,EDgGJ,CAAC,CAAC,CAAC,CAzEJ,IAAI,CAyEe,CAAC,GC9F9B;;AI/BH,AAAA,EAAE;AACF,GAAG,CJ0BW;EAER,SAAY,EDmGD,IAAI;ECnGf,MAAY,EDoGJ,CAAC,CAAC,CAAC,CA7EJ,IAAI,CA6Ee,CAAC,GClG9B;;AI/BH,AAAA,EAAE;AACF,GAAG,CJ0BW;EAER,SAAY,EDuGD,IAAI;ECvGf,MAAY,EDwGJ,CAAC,CAAC,CAAC,CAjFJ,IAAI,CAiFe,CAAC,GCtG9B;;AI/BH,AAAA,EAAE;AACF,GAAG,CJ0BW;EAER,SAAY,ED7BD,IAAI;EC6Bf,MAAY,ED4GJ,CAAC,CAAC,CAAC,CArFJ,IAAI,CAqFe,CAAC,GC1G9B;;AA1BH,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EILnC,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,EDiHD,IAAI;ICjHf,MAAY,EDkHJ,CAAC,CAAC,CAAC,CA3FJ,IAAI,CA2Fe,CAAC,GChH9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,EDqHD,IAAI;ICrHf,MAAY,EDsHJ,CAAC,CAAC,CAAC,CA/FJ,IAAI,CA+Fe,CAAC,GCpH9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,EDyHD,IAAI;ICzHf,MAAY,ED0HJ,CAAC,CAAC,CAAC,CAnGJ,IAAI,CAmGe,CAAC,GCxH9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,ED6HD,IAAI;IC7Hf,MAAY,ED8HJ,CAAC,CAAC,CAAC,CAvGJ,IAAI,CAuGe,CAAC,GC5H9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,EDiID,IAAI;ICjIf,MAAY,EDkIJ,CAAC,CAAC,CAAC,CA3GJ,IAAI,CA2Ge,CAAC,GChI9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,ED7BD,IAAI;IC6Bf,MAAY,EDsIJ,CAAC,CAAC,CAAC,CA/GJ,IAAI,CA+Ge,CAAC,GCpI9B;;AA1BH,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;EILnC,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,ED2ID,IAAI;IC3If,MAAY,ED4IJ,CAAC,CAAC,CAAC,CArHJ,IAAI,CAqHe,CAAC,GC1I9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,ED+ID,IAAI;IC/If,MAAY,EDgJJ,CAAC,CAAC,CAAC,CAzHJ,IAAI,CAyHe,CAAC,GC9I9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,EDmJD,IAAI;ICnJf,MAAY,EDoJJ,CAAC,CAAC,CAAC,CA7HJ,IAAI,CA6He,CAAC,GClJ9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,EDuJD,IAAI;ICvJf,MAAY,EDwJJ,CAAC,CAAC,CAAC,CAjIJ,IAAI,CAiIe,CAAC,GCtJ9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,ED2JD,IAAI;IC3Jf,MAAY,ED4JJ,CAAC,CAAC,CAAC,CArIJ,IAAI,CAqIe,CAAC,GC1J9B;EI/BH,AAAA,EAAE;EACF,GAAG,CJ0BW;IAER,SAAY,ED7BD,IAAI;IC6Bf,MAAY,EDgKJ,CAAC,CAAC,CAAC,CAzIJ,IAAI,CAyIe,CAAC,GC9J9B;;AILL,AAAA,CAAC;AACD,UAAU,CAAC;EACT,SAAS,EL5BQ,IAAI;EK6BrB,UAAU,EL2MQ,MAAM;EK1MxB,WAAW,EL2MQ,MAAM;EK1MzB,WAAW,EL1BQ,GAAG;EK2BtB,aAAa,ELhCI,IAAI;EKiCrB,KAAK,ELnBG,IAAI,GKoBb;;AAED,AAAA,GAAG;AACH,IAAI;AACJ,GAAG;AACH,IAAI;AACJ,EAAE;AACF,IAAI;AACJ,KAAK;AACL,IAAI;AACJ,KAAK;AACL,GAAG,CAAC;EACF,WAAW,EL/CM,SAAS,EAAE,SAAS;EKgDrC,SAAS,EL+LW,GAAG;EK9LvB,UAAU,ELgMW,OAAsB;EK/L3C,MAAM,ELgMW,IAAI;EK/LrB,aAAa,ELJQ,GAAG;EKKxB,OAAO,ELgMW,CAAC;EK/LnB,KAAK,ELpCG,IAAI,GKqCb;;AAED,AAAA,GAAG;AACH,IAAI,CAAC;EACH,OAAO,ELLM,IAAI;EKMjB,QAAQ,EAAE,IAAI;EACd,aAAa,EAAE,OAAO,GAOvB;EAXD,AAME,GANC,GAMC,IAAI;EANR,GAAG,CAOD,KAAK;EANP,IAAI,GAKA,IAAI;EALR,IAAI,CAMF,KAAK,CAAC;IACJ,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,IAAI,GACZ;;AAGH,AAAA,MAAM;AACN,OAAO,CAAC;EACN,SAAS,EAAE,OAAO;EAClB,UAAU,ELgLa,MAAM;EK/K7B,WAAW,ELgLa,IAAI,GK/K7B;;AAED,AAAA,EAAE;AACF,GAAG,CAAC;EACF,SAAS,EAAE,OAAO;EAClB,UAAU,EL4KS,MAAM;EK3KzB,WAAW,EL4KS,MAAM,GK3K3B;;AAED,AAAA,IAAI;AACJ,KAAK,CAAC;EACJ,SAAS,EAAE,OAAO;EAClB,OAAO,EL2KW,CAAC;EK1KnB,UAAU,ELhEC,KAAK;EKiEhB,KAAK,ELzEG,IAAI,GK0Eb;;AAED,AAAA,KAAK;AACL,MAAM,CAAC;EACL,WAAW,ELkKY,OAAO;EKjK9B,SAAS,ELgKY,GAAG,GK/JzB;;AAED,AAAA,CAAC;AACD,UAAU,CAAC;EACT,eAAe,ELkKW,SAAS,GKjKpC;;AAED,AAAA,EAAE,CAAC;EACD,MAAM,ELiKI,MAAM,CAAC,CAAC;EKhKlB,YAAY,EAAE,CAAC;EACf,UAAU,EL8JA,GAAG,CAAC,KAAK,CApPX,OAAO,GKuFhB;;AC5ID,AAAA,CAAC,CAAC;EACA,WAAW,EN6BM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;EM7BvC,SAAS,ENiCQ,IAAI;EMhCrB,UAAU,ENokBC,MAAM;EMnkBjB,WAAW,ENokBC,MAAM;EMnkBlB,KAAK,EN8jBM,OAA4B;EM7jBvC,eAAe,EN8jBC,IAAI,GM/iBrB;EArBD,AAQE,CARD,AAQE,QAAQ,CAAC;IACR,KAAK,EN0jBI,OAA4B,GMzjBtC;EAVH,AAYE,CAZD,AAYE,MAAM,EAZT,CAAC,AAaE,MAAM,CAAC;IACN,KAAK,EN8BO,OAAO;IM7BnB,eAAe,ENsjBK,SAAS,GMrjB9B;EAhBH,AAkBE,CAlBD,AAkBE,OAAO,CAAC;IACP,KAAK,ENyBO,OAAO,GMxBpB;;ACpBH,AAAA,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AACN,MAAM;AACN,OAAO,CAAC;EACN,kBAAkB,EAAE,IAAI;EACxB,UAAU,EAAE,UAAU;EACtB,aAAa,EPyEQ,GAAG;EOxExB,YAAY,EPuUQ,KAAK;EOtUzB,YAAY,EPwEQ,GAAG;EOvEvB,UAAU,EAAE,UAAU;EACtB,MAAM,EAAE,OAAO;EACf,OAAO,EAAE,YAAY;EACrB,WAAW,EPgBM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;EOhBvC,SAAS,EPoBQ,IAAI;EOnBrB,UAAU,EPmUQ,MAAM;EOlUxB,WAAW,EPmUQ,MAAM;EOlUzB,WAAW,EPsBQ,GAAG;EOrBtB,MAAM,EP2TQ,CAAC,CAAC,CAAC,CAvPJ,IAAI,CAuPe,CAAC;EO1TjC,OAAO,EPyTQ,IAAI,CAtPN,IAAI;EOlEjB,UAAU,EAAE,MAAM;EAClB,eAAe,EPgUG,IAAI;EO/TtB,UAAU,EPkBE,oCAAoC,CACjB,IAAI;EOR7B,UAAY,EPoBZ,OAAO;EOpBP,KAAY,EPeV,IAAI;EOfN,YAAY,EPkBV,IAAI,GO8Bb;EAlFD,AAoCM,KApCD,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoCC,QAAQ;EAnCf,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAmCC,QAAQ;EAlCf,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAkCC,QAAQ;EAjCf,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAiCC,QAAQ;EAhCf,MAAM,AAgCC,QAAQ;EA/Bf,OAAO,AA+BA,QAAQ,CAAC;IAEN,UAAY,EPgBd,OAAO;IOhBL,KAAY,EPWZ,IAAI;IOXJ,YAAY,EPcZ,IAAI,GOZP;EAxCP,AA2BM,KA3BD,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA2BC,MAAM;EA1Bb,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA0BC,MAAM;EAzBb,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAyBC,MAAM;EAxBb,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAwBC,MAAM;EAvBb,MAAM,AAuBC,MAAM;EAtBb,OAAO,AAsBA,MAAM,CAAK;IAER,UAAY,EPyBd,OAAO;IOzBL,KAAY,EPoBZ,IAAI;IOpBJ,YAAY,EPsBZ,IAAI;IOtBJ,eAAY,EPwUC,IAAI,GOtUpB;EA/BP,AA2BM,KA3BD,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA2BC,OAAO;EA1Bd,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA0BC,OAAO;EAzBd,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAyBC,OAAO;EAxBd,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAwBC,OAAO;EAvBd,MAAM,AAuBC,OAAO;EAtBd,OAAO,AAsBA,OAAO,CAAI;IAER,UAAY,EP2UJ,OAAsB;IO3U9B,KAAY,EPoBZ,IAAI;IOpBJ,YAAY,EPqBZ,IAAI;IOrBJ,eAAY,EP8UC,IAAI,GO5UpB;EA/BP,AA2BM,KA3BD,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA2BC,MAAM;EA1Bb,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA0BC,MAAM;EAzBb,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAyBC,MAAM;EAxBb,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAwBC,MAAM;EAvBb,MAAM,AAuBC,MAAM;EAtBb,OAAO,AAsBA,MAAM,CAAK;IAER,UAAY,EPiVJ,OAAsB;IOjV9B,KAAY,EPoBZ,IAAI;IOpBJ,YAAY,EPsBZ,IAAI;IOtBJ,eAAY,EPoVC,IAAI,GOlVpB;EA/BP,AA6CI,KA7CC,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6CD,MAAM;EA5CX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4CD,MAAM;EA3CX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2CD,MAAM;EA1CX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0CD,MAAM;EAzCX,MAAM,AAyCD,MAAM;EAxCX,OAAO,AAwCF,MAAM,CAAI;IAEP,OAAY,EP2QL,GAAG,CAAC,IAAI;IO3Qf,SAAY,EP4QH,IAAI,GO1QhB;EAjDL,AA6CI,KA7CC,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6CD,OAAO;EA5CZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4CD,OAAO;EA3CZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2CD,OAAO;EA1CZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0CD,OAAO;EAzCZ,MAAM,AAyCD,OAAO;EAxCZ,OAAO,AAwCF,OAAO,CAAG;IAEP,OAAY,EP+QL,IAAI,CAAC,IAAI;IO/QhB,SAAY,EPZD,IAAI,GOclB;EAjDL,AA6CI,KA7CC,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6CD,MAAM;EA5CX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4CD,MAAM;EA3CX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2CD,MAAM;EA1CX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0CD,MAAM;EAzCX,MAAM,AAyCD,MAAM;EAxCX,OAAO,AAwCF,MAAM,CAAI;IAEP,OAAY,EPwCL,IAAI,CA2OU,IAAI;IOnRzB,SAAY,EPoRH,IAAI,GOlRhB;EAjDL,AA6CI,KA7CC,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6CD,KAAK;EA5CV,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4CD,KAAK;EA3CV,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2CD,KAAK;EA1CV,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0CD,KAAK;EAzCV,MAAM,AAyCD,KAAK;EAxCV,OAAO,AAwCF,KAAK,CAAK;IAEP,OAAY,EPuRL,IAAI,CAAC,IAAI;IOvRhB,SAAY,EPwRH,IAAI,GOtRhB;EAjDL,AAoDE,KApDG,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoDH,KAAK;EAnDR,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAmDH,KAAK;EAlDR,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAkDH,KAAK;EAjDR,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAiDH,KAAK;EAhDR,MAAM,AAgDH,KAAK;EA/CR,OAAO,AA+CJ,KAAK,CAAC;IACL,OAAO,EAAE,KAAK;IACd,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,IAAI,GACZ;EAxDH,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ;EApEjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ;EAnEjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ;EAlEjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ;EAjEjB,MAAM,AAiEG,QAAQ;EAhEjB,OAAO,AAgEE,QAAQ,CAAE;IAEP,UAAY,EPoTJ,OAA2B;IOpTnC,KAAY,EPjBhB,OAAO;IOiBH,YAAY,EPsTF,WAAW,GO/SxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ,AAIN,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ,AAIN,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ,AAIN,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ,AAIN,QAAQ;IArEnB,MAAM,AAiEG,QAAQ,AAIN,QAAQ;IApEnB,OAAO,AAgEE,QAAQ,AAIN,QAAQ,CAAC;MAEN,UAAY,EPgTN,OAA2B;MOhTjC,KAAY,EPrBlB,OAAO;MOqBD,YAAY,EPkTJ,WAAW,GOhTtB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EPpBV,OAAO;IOoBT,KAAY,EPVlB,OAAO;IOUD,YAAY,EPkUJ,WAAW,GOhUtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,OAAO;EA1DlB,MAAM,AAyDG,QAAQ,AACN,OAAO;EAzDlB,OAAO,AAwDE,QAAQ,AACN,OAAO,CAAI;IAER,UAAY,EPqUN,OAA0B;IOrUhC,KAAY,EPVlB,OAAO;IOUD,YAAY,EPuUJ,WAAW,GOrUtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EP0UN,OAA0B;IO1UhC,KAAY,EPVlB,OAAO;IOUD,YAAY,EP4UJ,WAAW,GO1UtB;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,UAAU;EApEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,UAAU;EAnEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,UAAU;EAlEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,UAAU;EAjEnB,MAAM,AAiEG,UAAU;EAhEnB,OAAO,AAgEE,UAAU,CAAA;IAEP,UAAY,EP0UJ,WAAW;IO1UnB,KAAY,EP2UT,OAA2B;IO3U9B,YAAY,EP4UF,OAA2B,GOrUxC;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,UAAU,AAIR,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,UAAU,AAIR,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,UAAU,AAIR,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,UAAU,AAIR,QAAQ;IArEnB,MAAM,AAiEG,UAAU,AAIR,QAAQ;IApEnB,OAAO,AAgEE,UAAU,AAIR,QAAQ,CAAC;MAEN,UAAY,EPsUN,WAAW;MOtUjB,KAAY,EPuUX,OAA2B;MOvU5B,YAAY,EPwUJ,OAA2B,GOtUtC;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,UAAU,AACR,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,UAAU,AACR,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,UAAU,AACR,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,UAAU,AACR,MAAM;EA1DjB,MAAM,AAyDG,UAAU,AACR,MAAM;EAzDjB,OAAO,AAwDE,UAAU,AACR,MAAM,CAAK;IAER,UAAY,EPsVN,WAAW;IOtVjB,KAAY,EPpBV,OAAO;IOoBT,YAAY,EPpBV,OAAO,GOsBZ;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,UAAU,AACR,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,UAAU,AACR,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,UAAU,AACR,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,UAAU,AACR,OAAO;EA1DlB,MAAM,AAyDG,UAAU,AACR,OAAO;EAzDlB,OAAO,AAwDE,UAAU,AACR,OAAO,CAAI;IAER,UAAY,EP2VN,WAAW;IO3VjB,KAAY,EP4VX,OAA0B;IO5V3B,YAAY,EP6VJ,OAA0B,GO3VrC;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,UAAU,AACR,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,UAAU,AACR,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,UAAU,AACR,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,UAAU,AACR,MAAM;EA1DjB,MAAM,AAyDG,UAAU,AACR,MAAM;EAzDjB,OAAO,AAwDE,UAAU,AACR,MAAM,CAAK;IAER,UAAY,EPgWN,WAAW;IOhWjB,KAAY,EPiWX,OAA0B;IOjW3B,YAAY,EPkWJ,OAA0B,GOhWrC;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,SAAS;EApElB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,SAAS;EAnElB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,SAAS;EAlElB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,SAAS;EAjElB,MAAM,AAiEG,SAAS;EAhElB,OAAO,AAgEE,SAAS,CAAC;IAEP,UAAY,EPgWJ,WAAW;IOhWnB,KAAY,EP3BR,OAAO;IO2BX,YAAY,EPkWF,WAAW,GO3VxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,SAAS,AAIP,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,SAAS,AAIP,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,SAAS,AAIP,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,SAAS,AAIP,QAAQ;IArEnB,MAAM,AAiEG,SAAS,AAIP,QAAQ;IApEnB,OAAO,AAgEE,SAAS,AAIP,QAAQ,CAAC;MAEN,UAAY,EP4VN,WAAW;MO5VjB,KAAY,EP/BV,OAAO;MO+BT,YAAY,EP8VJ,WAAW,GO5VtB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,SAAS,AACP,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,SAAS,AACP,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,SAAS,AACP,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,SAAS,AACP,MAAM;EA1DjB,MAAM,AAyDG,SAAS,AACP,MAAM;EAzDjB,OAAO,AAwDE,SAAS,AACP,MAAM,CAAK;IAER,UAAY,EPXhB,wBAAO;IOWH,KAAY,EPpBV,OAAO;IOoBT,YAAY,EP8WJ,WAAW,GO5WtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,SAAS,AACP,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,SAAS,AACP,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,SAAS,AACP,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,SAAS,AACP,OAAO;EA1DlB,MAAM,AAyDG,SAAS,AACP,OAAO;EAzDlB,OAAO,AAwDE,SAAS,AACP,OAAO,CAAI;IAER,UAAY,EPXhB,wBAAO;IOWH,KAAY,EPpBV,OAAO;IOoBT,YAAY,EPmXJ,WAAW,GOjXtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,SAAS,AACP,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,SAAS,AACP,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,SAAS,AACP,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,SAAS,AACP,MAAM;EA1DjB,MAAM,AAyDG,SAAS,AACP,MAAM;EAzDjB,OAAO,AAwDE,SAAS,AACP,MAAM,CAAK;IAER,UAAY,EPXhB,wBAAO;IOWH,KAAY,EPpBV,OAAO;IOoBT,YAAY,EPwXJ,WAAW,GOtXtB;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,SAAS;EApElB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,SAAS;EAnElB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,SAAS;EAlElB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,SAAS;EAjElB,MAAM,AAiEG,SAAS;EAhElB,OAAO,AAgEE,SAAS,CAAC;IAEP,UAAY,EPsXJ,OAAqB;IOtX7B,KAAY,EPtBd,IAAI;IOsBF,YAAY,EPwXF,WAAW,GOjXxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,SAAS,AAIP,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,SAAS,AAIP,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,SAAS,AAIP,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,SAAS,AAIP,QAAQ;IArEnB,MAAM,AAiEG,SAAS,AAIP,QAAQ;IApEnB,OAAO,AAgEE,SAAS,AAIP,QAAQ,CAAC;MAEN,UAAY,EPkXN,OAAqB;MOlX3B,KAAY,EP1BhB,IAAI;MO0BA,YAAY,EPoXJ,WAAW,GOlXtB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,SAAS,AACP,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,SAAS,AACP,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,SAAS,AACP,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,SAAS,AACP,MAAM;EA1DjB,MAAM,AAyDG,SAAS,AACP,MAAM;EAzDjB,OAAO,AAwDE,SAAS,AACP,MAAM,CAAK;IAER,UAAY,EPVlB,OAAO;IOUD,KAAY,EPfhB,IAAI;IOeA,YAAY,EPoYJ,WAAW,GOlYtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,SAAS,AACP,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,SAAS,AACP,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,SAAS,AACP,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,SAAS,AACP,OAAO;EA1DlB,MAAM,AAyDG,SAAS,AACP,OAAO;EAzDlB,OAAO,AAwDE,SAAS,AACP,OAAO,CAAI;IAER,UAAY,EPXhB,OAAO;IOWH,KAAY,EPfhB,IAAI;IOeA,YAAY,EPyYJ,WAAW,GOvYtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,SAAS,AACP,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,SAAS,AACP,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,SAAS,AACP,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,SAAS,AACP,MAAM;EA1DjB,MAAM,AAyDG,SAAS,AACP,MAAM;EAzDjB,OAAO,AAwDE,SAAS,AACP,MAAM,CAAK;IAER,UAAY,EPXhB,OAAO;IOWH,KAAY,EPfhB,IAAI;IOeA,YAAY,EP8YJ,WAAW,GO5YtB;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,iBAAiB;EApE1B,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,iBAAiB;EAnE1B,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,iBAAiB;EAlE1B,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,iBAAiB;EAjE1B,MAAM,AAiEG,iBAAiB;EAhE1B,OAAO,AAgEE,iBAAiB,CAAP;IAEP,UAAY,EP4YJ,WAAW;IO5YnB,KAAY,EPjBhB,OAAO;IOiBH,YAAY,EPlBd,OAAO,GOyBR;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,iBAAiB,AAIf,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,iBAAiB,AAIf,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,iBAAiB,AAIf,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,iBAAiB,AAIf,QAAQ;IArEnB,MAAM,AAiEG,iBAAiB,AAIf,QAAQ;IApEnB,OAAO,AAgEE,iBAAiB,AAIf,QAAQ,CAAC;MAEN,UAAY,EPwYN,WAAW;MOxYjB,KAAY,EPrBlB,OAAO;MOqBD,YAAY,EPtBhB,OAAO,GOwBN;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,iBAAiB,AACf,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,iBAAiB,AACf,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,iBAAiB,AACf,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,iBAAiB,AACf,MAAM;EA1DjB,MAAM,AAyDG,iBAAiB,AACf,MAAM;EAzDjB,OAAO,AAwDE,iBAAiB,AACf,MAAM,CAAK;IAER,UAAY,EPwZN,WAAW;IOxZjB,KAAY,EPVlB,OAAO;IOUD,YAAY,EPVlB,OAAO,GOYJ;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,iBAAiB,AACf,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,iBAAiB,AACf,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,iBAAiB,AACf,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,iBAAiB,AACf,OAAO;EA1DlB,MAAM,AAyDG,iBAAiB,AACf,OAAO;EAzDlB,OAAO,AAwDE,iBAAiB,AACf,OAAO,CAAI;IAER,UAAY,EP6ZN,WAAW;IO7ZjB,KAAY,EPVlB,OAAO;IOUD,YAAY,EP+ZJ,OAAoB,GO7Z/B;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,iBAAiB,AACf,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,iBAAiB,AACf,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,iBAAiB,AACf,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,iBAAiB,AACf,MAAM;EA1DjB,MAAM,AAyDG,iBAAiB,AACf,MAAM;EAzDjB,OAAO,AAwDE,iBAAiB,AACf,MAAM,CAAK;IAER,UAAY,EPkaN,WAAW;IOlajB,KAAY,EPVlB,OAAO;IOUD,YAAY,EPoaJ,OAAoB,GOla/B;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ;EApEjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ;EAnEjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ;EAlEjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ;EAjEjB,MAAM,AAiEG,QAAQ;EAhEjB,OAAO,AAgEE,QAAQ,CAAE;IAEP,UAAY,EPkaJ,OAA2B;IOlanC,KAAY,EPxBhB,OAAO;IOwBH,YAAY,EPoaF,WAAW,GO7ZxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ,AAIN,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ,AAIN,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ,AAIN,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ,AAIN,QAAQ;IArEnB,MAAM,AAiEG,QAAQ,AAIN,QAAQ;IApEnB,OAAO,AAgEE,QAAQ,AAIN,QAAQ,CAAC;MAEN,UAAY,EP8ZN,OAA2B;MO9ZjC,KAAY,EP5BlB,OAAO;MO4BD,YAAY,EPgaJ,WAAW,GO9ZtB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EPPb,KAAK;IOOJ,KAAY,EPjBlB,OAAO;IOiBD,YAAY,EPgbJ,WAAW,GO9atB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,OAAO;EA1DlB,MAAM,AAyDG,QAAQ,AACN,OAAO;EAzDlB,OAAO,AAwDE,QAAQ,AACN,OAAO,CAAI;IAER,UAAY,EPmbN,OAA2B;IOnbjC,KAAY,EPjBlB,OAAO;IOiBD,YAAY,EPqbJ,WAAW,GOnbtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EPwbN,OAA2B;IOxbjC,KAAY,EPjBlB,OAAO;IOiBD,YAAY,EP0bJ,WAAW,GOxbtB;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ;EApEjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ;EAnEjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ;EAlEjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ;EAjEjB,MAAM,AAiEG,QAAQ;EAhEjB,OAAO,AAgEE,QAAQ,CAAE;IAEP,UAAY,EPwbJ,OAA2B;IOxbnC,KAAY,EPjBhB,OAAO;IOiBH,YAAY,EP0bF,WAAW,GOnbxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ,AAIN,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ,AAIN,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ,AAIN,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ,AAIN,QAAQ;IArEnB,MAAM,AAiEG,QAAQ,AAIN,QAAQ;IApEnB,OAAO,AAgEE,QAAQ,AAIN,QAAQ,CAAC;MAEN,UAAY,EPobN,OAA2B;MOpbjC,KAAY,EPrBlB,OAAO;MOqBD,YAAY,EPsbJ,WAAW,GOpbtB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EPNb,OAAO;IOMN,KAAY,EPVlB,OAAO;IOUD,YAAY,EPscJ,WAAW,GOpctB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,OAAO;EA1DlB,MAAM,AAyDG,QAAQ,AACN,OAAO;EAzDlB,OAAO,AAwDE,QAAQ,AACN,OAAO,CAAI;IAER,UAAY,EPycN,OAA2B;IOzcjC,KAAY,EPVlB,OAAO;IOUD,YAAY,EP2cJ,WAAW,GOzctB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EP8cN,OAA2B;IO9cjC,KAAY,EPVlB,OAAO;IOUD,YAAY,EPgdJ,WAAW,GO9ctB;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ;EApEjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ;EAnEjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ;EAlEjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ;EAjEjB,MAAM,AAiEG,QAAQ;EAhEjB,OAAO,AAgEE,QAAQ,CAAE;IAEP,UAAY,EP8cJ,OAA2B;IO9cnC,KAAY,EPjBhB,OAAO;IOiBH,YAAY,EPgdF,WAAW,GOzcxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,QAAQ,AAIN,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,QAAQ,AAIN,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,QAAQ,AAIN,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,QAAQ,AAIN,QAAQ;IArEnB,MAAM,AAiEG,QAAQ,AAIN,QAAQ;IApEnB,OAAO,AAgEE,QAAQ,AAIN,QAAQ,CAAC;MAEN,UAAY,EP0cN,OAA2B;MO1cjC,KAAY,EPrBlB,OAAO;MOqBD,YAAY,EP4cJ,WAAW,GO1ctB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EPLb,OAAO;IOKN,KAAY,EPVlB,OAAO;IOUD,YAAY,EP4dJ,WAAW,GO1dtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,OAAO;EA1DlB,MAAM,AAyDG,QAAQ,AACN,OAAO;EAzDlB,OAAO,AAwDE,QAAQ,AACN,OAAO,CAAI;IAER,UAAY,EP+dN,OAA2B;IO/djC,KAAY,EPVlB,OAAO;IOUD,YAAY,EPieJ,WAAW,GO/dtB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,QAAQ,AACN,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,QAAQ,AACN,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,QAAQ,AACN,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,QAAQ,AACN,MAAM;EA1DjB,MAAM,AAyDG,QAAQ,AACN,MAAM;EAzDjB,OAAO,AAwDE,QAAQ,AACN,MAAM,CAAK;IAER,UAAY,EPoeN,OAA2B;IOpejC,KAAY,EPVlB,OAAO;IOUD,YAAY,EPseJ,WAAW,GOpetB;EAlEX,AAqEQ,KArEH,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,OAAO;EApEhB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,OAAO;EAnEhB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,OAAO;EAlEhB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,OAAO;EAjEhB,MAAM,AAiEG,OAAO;EAhEhB,OAAO,AAgEE,OAAO,CAAG;IAEP,UAAY,EPoeJ,OAA0B;IOpelC,KAAY,EPjBhB,OAAO;IOiBH,YAAY,EPseF,WAAW,GO/dxB;IA9ET,AAyEU,KAzEL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAqEG,OAAO,AAIL,QAAQ;IAxEnB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAoEG,OAAO,AAIL,QAAQ;IAvEnB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmEG,OAAO,AAIL,QAAQ;IAtEnB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkEG,OAAO,AAIL,QAAQ;IArEnB,MAAM,AAiEG,OAAO,AAIL,QAAQ;IApEnB,OAAO,AAgEE,OAAO,AAIL,QAAQ,CAAC;MAEN,UAAY,EPgeN,OAA0B;MOhehC,KAAY,EPrBlB,OAAO;MOqBD,YAAY,EPkeJ,WAAW,GOhetB;EA7EX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,OAAO,AACL,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,OAAO,AACL,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,OAAO,AACL,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,OAAO,AACL,MAAM;EA1DjB,MAAM,AAyDG,OAAO,AACL,MAAM;EAzDjB,OAAO,AAwDE,OAAO,AACL,MAAM,CAAK;IAER,UAAY,EPJd,SAAS;IOIP,KAAY,EPVlB,OAAO;IOUD,YAAY,EPkfJ,WAAW,GOhftB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,OAAO,AACL,OAAO;EA7DlB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,OAAO,AACL,OAAO;EA5DlB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,OAAO,AACL,OAAO;EA3DlB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,OAAO,AACL,OAAO;EA1DlB,MAAM,AAyDG,OAAO,AACL,OAAO;EAzDlB,OAAO,AAwDE,OAAO,AACL,OAAO,CAAI;IAER,UAAY,EPqfN,OAA0B;IOrfhC,KAAY,EPVlB,OAAO;IOUD,YAAY,EPufJ,WAAW,GOrftB;EAlEX,AA8DU,KA9DL,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA6DG,OAAO,AACL,MAAM;EA7DjB,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CA4DG,OAAO,AACL,MAAM;EA5DjB,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CA2DG,OAAO,AACL,MAAM;EA3DjB,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CA0DG,OAAO,AACL,MAAM;EA1DjB,MAAM,AAyDG,OAAO,AACL,MAAM;EAzDjB,OAAO,AAwDE,OAAO,AACL,MAAM,CAAK;IAER,UAAY,EP0fN,OAA0B;IO1fhC,KAAY,EPVlB,OAAO;IOUD,YAAY,EP4fJ,WAAW,GO1ftB;;AClEX,AAAA,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,QAAQ,CAAC;EACP,UAAU,ERyCJ,OAAO;EQxCb,UAAU,EAAE,IAAI;EAChB,aAAa,ERkEQ,GAAG;EQjExB,MAAM,ERkEc,GAAG,CA6gBW,KAAK,CA3iB/B,IAAI;EQnCZ,UAAU,ER6kBO,IAAI;EQ5kBrB,WAAW,ERYM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;EQZvC,SAAS,ERgBQ,IAAI;EQfrB,MAAM,ER6kBO,GAAG,CAAC,CAAC,CA1gBL,IAAI,CA0gBgB,CAAC;EQ5kBlC,OAAO,ER2kBO,IAAI,GQ1kBnB;;AAED,AAAA,QAAQ;AACR,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,EAAa;EACjB,MAAM,ER0kBO,QAAQ,GQzkBtB;;AAED,AAAA,QAAQ,CAAC;EPpBP,OAAO,EOqBO,IAAI;EPpBlB,SAAS,EOoBW,MAAM;EAC1B,UAAU,ERimBU,WAAW;EQhmB/B,aAAa,ERiDQ,GAAG;EQhDxB,MAAM,ERiDc,GAAG,CA2iBc,KAAK,CAxkBlC,OAAO;EQnBf,UAAU,ER6lBU,IAAI;EQ5lBxB,MAAM,ER8lBU,CAAC,CAAC,CAAC,CA1iBN,IAAI,CA0iBiB,CAAC;EQ7lBnC,OAAO,ERmDM,IAAI,GQtClB;EApBD,AASE,QATM,CASN,MAAM,CAAC;IACL,UAAU,EAAE,UAAU;IACtB,UAAU,ERcN,OAAO;IQbX,aAAa,ERwCM,GAAG;IQvCtB,MAAM,ERkmBe,GAAG,CAAC,KAAK,CAvlBxB,OAAO;IQVb,UAAU,ERgmBe,IAAI;IQ/lB7B,KAAK,ERKC,IAAI;IQJV,WAAW,ERfI,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;IQerC,SAAS,ERXM,IAAI;IQYnB,OAAO,ERylBe,GAAG,CAAC,IAAI,GQxlB/B;;AAGH,AAAA,IAAI,CAAC;EACH,UAAU,ERgiBM,WAAW;EQ/hB3B,MAAM,ERiiBM,IAAI;EQhiBhB,UAAU,ER+hBM,IAAI;EQ9hBpB,MAAM,ER2hBM,CAAC;EQ1hBb,OAAO,ER2hBM,CAAC,GQ1hBf;;AAED,AAAA,KAAK,CAAC;EPlDJ,OAAO,EOmDO,IAAI;EPlDlB,SAAS,EOkDW,MAAM;EAC1B,WAAW,ER/BM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU,GQ+BxC;;AAED,AAAA,UAAU,CAAC;EPvDT,OAAO,EOwDO,IAAI;EPvDlB,SAAS,EOuDW,GAAG,CAAE,MAAM;EPrD/B,WAAW,EOqD8B,MAAM;EAC/C,OAAO,ERqjBmB,CAAC,CAAC,CAAC,CAhiBhB,IAAI,CAgiB2B,CAAC,GQpjB9C;;AAED,AAAA,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,EAAiB;EACrB,MAAM,EAAE,OAAO;EACf,WAAW,ER1CM,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAC3F,SAAS,EAAE,gBAAgB,EAAE,UAAU;EQ0CvC,MAAM,ERgjBa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;EQ/iB7B,OAAO,ER8iBa,CAAC,GQ7iBtB;;AAED,AAsBE,KAtBG,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAsBH,SAAS,EAtBZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAuBH,SAAS;AAtBZ,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAqBH,SAAS;AArBZ,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAsBH,SAAS;AArBZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAoBH,SAAS;AApBZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAqBH,SAAS;AApBZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmBH,SAAS;AAnBZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAoBH,SAAS;AAnBZ,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAkBH,SAAS;AAlBZ,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAmBH,SAAS;AAlBZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAiBH,SAAS;AAjBZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkBH,SAAS;AAjBZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAgBH,SAAS;AAhBZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAiBH,SAAS;AAhBZ,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAeH,SAAS;AAfZ,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAgBH,SAAS;AAfZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAcH,SAAS;AAdZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAeH,SAAS;AAdZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAaH,SAAS;AAbZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAcH,SAAS;AAbZ,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAYH,SAAS;AAZZ,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAaH,SAAS;AAZZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAWH,SAAS;AAXZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAYH,SAAS;AAXZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAUH,SAAS;AAVZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAWH,SAAS;AAVZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CASH,SAAS;AATZ,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAUH,SAAS;AATZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAQH,SAAS;AARZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CASH,SAAS;AARZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAOH,SAAS;AAPZ,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAQH,SAAS;AAPZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAMH,SAAS;AANZ,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAOH,SAAS;AANZ,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAKH,SAAS;AALZ,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAMH,SAAS;AALZ,QAAQ,AAIL,SAAS;AAJZ,QAAQ,AAKL,SAAS;AAJZ,MAAM,AAGH,SAAS;AAHZ,MAAM,AAIH,SAAS;AAHZ,CAAC,AAEE,SAAS;AAFZ,CAAC,AAGE,SAAS;AAFZ,OAAO,AACJ,SAAS;AADZ,OAAO,AAEJ,SAAS,CAAC;EACT,UAAU,ERhDJ,OAAO,CQgD0B,UAAU;EACjD,MAAM,ERpBY,GAAG,CAgiBoB,KAAK,CA7jBxC,OAAO,CQiDkB,UAAU;EACzC,KAAK,ERrDC,IAAI,CQqDmB,UAAU;EACvC,MAAM,EAAE,WAAW;EACnB,MAAM,ER0gBc,IAAI,CQ1gBO,UAAU;EACzC,OAAO,EAAE,CAAC,GAOX;EApCH,AA+BI,KA/BC,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAsBH,SAAS,AASP,MAAM,EA/BX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAuBH,SAAS,AAQP,MAAM;EA9BX,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAqBH,SAAS,AASP,MAAM;EA9BX,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAsBH,SAAS,AAQP,MAAM;EA7BX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAoBH,SAAS,AASP,MAAM;EA7BX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAqBH,SAAS,AAQP,MAAM;EA5BX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmBH,SAAS,AASP,MAAM;EA5BX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAoBH,SAAS,AAQP,MAAM;EA3BX,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAkBH,SAAS,AASP,MAAM;EA3BX,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAmBH,SAAS,AAQP,MAAM;EA1BX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAiBH,SAAS,AASP,MAAM;EA1BX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAkBH,SAAS,AAQP,MAAM;EAzBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAgBH,SAAS,AASP,MAAM;EAzBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAiBH,SAAS,AAQP,MAAM;EAxBX,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAeH,SAAS,AASP,MAAM;EAxBX,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAgBH,SAAS,AAQP,MAAM;EAvBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAcH,SAAS,AASP,MAAM;EAvBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAeH,SAAS,AAQP,MAAM;EAtBX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAaH,SAAS,AASP,MAAM;EAtBX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAcH,SAAS,AAQP,MAAM;EArBX,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAYH,SAAS,AASP,MAAM;EArBX,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAaH,SAAS,AAQP,MAAM;EApBX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAWH,SAAS,AASP,MAAM;EApBX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAYH,SAAS,AAQP,MAAM;EAnBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAUH,SAAS,AASP,MAAM;EAnBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAWH,SAAS,AAQP,MAAM;EAlBX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CASH,SAAS,AASP,MAAM;EAlBX,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAUH,SAAS,AAQP,MAAM;EAjBX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAQH,SAAS,AASP,MAAM;EAjBX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CASH,SAAS,AAQP,MAAM;EAhBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAOH,SAAS,AASP,MAAM;EAhBX,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAQH,SAAS,AAQP,MAAM;EAfX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAMH,SAAS,AASP,MAAM;EAfX,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAOH,SAAS,AAQP,MAAM;EAdX,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAKH,SAAS,AASP,MAAM;EAdX,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAMH,SAAS,AAQP,MAAM;EAbX,QAAQ,AAIL,SAAS,AASP,MAAM;EAbX,QAAQ,AAKL,SAAS,AAQP,MAAM;EAZX,MAAM,AAGH,SAAS,AASP,MAAM;EAZX,MAAM,AAIH,SAAS,AAQP,MAAM;EAXX,CAAC,AAEE,SAAS,AASP,MAAM;EAXX,CAAC,AAGE,SAAS,AAQP,MAAM;EAVX,OAAO,AACJ,SAAS,AASP,MAAM;EAVX,OAAO,AAEJ,SAAS,AAQP,MAAM,CAAC;IACN,UAAU,ERxDN,OAAO,CQwD4B,UAAU;IACjD,MAAM,ER5BU,GAAG,CAgiBoB,KAAK,CA7jBxC,OAAO,CQyDoB,UAAU;IACzC,KAAK,ER7DD,IAAI,CQ6DqB,UAAU,GACxC;;AAhHL,AAAA,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV;AACN,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX;AACN,QAAQ,CAoHC;EACP,UAAU,ERxFE,oCAAoC,CACjB,IAAI,GQsGpC;EA5BD,AAeE,KAfG,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAeH,MAAM,EAfT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAgBH,OAAO;EAfV,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAcH,MAAM;EAdT,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAeH,OAAO;EAdV,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAaH,MAAM;EAbT,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAcH,OAAO;EAbV,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAYH,MAAM;EAZT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAaH,OAAO;EAZV,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAWH,MAAM;EAXT,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAYH,OAAO;EAXV,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAUH,MAAM;EAVT,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAWH,OAAO;EAVV,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CASH,MAAM;EATT,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAUH,OAAO;EATV,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAQH,MAAM;EART,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CASH,OAAO;EARV,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAOH,MAAM;EAPT,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAQH,OAAO;EAPV,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAMH,MAAM;EANT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAOH,OAAO;EANV,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAKH,MAAM;EALT,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAMH,OAAO;EALV,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAIH,MAAM;EAJT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAKH,OAAO;EAJV,QAAQ,AAGL,MAAM;EAHT,QAAQ,AAIL,OAAO,CAAC;IACP,UAAU,ER/EN,OAAO,CQ+EyB,UAAU;IAC9C,MAAM,ERpDY,GAAG,CA2hBiB,KAAK,CAjkB/B,OAAO,CQ0FS,UAAU;IACtC,UAAU,ERudK,IAAI,CQvdiB,UAAU,GAC/C;EApBH,AAsBE,KAtBG,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAsBH,MAAM;EArBT,KAAK,CAAA,AAAA,IAAC,CAAK,UAAU,AAAf,CAqBH,MAAM;EApBT,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAoBH,MAAM;EAnBT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAmBH,MAAM;EAlBT,KAAK,CAAA,AAAA,IAAC,CAAK,gBAAgB,AAArB,CAkBH,MAAM;EAjBT,KAAK,CAAA,AAAA,IAAC,CAAK,OAAO,AAAZ,CAiBH,MAAM;EAhBT,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAgBH,MAAM;EAfT,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAeH,MAAM;EAdT,KAAK,CAAA,AAAA,IAAC,CAAK,QAAQ,AAAb,CAcH,MAAM;EAbT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAaH,MAAM;EAZT,KAAK,CAAA,AAAA,IAAC,CAAK,KAAK,AAAV,CAYH,MAAM;EAXT,KAAK,CAAA,AAAA,IAAC,CAAK,MAAM,AAAX,CAWH,MAAM;EAVT,QAAQ,AAUL,MAAM,CAAC;IACN,UAAU,ERrFN,OAAO;IQsFX,MAAM,ER1DY,GAAG,CAuhBiB,KAAK,CAtjBrC,IAAI;IQ0FV,UAAU,ERidK,IAAI;IQhdnB,UAAU,ERrGA,oCAAoC,CACjB,IAAI,GQqGlC;;AC/IH,AAAA,SAAS,CAAC;EACR,QAAQ,EAAE,QAAQ;EAClB,OAAO,EAAE,YAAY,GAiLtB;EAnLD,AAKI,SALK,CAIN,AAAA,YAAC,CAAa,MAAM,AAAnB,EACA,cAAc,CAAC;IACb,OAAO,EAAE,CAAC;IACV,cAAc,EAAE,IAAI,GAKrB;IAZL,AASM,SATG,CAIN,AAAA,YAAC,CAAa,MAAM,AAAnB,EACA,cAAc,EAIZ,AAAA,UAAC,AAAA,EAAY;MACX,OAAO,EAAE,IAAI,GACd;EAXP,AAeE,SAfO,EAeP,AAAA,WAAC,AAAA,EAAa;IACZ,OAAO,EAAE,WAAW;IACpB,WAAW,EAAE,MAAM,GAOpB;IAxBH,AAmBI,SAnBK,EAeP,AAAA,WAAC,AAAA,CAIE,OAAO,CAAC;MACP,OAAO,ETmrBW,IAAO;MSlrBzB,OAAO,ETmrBmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG;MSlrBnC,SAAS,ETmrBmB,IAAI,GSlrBjC;EAvBL,AA0BE,SA1BO,CA0BP,cAAc,CAAC;IACb,QAAQ,EAAE,QAAQ;IAClB,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,CAAC;IACV,UAAU,ET+qBa,OAAO,CApqBpB,oCAAoC,CACjB,IAAI;ISXjC,cAAc,EAAE,IAAI;IACpB,eAAe,EAAE,IAAI;IACrB,MAAM,EAAE,CAAC;IACT,OAAO,ET4qBa,GAAG,CAAC,CAAC;IS3qBzB,aAAa,ET8CM,GAAG;IS7CtB,UAAU,ETkBN,OAAO;ISjBX,KAAK,ET4qBa,KAAK;IS3qBvB,MAAM,ET4qBa,GAAG,CAAC,KAAK,CA7pBtB,OAAO;ISdb,OAAO,ET6DW,IAAI,GS8EvB;IAzIC,AAAA,aAAa,CAzCjB,SAAS,CA0BP,cAAc,CAeI;MACd,OAAO,ET2DkB,IAAI,GS1D9B;IA3CL,ARqFE,SQrFO,CA0BP,cAAc,AAmBX,IAAK,CAAA,aAAa,CRwCpB,OAAO,CAAC;MATT,OAAO,EAAE,EAAE;MACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;MAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;MACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;MAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;MAC3C,QAAQ,EAAE,QAAQ;MAMhB,aAAa,EDSJ,GAAG,CCTe,KAAK,CDjC5B,OAAO;MCkCX,GAAG,EAhBe,KAAgB;MAiBlC,IAAI,ED0mBgB,IAAI;MCzmBxB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI,GACb;IQ5FH,AR8FE,SQ9FO,CA0BP,cAAc,AAmBX,IAAK,CAAA,aAAa,CRiDpB,QAAQ,CAAC;MAlBV,OAAO,EAAE,EAAE;MACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;MAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;MACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;MAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;MAC3C,QAAQ,EAAE,QAAQ;MAehB,aAAa,EDAJ,GAAG,CCAe,KAAK,CD3C1B,OAAO;MC4Cb,GAAG,EAxBiB,KAAsB;MAyB1C,IAAI,EDimBgB,IAAI;MChmBxB,KAAK,EAAE,IAAI;MACX,MAAM,EAAE,IAAI,GACb;IA7DD,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK;MQxCrC,AAwDM,SAxDG,CA0BP,cAAc,AA8BT,WAAW,CAAC;QACX,MAAM,EAAE,IAAI;QACZ,aAAa,ET6BN,IAAI,GSlBZ;QArEP,ARyGE,SQzGO,CA0BP,cAAc,AA8BT,WAAW,AAIT,IAAK,CAfJ,aAAa,CR4DpB,OAAO,CAAC;UA7BT,OAAO,EAAE,EAAE;UACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;UAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;UACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;UAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;UAC3C,QAAQ,EAAE,QAAQ;UA0BhB,UAAU,EDXD,GAAG,CCWY,KAAK,CDrDzB,OAAO;UCsDX,MAAM,EApCY,KAAgB;UAqClC,IAAI,EDslBgB,IAAI;UCrlBxB,GAAG,EAAE,IAAI;UACT,KAAK,EAAE,IAAI,GACZ;QQhHH,ARkHE,SQlHO,CA0BP,cAAc,AA8BT,WAAW,AAIT,IAAK,CAfJ,aAAa,CRqEpB,QAAQ,CAAC;UAtCV,OAAO,EAAE,EAAE;UACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;UAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;UACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;UAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;UAC3C,QAAQ,EAAE,QAAQ;UAmChB,UAAU,EDpBD,GAAG,CCoBY,KAAK,CD/DvB,OAAO;UCgEb,MAAM,EA5Cc,KAAsB;UA6C1C,IAAI,ED6kBgB,IAAI;UC5kBxB,GAAG,EAAE,IAAI;UACT,KAAK,EAAE,IAAI,GACZ;MQzHH,AAuEM,SAvEG,CA0BP,cAAc,AA6CT,aAAa,CAAC;QACb,KAAK,EAAE,IAAI;QACX,YAAY,ETcL,IAAI;QSbX,GAAG,EAAE,CAAC,GAWP;QArFP,AR6HE,SQ7HO,CA0BP,cAAc,AA6CT,aAAa,AAKX,IAAK,CA/BJ,aAAa,CRgFpB,OAAO,CAAC;UAjDT,OAAO,EAAE,EAAE;UACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;UAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;UACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;UAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;UAC3C,QAAQ,EAAE,QAAQ;UA8ChB,WAAW,ED/BF,GAAG,CC+Ba,KAAK,CDzE1B,OAAO;UC0EX,KAAK,EAxDa,KAAgB;UAyDlC,GAAG,EDkkBiB,IAAI;UCjkBxB,IAAI,EAAE,IAAI;UACV,MAAM,EAAE,IAAI,GACb;QQpIH,ARsIE,SQtIO,CA0BP,cAAc,AA6CT,aAAa,AAKX,IAAK,CA/BJ,aAAa,CRyFpB,QAAQ,CAAC;UA1DV,OAAO,EAAE,EAAE;UACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;UAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;UACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;UAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;UAC3C,QAAQ,EAAE,QAAQ;UAuDhB,WAAW,EDxCF,GAAG,CCwCa,KAAK,CDnFxB,OAAO;UCoFb,KAAK,EAhEe,KAAsB;UAiE1C,GAAG,EDyjBiB,IAAI;UCxjBxB,IAAI,EAAE,IAAI;UACV,MAAM,EAAE,IAAI,GACb;MQ7IH,AAuFM,SAvFG,CA0BP,cAAc,AA6DT,cAAc,CAAC;QACd,IAAI,EAAE,IAAI;QACV,WAAW,ETFJ,IAAI;QSGX,GAAG,EAAE,CAAC,GAWP;QArGP,ARiJE,SQjJO,CA0BP,cAAc,AA6DT,cAAc,AAKZ,IAAK,CA/CJ,aAAa,CRoGpB,OAAO,CAAC;UArET,OAAO,EAAE,EAAE;UACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;UAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;UACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;UAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;UAC3C,QAAQ,EAAE,QAAQ;UAkEhB,YAAY,EDnDH,GAAG,CCmDc,KAAK,CD7F3B,OAAO;UC8FX,IAAI,EA5Ec,KAAgB;UA6ElC,GAAG,ED8iBiB,IAAI;UC7iBxB,MAAM,EAAE,IAAI;UACZ,KAAK,EAAE,IAAI,GACZ;QQxJH,AR0JE,SQ1JO,CA0BP,cAAc,AA6DT,cAAc,AAKZ,IAAK,CA/CJ,aAAa,CR6GpB,QAAQ,CAAC;UA9EV,OAAO,EAAE,EAAE;UACX,aAAa,EDmBF,GAAG,CCnBa,KAAK,CAAC,WAAW;UAC5C,UAAU,EDkBC,GAAG,CClBU,KAAK,CAAC,WAAW;UACzC,WAAW,EDiBA,GAAG,CCjBW,KAAK,CAAC,WAAW;UAC1C,YAAY,EDgBD,GAAG,CChBY,KAAK,CAAC,WAAW;UAC3C,QAAQ,EAAE,QAAQ;UA2EhB,YAAY,ED5DH,GAAG,CC4Dc,KAAK,CDvGzB,OAAO;UCwGb,IAAI,EApFgB,KAAsB;UAqF1C,GAAG,EDqiBiB,IAAI;UCpiBxB,MAAM,EAAE,IAAI;UACZ,KAAK,EAAE,IAAI,GACZ;MQjKH,AAuGM,SAvGG,CA0BP,cAAc,AA6ET,iBAAiB,CAAC;QACjB,KAAK,EAAE,CAAC,GAeT;QAvHP,AA4GY,SA5GH,CA0BP,cAAc,AA6ET,iBAAiB,AAGf,IAAK,CA7DJ,aAAa,CA+DV,OAAO,CAAC;UACP,IAAI,EAAE,IAAI;UACV,KAAK,ETqlBK,IAAI,GSplBf;QA/Gb,AAiHY,SAjHH,CA0BP,cAAc,AA6ET,iBAAiB,AAGf,IAAK,CA7DJ,aAAa,CAoEV,QAAQ,CAAC;UACR,IAAI,EAAE,IAAI;UACV,KAAK,ETglBK,IAAI,GS/kBf;MApHb,AAyHM,SAzHG,CA0BP,cAAc,AA+FT,kBAAkB,CAAC;QAClB,GAAG,EAAE,IAAI;QACT,MAAM,ETpCC,IAAI,GSmDZ;QA1IP,AA+HY,SA/HH,CA0BP,cAAc,AA+FT,kBAAkB,AAIhB,IAAK,CAhFJ,aAAa,CAkFV,OAAO,CAAC;UACP,GAAG,EAAE,IAAI;UACT,MAAM,ETkkBI,IAAI,GSjkBf;QAlIb,AAoIY,SApIH,CA0BP,cAAc,AA+FT,kBAAkB,AAIhB,IAAK,CAhFJ,aAAa,CAuFV,QAAQ,CAAC;UACR,GAAG,EAAE,IAAI;UACT,MAAM,ET6jBI,IAAI,GS5jBf;IAvIb,AA6II,SA7IK,CA0BP,cAAc,CAmHZ,EAAE,CAAC;MACD,OAAO,EAAE,CAAC;MACV,OAAO,EAAE,KAAK;MACd,QAAQ,EAAE,QAAQ,GAiCnB;MAjLL,AAkJM,SAlJG,CA0BP,cAAc,CAmHZ,EAAE,CAKA,EAAE,CAAC;QACD,MAAM,EAAE,IAAI;QACZ,MAAM,ETmkBc,GAAG;QSlkBvB,UAAU,EThGR,OAAO;QSiGT,MAAM,ETmkBc,GAAG,CAAC,CAAC,GSlkB1B;MAvJP,AAyJM,SAzJG,CA0BP,cAAc,CAmHZ,EAAE,CAYA,CAAC,CAAC;QACA,OAAO,EAAE,IAAI;QACb,QAAQ,EAAE,QAAQ;QAClB,OAAO,ETwjBgB,GAAG,CAAC,IAAI;QSvjB/B,IAAI,EAAE,QAAQ;QACd,SAAS,EAAE,IAAI;QACf,eAAe,EAAE,IAAI;QACrB,KAAK,ET9GH,IAAI,GSuHP;QAzKP,AAkKQ,SAlKC,CA0BP,cAAc,CAmHZ,EAAE,CAYA,CAAC,AASE,MAAM,CAAC;UACN,UAAU,EAAE,OAAsB,GACnC;QApKT,AAsKQ,SAtKC,CA0BP,cAAc,CAmHZ,EAAE,CAYA,CAAC,AAaE,OAAO,CAAC;UACP,UAAU,EAAE,OAAqB,GAClC;MAxKT,AA2KM,SA3KG,CA0BP,cAAc,CAmHZ,EAAE,CA8BA,gBAAgB,CAAC;QACf,SAAS,ET+iBgB,IAAI;QS9iB7B,MAAM,EAAE,CAAC;QACT,OAAO,ET8iBgB,IAAI;QS7iB3B,KAAK,ET3HH,IAAI,GS4HP;;ARCL,AAAA,UAAU,CAAC;EACT,QAAQ,EAAE,iBAAiB,GAC5B;;AS5KH,AAAA,cAAc,CAAC;EACb,OAAO,EAAE,KAAK;EACd,UAAU,EVyoBU,kBAAkB;EUxoBtC,OAAO,EVyFK,IAAI;EUxFhB,UAAU,EAAE,IAAI;EAChB,UAAU,EAAE,MAAM;EAClB,OAAO,EAAE,CAAC;EACV,QAAQ,EAAE,KAAK;EACf,MAAM,EAAE,IAAI;EACZ,KAAK,EAAE,IAAI;EACX,GAAG,EAAE,CAAC;EACN,MAAM,EAAE,CAAC;EACT,IAAI,EAAE,CAAC;EACP,KAAK,EAAE,CAAC;EACR,UAAU,EAAE,OAAO,CV8nBO,IAAI,CA1mBlB,oCAAoC;EUnBhD,cAAc,EAAE,IAAI,GAmFrB;EAlGD,AAiBE,cAjBY,CAiBX,AAAA,YAAC,CAAa,MAAM,AAAnB,EAAqB;IACrB,OAAO,EAAE,CAAC;IACV,cAAc,EAAE,IAAI,GACrB;EApBH,AAsBE,cAtBY,AAsBX,YAAY,CAAC;IACZ,OAAO,EAAE,IAAI;IACb,WAAW,EAAE,MAAM;IACnB,eAAe,EAAE,MAAM;IACvB,SAAS,EAAE,UAAU,GACtB;EA3BH,AA6BE,cA7BY,CA6BZ,aAAa,CAAC;IACZ,UAAU,EViBN,OAAO;IUhBX,KAAK,EVonBqB,GAAG;IUnnB7B,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,aAAa;IACxB,OAAO,EAAE,IAAI;IACb,MAAM,EAAE,OAAO;IACf,MAAM,EV4CK,IAAI,CAqkB0B,IAAI;IUhnB7C,aAAa,EVqCM,GAAG;IUlCtB,MAAM,EAAE,qBAAqB,GAyD9B;IAvDC,MAAM,CAAC,MAAM,MAAM,SAAS,EAAE,KAAK,OAAO,UAAU,EAAE,KAAK;MA1C/D,AA6BE,cA7BY,CA6BZ,aAAa,CAAC;QAcV,KAAK,EVumBa,KAAK;QUtmBvB,MAAM,EVwmBa,IAAI,CAAC,IAAI,GUnjB/B;IAjGH,AA+CI,cA/CU,CA6BZ,aAAa,CAkBX,MAAM,CAAC;MACL,OAAO,EAAE,IAAI;MACb,WAAW,EAAE,MAAM,GAYpB;MA7DL,AAmDM,cAnDQ,CA6BZ,aAAa,CAkBX,MAAM,CAIJ,EAAE;MAnDR,cAAc,CA6BZ,aAAa,CAkBX,MAAM,CAKJ,EAAE;MApDR,cAAc,CA6BZ,aAAa,CAkBX,MAAM,CAMJ,EAAE;MArDR,cAAc,CA6BZ,aAAa,CAkBX,MAAM,CAOJ,EAAE;MAtDR,cAAc,CA6BZ,aAAa,CAkBX,MAAM,CAQJ,EAAE;MAvDR,cAAc,CA6BZ,aAAa,CAkBX,MAAM,CASJ,EAAE,CAAC;QACD,SAAS,EV8lBQ,IAAI;QU7lBrB,OAAO,EAAE,WAAW;QACpB,aAAa,EAAE,CAAC,GACjB;IA5DP,AA+DI,cA/DU,CA6BZ,aAAa,CAkCX,MAAM,GAAG,MAAM,CAAA,AAAA,UAAC,AAAA;IA/DpB,cAAc,CA6BZ,aAAa,CAmCX,MAAM,GAAG,CAAC,CAAA,AAAA,UAAC,AAAA,EAAY;MACrB,WAAW,EAAE,IAAI;MACjB,SAAS,EAAE,IAAI;MACf,eAAe,EAAE,IAAI;MACrB,OAAO,EAAE,KAAK,GACf;IArEL,AAuEI,cAvEU,CA6BZ,aAAa,CA0CX,MAAM;IAvEV,cAAc,CA6BZ,aAAa,CA2CX,OAAO;IAxEX,cAAc,CA6BZ,aAAa,CA4CX,MAAM,CAAC;MACL,OAAO,EVME,IAAI,GULd;IA3EL,AA6EI,cA7EU,CA6BZ,aAAa,CAgDX,MAAM;IA7EV,cAAc,CA6BZ,aAAa,CAiDX,OAAO,CAAC;MACN,aAAa,EVykBG,GAAG,CAAC,KAAK,CA1mBrB,OAAO,GUkCZ;IAhFL,AAkFI,cAlFU,CA6BZ,aAAa,CAqDX,MAAM,CAAC;MACL,OAAO,EAAE,IAAI;MACb,SAAS,EAAE,UAAU;MACrB,eAAe,EVskBW,QAAQ,GU3jBnC;MAhGL,AAuFM,cAvFQ,CA6BZ,aAAa,CAqDX,MAAM,CAKJ,CAAC,AAAA,YAAY;MAvFnB,cAAc,CA6BZ,aAAa,CAqDX,MAAM,CAMJ,MAAM,AAAA,YAAY,CAAC;QACjB,YAAY,EAAE,IAAI,GACnB;MA1FP,AA4FM,cA5FQ,CA6BZ,aAAa,CAqDX,MAAM,CAUJ,CAAC;MA5FP,cAAc,CA6BZ,aAAa,CAqDX,MAAM,CAWJ,MAAM,CAAC;QACL,aAAa,EAAE,CAAC,GACjB;;ACtGP,AAAA,UAAU,CAAC;EACT,MAAM,EXiFc,GAAG,CAwlBe,KAAK,CArnBnC,OAAO;EWnDf,QAAQ,EAAE,MAAM;EAChB,aAAa,EX8EQ,GAAG,GWpBzB;EA7DD,AAKE,UALQ,EAKR,AAAA,YAAC,CAAa,OAAO,AAApB,EAAsB,iBAAiB,AAAA,OAAO,CAAC;IAC9C,SAAS,EAAE,cAAc,GAC1B;EAPH,AASE,UATQ,CASR,iBAAiB,CAAC;IAChB,OAAO,EAAE,IAAI;IACb,SAAS,EAAE,UAAU;IACrB,eAAe,EAAE,aAAa;IAC9B,eAAe,EAAE,IAAI;IACrB,WAAW,EAAE,MAAM;IACnB,KAAK,EAAE,IAAI;IACX,MAAM,EAAE,IAAI;IACZ,KAAK,EX2BO,OAAO;IW1BnB,UAAU,EXoCN,OAAO;IWnCX,OAAO,EXoEI,IAAI;IWnEf,MAAM,EAAE,CAAC;IACT,aAAa,EAAE,CAAC;IAChB,SAAS,EXaM,IAAI,GWApB;IAnCH,AAwBI,UAxBM,CASR,iBAAiB,AAed,MAAM,EAxBX,UAAU,CASR,iBAAiB,AAgBd,MAAM,CAAC;MACN,KAAK,EXupBoB,OAA0B;MWtpBnD,UAAU,EXupBoB,OAAsB,GWtpBrD;IA5BL,AA8BI,UA9BM,CASR,iBAAiB,AAqBd,OAAO,CAAC;MACP,OAAO,EXspBY,IAAO;MWrpB1B,SAAS,EAAE,IAAI;MACf,UAAU,EX2oBgB,IAAI,CAnoBtB,oCAAoC,GWP7C;EAlCL,AAsCI,UAtCM,CAqCR,cAAc,CACZ,EAAE;EAtCN,UAAU,CAqCR,cAAc,CAEZ,EAAE;EAvCN,UAAU,CAqCR,cAAc,CAGZ,EAAE;EAxCN,UAAU,CAqCR,cAAc,CAIZ,EAAE;EAzCN,UAAU,CAqCR,cAAc,CAKZ,EAAE;EA1CN,UAAU,CAqCR,cAAc,CAMZ,EAAE,CAAC;IACD,OAAO,EAAE,CAAC;IACV,MAAM,EAAE,CAAC,GACV;EA9CL,AAgDI,UAhDM,CAqCR,cAAc,AAWX,WAAW,CAAC,kBAAkB,CAAC;IAC9B,aAAa,EAAE,IAAI,GACpB;EAlDL,AAoDI,UApDM,CAqCR,cAAc,CAeZ,kBAAkB,CAAC;IACjB,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,UAAU,EXFR,OAAO;IWGT,UAAU,EAAE,UAAU,CXmnBI,IAAI,CAnoBtB,oCAAoC;IWiB5C,aAAa,EXwBG,GAAG,CAwlBe,KAAK,CArnBnC,OAAO,GWMZ" + "mappings": "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" } \ No newline at end of file diff --git a/dist/undernet.css.zip b/dist/undernet.css.zip index 6a56bb60..002b40d8 100644 Binary files a/dist/undernet.css.zip and b/dist/undernet.css.zip differ diff --git a/dist/undernet.js.zip b/dist/undernet.js.zip index 18d29772..9a7db712 100644 Binary files a/dist/undernet.js.zip and b/dist/undernet.js.zip differ diff --git a/dist/undernet.min.css b/dist/undernet.min.css index eb56028f..4bf764af 100644 --- a/dist/undernet.min.css +++ b/dist/undernet.min.css @@ -1,7 +1,7 @@ /*! * @license MIT (https://github.com/geotrev/undernet/blob/master/LICENSE) -* Undernet v3.3.7 (https://undernet.io) +* Undernet v4.0.0 (https://undernet.io) * Copyright 2017-2019 George Treviranus -*/html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,div,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}a,button,label,input,select,textarea{-webkit-tap-highlight-color:transparent}img,embed,iframe,object,audio,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0;text-align:left}html,body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;margin:0;padding:0;box-sizing:border-box;line-height:1.5}*,*:before,*:after{box-sizing:inherit}html *:focus,body *:focus{outline:none}.using-keyboard *:not([type="text"]):not([type="email"]):not([type="password"]):not([type="search"]):not([type="url"]):not(textarea):not(select):focus{outline:2px solid #3e46af !important}.has-sans-font{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif !important}.has-serif-font{font-family:Constantia,"Lucida Bright",Lucidabright,"Lucida Serif",Lucida,"DejaVu Serif","Bitstream Vera Serif","Liberation Serif",Georgia,serif !important}.has-center-text{text-align:center !important}.has-left-text{text-align:left !important}.has-right-text{text-align:right !important}.is-bold{font-weight:bold !important}.is-italic{font-style:italic !important}.has-primary-color-text{color:#d15ded !important}.has-primary-color-bg{background-color:#d15ded !important}.has-secondary-color-text{color:#3e46af !important}.has-secondary-color-bg{background-color:#3e46af !important}.has-tertiary-color-text{color:teal !important}.has-tertiary-color-bg{background-color:teal !important}.has-black-text{color:#000111 !important}.has-black-bg{background-color:#000111 !important}.has-gray100-text{color:#111 !important}.has-gray100-bg{background-color:#111 !important}.has-gray200-text{color:#222 !important}.has-gray200-bg{background-color:#222 !important}.has-gray400-text{color:#444 !important}.has-gray400-bg{background-color:#444 !important}.has-gray600-text{color:#666 !important}.has-gray600-bg{background-color:#666 !important}.has-gray800-text{color:#888 !important}.has-gray800-bg{background-color:#888 !important}.has-gray900-text{color:#dedede !important}.has-gray900-bg{background-color:#dedede !important}.has-white-text{color:#fff !important}.has-white-bg{background-color:#fff !important}.has-warning-text{color:khaki !important}.has-warning-bg{background-color:khaki !important}.has-success-text{color:#6c0 !important}.has-success-bg{background-color:#6c0 !important}.has-destroy-text{color:#fc6868 !important}.has-destroy-bg{background-color:#fc6868 !important}.has-notice-text{color:#4682b4 !important}.has-notice-bg{background-color:#4682b4 !important}.is-flex{display:flex !important}.is-block{display:block !important}.is-hidden{display:none !important}@media screen and (min-width: 576px){.is-flex-small{display:flex !important}.is-block-small{display:block !important}.is-hidden-small{display:none !important}}@media screen and (min-width: 768px){.is-flex-medium{display:flex !important}.is-block-medium{display:block !important}.is-hidden-medium{display:none !important}}@media screen and (min-width: 992px){.is-flex-large{display:flex !important}.is-block-large{display:block !important}.is-hidden-large{display:none !important}}@media screen and (min-width: 1200px){.is-flex-xlarge{display:flex !important}.is-block-xlarge{display:block !important}.is-hidden-xlarge{display:none !important}}.is-flex-row{flex-direction:row !important}.is-flex-column{flex-direction:column !important}.is-justified-center{justify-content:center !important}.is-justified-flex-end{justify-content:flex-end !important}.is-justified-flex-start{justify-content:flex-start !important}.is-justified-space-around{justify-content:space-around !important}.is-justified-space-between{justify-content:space-between !important}.is-aligned-center{align-items:center !important}.is-aligned-flex-end{align-items:flex-end !important}.is-aligned-flex-start{align-items:flex-start !important}.is-aligned-stretch{align-items:stretch !important}.has-content-center{align-content:center !important}.has-content-flex-end{align-content:flex-end !important}.has-content-flex-start{align-content:flex-start !important}.has-content-space-around{align-content:space-around !important}.has-content-space-between{align-content:space-between !important}.has-content-stretch{align-content:stretch !important}.can-grow{flex-grow:1 !important}.can-shrink{flex-shrink:1 !important}.wont-grow{flex-grow:0 !important}.wont-shrink{flex-shrink:0 !important}.has-no-margin{margin:0 !important}.has-no-padding{padding:0 !important}.has-no-padding-left{padding-left:0 !important}.has-no-margin-left{margin-left:0 !important}.has-no-padding-right{padding-right:0 !important}.has-no-margin-right{margin-right:0 !important}.has-no-padding-top{padding-top:0 !important}.has-no-margin-top{margin-top:0 !important}.has-no-padding-bottom{padding-bottom:0 !important}.has-no-margin-bottom{margin-bottom:0 !important}.has-padding{padding:16px !important}.has-margin{margin:16px !important}.has-padding-left{padding-left:16px !important}.has-margin-left{margin-left:16px !important}.has-padding-right{padding-right:16px !important}.has-margin-right{margin-right:16px !important}.has-padding-top{padding-top:16px !important}.has-margin-top{margin-top:16px !important}.has-padding-bottom{padding-bottom:16px !important}.has-margin-bottom{margin-bottom:16px !important}.has-padding-1{padding:8px !important}.has-margin-1{margin:8px !important}.has-margin-left-1{margin-left:8px !important}.has-padding-left-1{padding-left:8px !important}.has-margin-right-1{margin-right:8px !important}.has-padding-right-1{padding-right:8px !important}.has-margin-top-1{margin-top:8px !important}.has-padding-top-1{padding-top:8px !important}.has-margin-bottom-1{margin-bottom:8px !important}.has-padding-bottom-1{padding-bottom:8px !important}.has-padding-2{padding:12px !important}.has-margin-2{margin:12px !important}.has-margin-left-2{margin-left:12px !important}.has-padding-left-2{padding-left:12px !important}.has-margin-right-2{margin-right:12px !important}.has-padding-right-2{padding-right:12px !important}.has-margin-top-2{margin-top:12px !important}.has-padding-top-2{padding-top:12px !important}.has-margin-bottom-2{margin-bottom:12px !important}.has-padding-bottom-2{padding-bottom:12px !important}.has-padding-3{padding:24px !important}.has-margin-3{margin:24px !important}.has-margin-left-3{margin-left:24px !important}.has-padding-left-3{padding-left:24px !important}.has-margin-right-3{margin-right:24px !important}.has-padding-right-3{padding-right:24px !important}.has-margin-top-3{margin-top:24px !important}.has-padding-top-3{padding-top:24px !important}.has-margin-bottom-3{margin-bottom:24px !important}.has-padding-bottom-3{padding-bottom:24px !important}.has-padding-4{padding:32px !important}.has-margin-4{margin:32px !important}.has-margin-left-4{margin-left:32px !important}.has-padding-left-4{padding-left:32px !important}.has-margin-right-4{margin-right:32px !important}.has-padding-right-4{padding-right:32px !important}.has-margin-top-4{margin-top:32px !important}.has-padding-top-4{padding-top:32px !important}.has-margin-bottom-4{margin-bottom:32px !important}.has-padding-bottom-4{padding-bottom:32px !important}.is-unstyled-list{list-style-type:none !important;padding-left:0 !important}.is-visually-hidden,.is-visually-hidden-focusable{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.is-visually-hidden-focusable:active,.is-visually-hidden-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;white-space:normal;width:auto}.grid::before,.grid::after,.grid .row::before,.grid .row::after,.row .column::before,.row .column::after,.row .columns::before,.row .columns::after{display:block;height:0;width:0;padding:0;margin:0}.grid{display:flex;flex-flow:column nowrap;flex:1 1 0;box-sizing:border-box;margin:0 auto;max-width:992px;padding-left:16px;padding-right:16px;position:relative}.row{display:flex;flex-flow:row wrap;flex:1 1 auto;position:relative;max-width:100%;min-height:1px}.columns,.column{flex:1 1 auto;box-sizing:border-box;max-width:100%;min-height:1px;min-width:0;padding-bottom:16px;padding-left:8px;padding-right:8px;padding-top:0;word-wrap:break-word}.xsmall-1{flex:0 0 8.33333%;max-width:8.33333%}.xsmall-offset-1{margin-left:8.33333%}.xsmall-order-1{order:-12}.xsmall-2{flex:0 0 16.66667%;max-width:16.66667%}.xsmall-offset-2{margin-left:16.66667%}.xsmall-order-2{order:-11}.xsmall-3{flex:0 0 25%;max-width:25%}.xsmall-offset-3{margin-left:25%}.xsmall-order-3{order:-10}.xsmall-4{flex:0 0 33.33333%;max-width:33.33333%}.xsmall-offset-4{margin-left:33.33333%}.xsmall-order-4{order:-9}.xsmall-5{flex:0 0 41.66667%;max-width:41.66667%}.xsmall-offset-5{margin-left:41.66667%}.xsmall-order-5{order:-8}.xsmall-6{flex:0 0 50%;max-width:50%}.xsmall-offset-6{margin-left:50%}.xsmall-order-6{order:-7}.xsmall-7{flex:0 0 58.33333%;max-width:58.33333%}.xsmall-offset-7{margin-left:58.33333%}.xsmall-order-7{order:-6}.xsmall-8{flex:0 0 66.66667%;max-width:66.66667%}.xsmall-offset-8{margin-left:66.66667%}.xsmall-order-8{order:-5}.xsmall-9{flex:0 0 75%;max-width:75%}.xsmall-offset-9{margin-left:75%}.xsmall-order-9{order:-4}.xsmall-10{flex:0 0 83.33333%;max-width:83.33333%}.xsmall-offset-10{margin-left:83.33333%}.xsmall-order-10{order:-3}.xsmall-11{flex:0 0 91.66667%;max-width:91.66667%}.xsmall-offset-11{margin-left:91.66667%}.xsmall-order-11{order:-2}.xsmall-12{flex:0 0 100%;max-width:100%}.xsmall-offset-12{margin-left:100%}.xsmall-order-12{order:-1}@media screen and (min-width: 576px){.small-1{flex:0 0 8.33333%;max-width:8.33333%}.small-offset-1{margin-left:8.33333%}.small-order-1{order:-12}.small-2{flex:0 0 16.66667%;max-width:16.66667%}.small-offset-2{margin-left:16.66667%}.small-order-2{order:-11}.small-3{flex:0 0 25%;max-width:25%}.small-offset-3{margin-left:25%}.small-order-3{order:-10}.small-4{flex:0 0 33.33333%;max-width:33.33333%}.small-offset-4{margin-left:33.33333%}.small-order-4{order:-9}.small-5{flex:0 0 41.66667%;max-width:41.66667%}.small-offset-5{margin-left:41.66667%}.small-order-5{order:-8}.small-6{flex:0 0 50%;max-width:50%}.small-offset-6{margin-left:50%}.small-order-6{order:-7}.small-7{flex:0 0 58.33333%;max-width:58.33333%}.small-offset-7{margin-left:58.33333%}.small-order-7{order:-6}.small-8{flex:0 0 66.66667%;max-width:66.66667%}.small-offset-8{margin-left:66.66667%}.small-order-8{order:-5}.small-9{flex:0 0 75%;max-width:75%}.small-offset-9{margin-left:75%}.small-order-9{order:-4}.small-10{flex:0 0 83.33333%;max-width:83.33333%}.small-offset-10{margin-left:83.33333%}.small-order-10{order:-3}.small-11{flex:0 0 91.66667%;max-width:91.66667%}.small-offset-11{margin-left:91.66667%}.small-order-11{order:-2}.small-12{flex:0 0 100%;max-width:100%}.small-offset-12{margin-left:100%}.small-order-12{order:-1}}@media screen and (min-width: 768px){.medium-1{flex:0 0 8.33333%;max-width:8.33333%}.medium-offset-1{margin-left:8.33333%}.medium-order-1{order:-12}.medium-2{flex:0 0 16.66667%;max-width:16.66667%}.medium-offset-2{margin-left:16.66667%}.medium-order-2{order:-11}.medium-3{flex:0 0 25%;max-width:25%}.medium-offset-3{margin-left:25%}.medium-order-3{order:-10}.medium-4{flex:0 0 33.33333%;max-width:33.33333%}.medium-offset-4{margin-left:33.33333%}.medium-order-4{order:-9}.medium-5{flex:0 0 41.66667%;max-width:41.66667%}.medium-offset-5{margin-left:41.66667%}.medium-order-5{order:-8}.medium-6{flex:0 0 50%;max-width:50%}.medium-offset-6{margin-left:50%}.medium-order-6{order:-7}.medium-7{flex:0 0 58.33333%;max-width:58.33333%}.medium-offset-7{margin-left:58.33333%}.medium-order-7{order:-6}.medium-8{flex:0 0 66.66667%;max-width:66.66667%}.medium-offset-8{margin-left:66.66667%}.medium-order-8{order:-5}.medium-9{flex:0 0 75%;max-width:75%}.medium-offset-9{margin-left:75%}.medium-order-9{order:-4}.medium-10{flex:0 0 83.33333%;max-width:83.33333%}.medium-offset-10{margin-left:83.33333%}.medium-order-10{order:-3}.medium-11{flex:0 0 91.66667%;max-width:91.66667%}.medium-offset-11{margin-left:91.66667%}.medium-order-11{order:-2}.medium-12{flex:0 0 100%;max-width:100%}.medium-offset-12{margin-left:100%}.medium-order-12{order:-1}}@media screen and (min-width: 992px){.large-1{flex:0 0 8.33333%;max-width:8.33333%}.large-offset-1{margin-left:8.33333%}.large-order-1{order:-12}.large-2{flex:0 0 16.66667%;max-width:16.66667%}.large-offset-2{margin-left:16.66667%}.large-order-2{order:-11}.large-3{flex:0 0 25%;max-width:25%}.large-offset-3{margin-left:25%}.large-order-3{order:-10}.large-4{flex:0 0 33.33333%;max-width:33.33333%}.large-offset-4{margin-left:33.33333%}.large-order-4{order:-9}.large-5{flex:0 0 41.66667%;max-width:41.66667%}.large-offset-5{margin-left:41.66667%}.large-order-5{order:-8}.large-6{flex:0 0 50%;max-width:50%}.large-offset-6{margin-left:50%}.large-order-6{order:-7}.large-7{flex:0 0 58.33333%;max-width:58.33333%}.large-offset-7{margin-left:58.33333%}.large-order-7{order:-6}.large-8{flex:0 0 66.66667%;max-width:66.66667%}.large-offset-8{margin-left:66.66667%}.large-order-8{order:-5}.large-9{flex:0 0 75%;max-width:75%}.large-offset-9{margin-left:75%}.large-order-9{order:-4}.large-10{flex:0 0 83.33333%;max-width:83.33333%}.large-offset-10{margin-left:83.33333%}.large-order-10{order:-3}.large-11{flex:0 0 91.66667%;max-width:91.66667%}.large-offset-11{margin-left:91.66667%}.large-order-11{order:-2}.large-12{flex:0 0 100%;max-width:100%}.large-offset-12{margin-left:100%}.large-order-12{order:-1}}@media screen and (min-width: 1200px){.xlarge-1{flex:0 0 8.33333%;max-width:8.33333%}.xlarge-offset-1{margin-left:8.33333%}.xlarge-order-1{order:-12}.xlarge-2{flex:0 0 16.66667%;max-width:16.66667%}.xlarge-offset-2{margin-left:16.66667%}.xlarge-order-2{order:-11}.xlarge-3{flex:0 0 25%;max-width:25%}.xlarge-offset-3{margin-left:25%}.xlarge-order-3{order:-10}.xlarge-4{flex:0 0 33.33333%;max-width:33.33333%}.xlarge-offset-4{margin-left:33.33333%}.xlarge-order-4{order:-9}.xlarge-5{flex:0 0 41.66667%;max-width:41.66667%}.xlarge-offset-5{margin-left:41.66667%}.xlarge-order-5{order:-8}.xlarge-6{flex:0 0 50%;max-width:50%}.xlarge-offset-6{margin-left:50%}.xlarge-order-6{order:-7}.xlarge-7{flex:0 0 58.33333%;max-width:58.33333%}.xlarge-offset-7{margin-left:58.33333%}.xlarge-order-7{order:-6}.xlarge-8{flex:0 0 66.66667%;max-width:66.66667%}.xlarge-offset-8{margin-left:66.66667%}.xlarge-order-8{order:-5}.xlarge-9{flex:0 0 75%;max-width:75%}.xlarge-offset-9{margin-left:75%}.xlarge-order-9{order:-4}.xlarge-10{flex:0 0 83.33333%;max-width:83.33333%}.xlarge-offset-10{margin-left:83.33333%}.xlarge-order-10{order:-3}.xlarge-11{flex:0 0 91.66667%;max-width:91.66667%}.xlarge-offset-11{margin-left:91.66667%}.xlarge-order-11{order:-2}.xlarge-12{flex:0 0 100%;max-width:100%}.xlarge-offset-12{margin-left:100%}.xlarge-order-12{order:-1}}.grid.fluid{max-width:100%}.grid.narrow{max-width:768px}.grid.wide{max-width:1200px}.grid.small-section{padding-top:48px;padding-bottom:48px}.grid.medium-section{padding-top:96px;padding-bottom:96px}.grid.large-section{padding-top:144px;padding-bottom:144px}.grid.fullscreen{box-sizing:border-box;height:100vh;max-width:unset;width:100vw}.grid.fullscreen .row{flex:1 1 auto;align-items:center;align-content:center}h1,h2,h3,h4,h5,h6,p,em,small,mark{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:0;padding:0}ul,ol{padding:0 0 16px 22px;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}ul li,ol li{margin:0;padding:8px 0}ul{list-style-type:disc}ol{list-style-type:decimal}h1,.h1{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h2,.h2{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h3,.h3{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h4,.h4{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h5,.h5{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h6,.h6{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h1,.h1{font-size:28px;margin:0 0 16px 0}h2,.h2{font-size:24px;margin:0 0 16px 0}h3,.h3{font-size:22px;margin:0 0 16px 0}h4,.h4{font-size:20px;margin:0 0 16px 0}h5,.h5{font-size:18px;margin:0 0 16px 0}h6,.h6{font-size:16px;margin:0 0 16px 0}@media screen and (min-width: 768px){h1,.h1{font-size:32px;margin:0 0 16px 0}h2,.h2{font-size:28px;margin:0 0 16px 0}h3,.h3{font-size:24px;margin:0 0 16px 0}h4,.h4{font-size:20px;margin:0 0 16px 0}h5,.h5{font-size:18px;margin:0 0 16px 0}h6,.h6{font-size:16px;margin:0 0 16px 0}}@media screen and (min-width: 992px){h1,.h1{font-size:36px;margin:0 0 16px 0}h2,.h2{font-size:32px;margin:0 0 16px 0}h3,.h3{font-size:28px;margin:0 0 16px 0}h4,.h4{font-size:24px;margin:0 0 16px 0}h5,.h5{font-size:20px;margin:0 0 16px 0}h6,.h6{font-size:16px;margin:0 0 16px 0}}p,.paragraph{font-size:16px;font-style:normal;font-weight:normal;line-height:1.5;margin-bottom:16px;color:#222}pre,code,kbd,samp,tt,.pre,.code,.kbd,.samp,.tt{font-family:monospace,monospace;font-size:1em;background:#f8f8f8;border:none;border-radius:4px;padding:0;color:#666}pre,.pre{padding:16px;overflow:auto;overflow-wrap:initial}pre>code,pre .code,.pre>code,.pre .code{word-break:normal;width:auto}strong,.strong{font-size:inherit;font-style:normal;font-weight:bold}em,.em{font-size:inherit;font-style:italic;font-weight:normal}mark,.mark{font-size:inherit;padding:0;background:khaki;color:#222}small,.small{font-weight:inherit;font-size:75%}u,.underline{text-decoration:underline}hr{margin:2.5rem 0;border-width:0;border-top:1px solid #dedede}a{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:normal;color:#de8bf2;text-decoration:none}a:visited{color:#de8bf2}a:hover,a:focus{color:#d15ded;text-decoration:underline}a:active{color:#d15ded}input[type="button"],input[type="submit"],input[type="file"],input[type="reset"],button,.button{-webkit-appearance:none;align-self:flex-start;border-radius:4px;border-style:solid;border-width:2px;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:normal;line-height:1.5;margin:0 0 16px 0;padding:10px 16px;text-align:center;text-decoration:none;transition:cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s;background:#fff;color:#222;border-color:#888}input[type="button"]:visited,input[type="submit"]:visited,input[type="file"]:visited,input[type="reset"]:visited,button:visited,.button:visited{background:#fff;color:#222;border-color:#888}input[type="button"]:hover,input[type="submit"]:hover,input[type="file"]:hover,input[type="reset"]:hover,button:hover,.button:hover{background:#fff;color:#222;border-color:#666;text-decoration:none}input[type="button"]:active,input[type="submit"]:active,input[type="file"]:active,input[type="reset"]:active,button:active,.button:active{background:#f8f8f8;color:#222;border-color:#444;text-decoration:none}input[type="button"]:focus,input[type="submit"]:focus,input[type="file"]:focus,input[type="reset"]:focus,button:focus,.button:focus{background:#f8f8f8;color:#222;border-color:#666;text-decoration:none}input[type="button"].small,input[type="submit"].small,input[type="file"].small,input[type="reset"].small,button.small,.button.small{padding:8px 14px;font-size:14px}input[type="button"].medium,input[type="submit"].medium,input[type="file"].medium,input[type="reset"].medium,button.medium,.button.medium{padding:12px 18px;font-size:16px}input[type="button"].large,input[type="submit"].large,input[type="file"].large,input[type="reset"].large,button.large,.button.large{padding:16px 22px;font-size:20px}input[type="button"].huge,input[type="submit"].huge,input[type="file"].huge,input[type="reset"].huge,button.huge,.button.huge{padding:20px 30px;font-size:24px}input[type="button"].wide,input[type="submit"].wide,input[type="file"].wide,input[type="reset"].wide,button.wide,.button.wide{display:block;max-width:100%;width:100%}input[type="button"].primary,input[type="submit"].primary,input[type="file"].primary,input[type="reset"].primary,button.primary,.button.primary{background:#d874f0;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:visited,input[type="submit"].primary:visited,input[type="file"].primary:visited,input[type="reset"].primary:visited,button.primary:visited,.button.primary:visited{background:#d874f0;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:hover,input[type="submit"].primary:hover,input[type="file"].primary:hover,input[type="reset"].primary:hover,button.primary:hover,.button.primary:hover{background:#d15ded;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:active,input[type="submit"].primary:active,input[type="file"].primary:active,input[type="reset"].primary:active,button.primary:active,.button.primary:active{background:#ce54ec;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:focus,input[type="submit"].primary:focus,input[type="file"].primary:focus,input[type="reset"].primary:focus,button.primary:focus,.button.primary:focus{background:#ce54ec;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].secondary,input[type="submit"].secondary,input[type="file"].secondary,input[type="reset"].secondary,button.secondary,.button.secondary{background:rgba(0,0,0,0);color:#d874f0;border-color:#d874f0}input[type="button"].secondary:visited,input[type="submit"].secondary:visited,input[type="file"].secondary:visited,input[type="reset"].secondary:visited,button.secondary:visited,.button.secondary:visited{background:rgba(0,0,0,0);color:#d874f0;border-color:#d874f0}input[type="button"].secondary:hover,input[type="submit"].secondary:hover,input[type="file"].secondary:hover,input[type="reset"].secondary:hover,button.secondary:hover,.button.secondary:hover{background:rgba(0,0,0,0);color:#d15ded;border-color:#d15ded}input[type="button"].secondary:active,input[type="submit"].secondary:active,input[type="file"].secondary:active,input[type="reset"].secondary:active,button.secondary:active,.button.secondary:active{background:rgba(0,0,0,0);color:#ce54ec;border-color:#ce54ec}input[type="button"].secondary:focus,input[type="submit"].secondary:focus,input[type="file"].secondary:focus,input[type="reset"].secondary:focus,button.secondary:focus,.button.secondary:focus{background:rgba(0,0,0,0);color:#ce54ec;border-color:#ce54ec}input[type="button"].tertiary,input[type="submit"].tertiary,input[type="file"].tertiary,input[type="reset"].tertiary,button.tertiary,.button.tertiary{background:rgba(0,0,0,0);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:visited,input[type="submit"].tertiary:visited,input[type="file"].tertiary:visited,input[type="reset"].tertiary:visited,button.tertiary:visited,.button.tertiary:visited{background:rgba(0,0,0,0);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:hover,input[type="submit"].tertiary:hover,input[type="file"].tertiary:hover,input[type="reset"].tertiary:hover,button.tertiary:hover,.button.tertiary:hover{background:rgba(222,222,222,0.2);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:active,input[type="submit"].tertiary:active,input[type="file"].tertiary:active,input[type="reset"].tertiary:active,button.tertiary:active,.button.tertiary:active{background:rgba(222,222,222,0.3);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:focus,input[type="submit"].tertiary:focus,input[type="file"].tertiary:focus,input[type="reset"].tertiary:focus,button.tertiary:focus,.button.tertiary:focus{background:rgba(222,222,222,0.3);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].inverted,input[type="submit"].inverted,input[type="file"].inverted,input[type="reset"].inverted,button.inverted,.button.inverted{background:#ebebeb;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:visited,input[type="submit"].inverted:visited,input[type="file"].inverted:visited,input[type="reset"].inverted:visited,button.inverted:visited,.button.inverted:visited{background:#ebebeb;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:hover,input[type="submit"].inverted:hover,input[type="file"].inverted:hover,input[type="reset"].inverted:hover,button.inverted:hover,.button.inverted:hover{background:#fff;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:active,input[type="submit"].inverted:active,input[type="file"].inverted:active,input[type="reset"].inverted:active,button.inverted:active,.button.inverted:active{background:#dedede;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:focus,input[type="submit"].inverted:focus,input[type="file"].inverted:focus,input[type="reset"].inverted:focus,button.inverted:focus,.button.inverted:focus{background:#dedede;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted-outline,input[type="submit"].inverted-outline,input[type="file"].inverted-outline,input[type="reset"].inverted-outline,button.inverted-outline,.button.inverted-outline{background:rgba(0,0,0,0);color:#fff;border-color:#dedede}input[type="button"].inverted-outline:visited,input[type="submit"].inverted-outline:visited,input[type="file"].inverted-outline:visited,input[type="reset"].inverted-outline:visited,button.inverted-outline:visited,.button.inverted-outline:visited{background:rgba(0,0,0,0);color:#fff;border-color:#dedede}input[type="button"].inverted-outline:hover,input[type="submit"].inverted-outline:hover,input[type="file"].inverted-outline:hover,input[type="reset"].inverted-outline:hover,button.inverted-outline:hover,.button.inverted-outline:hover{background:rgba(0,0,0,0);color:#fff;border-color:#fff}input[type="button"].inverted-outline:active,input[type="submit"].inverted-outline:active,input[type="file"].inverted-outline:active,input[type="reset"].inverted-outline:active,button.inverted-outline:active,.button.inverted-outline:active{background:rgba(0,0,0,0);color:#fff;border-color:#d9d9d9}input[type="button"].inverted-outline:focus,input[type="submit"].inverted-outline:focus,input[type="file"].inverted-outline:focus,input[type="reset"].inverted-outline:focus,button.inverted-outline:focus,.button.inverted-outline:focus{background:rgba(0,0,0,0);color:#fff;border-color:#d9d9d9}input[type="button"].warning,input[type="submit"].warning,input[type="file"].warning,input[type="reset"].warning,button.warning,.button.warning{background:#ede175;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:visited,input[type="submit"].warning:visited,input[type="file"].warning:visited,input[type="reset"].warning:visited,button.warning:visited,.button.warning:visited{background:#ede175;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:hover,input[type="submit"].warning:hover,input[type="file"].warning:hover,input[type="reset"].warning:hover,button.warning:hover,.button.warning:hover{background:khaki;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:active,input[type="submit"].warning:active,input[type="file"].warning:active,input[type="reset"].warning:active,button.warning:active,.button.warning:active{background:#efe483;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:focus,input[type="submit"].warning:focus,input[type="file"].warning:focus,input[type="reset"].warning:focus,button.warning:focus,.button.warning:focus{background:#efe483;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].success,input[type="submit"].success,input[type="file"].success,input[type="reset"].success,button.success,.button.success{background:#59b300;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:visited,input[type="submit"].success:visited,input[type="file"].success:visited,input[type="reset"].success:visited,button.success:visited,.button.success:visited{background:#59b300;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:hover,input[type="submit"].success:hover,input[type="file"].success:hover,input[type="reset"].success:hover,button.success:hover,.button.success:hover{background:#6c0;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:active,input[type="submit"].success:active,input[type="file"].success:active,input[type="reset"].success:active,button.success:active,.button.success:active{background:#61c200;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:focus,input[type="submit"].success:focus,input[type="file"].success:focus,input[type="reset"].success:focus,button.success:focus,.button.success:focus{background:#61c200;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy,input[type="submit"].destroy,input[type="file"].destroy,input[type="reset"].destroy,button.destroy,.button.destroy{background:#fc4f4f;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:visited,input[type="submit"].destroy:visited,input[type="file"].destroy:visited,input[type="reset"].destroy:visited,button.destroy:visited,.button.destroy:visited{background:#fc4f4f;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:hover,input[type="submit"].destroy:hover,input[type="file"].destroy:hover,input[type="reset"].destroy:hover,button.destroy:hover,.button.destroy:hover{background:#fc6868;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:active,input[type="submit"].destroy:active,input[type="file"].destroy:active,input[type="reset"].destroy:active,button.destroy:active,.button.destroy:active{background:#fc5e5e;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:focus,input[type="submit"].destroy:focus,input[type="file"].destroy:focus,input[type="reset"].destroy:focus,button.destroy:focus,.button.destroy:focus{background:#fc5e5e;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice,input[type="submit"].notice,input[type="file"].notice,input[type="reset"].notice,button.notice,.button.notice{background:#3f75a2;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:visited,input[type="submit"].notice:visited,input[type="file"].notice:visited,input[type="reset"].notice:visited,button.notice:visited,.button.notice:visited{background:#3f75a2;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:hover,input[type="submit"].notice:hover,input[type="file"].notice:hover,input[type="reset"].notice:hover,button.notice:hover,.button.notice:hover{background:#4682b4;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:active,input[type="submit"].notice:active,input[type="file"].notice:active,input[type="reset"].notice:active,button.notice:active,.button.notice:active{background:#437dad;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:focus,input[type="submit"].notice:focus,input[type="file"].notice:focus,input[type="reset"].notice:focus,button.notice:focus,.button.notice:focus{background:#437dad;color:#fff;border-color:rgba(0,0,0,0)}input[type="text"],input[type="password"],input[type="email"],input[type="date"],input[type="datetime-local"],input[type="month"],input[type="number"],input[type="tel"],input[type="search"],input[type="time"],input[type="url"],input[type="week"],textarea{background:#fff;appearance:none;border-radius:4px;border:2px solid #888;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;margin:8px 0 16px 0;padding:12px}textarea,input[type="text"]{resize:vertical}fieldset{display:flex;flex-flow:column;background:rgba(0,0,0,0);border-radius:4px;border:2px solid #dedede;box-shadow:none;margin:0 0 16px 0;padding:16px}fieldset legend{align-self:flex-start;background:#fff;border-radius:4px;border:2px solid #dedede;box-shadow:none;color:#222;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;padding:6px 12px}form{background:rgba(0,0,0,0);border:none;box-shadow:none;margin:0;padding:0}label{display:flex;flex-flow:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.has-check{display:flex;flex-flow:row nowrap;align-items:center;padding:0 0 16px 0}input[type="radio"],input[type="checkbox"]{cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:0 12px 0 0;padding:0}input[type="text"]:disabled,input[type="text"].disabled,input[type="password"]:disabled,input[type="password"].disabled,input[type="email"]:disabled,input[type="email"].disabled,input[type="date"]:disabled,input[type="date"].disabled,input[type="datetime-local"]:disabled,input[type="datetime-local"].disabled,input[type="month"]:disabled,input[type="month"].disabled,input[type="number"]:disabled,input[type="number"].disabled,input[type="tel"]:disabled,input[type="tel"].disabled,input[type="search"]:disabled,input[type="search"].disabled,input[type="time"]:disabled,input[type="time"].disabled,input[type="url"]:disabled,input[type="url"].disabled,input[type="week"]:disabled,input[type="week"].disabled,input[type="submit"]:disabled,input[type="submit"].disabled,input[type="file"]:disabled,input[type="file"].disabled,input[type="reset"]:disabled,input[type="reset"].disabled,input[type="button"]:disabled,input[type="button"].disabled,input[type="radio"]:disabled,input[type="radio"].disabled,input[type="checkbox"]:disabled,input[type="checkbox"].disabled,textarea:disabled,textarea.disabled,button:disabled,button.disabled,a:disabled,a.disabled,.button:disabled,.button.disabled{background:#dedede !important;border:2px solid #dedede !important;color:#444 !important;cursor:not-allowed;resize:none !important;opacity:1}input[type="text"]:disabled:hover,input[type="text"].disabled:hover,input[type="password"]:disabled:hover,input[type="password"].disabled:hover,input[type="email"]:disabled:hover,input[type="email"].disabled:hover,input[type="date"]:disabled:hover,input[type="date"].disabled:hover,input[type="datetime-local"]:disabled:hover,input[type="datetime-local"].disabled:hover,input[type="month"]:disabled:hover,input[type="month"].disabled:hover,input[type="number"]:disabled:hover,input[type="number"].disabled:hover,input[type="tel"]:disabled:hover,input[type="tel"].disabled:hover,input[type="search"]:disabled:hover,input[type="search"].disabled:hover,input[type="time"]:disabled:hover,input[type="time"].disabled:hover,input[type="url"]:disabled:hover,input[type="url"].disabled:hover,input[type="week"]:disabled:hover,input[type="week"].disabled:hover,input[type="submit"]:disabled:hover,input[type="submit"].disabled:hover,input[type="file"]:disabled:hover,input[type="file"].disabled:hover,input[type="reset"]:disabled:hover,input[type="reset"].disabled:hover,input[type="button"]:disabled:hover,input[type="button"].disabled:hover,input[type="radio"]:disabled:hover,input[type="radio"].disabled:hover,input[type="checkbox"]:disabled:hover,input[type="checkbox"].disabled:hover,textarea:disabled:hover,textarea.disabled:hover,button:disabled:hover,button.disabled:hover,a:disabled:hover,a.disabled:hover,.button:disabled:hover,.button.disabled:hover{background:#dedede !important;border:2px solid #dedede !important;color:#444 !important}input[type="text"],input[type="password"],input[type="email"],input[type="date"],input[type="datetime-local"],input[type="month"],input[type="number"],input[type="tel"],input[type="search"],input[type="time"],input[type="url"],input[type="week"],textarea{transition:cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s}input[type="text"]:focus,input[type="text"]:active,input[type="password"]:focus,input[type="password"]:active,input[type="email"]:focus,input[type="email"]:active,input[type="date"]:focus,input[type="date"]:active,input[type="datetime-local"]:focus,input[type="datetime-local"]:active,input[type="month"]:focus,input[type="month"]:active,input[type="number"]:focus,input[type="number"]:active,input[type="tel"]:focus,input[type="tel"]:active,input[type="search"]:focus,input[type="search"]:active,input[type="time"]:focus,input[type="time"]:active,input[type="url"]:focus,input[type="url"]:active,input[type="week"]:focus,input[type="week"]:active,textarea:focus,textarea:active{background:#fff !important;border:2px solid #d15ded !important;box-shadow:none !important}input[type="text"]:hover,input[type="password"]:hover,input[type="email"]:hover,input[type="date"]:hover,input[type="datetime-local"]:hover,input[type="month"]:hover,input[type="number"]:hover,input[type="tel"]:hover,input[type="search"]:hover,input[type="time"]:hover,input[type="url"]:hover,input[type="week"]:hover,textarea:hover{background:#fff;border:2px solid #666;box-shadow:none;transition:cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s}.dropdown{position:relative;display:inline-block}.dropdown[data-visible="true"] .dropdown-menu{opacity:1;pointer-events:auto}.dropdown[data-visible="true"] .dropdown-menu [data-close]{display:flex}.dropdown [data-target]{display:inline-flex;align-items:center}.dropdown [data-target]::after{content:"▼";padding:0 0 0 8px;font-size:12px}.dropdown .dropdown-menu{position:absolute;display:block;opacity:0;transition:opacity cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s;pointer-events:none;list-style-type:none;margin:0;padding:8px 0;border-radius:4px;background:#fff;width:200px;border:1px solid #dedede;z-index:1999}.modal-dialog .dropdown .dropdown-menu{z-index:2001}.dropdown .dropdown-menu:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-bottom:7px solid #fff;top:-14px;left:12px;right:auto;bottom:auto}.dropdown .dropdown-menu:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-bottom:7px solid #dedede;top:-15px;left:12px;right:auto;bottom:auto}@media screen and (min-width: 768px){.dropdown .dropdown-menu.is-drop-up{bottom:100%;margin-bottom:16px}.dropdown .dropdown-menu.is-drop-up:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-top:7px solid #fff;bottom:-14px;left:12px;top:auto;right:auto}.dropdown .dropdown-menu.is-drop-up:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-top:7px solid #dedede;bottom:-15px;left:12px;top:auto;right:auto}.dropdown .dropdown-menu.is-drop-left{right:100%;margin-right:16px;top:0}.dropdown .dropdown-menu.is-drop-left:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-left:7px solid #fff;right:-14px;top:12px;left:auto;bottom:auto}.dropdown .dropdown-menu.is-drop-left:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-left:7px solid #dedede;right:-15px;top:12px;left:auto;bottom:auto}.dropdown .dropdown-menu.is-drop-right{left:100%;margin-left:16px;top:0}.dropdown .dropdown-menu.is-drop-right:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-right:7px solid #fff;left:-14px;top:12px;bottom:auto;right:auto}.dropdown .dropdown-menu.is-drop-right:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-right:7px solid #dedede;left:-15px;top:12px;bottom:auto;right:auto}.dropdown .dropdown-menu.is-aligned-right{right:0}.dropdown .dropdown-menu.is-aligned-right:not(.has-no-arrow)::after{left:auto;right:12px}.dropdown .dropdown-menu.is-aligned-right:not(.has-no-arrow)::before{left:auto;right:12px}.dropdown .dropdown-menu.is-aligned-bottom{top:auto;bottom:16px}.dropdown .dropdown-menu.is-aligned-bottom:not(.has-no-arrow)::after{top:auto;bottom:12px}.dropdown .dropdown-menu.is-aligned-bottom:not(.has-no-arrow)::before{top:auto;bottom:12px}}.dropdown .dropdown-menu li{padding:0;display:block;position:relative}.dropdown .dropdown-menu li hr{border:none;height:1px;background:#dedede;margin:8px 0}.dropdown .dropdown-menu li a{display:flex;position:relative;padding:8px 12px;flex:0 0 100%;max-width:100%;text-decoration:none;color:#444}.dropdown .dropdown-menu li a:hover{background:#f8f8f8}.dropdown .dropdown-menu li a:active{background:#f2f2f2}.dropdown .dropdown-menu li .dropdown-header{font-size:14px;margin:0;padding:12px;color:#888}.no-scroll{overflow:hidden !important}.modal-overlay{display:block;background:rgba(0,0,0,0.5);z-index:2000;overflow-y:auto;overflow-x:hidden;opacity:0;position:fixed;height:100%;width:100%;top:0;bottom:0;left:0;right:0;transition:opacity .5s cubic-bezier(0.12, 0.72, 0.58, 1.03);pointer-events:none}.modal-overlay[data-visible="true"]{opacity:1;pointer-events:auto}.modal-overlay.is-centered{display:flex;align-items:center;justify-content:center;flex-flow:row nowrap}.modal-overlay .modal-dialog{background:#fff;width:95%;position:relative;flex-flow:column nowrap;display:flex;cursor:default;margin:16px auto;border-radius:4px;border:1px solid transparent}@media screen and (min-width: 576px) and (min-height: 576px){.modal-overlay .modal-dialog{width:450px;margin:40px auto}}.modal-overlay .modal-dialog header{display:flex;align-items:center}.modal-overlay .modal-dialog header h1,.modal-overlay .modal-dialog header h2,.modal-overlay .modal-dialog header h3,.modal-overlay .modal-dialog header h4,.modal-overlay .modal-dialog header h5,.modal-overlay .modal-dialog header h6{font-size:20px;display:inline-flex;margin-bottom:0}.modal-overlay .modal-dialog header>button[data-close],.modal-overlay .modal-dialog header>a[data-close]{margin-left:auto;font-size:32px;text-decoration:none;padding:0 8px}.modal-overlay .modal-dialog header,.modal-overlay .modal-dialog section,.modal-overlay .modal-dialog footer{padding:16px}.modal-overlay .modal-dialog header,.modal-overlay .modal-dialog section{border-bottom:1px solid #dedede}.modal-overlay .modal-dialog footer{display:flex;flex-flow:row nowrap;justify-content:flex-end}.modal-overlay .modal-dialog footer a:first-child,.modal-overlay .modal-dialog footer button:first-child{margin-right:16px}.modal-overlay .modal-dialog footer a,.modal-overlay .modal-dialog footer button{margin-bottom:0}.accordion{border:2px solid #dedede;overflow:hidden;border-radius:4px}.accordion [data-visible="false"] .accordion-button::after{transform:rotate(180deg)}.accordion .accordion-button{display:flex;flex-flow:row nowrap;justify-content:space-between;text-decoration:none;align-items:center;width:100%;border:none;color:#d15ded;background:#fff;padding:16px;margin:0;border-radius:0;font-size:16px}.accordion .accordion-button:hover,.accordion .accordion-button:focus{color:#ce54ec;background:#f8f8f8}.accordion .accordion-button::after{content:"▲";font-size:12px;transition:.5s cubic-bezier(0.12, 0.72, 0.58, 1.03)}.accordion .accordion-row h1,.accordion .accordion-row h2,.accordion .accordion-row h3,.accordion .accordion-row h4,.accordion .accordion-row h5,.accordion .accordion-row h6{padding:0;margin:0}.accordion .accordion-row:last-child .accordion-content{border-bottom:none}.accordion .accordion-row .accordion-content{overflow:hidden;padding:0;max-height:0;background:#fff;transition:max-height .5s cubic-bezier(0.12, 0.72, 0.58, 1.03);border-bottom:2px solid #dedede} +*/html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,div,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}a,button,label,input,select,textarea{-webkit-tap-highlight-color:transparent}img,embed,iframe,object,audio,video{height:auto;max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0;text-align:left}html,body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;margin:0;padding:0;box-sizing:border-box;line-height:1.5}*,*:before,*:after{box-sizing:inherit}html *:focus,body *:focus{outline:none}.using-keyboard *:not([type="text"]):not([type="email"]):not([type="password"]):not([type="search"]):not([type="url"]):not(textarea):not(select):focus{outline:2px solid #3e46af !important}.has-sans-font{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif !important}.has-serif-font{font-family:Constantia,"Lucida Bright",Lucidabright,"Lucida Serif",Lucida,"DejaVu Serif","Bitstream Vera Serif","Liberation Serif",Georgia,serif !important}.has-center-text{text-align:center !important}.has-left-text{text-align:left !important}.has-right-text{text-align:right !important}.is-bold{font-weight:bold !important}.is-italic{font-style:italic !important}.has-primary-color-text{color:#d15ded !important}.has-primary-color-bg{background-color:#d15ded !important}.has-secondary-color-text{color:#3e46af !important}.has-secondary-color-bg{background-color:#3e46af !important}.has-tertiary-color-text{color:teal !important}.has-tertiary-color-bg{background-color:teal !important}.has-black-text{color:#000111 !important}.has-black-bg{background-color:#000111 !important}.has-gray100-text{color:#111 !important}.has-gray100-bg{background-color:#111 !important}.has-gray200-text{color:#222 !important}.has-gray200-bg{background-color:#222 !important}.has-gray400-text{color:#444 !important}.has-gray400-bg{background-color:#444 !important}.has-gray600-text{color:#666 !important}.has-gray600-bg{background-color:#666 !important}.has-gray800-text{color:#888 !important}.has-gray800-bg{background-color:#888 !important}.has-gray900-text{color:#dedede !important}.has-gray900-bg{background-color:#dedede !important}.has-white-text{color:#fff !important}.has-white-bg{background-color:#fff !important}.has-warning-text{color:khaki !important}.has-warning-bg{background-color:khaki !important}.has-success-text{color:#6c0 !important}.has-success-bg{background-color:#6c0 !important}.has-destroy-text{color:#fc6868 !important}.has-destroy-bg{background-color:#fc6868 !important}.has-notice-text{color:#4682b4 !important}.has-notice-bg{background-color:#4682b4 !important}.is-flex{display:flex !important}.is-block{display:block !important}.is-hidden{display:none !important}@media screen and (min-width: 576px){.is-flex-small{display:flex !important}.is-block-small{display:block !important}.is-hidden-small{display:none !important}}@media screen and (min-width: 768px){.is-flex-medium{display:flex !important}.is-block-medium{display:block !important}.is-hidden-medium{display:none !important}}@media screen and (min-width: 992px){.is-flex-large{display:flex !important}.is-block-large{display:block !important}.is-hidden-large{display:none !important}}@media screen and (min-width: 1200px){.is-flex-xlarge{display:flex !important}.is-block-xlarge{display:block !important}.is-hidden-xlarge{display:none !important}}.is-flex-row{flex-direction:row !important}.is-flex-column{flex-direction:column !important}.is-justified-center{justify-content:center !important}.is-justified-flex-end{justify-content:flex-end !important}.is-justified-flex-start{justify-content:flex-start !important}.is-justified-space-around{justify-content:space-around !important}.is-justified-space-between{justify-content:space-between !important}.is-aligned-center{align-items:center !important}.is-aligned-flex-end{align-items:flex-end !important}.is-aligned-flex-start{align-items:flex-start !important}.is-aligned-stretch{align-items:stretch !important}.has-content-center{align-content:center !important}.has-content-flex-end{align-content:flex-end !important}.has-content-flex-start{align-content:flex-start !important}.has-content-space-around{align-content:space-around !important}.has-content-space-between{align-content:space-between !important}.has-content-stretch{align-content:stretch !important}.can-grow{flex-grow:1 !important}.can-shrink{flex-shrink:1 !important}.wont-grow{flex-grow:0 !important}.wont-shrink{flex-shrink:0 !important}.has-no-margin{margin:0 !important}.has-no-padding{padding:0 !important}.has-no-padding-left{padding-left:0 !important}.has-no-margin-left{margin-left:0 !important}.has-no-padding-right{padding-right:0 !important}.has-no-margin-right{margin-right:0 !important}.has-no-padding-top{padding-top:0 !important}.has-no-margin-top{margin-top:0 !important}.has-no-padding-bottom{padding-bottom:0 !important}.has-no-margin-bottom{margin-bottom:0 !important}.has-padding{padding:16px !important}.has-margin{margin:16px !important}.has-padding-left{padding-left:16px !important}.has-margin-left{margin-left:16px !important}.has-padding-right{padding-right:16px !important}.has-margin-right{margin-right:16px !important}.has-padding-top{padding-top:16px !important}.has-margin-top{margin-top:16px !important}.has-padding-bottom{padding-bottom:16px !important}.has-margin-bottom{margin-bottom:16px !important}.has-padding-1{padding:8px !important}.has-margin-1{margin:8px !important}.has-margin-left-1{margin-left:8px !important}.has-padding-left-1{padding-left:8px !important}.has-margin-right-1{margin-right:8px !important}.has-padding-right-1{padding-right:8px !important}.has-margin-top-1{margin-top:8px !important}.has-padding-top-1{padding-top:8px !important}.has-margin-bottom-1{margin-bottom:8px !important}.has-padding-bottom-1{padding-bottom:8px !important}.has-padding-2{padding:12px !important}.has-margin-2{margin:12px !important}.has-margin-left-2{margin-left:12px !important}.has-padding-left-2{padding-left:12px !important}.has-margin-right-2{margin-right:12px !important}.has-padding-right-2{padding-right:12px !important}.has-margin-top-2{margin-top:12px !important}.has-padding-top-2{padding-top:12px !important}.has-margin-bottom-2{margin-bottom:12px !important}.has-padding-bottom-2{padding-bottom:12px !important}.has-padding-3{padding:24px !important}.has-margin-3{margin:24px !important}.has-margin-left-3{margin-left:24px !important}.has-padding-left-3{padding-left:24px !important}.has-margin-right-3{margin-right:24px !important}.has-padding-right-3{padding-right:24px !important}.has-margin-top-3{margin-top:24px !important}.has-padding-top-3{padding-top:24px !important}.has-margin-bottom-3{margin-bottom:24px !important}.has-padding-bottom-3{padding-bottom:24px !important}.has-padding-4{padding:32px !important}.has-margin-4{margin:32px !important}.has-margin-left-4{margin-left:32px !important}.has-padding-left-4{padding-left:32px !important}.has-margin-right-4{margin-right:32px !important}.has-padding-right-4{padding-right:32px !important}.has-margin-top-4{margin-top:32px !important}.has-padding-top-4{padding-top:32px !important}.has-margin-bottom-4{margin-bottom:32px !important}.has-padding-bottom-4{padding-bottom:32px !important}.is-unstyled-list{list-style-type:none !important;padding-left:0 !important}.is-visually-hidden,.is-visually-hidden-focusable{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.is-visually-hidden-focusable:active,.is-visually-hidden-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;white-space:normal;width:auto}.grid::before,.grid::after,.grid .row::before,.grid .row::after,.row .column::before,.row .column::after,.row .columns::before,.row .columns::after{display:block;height:0;width:0;padding:0;margin:0}.grid{display:flex;flex-flow:column nowrap;flex:1 1 0;box-sizing:border-box;margin:0 auto;max-width:992px;padding-left:16px;padding-right:16px;position:relative}.row{display:flex;flex-flow:row wrap;flex:1 1 auto;position:relative;max-width:100%;min-height:1px}.columns,.column{flex:1 1 auto;box-sizing:border-box;max-width:100%;min-height:1px;min-width:0;padding-bottom:16px;padding-left:8px;padding-right:8px;padding-top:0;word-wrap:break-word}.xsmall-1{flex:0 0 8.33333%;max-width:8.33333%}.xsmall-offset-1{margin-left:8.33333%}.xsmall-order-1{order:-12}.xsmall-2{flex:0 0 16.66667%;max-width:16.66667%}.xsmall-offset-2{margin-left:16.66667%}.xsmall-order-2{order:-11}.xsmall-3{flex:0 0 25%;max-width:25%}.xsmall-offset-3{margin-left:25%}.xsmall-order-3{order:-10}.xsmall-4{flex:0 0 33.33333%;max-width:33.33333%}.xsmall-offset-4{margin-left:33.33333%}.xsmall-order-4{order:-9}.xsmall-5{flex:0 0 41.66667%;max-width:41.66667%}.xsmall-offset-5{margin-left:41.66667%}.xsmall-order-5{order:-8}.xsmall-6{flex:0 0 50%;max-width:50%}.xsmall-offset-6{margin-left:50%}.xsmall-order-6{order:-7}.xsmall-7{flex:0 0 58.33333%;max-width:58.33333%}.xsmall-offset-7{margin-left:58.33333%}.xsmall-order-7{order:-6}.xsmall-8{flex:0 0 66.66667%;max-width:66.66667%}.xsmall-offset-8{margin-left:66.66667%}.xsmall-order-8{order:-5}.xsmall-9{flex:0 0 75%;max-width:75%}.xsmall-offset-9{margin-left:75%}.xsmall-order-9{order:-4}.xsmall-10{flex:0 0 83.33333%;max-width:83.33333%}.xsmall-offset-10{margin-left:83.33333%}.xsmall-order-10{order:-3}.xsmall-11{flex:0 0 91.66667%;max-width:91.66667%}.xsmall-offset-11{margin-left:91.66667%}.xsmall-order-11{order:-2}.xsmall-12{flex:0 0 100%;max-width:100%}.xsmall-offset-12{margin-left:100%}.xsmall-order-12{order:-1}@media screen and (min-width: 576px){.small-1{flex:0 0 8.33333%;max-width:8.33333%}.small-offset-1{margin-left:8.33333%}.small-order-1{order:-12}.small-2{flex:0 0 16.66667%;max-width:16.66667%}.small-offset-2{margin-left:16.66667%}.small-order-2{order:-11}.small-3{flex:0 0 25%;max-width:25%}.small-offset-3{margin-left:25%}.small-order-3{order:-10}.small-4{flex:0 0 33.33333%;max-width:33.33333%}.small-offset-4{margin-left:33.33333%}.small-order-4{order:-9}.small-5{flex:0 0 41.66667%;max-width:41.66667%}.small-offset-5{margin-left:41.66667%}.small-order-5{order:-8}.small-6{flex:0 0 50%;max-width:50%}.small-offset-6{margin-left:50%}.small-order-6{order:-7}.small-7{flex:0 0 58.33333%;max-width:58.33333%}.small-offset-7{margin-left:58.33333%}.small-order-7{order:-6}.small-8{flex:0 0 66.66667%;max-width:66.66667%}.small-offset-8{margin-left:66.66667%}.small-order-8{order:-5}.small-9{flex:0 0 75%;max-width:75%}.small-offset-9{margin-left:75%}.small-order-9{order:-4}.small-10{flex:0 0 83.33333%;max-width:83.33333%}.small-offset-10{margin-left:83.33333%}.small-order-10{order:-3}.small-11{flex:0 0 91.66667%;max-width:91.66667%}.small-offset-11{margin-left:91.66667%}.small-order-11{order:-2}.small-12{flex:0 0 100%;max-width:100%}.small-offset-12{margin-left:100%}.small-order-12{order:-1}}@media screen and (min-width: 768px){.medium-1{flex:0 0 8.33333%;max-width:8.33333%}.medium-offset-1{margin-left:8.33333%}.medium-order-1{order:-12}.medium-2{flex:0 0 16.66667%;max-width:16.66667%}.medium-offset-2{margin-left:16.66667%}.medium-order-2{order:-11}.medium-3{flex:0 0 25%;max-width:25%}.medium-offset-3{margin-left:25%}.medium-order-3{order:-10}.medium-4{flex:0 0 33.33333%;max-width:33.33333%}.medium-offset-4{margin-left:33.33333%}.medium-order-4{order:-9}.medium-5{flex:0 0 41.66667%;max-width:41.66667%}.medium-offset-5{margin-left:41.66667%}.medium-order-5{order:-8}.medium-6{flex:0 0 50%;max-width:50%}.medium-offset-6{margin-left:50%}.medium-order-6{order:-7}.medium-7{flex:0 0 58.33333%;max-width:58.33333%}.medium-offset-7{margin-left:58.33333%}.medium-order-7{order:-6}.medium-8{flex:0 0 66.66667%;max-width:66.66667%}.medium-offset-8{margin-left:66.66667%}.medium-order-8{order:-5}.medium-9{flex:0 0 75%;max-width:75%}.medium-offset-9{margin-left:75%}.medium-order-9{order:-4}.medium-10{flex:0 0 83.33333%;max-width:83.33333%}.medium-offset-10{margin-left:83.33333%}.medium-order-10{order:-3}.medium-11{flex:0 0 91.66667%;max-width:91.66667%}.medium-offset-11{margin-left:91.66667%}.medium-order-11{order:-2}.medium-12{flex:0 0 100%;max-width:100%}.medium-offset-12{margin-left:100%}.medium-order-12{order:-1}}@media screen and (min-width: 992px){.large-1{flex:0 0 8.33333%;max-width:8.33333%}.large-offset-1{margin-left:8.33333%}.large-order-1{order:-12}.large-2{flex:0 0 16.66667%;max-width:16.66667%}.large-offset-2{margin-left:16.66667%}.large-order-2{order:-11}.large-3{flex:0 0 25%;max-width:25%}.large-offset-3{margin-left:25%}.large-order-3{order:-10}.large-4{flex:0 0 33.33333%;max-width:33.33333%}.large-offset-4{margin-left:33.33333%}.large-order-4{order:-9}.large-5{flex:0 0 41.66667%;max-width:41.66667%}.large-offset-5{margin-left:41.66667%}.large-order-5{order:-8}.large-6{flex:0 0 50%;max-width:50%}.large-offset-6{margin-left:50%}.large-order-6{order:-7}.large-7{flex:0 0 58.33333%;max-width:58.33333%}.large-offset-7{margin-left:58.33333%}.large-order-7{order:-6}.large-8{flex:0 0 66.66667%;max-width:66.66667%}.large-offset-8{margin-left:66.66667%}.large-order-8{order:-5}.large-9{flex:0 0 75%;max-width:75%}.large-offset-9{margin-left:75%}.large-order-9{order:-4}.large-10{flex:0 0 83.33333%;max-width:83.33333%}.large-offset-10{margin-left:83.33333%}.large-order-10{order:-3}.large-11{flex:0 0 91.66667%;max-width:91.66667%}.large-offset-11{margin-left:91.66667%}.large-order-11{order:-2}.large-12{flex:0 0 100%;max-width:100%}.large-offset-12{margin-left:100%}.large-order-12{order:-1}}@media screen and (min-width: 1200px){.xlarge-1{flex:0 0 8.33333%;max-width:8.33333%}.xlarge-offset-1{margin-left:8.33333%}.xlarge-order-1{order:-12}.xlarge-2{flex:0 0 16.66667%;max-width:16.66667%}.xlarge-offset-2{margin-left:16.66667%}.xlarge-order-2{order:-11}.xlarge-3{flex:0 0 25%;max-width:25%}.xlarge-offset-3{margin-left:25%}.xlarge-order-3{order:-10}.xlarge-4{flex:0 0 33.33333%;max-width:33.33333%}.xlarge-offset-4{margin-left:33.33333%}.xlarge-order-4{order:-9}.xlarge-5{flex:0 0 41.66667%;max-width:41.66667%}.xlarge-offset-5{margin-left:41.66667%}.xlarge-order-5{order:-8}.xlarge-6{flex:0 0 50%;max-width:50%}.xlarge-offset-6{margin-left:50%}.xlarge-order-6{order:-7}.xlarge-7{flex:0 0 58.33333%;max-width:58.33333%}.xlarge-offset-7{margin-left:58.33333%}.xlarge-order-7{order:-6}.xlarge-8{flex:0 0 66.66667%;max-width:66.66667%}.xlarge-offset-8{margin-left:66.66667%}.xlarge-order-8{order:-5}.xlarge-9{flex:0 0 75%;max-width:75%}.xlarge-offset-9{margin-left:75%}.xlarge-order-9{order:-4}.xlarge-10{flex:0 0 83.33333%;max-width:83.33333%}.xlarge-offset-10{margin-left:83.33333%}.xlarge-order-10{order:-3}.xlarge-11{flex:0 0 91.66667%;max-width:91.66667%}.xlarge-offset-11{margin-left:91.66667%}.xlarge-order-11{order:-2}.xlarge-12{flex:0 0 100%;max-width:100%}.xlarge-offset-12{margin-left:100%}.xlarge-order-12{order:-1}}.grid.fluid{max-width:100%}.grid.narrow{max-width:768px}.grid.wide{max-width:1200px}.grid.small-section{padding-top:48px;padding-bottom:48px}.grid.medium-section{padding-top:96px;padding-bottom:96px}.grid.large-section{padding-top:144px;padding-bottom:144px}.grid.fullscreen{box-sizing:border-box;height:100vh;max-width:unset;width:100vw}.grid.fullscreen .row{flex:1 1 auto;align-items:center;align-content:center}h1,h2,h3,h4,h5,h6,p,em,small,mark{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:0;padding:0}ul,ol{padding:0 0 16px 22px;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}ul li,ol li{margin:0;padding:8px 0}ul{list-style-type:disc}ol{list-style-type:decimal}h1,.h1{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h2,.h2{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h3,.h3{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h4,.h4{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h5,.h5{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h6,.h6{line-height:1.3;color:#222;font-style:normal;font-weight:bold}h1,.h1{font-size:28px;margin:0 0 16px 0}h2,.h2{font-size:24px;margin:0 0 16px 0}h3,.h3{font-size:22px;margin:0 0 16px 0}h4,.h4{font-size:20px;margin:0 0 16px 0}h5,.h5{font-size:18px;margin:0 0 16px 0}h6,.h6{font-size:16px;margin:0 0 16px 0}@media screen and (min-width: 768px){h1,.h1{font-size:32px;margin:0 0 16px 0}h2,.h2{font-size:28px;margin:0 0 16px 0}h3,.h3{font-size:24px;margin:0 0 16px 0}h4,.h4{font-size:20px;margin:0 0 16px 0}h5,.h5{font-size:18px;margin:0 0 16px 0}h6,.h6{font-size:16px;margin:0 0 16px 0}}@media screen and (min-width: 992px){h1,.h1{font-size:36px;margin:0 0 16px 0}h2,.h2{font-size:32px;margin:0 0 16px 0}h3,.h3{font-size:28px;margin:0 0 16px 0}h4,.h4{font-size:24px;margin:0 0 16px 0}h5,.h5{font-size:20px;margin:0 0 16px 0}h6,.h6{font-size:16px;margin:0 0 16px 0}}p,.paragraph{font-size:16px;font-style:normal;font-weight:normal;line-height:1.5;margin-bottom:16px;color:#222}pre,code,kbd,samp,tt,.pre,.code,.kbd,.samp,.tt{font-family:monospace,monospace;font-size:1em;background:#f8f8f8;border:none;border-radius:4px;padding:0;color:#666}pre,.pre{padding:16px;overflow:auto;overflow-wrap:initial}pre>code,pre .code,.pre>code,.pre .code{word-break:normal;width:auto}strong,.strong{font-size:inherit;font-style:normal;font-weight:bold}em,.em{font-size:inherit;font-style:italic;font-weight:normal}mark,.mark{font-size:inherit;padding:0;background:khaki;color:#222}small,.small{font-weight:inherit;font-size:75%}u,.underline{text-decoration:underline}hr{margin:2.5rem 0;border-width:0;border-top:1px solid #dedede}a{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:normal;color:#de8bf2;text-decoration:none}a:visited{color:#de8bf2}a:hover,a:focus{color:#d15ded;text-decoration:underline}a:active{color:#d15ded}input[type="button"],input[type="submit"],input[type="file"],input[type="reset"],button,.button{-webkit-appearance:none;align-self:flex-start;border-radius:4px;border-style:solid;border-width:2px;box-sizing:border-box;cursor:pointer;display:inline-block;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;font-style:normal;font-weight:normal;line-height:1.5;margin:0 0 16px 0;padding:10px 16px;text-align:center;text-decoration:none;transition:cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s;background:#fff;color:#222;border-color:#888}input[type="button"]:visited,input[type="submit"]:visited,input[type="file"]:visited,input[type="reset"]:visited,button:visited,.button:visited{background:#fff;color:#222;border-color:#888}input[type="button"]:hover,input[type="submit"]:hover,input[type="file"]:hover,input[type="reset"]:hover,button:hover,.button:hover{background:#fff;color:#222;border-color:#666;text-decoration:none}input[type="button"]:active,input[type="submit"]:active,input[type="file"]:active,input[type="reset"]:active,button:active,.button:active{background:#f8f8f8;color:#222;border-color:#444;text-decoration:none}input[type="button"]:focus,input[type="submit"]:focus,input[type="file"]:focus,input[type="reset"]:focus,button:focus,.button:focus{background:#f8f8f8;color:#222;border-color:#666;text-decoration:none}input[type="button"].small,input[type="submit"].small,input[type="file"].small,input[type="reset"].small,button.small,.button.small{padding:8px 14px;font-size:14px}input[type="button"].medium,input[type="submit"].medium,input[type="file"].medium,input[type="reset"].medium,button.medium,.button.medium{padding:12px 18px;font-size:16px}input[type="button"].large,input[type="submit"].large,input[type="file"].large,input[type="reset"].large,button.large,.button.large{padding:16px 22px;font-size:20px}input[type="button"].huge,input[type="submit"].huge,input[type="file"].huge,input[type="reset"].huge,button.huge,.button.huge{padding:20px 30px;font-size:24px}input[type="button"].wide,input[type="submit"].wide,input[type="file"].wide,input[type="reset"].wide,button.wide,.button.wide{display:block;max-width:100%;width:100%}input[type="button"].primary,input[type="submit"].primary,input[type="file"].primary,input[type="reset"].primary,button.primary,.button.primary{background:#d874f0;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:visited,input[type="submit"].primary:visited,input[type="file"].primary:visited,input[type="reset"].primary:visited,button.primary:visited,.button.primary:visited{background:#d874f0;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:hover,input[type="submit"].primary:hover,input[type="file"].primary:hover,input[type="reset"].primary:hover,button.primary:hover,.button.primary:hover{background:#d15ded;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:active,input[type="submit"].primary:active,input[type="file"].primary:active,input[type="reset"].primary:active,button.primary:active,.button.primary:active{background:#ce54ec;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].primary:focus,input[type="submit"].primary:focus,input[type="file"].primary:focus,input[type="reset"].primary:focus,button.primary:focus,.button.primary:focus{background:#ce54ec;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].secondary,input[type="submit"].secondary,input[type="file"].secondary,input[type="reset"].secondary,button.secondary,.button.secondary{background:rgba(0,0,0,0);color:#d874f0;border-color:#d874f0}input[type="button"].secondary:visited,input[type="submit"].secondary:visited,input[type="file"].secondary:visited,input[type="reset"].secondary:visited,button.secondary:visited,.button.secondary:visited{background:rgba(0,0,0,0);color:#d874f0;border-color:#d874f0}input[type="button"].secondary:hover,input[type="submit"].secondary:hover,input[type="file"].secondary:hover,input[type="reset"].secondary:hover,button.secondary:hover,.button.secondary:hover{background:rgba(0,0,0,0);color:#d15ded;border-color:#d15ded}input[type="button"].secondary:active,input[type="submit"].secondary:active,input[type="file"].secondary:active,input[type="reset"].secondary:active,button.secondary:active,.button.secondary:active{background:rgba(0,0,0,0);color:#ce54ec;border-color:#ce54ec}input[type="button"].secondary:focus,input[type="submit"].secondary:focus,input[type="file"].secondary:focus,input[type="reset"].secondary:focus,button.secondary:focus,.button.secondary:focus{background:rgba(0,0,0,0);color:#ce54ec;border-color:#ce54ec}input[type="button"].tertiary,input[type="submit"].tertiary,input[type="file"].tertiary,input[type="reset"].tertiary,button.tertiary,.button.tertiary{background:rgba(0,0,0,0);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:visited,input[type="submit"].tertiary:visited,input[type="file"].tertiary:visited,input[type="reset"].tertiary:visited,button.tertiary:visited,.button.tertiary:visited{background:rgba(0,0,0,0);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:hover,input[type="submit"].tertiary:hover,input[type="file"].tertiary:hover,input[type="reset"].tertiary:hover,button.tertiary:hover,.button.tertiary:hover{background:rgba(222,222,222,0.2);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:active,input[type="submit"].tertiary:active,input[type="file"].tertiary:active,input[type="reset"].tertiary:active,button.tertiary:active,.button.tertiary:active{background:rgba(222,222,222,0.3);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].tertiary:focus,input[type="submit"].tertiary:focus,input[type="file"].tertiary:focus,input[type="reset"].tertiary:focus,button.tertiary:focus,.button.tertiary:focus{background:rgba(222,222,222,0.3);color:#d15ded;border-color:rgba(0,0,0,0)}input[type="button"].inverted,input[type="submit"].inverted,input[type="file"].inverted,input[type="reset"].inverted,button.inverted,.button.inverted{background:#ebebeb;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:visited,input[type="submit"].inverted:visited,input[type="file"].inverted:visited,input[type="reset"].inverted:visited,button.inverted:visited,.button.inverted:visited{background:#ebebeb;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:hover,input[type="submit"].inverted:hover,input[type="file"].inverted:hover,input[type="reset"].inverted:hover,button.inverted:hover,.button.inverted:hover{background:#fff;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:active,input[type="submit"].inverted:active,input[type="file"].inverted:active,input[type="reset"].inverted:active,button.inverted:active,.button.inverted:active{background:#dedede;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted:focus,input[type="submit"].inverted:focus,input[type="file"].inverted:focus,input[type="reset"].inverted:focus,button.inverted:focus,.button.inverted:focus{background:#dedede;color:#222;border-color:rgba(0,0,0,0)}input[type="button"].inverted-outline,input[type="submit"].inverted-outline,input[type="file"].inverted-outline,input[type="reset"].inverted-outline,button.inverted-outline,.button.inverted-outline{background:rgba(0,0,0,0);color:#fff;border-color:#dedede}input[type="button"].inverted-outline:visited,input[type="submit"].inverted-outline:visited,input[type="file"].inverted-outline:visited,input[type="reset"].inverted-outline:visited,button.inverted-outline:visited,.button.inverted-outline:visited{background:rgba(0,0,0,0);color:#fff;border-color:#dedede}input[type="button"].inverted-outline:hover,input[type="submit"].inverted-outline:hover,input[type="file"].inverted-outline:hover,input[type="reset"].inverted-outline:hover,button.inverted-outline:hover,.button.inverted-outline:hover{background:rgba(0,0,0,0);color:#fff;border-color:#fff}input[type="button"].inverted-outline:active,input[type="submit"].inverted-outline:active,input[type="file"].inverted-outline:active,input[type="reset"].inverted-outline:active,button.inverted-outline:active,.button.inverted-outline:active{background:rgba(0,0,0,0);color:#fff;border-color:#d9d9d9}input[type="button"].inverted-outline:focus,input[type="submit"].inverted-outline:focus,input[type="file"].inverted-outline:focus,input[type="reset"].inverted-outline:focus,button.inverted-outline:focus,.button.inverted-outline:focus{background:rgba(0,0,0,0);color:#fff;border-color:#d9d9d9}input[type="button"].warning,input[type="submit"].warning,input[type="file"].warning,input[type="reset"].warning,button.warning,.button.warning{background:#ede175;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:visited,input[type="submit"].warning:visited,input[type="file"].warning:visited,input[type="reset"].warning:visited,button.warning:visited,.button.warning:visited{background:#ede175;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:hover,input[type="submit"].warning:hover,input[type="file"].warning:hover,input[type="reset"].warning:hover,button.warning:hover,.button.warning:hover{background:khaki;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:active,input[type="submit"].warning:active,input[type="file"].warning:active,input[type="reset"].warning:active,button.warning:active,.button.warning:active{background:#efe483;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].warning:focus,input[type="submit"].warning:focus,input[type="file"].warning:focus,input[type="reset"].warning:focus,button.warning:focus,.button.warning:focus{background:#efe483;color:#000111;border-color:rgba(0,0,0,0)}input[type="button"].success,input[type="submit"].success,input[type="file"].success,input[type="reset"].success,button.success,.button.success{background:#59b300;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:visited,input[type="submit"].success:visited,input[type="file"].success:visited,input[type="reset"].success:visited,button.success:visited,.button.success:visited{background:#59b300;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:hover,input[type="submit"].success:hover,input[type="file"].success:hover,input[type="reset"].success:hover,button.success:hover,.button.success:hover{background:#6c0;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:active,input[type="submit"].success:active,input[type="file"].success:active,input[type="reset"].success:active,button.success:active,.button.success:active{background:#61c200;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].success:focus,input[type="submit"].success:focus,input[type="file"].success:focus,input[type="reset"].success:focus,button.success:focus,.button.success:focus{background:#61c200;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy,input[type="submit"].destroy,input[type="file"].destroy,input[type="reset"].destroy,button.destroy,.button.destroy{background:#fc4f4f;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:visited,input[type="submit"].destroy:visited,input[type="file"].destroy:visited,input[type="reset"].destroy:visited,button.destroy:visited,.button.destroy:visited{background:#fc4f4f;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:hover,input[type="submit"].destroy:hover,input[type="file"].destroy:hover,input[type="reset"].destroy:hover,button.destroy:hover,.button.destroy:hover{background:#fc6868;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:active,input[type="submit"].destroy:active,input[type="file"].destroy:active,input[type="reset"].destroy:active,button.destroy:active,.button.destroy:active{background:#fc5e5e;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].destroy:focus,input[type="submit"].destroy:focus,input[type="file"].destroy:focus,input[type="reset"].destroy:focus,button.destroy:focus,.button.destroy:focus{background:#fc5e5e;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice,input[type="submit"].notice,input[type="file"].notice,input[type="reset"].notice,button.notice,.button.notice{background:#3f75a2;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:visited,input[type="submit"].notice:visited,input[type="file"].notice:visited,input[type="reset"].notice:visited,button.notice:visited,.button.notice:visited{background:#3f75a2;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:hover,input[type="submit"].notice:hover,input[type="file"].notice:hover,input[type="reset"].notice:hover,button.notice:hover,.button.notice:hover{background:#4682b4;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:active,input[type="submit"].notice:active,input[type="file"].notice:active,input[type="reset"].notice:active,button.notice:active,.button.notice:active{background:#437dad;color:#fff;border-color:rgba(0,0,0,0)}input[type="button"].notice:focus,input[type="submit"].notice:focus,input[type="file"].notice:focus,input[type="reset"].notice:focus,button.notice:focus,.button.notice:focus{background:#437dad;color:#fff;border-color:rgba(0,0,0,0)}input[type="text"],input[type="password"],input[type="email"],input[type="date"],input[type="datetime-local"],input[type="month"],input[type="number"],input[type="tel"],input[type="search"],input[type="time"],input[type="url"],input[type="week"],textarea{background:#fff;appearance:none;border-radius:4px;border:2px solid #888;box-shadow:none;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;margin:8px 0 16px 0;padding:12px}textarea,input[type="text"]{resize:vertical}fieldset{display:flex;flex-flow:column;background:rgba(0,0,0,0);border-radius:4px;border:2px solid #dedede;box-shadow:none;margin:0 0 16px 0;padding:16px}fieldset legend{align-self:flex-start;background:#fff;border-radius:4px;border:2px solid #dedede;box-shadow:none;color:#222;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;font-size:16px;padding:6px 12px}form{background:rgba(0,0,0,0);border:none;box-shadow:none;margin:0;padding:0}label{display:flex;flex-flow:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif}.has-check{display:flex;flex-flow:row nowrap;align-items:center;padding:0 0 16px 0}input[type="radio"],input[type="checkbox"]{cursor:pointer;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Oxygen-Sans,Ubuntu,Cantarell,"Helvetica Neue",sans-serif;margin:0 12px 0 0;padding:0}input[type="text"]:disabled,input[type="text"].disabled,input[type="password"]:disabled,input[type="password"].disabled,input[type="email"]:disabled,input[type="email"].disabled,input[type="date"]:disabled,input[type="date"].disabled,input[type="datetime-local"]:disabled,input[type="datetime-local"].disabled,input[type="month"]:disabled,input[type="month"].disabled,input[type="number"]:disabled,input[type="number"].disabled,input[type="tel"]:disabled,input[type="tel"].disabled,input[type="search"]:disabled,input[type="search"].disabled,input[type="time"]:disabled,input[type="time"].disabled,input[type="url"]:disabled,input[type="url"].disabled,input[type="week"]:disabled,input[type="week"].disabled,input[type="submit"]:disabled,input[type="submit"].disabled,input[type="file"]:disabled,input[type="file"].disabled,input[type="reset"]:disabled,input[type="reset"].disabled,input[type="button"]:disabled,input[type="button"].disabled,input[type="radio"]:disabled,input[type="radio"].disabled,input[type="checkbox"]:disabled,input[type="checkbox"].disabled,textarea:disabled,textarea.disabled,button:disabled,button.disabled,.button:disabled,.button.disabled{background:#dedede !important;border:2px solid #dedede !important;color:#444 !important;cursor:not-allowed;resize:none !important;opacity:1}input[type="text"]:disabled:hover,input[type="text"].disabled:hover,input[type="password"]:disabled:hover,input[type="password"].disabled:hover,input[type="email"]:disabled:hover,input[type="email"].disabled:hover,input[type="date"]:disabled:hover,input[type="date"].disabled:hover,input[type="datetime-local"]:disabled:hover,input[type="datetime-local"].disabled:hover,input[type="month"]:disabled:hover,input[type="month"].disabled:hover,input[type="number"]:disabled:hover,input[type="number"].disabled:hover,input[type="tel"]:disabled:hover,input[type="tel"].disabled:hover,input[type="search"]:disabled:hover,input[type="search"].disabled:hover,input[type="time"]:disabled:hover,input[type="time"].disabled:hover,input[type="url"]:disabled:hover,input[type="url"].disabled:hover,input[type="week"]:disabled:hover,input[type="week"].disabled:hover,input[type="submit"]:disabled:hover,input[type="submit"].disabled:hover,input[type="file"]:disabled:hover,input[type="file"].disabled:hover,input[type="reset"]:disabled:hover,input[type="reset"].disabled:hover,input[type="button"]:disabled:hover,input[type="button"].disabled:hover,input[type="radio"]:disabled:hover,input[type="radio"].disabled:hover,input[type="checkbox"]:disabled:hover,input[type="checkbox"].disabled:hover,textarea:disabled:hover,textarea.disabled:hover,button:disabled:hover,button.disabled:hover,.button:disabled:hover,.button.disabled:hover{background:#dedede !important;border:2px solid #dedede !important;color:#444 !important}input[type="text"],input[type="password"],input[type="email"],input[type="date"],input[type="datetime-local"],input[type="month"],input[type="number"],input[type="tel"],input[type="search"],input[type="time"],input[type="url"],input[type="week"],textarea{transition:cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s}input[type="text"]:focus,input[type="text"]:active,input[type="password"]:focus,input[type="password"]:active,input[type="email"]:focus,input[type="email"]:active,input[type="date"]:focus,input[type="date"]:active,input[type="datetime-local"]:focus,input[type="datetime-local"]:active,input[type="month"]:focus,input[type="month"]:active,input[type="number"]:focus,input[type="number"]:active,input[type="tel"]:focus,input[type="tel"]:active,input[type="search"]:focus,input[type="search"]:active,input[type="time"]:focus,input[type="time"]:active,input[type="url"]:focus,input[type="url"]:active,input[type="week"]:focus,input[type="week"]:active,textarea:focus,textarea:active{background:#fff !important;border:2px solid #d15ded !important;box-shadow:none !important}input[type="text"]:hover,input[type="password"]:hover,input[type="email"]:hover,input[type="date"]:hover,input[type="datetime-local"]:hover,input[type="month"]:hover,input[type="number"]:hover,input[type="tel"]:hover,input[type="search"]:hover,input[type="time"]:hover,input[type="url"]:hover,input[type="week"]:hover,textarea:hover{background:#fff;border:2px solid #666;box-shadow:none;transition:cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s}.dropdown{position:relative;display:inline-block}.dropdown[data-visible="true"] .dropdown-menu{opacity:1;pointer-events:auto}.dropdown[data-visible="true"] .dropdown-menu [data-close]{display:flex}.dropdown [data-target]{display:inline-flex;align-items:center}.dropdown [data-target]::after{content:"▼";padding:0 0 0 8px;font-size:12px}.dropdown .dropdown-menu{position:absolute;display:block;opacity:0;transition:opacity cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s;pointer-events:none;list-style-type:none;margin:0;padding:8px 0;border-radius:4px;background:#fff;width:200px;border:1px solid #dedede;z-index:1999}.modal-dialog .dropdown .dropdown-menu{z-index:2002}.dropdown .dropdown-menu:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-bottom:7px solid #fff;top:-13px;left:12px;right:auto;bottom:auto}.dropdown .dropdown-menu:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-bottom:7px solid #dedede;top:-14.5px;left:12px;right:auto;bottom:auto}@media screen and (min-width: 768px){.dropdown .dropdown-menu.is-drop-up{bottom:100%;margin-bottom:16px}.dropdown .dropdown-menu.is-drop-up:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-top:7px solid #fff;bottom:-13px;left:12px;top:auto;right:auto}.dropdown .dropdown-menu.is-drop-up:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-top:7px solid #dedede;bottom:-14.5px;left:12px;top:auto;right:auto}.dropdown .dropdown-menu.is-drop-left{right:100%;margin-right:16px;top:0}.dropdown .dropdown-menu.is-drop-left:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-left:7px solid #fff;right:-13px;top:12px;left:auto;bottom:auto}.dropdown .dropdown-menu.is-drop-left:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-left:7px solid #dedede;right:-14.5px;top:12px;left:auto;bottom:auto}.dropdown .dropdown-menu.is-drop-right{left:100%;margin-left:16px;top:0}.dropdown .dropdown-menu.is-drop-right:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-right:7px solid #fff;left:-13px;top:12px;bottom:auto;right:auto}.dropdown .dropdown-menu.is-drop-right:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-right:7px solid #dedede;left:-14.5px;top:12px;bottom:auto;right:auto}.dropdown .dropdown-menu.is-aligned-right{right:0}.dropdown .dropdown-menu.is-aligned-right::after{left:auto;right:12px}.dropdown .dropdown-menu.is-aligned-right::before{left:auto;right:12px}.dropdown .dropdown-menu.is-aligned-bottom{top:auto;bottom:16px}.dropdown .dropdown-menu.is-aligned-bottom::after{top:auto;bottom:12px}.dropdown .dropdown-menu.is-aligned-bottom::before{top:auto;bottom:12px}}.dropdown .dropdown-menu li{padding:0;display:block;position:relative}.dropdown .dropdown-menu li hr{border:none;height:1px;background:#dedede;margin:8px 0}.dropdown .dropdown-menu li a{display:flex;position:relative;padding:8px 12px;flex:0 0 100%;max-width:100%;text-decoration:none;color:#444}.dropdown .dropdown-menu li a:hover{background:#f8f8f8}.dropdown .dropdown-menu li a:active{background:#f2f2f2}.dropdown .dropdown-menu li .dropdown-header{font-size:14px;margin:0;padding:12px;color:#888}.no-scroll{overflow:hidden !important}.modal-overlay{display:block;background:rgba(0,0,0,0.5);z-index:2000;overflow-y:auto;overflow-x:hidden;opacity:0;position:fixed;height:100%;width:100%;top:0;bottom:0;left:0;right:0;transition:opacity .5s cubic-bezier(0.12, 0.72, 0.58, 1.03);pointer-events:none}.modal-overlay[data-visible="true"]{opacity:1;pointer-events:auto}.modal-overlay.is-centered{display:flex;align-items:center;justify-content:center;flex-flow:row nowrap}.modal-overlay .modal-dialog{background:#fff;width:95%;position:relative;flex-flow:column nowrap;display:flex;cursor:default;margin:16px auto;border-radius:4px;border:1px solid transparent}@media screen and (min-width: 576px) and (min-height: 576px){.modal-overlay .modal-dialog{width:450px;margin:40px auto}}.modal-overlay .modal-dialog header{display:flex;align-items:center}.modal-overlay .modal-dialog header h1,.modal-overlay .modal-dialog header h2,.modal-overlay .modal-dialog header h3,.modal-overlay .modal-dialog header h4,.modal-overlay .modal-dialog header h5,.modal-overlay .modal-dialog header h6{font-size:20px;display:inline-flex;margin-bottom:0}.modal-overlay .modal-dialog header>button[data-close],.modal-overlay .modal-dialog header>a[data-close]{margin-left:auto;font-size:32px;text-decoration:none;padding:0 8px}.modal-overlay .modal-dialog header,.modal-overlay .modal-dialog section,.modal-overlay .modal-dialog footer{padding:16px}.modal-overlay .modal-dialog header,.modal-overlay .modal-dialog section{border-bottom:1px solid #dedede}.modal-overlay .modal-dialog footer{display:flex;flex-flow:row nowrap;justify-content:flex-end}.modal-overlay .modal-dialog footer a:first-child,.modal-overlay .modal-dialog footer button:first-child{margin-right:16px}.modal-overlay .modal-dialog footer a,.modal-overlay .modal-dialog footer button{margin-bottom:0}.accordion{border:2px solid #dedede;overflow:hidden;border-radius:4px}.accordion [data-visible="false"] .accordion-button::after{transform:rotate(180deg)}.accordion .accordion-button{display:flex;flex-flow:row nowrap;justify-content:space-between;text-decoration:none;align-items:center;width:100%;border:none;color:#d15ded;background:#fff;padding:16px;margin:0;border-radius:0;font-size:16px}.accordion .accordion-button:hover,.accordion .accordion-button:focus{color:#ce54ec;background:#f8f8f8}.accordion .accordion-button::after{content:"▲";font-size:12px;transition:.5s cubic-bezier(0.12, 0.72, 0.58, 1.03)}.accordion .accordion-row h1,.accordion .accordion-row h2,.accordion .accordion-row h3,.accordion .accordion-row h4,.accordion .accordion-row h5,.accordion .accordion-row h6{padding:0;margin:0}.accordion .accordion-row:last-child .accordion-content{border-bottom:none}.accordion .accordion-row .accordion-content{overflow:hidden;padding:0;max-height:0;background:#fff;transition:max-height .5s cubic-bezier(0.12, 0.72, 0.58, 1.03);border-bottom:2px solid #dedede}.tooltip{position:relative;display:inline-block}.tooltip-trigger{display:inline-block;cursor:pointer}.tooltip-trigger>*:disabled,.tooltip-trigger>.disabled{pointer-events:none}.tooltip-box{padding:4px 8px;border-radius:4px;border:1px solid #111;background:#111;position:absolute;display:block;opacity:0;transition:opacity cubic-bezier(0.12, 0.72, 0.58, 1.03) 0.2s;pointer-events:none;word-wrap:break-word;white-space:nowrap;text-align:center;z-index:1998;color:#fff;font-size:14px;margin:0 0 7px;bottom:100%;left:0}.tooltip-box[data-visible="true"]{opacity:1;pointer-events:auto}.modal-dialog .tooltip-box{z-index:2001}.tooltip-box:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-top:7px solid #111;bottom:-13px;left:calc(50% - 7px);top:auto;right:auto}.tooltip-box:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-top:7px solid #111;bottom:-14.5px;left:calc(50% - 7px);top:auto;right:auto}.tooltip-box.is-drop-right{left:100%;margin:0 0 0 7px;bottom:auto;top:0}.tooltip-box.is-drop-right:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-right:7px solid #111;left:-13px;top:calc(50% - 7px);bottom:auto;right:auto}.tooltip-box.is-drop-right:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-right:7px solid #111;left:-14.5px;top:calc(50% - 7px);bottom:auto;right:auto}.tooltip-box.is-drop-left{right:100%;margin:0 7px 0 0;bottom:auto;left:auto;top:0}.tooltip-box.is-drop-left:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-left:7px solid #111;right:-13px;top:calc(50% - 7px);left:auto;bottom:auto}.tooltip-box.is-drop-left:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-left:7px solid #111;right:-14.5px;top:calc(50% - 7px);left:auto;bottom:auto}.tooltip-box.is-drop-down{top:100%;margin:-7px 0 0 0;bottom:auto;left:0}.tooltip-box.is-drop-down:not(.has-no-arrow)::after{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-bottom:7px solid #111;top:-13px;left:calc(50% - 7px);right:auto;bottom:auto}.tooltip-box.is-drop-down:not(.has-no-arrow)::before{content:"";border-bottom:7px solid transparent;border-top:7px solid transparent;border-left:7px solid transparent;border-right:7px solid transparent;position:absolute;border-bottom:7px solid #111;top:-14.5px;left:calc(50% - 7px);right:auto;bottom:auto} /*# sourceMappingURL=undernet.min.css.map */ \ No newline at end of file diff --git a/dist/undernet.min.css.map b/dist/undernet.min.css.map index 24b9a53d..363606fd 100644 --- a/dist/undernet.min.css.map +++ b/dist/undernet.min.css.map @@ -3,21 +3,21 @@ "file": "undernet.min.css", "sources": [ "../scss/undernet.scss", - "../scss/helpers/_functions.scss", + "../scss/utilities/_functions.scss", "../scss/_config.scss", - "../scss/helpers/_mixins.scss", - "../scss/elements/_reset.scss", - "../scss/helpers/_classes.scss", - "../scss/elements/_grid.scss", + "../scss/utilities/_mixins.scss", + "../scss/utilities/_reset.scss", + "../scss/utilities/_classes.scss", + "../scss/layout/_grid.scss", "../scss/elements/_typography.scss", - "../scss/elements/_link.scss", "../scss/elements/_button.scss", "../scss/elements/_form.scss", "../scss/components/_dropdown.scss", "../scss/components/_modal.scss", "../scss/components/_accordion.scss", - "../scss/helpers/_scope-overrides.scss" + "../scss/components/_tooltip.scss", + "../scss/utilities/_scope-overrides.scss" ], "names": [], - "mappings": "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" + "mappings": "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" } \ No newline at end of file diff --git a/dist/undernet.modules.js.zip b/dist/undernet.modules.js.zip index b53ee7d3..7ea8da24 100644 Binary files a/dist/undernet.modules.js.zip and b/dist/undernet.modules.js.zip differ diff --git a/dist/undernet.scss.zip b/dist/undernet.scss.zip index 104b2004..e0abf8de 100644 Binary files a/dist/undernet.scss.zip and b/dist/undernet.scss.zip differ diff --git a/docs/branding.md b/docs/branding.md deleted file mode 100644 index 3fa9b70e..00000000 --- a/docs/branding.md +++ /dev/null @@ -1,90 +0,0 @@ -Customizing your Undernet CSS requires using the partial scss files that define all elements and components. - -To get a sense of what you have the easiest control over, reference the `_config.scss` file which includes core variables for all elements, utilities, and interactive components. - -## SCSS - -You can build your CSS from SCSS using the [`node-sass` npm package](https://npmjs.org/package/node-sass), or whichever build tool your project already uses. - -```sh -$ cd yourProjectFolder/ -$ npm install -D node-sass -``` - -Now you can start compiling your css using the command line! - -```sh -$ node-sass --output-style compressed css/undernet.scss css/undernet.css -``` - -Assumes your scss files are inside a folder named `css/`. - -Then link to the css in your stylesheet. - -```html - - - - ... - - - - ... - - -``` - -## NPM - -If you use these tools, extending Undernet requires a bit of setup. It also assumes you also have a SCSS compiler set up (node-sass, sass gem, etc). - -First, import in a new global SCSS file: 1) functions, 2) default config, and 3) mixins. - -You can import this file in other stylesheets to get access to the mixin and variable definitions while not risking duplication of class definitions. - -```css -@import "~undernet/scss/helpers/functions"; -/* Add config overrides here! */ -@import "~undernet/scss/config"; -@import "~undernet/scss/helpers/mixins"; -``` - -Next, in a separate stylesheet, import any or all of Undernet's components. - -Only import the below **one time** in your application! - -```css -@import "path/to/new_config"; -/* remove reset below if you are scoping */ -@import "~undernet/scss/elements/reset"; -/* Scope is defined in the original config, and can be overriden using your new config */ -/* .#{$scope} { */ -@import "~undernet/scss/helpers/classes"; -@import "~undernet/scss/elements/grid"; -@import "~undernet/scss/elements/typography"; -@import "~undernet/scss/elements/link"; -@import "~undernet/scss/elements/button"; -@import "~undernet/scss/elements/form"; -@import "~undernet/scss/components/modal"; -@import "~undernet/scss/components/accordion"; -@import "~undernet/scss/components/dropdown"; -/* } */ -@import "~undernet/scss/helpers/scope-overrides"; -``` - -Finally, import `undernet.scss` in your global stylesheet. - -```css -@import "path/to/undernet"; -``` - -... or link to the _compiled_ CSS in your layout. - -```html - -``` - -With that, you should be good to go! - -
-

Is this article inaccurate? Edit this page on Github!

diff --git a/js/dist/components/accordion.js b/js/dist/accordion.js similarity index 93% rename from js/dist/components/accordion.js rename to js/dist/accordion.js index d92eed6d..7fb2b773 100644 --- a/js/dist/components/accordion.js +++ b/js/dist/accordion.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; -var _utils = _interopRequireWildcard(require("../utils")); +var _utils = _interopRequireWildcard(require("./utils")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } @@ -96,7 +96,7 @@ var Accordion = function (_Utils) { var accordionButtonSelector = this._getPossibleAccordionButtonAttrs("[".concat(Selectors.DATA_ACCORDION, "]")); - this._accordionButtons = document.querySelectorAll(accordionButtonSelector); + this._accordionButtons = (0, _utils.nodeListToArray)(accordionButtonSelector); if (this._accordionButtons.length) { this._accordionButtons.forEach(function (button) { @@ -123,19 +123,19 @@ var Accordion = function (_Utils) { this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET); this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId); this._activeRow = document.querySelector(this._activeRowAttr); + this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT); - if (!this._activeButton.getAttribute(Selectors.DATA_PARENT)) { + if (!this._activeContainerId) { return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId)); } - this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT); this._activeContainerAttr = "[".concat(Selectors.DATA_ACCORDION, "='").concat(this._activeContainerId, "']"); + this._activeContainer = document.querySelector(this._activeContainerAttr); - if (!document.querySelector(this._activeContainerAttr)) { + if (!this._activeContainer) { return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId)); } - this._activeContainer = document.querySelector(this._activeContainerAttr); this._activeContent = document.getElementById(this._activeAccordionRowId); var accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE); @@ -146,29 +146,31 @@ var Accordion = function (_Utils) { this._closeAllIfToggleable(); this._toggleSelectedAccordion(); + + this._activeContainerId = null; + this._activeContainer = null; } }, { key: "_setupAccordion", value: function _setupAccordion(button) { var buttonId = button.getAttribute(Selectors.DATA_TARGET); + var buttonContent = document.getElementById(buttonId); - if (!document.getElementById(buttonId)) { + if (!buttonContent) { return console.error(Messages.NO_CONTENT_ERROR(buttonId)); } - var buttonContent = document.getElementById(buttonId); - var accordionRowAttr = this._getAccordionRowAttr(buttonId); - if (!document.querySelector(accordionRowAttr)) { + var accordionRow = document.querySelector(accordionRowAttr); + + if (!accordionRow) { return console.error(Messages.NO_ROW_ERROR(buttonId)); } - var accordionRow = document.querySelector(accordionRowAttr); - var buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr); - var buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0]; + var buttonHeader = (0, _utils.nodeListToArray)(buttonHeaderAttr)[0]; if (!buttonHeader || !buttonHeader.id) { console.error(Messages.NO_HEADER_ID_ERROR(buttonId)); @@ -177,13 +179,12 @@ var Accordion = function (_Utils) { var buttonContentChildren = (0, _utils.getFocusableElements)("#".concat(buttonContent.id)); button.setAttribute(Selectors.ARIA_CONTROLS, buttonId); buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id); + var contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE); - if (!accordionRow.getAttribute(Selectors.DATA_VISIBLE)) { + if (!contentShouldExpand) { return console.error(Messages.NO_VISIBLE_ERROR(buttonId)); } - var contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE); - if (contentShouldExpand === "true") { buttonContent.style.maxHeight = "".concat(buttonContent.scrollHeight, "px"); button.setAttribute(Selectors.ARIA_EXPANDED, "true"); @@ -225,12 +226,12 @@ var Accordion = function (_Utils) { if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return; var allContentAttr = "".concat(this._activeContainerAttr, " [").concat(Selectors.ARIA_HIDDEN, "]"); - var allRows = document.querySelectorAll("".concat(this._activeContainerAttr, " [").concat(Selectors.DATA_VISIBLE, "]")); - var allContent = document.querySelectorAll(allContentAttr); + var allRows = (0, _utils.nodeListToArray)("".concat(this._activeContainerAttr, " [").concat(Selectors.DATA_VISIBLE, "]")); + var allContent = (0, _utils.nodeListToArray)(allContentAttr); var accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr); - var allButtons = document.querySelectorAll(accordionButtonSelector); + var allButtons = (0, _utils.nodeListToArray)(accordionButtonSelector); allContent.forEach(function (content) { if (content !== _this4._activeContent) content.style.maxHeight = null; }); diff --git a/js/dist/accordion.js.map b/js/dist/accordion.js.map new file mode 100644 index 00000000..3310d421 --- /dev/null +++ b/js/dist/accordion.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/accordion.js"],"names":["Selectors","DATA_ACCORDION","DATA_ACCORDION_ROW","DATA_VISIBLE","DATA_TARGET","DATA_TOGGLE_MULTIPLE","DATA_PARENT","ARIA_EXPANDED","ARIA_CONTROLS","ARIA_HIDDEN","ARIA_LABELLEDBY","TABINDEX","Events","CLICK","KEYDOWN","Messages","NO_VISIBLE_ERROR","id","NO_ROW_ERROR","NO_HEADER_ID_ERROR","NO_PARENT_ERROR","NO_CONTENT_ERROR","Accordion","_render","bind","_accordionButtons","_accordionContentsAttr","_accordionContents","_activeContainer","_activeButton","_activeAccordionRowId","_activeRowAttr","_activeRow","_activeContainerId","_activeContainerAttr","_activeContent","_activeButtonExpandState","_activeContentHiddenState","_headerLevels","accordionButtonSelector","_getPossibleAccordionButtonAttrs","length","forEach","button","_setupAccordion","addEventListener","removeEventListener","event","preventDefault","target","getAttribute","_getAccordionRowAttr","document","querySelector","console","error","NO_ACCORDION_ERROR","getElementById","accordionButtonState","_closeAllIfToggleable","_toggleSelectedAccordion","buttonId","buttonContent","accordionRowAttr","accordionRow","buttonHeaderAttr","_getPossibleAccordionHeaderAttrs","buttonHeader","buttonContentChildren","setAttribute","contentShouldExpand","style","maxHeight","scrollHeight","element","attr","map","num","join","hasAttribute","allContentAttr","allRows","allContent","allButtons","content","_toggleAttributeInCollection","activeContentBlock","value","elements","attributeName","currentValue","newValue","Utils"],"mappings":"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","sourcesContent":["import Utils, { getFocusableElements, nodeListToArray } from \"./utils\"\n\nconst Selectors = {\n // unique\n DATA_ACCORDION: \"data-accordion\",\n DATA_ACCORDION_ROW: \"data-accordion-row\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_TARGET: \"data-target\",\n DATA_TOGGLE_MULTIPLE: \"data-toggle-multiple\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_EXPANDED: \"aria-expanded\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n TABINDEX: \"tabindex\",\n}\n\nconst Events = {\n CLICK: \"click\",\n KEYDOWN: \"keydown\",\n}\n\nconst Messages = {\n NO_VISIBLE_ERROR: id =>\n `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`,\n NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`,\n NO_HEADER_ID_ERROR: id => `Could not find header tag associated with [data-target='${id}'].`,\n NO_PARENT_ERROR: id => `Could not find [data-parent] associated with [data-target='${id}'].`,\n NO_CONTENT_ERROR: id =>\n `Could not find accordion content block with [id] ${id} associated with [data-target='${id}'].`,\n}\n\n/**\n * Accordion component class.\n * @module Accordion\n * @requires Utils\n */\nexport default class Accordion extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n\n // all accordions\n this._accordionButtons = []\n this._accordionContentsAttr = \"\"\n this._accordionContents = []\n\n // active accordion\n this._activeContainer = {}\n this._activeButton = {}\n this._activeAccordionRowId = \"\"\n this._activeRowAttr = \"\"\n this._activeRow = \"\"\n this._activeContainerId = \"\"\n this._activeContainerAttr = \"\"\n this._activeContent = {}\n this._activeButtonExpandState = \"\"\n this._activeContentHiddenState = \"\"\n\n // other data\n this._headerLevels = [1, 2, 3, 4, 5, 6]\n }\n\n // public\n\n /**\n * Begin listening to accordions.\n */\n start() {\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(\n `[${Selectors.DATA_ACCORDION}]`\n )\n this._accordionButtons = nodeListToArray(accordionButtonSelector)\n\n if (this._accordionButtons.length) {\n this._accordionButtons.forEach(button => {\n this._setupAccordion(button)\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to accordions.\n */\n stop() {\n this._accordionButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Open accordion content associated with an accordion button.\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n\n this._activeButton = event.target\n this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET)\n\n this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId)\n this._activeRow = document.querySelector(this._activeRowAttr)\n this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT)\n\n if (!this._activeContainerId) {\n return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId))\n }\n\n this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']`\n this._activeContainer = document.querySelector(this._activeContainerAttr)\n\n if (!this._activeContainer) {\n return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId))\n }\n\n this._activeContent = document.getElementById(this._activeAccordionRowId)\n\n const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE)\n\n this._activeButtonExpandState = accordionButtonState === \"true\" ? \"false\" : \"true\"\n this._activeContentHiddenState = this._activeButtonExpandState === \"false\" ? \"true\" : \"false\"\n\n this._closeAllIfToggleable()\n this._toggleSelectedAccordion()\n\n this._activeContainerId = null\n this._activeContainer = null\n }\n\n /**\n * Add initial attributes to accordion elements.\n * @param {Element} button - A button element that triggers an accordion.\n */\n _setupAccordion(button) {\n const buttonId = button.getAttribute(Selectors.DATA_TARGET)\n const buttonContent = document.getElementById(buttonId)\n\n if (!buttonContent) {\n return console.error(Messages.NO_CONTENT_ERROR(buttonId))\n }\n\n const accordionRowAttr = this._getAccordionRowAttr(buttonId)\n const accordionRow = document.querySelector(accordionRowAttr)\n\n if (!accordionRow) {\n return console.error(Messages.NO_ROW_ERROR(buttonId))\n }\n\n const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr)\n const buttonHeader = nodeListToArray(buttonHeaderAttr)[0]\n\n if (!buttonHeader || !buttonHeader.id) {\n console.error(Messages.NO_HEADER_ID_ERROR(buttonId))\n }\n\n const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`)\n\n button.setAttribute(Selectors.ARIA_CONTROLS, buttonId)\n buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id)\n\n const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE)\n\n if (!contentShouldExpand) {\n return console.error(Messages.NO_VISIBLE_ERROR(buttonId))\n }\n\n if (contentShouldExpand === \"true\") {\n buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`\n button.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n } else {\n button.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n }\n\n /**\n * Build a selector string to match possible accordion buttons\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible button selectors\n */\n _getPossibleAccordionButtonAttrs(attr) {\n return this._headerLevels\n .map(\n num => `${attr} > [${Selectors.DATA_ACCORDION_ROW}] > h${num} [${Selectors.DATA_TARGET}]`\n )\n .join(\", \")\n }\n\n /**\n * Build a selector string to match possible accordion headers\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible header selectors\n */\n _getPossibleAccordionHeaderAttrs(attr) {\n return this._headerLevels.map(num => `${attr} > h${num}`).join(\", \")\n }\n\n /**\n * Build a unique accordion row attribute selector.\n * @param {String} id - An id value associated with a given Selectors.DATA_TARGET\n * @return {String} - A unique accordion row selector\n */\n _getAccordionRowAttr(id) {\n return `[${Selectors.DATA_ACCORDION_ROW}='${id}']`\n }\n\n /**\n * If toggling multiple rows at once isn't enabled, close all rows except the selected one.\n * This ensures the selected one can be closed if it's already open.\n */\n _closeAllIfToggleable() {\n if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return\n\n const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]`\n const allRows = nodeListToArray(`${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`)\n const allContent = nodeListToArray(allContentAttr)\n\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr)\n const allButtons = nodeListToArray(accordionButtonSelector)\n\n allContent.forEach(content => {\n if (content !== this._activeContent) content.style.maxHeight = null\n })\n\n getFocusableElements(allContentAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n this._toggleAttributeInCollection(allRows, Selectors.DATA_VISIBLE, \"true\", \"false\")\n this._toggleAttributeInCollection(allButtons, Selectors.ARIA_EXPANDED, \"true\", \"false\")\n this._toggleAttributeInCollection(allContent, Selectors.ARIA_HIDDEN, \"false\", \"true\")\n }\n\n /**\n * Toggle the currently selected accordion button's content.\n */\n _toggleSelectedAccordion() {\n this._activeRow.setAttribute(Selectors.DATA_VISIBLE, this._activeButtonExpandState)\n this._activeButton.setAttribute(Selectors.ARIA_EXPANDED, this._activeButtonExpandState)\n this._activeContent.setAttribute(Selectors.ARIA_HIDDEN, this._activeContentHiddenState)\n\n const activeContentBlock = `#${this._activeAccordionRowId}`\n getFocusableElements(activeContentBlock).forEach(element => {\n const value = this._activeButtonExpandState === \"true\" ? \"0\" : \"-1\"\n element.setAttribute(Selectors.TABINDEX, value)\n })\n\n if (this._activeContent.style.maxHeight) {\n this._activeContent.style.maxHeight = null\n } else {\n this._activeContent.style.maxHeight = `${this._activeContent.scrollHeight}px`\n }\n }\n\n /**\n * Toggles a single attribute of a series of elements.\n * @param {Array} elements - An array of elements to be operated on.\n * @param {String} attributeName - An attribute to be changed.\n * @param {String} currentValue - The current value of attributeName\n * @param {String} newValue - The new value of attributeName\n */\n _toggleAttributeInCollection(elements, attributeName, currentValue, newValue) {\n elements.forEach(element => {\n if (element.hasAttribute(attributeName, currentValue)) {\n element.setAttribute(attributeName, newValue)\n }\n })\n }\n}\n"],"file":"accordion.js"} \ No newline at end of file diff --git a/js/dist/components/accordion.js.map b/js/dist/components/accordion.js.map deleted file mode 100644 index 3b79422e..00000000 --- a/js/dist/components/accordion.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/components/accordion.js"],"names":["Selectors","DATA_ACCORDION","DATA_ACCORDION_ROW","DATA_VISIBLE","DATA_TARGET","DATA_TOGGLE_MULTIPLE","DATA_PARENT","ARIA_EXPANDED","ARIA_CONTROLS","ARIA_HIDDEN","ARIA_LABELLEDBY","TABINDEX","Events","CLICK","KEYDOWN","Messages","NO_VISIBLE_ERROR","id","NO_ROW_ERROR","NO_HEADER_ID_ERROR","NO_PARENT_ERROR","NO_CONTENT_ERROR","Accordion","_render","bind","_accordionButtons","_accordionContentsAttr","_accordionContents","_activeContainer","_activeButton","_activeAccordionRowId","_activeRowAttr","_activeRow","_activeContainerId","_activeContainerAttr","_activeContent","_activeButtonExpandState","_activeContentHiddenState","_headerLevels","accordionButtonSelector","_getPossibleAccordionButtonAttrs","document","querySelectorAll","length","forEach","button","_setupAccordion","addEventListener","removeEventListener","event","preventDefault","target","getAttribute","_getAccordionRowAttr","querySelector","console","error","NO_ACCORDION_ERROR","getElementById","accordionButtonState","_closeAllIfToggleable","_toggleSelectedAccordion","buttonId","buttonContent","accordionRowAttr","accordionRow","buttonHeaderAttr","_getPossibleAccordionHeaderAttrs","buttonHeader","buttonContentChildren","setAttribute","contentShouldExpand","style","maxHeight","scrollHeight","element","attr","map","num","join","hasAttribute","allContentAttr","allRows","allContent","allButtons","content","_toggleAttributeInCollection","activeContentBlock","value","elements","attributeName","currentValue","newValue","Utils"],"mappings":"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","sourcesContent":["import Utils, { getFocusableElements } from \"../utils\"\n\nconst Selectors = {\n // unique\n DATA_ACCORDION: \"data-accordion\",\n DATA_ACCORDION_ROW: \"data-accordion-row\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_TARGET: \"data-target\",\n DATA_TOGGLE_MULTIPLE: \"data-toggle-multiple\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_EXPANDED: \"aria-expanded\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n TABINDEX: \"tabindex\",\n}\n\nconst Events = {\n CLICK: \"click\",\n KEYDOWN: \"keydown\",\n}\n\nconst Messages = {\n NO_VISIBLE_ERROR: id =>\n `Could not find parent with [data-visible] attribute associated with [data-target='${id}'].`,\n NO_ROW_ERROR: id => `Could not find [data-accordion-row] associated with ${id}.`,\n NO_HEADER_ID_ERROR: id => `Could not find header tag associated with [data-target='${id}'].`,\n NO_PARENT_ERROR: id => `Could not find [data-parent] associated with [data-target='${id}'].`,\n NO_CONTENT_ERROR: id =>\n `Could not find accordion content block with [id] ${id} associated with [data-target='${id}'].`,\n}\n\n/**\n * Accordion component class.\n * @module Accordion\n * @requires Utils\n */\nexport default class Accordion extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n\n // all accordions\n this._accordionButtons = []\n this._accordionContentsAttr = \"\"\n this._accordionContents = []\n\n // active accordion\n this._activeContainer = {}\n this._activeButton = {}\n this._activeAccordionRowId = \"\"\n this._activeRowAttr = \"\"\n this._activeRow = \"\"\n this._activeContainerId = \"\"\n this._activeContainerAttr = \"\"\n this._activeContent = {}\n this._activeButtonExpandState = \"\"\n this._activeContentHiddenState = \"\"\n\n // other data\n this._headerLevels = [1, 2, 3, 4, 5, 6]\n }\n\n // public\n\n /**\n * Sets up accordion components and listens to buttons for events.\n * Begin listening to [data-accordion-button] elements\n */\n start() {\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(\n `[${Selectors.DATA_ACCORDION}]`\n )\n this._accordionButtons = document.querySelectorAll(accordionButtonSelector)\n\n if (this._accordionButtons.length) {\n this._accordionButtons.forEach(button => {\n this._setupAccordion(button)\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to accordion button events.\n */\n stop() {\n this._accordionButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Open accordion content associated with an accordion button.\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n\n this._activeButton = event.target\n this._activeAccordionRowId = this._activeButton.getAttribute(Selectors.DATA_TARGET)\n\n this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId)\n this._activeRow = document.querySelector(this._activeRowAttr)\n\n if (!this._activeButton.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId))\n }\n\n this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT)\n this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']`\n\n if (!document.querySelector(this._activeContainerAttr)) {\n return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId))\n }\n\n this._activeContainer = document.querySelector(this._activeContainerAttr)\n this._activeContent = document.getElementById(this._activeAccordionRowId)\n\n const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE)\n\n this._activeButtonExpandState = accordionButtonState === \"true\" ? \"false\" : \"true\"\n this._activeContentHiddenState = this._activeButtonExpandState === \"false\" ? \"true\" : \"false\"\n\n this._closeAllIfToggleable()\n this._toggleSelectedAccordion()\n }\n\n /**\n * Add initial attributes to accordion elements.\n * @param {Element} button - A button element that triggers an accordion.\n */\n _setupAccordion(button) {\n const buttonId = button.getAttribute(Selectors.DATA_TARGET)\n\n if (!document.getElementById(buttonId)) {\n return console.error(Messages.NO_CONTENT_ERROR(buttonId))\n }\n\n const buttonContent = document.getElementById(buttonId)\n const accordionRowAttr = this._getAccordionRowAttr(buttonId)\n\n if (!document.querySelector(accordionRowAttr)) {\n return console.error(Messages.NO_ROW_ERROR(buttonId))\n }\n\n const accordionRow = document.querySelector(accordionRowAttr)\n const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr)\n const buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0]\n\n if (!buttonHeader || !buttonHeader.id) {\n console.error(Messages.NO_HEADER_ID_ERROR(buttonId))\n }\n\n const buttonContentChildren = getFocusableElements(`#${buttonContent.id}`)\n\n button.setAttribute(Selectors.ARIA_CONTROLS, buttonId)\n buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id)\n\n if (!accordionRow.getAttribute(Selectors.DATA_VISIBLE)) {\n return console.error(Messages.NO_VISIBLE_ERROR(buttonId))\n }\n\n const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE)\n if (contentShouldExpand === \"true\") {\n buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px`\n button.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n } else {\n button.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n buttonContent.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n buttonContentChildren.forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n }\n\n /**\n * Build a selector string to match possible accordion buttons\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible button selectors\n */\n _getPossibleAccordionButtonAttrs(attr) {\n return this._headerLevels\n .map(\n num => `${attr} > [${Selectors.DATA_ACCORDION_ROW}] > h${num} [${Selectors.DATA_TARGET}]`\n )\n .join(\", \")\n }\n\n /**\n * Build a selector string to match possible accordion headers\n * @param {String} attr - A unique attribute\n * @return {String} - String of possible header selectors\n */\n _getPossibleAccordionHeaderAttrs(attr) {\n return this._headerLevels.map(num => `${attr} > h${num}`).join(\", \")\n }\n\n /**\n * Build a unique accordion row attribute selector.\n * @param {String} id - An id value associated with a given Selectors.DATA_TARGET\n * @return {String} - A unique accordion row selector\n */\n _getAccordionRowAttr(id) {\n return `[${Selectors.DATA_ACCORDION_ROW}='${id}']`\n }\n\n /**\n * If toggling multiple rows at once isn't enabled, close all rows except the selected one.\n * This ensures the selected one can be closed if it's already open.\n */\n _closeAllIfToggleable() {\n if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return\n\n const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]`\n const allRows = document.querySelectorAll(\n `${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`\n )\n const allContent = document.querySelectorAll(allContentAttr)\n\n const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr)\n const allButtons = document.querySelectorAll(accordionButtonSelector)\n\n allContent.forEach(content => {\n if (content !== this._activeContent) content.style.maxHeight = null\n })\n\n getFocusableElements(allContentAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n this._toggleAttributeInCollection(allRows, Selectors.DATA_VISIBLE, \"true\", \"false\")\n this._toggleAttributeInCollection(allButtons, Selectors.ARIA_EXPANDED, \"true\", \"false\")\n this._toggleAttributeInCollection(allContent, Selectors.ARIA_HIDDEN, \"false\", \"true\")\n }\n\n /**\n * Toggle the currently selected accordion button's content.\n */\n _toggleSelectedAccordion() {\n this._activeRow.setAttribute(Selectors.DATA_VISIBLE, this._activeButtonExpandState)\n this._activeButton.setAttribute(Selectors.ARIA_EXPANDED, this._activeButtonExpandState)\n this._activeContent.setAttribute(Selectors.ARIA_HIDDEN, this._activeContentHiddenState)\n\n const activeContentBlock = `#${this._activeAccordionRowId}`\n getFocusableElements(activeContentBlock).forEach(element => {\n const value = this._activeButtonExpandState === \"true\" ? \"0\" : \"-1\"\n element.setAttribute(Selectors.TABINDEX, value)\n })\n\n if (this._activeContent.style.maxHeight) {\n this._activeContent.style.maxHeight = null\n } else {\n this._activeContent.style.maxHeight = `${this._activeContent.scrollHeight}px`\n }\n }\n\n /**\n * Toggles a single attribute of a series of elements.\n * @param {Array} elements - An array of elements to be operated on.\n * @param {String} attributeName - An attribute to be changed.\n * @param {String} currentValue - The current value of attributeName\n * @param {String} newValue - The new value of attributeName\n */\n _toggleAttributeInCollection(elements, attributeName, currentValue, newValue) {\n elements.forEach(element => {\n if (element.hasAttribute(attributeName, currentValue)) {\n element.setAttribute(attributeName, newValue)\n }\n })\n }\n}\n"],"file":"accordion.js"} \ No newline at end of file diff --git a/js/dist/components/dropdown.js.map b/js/dist/components/dropdown.js.map deleted file mode 100644 index a536f8c3..00000000 --- a/js/dist/components/dropdown.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/components/dropdown.js"],"names":["KeyCodes","TAB","SHIFT","ESCAPE","ARROW_UP","ARROW_DOWN","Selectors","DATA_DROPDOWN","DATA_TARGET","DATA_PARENT","DATA_VISIBLE","TABINDEX","ARIA_HASPOPUP","ARIA_CONTROLS","ARIA_LABELLEDBY","ARIA_EXPANDED","ROLE","Events","KEYDOWN","CLICK","Messages","NO_PARENT_ERROR","NO_DROPDOWN_ERROR","attr","NO_MENU_ERROR","Dropdown","_iosMobile","test","navigator","userAgent","_render","bind","_handleFirstTabClose","_handleLastTabClose","_renderWithKeys","_handleClose","_handleEscapeKeyPress","_handleOffMenuClick","_activeDropdownButton","_activeDropdown","_activeDropdownMenu","_activeDropdownLinks","_allowFocusReturn","_activeDropdownId","_activeDropdownAttr","_activeDropdownMenuId","_dropdownButtons","_dropdowns","_dropdownContainerAttr","_dropdownTargetAttr","document","querySelectorAll","length","forEach","dropdown","_setupDropdown","button","addEventListener","removeEventListener","event","key","preventDefault","stopPropagation","target","getAttribute","console","error","querySelector","getElementById","setAttribute","body","style","cursor","_getDropdownLinks","firstDropdownLink","lastDropdownLink","focus","link","captureFocus","useArrows","shiftKey","which","tabKey","releaseFocus","_handleReturnFocus","TAB_INDEX","removeAttribute","dropdownId","dropdownIdAttr","dropdownMenuItemsAttr","dropdownMenu","dropdownButton","id","dropdownMenuItems","item","Utils"],"mappings":"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","sourcesContent":["import Utils from \"../utils\"\n\nconst KeyCodes = {\n TAB: 9,\n SHIFT: 16,\n ESCAPE: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n // unique\n DATA_DROPDOWN: \"data-dropdown\",\n // common\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n DATA_VISIBLE: \"data-visible\",\n // accessibility\n TABINDEX: \"tabindex\",\n ARIA_HASPOPUP: \"aria-haspopup\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n ARIA_EXPANDED: \"aria-expanded\",\n ROLE: \"role\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\nconst Messages = {\n NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`,\n NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`,\n NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`,\n}\n\n/**\n * Dropdown component class.\n * @module Dropdown\n * @requires Utils\n */\nexport default class Dropdown extends Utils {\n constructor() {\n super()\n\n this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent)\n\n // events\n this._render = this._render.bind(this)\n this._handleFirstTabClose = this._handleFirstTabClose.bind(this)\n this._handleLastTabClose = this._handleLastTabClose.bind(this)\n this._renderWithKeys = this._renderWithKeys.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n this._handleOffMenuClick = this._handleOffMenuClick.bind(this)\n\n // active dropdown\n this._activeDropdownButton = null\n this._activeDropdown = null\n this._activeDropdownMenu = null\n this._activeDropdownLinks = []\n this._allowFocusReturn = true\n this._activeDropdownId = \"\"\n this._activeDropdownAttr = \"\"\n this._activeDropdownMenuId = \"\"\n\n // all dropdowns\n this._dropdownButtons = []\n this._dropdowns = []\n\n // dropdown element selectors\n this._dropdownContainerAttr = `[${Selectors.DATA_DROPDOWN}]`\n this._dropdownTargetAttr = `[${Selectors.DATA_TARGET}]`\n }\n\n // public\n\n /**\n * Find and set up dropdown buttons and menus.\n * Begin listening to dropdowns for events.\n */\n start() {\n this._dropdowns = document.querySelectorAll(`${this._dropdownContainerAttr}`)\n this._dropdownButtons = document.querySelectorAll(\n `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}`\n )\n\n if (this._dropdowns.length) {\n this._dropdowns.forEach(dropdown => this._setupDropdown(dropdown))\n }\n\n this._dropdownButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n button.addEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n /**\n * Stop listening for dropdown events.\n */\n stop() {\n this._dropdownButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n button.removeEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n * @param {Number} key - The key code that called _render()\n */\n _render(event, key) {\n event.preventDefault()\n event.stopPropagation()\n\n if (this._activeDropdownButton) {\n this._allowFocusReturn = false\n this._handleClose(event)\n this._allowFocusReturn = true\n }\n\n // dropdown button / trigger\n this._activeDropdownButton = event.target\n\n if (!this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR)\n }\n\n this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)\n\n // dropdown container\n this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${this._activeDropdownId}\"]`\n\n if (!document.querySelector(this._activeDropdownAttr)) {\n return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr))\n }\n\n this._activeDropdown = document.querySelector(this._activeDropdownAttr)\n\n // dropdown menu\n this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET)\n this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId)\n\n // toggle attributes on dropdown button, indicating a visible dropdown is present\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // trade button event listener to close the menu, instead of open it\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._render)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._handleClose)\n\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOffMenuClick)\n\n // make click events work on mobile iOS\n if (this._iosMobile) {\n document.body.style.cursor = \"pointer\"\n }\n\n this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr)\n\n this.firstDropdownLink = this._activeDropdownLinks[0]\n this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]\n\n this.firstDropdownLink.addEventListener(Events.KEYDOWN, this._handleFirstTabClose)\n this.lastDropdownLink.addEventListener(Events.KEYDOWN, this._handleLastTabClose)\n\n if (key && key === KeyCodes.ARROW_UP) {\n this.lastDropdownLink.focus()\n } else {\n this.firstDropdownLink.focus()\n }\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"0\")\n link.addEventListener(Events.CLICK, this._handleClose)\n })\n\n this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true })\n }\n\n /**\n * Closes the dropdown if user uses shift and tab keys on the first dropdown element.\n * @param {Object} event - The event object\n */\n _handleFirstTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (shiftKey && tabKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes the dropdown if user uses tab key on the last dropdown element.\n * @param {Object} event - The event object\n */\n _handleLastTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (tabKey && !shiftKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Renders dropdown if the user uses arrow up or down.\n * @param {Object} event - The event object\n */\n _renderWithKeys(event) {\n if (event.which === KeyCodes.ARROW_UP || event.which === KeyCodes.ARROW_DOWN) {\n this._render(event, event.which)\n }\n }\n\n /**\n * Closes currently open dropdown.\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n\n this.releaseFocus()\n\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n link.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._handleClose)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._render)\n\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n\n if (this._iosMobile) {\n document.body.style.cursor = \"auto\"\n }\n\n document.removeEventListener(Events.CLICK, this._handleOffMenuClick)\n\n if (this._allowFocusReturn) {\n this._handleReturnFocus()\n }\n\n this._activeDropdownButton = null\n }\n\n /**\n * Use escape key to close dropdown.\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes dropdown\n * @param {Object} event - The event object\n */\n _handleOffMenuClick(event) {\n if (event.target !== this._activeDropdownButton && event.target !== this._activeDropdownMenu) {\n this._handleClose(event)\n }\n }\n\n /**\n * Puts focus on a the active dropdown button.\n */\n _handleReturnFocus() {\n this._activeDropdownButton.setAttribute(Selectors.TAB_INDEX, \"-1\")\n this._activeDropdownButton.focus()\n this._activeDropdownButton.removeAttribute(Selectors.TAB_INDEX)\n }\n\n /**\n * Retrieve possible menu links or buttons as an array\n * @param {String} attr - The unique attribute for a dropdown.\n * @return {String} - Selector for possible menu item links.\n */\n _getDropdownLinks(attr) {\n return document.querySelectorAll(`${attr} > ul > li > a, ${attr} > ul > li > button`)\n }\n\n /**\n * Add starting attributes to a dropdown.\n * @param {Element} dropdown - A dropdown element.\n */\n _setupDropdown(dropdown) {\n const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN)\n const dropdownIdAttr = `[${Selectors.DATA_DROPDOWN}=\"${dropdownId}\"]`\n const dropdownMenuItemsAttr = `${dropdownIdAttr} > ul > li`\n\n if (!document.querySelector(`${dropdownIdAttr} > ul`)) {\n return console.error(Messages.NO_MENU_ERROR(dropdownIdAttr))\n }\n\n const dropdownMenu = document.querySelector(`${dropdownIdAttr} > ul`)\n const dropdownButton = document.querySelector(`${dropdownIdAttr} > ${this._dropdownTargetAttr}`)\n\n dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id)\n dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, \"true\")\n dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id)\n\n const dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr)\n dropdownMenuItems.forEach(item => item.setAttribute(Selectors.ROLE, \"none\"))\n\n this._getDropdownLinks(dropdownIdAttr).forEach(link => {\n link.setAttribute(Selectors.ROLE, \"menuitem\")\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n}\n"],"file":"dropdown.js"} \ No newline at end of file diff --git a/js/dist/components/modal.js.map b/js/dist/components/modal.js.map deleted file mode 100644 index 802b98c7..00000000 --- a/js/dist/components/modal.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["../../src/components/modal.js"],"names":["KeyCodes","ESCAPE","Selectors","DATA_MODAL","DATA_MODAL_ID","DATA_MODAL_BUTTON","DATA_VISIBLE","DATA_CLOSE","DATA_TARGET","DATA_PARENT","ARIA_HIDDEN","ARIA_MODAL","ROLE","TABINDEX","NO_SCROLL","Events","KEYDOWN","CLICK","RESIZE","Messages","NO_TARGET_ERROR","NO_PARENT_ERROR","NO_ID_ERROR","id","Modal","_iosMobile","test","navigator","userAgent","_render","bind","_handleClose","_handleOverlayClick","_handleEscapeKeyPress","_modals","_modalButtons","_activeModalButton","_activeModalOverlay","_activeModal","_activeModalId","_activeModalOverlayAttr","_activeModalSelector","_activeModalCloseButtons","_modalContainerAttr","document","querySelectorAll","forEach","element","setAttribute","length","modal","_setupModal","button","addEventListener","removeEventListener","event","preventDefault","target","getAttribute","console","error","querySelector","_handleScrollStop","captureFocus","focus","scrollTop","style","cursor","modalId","modalWrapper","_handleReturnFocus","_handleScrollRestore","releaseFocus","removeAttribute","which","body","classList","remove","add","Utils"],"mappings":"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","sourcesContent":["import Utils, { getFocusableElements } from \"../utils\"\n\nconst KeyCodes = {\n ESCAPE: 27,\n}\n\nconst Selectors = {\n // unique\n DATA_MODAL: \"data-modal\",\n DATA_MODAL_ID: \"data-modal-id\",\n DATA_MODAL_BUTTON: \"data-modal-button\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_CLOSE: \"data-close\",\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_MODAL: \"aria-modal\",\n ROLE: \"role\",\n TABINDEX: \"tabindex\",\n // classes\n NO_SCROLL: \"no-scroll\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n RESIZE: \"resize\",\n}\n\nconst Messages = {\n NO_TARGET_ERROR: `Could not find [data-target] attribute associated with a [data-modal-button] element.`,\n NO_PARENT_ERROR: `Could not find [data-parent] attribute associated with a [data-modal] element.`,\n NO_ID_ERROR: id =>\n `Could not find [data-modal-id='${id}'] associated with a [data-modal] element.`,\n}\n\n/**\n * Modal component class.\n * @module Modal\n * @requires Utils\n */\nexport default class Modal extends Utils {\n constructor() {\n super()\n\n this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent)\n\n // events\n this._render = this._render.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleOverlayClick = this._handleOverlayClick.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n\n // all modals\n this._modals = []\n this._modalButtons = []\n\n // active modal\n this._activeModalButton = {}\n this._activeModalOverlay = {}\n this._activeModal = {}\n this._activeModalId = \"\"\n this._activeModalOverlayAttr = \"\"\n this._activeModalSelector = \"\"\n this._activeModalCloseButtons = []\n\n // attribute helpers\n this._modalContainerAttr = `[${Selectors.DATA_MODAL}]`\n }\n\n // public\n\n /**\n * Add accessible attributes to modal containers\n * Begin listening to elements with [data-modal-button]\n */\n start() {\n this._modals = document.querySelectorAll(this._modalContainerAttr)\n this._modalButtons = document.querySelectorAll(`[${Selectors.DATA_MODAL_BUTTON}]`)\n\n getFocusableElements(this._modalContainerAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._modals.length) {\n this._modals.forEach(modal => {\n this._setupModal(modal)\n })\n }\n\n if (this._modalButtons.length) {\n this._modalButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to modal buttons\n */\n stop() {\n this._modalButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n this._activeModalButton = event.target\n\n if (!this._activeModalButton.getAttribute(Selectors.DATA_TARGET)) {\n return console.error(Messages.NO_TARGET_ERROR)\n }\n\n this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_TARGET)\n this._activeModalOverlayAttr = `[${Selectors.DATA_MODAL_ID}=\"${this._activeModalId}\"]`\n\n if (!document.querySelector(this._activeModalOverlayAttr)) {\n return console.error(Messages.NO_ID_ERROR(this._activeModalId))\n }\n\n this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr)\n\n this._activeModalSelector = `${this._activeModalOverlayAttr} ${this._modalContainerAttr}`\n this._activeModal = document.querySelector(this._activeModalSelector)\n this._activeModalCloseButtons = document.querySelectorAll(\n `${this._activeModalOverlayAttr} [${Selectors.DATA_CLOSE}]`\n )\n\n // allow focusable elements to be focused\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n\n // capture focus, stop scrolling, and toggle attributes for visibility\n this._handleScrollStop()\n this.captureFocus(this._activeModalSelector)\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // focus the modal\n this._activeModal.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModal.focus()\n\n // offset slight scroll caused by this._activeModal.focus()\n this._activeModalOverlay.scrollTop = 0\n\n // on ios devices, let the modal close on overlay click\n if (this._iosMobile) {\n this._activeModalOverlay.style.cursor = \"pointer\"\n }\n\n // begin listening to events\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n _setupModal(modal) {\n let modalId\n if (!modal.getAttribute(Selectors.DATA_PARENT)) {\n return console.error(Messages.NO_PARENT_ERROR)\n } else {\n modalId = modal.getAttribute(Selectors.DATA_PARENT)\n }\n\n let modalWrapper\n if (!document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)) {\n return console.error(Messages.NO_ID_ERROR(modalId))\n } else {\n modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)\n }\n\n modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n modalWrapper.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n modal.setAttribute(Selectors.ARIA_MODAL, \"true\")\n modal.setAttribute(Selectors.ROLE, \"dialog\")\n }\n\n /**\n * Turn off event listeners and reset focus to last selected DOM node (button)\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n this._handleReturnFocus()\n this._handleScrollRestore()\n this.releaseFocus()\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n this._activeModal.removeAttribute(Selectors.TABINDEX)\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._iosMobile) {\n this._activeModalOverlay.style.cursor = \"auto\"\n }\n\n // stop listening to events\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.removeEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n /**\n * Handles click event on the modal background to close it.\n * @param {Object} event - The event object\n */\n _handleOverlayClick(event) {\n if (event.target === this._activeModalOverlay) {\n this._handleClose(event)\n }\n }\n\n /**\n * Handles escape key event to close the current modal\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Returns focus to the last focused element before the modal was called.\n * @param {Object} button - The current modal's corresponding button.\n */\n _handleReturnFocus() {\n this._activeModalButton.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModalButton.focus()\n this._activeModalButton.removeAttribute(Selectors.TABINDEX)\n }\n\n /**\n * Restores scroll behavior to and \n */\n _handleScrollRestore() {\n document.body.classList.remove(Selectors.NO_SCROLL)\n document.querySelector(\"html\").classList.remove(Selectors.NO_SCROLL)\n }\n\n /**\n * Prevents scroll behavior on and \n */\n _handleScrollStop() {\n document.body.classList.add(Selectors.NO_SCROLL)\n document.querySelector(\"html\").classList.add(Selectors.NO_SCROLL)\n }\n}\n"],"file":"modal.js"} \ No newline at end of file diff --git a/js/dist/components/dropdown.js b/js/dist/dropdown.js similarity index 86% rename from js/dist/components/dropdown.js rename to js/dist/dropdown.js index 5b975022..04879e9a 100644 --- a/js/dist/components/dropdown.js +++ b/js/dist/dropdown.js @@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; -var _utils = _interopRequireDefault(require("../utils")); +var _utils = _interopRequireWildcard(require("./utils")); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } @@ -69,7 +69,6 @@ var Dropdown = function (_Utils) { _classCallCheck(this, Dropdown); _this = _possibleConstructorReturn(this, _getPrototypeOf(Dropdown).call(this)); - _this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent); _this._render = _this._render.bind(_assertThisInitialized(_this)); _this._handleFirstTabClose = _this._handleFirstTabClose.bind(_assertThisInitialized(_this)); _this._handleLastTabClose = _this._handleLastTabClose.bind(_assertThisInitialized(_this)); @@ -97,8 +96,8 @@ var Dropdown = function (_Utils) { value: function start() { var _this2 = this; - this._dropdowns = document.querySelectorAll("".concat(this._dropdownContainerAttr)); - this._dropdownButtons = document.querySelectorAll("".concat(this._dropdownContainerAttr, " > ").concat(this._dropdownTargetAttr)); + this._dropdowns = (0, _utils.nodeListToArray)("".concat(this._dropdownContainerAttr)); + this._dropdownButtons = (0, _utils.nodeListToArray)("".concat(this._dropdownContainerAttr, " > ").concat(this._dropdownTargetAttr)); if (this._dropdowns.length) { this._dropdowns.forEach(function (dropdown) { @@ -138,19 +137,19 @@ var Dropdown = function (_Utils) { } this._activeDropdownButton = event.target; + this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT); - if (!this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)) { + if (!this._activeDropdownId) { return console.error(Messages.NO_PARENT_ERROR); } - this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT); this._activeDropdownAttr = "[".concat(Selectors.DATA_DROPDOWN, "=\"").concat(this._activeDropdownId, "\"]"); + this._activeDropdown = document.querySelector(this._activeDropdownAttr); - if (!document.querySelector(this._activeDropdownAttr)) { + if (!this._activeDropdown) { return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr)); } - this._activeDropdown = document.querySelector(this._activeDropdownAttr); this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET); this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId); @@ -165,7 +164,7 @@ var Dropdown = function (_Utils) { document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress); document.addEventListener(Events.CLICK, this._handleOffMenuClick); - if (this._iosMobile) { + if (_utils.iOSMobile) { document.body.style.cursor = "pointer"; } @@ -240,7 +239,7 @@ var Dropdown = function (_Utils) { document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress); - if (this._iosMobile) { + if (_utils.iOSMobile) { document.body.style.cursor = "auto"; } @@ -251,6 +250,8 @@ var Dropdown = function (_Utils) { } this._activeDropdownButton = null; + this._activeDropdownId = null; + this._activeDropdown = null; } }, { key: "_handleEscapeKeyPress", @@ -278,31 +279,33 @@ var Dropdown = function (_Utils) { }, { key: "_getDropdownLinks", value: function _getDropdownLinks(attr) { - return document.querySelectorAll("".concat(attr, " > ul > li > a, ").concat(attr, " > ul > li > button")); + return (0, _utils.nodeListToArray)("".concat(attr, " > ul > li > a, ").concat(attr, " > ul > li > button")); } }, { key: "_setupDropdown", value: function _setupDropdown(dropdown) { var dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN); - var dropdownIdAttr = "[".concat(Selectors.DATA_DROPDOWN, "=\"").concat(dropdownId, "\"]"); - var dropdownMenuItemsAttr = "".concat(dropdownIdAttr, " > ul > li"); + var dropdownAttr = "[".concat(Selectors.DATA_DROPDOWN, "=\"").concat(dropdownId, "\"]"); + var dropdownMenuItemsAttr = "".concat(dropdownAttr, " > ul > li"); + var dropdownMenu = document.querySelector("".concat(dropdownAttr, " > ul")); - if (!document.querySelector("".concat(dropdownIdAttr, " > ul"))) { - return console.error(Messages.NO_MENU_ERROR(dropdownIdAttr)); + if (!dropdownMenu) { + return console.error(Messages.NO_MENU_ERROR(dropdownAttr)); } - var dropdownMenu = document.querySelector("".concat(dropdownIdAttr, " > ul")); - var dropdownButton = document.querySelector("".concat(dropdownIdAttr, " > ").concat(this._dropdownTargetAttr)); + var dropdownButton = document.querySelector("".concat(dropdownAttr, " > ").concat(this._dropdownTargetAttr)); dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id); dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, "true"); dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, "false"); dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id); - var dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr); - dropdownMenuItems.forEach(function (item) { + var dropdownMenuListItems = (0, _utils.nodeListToArray)(dropdownMenuItemsAttr); + dropdownMenuListItems.forEach(function (item) { return item.setAttribute(Selectors.ROLE, "none"); }); - this._getDropdownLinks(dropdownIdAttr).forEach(function (link) { + var dropdownMenuButtons = this._getDropdownLinks(dropdownAttr); + + dropdownMenuButtons.forEach(function (link) { link.setAttribute(Selectors.ROLE, "menuitem"); link.setAttribute(Selectors.TABINDEX, "-1"); }); diff --git a/js/dist/dropdown.js.map b/js/dist/dropdown.js.map new file mode 100644 index 00000000..cefcc3d8 --- /dev/null +++ b/js/dist/dropdown.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/dropdown.js"],"names":["KeyCodes","TAB","SHIFT","ESCAPE","ARROW_UP","ARROW_DOWN","Selectors","DATA_DROPDOWN","DATA_TARGET","DATA_PARENT","DATA_VISIBLE","TABINDEX","ARIA_HASPOPUP","ARIA_CONTROLS","ARIA_LABELLEDBY","ARIA_EXPANDED","ROLE","Events","KEYDOWN","CLICK","Messages","NO_PARENT_ERROR","NO_DROPDOWN_ERROR","attr","NO_MENU_ERROR","Dropdown","_render","bind","_handleFirstTabClose","_handleLastTabClose","_renderWithKeys","_handleClose","_handleEscapeKeyPress","_handleOffMenuClick","_activeDropdownButton","_activeDropdown","_activeDropdownMenu","_activeDropdownLinks","_allowFocusReturn","_activeDropdownId","_activeDropdownAttr","_activeDropdownMenuId","_dropdownButtons","_dropdowns","_dropdownContainerAttr","_dropdownTargetAttr","length","forEach","dropdown","_setupDropdown","button","addEventListener","removeEventListener","event","key","preventDefault","stopPropagation","target","getAttribute","console","error","document","querySelector","getElementById","setAttribute","iOSMobile","body","style","cursor","_getDropdownLinks","firstDropdownLink","lastDropdownLink","focus","link","captureFocus","useArrows","shiftKey","which","tabKey","releaseFocus","_handleReturnFocus","TAB_INDEX","removeAttribute","dropdownId","dropdownAttr","dropdownMenuItemsAttr","dropdownMenu","dropdownButton","id","dropdownMenuListItems","item","dropdownMenuButtons","Utils"],"mappings":"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","sourcesContent":["import Utils, { iOSMobile, nodeListToArray } from \"./utils\"\n\nconst KeyCodes = {\n TAB: 9,\n SHIFT: 16,\n ESCAPE: 27,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n // unique\n DATA_DROPDOWN: \"data-dropdown\",\n // common\n DATA_TARGET: \"data-target\",\n DATA_PARENT: \"data-parent\",\n DATA_VISIBLE: \"data-visible\",\n // accessibility\n TABINDEX: \"tabindex\",\n ARIA_HASPOPUP: \"aria-haspopup\",\n ARIA_CONTROLS: \"aria-controls\",\n ARIA_LABELLEDBY: \"aria-labelledby\",\n ARIA_EXPANDED: \"aria-expanded\",\n ROLE: \"role\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\nconst Messages = {\n NO_PARENT_ERROR: `Could not find dropdown button's [data-parent] attribute.`,\n NO_DROPDOWN_ERROR: attr => `Could not find dropdown container associated with ${attr}.`,\n NO_MENU_ERROR: attr => `Could not find menu associated with ${attr}.`,\n}\n\n/**\n * Dropdown component class.\n * @module Dropdown\n * @requires Utils\n */\nexport default class Dropdown extends Utils {\n constructor() {\n super()\n // events\n this._render = this._render.bind(this)\n this._handleFirstTabClose = this._handleFirstTabClose.bind(this)\n this._handleLastTabClose = this._handleLastTabClose.bind(this)\n this._renderWithKeys = this._renderWithKeys.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n this._handleOffMenuClick = this._handleOffMenuClick.bind(this)\n\n // active dropdown\n this._activeDropdownButton = null\n this._activeDropdown = null\n this._activeDropdownMenu = null\n this._activeDropdownLinks = []\n this._allowFocusReturn = true\n this._activeDropdownId = \"\"\n this._activeDropdownAttr = \"\"\n this._activeDropdownMenuId = \"\"\n\n // all dropdowns\n this._dropdownButtons = []\n this._dropdowns = []\n\n // dropdown element selectors\n this._dropdownContainerAttr = `[${Selectors.DATA_DROPDOWN}]`\n this._dropdownTargetAttr = `[${Selectors.DATA_TARGET}]`\n }\n\n // public\n\n /**\n * Begin listening to dropdowns.\n */\n start() {\n this._dropdowns = nodeListToArray(`${this._dropdownContainerAttr}`)\n this._dropdownButtons = nodeListToArray(\n `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}`\n )\n\n if (this._dropdowns.length) {\n this._dropdowns.forEach(dropdown => this._setupDropdown(dropdown))\n }\n\n this._dropdownButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n button.addEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n /**\n * Stop listening to dropdowns.\n */\n stop() {\n this._dropdownButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n button.removeEventListener(Events.KEYDOWN, this._renderWithKeys)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n * @param {Number} key - The key code that called _render()\n */\n _render(event, key) {\n event.preventDefault()\n event.stopPropagation()\n\n if (this._activeDropdownButton) {\n this._allowFocusReturn = false\n this._handleClose(event)\n this._allowFocusReturn = true\n }\n\n // dropdown button / trigger\n this._activeDropdownButton = event.target\n this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)\n\n if (!this._activeDropdownId) {\n return console.error(Messages.NO_PARENT_ERROR)\n }\n\n // dropdown container\n this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${this._activeDropdownId}\"]`\n this._activeDropdown = document.querySelector(this._activeDropdownAttr)\n\n if (!this._activeDropdown) {\n return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr))\n }\n\n // dropdown menu\n this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET)\n this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId)\n\n // toggle attributes on dropdown button, indicating a visible dropdown is present\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"true\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n // trade button event listener to close the menu, instead of open it\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._render)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._handleClose)\n\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOffMenuClick)\n\n // make click events work on mobile iOS\n if (iOSMobile) {\n document.body.style.cursor = \"pointer\"\n }\n\n this._activeDropdownLinks = this._getDropdownLinks(this._activeDropdownAttr)\n\n this.firstDropdownLink = this._activeDropdownLinks[0]\n this.lastDropdownLink = this._activeDropdownLinks[this._activeDropdownLinks.length - 1]\n\n this.firstDropdownLink.addEventListener(Events.KEYDOWN, this._handleFirstTabClose)\n this.lastDropdownLink.addEventListener(Events.KEYDOWN, this._handleLastTabClose)\n\n if (key && key === KeyCodes.ARROW_UP) {\n this.lastDropdownLink.focus()\n } else {\n this.firstDropdownLink.focus()\n }\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"0\")\n link.addEventListener(Events.CLICK, this._handleClose)\n })\n\n this.captureFocus(`${this._activeDropdownAttr} > ul`, { useArrows: true })\n }\n\n /**\n * Closes the dropdown if user uses shift and tab keys on the first dropdown element.\n * @param {Object} event - The event object\n */\n _handleFirstTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (shiftKey && tabKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes the dropdown if user uses tab key on the last dropdown element.\n * @param {Object} event - The event object\n */\n _handleLastTabClose(event) {\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const tabKey = event.which === KeyCodes.TAB\n\n if (tabKey && !shiftKey) {\n this._handleClose(event)\n }\n }\n\n /**\n * Renders dropdown if the user uses arrow up or down.\n * @param {Object} event - The event object\n */\n _renderWithKeys(event) {\n if (event.which === KeyCodes.ARROW_UP || event.which === KeyCodes.ARROW_DOWN) {\n this._render(event, event.which)\n }\n }\n\n /**\n * Closes currently open dropdown.\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n\n this.releaseFocus()\n\n this._activeDropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n this._activeDropdown.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n\n this._activeDropdownLinks.forEach(link => {\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n link.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeDropdownButton.removeEventListener(Events.CLICK, this._handleClose)\n this._activeDropdownButton.addEventListener(Events.CLICK, this._render)\n\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n\n if (iOSMobile) {\n document.body.style.cursor = \"auto\"\n }\n\n document.removeEventListener(Events.CLICK, this._handleOffMenuClick)\n\n if (this._allowFocusReturn) {\n this._handleReturnFocus()\n }\n\n this._activeDropdownButton = null\n this._activeDropdownId = null\n this._activeDropdown = null\n }\n\n /**\n * Use escape key to close dropdown.\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Closes dropdown\n * @param {Object} event - The event object\n */\n _handleOffMenuClick(event) {\n if (event.target !== this._activeDropdownButton && event.target !== this._activeDropdownMenu) {\n this._handleClose(event)\n }\n }\n\n /**\n * Puts focus on a the active dropdown button.\n */\n _handleReturnFocus() {\n this._activeDropdownButton.setAttribute(Selectors.TAB_INDEX, \"-1\")\n this._activeDropdownButton.focus()\n this._activeDropdownButton.removeAttribute(Selectors.TAB_INDEX)\n }\n\n /**\n * Retrieve possible menu links or buttons as an array\n * @param {String} attr - The unique attribute for a dropdown.\n * @return {String} - Selector for possible menu item links.\n */\n _getDropdownLinks(attr) {\n return nodeListToArray(`${attr} > ul > li > a, ${attr} > ul > li > button`)\n }\n\n /**\n * Add starting attributes to a dropdown.\n * @param {Element} dropdown - A dropdown element.\n */\n _setupDropdown(dropdown) {\n const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN)\n\n // no id error\n\n const dropdownAttr = `[${Selectors.DATA_DROPDOWN}=\"${dropdownId}\"]`\n const dropdownMenuItemsAttr = `${dropdownAttr} > ul > li`\n const dropdownMenu = document.querySelector(`${dropdownAttr} > ul`)\n\n // no ul error\n\n if (!dropdownMenu) {\n return console.error(Messages.NO_MENU_ERROR(dropdownAttr))\n }\n\n const dropdownButton = document.querySelector(`${dropdownAttr} > ${this._dropdownTargetAttr}`)\n\n dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id)\n dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, \"true\")\n dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, \"false\")\n dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id)\n\n const dropdownMenuListItems = nodeListToArray(dropdownMenuItemsAttr)\n\n // no menu items error\n\n dropdownMenuListItems.forEach(item => item.setAttribute(Selectors.ROLE, \"none\"))\n\n const dropdownMenuButtons = this._getDropdownLinks(dropdownAttr)\n\n // no menu buttons error\n\n dropdownMenuButtons.forEach(link => {\n link.setAttribute(Selectors.ROLE, \"menuitem\")\n link.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n }\n}\n"],"file":"dropdown.js"} \ No newline at end of file diff --git a/js/dist/index.bundle.js b/js/dist/index.bundle.js index 1cd86e76..9f895deb 100644 --- a/js/dist/index.bundle.js +++ b/js/dist/index.bundle.js @@ -3,6 +3,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); +Object.defineProperty(exports, "Undernet", { + enumerable: true, + get: function get() { + return _index.default; + } +}); Object.defineProperty(exports, "Modals", { enumerable: true, get: function get() { @@ -21,19 +27,22 @@ Object.defineProperty(exports, "Dropdowns", { return _index.Dropdowns; } }); +Object.defineProperty(exports, "Tooltips", { + enumerable: true, + get: function get() { + return _index.Tooltips; + } +}); Object.defineProperty(exports, "Utils", { enumerable: true, get: function get() { return _index.Utils; } }); -exports.default = void 0; var _index = _interopRequireWildcard(require("./index")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } -var _default = _index.default; -exports.default = _default; window.Undernet = _index.default; //# sourceMappingURL=index.bundle.js.map \ No newline at end of file diff --git a/js/dist/index.bundle.js.map b/js/dist/index.bundle.js.map index 821cb46b..03bb70a1 100644 --- a/js/dist/index.bundle.js.map +++ b/js/dist/index.bundle.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.bundle.js"],"names":["Undernet","window"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;eAEeA,c;;AAGfC,MAAM,CAACD,QAAP,GAAkBA,cAAlB","sourcesContent":["import Undernet from \"./index\"\n\nexport default Undernet\nexport { Modals, Accordions, Dropdowns, Utils } from \"./index\"\n\nwindow.Undernet = Undernet\n"],"file":"index.bundle.js"} \ No newline at end of file +{"version":3,"sources":["../src/index.bundle.js"],"names":["window","Undernet"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AAEAA,MAAM,CAACC,QAAP,GAAkBA,cAAlB","sourcesContent":["import Undernet from \"./index\"\n\nwindow.Undernet = Undernet\nexport { default as Undernet, Modals, Accordions, Dropdowns, Tooltips, Utils } from \"./index\"\n"],"file":"index.bundle.js"} \ No newline at end of file diff --git a/js/dist/index.js b/js/dist/index.js index 0b874f13..939e929e 100644 --- a/js/dist/index.js +++ b/js/dist/index.js @@ -3,30 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = exports.Utils = exports.Dropdowns = exports.Accordions = exports.Modals = void 0; +exports.default = exports.Utils = exports.Tooltips = exports.Modals = exports.Dropdowns = exports.Accordions = void 0; -var _modal = _interopRequireDefault(require("./components/modal")); +var _accordion = _interopRequireDefault(require("./accordion")); -var _accordion = _interopRequireDefault(require("./components/accordion")); +var _dropdown = _interopRequireDefault(require("./dropdown")); -var _dropdown = _interopRequireDefault(require("./components/dropdown")); +var _modal = _interopRequireDefault(require("./modal")); + +var _tooltip = _interopRequireDefault(require("./tooltip")); var _utils = _interopRequireDefault(require("./utils")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var Modals = new _modal.default(); -exports.Modals = Modals; var Accordions = new _accordion.default(); exports.Accordions = Accordions; var Dropdowns = new _dropdown.default(); exports.Dropdowns = Dropdowns; +var Modals = new _modal.default(); +exports.Modals = Modals; +var Tooltips = new _tooltip.default(); +exports.Tooltips = Tooltips; var Utils = new _utils.default(); exports.Utils = Utils; var Undernet = { Modals: Modals, Accordions: Accordions, Dropdowns: Dropdowns, + Tooltips: Tooltips, Utils: Utils }; @@ -34,6 +39,7 @@ Undernet.start = function () { Undernet.Modals.start(); Undernet.Accordions.start(); Undernet.Dropdowns.start(); + Undernet.Tooltips.start(); Undernet.Utils.enableFocusOutline(); }; diff --git a/js/dist/index.js.map b/js/dist/index.js.map index bf4a660b..85268bff 100644 --- a/js/dist/index.js.map +++ b/js/dist/index.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/index.js"],"names":["Modals","_Modals","Accordions","_Accordion","Dropdowns","_Dropdown","Utils","_Utils","Undernet","start","enableFocusOutline","stop","disableFocusOutline"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,MAAM,GAAG,IAAIC,cAAJ,EAAf;;AACA,IAAMC,UAAU,GAAG,IAAIC,kBAAJ,EAAnB;;AACA,IAAMC,SAAS,GAAG,IAAIC,iBAAJ,EAAlB;;AACA,IAAMC,KAAK,GAAG,IAAIC,cAAJ,EAAd;;AAEP,IAAMC,QAAQ,GAAG;AAEfR,EAAAA,MAAM,EAANA,MAFe;AAGfE,EAAAA,UAAU,EAAVA,UAHe;AAIfE,EAAAA,SAAS,EAATA,SAJe;AAOfE,EAAAA,KAAK,EAALA;AAPe,CAAjB;;AAUAE,QAAQ,CAACC,KAAT,GAAiB,YAAM;AAErBD,EAAAA,QAAQ,CAACR,MAAT,CAAgBS,KAAhB;AACAD,EAAAA,QAAQ,CAACN,UAAT,CAAoBO,KAApB;AACAD,EAAAA,QAAQ,CAACJ,SAAT,CAAmBK,KAAnB;AAGAD,EAAAA,QAAQ,CAACF,KAAT,CAAeI,kBAAf;AACD,CARD;;AAUAF,QAAQ,CAACG,IAAT,GAAgB,YAAM;AAEpBH,EAAAA,QAAQ,CAACR,MAAT,CAAgBW,IAAhB;AACAH,EAAAA,QAAQ,CAACN,UAAT,CAAoBS,IAApB;AACAH,EAAAA,QAAQ,CAACJ,SAAT,CAAmBO,IAAnB;AAGAH,EAAAA,QAAQ,CAACF,KAAT,CAAeM,mBAAf;AACD,CARD;;eAUeJ,Q","sourcesContent":["import _Modals from \"./components/modal\"\nimport _Accordion from \"./components/accordion\"\nimport _Dropdown from \"./components/dropdown\"\nimport _Utils from \"./utils\"\n\nexport const Modals = new _Modals()\nexport const Accordions = new _Accordion()\nexport const Dropdowns = new _Dropdown()\nexport const Utils = new _Utils()\n\nconst Undernet = {\n // Components\n Modals,\n Accordions,\n Dropdowns,\n\n // Utils\n Utils,\n}\n\nUndernet.start = () => {\n // Components\n Undernet.Modals.start()\n Undernet.Accordions.start()\n Undernet.Dropdowns.start()\n\n // Utils\n Undernet.Utils.enableFocusOutline()\n}\n\nUndernet.stop = () => {\n // Components\n Undernet.Modals.stop()\n Undernet.Accordions.stop()\n Undernet.Dropdowns.stop()\n\n // Utils\n Undernet.Utils.disableFocusOutline()\n}\n\nexport default Undernet\n"],"file":"index.js"} \ No newline at end of file +{"version":3,"sources":["../src/index.js"],"names":["Accordions","_Accordion","Dropdowns","_Dropdown","Modals","_Modals","Tooltips","_Tooltips","Utils","_Utils","Undernet","start","enableFocusOutline","stop","disableFocusOutline"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEO,IAAMA,UAAU,GAAG,IAAIC,kBAAJ,EAAnB;;AACA,IAAMC,SAAS,GAAG,IAAIC,iBAAJ,EAAlB;;AACA,IAAMC,MAAM,GAAG,IAAIC,cAAJ,EAAf;;AACA,IAAMC,QAAQ,GAAG,IAAIC,gBAAJ,EAAjB;;AACA,IAAMC,KAAK,GAAG,IAAIC,cAAJ,EAAd;;AAEP,IAAMC,QAAQ,GAAG;AAEfN,EAAAA,MAAM,EAANA,MAFe;AAGfJ,EAAAA,UAAU,EAAVA,UAHe;AAIfE,EAAAA,SAAS,EAATA,SAJe;AAKfI,EAAAA,QAAQ,EAARA,QALe;AAQfE,EAAAA,KAAK,EAALA;AARe,CAAjB;;AAWAE,QAAQ,CAACC,KAAT,GAAiB,YAAM;AAErBD,EAAAA,QAAQ,CAACN,MAAT,CAAgBO,KAAhB;AACAD,EAAAA,QAAQ,CAACV,UAAT,CAAoBW,KAApB;AACAD,EAAAA,QAAQ,CAACR,SAAT,CAAmBS,KAAnB;AACAD,EAAAA,QAAQ,CAACJ,QAAT,CAAkBK,KAAlB;AAGAD,EAAAA,QAAQ,CAACF,KAAT,CAAeI,kBAAf;AACD,CATD;;AAWAF,QAAQ,CAACG,IAAT,GAAgB,YAAM;AAEpBH,EAAAA,QAAQ,CAACN,MAAT,CAAgBS,IAAhB;AACAH,EAAAA,QAAQ,CAACV,UAAT,CAAoBa,IAApB;AACAH,EAAAA,QAAQ,CAACR,SAAT,CAAmBW,IAAnB;AAGAH,EAAAA,QAAQ,CAACF,KAAT,CAAeM,mBAAf;AACD,CARD;;eAUeJ,Q","sourcesContent":["import _Accordion from \"./accordion\"\nimport _Dropdown from \"./dropdown\"\nimport _Modals from \"./modal\"\nimport _Tooltips from \"./tooltip\"\nimport _Utils from \"./utils\"\n\nexport const Accordions = new _Accordion()\nexport const Dropdowns = new _Dropdown()\nexport const Modals = new _Modals()\nexport const Tooltips = new _Tooltips()\nexport const Utils = new _Utils()\n\nconst Undernet = {\n // Components\n Modals,\n Accordions,\n Dropdowns,\n Tooltips,\n\n // Utils\n Utils,\n}\n\nUndernet.start = () => {\n // Components\n Undernet.Modals.start()\n Undernet.Accordions.start()\n Undernet.Dropdowns.start()\n Undernet.Tooltips.start()\n\n // Utils\n Undernet.Utils.enableFocusOutline()\n}\n\nUndernet.stop = () => {\n // Components\n Undernet.Modals.stop()\n Undernet.Accordions.stop()\n Undernet.Dropdowns.stop()\n\n // Utils\n Undernet.Utils.disableFocusOutline()\n}\n\nexport default Undernet\n"],"file":"index.js"} \ No newline at end of file diff --git a/js/dist/components/modal.js b/js/dist/modal.js similarity index 77% rename from js/dist/components/modal.js rename to js/dist/modal.js index c9be495f..68364b61 100644 --- a/js/dist/components/modal.js +++ b/js/dist/modal.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; -var _utils = _interopRequireWildcard(require("../utils")); +var _utils = _interopRequireWildcard(require("./utils")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } @@ -32,11 +32,9 @@ var KeyCodes = { }; var Selectors = { DATA_MODAL: "data-modal", - DATA_MODAL_ID: "data-modal-id", DATA_MODAL_BUTTON: "data-modal-button", DATA_VISIBLE: "data-visible", DATA_CLOSE: "data-close", - DATA_TARGET: "data-target", DATA_PARENT: "data-parent", ARIA_HIDDEN: "aria-hidden", ARIA_MODAL: "aria-modal", @@ -50,10 +48,10 @@ var Events = { RESIZE: "resize" }; var Messages = { - NO_TARGET_ERROR: "Could not find [data-target] attribute associated with a [data-modal-button] element.", - NO_PARENT_ERROR: "Could not find [data-parent] attribute associated with a [data-modal] element.", - NO_ID_ERROR: function NO_ID_ERROR(id) { - return "Could not find [data-modal-id='".concat(id, "'] associated with a [data-modal] element."); + NO_BUTTON_ID_ERROR: "Could not find an id on your [data-modal-button] element. Modal can't be opened.", + NO_MODAL_ID_ERROR: "Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.", + NO_MODAL_ERROR: function NO_MODAL_ERROR(id) { + return "Could not find a [data-parent='".concat(id, "'] attribute within your [data-modal='").concat(id, "'] element."); } }; @@ -66,7 +64,6 @@ var Modal = function (_Utils) { _classCallCheck(this, Modal); _this = _possibleConstructorReturn(this, _getPrototypeOf(Modal).call(this)); - _this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent); _this._render = _this._render.bind(_assertThisInitialized(_this)); _this._handleClose = _this._handleClose.bind(_assertThisInitialized(_this)); _this._handleOverlayClick = _this._handleOverlayClick.bind(_assertThisInitialized(_this)); @@ -89,15 +86,15 @@ var Modal = function (_Utils) { value: function start() { var _this2 = this; - this._modals = document.querySelectorAll(this._modalContainerAttr); - this._modalButtons = document.querySelectorAll("[".concat(Selectors.DATA_MODAL_BUTTON, "]")); + this._modals = (0, _utils.nodeListToArray)(this._modalContainerAttr); + this._modalButtons = (0, _utils.nodeListToArray)("[".concat(Selectors.DATA_MODAL_BUTTON, "]")); (0, _utils.getFocusableElements)(this._modalContainerAttr).forEach(function (element) { element.setAttribute(Selectors.TABINDEX, "-1"); }); if (this._modals.length) { - this._modals.forEach(function (modal) { - _this2._setupModal(modal); + this._modals.forEach(function (instance) { + _this2._setupModal(instance); }); } @@ -123,22 +120,16 @@ var Modal = function (_Utils) { event.preventDefault(); this._activeModalButton = event.target; + this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_MODAL_BUTTON); - if (!this._activeModalButton.getAttribute(Selectors.DATA_TARGET)) { - return console.error(Messages.NO_TARGET_ERROR); + if (!this._activeModalId) { + return console.error(Messages.NO_BUTTON_ID_ERROR); } - this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_TARGET); - this._activeModalOverlayAttr = "[".concat(Selectors.DATA_MODAL_ID, "=\"").concat(this._activeModalId, "\"]"); - - if (!document.querySelector(this._activeModalOverlayAttr)) { - return console.error(Messages.NO_ID_ERROR(this._activeModalId)); - } - - this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr); - this._activeModalSelector = "".concat(this._activeModalOverlayAttr, " ").concat(this._modalContainerAttr); - this._activeModal = document.querySelector(this._activeModalSelector); - this._activeModalCloseButtons = document.querySelectorAll("".concat(this._activeModalOverlayAttr, " [").concat(Selectors.DATA_CLOSE, "]")); + this._activeModalOverlay = document.querySelector("[".concat(Selectors.DATA_MODAL, "=\"").concat(this._activeModalId, "\"]")); + this._activeModalSelector = "[".concat(Selectors.DATA_PARENT, "='").concat(this._activeModalId, "']"); + this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector); + this._activeModalCloseButtons = (0, _utils.nodeListToArray)("".concat(this._activeModalSelector, " [").concat(Selectors.DATA_CLOSE, "]")); (0, _utils.getFocusableElements)(this._activeModalSelector).forEach(function (element) { element.setAttribute(Selectors.TABINDEX, "0"); }); @@ -157,7 +148,7 @@ var Modal = function (_Utils) { this._activeModalOverlay.scrollTop = 0; - if (this._iosMobile) { + if (_utils.iOSMobile) { this._activeModalOverlay.style.cursor = "pointer"; } @@ -170,23 +161,20 @@ var Modal = function (_Utils) { } }, { key: "_setupModal", - value: function _setupModal(modal) { - var modalId; + value: function _setupModal(instance) { + var modalId = instance.getAttribute(Selectors.DATA_MODAL); - if (!modal.getAttribute(Selectors.DATA_PARENT)) { - return console.error(Messages.NO_PARENT_ERROR); - } else { - modalId = modal.getAttribute(Selectors.DATA_PARENT); + if (!modalId) { + return console.error(Messages.NO_MODAL_ID_ERROR); } - var modalWrapper; + var modal = instance.querySelector("[".concat(Selectors.DATA_PARENT, "='").concat(modalId, "']")); - if (!document.querySelector("[".concat(Selectors.DATA_MODAL_ID, "='").concat(modalId, "']"))) { - return console.error(Messages.NO_ID_ERROR(modalId)); - } else { - modalWrapper = document.querySelector("[".concat(Selectors.DATA_MODAL_ID, "='").concat(modalId, "']")); + if (!modal) { + return console.error(Messages.NO_MODAL_ERROR(modalId)); } + var modalWrapper = document.querySelector("[".concat(Selectors.DATA_MODAL, "='").concat(modalId, "']")); modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, "true"); modalWrapper.setAttribute(Selectors.DATA_VISIBLE, "false"); modal.setAttribute(Selectors.ARIA_MODAL, "true"); @@ -215,7 +203,7 @@ var Modal = function (_Utils) { element.setAttribute(Selectors.TABINDEX, "-1"); }); - if (this._iosMobile) { + if (_utils.iOSMobile) { this._activeModalOverlay.style.cursor = "auto"; } @@ -225,6 +213,8 @@ var Modal = function (_Utils) { this._activeModalCloseButtons.forEach(function (button) { button.removeEventListener(Events.CLICK, _this5._handleClose); }); + + this._activeModalId = null; } }, { key: "_handleOverlayClick", @@ -253,13 +243,13 @@ var Modal = function (_Utils) { key: "_handleScrollRestore", value: function _handleScrollRestore() { document.body.classList.remove(Selectors.NO_SCROLL); - document.querySelector("html").classList.remove(Selectors.NO_SCROLL); + document.documentElement.classList.remove(Selectors.NO_SCROLL); } }, { key: "_handleScrollStop", value: function _handleScrollStop() { document.body.classList.add(Selectors.NO_SCROLL); - document.querySelector("html").classList.add(Selectors.NO_SCROLL); + document.documentElement.classList.add(Selectors.NO_SCROLL); } }]); diff --git a/js/dist/modal.js.map b/js/dist/modal.js.map new file mode 100644 index 00000000..8f57026c --- /dev/null +++ b/js/dist/modal.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/modal.js"],"names":["KeyCodes","ESCAPE","Selectors","DATA_MODAL","DATA_MODAL_BUTTON","DATA_VISIBLE","DATA_CLOSE","DATA_PARENT","ARIA_HIDDEN","ARIA_MODAL","ROLE","TABINDEX","NO_SCROLL","Events","KEYDOWN","CLICK","RESIZE","Messages","NO_BUTTON_ID_ERROR","NO_MODAL_ID_ERROR","NO_MODAL_ERROR","id","Modal","_render","bind","_handleClose","_handleOverlayClick","_handleEscapeKeyPress","_modals","_modalButtons","_activeModalButton","_activeModalOverlay","_activeModal","_activeModalId","_activeModalOverlayAttr","_activeModalSelector","_activeModalCloseButtons","_modalContainerAttr","forEach","element","setAttribute","length","instance","_setupModal","button","addEventListener","removeEventListener","event","preventDefault","target","getAttribute","console","error","document","querySelector","_handleScrollStop","captureFocus","focus","scrollTop","iOSMobile","style","cursor","modalId","modal","modalWrapper","_handleReturnFocus","_handleScrollRestore","releaseFocus","removeAttribute","which","body","classList","remove","documentElement","add","Utils"],"mappings":"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","sourcesContent":["import Utils, { iOSMobile, getFocusableElements, nodeListToArray } from \"./utils\"\n\nconst KeyCodes = {\n ESCAPE: 27,\n}\n\nconst Selectors = {\n // unique\n DATA_MODAL: \"data-modal\",\n DATA_MODAL_BUTTON: \"data-modal-button\",\n // common\n DATA_VISIBLE: \"data-visible\",\n DATA_CLOSE: \"data-close\",\n DATA_PARENT: \"data-parent\",\n // accessibility\n ARIA_HIDDEN: \"aria-hidden\",\n ARIA_MODAL: \"aria-modal\",\n ROLE: \"role\",\n TABINDEX: \"tabindex\",\n // classes\n NO_SCROLL: \"no-scroll\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n RESIZE: \"resize\",\n}\n\nconst Messages = {\n NO_BUTTON_ID_ERROR:\n \"Could not find an id on your [data-modal-button] element. Modal can't be opened.\",\n NO_MODAL_ID_ERROR:\n \"Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.\",\n NO_MODAL_ERROR: id =>\n `Could not find a [data-parent='${id}'] attribute within your [data-modal='${id}'] element.`,\n}\n\n/**\n * Modal component class.\n * @module Modal\n * @requires Utils\n */\nexport default class Modal extends Utils {\n constructor() {\n super()\n\n // events\n this._render = this._render.bind(this)\n this._handleClose = this._handleClose.bind(this)\n this._handleOverlayClick = this._handleOverlayClick.bind(this)\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\n\n // all modals\n this._modals = []\n this._modalButtons = []\n\n // active modal\n this._activeModalButton = {}\n this._activeModalOverlay = {}\n this._activeModal = {}\n this._activeModalId = \"\"\n this._activeModalOverlayAttr = \"\"\n this._activeModalSelector = \"\"\n this._activeModalCloseButtons = []\n\n // attribute helpers\n this._modalContainerAttr = `[${Selectors.DATA_MODAL}]`\n }\n\n // public\n\n /**\n * Begin listening to modals.\n */\n start() {\n this._modals = nodeListToArray(this._modalContainerAttr)\n this._modalButtons = nodeListToArray(`[${Selectors.DATA_MODAL_BUTTON}]`)\n\n getFocusableElements(this._modalContainerAttr).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (this._modals.length) {\n this._modals.forEach(instance => {\n this._setupModal(instance)\n })\n }\n\n if (this._modalButtons.length) {\n this._modalButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._render)\n })\n }\n }\n\n /**\n * Stop listening to modals\n */\n stop() {\n this._modalButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._render)\n })\n }\n\n // private\n\n /**\n * Find a button through event.target, then render the corresponding modal attribute via matching target id\n * @param {Object} event - The event object\n */\n _render(event) {\n event.preventDefault()\n this._activeModalButton = event.target\n this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_MODAL_BUTTON)\n\n if (!this._activeModalId) {\n return console.error(Messages.NO_BUTTON_ID_ERROR)\n }\n\n this._activeModalOverlay = document.querySelector(\n `[${Selectors.DATA_MODAL}=\"${this._activeModalId}\"]`\n )\n this._activeModalSelector = `[${Selectors.DATA_PARENT}='${this._activeModalId}']`\n this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector)\n this._activeModalCloseButtons = nodeListToArray(\n `${this._activeModalSelector} [${Selectors.DATA_CLOSE}]`\n )\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"0\")\n })\n\n this._handleScrollStop()\n this.captureFocus(this._activeModalSelector)\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"false\")\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"true\")\n\n this._activeModal.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModal.focus()\n\n this._activeModalOverlay.scrollTop = 0\n\n if (iOSMobile) {\n this._activeModalOverlay.style.cursor = \"pointer\"\n }\n\n // begin listening to events\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.addEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.addEventListener(Events.CLICK, this._handleClose)\n })\n }\n\n /**\n * Setup a modal instance.\n * @param {Object} instance - The modal element\n */\n _setupModal(instance) {\n const modalId = instance.getAttribute(Selectors.DATA_MODAL)\n\n if (!modalId) {\n return console.error(Messages.NO_MODAL_ID_ERROR)\n }\n\n const modal = instance.querySelector(`[${Selectors.DATA_PARENT}='${modalId}']`)\n\n if (!modal) {\n return console.error(Messages.NO_MODAL_ERROR(modalId))\n }\n\n const modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL}='${modalId}']`)\n\n modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n modalWrapper.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n modal.setAttribute(Selectors.ARIA_MODAL, \"true\")\n modal.setAttribute(Selectors.ROLE, \"dialog\")\n }\n\n /**\n * Turn off event listeners and reset focus to last selected DOM node (button)\n * @param {Object} event - The event object\n */\n _handleClose(event) {\n event.preventDefault()\n this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, \"false\")\n this._handleReturnFocus()\n this._handleScrollRestore()\n this.releaseFocus()\n this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, \"true\")\n this._activeModal.removeAttribute(Selectors.TABINDEX)\n\n getFocusableElements(this._activeModalSelector).forEach(element => {\n element.setAttribute(Selectors.TABINDEX, \"-1\")\n })\n\n if (iOSMobile) {\n this._activeModalOverlay.style.cursor = \"auto\"\n }\n\n // stop listening to events\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\n document.removeEventListener(Events.CLICK, this._handleOverlayClick)\n this._activeModalCloseButtons.forEach(button => {\n button.removeEventListener(Events.CLICK, this._handleClose)\n })\n\n this._activeModalId = null\n }\n\n /**\n * Handles click event on the modal background to close it.\n * @param {Object} event - The event object\n */\n _handleOverlayClick(event) {\n if (event.target === this._activeModalOverlay) {\n this._handleClose(event)\n }\n }\n\n /**\n * Handles escape key event to close the current modal\n * @param {Object} event - The event object\n */\n _handleEscapeKeyPress(event) {\n if (event.which === KeyCodes.ESCAPE) {\n this._handleClose(event)\n }\n }\n\n /**\n * Returns focus to the last focused element before the modal was called.\n * @param {Object} button - The current modal's corresponding button.\n */\n _handleReturnFocus() {\n this._activeModalButton.setAttribute(Selectors.TABINDEX, \"-1\")\n this._activeModalButton.focus()\n this._activeModalButton.removeAttribute(Selectors.TABINDEX)\n }\n\n /**\n * Restores scroll behavior to and \n */\n _handleScrollRestore() {\n document.body.classList.remove(Selectors.NO_SCROLL)\n document.documentElement.classList.remove(Selectors.NO_SCROLL)\n }\n\n /**\n * Prevents scroll behavior on and \n */\n _handleScrollStop() {\n document.body.classList.add(Selectors.NO_SCROLL)\n document.documentElement.classList.add(Selectors.NO_SCROLL)\n }\n}\n"],"file":"modal.js"} \ No newline at end of file diff --git a/js/dist/tooltip.js b/js/dist/tooltip.js new file mode 100644 index 00000000..b18a16d2 --- /dev/null +++ b/js/dist/tooltip.js @@ -0,0 +1,223 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = void 0; + +var _utils = require("./utils"); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } + +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + +var KeyCodes = { + ESCAPE: 27 +}; +var Selectors = { + DATA_TOOLTIP: "data-tooltip", + DATA_VISIBLE: "data-visible", + DATA_TARGET: "data-target", + ROLE: "role", + ARIA_DESCRIBEDBY: "aria-describedby", + DROP_LEFT_CLASS: "is-drop-left", + DROP_RIGHT_CLASS: "is-drop-right" +}; +var Events = { + CLICK: "click", + MOUSEOVER: "mouseover", + MOUSEOUT: "mouseout", + FOCUS: "focus", + BLUR: "blur", + KEYDOWN: "keydown" +}; +var Messages = { + NO_ID_ERROR: "Could not find your tooltip's id.", + NO_TRIGGER_ERROR: function NO_TRIGGER_ERROR(id) { + return "Could not find a tooltip trigger with id of ".concat(id, "."); + }, + NO_TOOLTIP_ERROR: function NO_TOOLTIP_ERROR(id) { + return "Could not find a tooltip with id of ".concat(id, "."); + } +}; + +var Tooltip = function () { + function Tooltip() { + _classCallCheck(this, Tooltip); + + this._render = this._render.bind(this); + this._handleClose = this._handleClose.bind(this); + this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this); + this._activeTrigger = null; + this._activeTooltip = null; + this._allTooltips = []; + } + + _createClass(Tooltip, [{ + key: "start", + value: function start() { + var _this = this; + + this._allTooltips = document.querySelectorAll("[".concat(Selectors.DATA_TOOLTIP, "]")); + + this._allTooltips.forEach(function (instance) { + _this._setupTooltip(instance); + }); + } + }, { + key: "stop", + value: function stop() { + var _this2 = this; + + this._allTooltips.forEach(function (instance) { + var id = instance.getAttribute(Selectors.DATA_TOOLTIP); + var trigger = instance.querySelector(_this2._getTrigger(id)); + trigger.removeEventListener(Events.MOUSEOVER, _this2._render); + trigger.removeEventListener(Events.FOCUS, _this2._render); + }); + } + }, { + key: "_render", + value: function _render(event) { + this._activeTrigger = event.target; + + var tooltipId = this._activeTrigger.getAttribute(Selectors.DATA_TARGET); + + this._activeTooltip = document.getElementById(tooltipId); + + if (this._isLeftOrRight()) { + this._alignTooltip("height"); + } else { + this._alignTooltip("width"); + } + + this._showTooltip(); + + this._listenForClose(); + } + }, { + key: "_handleClose", + value: function _handleClose() { + this._hideTooltip(); + + this._listenForOpen(); + + this._activeTrigger = null; + this._activeTooltip = null; + } + }, { + key: "_showTooltip", + value: function _showTooltip() { + this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, "true"); + } + }, { + key: "_hideTooltip", + value: function _hideTooltip() { + this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, "false"); + } + }, { + key: "_listenForClose", + value: function _listenForClose() { + this._activeTrigger.removeEventListener(Events.MOUSEOVER, this._render); + + this._activeTrigger.removeEventListener(Events.FOCUS, this._render); + + this._activeTrigger.addEventListener(Events.MOUSEOUT, this._handleClose); + + this._activeTrigger.addEventListener(Events.BLUR, this._handleClose); + + document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress); + + if (_utils.iOSMobile) { + document.body.style.cursor = "pointer"; + } + } + }, { + key: "_handleEscapeKeyPress", + value: function _handleEscapeKeyPress(event) { + if (event.which === KeyCodes.ESCAPE) { + this._handleClose(); + } + } + }, { + key: "_listenForOpen", + value: function _listenForOpen() { + this._activeTrigger.removeEventListener(Events.MOUSEOUT, this._handleClose); + + this._activeTrigger.removeEventListener(Events.BLUR, this._handleClose); + + this._activeTrigger.addEventListener(Events.MOUSEOVER, this._render); + + this._activeTrigger.addEventListener(Events.FOCUS, this._render); + + document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress); + + if (_utils.iOSMobile) { + document.body.style.cursor = "auto"; + } + } + }, { + key: "_alignTooltip", + value: function _alignTooltip(property) { + var triggerLength = this._getComputedLength(this._activeTrigger, property); + + var tooltipLength = this._getComputedLength(this._activeTooltip, property); + + var triggerIsLongest = triggerLength > tooltipLength; + var offset = triggerIsLongest ? (triggerLength - tooltipLength) / 2 : (tooltipLength - triggerLength) / -2; + + if (property === "height") { + this._activeTooltip.style.top = "".concat(offset, "px"); + } else { + this._activeTooltip.style.left = "".concat(offset, "px"); + } + } + }, { + key: "_setupTooltip", + value: function _setupTooltip(instance) { + var id = instance.getAttribute(Selectors.DATA_TOOLTIP); + var trigger = instance.querySelector(this._getTrigger(id)); + var tooltip = document.getElementById(id); + + if (!id) { + return console.error(Messages.NO_ID_ERROR); + } + + if (!trigger) { + return console.error(Messages.NO_TRIGGER_ERROR(id)); + } + + if (!tooltip) { + return console.error(Messages.NO_TOOLTIP_ERROR(id)); + } + + trigger.setAttribute(Selectors.ARIA_DESCRIBEDBY, id); + tooltip.setAttribute(Selectors.ROLE, "tooltip"); + trigger.addEventListener(Events.MOUSEOVER, this._render); + trigger.addEventListener(Events.FOCUS, this._render); + } + }, { + key: "_getTrigger", + value: function _getTrigger(id) { + return "[".concat(Selectors.DATA_TARGET, "=\"").concat(id, "\"]"); + } + }, { + key: "_getComputedLength", + value: function _getComputedLength(element, property) { + return parseInt(window.getComputedStyle(element)[property].slice(0, -2)); + } + }, { + key: "_isLeftOrRight", + value: function _isLeftOrRight() { + var classes = this._activeTooltip.classList; + return classes.contains(Selectors.DROP_LEFT_CLASS) || classes.contains(Selectors.DROP_RIGHT_CLASS); + } + }]); + + return Tooltip; +}(); + +exports.default = Tooltip; +//# sourceMappingURL=tooltip.js.map \ No newline at end of file diff --git a/js/dist/tooltip.js.map b/js/dist/tooltip.js.map new file mode 100644 index 00000000..85e89aa7 --- /dev/null +++ b/js/dist/tooltip.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/tooltip.js"],"names":["KeyCodes","ESCAPE","Selectors","DATA_TOOLTIP","DATA_VISIBLE","DATA_TARGET","ROLE","ARIA_DESCRIBEDBY","DROP_LEFT_CLASS","DROP_RIGHT_CLASS","Events","CLICK","MOUSEOVER","MOUSEOUT","FOCUS","BLUR","KEYDOWN","Messages","NO_ID_ERROR","NO_TRIGGER_ERROR","id","NO_TOOLTIP_ERROR","Tooltip","_render","bind","_handleClose","_handleEscapeKeyPress","_activeTrigger","_activeTooltip","_allTooltips","document","querySelectorAll","forEach","instance","_setupTooltip","getAttribute","trigger","querySelector","_getTrigger","removeEventListener","event","target","tooltipId","getElementById","_isLeftOrRight","_alignTooltip","_showTooltip","_listenForClose","_hideTooltip","_listenForOpen","setAttribute","addEventListener","iOSMobile","body","style","cursor","which","property","triggerLength","_getComputedLength","tooltipLength","triggerIsLongest","offset","top","left","tooltip","console","error","element","parseInt","window","getComputedStyle","slice","classes","classList","contains"],"mappings":"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","sourcesContent":["import { iOSMobile } from \"./utils\"\r\n\r\nconst KeyCodes = {\r\n ESCAPE: 27,\r\n}\r\n\r\nconst Selectors = {\r\n DATA_TOOLTIP: \"data-tooltip\",\r\n DATA_VISIBLE: \"data-visible\",\r\n DATA_TARGET: \"data-target\",\r\n ROLE: \"role\",\r\n ARIA_DESCRIBEDBY: \"aria-describedby\",\r\n DROP_LEFT_CLASS: \"is-drop-left\",\r\n DROP_RIGHT_CLASS: \"is-drop-right\",\r\n}\r\n\r\nconst Events = {\r\n CLICK: \"click\",\r\n MOUSEOVER: \"mouseover\",\r\n MOUSEOUT: \"mouseout\",\r\n FOCUS: \"focus\",\r\n BLUR: \"blur\",\r\n KEYDOWN: \"keydown\",\r\n}\r\n\r\nconst Messages = {\r\n NO_ID_ERROR: \"Could not find your tooltip's id.\",\r\n NO_TRIGGER_ERROR: id => `Could not find a tooltip trigger with id of ${id}.`,\r\n NO_TOOLTIP_ERROR: id => `Could not find a tooltip with id of ${id}.`,\r\n}\r\n\r\n/**\r\n * Tooltip component class.\r\n * @module Tooltip\r\n */\r\nexport default class Tooltip {\r\n constructor() {\r\n // events\r\n this._render = this._render.bind(this)\r\n this._handleClose = this._handleClose.bind(this)\r\n this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this)\r\n\r\n // active tooltip\r\n this._activeTrigger = null\r\n this._activeTooltip = null\r\n\r\n // all tooltips\r\n this._allTooltips = []\r\n }\r\n\r\n // public\r\n\r\n /**\r\n * Begin listening to tooltips.\r\n */\r\n start() {\r\n this._allTooltips = document.querySelectorAll(`[${Selectors.DATA_TOOLTIP}]`)\r\n\r\n this._allTooltips.forEach(instance => {\r\n this._setupTooltip(instance)\r\n })\r\n }\r\n\r\n /**\r\n * Stop listening to tooltips.\r\n */\r\n stop() {\r\n this._allTooltips.forEach(instance => {\r\n const id = instance.getAttribute(Selectors.DATA_TOOLTIP)\r\n const trigger = instance.querySelector(this._getTrigger(id))\r\n\r\n trigger.removeEventListener(Events.MOUSEOVER, this._render)\r\n trigger.removeEventListener(Events.FOCUS, this._render)\r\n })\r\n }\r\n\r\n // private\r\n\r\n /**\r\n * Render a tooltip.\r\n * @param {Object} event - The event object\r\n */\r\n _render(event) {\r\n this._activeTrigger = event.target\r\n const tooltipId = this._activeTrigger.getAttribute(Selectors.DATA_TARGET)\r\n this._activeTooltip = document.getElementById(tooltipId)\r\n\r\n // align tooltip to its trigger\r\n // -> if the trigger is on the left or right side, use height\r\n // -> else use width\r\n if (this._isLeftOrRight()) {\r\n this._alignTooltip(\"height\")\r\n } else {\r\n this._alignTooltip(\"width\")\r\n }\r\n\r\n this._showTooltip()\r\n this._listenForClose()\r\n }\r\n\r\n /**\r\n * Close a tooltip.\r\n */\r\n _handleClose() {\r\n this._hideTooltip()\r\n this._listenForOpen()\r\n\r\n this._activeTrigger = null\r\n this._activeTooltip = null\r\n }\r\n\r\n /**\r\n * Add data-visible attribute to currently active tooltip.\r\n */\r\n _showTooltip() {\r\n this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, \"true\")\r\n }\r\n\r\n /**\r\n * Remove data-visible attribute from currently active tooltip.\r\n */\r\n _hideTooltip() {\r\n this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, \"false\")\r\n }\r\n\r\n /**\r\n * Stop listening for render events, and start listening to close events.\r\n */\r\n _listenForClose() {\r\n this._activeTrigger.removeEventListener(Events.MOUSEOVER, this._render)\r\n this._activeTrigger.removeEventListener(Events.FOCUS, this._render)\r\n this._activeTrigger.addEventListener(Events.MOUSEOUT, this._handleClose)\r\n this._activeTrigger.addEventListener(Events.BLUR, this._handleClose)\r\n document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\r\n\r\n if (iOSMobile) {\r\n document.body.style.cursor = \"pointer\"\r\n }\r\n }\r\n\r\n /**\r\n * Close a tooltip with the escape key.\r\n * @param {Object} event - The event object\r\n */\r\n _handleEscapeKeyPress(event) {\r\n if (event.which === KeyCodes.ESCAPE) {\r\n this._handleClose()\r\n }\r\n }\r\n\r\n /**\r\n * Stop listening to close events, start listening for render events.\r\n */\r\n _listenForOpen() {\r\n this._activeTrigger.removeEventListener(Events.MOUSEOUT, this._handleClose)\r\n this._activeTrigger.removeEventListener(Events.BLUR, this._handleClose)\r\n this._activeTrigger.addEventListener(Events.MOUSEOVER, this._render)\r\n this._activeTrigger.addEventListener(Events.FOCUS, this._render)\r\n document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress)\r\n\r\n if (iOSMobile) {\r\n document.body.style.cursor = \"auto\"\r\n }\r\n }\r\n\r\n /**\r\n * Aligns a tooltip vertically or horizontally.\r\n * @param {String} property - String specifying \"height\" or \"width\"\r\n */\r\n _alignTooltip(property) {\r\n const triggerLength = this._getComputedLength(this._activeTrigger, property)\r\n const tooltipLength = this._getComputedLength(this._activeTooltip, property)\r\n const triggerIsLongest = triggerLength > tooltipLength\r\n\r\n const offset = triggerIsLongest\r\n ? (triggerLength - tooltipLength) / 2\r\n : (tooltipLength - triggerLength) / -2\r\n\r\n if (property === \"height\") {\r\n this._activeTooltip.style.top = `${offset}px`\r\n } else {\r\n this._activeTooltip.style.left = `${offset}px`\r\n }\r\n }\r\n\r\n /**\r\n * Setup a tooltip and trigger with appropriate event listeners and attributes.\r\n * @param {Object} instance - A tooltip instance\r\n */\r\n _setupTooltip(instance) {\r\n const id = instance.getAttribute(Selectors.DATA_TOOLTIP)\r\n const trigger = instance.querySelector(this._getTrigger(id))\r\n const tooltip = document.getElementById(id)\r\n\r\n if (!id) {\r\n return console.error(Messages.NO_ID_ERROR)\r\n }\r\n\r\n if (!trigger) {\r\n return console.error(Messages.NO_TRIGGER_ERROR(id))\r\n }\r\n\r\n if (!tooltip) {\r\n return console.error(Messages.NO_TOOLTIP_ERROR(id))\r\n }\r\n\r\n trigger.setAttribute(Selectors.ARIA_DESCRIBEDBY, id)\r\n tooltip.setAttribute(Selectors.ROLE, \"tooltip\")\r\n\r\n trigger.addEventListener(Events.MOUSEOVER, this._render)\r\n trigger.addEventListener(Events.FOCUS, this._render)\r\n }\r\n\r\n /**\r\n * Get an attribute selector string.\r\n * @param {String} id - A unique tooltip id\r\n * @return {String}\r\n */\r\n _getTrigger(id) {\r\n return `[${Selectors.DATA_TARGET}=\"${id}\"]`\r\n }\r\n\r\n /**\r\n * Render a tooltip.\r\n * @param {Object} element - A tooltip element\r\n * @param {String} property - The \"height\" or \"width\" property.\r\n * @return {Number}\r\n */\r\n _getComputedLength(element, property) {\r\n return parseInt(window.getComputedStyle(element)[property].slice(0, -2))\r\n }\r\n\r\n /**\r\n * Determine if a tooltip is rendering on the left or right.\r\n * @return {Boolean}\r\n */\r\n _isLeftOrRight() {\r\n const classes = this._activeTooltip.classList\r\n return (\r\n classes.contains(Selectors.DROP_LEFT_CLASS) || classes.contains(Selectors.DROP_RIGHT_CLASS)\r\n )\r\n }\r\n}\r\n"],"file":"tooltip.js"} \ No newline at end of file diff --git a/js/dist/utils.js b/js/dist/utils.js index 0369b31b..36c1eb18 100644 --- a/js/dist/utils.js +++ b/js/dist/utils.js @@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = exports.getFocusableElements = void 0; +exports.default = exports.iOSMobile = exports.getFocusableElements = exports.nodeListToArray = void 0; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } @@ -27,14 +27,22 @@ var Events = { CLICK: "click" }; +var nodeListToArray = function nodeListToArray(nodeList) { + return Array.apply(null, document.querySelectorAll(nodeList)); +}; + +exports.nodeListToArray = nodeListToArray; + var getFocusableElements = function getFocusableElements(container) { var focusables = Selectors.FOCUSABLE_TAGS.map(function (element) { return "".concat(container, " ").concat(element).concat(Selectors.NOT_VISUALLY_HIDDEN); }).join(", "); - return document.querySelectorAll(focusables); + return nodeListToArray(focusables); }; exports.getFocusableElements = getFocusableElements; +var iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent); +exports.iOSMobile = iOSMobile; var Utils = function () { function Utils() { @@ -96,17 +104,10 @@ var Utils = function () { }, { key: "_listenForKeyboard", value: function _listenForKeyboard(event) { - var tabKey = event.which === KeyCodes.TAB; - var shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey; - var arrowUp = event.which === KeyCodes.ARROW_UP; - var arrowDown = event.which === KeyCodes.ARROW_DOWN; - - if (tabKey || shiftKey || arrowUp || arrowDown) { - document.body.classList.add(Selectors.KEYBOARD_CLASS); - document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard); - document.addEventListener(Events.CLICK, this._listenForClick); - this._listeningForKeydown = false; - } + document.body.classList.add(Selectors.KEYBOARD_CLASS); + document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard); + document.addEventListener(Events.CLICK, this._listenForClick); + this._listeningForKeydown = false; } }, { key: "_listenForClick", diff --git a/js/dist/utils.js.map b/js/dist/utils.js.map index eb855905..351b46e5 100644 --- a/js/dist/utils.js.map +++ b/js/dist/utils.js.map @@ -1 +1 @@ -{"version":3,"sources":["../src/utils.js"],"names":["KeyCodes","SHIFT","TAB","ARROW_UP","ARROW_DOWN","Selectors","NOT_VISUALLY_HIDDEN","FOCUSABLE_TAGS","KEYBOARD_CLASS","Events","KEYDOWN","CLICK","getFocusableElements","container","focusables","map","element","join","document","querySelectorAll","Utils","_listenForKeyboard","bind","_listenForClick","_handleFocusTrapWithTab","_handleFocusTrapWithArrows","_focusContainerSelector","_focusableChildren","_focusableFirstChild","_focusableLastChild","_listeningForKeydown","_trapFocusWithArrows","options","length","useArrows","addEventListener","removeEventListener","event","tabKey","which","shiftKey","arrowUp","arrowDown","body","classList","add","remove","containerElement","querySelector","containerActive","activeElement","firstActive","lastActive","hasShift","noShift","preventDefault","focus","_focusNextChild","_focusLastChild","i"],"mappings":"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","sourcesContent":["const KeyCodes = {\n SHIFT: 16,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n NOT_VISUALLY_HIDDEN: \":not(.is-visually-hidden)\",\n FOCUSABLE_TAGS: [\"a\", \"button\", \"input\", \"object\", \"select\", \"textarea\", \"[tabindex]\"],\n KEYBOARD_CLASS: \"using-keyboard\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {String}\n */\nexport const getFocusableElements = container => {\n const focusables = Selectors.FOCUSABLE_TAGS.map(\n element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}`\n ).join(\", \")\n\n return document.querySelectorAll(focusables)\n}\n\n/**\n * Utility methods for DOM traversal and focus trapping.\n * @module Utils\n */\nexport default class Utils {\n constructor() {\n // events\n this._listenForKeyboard = this._listenForKeyboard.bind(this)\n this._listenForClick = this._listenForClick.bind(this)\n this._handleFocusTrapWithTab = this._handleFocusTrapWithTab.bind(this)\n this._handleFocusTrapWithArrows = this._handleFocusTrapWithArrows.bind(this)\n\n this._focusContainerSelector = \"\"\n this._focusableChildren = []\n this._focusableFirstChild = {}\n this._focusableLastChild = {}\n this._listeningForKeydown = false\n this._trapFocusWithArrows = false\n }\n\n // public\n\n /**\n * Listens to the first and last elements matched from this.getFocusableElements()\n * @param {String} container - The container's class, attribute, etc.\n * @param {Object} options - Optional has hof options.\n */\n captureFocus(container, options) {\n this._focusContainerSelector = container\n this._focusableChildren = getFocusableElements(this._focusContainerSelector)\n this._focusableFirstChild = this._focusableChildren[0]\n this._focusableLastChild = this._focusableChildren[this._focusableChildren.length - 1]\n\n if (options) {\n if (options.useArrows) {\n this._trapFocusWithArrows = options.useArrows || this._trapFocusWithArrows\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n }\n } else {\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Stop trapping focus set in this.captureFocus()\n */\n releaseFocus() {\n if (this._trapFocusWithArrows) {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n this._trapFocusWithArrows = false\n } else {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Begin listening to _listenForKeyboard()\n */\n enableFocusOutline() {\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n }\n\n /**\n * Completely disable focus outline utility.\n */\n disableFocusOutline() {\n if (this._listeningForKeydown) {\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n } else {\n document.removeEventListener(Events.CLICK, this._listenForClick)\n }\n }\n\n // private\n\n /**\n * When a key is pressed, detect if it's tab or shift keys and enable\n * focus outlines on currently focused element(s). Then, remove keydown listener\n * and add click listener on _listenForClick().\n * @param {Object} event - Event (keypress).\n */\n _listenForKeyboard(event) {\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (tabKey || shiftKey || arrowUp || arrowDown) {\n document.body.classList.add(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n document.addEventListener(Events.CLICK, this._listenForClick)\n this._listeningForKeydown = false\n }\n }\n\n /**\n * On click, remove Selectors.KEYBOARD_CLASS and re-add keydown listener.\n * @param {Object} event - Event (keypress).\n */\n _listenForClick(event) {\n document.body.classList.remove(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.CLICK, this._listenForClick)\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n this._listeningForKeydown = true\n }\n\n /**\n * Handles focus on first or last child in a container, using tab and tab+shift keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithTab(event) {\n const containerElement = document.querySelector(this._focusContainerSelector)\n const containerActive = document.activeElement === containerElement\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const hasShift = shiftKey && tabKey\n const noShift = !shiftKey && tabKey\n\n if (shiftKey && tabKey && (firstActive || containerActive)) {\n event.preventDefault()\n this._focusableLastChild.focus()\n } else if (!shiftKey && tabKey && lastActive) {\n event.preventDefault()\n this._focusableFirstChild.focus()\n }\n }\n\n /**\n * Handles focus on the first, last, next, or previous child in a container, using up and down arrow keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithArrows(event) {\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (arrowUp || arrowDown) {\n event.preventDefault()\n\n if (firstActive && arrowUp) {\n this._focusableLastChild.focus()\n } else if (lastActive && arrowDown) {\n this._focusableFirstChild.focus()\n } else if (arrowDown) {\n this._focusNextChild()\n } else if (arrowUp) {\n this._focusLastChild()\n }\n }\n }\n\n /**\n * Focus the next child in this._focusableChildren.\n */\n _focusNextChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i + 1].focus()\n break\n }\n }\n }\n\n /**\n * Focus the previous child in this._focusableChildren.\n */\n _focusLastChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i - 1].focus()\n break\n }\n }\n }\n}\n"],"file":"utils.js"} \ No newline at end of file +{"version":3,"sources":["../src/utils.js"],"names":["KeyCodes","SHIFT","TAB","ARROW_UP","ARROW_DOWN","Selectors","NOT_VISUALLY_HIDDEN","FOCUSABLE_TAGS","KEYBOARD_CLASS","Events","KEYDOWN","CLICK","nodeListToArray","nodeList","Array","apply","document","querySelectorAll","getFocusableElements","container","focusables","map","element","join","iOSMobile","test","navigator","userAgent","Utils","_listenForKeyboard","bind","_listenForClick","_handleFocusTrapWithTab","_handleFocusTrapWithArrows","_focusContainerSelector","_focusableChildren","_focusableFirstChild","_focusableLastChild","_listeningForKeydown","_trapFocusWithArrows","options","length","useArrows","addEventListener","removeEventListener","event","body","classList","add","remove","containerElement","querySelector","containerActive","activeElement","firstActive","lastActive","tabKey","which","shiftKey","hasShift","noShift","preventDefault","focus","arrowUp","arrowDown","_focusNextChild","_focusLastChild","i"],"mappings":"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","sourcesContent":["const KeyCodes = {\n SHIFT: 16,\n TAB: 9,\n ARROW_UP: 38,\n ARROW_DOWN: 40,\n}\n\nconst Selectors = {\n NOT_VISUALLY_HIDDEN: \":not(.is-visually-hidden)\",\n FOCUSABLE_TAGS: [\"a\", \"button\", \"input\", \"object\", \"select\", \"textarea\", \"[tabindex]\"],\n KEYBOARD_CLASS: \"using-keyboard\",\n}\n\nconst Events = {\n KEYDOWN: \"keydown\",\n CLICK: \"click\",\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {String}\n */\nexport const nodeListToArray = nodeList => {\n return Array.apply(null, document.querySelectorAll(nodeList))\n}\n\n/**\n * Creates a string of element selector patterns using common elements.\n * @param {String} container - The enclosing container's class, attribute, etc.\n * @return {Array}\n */\nexport const getFocusableElements = container => {\n const focusables = Selectors.FOCUSABLE_TAGS.map(\n element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}`\n ).join(\", \")\n\n return nodeListToArray(focusables)\n}\n\n/**\n * Detects if the browser being used is on an iphone, ipad, or ipod.\n * @return {Boolean}\n */\nexport const iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent)\n\n/**\n * Utility methods for DOM traversal and focus trapping.\n * @module Utils\n */\nexport default class Utils {\n constructor() {\n // events\n this._listenForKeyboard = this._listenForKeyboard.bind(this)\n this._listenForClick = this._listenForClick.bind(this)\n this._handleFocusTrapWithTab = this._handleFocusTrapWithTab.bind(this)\n this._handleFocusTrapWithArrows = this._handleFocusTrapWithArrows.bind(this)\n\n this._focusContainerSelector = \"\"\n this._focusableChildren = []\n this._focusableFirstChild = {}\n this._focusableLastChild = {}\n this._listeningForKeydown = false\n this._trapFocusWithArrows = false\n }\n\n // public\n\n /**\n * Listens to the first and last elements matched from this.getFocusableElements()\n * @param {String} container - The container's class, attribute, etc.\n * @param {Object} options - Optional has hof options.\n */\n captureFocus(container, options) {\n this._focusContainerSelector = container\n this._focusableChildren = getFocusableElements(this._focusContainerSelector)\n this._focusableFirstChild = this._focusableChildren[0]\n this._focusableLastChild = this._focusableChildren[this._focusableChildren.length - 1]\n\n if (options) {\n if (options.useArrows) {\n this._trapFocusWithArrows = options.useArrows || this._trapFocusWithArrows\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n }\n } else {\n document.addEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Stop trapping focus set in this.captureFocus()\n */\n releaseFocus() {\n if (this._trapFocusWithArrows) {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithArrows)\n this._trapFocusWithArrows = false\n } else {\n document.removeEventListener(Events.KEYDOWN, this._handleFocusTrapWithTab)\n }\n }\n\n /**\n * Begin listening to _listenForKeyboard()\n */\n enableFocusOutline() {\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n }\n\n /**\n * Completely disable focus outline utility.\n */\n disableFocusOutline() {\n if (this._listeningForKeydown) {\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n } else {\n document.removeEventListener(Events.CLICK, this._listenForClick)\n }\n }\n\n // private\n\n /**\n * When a key is pressed, detect if it's tab or shift keys and enable\n * focus outlines on currently focused element(s). Then, remove keydown listener\n * and add click listener on _listenForClick().\n * @param {Object} event - Event (keypress).\n */\n _listenForKeyboard(event) {\n document.body.classList.add(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard)\n document.addEventListener(Events.CLICK, this._listenForClick)\n this._listeningForKeydown = false\n }\n\n /**\n * On click, remove Selectors.KEYBOARD_CLASS and re-add keydown listener.\n * @param {Object} event - Event (keypress).\n */\n _listenForClick(event) {\n document.body.classList.remove(Selectors.KEYBOARD_CLASS)\n document.removeEventListener(Events.CLICK, this._listenForClick)\n document.addEventListener(Events.KEYDOWN, this._listenForKeyboard)\n this._listeningForKeydown = true\n }\n\n /**\n * Handles focus on first or last child in a container, using tab and tab+shift keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithTab(event) {\n const containerElement = document.querySelector(this._focusContainerSelector)\n const containerActive = document.activeElement === containerElement\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const tabKey = event.which === KeyCodes.TAB\n const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey\n const hasShift = shiftKey && tabKey\n const noShift = !shiftKey && tabKey\n\n if (shiftKey && tabKey && (firstActive || containerActive)) {\n event.preventDefault()\n this._focusableLastChild.focus()\n } else if (!shiftKey && tabKey && lastActive) {\n event.preventDefault()\n this._focusableFirstChild.focus()\n }\n }\n\n /**\n * Handles focus on the first, last, next, or previous child in a container, using up and down arrow keys.\n * @param {Object} event - Event (keypress)\n */\n _handleFocusTrapWithArrows(event) {\n const firstActive = document.activeElement === this._focusableFirstChild\n const lastActive = document.activeElement === this._focusableLastChild\n const arrowUp = event.which === KeyCodes.ARROW_UP\n const arrowDown = event.which === KeyCodes.ARROW_DOWN\n\n if (arrowUp || arrowDown) {\n event.preventDefault()\n\n if (firstActive && arrowUp) {\n this._focusableLastChild.focus()\n } else if (lastActive && arrowDown) {\n this._focusableFirstChild.focus()\n } else if (arrowDown) {\n this._focusNextChild()\n } else if (arrowUp) {\n this._focusLastChild()\n }\n }\n }\n\n /**\n * Focus the next child in this._focusableChildren.\n */\n _focusNextChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i + 1].focus()\n break\n }\n }\n }\n\n /**\n * Focus the previous child in this._focusableChildren.\n */\n _focusLastChild() {\n for (let i = 0; i < this._focusableChildren.length; i++) {\n if (this._focusableChildren[i] === document.activeElement) {\n this._focusableChildren[i - 1].focus()\n break\n }\n }\n }\n}\n"],"file":"utils.js"} \ No newline at end of file diff --git a/js/src/components/accordion.js b/js/src/accordion.js similarity index 90% rename from js/src/components/accordion.js rename to js/src/accordion.js index 50c98dbd..aacb2270 100644 --- a/js/src/components/accordion.js +++ b/js/src/accordion.js @@ -1,4 +1,4 @@ -import Utils, { getFocusableElements } from "../utils" +import Utils, { getFocusableElements, nodeListToArray } from "./utils" const Selectors = { // unique @@ -68,14 +68,13 @@ export default class Accordion extends Utils { // public /** - * Sets up accordion components and listens to buttons for events. - * Begin listening to [data-accordion-button] elements + * Begin listening to accordions. */ start() { const accordionButtonSelector = this._getPossibleAccordionButtonAttrs( `[${Selectors.DATA_ACCORDION}]` ) - this._accordionButtons = document.querySelectorAll(accordionButtonSelector) + this._accordionButtons = nodeListToArray(accordionButtonSelector) if (this._accordionButtons.length) { this._accordionButtons.forEach(button => { @@ -86,7 +85,7 @@ export default class Accordion extends Utils { } /** - * Stop listening to accordion button events. + * Stop listening to accordions. */ stop() { this._accordionButtons.forEach(button => { @@ -108,19 +107,19 @@ export default class Accordion extends Utils { this._activeRowAttr = this._getAccordionRowAttr(this._activeAccordionRowId) this._activeRow = document.querySelector(this._activeRowAttr) + this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT) - if (!this._activeButton.getAttribute(Selectors.DATA_PARENT)) { + if (!this._activeContainerId) { return console.error(Messages.NO_PARENT_ERROR(this._activeAccordionRowId)) } - this._activeContainerId = this._activeButton.getAttribute(Selectors.DATA_PARENT) this._activeContainerAttr = `[${Selectors.DATA_ACCORDION}='${this._activeContainerId}']` + this._activeContainer = document.querySelector(this._activeContainerAttr) - if (!document.querySelector(this._activeContainerAttr)) { + if (!this._activeContainer) { return console.error(Messages.NO_ACCORDION_ERROR(this._activeContainerId)) } - this._activeContainer = document.querySelector(this._activeContainerAttr) this._activeContent = document.getElementById(this._activeAccordionRowId) const accordionButtonState = this._activeRow.getAttribute(Selectors.DATA_VISIBLE) @@ -130,6 +129,9 @@ export default class Accordion extends Utils { this._closeAllIfToggleable() this._toggleSelectedAccordion() + + this._activeContainerId = null + this._activeContainer = null } /** @@ -138,21 +140,21 @@ export default class Accordion extends Utils { */ _setupAccordion(button) { const buttonId = button.getAttribute(Selectors.DATA_TARGET) + const buttonContent = document.getElementById(buttonId) - if (!document.getElementById(buttonId)) { + if (!buttonContent) { return console.error(Messages.NO_CONTENT_ERROR(buttonId)) } - const buttonContent = document.getElementById(buttonId) const accordionRowAttr = this._getAccordionRowAttr(buttonId) + const accordionRow = document.querySelector(accordionRowAttr) - if (!document.querySelector(accordionRowAttr)) { + if (!accordionRow) { return console.error(Messages.NO_ROW_ERROR(buttonId)) } - const accordionRow = document.querySelector(accordionRowAttr) const buttonHeaderAttr = this._getPossibleAccordionHeaderAttrs(accordionRowAttr) - const buttonHeader = document.querySelectorAll(buttonHeaderAttr)[0] + const buttonHeader = nodeListToArray(buttonHeaderAttr)[0] if (!buttonHeader || !buttonHeader.id) { console.error(Messages.NO_HEADER_ID_ERROR(buttonId)) @@ -163,11 +165,12 @@ export default class Accordion extends Utils { button.setAttribute(Selectors.ARIA_CONTROLS, buttonId) buttonContent.setAttribute(Selectors.ARIA_LABELLEDBY, buttonHeader.id) - if (!accordionRow.getAttribute(Selectors.DATA_VISIBLE)) { + const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE) + + if (!contentShouldExpand) { return console.error(Messages.NO_VISIBLE_ERROR(buttonId)) } - const contentShouldExpand = accordionRow.getAttribute(Selectors.DATA_VISIBLE) if (contentShouldExpand === "true") { buttonContent.style.maxHeight = `${buttonContent.scrollHeight}px` button.setAttribute(Selectors.ARIA_EXPANDED, "true") @@ -223,13 +226,11 @@ export default class Accordion extends Utils { if (this._activeContainer.hasAttribute(Selectors.DATA_TOGGLE_MULTIPLE)) return const allContentAttr = `${this._activeContainerAttr} [${Selectors.ARIA_HIDDEN}]` - const allRows = document.querySelectorAll( - `${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]` - ) - const allContent = document.querySelectorAll(allContentAttr) + const allRows = nodeListToArray(`${this._activeContainerAttr} [${Selectors.DATA_VISIBLE}]`) + const allContent = nodeListToArray(allContentAttr) const accordionButtonSelector = this._getPossibleAccordionButtonAttrs(this._activeContainerAttr) - const allButtons = document.querySelectorAll(accordionButtonSelector) + const allButtons = nodeListToArray(accordionButtonSelector) allContent.forEach(content => { if (content !== this._activeContent) content.style.maxHeight = null diff --git a/js/src/components/dropdown.js b/js/src/dropdown.js similarity index 87% rename from js/src/components/dropdown.js rename to js/src/dropdown.js index 4a21f46c..6365146d 100644 --- a/js/src/components/dropdown.js +++ b/js/src/dropdown.js @@ -1,4 +1,4 @@ -import Utils from "../utils" +import Utils, { iOSMobile, nodeListToArray } from "./utils" const KeyCodes = { TAB: 9, @@ -43,9 +43,6 @@ const Messages = { export default class Dropdown extends Utils { constructor() { super() - - this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent) - // events this._render = this._render.bind(this) this._handleFirstTabClose = this._handleFirstTabClose.bind(this) @@ -77,12 +74,11 @@ export default class Dropdown extends Utils { // public /** - * Find and set up dropdown buttons and menus. - * Begin listening to dropdowns for events. + * Begin listening to dropdowns. */ start() { - this._dropdowns = document.querySelectorAll(`${this._dropdownContainerAttr}`) - this._dropdownButtons = document.querySelectorAll( + this._dropdowns = nodeListToArray(`${this._dropdownContainerAttr}`) + this._dropdownButtons = nodeListToArray( `${this._dropdownContainerAttr} > ${this._dropdownTargetAttr}` ) @@ -97,7 +93,7 @@ export default class Dropdown extends Utils { } /** - * Stop listening for dropdown events. + * Stop listening to dropdowns. */ stop() { this._dropdownButtons.forEach(button => { @@ -125,22 +121,20 @@ export default class Dropdown extends Utils { // dropdown button / trigger this._activeDropdownButton = event.target + this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT) - if (!this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT)) { + if (!this._activeDropdownId) { return console.error(Messages.NO_PARENT_ERROR) } - this._activeDropdownId = this._activeDropdownButton.getAttribute(Selectors.DATA_PARENT) - // dropdown container this._activeDropdownAttr = `[${Selectors.DATA_DROPDOWN}="${this._activeDropdownId}"]` + this._activeDropdown = document.querySelector(this._activeDropdownAttr) - if (!document.querySelector(this._activeDropdownAttr)) { + if (!this._activeDropdown) { return console.error(Messages.NO_DROPDOWN_ERROR(this._activeDropdownAttr)) } - this._activeDropdown = document.querySelector(this._activeDropdownAttr) - // dropdown menu this._activeDropdownMenuId = this._activeDropdownButton.getAttribute(Selectors.DATA_TARGET) this._activeDropdownMenu = document.getElementById(this._activeDropdownMenuId) @@ -157,7 +151,7 @@ export default class Dropdown extends Utils { document.addEventListener(Events.CLICK, this._handleOffMenuClick) // make click events work on mobile iOS - if (this._iosMobile) { + if (iOSMobile) { document.body.style.cursor = "pointer" } @@ -241,7 +235,7 @@ export default class Dropdown extends Utils { document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress) - if (this._iosMobile) { + if (iOSMobile) { document.body.style.cursor = "auto" } @@ -252,6 +246,8 @@ export default class Dropdown extends Utils { } this._activeDropdownButton = null + this._activeDropdownId = null + this._activeDropdown = null } /** @@ -289,7 +285,7 @@ export default class Dropdown extends Utils { * @return {String} - Selector for possible menu item links. */ _getDropdownLinks(attr) { - return document.querySelectorAll(`${attr} > ul > li > a, ${attr} > ul > li > button`) + return nodeListToArray(`${attr} > ul > li > a, ${attr} > ul > li > button`) } /** @@ -298,25 +294,37 @@ export default class Dropdown extends Utils { */ _setupDropdown(dropdown) { const dropdownId = dropdown.getAttribute(Selectors.DATA_DROPDOWN) - const dropdownIdAttr = `[${Selectors.DATA_DROPDOWN}="${dropdownId}"]` - const dropdownMenuItemsAttr = `${dropdownIdAttr} > ul > li` - if (!document.querySelector(`${dropdownIdAttr} > ul`)) { - return console.error(Messages.NO_MENU_ERROR(dropdownIdAttr)) + // no id error + + const dropdownAttr = `[${Selectors.DATA_DROPDOWN}="${dropdownId}"]` + const dropdownMenuItemsAttr = `${dropdownAttr} > ul > li` + const dropdownMenu = document.querySelector(`${dropdownAttr} > ul`) + + // no ul error + + if (!dropdownMenu) { + return console.error(Messages.NO_MENU_ERROR(dropdownAttr)) } - const dropdownMenu = document.querySelector(`${dropdownIdAttr} > ul`) - const dropdownButton = document.querySelector(`${dropdownIdAttr} > ${this._dropdownTargetAttr}`) + const dropdownButton = document.querySelector(`${dropdownAttr} > ${this._dropdownTargetAttr}`) dropdownButton.setAttribute(Selectors.ARIA_CONTROLS, dropdownMenu.id) dropdownButton.setAttribute(Selectors.ARIA_HASPOPUP, "true") dropdownButton.setAttribute(Selectors.ARIA_EXPANDED, "false") dropdownMenu.setAttribute(Selectors.ARIA_LABELLEDBY, dropdownButton.id) - const dropdownMenuItems = document.querySelectorAll(dropdownMenuItemsAttr) - dropdownMenuItems.forEach(item => item.setAttribute(Selectors.ROLE, "none")) + const dropdownMenuListItems = nodeListToArray(dropdownMenuItemsAttr) + + // no menu items error + + dropdownMenuListItems.forEach(item => item.setAttribute(Selectors.ROLE, "none")) + + const dropdownMenuButtons = this._getDropdownLinks(dropdownAttr) + + // no menu buttons error - this._getDropdownLinks(dropdownIdAttr).forEach(link => { + dropdownMenuButtons.forEach(link => { link.setAttribute(Selectors.ROLE, "menuitem") link.setAttribute(Selectors.TABINDEX, "-1") }) diff --git a/js/src/index.bundle.js b/js/src/index.bundle.js index 0052c927..b7fa3fb9 100644 --- a/js/src/index.bundle.js +++ b/js/src/index.bundle.js @@ -1,6 +1,4 @@ import Undernet from "./index" -export default Undernet -export { Modals, Accordions, Dropdowns, Utils } from "./index" - window.Undernet = Undernet +export { default as Undernet, Modals, Accordions, Dropdowns, Tooltips, Utils } from "./index" diff --git a/js/src/index.js b/js/src/index.js index 3bd6a670..bda80ab0 100644 --- a/js/src/index.js +++ b/js/src/index.js @@ -1,11 +1,13 @@ -import _Modals from "./components/modal" -import _Accordion from "./components/accordion" -import _Dropdown from "./components/dropdown" +import _Accordion from "./accordion" +import _Dropdown from "./dropdown" +import _Modals from "./modal" +import _Tooltips from "./tooltip" import _Utils from "./utils" -export const Modals = new _Modals() export const Accordions = new _Accordion() export const Dropdowns = new _Dropdown() +export const Modals = new _Modals() +export const Tooltips = new _Tooltips() export const Utils = new _Utils() const Undernet = { @@ -13,6 +15,7 @@ const Undernet = { Modals, Accordions, Dropdowns, + Tooltips, // Utils Utils, @@ -23,6 +26,7 @@ Undernet.start = () => { Undernet.Modals.start() Undernet.Accordions.start() Undernet.Dropdowns.start() + Undernet.Tooltips.start() // Utils Undernet.Utils.enableFocusOutline() diff --git a/js/src/components/modal.js b/js/src/modal.js similarity index 67% rename from js/src/components/modal.js rename to js/src/modal.js index 534f4601..3e45e316 100644 --- a/js/src/components/modal.js +++ b/js/src/modal.js @@ -1,4 +1,4 @@ -import Utils, { getFocusableElements } from "../utils" +import Utils, { iOSMobile, getFocusableElements, nodeListToArray } from "./utils" const KeyCodes = { ESCAPE: 27, @@ -7,12 +7,10 @@ const KeyCodes = { const Selectors = { // unique DATA_MODAL: "data-modal", - DATA_MODAL_ID: "data-modal-id", DATA_MODAL_BUTTON: "data-modal-button", // common DATA_VISIBLE: "data-visible", DATA_CLOSE: "data-close", - DATA_TARGET: "data-target", DATA_PARENT: "data-parent", // accessibility ARIA_HIDDEN: "aria-hidden", @@ -30,10 +28,12 @@ const Events = { } const Messages = { - NO_TARGET_ERROR: `Could not find [data-target] attribute associated with a [data-modal-button] element.`, - NO_PARENT_ERROR: `Could not find [data-parent] attribute associated with a [data-modal] element.`, - NO_ID_ERROR: id => - `Could not find [data-modal-id='${id}'] associated with a [data-modal] element.`, + NO_BUTTON_ID_ERROR: + "Could not find an id on your [data-modal-button] element. Modal can't be opened.", + NO_MODAL_ID_ERROR: + "Could not detect an id on your [data-modal] element. Please add a value matching a button's [data-modal-button] attribute.", + NO_MODAL_ERROR: id => + `Could not find a [data-parent='${id}'] attribute within your [data-modal='${id}'] element.`, } /** @@ -45,8 +45,6 @@ export default class Modal extends Utils { constructor() { super() - this._iosMobile = /(iphone|ipod)/i.test(navigator.userAgent) - // events this._render = this._render.bind(this) this._handleClose = this._handleClose.bind(this) @@ -73,20 +71,19 @@ export default class Modal extends Utils { // public /** - * Add accessible attributes to modal containers - * Begin listening to elements with [data-modal-button] + * Begin listening to modals. */ start() { - this._modals = document.querySelectorAll(this._modalContainerAttr) - this._modalButtons = document.querySelectorAll(`[${Selectors.DATA_MODAL_BUTTON}]`) + this._modals = nodeListToArray(this._modalContainerAttr) + this._modalButtons = nodeListToArray(`[${Selectors.DATA_MODAL_BUTTON}]`) getFocusableElements(this._modalContainerAttr).forEach(element => { element.setAttribute(Selectors.TABINDEX, "-1") }) if (this._modals.length) { - this._modals.forEach(modal => { - this._setupModal(modal) + this._modals.forEach(instance => { + this._setupModal(instance) }) } @@ -98,7 +95,7 @@ export default class Modal extends Utils { } /** - * Stop listening to modal buttons + * Stop listening to modals */ stop() { this._modalButtons.forEach(button => { @@ -115,46 +112,36 @@ export default class Modal extends Utils { _render(event) { event.preventDefault() this._activeModalButton = event.target + this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_MODAL_BUTTON) - if (!this._activeModalButton.getAttribute(Selectors.DATA_TARGET)) { - return console.error(Messages.NO_TARGET_ERROR) - } - - this._activeModalId = this._activeModalButton.getAttribute(Selectors.DATA_TARGET) - this._activeModalOverlayAttr = `[${Selectors.DATA_MODAL_ID}="${this._activeModalId}"]` - - if (!document.querySelector(this._activeModalOverlayAttr)) { - return console.error(Messages.NO_ID_ERROR(this._activeModalId)) + if (!this._activeModalId) { + return console.error(Messages.NO_BUTTON_ID_ERROR) } - this._activeModalOverlay = document.querySelector(this._activeModalOverlayAttr) - - this._activeModalSelector = `${this._activeModalOverlayAttr} ${this._modalContainerAttr}` - this._activeModal = document.querySelector(this._activeModalSelector) - this._activeModalCloseButtons = document.querySelectorAll( - `${this._activeModalOverlayAttr} [${Selectors.DATA_CLOSE}]` + this._activeModalOverlay = document.querySelector( + `[${Selectors.DATA_MODAL}="${this._activeModalId}"]` + ) + this._activeModalSelector = `[${Selectors.DATA_PARENT}='${this._activeModalId}']` + this._activeModal = this._activeModalOverlay.querySelector(this._activeModalSelector) + this._activeModalCloseButtons = nodeListToArray( + `${this._activeModalSelector} [${Selectors.DATA_CLOSE}]` ) - // allow focusable elements to be focused getFocusableElements(this._activeModalSelector).forEach(element => { element.setAttribute(Selectors.TABINDEX, "0") }) - // capture focus, stop scrolling, and toggle attributes for visibility this._handleScrollStop() this.captureFocus(this._activeModalSelector) this._activeModalOverlay.setAttribute(Selectors.ARIA_HIDDEN, "false") this._activeModalOverlay.setAttribute(Selectors.DATA_VISIBLE, "true") - // focus the modal this._activeModal.setAttribute(Selectors.TABINDEX, "-1") this._activeModal.focus() - // offset slight scroll caused by this._activeModal.focus() this._activeModalOverlay.scrollTop = 0 - // on ios devices, let the modal close on overlay click - if (this._iosMobile) { + if (iOSMobile) { this._activeModalOverlay.style.cursor = "pointer" } @@ -166,21 +153,25 @@ export default class Modal extends Utils { }) } - _setupModal(modal) { - let modalId - if (!modal.getAttribute(Selectors.DATA_PARENT)) { - return console.error(Messages.NO_PARENT_ERROR) - } else { - modalId = modal.getAttribute(Selectors.DATA_PARENT) + /** + * Setup a modal instance. + * @param {Object} instance - The modal element + */ + _setupModal(instance) { + const modalId = instance.getAttribute(Selectors.DATA_MODAL) + + if (!modalId) { + return console.error(Messages.NO_MODAL_ID_ERROR) } - let modalWrapper - if (!document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`)) { - return console.error(Messages.NO_ID_ERROR(modalId)) - } else { - modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL_ID}='${modalId}']`) + const modal = instance.querySelector(`[${Selectors.DATA_PARENT}='${modalId}']`) + + if (!modal) { + return console.error(Messages.NO_MODAL_ERROR(modalId)) } + const modalWrapper = document.querySelector(`[${Selectors.DATA_MODAL}='${modalId}']`) + modalWrapper.setAttribute(Selectors.ARIA_HIDDEN, "true") modalWrapper.setAttribute(Selectors.DATA_VISIBLE, "false") modal.setAttribute(Selectors.ARIA_MODAL, "true") @@ -204,7 +195,7 @@ export default class Modal extends Utils { element.setAttribute(Selectors.TABINDEX, "-1") }) - if (this._iosMobile) { + if (iOSMobile) { this._activeModalOverlay.style.cursor = "auto" } @@ -214,6 +205,8 @@ export default class Modal extends Utils { this._activeModalCloseButtons.forEach(button => { button.removeEventListener(Events.CLICK, this._handleClose) }) + + this._activeModalId = null } /** @@ -251,7 +244,7 @@ export default class Modal extends Utils { */ _handleScrollRestore() { document.body.classList.remove(Selectors.NO_SCROLL) - document.querySelector("html").classList.remove(Selectors.NO_SCROLL) + document.documentElement.classList.remove(Selectors.NO_SCROLL) } /** @@ -259,6 +252,6 @@ export default class Modal extends Utils { */ _handleScrollStop() { document.body.classList.add(Selectors.NO_SCROLL) - document.querySelector("html").classList.add(Selectors.NO_SCROLL) + document.documentElement.classList.add(Selectors.NO_SCROLL) } } diff --git a/js/src/tooltip.js b/js/src/tooltip.js new file mode 100644 index 00000000..28133a9d --- /dev/null +++ b/js/src/tooltip.js @@ -0,0 +1,243 @@ +import { iOSMobile } from "./utils" + +const KeyCodes = { + ESCAPE: 27, +} + +const Selectors = { + DATA_TOOLTIP: "data-tooltip", + DATA_VISIBLE: "data-visible", + DATA_TARGET: "data-target", + ROLE: "role", + ARIA_DESCRIBEDBY: "aria-describedby", + DROP_LEFT_CLASS: "is-drop-left", + DROP_RIGHT_CLASS: "is-drop-right", +} + +const Events = { + CLICK: "click", + MOUSEOVER: "mouseover", + MOUSEOUT: "mouseout", + FOCUS: "focus", + BLUR: "blur", + KEYDOWN: "keydown", +} + +const Messages = { + NO_ID_ERROR: "Could not find your tooltip's id.", + NO_TRIGGER_ERROR: id => `Could not find a tooltip trigger with id of ${id}.`, + NO_TOOLTIP_ERROR: id => `Could not find a tooltip with id of ${id}.`, +} + +/** + * Tooltip component class. + * @module Tooltip + */ +export default class Tooltip { + constructor() { + // events + this._render = this._render.bind(this) + this._handleClose = this._handleClose.bind(this) + this._handleEscapeKeyPress = this._handleEscapeKeyPress.bind(this) + + // active tooltip + this._activeTrigger = null + this._activeTooltip = null + + // all tooltips + this._allTooltips = [] + } + + // public + + /** + * Begin listening to tooltips. + */ + start() { + this._allTooltips = document.querySelectorAll(`[${Selectors.DATA_TOOLTIP}]`) + + this._allTooltips.forEach(instance => { + this._setupTooltip(instance) + }) + } + + /** + * Stop listening to tooltips. + */ + stop() { + this._allTooltips.forEach(instance => { + const id = instance.getAttribute(Selectors.DATA_TOOLTIP) + const trigger = instance.querySelector(this._getTrigger(id)) + + trigger.removeEventListener(Events.MOUSEOVER, this._render) + trigger.removeEventListener(Events.FOCUS, this._render) + }) + } + + // private + + /** + * Render a tooltip. + * @param {Object} event - The event object + */ + _render(event) { + this._activeTrigger = event.target + const tooltipId = this._activeTrigger.getAttribute(Selectors.DATA_TARGET) + this._activeTooltip = document.getElementById(tooltipId) + + // align tooltip to its trigger + // -> if the trigger is on the left or right side, use height + // -> else use width + if (this._isLeftOrRight()) { + this._alignTooltip("height") + } else { + this._alignTooltip("width") + } + + this._showTooltip() + this._listenForClose() + } + + /** + * Close a tooltip. + */ + _handleClose() { + this._hideTooltip() + this._listenForOpen() + + this._activeTrigger = null + this._activeTooltip = null + } + + /** + * Add data-visible attribute to currently active tooltip. + */ + _showTooltip() { + this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, "true") + } + + /** + * Remove data-visible attribute from currently active tooltip. + */ + _hideTooltip() { + this._activeTooltip.setAttribute(Selectors.DATA_VISIBLE, "false") + } + + /** + * Stop listening for render events, and start listening to close events. + */ + _listenForClose() { + this._activeTrigger.removeEventListener(Events.MOUSEOVER, this._render) + this._activeTrigger.removeEventListener(Events.FOCUS, this._render) + this._activeTrigger.addEventListener(Events.MOUSEOUT, this._handleClose) + this._activeTrigger.addEventListener(Events.BLUR, this._handleClose) + document.addEventListener(Events.KEYDOWN, this._handleEscapeKeyPress) + + if (iOSMobile) { + document.body.style.cursor = "pointer" + } + } + + /** + * Close a tooltip with the escape key. + * @param {Object} event - The event object + */ + _handleEscapeKeyPress(event) { + if (event.which === KeyCodes.ESCAPE) { + this._handleClose() + } + } + + /** + * Stop listening to close events, start listening for render events. + */ + _listenForOpen() { + this._activeTrigger.removeEventListener(Events.MOUSEOUT, this._handleClose) + this._activeTrigger.removeEventListener(Events.BLUR, this._handleClose) + this._activeTrigger.addEventListener(Events.MOUSEOVER, this._render) + this._activeTrigger.addEventListener(Events.FOCUS, this._render) + document.removeEventListener(Events.KEYDOWN, this._handleEscapeKeyPress) + + if (iOSMobile) { + document.body.style.cursor = "auto" + } + } + + /** + * Aligns a tooltip vertically or horizontally. + * @param {String} property - String specifying "height" or "width" + */ + _alignTooltip(property) { + const triggerLength = this._getComputedLength(this._activeTrigger, property) + const tooltipLength = this._getComputedLength(this._activeTooltip, property) + const triggerIsLongest = triggerLength > tooltipLength + + const offset = triggerIsLongest + ? (triggerLength - tooltipLength) / 2 + : (tooltipLength - triggerLength) / -2 + + if (property === "height") { + this._activeTooltip.style.top = `${offset}px` + } else { + this._activeTooltip.style.left = `${offset}px` + } + } + + /** + * Setup a tooltip and trigger with appropriate event listeners and attributes. + * @param {Object} instance - A tooltip instance + */ + _setupTooltip(instance) { + const id = instance.getAttribute(Selectors.DATA_TOOLTIP) + const trigger = instance.querySelector(this._getTrigger(id)) + const tooltip = document.getElementById(id) + + if (!id) { + return console.error(Messages.NO_ID_ERROR) + } + + if (!trigger) { + return console.error(Messages.NO_TRIGGER_ERROR(id)) + } + + if (!tooltip) { + return console.error(Messages.NO_TOOLTIP_ERROR(id)) + } + + trigger.setAttribute(Selectors.ARIA_DESCRIBEDBY, id) + tooltip.setAttribute(Selectors.ROLE, "tooltip") + + trigger.addEventListener(Events.MOUSEOVER, this._render) + trigger.addEventListener(Events.FOCUS, this._render) + } + + /** + * Get an attribute selector string. + * @param {String} id - A unique tooltip id + * @return {String} + */ + _getTrigger(id) { + return `[${Selectors.DATA_TARGET}="${id}"]` + } + + /** + * Render a tooltip. + * @param {Object} element - A tooltip element + * @param {String} property - The "height" or "width" property. + * @return {Number} + */ + _getComputedLength(element, property) { + return parseInt(window.getComputedStyle(element)[property].slice(0, -2)) + } + + /** + * Determine if a tooltip is rendering on the left or right. + * @return {Boolean} + */ + _isLeftOrRight() { + const classes = this._activeTooltip.classList + return ( + classes.contains(Selectors.DROP_LEFT_CLASS) || classes.contains(Selectors.DROP_RIGHT_CLASS) + ) + } +} diff --git a/js/src/utils.js b/js/src/utils.js index 28a55f01..411e01a6 100644 --- a/js/src/utils.js +++ b/js/src/utils.js @@ -21,14 +21,29 @@ const Events = { * @param {String} container - The enclosing container's class, attribute, etc. * @return {String} */ +export const nodeListToArray = nodeList => { + return Array.apply(null, document.querySelectorAll(nodeList)) +} + +/** + * Creates a string of element selector patterns using common elements. + * @param {String} container - The enclosing container's class, attribute, etc. + * @return {Array} + */ export const getFocusableElements = container => { const focusables = Selectors.FOCUSABLE_TAGS.map( element => `${container} ${element}${Selectors.NOT_VISUALLY_HIDDEN}` ).join(", ") - return document.querySelectorAll(focusables) + return nodeListToArray(focusables) } +/** + * Detects if the browser being used is on an iphone, ipad, or ipod. + * @return {Boolean} + */ +export const iOSMobile = /(iphone|ipod|ipad)/i.test(navigator.userAgent) + /** * Utility methods for DOM traversal and focus trapping. * @module Utils @@ -111,17 +126,10 @@ export default class Utils { * @param {Object} event - Event (keypress). */ _listenForKeyboard(event) { - const tabKey = event.which === KeyCodes.TAB - const shiftKey = event.which === KeyCodes.SHIFT || event.shiftKey - const arrowUp = event.which === KeyCodes.ARROW_UP - const arrowDown = event.which === KeyCodes.ARROW_DOWN - - if (tabKey || shiftKey || arrowUp || arrowDown) { - document.body.classList.add(Selectors.KEYBOARD_CLASS) - document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard) - document.addEventListener(Events.CLICK, this._listenForClick) - this._listeningForKeydown = false - } + document.body.classList.add(Selectors.KEYBOARD_CLASS) + document.removeEventListener(Events.KEYDOWN, this._listenForKeyboard) + document.addEventListener(Events.CLICK, this._listenForClick) + this._listeningForKeydown = false } /** diff --git a/js/test/dropdown.spec.js b/js/test/dropdown.spec.js index 6d5575f6..642aa659 100644 --- a/js/test/dropdown.spec.js +++ b/js/test/dropdown.spec.js @@ -9,7 +9,6 @@ const dom = `
  • Item 3
  • -