mirror of
https://github.com/twbs/bootstrap.git
synced 2024-12-10 22:24:19 +01:00
1 line
48 KiB
Plaintext
1 line
48 KiB
Plaintext
{"version":3,"file":"modal.js","sources":["../src/util/index.js","../src/base-component.js","../src/modal.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\nconst TRANSITION_END = 'transitionend'\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nconst toType = obj => {\n if (obj === null || obj === undefined) {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n do {\n prefix += Math.floor(Math.random() * MAX_UID)\n } while (document.getElementById(prefix))\n\n return prefix\n}\n\nconst getSelector = element => {\n let selector = element.getAttribute('data-bs-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : null\n }\n\n return selector\n}\n\nconst getSelectorFromElement = element => {\n const selector = getSelector(element)\n\n if (selector) {\n return document.querySelector(selector) ? selector : null\n }\n\n return null\n}\n\nconst getElementFromSelector = element => {\n const selector = getSelector(element)\n\n return selector ? document.querySelector(selector) : null\n}\n\nconst getTransitionDurationFromElement = element => {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let { transitionDuration, transitionDelay } = window.getComputedStyle(element)\n\n const floatTransitionDuration = Number.parseFloat(transitionDuration)\n const floatTransitionDelay = Number.parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (Number.parseFloat(transitionDuration) + Number.parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n element.dispatchEvent(new Event(TRANSITION_END))\n}\n\nconst isElement = obj => (obj[0] || obj).nodeType\n\nconst emulateTransitionEnd = (element, duration) => {\n let called = false\n const durationPadding = 5\n const emulatedDuration = duration + durationPadding\n\n function listener() {\n called = true\n element.removeEventListener(TRANSITION_END, listener)\n }\n\n element.addEventListener(TRANSITION_END, listener)\n setTimeout(() => {\n if (!called) {\n triggerTransitionEnd(element)\n }\n }, emulatedDuration)\n}\n\nconst typeCheckConfig = (componentName, config, configTypes) => {\n Object.keys(configTypes).forEach(property => {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && isElement(value) ?\n 'element' :\n toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n })\n}\n\nconst isVisible = element => {\n if (!element) {\n return false\n }\n\n if (element.style && element.parentNode && element.parentNode.style) {\n const elementStyle = getComputedStyle(element)\n const parentNodeStyle = getComputedStyle(element.parentNode)\n\n return elementStyle.display !== 'none' &&\n parentNodeStyle.display !== 'none' &&\n elementStyle.visibility !== 'hidden'\n }\n\n return false\n}\n\nconst findShadowRoot = element => {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return findShadowRoot(element.parentNode)\n}\n\nconst noop = () => function () {}\n\nconst reflow = element => element.offsetHeight\n\nconst getjQuery = () => {\n const { jQuery } = window\n\n if (jQuery && !document.body.hasAttribute('data-bs-no-jquery')) {\n return jQuery\n }\n\n return null\n}\n\nconst onDOMContentLoaded = callback => {\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', callback)\n } else {\n callback()\n }\n}\n\nconst isRTL = document.documentElement.dir === 'rtl'\n\nexport {\n TRANSITION_END,\n getUID,\n getSelectorFromElement,\n getElementFromSelector,\n getTransitionDurationFromElement,\n triggerTransitionEnd,\n isElement,\n emulateTransitionEnd,\n typeCheckConfig,\n isVisible,\n findShadowRoot,\n noop,\n reflow,\n getjQuery,\n onDOMContentLoaded,\n isRTL\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta1): base-component.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport Data from './dom/data'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst VERSION = '5.0.0-beta1'\n\nclass BaseComponent {\n constructor(element) {\n if (!element) {\n return\n }\n\n this._element = element\n Data.setData(element, this.constructor.DATA_KEY, this)\n }\n\n dispose() {\n Data.removeData(this._element, this.constructor.DATA_KEY)\n this._element = null\n }\n\n /** Static */\n\n static getInstance(element) {\n return Data.getData(element, this.DATA_KEY)\n }\n\n static get VERSION() {\n return VERSION\n }\n}\n\nexport default BaseComponent\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.0.0-beta1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n getjQuery,\n onDOMContentLoaded,\n TRANSITION_END,\n emulateTransitionEnd,\n getElementFromSelector,\n getTransitionDurationFromElement,\n isVisible,\n isRTL,\n reflow,\n typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport SelectorEngine from './dom/selector-engine'\nimport BaseComponent from './base-component'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEY = 'Escape'\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true\n}\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-bs-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-bs-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal extends BaseComponent {\n constructor(element, config) {\n super(element)\n\n this._config = this._getConfig(config)\n this._dialog = SelectorEngine.findOne(SELECTOR_DIALOG, element)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get Default() {\n return Default\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = EventHandler.trigger(this._element, EVENT_SHOW, {\n relatedTarget\n })\n\n if (this._isShown || showEvent.defaultPrevented) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, event => this.hide(event))\n\n EventHandler.on(this._dialog, EVENT_MOUSEDOWN_DISMISS, () => {\n EventHandler.one(this._element, EVENT_MOUSEUP_DISMISS, event => {\n if (event.target === this._element) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE)\n\n if (hideEvent.defaultPrevented) {\n return\n }\n\n this._isShown = false\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._element.classList.remove(CLASS_NAME_SHOW)\n\n EventHandler.off(this._element, EVENT_CLICK_DISMISS)\n EventHandler.off(this._dialog, EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._element)\n\n EventHandler.one(this._element, TRANSITION_END, event => this._hideModal(event))\n emulateTransitionEnd(this._element, transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))\n\n super.dispose()\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n EventHandler.off(document, EVENT_FOCUSIN)\n\n this._config = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = this._element.classList.contains(CLASS_NAME_FADE)\n const modalBody = SelectorEngine.findOne(SELECTOR_MODAL_BODY, this._dialog)\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n this._element.scrollTop = 0\n\n if (modalBody) {\n modalBody.scrollTop = 0\n }\n\n if (transition) {\n reflow(this._element)\n }\n\n this._element.classList.add(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n\n this._isTransitioning = false\n EventHandler.trigger(this._element, EVENT_SHOWN, {\n relatedTarget\n })\n }\n\n if (transition) {\n const transitionDuration = getTransitionDurationFromElement(this._dialog)\n\n EventHandler.one(this._dialog, TRANSITION_END, transitionComplete)\n emulateTransitionEnd(this._dialog, transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n EventHandler.off(document, EVENT_FOCUSIN) // guard against infinite focus loop\n EventHandler.on(document, EVENT_FOCUSIN, event => {\n if (document !== event.target &&\n this._element !== event.target &&\n !this._element.contains(event.target)) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n EventHandler.on(this._element, EVENT_KEYDOWN_DISMISS, event => {\n if (this._config.keyboard && event.key === ESCAPE_KEY) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.key === ESCAPE_KEY) {\n this._triggerBackdropTransition()\n }\n })\n } else {\n EventHandler.off(this._element, EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n EventHandler.on(window, EVENT_RESIZE, () => this._adjustDialog())\n } else {\n EventHandler.off(window, EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n document.body.classList.remove(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n EventHandler.trigger(this._element, EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n this._backdrop.parentNode.removeChild(this._backdrop)\n this._backdrop = null\n }\n\n _showBackdrop(callback) {\n const animate = this._element.classList.contains(CLASS_NAME_FADE) ?\n CLASS_NAME_FADE :\n ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n document.body.appendChild(this._backdrop)\n\n EventHandler.on(this._element, EVENT_CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n\n if (event.target !== event.currentTarget) {\n return\n }\n\n if (this._config.backdrop === 'static') {\n this._triggerBackdropTransition()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n reflow(this._backdrop)\n }\n\n this._backdrop.classList.add(CLASS_NAME_SHOW)\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n\n EventHandler.one(this._backdrop, TRANSITION_END, callback)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n this._backdrop.classList.remove(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n callback()\n }\n\n if (this._element.classList.contains(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = getTransitionDurationFromElement(this._backdrop)\n EventHandler.one(this._backdrop, TRANSITION_END, callbackRemove)\n emulateTransitionEnd(this._backdrop, backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else {\n callback()\n }\n }\n\n _triggerBackdropTransition() {\n const hideEvent = EventHandler.trigger(this._element, EVENT_HIDE_PREVENTED)\n if (hideEvent.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n const modalTransitionDuration = getTransitionDurationFromElement(this._dialog)\n EventHandler.off(this._element, TRANSITION_END)\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n EventHandler.one(this._element, TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n emulateTransitionEnd(this._element, modalTransitionDuration)\n this._element.focus()\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if ((!this._isBodyOverflowing && isModalOverflowing && !isRTL) || (this._isBodyOverflowing && !isModalOverflowing && isRTL)) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if ((this._isBodyOverflowing && !isModalOverflowing && !isRTL) || (!this._isBodyOverflowing && isModalOverflowing && isRTL)) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n\n // Adjust fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = window.getComputedStyle(element)['padding-right']\n Manipulator.setDataAttribute(element, 'padding-right', actualPadding)\n element.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n })\n\n // Adjust sticky content margin\n SelectorEngine.find(SELECTOR_STICKY_CONTENT)\n .forEach(element => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = window.getComputedStyle(element)['margin-right']\n Manipulator.setDataAttribute(element, 'margin-right', actualMargin)\n element.style.marginRight = `${Number.parseFloat(calculatedMargin) - this._scrollbarWidth}px`\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = window.getComputedStyle(document.body)['padding-right']\n\n Manipulator.setDataAttribute(document.body, 'padding-right', actualPadding)\n document.body.style.paddingRight = `${Number.parseFloat(calculatedPadding) + this._scrollbarWidth}px`\n }\n\n document.body.classList.add(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n SelectorEngine.find(SELECTOR_FIXED_CONTENT)\n .forEach(element => {\n const padding = Manipulator.getDataAttribute(element, 'padding-right')\n if (typeof padding !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'padding-right')\n element.style.paddingRight = padding\n }\n })\n\n // Restore sticky content and navbar-toggler margin\n SelectorEngine.find(`${SELECTOR_STICKY_CONTENT}`)\n .forEach(element => {\n const margin = Manipulator.getDataAttribute(element, 'margin-right')\n if (typeof margin !== 'undefined') {\n Manipulator.removeDataAttribute(element, 'margin-right')\n element.style.marginRight = margin\n }\n })\n\n // Restore body padding\n const padding = Manipulator.getDataAttribute(document.body, 'padding-right')\n if (typeof padding === 'undefined') {\n document.body.style.paddingRight = ''\n } else {\n Manipulator.removeDataAttribute(document.body, 'padding-right')\n document.body.style.paddingRight = padding\n }\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = Data.getData(this, DATA_KEY)\n const _config = {\n ...Default,\n ...Manipulator.getDataAttributes(this),\n ...(typeof config === 'object' && config ? config : {})\n }\n\n if (!data) {\n data = new Modal(this, _config)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n const target = getElementFromSelector(this)\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n EventHandler.one(target, EVENT_SHOW, showEvent => {\n if (showEvent.defaultPrevented) {\n // only register focus restorer if modal will actually get shown\n return\n }\n\n EventHandler.one(target, EVENT_HIDDEN, () => {\n if (isVisible(this)) {\n this.focus()\n }\n })\n })\n\n let data = Data.getData(target, DATA_KEY)\n if (!data) {\n const config = {\n ...Manipulator.getDataAttributes(target),\n ...Manipulator.getDataAttributes(this)\n }\n\n data = new Modal(target, config)\n }\n\n data.show(this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .Modal to jQuery only if jQuery is present\n */\n\nonDOMContentLoaded(() => {\n const $ = getjQuery()\n /* istanbul ignore if */\n if ($) {\n const JQUERY_NO_CONFLICT = $.fn[NAME]\n $.fn[NAME] = Modal.jQueryInterface\n $.fn[NAME].Constructor = Modal\n $.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal.jQueryInterface\n }\n }\n})\n\nexport default Modal\n"],"names":["MILLISECONDS_MULTIPLIER","TRANSITION_END","toType","obj","undefined","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","getTransitionDurationFromElement","window","getComputedStyle","transitionDuration","transitionDelay","floatTransitionDuration","Number","parseFloat","floatTransitionDelay","split","triggerTransitionEnd","dispatchEvent","Event","isElement","nodeType","emulateTransitionEnd","duration","called","durationPadding","emulatedDuration","listener","removeEventListener","addEventListener","setTimeout","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","isVisible","style","parentNode","elementStyle","parentNodeStyle","display","visibility","reflow","offsetHeight","getjQuery","jQuery","body","hasAttribute","onDOMContentLoaded","callback","readyState","isRTL","documentElement","dir","VERSION","BaseComponent","_element","Data","setData","constructor","DATA_KEY","dispose","removeData","getInstance","getData","NAME","EVENT_KEY","DATA_API_KEY","ESCAPE_KEY","Default","backdrop","keyboard","focus","DefaultType","EVENT_HIDE","EVENT_HIDE_PREVENTED","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_FOCUSIN","EVENT_RESIZE","EVENT_CLICK_DISMISS","EVENT_KEYDOWN_DISMISS","EVENT_MOUSEUP_DISMISS","EVENT_MOUSEDOWN_DISMISS","EVENT_CLICK_DATA_API","CLASS_NAME_SCROLLBAR_MEASURER","CLASS_NAME_BACKDROP","CLASS_NAME_OPEN","CLASS_NAME_FADE","CLASS_NAME_SHOW","CLASS_NAME_STATIC","SELECTOR_DIALOG","SELECTOR_MODAL_BODY","SELECTOR_DATA_TOGGLE","SELECTOR_DATA_DISMISS","SELECTOR_FIXED_CONTENT","SELECTOR_STICKY_CONTENT","Modal","_config","_getConfig","_dialog","SelectorEngine","findOne","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","toggle","relatedTarget","hide","show","classList","contains","showEvent","EventHandler","trigger","defaultPrevented","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","on","event","one","target","_showBackdrop","_showElement","preventDefault","hideEvent","transition","off","remove","_hideModal","htmlElement","handleUpdate","modalBody","Node","ELEMENT_NODE","appendChild","removeAttribute","setAttribute","scrollTop","add","_enforceFocus","transitionComplete","key","_triggerBackdropTransition","_resetAdjustments","_resetScrollbar","_removeBackdrop","removeChild","animate","createElement","className","currentTarget","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","overflowY","modalTransitionDuration","paddingLeft","paddingRight","rect","getBoundingClientRect","Math","round","left","right","innerWidth","_getScrollbarWidth","find","actualPadding","calculatedPadding","Manipulator","setDataAttribute","actualMargin","marginRight","calculatedMargin","padding","getDataAttribute","removeDataAttribute","margin","scrollDiv","scrollbarWidth","width","clientWidth","jQueryInterface","each","data","getDataAttributes","TypeError","tagName","$","JQUERY_NO_CONFLICT","fn","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;EAGA,IAAMA,uBAAuB,GAAG,IAAhC;EACA,IAAMC,cAAc,GAAG,eAAvB;;EAGA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAC,GAAG,EAAI;EACpB,MAAIA,GAAG,KAAK,IAAR,IAAgBA,GAAG,KAAKC,SAA5B,EAAuC;EACrC,gBAAUD,GAAV;EACD;;EAED,SAAO,GAAGE,QAAH,CAAYC,IAAZ,CAAiBH,GAAjB,EAAsBI,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAP;EACD,CAND;;EAsBA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,OAAO,EAAI;EAC7B,MAAIC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,gBAArB,CAAf;;EAEA,MAAI,CAACD,QAAD,IAAaA,QAAQ,KAAK,GAA9B,EAAmC;EACjC,QAAME,QAAQ,GAAGH,OAAO,CAACE,YAAR,CAAqB,MAArB,CAAjB;EAEAD,IAAAA,QAAQ,GAAGE,QAAQ,IAAIA,QAAQ,KAAK,GAAzB,GAA+BA,QAAQ,CAACC,IAAT,EAA/B,GAAiD,IAA5D;EACD;;EAED,SAAOH,QAAP;EACD,CAVD;;EAsBA,IAAMI,sBAAsB,GAAG,SAAzBA,sBAAyB,CAAAL,OAAO,EAAI;EACxC,MAAMC,QAAQ,GAAGF,WAAW,CAACC,OAAD,CAA5B;EAEA,SAAOC,QAAQ,GAAGK,QAAQ,CAACC,aAAT,CAAuBN,QAAvB,CAAH,GAAsC,IAArD;EACD,CAJD;;EAMA,IAAMO,gCAAgC,GAAG,SAAnCA,gCAAmC,CAAAR,OAAO,EAAI;EAClD,MAAI,CAACA,OAAL,EAAc;EACZ,WAAO,CAAP;EACD,GAHiD;;;EAAA,8BAMJS,MAAM,CAACC,gBAAP,CAAwBV,OAAxB,CANI;EAAA,MAM5CW,kBAN4C,yBAM5CA,kBAN4C;EAAA,MAMxBC,eANwB,yBAMxBA,eANwB;;EAQlD,MAAMC,uBAAuB,GAAGC,MAAM,CAACC,UAAP,CAAkBJ,kBAAlB,CAAhC;EACA,MAAMK,oBAAoB,GAAGF,MAAM,CAACC,UAAP,CAAkBH,eAAlB,CAA7B,CATkD;;EAYlD,MAAI,CAACC,uBAAD,IAA4B,CAACG,oBAAjC,EAAuD;EACrD,WAAO,CAAP;EACD,GAdiD;;;EAiBlDL,EAAAA,kBAAkB,GAAGA,kBAAkB,CAACM,KAAnB,CAAyB,GAAzB,EAA8B,CAA9B,CAArB;EACAL,EAAAA,eAAe,GAAGA,eAAe,CAACK,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,CAAlB;EAEA,SAAO,CAACH,MAAM,CAACC,UAAP,CAAkBJ,kBAAlB,IAAwCG,MAAM,CAACC,UAAP,CAAkBH,eAAlB,CAAzC,IAA+EtB,uBAAtF;EACD,CArBD;;EAuBA,IAAM4B,oBAAoB,GAAG,SAAvBA,oBAAuB,CAAAlB,OAAO,EAAI;EACtCA,EAAAA,OAAO,CAACmB,aAAR,CAAsB,IAAIC,KAAJ,CAAU7B,cAAV,CAAtB;EACD,CAFD;;EAIA,IAAM8B,SAAS,GAAG,SAAZA,SAAY,CAAA5B,GAAG;EAAA,SAAI,CAACA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAX,EAAgB6B,QAApB;EAAA,CAArB;;EAEA,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,CAACvB,OAAD,EAAUwB,QAAV,EAAuB;EAClD,MAAIC,MAAM,GAAG,KAAb;EACA,MAAMC,eAAe,GAAG,CAAxB;EACA,MAAMC,gBAAgB,GAAGH,QAAQ,GAAGE,eAApC;;EAEA,WAASE,QAAT,GAAoB;EAClBH,IAAAA,MAAM,GAAG,IAAT;EACAzB,IAAAA,OAAO,CAAC6B,mBAAR,CAA4BtC,cAA5B,EAA4CqC,QAA5C;EACD;;EAED5B,EAAAA,OAAO,CAAC8B,gBAAR,CAAyBvC,cAAzB,EAAyCqC,QAAzC;EACAG,EAAAA,UAAU,CAAC,YAAM;EACf,QAAI,CAACN,MAAL,EAAa;EACXP,MAAAA,oBAAoB,CAAClB,OAAD,CAApB;EACD;EACF,GAJS,EAIP2B,gBAJO,CAAV;EAKD,CAhBD;;EAkBA,IAAMK,eAAe,GAAG,SAAlBA,eAAkB,CAACC,aAAD,EAAgBC,MAAhB,EAAwBC,WAAxB,EAAwC;EAC9DC,EAAAA,MAAM,CAACC,IAAP,CAAYF,WAAZ,EAAyBG,OAAzB,CAAiC,UAAAC,QAAQ,EAAI;EAC3C,QAAMC,aAAa,GAAGL,WAAW,CAACI,QAAD,CAAjC;EACA,QAAME,KAAK,GAAGP,MAAM,CAACK,QAAD,CAApB;EACA,QAAMG,SAAS,GAAGD,KAAK,IAAIpB,SAAS,CAACoB,KAAD,CAAlB,GAChB,SADgB,GAEhBjD,MAAM,CAACiD,KAAD,CAFR;;EAIA,QAAI,CAAC,IAAIE,MAAJ,CAAWH,aAAX,EAA0BI,IAA1B,CAA+BF,SAA/B,CAAL,EAAgD;EAC9C,YAAM,IAAIG,KAAJ,CACDZ,aAAa,CAACa,WAAd,EAAH,yBACWP,QADX,2BACuCG,SADvC,sCAEsBF,aAFtB,SADI,CAAN;EAID;EACF,GAbD;EAcD,CAfD;;EAiBA,IAAMO,SAAS,GAAG,SAAZA,SAAY,CAAA/C,OAAO,EAAI;EAC3B,MAAI,CAACA,OAAL,EAAc;EACZ,WAAO,KAAP;EACD;;EAED,MAAIA,OAAO,CAACgD,KAAR,IAAiBhD,OAAO,CAACiD,UAAzB,IAAuCjD,OAAO,CAACiD,UAAR,CAAmBD,KAA9D,EAAqE;EACnE,QAAME,YAAY,GAAGxC,gBAAgB,CAACV,OAAD,CAArC;EACA,QAAMmD,eAAe,GAAGzC,gBAAgB,CAACV,OAAO,CAACiD,UAAT,CAAxC;EAEA,WAAOC,YAAY,CAACE,OAAb,KAAyB,MAAzB,IACLD,eAAe,CAACC,OAAhB,KAA4B,MADvB,IAELF,YAAY,CAACG,UAAb,KAA4B,QAF9B;EAGD;;EAED,SAAO,KAAP;EACD,CAfD;;EA0CA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAAAtD,OAAO;EAAA,SAAIA,OAAO,CAACuD,YAAZ;EAAA,CAAtB;;EAEA,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAM;EAAA,gBACH/C,MADG;EAAA,MACdgD,MADc,WACdA,MADc;;EAGtB,MAAIA,MAAM,IAAI,CAACnD,QAAQ,CAACoD,IAAT,CAAcC,YAAd,CAA2B,mBAA3B,CAAf,EAAgE;EAC9D,WAAOF,MAAP;EACD;;EAED,SAAO,IAAP;EACD,CARD;;EAUA,IAAMG,kBAAkB,GAAG,SAArBA,kBAAqB,CAAAC,QAAQ,EAAI;EACrC,MAAIvD,QAAQ,CAACwD,UAAT,KAAwB,SAA5B,EAAuC;EACrCxD,IAAAA,QAAQ,CAACwB,gBAAT,CAA0B,kBAA1B,EAA8C+B,QAA9C;EACD,GAFD,MAEO;EACLA,IAAAA,QAAQ;EACT;EACF,CAND;;EAQA,IAAME,KAAK,GAAGzD,QAAQ,CAAC0D,eAAT,CAAyBC,GAAzB,KAAiC,KAA/C;;;;;ECnLA;EACA;EACA;EACA;EACA;;EAEA,IAAMC,OAAO,GAAG,aAAhB;;MAEMC;EACJ,yBAAYnE,OAAZ,EAAqB;EACnB,QAAI,CAACA,OAAL,EAAc;EACZ;EACD;;EAED,SAAKoE,QAAL,GAAgBpE,OAAhB;EACAqE,IAAAA,wBAAI,CAACC,OAAL,CAAatE,OAAb,EAAsB,KAAKuE,WAAL,CAAiBC,QAAvC,EAAiD,IAAjD;EACD;;;;WAEDC,UAAA,mBAAU;EACRJ,IAAAA,wBAAI,CAACK,UAAL,CAAgB,KAAKN,QAArB,EAA+B,KAAKG,WAAL,CAAiBC,QAAhD;EACA,SAAKJ,QAAL,GAAgB,IAAhB;EACD;EAED;;;kBAEOO,cAAP,qBAAmB3E,OAAnB,EAA4B;EAC1B,WAAOqE,wBAAI,CAACO,OAAL,CAAa5E,OAAb,EAAsB,KAAKwE,QAA3B,CAAP;EACD;;;;0BAEoB;EACnB,aAAON,OAAP;EACD;;;;;;;;;;;;;ECfH;EACA;EACA;EACA;EACA;;EAEA,IAAMW,IAAI,GAAG,OAAb;EACA,IAAML,QAAQ,GAAG,UAAjB;EACA,IAAMM,SAAS,SAAON,QAAtB;EACA,IAAMO,YAAY,GAAG,WAArB;EACA,IAAMC,UAAU,GAAG,QAAnB;EAEA,IAAMC,OAAO,GAAG;EACdC,EAAAA,QAAQ,EAAE,IADI;EAEdC,EAAAA,QAAQ,EAAE,IAFI;EAGdC,EAAAA,KAAK,EAAE;EAHO,CAAhB;EAMA,IAAMC,WAAW,GAAG;EAClBH,EAAAA,QAAQ,EAAE,kBADQ;EAElBC,EAAAA,QAAQ,EAAE,SAFQ;EAGlBC,EAAAA,KAAK,EAAE;EAHW,CAApB;EAMA,IAAME,UAAU,YAAUR,SAA1B;EACA,IAAMS,oBAAoB,qBAAmBT,SAA7C;EACA,IAAMU,YAAY,cAAYV,SAA9B;EACA,IAAMW,UAAU,YAAUX,SAA1B;EACA,IAAMY,WAAW,aAAWZ,SAA5B;EACA,IAAMa,aAAa,eAAab,SAAhC;EACA,IAAMc,YAAY,cAAYd,SAA9B;EACA,IAAMe,mBAAmB,qBAAmBf,SAA5C;EACA,IAAMgB,qBAAqB,uBAAqBhB,SAAhD;EACA,IAAMiB,qBAAqB,uBAAqBjB,SAAhD;EACA,IAAMkB,uBAAuB,yBAAuBlB,SAApD;EACA,IAAMmB,oBAAoB,aAAWnB,SAAX,GAAuBC,YAAjD;EAEA,IAAMmB,6BAA6B,GAAG,yBAAtC;EACA,IAAMC,mBAAmB,GAAG,gBAA5B;EACA,IAAMC,eAAe,GAAG,YAAxB;EACA,IAAMC,eAAe,GAAG,MAAxB;EACA,IAAMC,eAAe,GAAG,MAAxB;EACA,IAAMC,iBAAiB,GAAG,cAA1B;EAEA,IAAMC,eAAe,GAAG,eAAxB;EACA,IAAMC,mBAAmB,GAAG,aAA5B;EACA,IAAMC,oBAAoB,GAAG,0BAA7B;EACA,IAAMC,qBAAqB,GAAG,2BAA9B;EACA,IAAMC,sBAAsB,GAAG,mDAA/B;EACA,IAAMC,uBAAuB,GAAG,aAAhC;EAEA;EACA;EACA;EACA;EACA;;MAEMC;;;EACJ,iBAAY9G,OAAZ,EAAqBkC,MAArB,EAA6B;EAAA;;EAC3B,sCAAMlC,OAAN;EAEA,UAAK+G,OAAL,GAAe,MAAKC,UAAL,CAAgB9E,MAAhB,CAAf;EACA,UAAK+E,OAAL,GAAeC,kCAAc,CAACC,OAAf,CAAuBX,eAAvB,EAAwCxG,OAAxC,CAAf;EACA,UAAKoH,SAAL,GAAiB,IAAjB;EACA,UAAKC,QAAL,GAAgB,KAAhB;EACA,UAAKC,kBAAL,GAA0B,KAA1B;EACA,UAAKC,oBAAL,GAA4B,KAA5B;EACA,UAAKC,gBAAL,GAAwB,KAAxB;EACA,UAAKC,eAAL,GAAuB,CAAvB;EAV2B;EAW5B;;;;;EAYD;WAEAC,SAAA,gBAAOC,aAAP,EAAsB;EACpB,WAAO,KAAKN,QAAL,GAAgB,KAAKO,IAAL,EAAhB,GAA8B,KAAKC,IAAL,CAAUF,aAAV,CAArC;EACD;;WAEDE,OAAA,cAAKF,aAAL,EAAoB;EAAA;;EAClB,QAAI,KAAKN,QAAL,IAAiB,KAAKG,gBAA1B,EAA4C;EAC1C;EACD;;EAED,QAAI,KAAKpD,QAAL,CAAc0D,SAAd,CAAwBC,QAAxB,CAAiC1B,eAAjC,CAAJ,EAAuD;EACrD,WAAKmB,gBAAL,GAAwB,IAAxB;EACD;;EAED,QAAMQ,SAAS,GAAGC,gCAAY,CAACC,OAAb,CAAqB,KAAK9D,QAA1B,EAAoCqB,UAApC,EAAgD;EAChEkC,MAAAA,aAAa,EAAbA;EADgE,KAAhD,CAAlB;;EAIA,QAAI,KAAKN,QAAL,IAAiBW,SAAS,CAACG,gBAA/B,EAAiD;EAC/C;EACD;;EAED,SAAKd,QAAL,GAAgB,IAAhB;;EAEA,SAAKe,eAAL;;EACA,SAAKC,aAAL;;EAEA,SAAKC,aAAL;;EAEA,SAAKC,eAAL;;EACA,SAAKC,eAAL;;EAEAP,IAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKrE,QAArB,EAA+ByB,mBAA/B,EAAoDc,qBAApD,EAA2E,UAAA+B,KAAK;EAAA,aAAI,MAAI,CAACd,IAAL,CAAUc,KAAV,CAAJ;EAAA,KAAhF;EAEAT,IAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKxB,OAArB,EAA8BjB,uBAA9B,EAAuD,YAAM;EAC3DiC,MAAAA,gCAAY,CAACU,GAAb,CAAiB,MAAI,CAACvE,QAAtB,EAAgC2B,qBAAhC,EAAuD,UAAA2C,KAAK,EAAI;EAC9D,YAAIA,KAAK,CAACE,MAAN,KAAiB,MAAI,CAACxE,QAA1B,EAAoC;EAClC,UAAA,MAAI,CAACmD,oBAAL,GAA4B,IAA5B;EACD;EACF,OAJD;EAKD,KAND;;EAQA,SAAKsB,aAAL,CAAmB;EAAA,aAAM,MAAI,CAACC,YAAL,CAAkBnB,aAAlB,CAAN;EAAA,KAAnB;EACD;;WAEDC,OAAA,cAAKc,KAAL,EAAY;EAAA;;EACV,QAAIA,KAAJ,EAAW;EACTA,MAAAA,KAAK,CAACK,cAAN;EACD;;EAED,QAAI,CAAC,KAAK1B,QAAN,IAAkB,KAAKG,gBAA3B,EAA6C;EAC3C;EACD;;EAED,QAAMwB,SAAS,GAAGf,gCAAY,CAACC,OAAb,CAAqB,KAAK9D,QAA1B,EAAoCkB,UAApC,CAAlB;;EAEA,QAAI0D,SAAS,CAACb,gBAAd,EAAgC;EAC9B;EACD;;EAED,SAAKd,QAAL,GAAgB,KAAhB;;EACA,QAAM4B,UAAU,GAAG,KAAK7E,QAAL,CAAc0D,SAAd,CAAwBC,QAAxB,CAAiC1B,eAAjC,CAAnB;;EAEA,QAAI4C,UAAJ,EAAgB;EACd,WAAKzB,gBAAL,GAAwB,IAAxB;EACD;;EAED,SAAKe,eAAL;;EACA,SAAKC,eAAL;;EAEAP,IAAAA,gCAAY,CAACiB,GAAb,CAAiB5I,QAAjB,EAA2BqF,aAA3B;;EAEA,SAAKvB,QAAL,CAAc0D,SAAd,CAAwBqB,MAAxB,CAA+B7C,eAA/B;;EAEA2B,IAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAK9E,QAAtB,EAAgCyB,mBAAhC;EACAoC,IAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAKjC,OAAtB,EAA+BjB,uBAA/B;;EAEA,QAAIiD,UAAJ,EAAgB;EACd,UAAMtI,kBAAkB,GAAGH,gCAAgC,CAAC,KAAK4D,QAAN,CAA3D;EAEA6D,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvE,QAAtB,EAAgC7E,cAAhC,EAAgD,UAAAmJ,KAAK;EAAA,eAAI,MAAI,CAACU,UAAL,CAAgBV,KAAhB,CAAJ;EAAA,OAArD;EACAnH,MAAAA,oBAAoB,CAAC,KAAK6C,QAAN,EAAgBzD,kBAAhB,CAApB;EACD,KALD,MAKO;EACL,WAAKyI,UAAL;EACD;EACF;;WAED3E,UAAA,mBAAU;EACR,KAAChE,MAAD,EAAS,KAAK2D,QAAd,EAAwB,KAAK6C,OAA7B,EACG3E,OADH,CACW,UAAA+G,WAAW;EAAA,aAAIpB,gCAAY,CAACiB,GAAb,CAAiBG,WAAjB,EAA8BvE,SAA9B,CAAJ;EAAA,KADtB;;EAGA,6BAAML,OAAN;EAEA;EACJ;EACA;EACA;EACA;;;EACIwD,IAAAA,gCAAY,CAACiB,GAAb,CAAiB5I,QAAjB,EAA2BqF,aAA3B;EAEA,SAAKoB,OAAL,GAAe,IAAf;EACA,SAAKE,OAAL,GAAe,IAAf;EACA,SAAKG,SAAL,GAAiB,IAAjB;EACA,SAAKC,QAAL,GAAgB,IAAhB;EACA,SAAKC,kBAAL,GAA0B,IAA1B;EACA,SAAKC,oBAAL,GAA4B,IAA5B;EACA,SAAKC,gBAAL,GAAwB,IAAxB;EACA,SAAKC,eAAL,GAAuB,IAAvB;EACD;;WAED6B,eAAA,wBAAe;EACb,SAAKhB,aAAL;EACD;;;WAIDtB,aAAA,oBAAW9E,MAAX,EAAmB;EACjBA,IAAAA,MAAM,gBACD+C,OADC,EAED/C,MAFC,CAAN;EAIAF,IAAAA,eAAe,CAAC6C,IAAD,EAAO3C,MAAP,EAAemD,WAAf,CAAf;EACA,WAAOnD,MAAP;EACD;;WAED4G,eAAA,sBAAanB,aAAb,EAA4B;EAAA;;EAC1B,QAAMsB,UAAU,GAAG,KAAK7E,QAAL,CAAc0D,SAAd,CAAwBC,QAAxB,CAAiC1B,eAAjC,CAAnB;;EACA,QAAMkD,SAAS,GAAGrC,kCAAc,CAACC,OAAf,CAAuBV,mBAAvB,EAA4C,KAAKQ,OAAjD,CAAlB;;EAEA,QAAI,CAAC,KAAK7C,QAAL,CAAcnB,UAAf,IAA6B,KAAKmB,QAAL,CAAcnB,UAAd,CAAyB3B,QAAzB,KAAsCkI,IAAI,CAACC,YAA5E,EAA0F;EACxF;EACAnJ,MAAAA,QAAQ,CAACoD,IAAT,CAAcgG,WAAd,CAA0B,KAAKtF,QAA/B;EACD;;EAED,SAAKA,QAAL,CAAcpB,KAAd,CAAoBI,OAApB,GAA8B,OAA9B;;EACA,SAAKgB,QAAL,CAAcuF,eAAd,CAA8B,aAA9B;;EACA,SAAKvF,QAAL,CAAcwF,YAAd,CAA2B,YAA3B,EAAyC,IAAzC;;EACA,SAAKxF,QAAL,CAAcwF,YAAd,CAA2B,MAA3B,EAAmC,QAAnC;;EACA,SAAKxF,QAAL,CAAcyF,SAAd,GAA0B,CAA1B;;EAEA,QAAIN,SAAJ,EAAe;EACbA,MAAAA,SAAS,CAACM,SAAV,GAAsB,CAAtB;EACD;;EAED,QAAIZ,UAAJ,EAAgB;EACd3F,MAAAA,MAAM,CAAC,KAAKc,QAAN,CAAN;EACD;;EAED,SAAKA,QAAL,CAAc0D,SAAd,CAAwBgC,GAAxB,CAA4BxD,eAA5B;;EAEA,QAAI,KAAKS,OAAL,CAAa3B,KAAjB,EAAwB;EACtB,WAAK2E,aAAL;EACD;;EAED,QAAMC,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;EAC/B,UAAI,MAAI,CAACjD,OAAL,CAAa3B,KAAjB,EAAwB;EACtB,QAAA,MAAI,CAAChB,QAAL,CAAcgB,KAAd;EACD;;EAED,MAAA,MAAI,CAACoC,gBAAL,GAAwB,KAAxB;EACAS,MAAAA,gCAAY,CAACC,OAAb,CAAqB,MAAI,CAAC9D,QAA1B,EAAoCsB,WAApC,EAAiD;EAC/CiC,QAAAA,aAAa,EAAbA;EAD+C,OAAjD;EAGD,KATD;;EAWA,QAAIsB,UAAJ,EAAgB;EACd,UAAMtI,kBAAkB,GAAGH,gCAAgC,CAAC,KAAKyG,OAAN,CAA3D;EAEAgB,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAK1B,OAAtB,EAA+B1H,cAA/B,EAA+CyK,kBAA/C;EACAzI,MAAAA,oBAAoB,CAAC,KAAK0F,OAAN,EAAetG,kBAAf,CAApB;EACD,KALD,MAKO;EACLqJ,MAAAA,kBAAkB;EACnB;EACF;;WAEDD,gBAAA,yBAAgB;EAAA;;EACd9B,IAAAA,gCAAY,CAACiB,GAAb,CAAiB5I,QAAjB,EAA2BqF,aAA3B,EADc;;EAEdsC,IAAAA,gCAAY,CAACQ,EAAb,CAAgBnI,QAAhB,EAA0BqF,aAA1B,EAAyC,UAAA+C,KAAK,EAAI;EAChD,UAAIpI,QAAQ,KAAKoI,KAAK,CAACE,MAAnB,IACA,MAAI,CAACxE,QAAL,KAAkBsE,KAAK,CAACE,MADxB,IAEA,CAAC,MAAI,CAACxE,QAAL,CAAc2D,QAAd,CAAuBW,KAAK,CAACE,MAA7B,CAFL,EAE2C;EACzC,QAAA,MAAI,CAACxE,QAAL,CAAcgB,KAAd;EACD;EACF,KAND;EAOD;;WAEDmD,kBAAA,2BAAkB;EAAA;;EAChB,QAAI,KAAKlB,QAAT,EAAmB;EACjBY,MAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKrE,QAArB,EAA+B0B,qBAA/B,EAAsD,UAAA4C,KAAK,EAAI;EAC7D,YAAI,MAAI,CAAC3B,OAAL,CAAa5B,QAAb,IAAyBuD,KAAK,CAACuB,GAAN,KAAcjF,UAA3C,EAAuD;EACrD0D,UAAAA,KAAK,CAACK,cAAN;;EACA,UAAA,MAAI,CAACnB,IAAL;EACD,SAHD,MAGO,IAAI,CAAC,MAAI,CAACb,OAAL,CAAa5B,QAAd,IAA0BuD,KAAK,CAACuB,GAAN,KAAcjF,UAA5C,EAAwD;EAC7D,UAAA,MAAI,CAACkF,0BAAL;EACD;EACF,OAPD;EAQD,KATD,MASO;EACLjC,MAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAK9E,QAAtB,EAAgC0B,qBAAhC;EACD;EACF;;WAED0C,kBAAA,2BAAkB;EAAA;;EAChB,QAAI,KAAKnB,QAAT,EAAmB;EACjBY,MAAAA,gCAAY,CAACQ,EAAb,CAAgBhI,MAAhB,EAAwBmF,YAAxB,EAAsC;EAAA,eAAM,MAAI,CAAC0C,aAAL,EAAN;EAAA,OAAtC;EACD,KAFD,MAEO;EACLL,MAAAA,gCAAY,CAACiB,GAAb,CAAiBzI,MAAjB,EAAyBmF,YAAzB;EACD;EACF;;WAEDwD,aAAA,sBAAa;EAAA;;EACX,SAAKhF,QAAL,CAAcpB,KAAd,CAAoBI,OAApB,GAA8B,MAA9B;;EACA,SAAKgB,QAAL,CAAcwF,YAAd,CAA2B,aAA3B,EAA0C,IAA1C;;EACA,SAAKxF,QAAL,CAAcuF,eAAd,CAA8B,YAA9B;;EACA,SAAKvF,QAAL,CAAcuF,eAAd,CAA8B,MAA9B;;EACA,SAAKnC,gBAAL,GAAwB,KAAxB;;EACA,SAAKqB,aAAL,CAAmB,YAAM;EACvBvI,MAAAA,QAAQ,CAACoD,IAAT,CAAcoE,SAAd,CAAwBqB,MAAxB,CAA+B/C,eAA/B;;EACA,MAAA,MAAI,CAAC+D,iBAAL;;EACA,MAAA,MAAI,CAACC,eAAL;;EACAnC,MAAAA,gCAAY,CAACC,OAAb,CAAqB,MAAI,CAAC9D,QAA1B,EAAoCoB,YAApC;EACD,KALD;EAMD;;WAED6E,kBAAA,2BAAkB;EAChB,SAAKjD,SAAL,CAAenE,UAAf,CAA0BqH,WAA1B,CAAsC,KAAKlD,SAA3C;;EACA,SAAKA,SAAL,GAAiB,IAAjB;EACD;;WAEDyB,gBAAA,uBAAchF,QAAd,EAAwB;EAAA;;EACtB,QAAM0G,OAAO,GAAG,KAAKnG,QAAL,CAAc0D,SAAd,CAAwBC,QAAxB,CAAiC1B,eAAjC,IACdA,eADc,GAEd,EAFF;;EAIA,QAAI,KAAKgB,QAAL,IAAiB,KAAKN,OAAL,CAAa7B,QAAlC,EAA4C;EAC1C,WAAKkC,SAAL,GAAiB9G,QAAQ,CAACkK,aAAT,CAAuB,KAAvB,CAAjB;EACA,WAAKpD,SAAL,CAAeqD,SAAf,GAA2BtE,mBAA3B;;EAEA,UAAIoE,OAAJ,EAAa;EACX,aAAKnD,SAAL,CAAeU,SAAf,CAAyBgC,GAAzB,CAA6BS,OAA7B;EACD;;EAEDjK,MAAAA,QAAQ,CAACoD,IAAT,CAAcgG,WAAd,CAA0B,KAAKtC,SAA/B;EAEAa,MAAAA,gCAAY,CAACQ,EAAb,CAAgB,KAAKrE,QAArB,EAA+ByB,mBAA/B,EAAoD,UAAA6C,KAAK,EAAI;EAC3D,YAAI,MAAI,CAACnB,oBAAT,EAA+B;EAC7B,UAAA,MAAI,CAACA,oBAAL,GAA4B,KAA5B;EACA;EACD;;EAED,YAAImB,KAAK,CAACE,MAAN,KAAiBF,KAAK,CAACgC,aAA3B,EAA0C;EACxC;EACD;;EAED,YAAI,MAAI,CAAC3D,OAAL,CAAa7B,QAAb,KAA0B,QAA9B,EAAwC;EACtC,UAAA,MAAI,CAACgF,0BAAL;EACD,SAFD,MAEO;EACL,UAAA,MAAI,CAACtC,IAAL;EACD;EACF,OAfD;;EAiBA,UAAI2C,OAAJ,EAAa;EACXjH,QAAAA,MAAM,CAAC,KAAK8D,SAAN,CAAN;EACD;;EAED,WAAKA,SAAL,CAAeU,SAAf,CAAyBgC,GAAzB,CAA6BxD,eAA7B;;EAEA,UAAI,CAACiE,OAAL,EAAc;EACZ1G,QAAAA,QAAQ;EACR;EACD;;EAED,UAAM8G,0BAA0B,GAAGnK,gCAAgC,CAAC,KAAK4G,SAAN,CAAnE;EAEAa,MAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvB,SAAtB,EAAiC7H,cAAjC,EAAiDsE,QAAjD;EACAtC,MAAAA,oBAAoB,CAAC,KAAK6F,SAAN,EAAiBuD,0BAAjB,CAApB;EACD,KA1CD,MA0CO,IAAI,CAAC,KAAKtD,QAAN,IAAkB,KAAKD,SAA3B,EAAsC;EAC3C,WAAKA,SAAL,CAAeU,SAAf,CAAyBqB,MAAzB,CAAgC7C,eAAhC;;EAEA,UAAMsE,cAAc,GAAG,SAAjBA,cAAiB,GAAM;EAC3B,QAAA,MAAI,CAACP,eAAL;;EACAxG,QAAAA,QAAQ;EACT,OAHD;;EAKA,UAAI,KAAKO,QAAL,CAAc0D,SAAd,CAAwBC,QAAxB,CAAiC1B,eAAjC,CAAJ,EAAuD;EACrD,YAAMsE,2BAA0B,GAAGnK,gCAAgC,CAAC,KAAK4G,SAAN,CAAnE;;EACAa,QAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvB,SAAtB,EAAiC7H,cAAjC,EAAiDqL,cAAjD;EACArJ,QAAAA,oBAAoB,CAAC,KAAK6F,SAAN,EAAiBuD,2BAAjB,CAApB;EACD,OAJD,MAIO;EACLC,QAAAA,cAAc;EACf;EACF,KAfM,MAeA;EACL/G,MAAAA,QAAQ;EACT;EACF;;WAEDqG,6BAAA,sCAA6B;EAAA;;EAC3B,QAAMlB,SAAS,GAAGf,gCAAY,CAACC,OAAb,CAAqB,KAAK9D,QAA1B,EAAoCmB,oBAApC,CAAlB;;EACA,QAAIyD,SAAS,CAACb,gBAAd,EAAgC;EAC9B;EACD;;EAED,QAAM0C,kBAAkB,GAAG,KAAKzG,QAAL,CAAc0G,YAAd,GAA6BxK,QAAQ,CAAC0D,eAAT,CAAyB+G,YAAjF;;EAEA,QAAI,CAACF,kBAAL,EAAyB;EACvB,WAAKzG,QAAL,CAAcpB,KAAd,CAAoBgI,SAApB,GAAgC,QAAhC;EACD;;EAED,SAAK5G,QAAL,CAAc0D,SAAd,CAAwBgC,GAAxB,CAA4BvD,iBAA5B;;EACA,QAAM0E,uBAAuB,GAAGzK,gCAAgC,CAAC,KAAKyG,OAAN,CAAhE;EACAgB,IAAAA,gCAAY,CAACiB,GAAb,CAAiB,KAAK9E,QAAtB,EAAgC7E,cAAhC;EACA0I,IAAAA,gCAAY,CAACU,GAAb,CAAiB,KAAKvE,QAAtB,EAAgC7E,cAAhC,EAAgD,YAAM;EACpD,MAAA,OAAI,CAAC6E,QAAL,CAAc0D,SAAd,CAAwBqB,MAAxB,CAA+B5C,iBAA/B;;EACA,UAAI,CAACsE,kBAAL,EAAyB;EACvB5C,QAAAA,gCAAY,CAACU,GAAb,CAAiB,OAAI,CAACvE,QAAtB,EAAgC7E,cAAhC,EAAgD,YAAM;EACpD,UAAA,OAAI,CAAC6E,QAAL,CAAcpB,KAAd,CAAoBgI,SAApB,GAAgC,EAAhC;EACD,SAFD;EAGAzJ,QAAAA,oBAAoB,CAAC,OAAI,CAAC6C,QAAN,EAAgB6G,uBAAhB,CAApB;EACD;EACF,KARD;EASA1J,IAAAA,oBAAoB,CAAC,KAAK6C,QAAN,EAAgB6G,uBAAhB,CAApB;;EACA,SAAK7G,QAAL,CAAcgB,KAAd;EACD;EAGD;EACA;;;WAEAkD,gBAAA,yBAAgB;EACd,QAAMuC,kBAAkB,GACtB,KAAKzG,QAAL,CAAc0G,YAAd,GAA6BxK,QAAQ,CAAC0D,eAAT,CAAyB+G,YADxD;;EAGA,QAAK,CAAC,KAAKzD,kBAAN,IAA4BuD,kBAA5B,IAAkD,CAAC9G,KAApD,IAA+D,KAAKuD,kBAAL,IAA2B,CAACuD,kBAA5B,IAAkD9G,KAArH,EAA6H;EAC3H,WAAKK,QAAL,CAAcpB,KAAd,CAAoBkI,WAApB,GAAqC,KAAKzD,eAA1C;EACD;;EAED,QAAK,KAAKH,kBAAL,IAA2B,CAACuD,kBAA5B,IAAkD,CAAC9G,KAApD,IAA+D,CAAC,KAAKuD,kBAAN,IAA4BuD,kBAA5B,IAAkD9G,KAArH,EAA6H;EAC3H,WAAKK,QAAL,CAAcpB,KAAd,CAAoBmI,YAApB,GAAsC,KAAK1D,eAA3C;EACD;EACF;;WAED0C,oBAAA,6BAAoB;EAClB,SAAK/F,QAAL,CAAcpB,KAAd,CAAoBkI,WAApB,GAAkC,EAAlC;EACA,SAAK9G,QAAL,CAAcpB,KAAd,CAAoBmI,YAApB,GAAmC,EAAnC;EACD;;WAED/C,kBAAA,2BAAkB;EAChB,QAAMgD,IAAI,GAAG9K,QAAQ,CAACoD,IAAT,CAAc2H,qBAAd,EAAb;EACA,SAAK/D,kBAAL,GAA0BgE,IAAI,CAACC,KAAL,CAAWH,IAAI,CAACI,IAAL,GAAYJ,IAAI,CAACK,KAA5B,IAAqChL,MAAM,CAACiL,UAAtE;EACA,SAAKjE,eAAL,GAAuB,KAAKkE,kBAAL,EAAvB;EACD;;WAEDtD,gBAAA,yBAAgB;EAAA;;EACd,QAAI,KAAKf,kBAAT,EAA6B;EAC3B;EACA;EAEA;EACAJ,MAAAA,kCAAc,CAAC0E,IAAf,CAAoBhF,sBAApB,EACGtE,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,YAAM6L,aAAa,GAAG7L,OAAO,CAACgD,KAAR,CAAcmI,YAApC;EACA,YAAMW,iBAAiB,GAAGrL,MAAM,CAACC,gBAAP,CAAwBV,OAAxB,EAAiC,eAAjC,CAA1B;EACA+L,QAAAA,+BAAW,CAACC,gBAAZ,CAA6BhM,OAA7B,EAAsC,eAAtC,EAAuD6L,aAAvD;EACA7L,QAAAA,OAAO,CAACgD,KAAR,CAAcmI,YAAd,GAAgCrK,MAAM,CAACC,UAAP,CAAkB+K,iBAAlB,IAAuC,OAAI,CAACrE,eAA5E;EACD,OANH,EAL2B;;EAc3BP,MAAAA,kCAAc,CAAC0E,IAAf,CAAoB/E,uBAApB,EACGvE,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,YAAMiM,YAAY,GAAGjM,OAAO,CAACgD,KAAR,CAAckJ,WAAnC;EACA,YAAMC,gBAAgB,GAAG1L,MAAM,CAACC,gBAAP,CAAwBV,OAAxB,EAAiC,cAAjC,CAAzB;EACA+L,QAAAA,+BAAW,CAACC,gBAAZ,CAA6BhM,OAA7B,EAAsC,cAAtC,EAAsDiM,YAAtD;EACAjM,QAAAA,OAAO,CAACgD,KAAR,CAAckJ,WAAd,GAA+BpL,MAAM,CAACC,UAAP,CAAkBoL,gBAAlB,IAAsC,OAAI,CAAC1E,eAA1E;EACD,OANH,EAd2B;;EAuB3B,UAAMoE,aAAa,GAAGvL,QAAQ,CAACoD,IAAT,CAAcV,KAAd,CAAoBmI,YAA1C;EACA,UAAMW,iBAAiB,GAAGrL,MAAM,CAACC,gBAAP,CAAwBJ,QAAQ,CAACoD,IAAjC,EAAuC,eAAvC,CAA1B;EAEAqI,MAAAA,+BAAW,CAACC,gBAAZ,CAA6B1L,QAAQ,CAACoD,IAAtC,EAA4C,eAA5C,EAA6DmI,aAA7D;EACAvL,MAAAA,QAAQ,CAACoD,IAAT,CAAcV,KAAd,CAAoBmI,YAApB,GAAsCrK,MAAM,CAACC,UAAP,CAAkB+K,iBAAlB,IAAuC,KAAKrE,eAAlF;EACD;;EAEDnH,IAAAA,QAAQ,CAACoD,IAAT,CAAcoE,SAAd,CAAwBgC,GAAxB,CAA4B1D,eAA5B;EACD;;WAEDgE,kBAAA,2BAAkB;EAChB;EACAlD,IAAAA,kCAAc,CAAC0E,IAAf,CAAoBhF,sBAApB,EACGtE,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,UAAMoM,OAAO,GAAGL,+BAAW,CAACM,gBAAZ,CAA6BrM,OAA7B,EAAsC,eAAtC,CAAhB;;EACA,UAAI,OAAOoM,OAAP,KAAmB,WAAvB,EAAoC;EAClCL,QAAAA,+BAAW,CAACO,mBAAZ,CAAgCtM,OAAhC,EAAyC,eAAzC;EACAA,QAAAA,OAAO,CAACgD,KAAR,CAAcmI,YAAd,GAA6BiB,OAA7B;EACD;EACF,KAPH,EAFgB;;EAYhBlF,IAAAA,kCAAc,CAAC0E,IAAf,MAAuB/E,uBAAvB,EACGvE,OADH,CACW,UAAAtC,OAAO,EAAI;EAClB,UAAMuM,MAAM,GAAGR,+BAAW,CAACM,gBAAZ,CAA6BrM,OAA7B,EAAsC,cAAtC,CAAf;;EACA,UAAI,OAAOuM,MAAP,KAAkB,WAAtB,EAAmC;EACjCR,QAAAA,+BAAW,CAACO,mBAAZ,CAAgCtM,OAAhC,EAAyC,cAAzC;EACAA,QAAAA,OAAO,CAACgD,KAAR,CAAckJ,WAAd,GAA4BK,MAA5B;EACD;EACF,KAPH,EAZgB;;EAsBhB,QAAMH,OAAO,GAAGL,+BAAW,CAACM,gBAAZ,CAA6B/L,QAAQ,CAACoD,IAAtC,EAA4C,eAA5C,CAAhB;;EACA,QAAI,OAAO0I,OAAP,KAAmB,WAAvB,EAAoC;EAClC9L,MAAAA,QAAQ,CAACoD,IAAT,CAAcV,KAAd,CAAoBmI,YAApB,GAAmC,EAAnC;EACD,KAFD,MAEO;EACLY,MAAAA,+BAAW,CAACO,mBAAZ,CAAgChM,QAAQ,CAACoD,IAAzC,EAA+C,eAA/C;EACApD,MAAAA,QAAQ,CAACoD,IAAT,CAAcV,KAAd,CAAoBmI,YAApB,GAAmCiB,OAAnC;EACD;EACF;;WAEDT,qBAAA,8BAAqB;EAAE;EACrB,QAAMa,SAAS,GAAGlM,QAAQ,CAACkK,aAAT,CAAuB,KAAvB,CAAlB;EACAgC,IAAAA,SAAS,CAAC/B,SAAV,GAAsBvE,6BAAtB;EACA5F,IAAAA,QAAQ,CAACoD,IAAT,CAAcgG,WAAd,CAA0B8C,SAA1B;EACA,QAAMC,cAAc,GAAGD,SAAS,CAACnB,qBAAV,GAAkCqB,KAAlC,GAA0CF,SAAS,CAACG,WAA3E;EACArM,IAAAA,QAAQ,CAACoD,IAAT,CAAc4G,WAAd,CAA0BkC,SAA1B;EACA,WAAOC,cAAP;EACD;;;UAIMG,kBAAP,yBAAuB1K,MAAvB,EAA+ByF,aAA/B,EAA8C;EAC5C,WAAO,KAAKkF,IAAL,CAAU,YAAY;EAC3B,UAAIC,IAAI,GAAGzI,wBAAI,CAACO,OAAL,CAAa,IAAb,EAAmBJ,QAAnB,CAAX;;EACA,UAAMuC,OAAO,gBACR9B,OADQ,EAER8G,+BAAW,CAACgB,iBAAZ,CAA8B,IAA9B,CAFQ,EAGP,OAAO7K,MAAP,KAAkB,QAAlB,IAA8BA,MAA9B,GAAuCA,MAAvC,GAAgD,EAHzC,CAAb;;EAMA,UAAI,CAAC4K,IAAL,EAAW;EACTA,QAAAA,IAAI,GAAG,IAAIhG,KAAJ,CAAU,IAAV,EAAgBC,OAAhB,CAAP;EACD;;EAED,UAAI,OAAO7E,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,YAAI,OAAO4K,IAAI,CAAC5K,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,gBAAM,IAAI8K,SAAJ,wBAAkC9K,MAAlC,QAAN;EACD;;EAED4K,QAAAA,IAAI,CAAC5K,MAAD,CAAJ,CAAayF,aAAb;EACD;EACF,KAnBM,CAAP;EAoBD;;;;0BAzcoB;EACnB,aAAO1C,OAAP;EACD;;;0BAEqB;EACpB,aAAOT,QAAP;EACD;;;;IAtBiBL;EA4dpB;EACA;EACA;EACA;EACA;;;AAEA8D,kCAAY,CAACQ,EAAb,CAAgBnI,QAAhB,EAA0B2F,oBAA1B,EAAgDS,oBAAhD,EAAsE,UAAUgC,KAAV,EAAiB;EAAA;;EACrF,MAAME,MAAM,GAAGvI,sBAAsB,CAAC,IAAD,CAArC;;EAEA,MAAI,KAAK4M,OAAL,KAAiB,GAAjB,IAAwB,KAAKA,OAAL,KAAiB,MAA7C,EAAqD;EACnDvE,IAAAA,KAAK,CAACK,cAAN;EACD;;EAEDd,EAAAA,gCAAY,CAACU,GAAb,CAAiBC,MAAjB,EAAyBnD,UAAzB,EAAqC,UAAAuC,SAAS,EAAI;EAChD,QAAIA,SAAS,CAACG,gBAAd,EAAgC;EAC9B;EACA;EACD;;EAEDF,IAAAA,gCAAY,CAACU,GAAb,CAAiBC,MAAjB,EAAyBpD,YAAzB,EAAuC,YAAM;EAC3C,UAAIzC,SAAS,CAAC,OAAD,CAAb,EAAqB;EACnB,QAAA,OAAI,CAACqC,KAAL;EACD;EACF,KAJD;EAKD,GAXD;EAaA,MAAI0H,IAAI,GAAGzI,wBAAI,CAACO,OAAL,CAAagE,MAAb,EAAqBpE,QAArB,CAAX;;EACA,MAAI,CAACsI,IAAL,EAAW;EACT,QAAM5K,MAAM,gBACP6J,+BAAW,CAACgB,iBAAZ,CAA8BnE,MAA9B,CADO,EAEPmD,+BAAW,CAACgB,iBAAZ,CAA8B,IAA9B,CAFO,CAAZ;;EAKAD,IAAAA,IAAI,GAAG,IAAIhG,KAAJ,CAAU8B,MAAV,EAAkB1G,MAAlB,CAAP;EACD;;EAED4K,EAAAA,IAAI,CAACjF,IAAL,CAAU,IAAV;EACD,CA/BD;EAiCA;EACA;EACA;EACA;EACA;EACA;;EAEAjE,kBAAkB,CAAC,YAAM;EACvB,MAAMsJ,CAAC,GAAG1J,SAAS,EAAnB;EACA;;EACA,MAAI0J,CAAJ,EAAO;EACL,QAAMC,kBAAkB,GAAGD,CAAC,CAACE,EAAF,CAAKvI,IAAL,CAA3B;EACAqI,IAAAA,CAAC,CAACE,EAAF,CAAKvI,IAAL,IAAaiC,KAAK,CAAC8F,eAAnB;EACAM,IAAAA,CAAC,CAACE,EAAF,CAAKvI,IAAL,EAAWwI,WAAX,GAAyBvG,KAAzB;;EACAoG,IAAAA,CAAC,CAACE,EAAF,CAAKvI,IAAL,EAAWyI,UAAX,GAAwB,YAAM;EAC5BJ,MAAAA,CAAC,CAACE,EAAF,CAAKvI,IAAL,IAAasI,kBAAb;EACA,aAAOrG,KAAK,CAAC8F,eAAb;EACD,KAHD;EAID;EACF,CAZiB,CAAlB;;;;;;;;"} |