Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dropdown.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 1a9d4df8629375c772a1799ae065c4d714fabe83 (plain)
1
{"version":3,"file":"dropdown.js","sources":["../src/util/index.js","../src/dropdown.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util/index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/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 => ({}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase())\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst getUID = prefix => {\n  do {\n    prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n  } while (document.getElementById(prefix))\n\n  return prefix\n}\n\nconst getSelector = element => {\n  let selector = element.getAttribute('data-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 {\n    transitionDuration,\n    transitionDelay\n  } = window.getComputedStyle(element)\n\n  const floatTransitionDuration = parseFloat(transitionDuration)\n  const floatTransitionDelay = 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 (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n}\n\nconst triggerTransitionEnd = element => {\n  const evt = document.createEvent('HTMLEvents')\n\n  evt.initEvent(TRANSITION_END, true, true)\n  element.dispatchEvent(evt)\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  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)\n    .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 makeArray = nodeList => {\n  if (!nodeList) {\n    return []\n  }\n\n  return [].slice.call(nodeList)\n}\n\nconst isVisible = element => {\n  if (!element) {\n    return false\n  }\n\n  if (element.style && element.parentNode && element.parentNode.style) {\n    return element.style.display !== 'none' &&\n      element.parentNode.style.display !== 'none' &&\n      element.style.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-no-jquery')) {\n    return jQuery\n  }\n\n  return null\n}\n\nexport {\n  getjQuery,\n  TRANSITION_END,\n  getUID,\n  getSelectorFromElement,\n  getElementFromSelector,\n  getTransitionDurationFromElement,\n  triggerTransitionEnd,\n  isElement,\n  emulateTransitionEnd,\n  typeCheckConfig,\n  makeArray,\n  isVisible,\n  findShadowRoot,\n  noop,\n  reflow\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n  getjQuery,\n  getElementFromSelector,\n  isElement,\n  makeArray,\n  noop,\n  typeCheckConfig\n} from './util/index'\nimport Data from './dom/data'\nimport EventHandler from './dom/event-handler'\nimport Manipulator from './dom/manipulator'\nimport Popper from 'popper.js'\nimport SelectorEngine from './dom/selector-engine'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n  HIDE: `hide${EVENT_KEY}`,\n  HIDDEN: `hidden${EVENT_KEY}`,\n  SHOW: `show${EVENT_KEY}`,\n  SHOWN: `shown${EVENT_KEY}`,\n  CLICK: `click${EVENT_KEY}`,\n  CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n  KEYDOWN_DATA_API: `keydown${EVENT_KEY}${DATA_API_KEY}`,\n  KEYUP_DATA_API: `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n  DISABLED: 'disabled',\n  SHOW: 'show',\n  DROPUP: 'dropup',\n  DROPRIGHT: 'dropright',\n  DROPLEFT: 'dropleft',\n  MENURIGHT: 'dropdown-menu-right',\n  POSITION_STATIC: 'position-static'\n}\n\nconst Selector = {\n  DATA_TOGGLE: '[data-toggle=\"dropdown\"]',\n  FORM_CHILD: '.dropdown form',\n  MENU: '.dropdown-menu',\n  NAVBAR_NAV: '.navbar-nav',\n  VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n  TOP: 'top-start',\n  TOPEND: 'top-end',\n  BOTTOM: 'bottom-start',\n  BOTTOMEND: 'bottom-end',\n  RIGHT: 'right-start',\n  RIGHTEND: 'right-end',\n  LEFT: 'left-start',\n  LEFTEND: 'left-end'\n}\n\nconst Default = {\n  offset: 0,\n  flip: true,\n  boundary: 'scrollParent',\n  reference: 'toggle',\n  display: 'dynamic',\n  popperConfig: null\n}\n\nconst DefaultType = {\n  offset: '(number|string|function)',\n  flip: 'boolean',\n  boundary: '(string|element)',\n  reference: '(string|element)',\n  display: 'string',\n  popperConfig: '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n  constructor(element, config) {\n    this._element = element\n    this._popper = null\n    this._config = this._getConfig(config)\n    this._menu = this._getMenuElement()\n    this._inNavbar = this._detectNavbar()\n\n    this._addEventListeners()\n    Data.setData(element, DATA_KEY, this)\n  }\n\n  // Getters\n\n  static get VERSION() {\n    return VERSION\n  }\n\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  // Public\n\n  toggle() {\n    if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED)) {\n      return\n    }\n\n    const isActive = this._menu.classList.contains(ClassName.SHOW)\n\n    Dropdown.clearMenus()\n\n    if (isActive) {\n      return\n    }\n\n    this.show()\n  }\n\n  show() {\n    if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || this._menu.classList.contains(ClassName.SHOW)) {\n      return\n    }\n\n    const parent = Dropdown.getParentFromElement(this._element)\n    const relatedTarget = {\n      relatedTarget: this._element\n    }\n\n    const showEvent = EventHandler.trigger(parent, Event.SHOW, relatedTarget)\n\n    if (showEvent.defaultPrevented) {\n      return\n    }\n\n    // Disable totally Popper.js for Dropdown in Navbar\n    if (!this._inNavbar) {\n      if (typeof Popper === 'undefined') {\n        throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org)')\n      }\n\n      let referenceElement = this._element\n\n      if (this._config.reference === 'parent') {\n        referenceElement = parent\n      } else if (isElement(this._config.reference)) {\n        referenceElement = this._config.reference\n\n        // Check if it's jQuery element\n        if (typeof this._config.reference.jquery !== 'undefined') {\n          referenceElement = this._config.reference[0]\n        }\n      }\n\n      // If boundary is not `scrollParent`, then set position to `static`\n      // to allow the menu to \"escape\" the scroll parent's boundaries\n      // https://github.com/twbs/bootstrap/issues/24251\n      if (this._config.boundary !== 'scrollParent') {\n        parent.classList.add(ClassName.POSITION_STATIC)\n      }\n\n      this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n    }\n\n    // If this is a touch-enabled device we add extra\n    // empty mouseover listeners to the body's immediate children;\n    // only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement &&\n      !makeArray(SelectorEngine.closest(parent, Selector.NAVBAR_NAV)).length) {\n      makeArray(document.body.children)\n        .forEach(elem => EventHandler.on(elem, 'mouseover', null, noop()))\n    }\n\n    this._element.focus()\n    this._element.setAttribute('aria-expanded', true)\n\n    Manipulator.toggleClass(this._menu, ClassName.SHOW)\n    Manipulator.toggleClass(parent, ClassName.SHOW)\n    EventHandler.trigger(parent, Event.SHOWN, relatedTarget)\n  }\n\n  hide() {\n    if (this._element.disabled || this._element.classList.contains(ClassName.DISABLED) || !this._menu.classList.contains(ClassName.SHOW)) {\n      return\n    }\n\n    const parent = Dropdown.getParentFromElement(this._element)\n    const relatedTarget = {\n      relatedTarget: this._element\n    }\n\n    const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    if (this._popper) {\n      this._popper.destroy()\n    }\n\n    Manipulator.toggleClass(this._menu, ClassName.SHOW)\n    Manipulator.toggleClass(parent, ClassName.SHOW)\n    EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n  }\n\n  dispose() {\n    Data.removeData(this._element, DATA_KEY)\n    EventHandler.off(this._element, EVENT_KEY)\n    this._element = null\n    this._menu = null\n    if (this._popper) {\n      this._popper.destroy()\n      this._popper = null\n    }\n  }\n\n  update() {\n    this._inNavbar = this._detectNavbar()\n    if (this._popper) {\n      this._popper.scheduleUpdate()\n    }\n  }\n\n  // Private\n\n  _addEventListeners() {\n    EventHandler.on(this._element, Event.CLICK, event => {\n      event.preventDefault()\n      event.stopPropagation()\n      this.toggle()\n    })\n  }\n\n  _getConfig(config) {\n    config = {\n      ...this.constructor.Default,\n      ...Manipulator.getDataAttributes(this._element),\n      ...config\n    }\n\n    typeCheckConfig(\n      NAME,\n      config,\n      this.constructor.DefaultType\n    )\n\n    return config\n  }\n\n  _getMenuElement() {\n    const parent = Dropdown.getParentFromElement(this._element)\n\n    return SelectorEngine.findOne(Selector.MENU, parent)\n  }\n\n  _getPlacement() {\n    const parentDropdown = this._element.parentNode\n    let placement = AttachmentMap.BOTTOM\n\n    // Handle dropup\n    if (parentDropdown.classList.contains(ClassName.DROPUP)) {\n      placement = AttachmentMap.TOP\n      if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n        placement = AttachmentMap.TOPEND\n      }\n    } else if (parentDropdown.classList.contains(ClassName.DROPRIGHT)) {\n      placement = AttachmentMap.RIGHT\n    } else if (parentDropdown.classList.contains(ClassName.DROPLEFT)) {\n      placement = AttachmentMap.LEFT\n    } else if (this._menu.classList.contains(ClassName.MENURIGHT)) {\n      placement = AttachmentMap.BOTTOMEND\n    }\n\n    return placement\n  }\n\n  _detectNavbar() {\n    return Boolean(SelectorEngine.closest(this._element, '.navbar'))\n  }\n\n  _getOffset() {\n    const offset = {}\n\n    if (typeof this._config.offset === 'function') {\n      offset.fn = data => {\n        data.offsets = {\n          ...data.offsets,\n          ...this._config.offset(data.offsets, this._element) || {}\n        }\n\n        return data\n      }\n    } else {\n      offset.offset = this._config.offset\n    }\n\n    return offset\n  }\n\n  _getPopperConfig() {\n    const popperConfig = {\n      placement: this._getPlacement(),\n      modifiers: {\n        offset: this._getOffset(),\n        flip: {\n          enabled: this._config.flip\n        },\n        preventOverflow: {\n          boundariesElement: this._config.boundary\n        }\n      }\n    }\n\n    // Disable Popper.js if we have a static display\n    if (this._config.display === 'static') {\n      popperConfig.modifiers.applyStyle = {\n        enabled: false\n      }\n    }\n\n    return {\n      ...popperConfig,\n      ...this._config.popperConfig\n    }\n  }\n\n  // Static\n\n  static dropdownInterface(element, config) {\n    let data = Data.getData(element, DATA_KEY)\n    const _config = typeof config === 'object' ? config : null\n\n    if (!data) {\n      data = new Dropdown(element, _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]()\n    }\n  }\n\n  static jQueryInterface(config) {\n    return this.each(function () {\n      Dropdown.dropdownInterface(this, config)\n    })\n  }\n\n  static clearMenus(event) {\n    if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n      (event.type === 'keyup' && event.which !== TAB_KEYCODE))) {\n      return\n    }\n\n    const toggles = makeArray(SelectorEngine.find(Selector.DATA_TOGGLE))\n    for (let i = 0, len = toggles.length; i < len; i++) {\n      const parent = Dropdown.getParentFromElement(toggles[i])\n      const context = Data.getData(toggles[i], DATA_KEY)\n      const relatedTarget = {\n        relatedTarget: toggles[i]\n      }\n\n      if (event && event.type === 'click') {\n        relatedTarget.clickEvent = event\n      }\n\n      if (!context) {\n        continue\n      }\n\n      const dropdownMenu = context._menu\n      if (!parent.classList.contains(ClassName.SHOW)) {\n        continue\n      }\n\n      if (event && ((event.type === 'click' &&\n          /input|textarea/i.test(event.target.tagName)) ||\n          (event.type === 'keyup' && event.which === TAB_KEYCODE)) &&\n          parent.contains(event.target)) {\n        continue\n      }\n\n      const hideEvent = EventHandler.trigger(parent, Event.HIDE, relatedTarget)\n      if (hideEvent.defaultPrevented) {\n        continue\n      }\n\n      // If this is a touch-enabled device we remove the extra\n      // empty mouseover listeners we added for iOS support\n      if ('ontouchstart' in document.documentElement) {\n        makeArray(document.body.children)\n          .forEach(elem => EventHandler.off(elem, 'mouseover', null, noop()))\n      }\n\n      toggles[i].setAttribute('aria-expanded', 'false')\n\n      if (context._popper) {\n        context._popper.destroy()\n      }\n\n      dropdownMenu.classList.remove(ClassName.SHOW)\n      parent.classList.remove(ClassName.SHOW)\n      EventHandler.trigger(parent, Event.HIDDEN, relatedTarget)\n    }\n  }\n\n  static getParentFromElement(element) {\n    return getElementFromSelector(element) || element.parentNode\n  }\n\n  static dataApiKeydownHandler(event) {\n    // If not input/textarea:\n    //  - And not a key in REGEXP_KEYDOWN => not a dropdown command\n    // If input/textarea:\n    //  - If space key => not a dropdown command\n    //  - If key is other than escape\n    //    - If key is not up or down => not a dropdown command\n    //    - If trigger inside the menu => not a dropdown command\n    if (/input|textarea/i.test(event.target.tagName) ?\n      event.which === SPACE_KEYCODE || (event.which !== ESCAPE_KEYCODE &&\n      ((event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE) ||\n        SelectorEngine.closest(event.target, Selector.MENU))) :\n      !REGEXP_KEYDOWN.test(event.which)) {\n      return\n    }\n\n    event.preventDefault()\n    event.stopPropagation()\n\n    if (this.disabled || this.classList.contains(ClassName.DISABLED)) {\n      return\n    }\n\n    const parent = Dropdown.getParentFromElement(this)\n    const isActive = parent.classList.contains(ClassName.SHOW)\n\n    if (!isActive || (isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE))) {\n      if (event.which === ESCAPE_KEYCODE) {\n        SelectorEngine.findOne(Selector.DATA_TOGGLE, parent).focus()\n      }\n\n      Dropdown.clearMenus()\n      return\n    }\n\n    const items = makeArray(SelectorEngine.find(Selector.VISIBLE_ITEMS, parent))\n\n    if (!items.length) {\n      return\n    }\n\n    let index = items.indexOf(event.target)\n\n    if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n      index--\n    }\n\n    if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n      index++\n    }\n\n    if (index < 0) {\n      index = 0\n    }\n\n    items[index].focus()\n  }\n\n  static getInstance(element) {\n    return Data.getData(element, DATA_KEY)\n  }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown.dataApiKeydownHandler)\nEventHandler.on(document, Event.CLICK_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, Event.KEYUP_DATA_API, Dropdown.clearMenus)\nEventHandler.on(document, Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n  event.preventDefault()\n  event.stopPropagation()\n  Dropdown.dropdownInterface(this, 'toggle')\n})\nEventHandler\n  .on(document, Event.CLICK_DATA_API, Selector.FORM_CHILD, e => e.stopPropagation())\n\nconst $ = getjQuery()\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n * add .dropdown to jQuery only if jQuery is present\n */\n/* istanbul ignore if */\nif ($) {\n  const JQUERY_NO_CONFLICT = $.fn[NAME]\n  $.fn[NAME] = Dropdown.jQueryInterface\n  $.fn[NAME].Constructor = Dropdown\n  $.fn[NAME].noConflict = () => {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Dropdown.jQueryInterface\n  }\n}\n\nexport default Dropdown\n"],"names":["toType","obj","toString","call","match","toLowerCase","getSelector","element","selector","getAttribute","hrefAttr","trim","getElementFromSelector","document","querySelector","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","Object","keys","forEach","property","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","makeArray","nodeList","slice","noop","getjQuery","window","jQuery","body","hasAttribute","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","POSITION_STATIC","Selector","DATA_TOGGLE","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHT","RIGHTEND","LEFT","LEFTEND","Default","offset","flip","boundary","reference","display","popperConfig","DefaultType","Dropdown","_element","_popper","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","Data","setData","toggle","disabled","classList","contains","isActive","clearMenus","show","parent","getParentFromElement","relatedTarget","showEvent","EventHandler","trigger","defaultPrevented","Popper","TypeError","referenceElement","jquery","add","_getPopperConfig","documentElement","SelectorEngine","closest","length","children","elem","on","focus","setAttribute","Manipulator","toggleClass","hide","hideEvent","destroy","dispose","removeData","off","update","scheduleUpdate","event","preventDefault","stopPropagation","constructor","getDataAttributes","findOne","_getPlacement","parentDropdown","parentNode","placement","Boolean","_getOffset","fn","data","offsets","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","dropdownInterface","getData","jQueryInterface","each","which","type","toggles","find","i","len","context","clickEvent","dropdownMenu","target","tagName","remove","dataApiKeydownHandler","items","index","indexOf","getInstance","e","$","JQUERY_NO_CONFLICT","Constructor","noConflict"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;;;;;AAOA;EAKA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAAAC,GAAG;EAAA,SAAK,GAAGC,QAAH,CAAYC,IAAZ,CAAiBF,GAAjB,EAAsBG,KAAtB,CAA4B,aAA5B,EAA2C,CAA3C,EAA8CC,WAA9C,EAAL;EAAA,CAAlB;AAEA;EAcA,IAAMC,WAAW,GAAG,SAAdA,WAAc,CAAAC,OAAO,EAAI;EAC7B,MAAIC,QAAQ,GAAGD,OAAO,CAACE,YAAR,CAAqB,aAArB,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;;EAuCA,IAAMO,SAAS,GAAG,SAAZA,SAAY,CAAAd,GAAG;EAAA,SAAI,CAACA,GAAG,CAAC,CAAD,CAAH,IAAUA,GAAX,EAAgBe,QAApB;EAAA,CAArB;;EAmBA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,aAAD,EAAgBC,MAAhB,EAAwBC,WAAxB,EAAwC;EAC9DC,EAAAA,MAAM,CAACC,IAAP,CAAYF,WAAZ,EACGG,OADH,CACW,UAAAC,QAAQ,EAAI;EACnB,QAAMC,aAAa,GAAGL,WAAW,CAACI,QAAD,CAAjC;EACA,QAAME,KAAK,GAAGP,MAAM,CAACK,QAAD,CAApB;EACA,QAAMG,SAAS,GAAGD,KAAK,IAAIX,SAAS,CAACW,KAAD,CAAlB,GAChB,SADgB,GAEhB1B,MAAM,CAAC0B,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,GAdH;EAeD,CAhBD;;EAkBA,IAAMO,SAAS,GAAG,SAAZA,SAAY,CAAAC,QAAQ,EAAI;EAC5B,MAAI,CAACA,QAAL,EAAe;EACb,WAAO,EAAP;EACD;;EAED,SAAO,GAAGC,KAAH,CAAS/B,IAAT,CAAc8B,QAAd,CAAP;EACD,CAND;;EA6CA,IAAME,IAAI,GAAG,SAAPA,IAAO;EAAA,SAAM,YAAY,EAAlB;EAAA,CAAb;;EAIA,IAAMC,SAAS,GAAG,SAAZA,SAAY,GAAM;EAAA,gBACHC,MADG;EAAA,MACdC,MADc,WACdA,MADc;;EAGtB,MAAIA,MAAM,IAAI,CAACzB,QAAQ,CAAC0B,IAAT,CAAcC,YAAd,CAA2B,gBAA3B,CAAf,EAA6D;EAC3D,WAAOF,MAAP;EACD;;EAED,SAAO,IAAP;EACD,CARD;;EC1JA;;;;;;EAMA,IAAMG,IAAI,GAAG,UAAb;EACA,IAAMC,OAAO,GAAG,OAAhB;EACA,IAAMC,QAAQ,GAAG,aAAjB;EACA,IAAMC,SAAS,SAAOD,QAAtB;EACA,IAAME,YAAY,GAAG,WAArB;EACA,IAAMC,cAAc,GAAG,EAAvB;;EACA,IAAMC,aAAa,GAAG,EAAtB;;EACA,IAAMC,WAAW,GAAG,CAApB;;EACA,IAAMC,gBAAgB,GAAG,EAAzB;;EACA,IAAMC,kBAAkB,GAAG,EAA3B;;EACA,IAAMC,wBAAwB,GAAG,CAAjC;;EACA,IAAMC,cAAc,GAAG,IAAIxB,MAAJ,CAAcqB,gBAAd,SAAkCC,kBAAlC,SAAwDJ,cAAxD,CAAvB;EAEA,IAAMO,KAAK,GAAG;EACZC,EAAAA,IAAI,WAASV,SADD;EAEZW,EAAAA,MAAM,aAAWX,SAFL;EAGZY,EAAAA,IAAI,WAASZ,SAHD;EAIZa,EAAAA,KAAK,YAAUb,SAJH;EAKZc,EAAAA,KAAK,YAAUd,SALH;EAMZe,EAAAA,cAAc,YAAUf,SAAV,GAAsBC,YANxB;EAOZe,EAAAA,gBAAgB,cAAYhB,SAAZ,GAAwBC,YAP5B;EAQZgB,EAAAA,cAAc,YAAUjB,SAAV,GAAsBC;EARxB,CAAd;EAWA,IAAMiB,SAAS,GAAG;EAChBC,EAAAA,QAAQ,EAAE,UADM;EAEhBP,EAAAA,IAAI,EAAE,MAFU;EAGhBQ,EAAAA,MAAM,EAAE,QAHQ;EAIhBC,EAAAA,SAAS,EAAE,WAJK;EAKhBC,EAAAA,QAAQ,EAAE,UALM;EAMhBC,EAAAA,SAAS,EAAE,qBANK;EAOhBC,EAAAA,eAAe,EAAE;EAPD,CAAlB;EAUA,IAAMC,QAAQ,GAAG;EACfC,EAAAA,WAAW,EAAE,0BADE;EAEfC,EAAAA,UAAU,EAAE,gBAFG;EAGfC,EAAAA,IAAI,EAAE,gBAHS;EAIfC,EAAAA,UAAU,EAAE,aAJG;EAKfC,EAAAA,aAAa,EAAE;EALA,CAAjB;EAQA,IAAMC,aAAa,GAAG;EACpBC,EAAAA,GAAG,EAAE,WADe;EAEpBC,EAAAA,MAAM,EAAE,SAFY;EAGpBC,EAAAA,MAAM,EAAE,cAHY;EAIpBC,EAAAA,SAAS,EAAE,YAJS;EAKpBC,EAAAA,KAAK,EAAE,aALa;EAMpBC,EAAAA,QAAQ,EAAE,WANU;EAOpBC,EAAAA,IAAI,EAAE,YAPc;EAQpBC,EAAAA,OAAO,EAAE;EARW,CAAtB;EAWA,IAAMC,OAAO,GAAG;EACdC,EAAAA,MAAM,EAAE,CADM;EAEdC,EAAAA,IAAI,EAAE,IAFQ;EAGdC,EAAAA,QAAQ,EAAE,cAHI;EAIdC,EAAAA,SAAS,EAAE,QAJG;EAKdC,EAAAA,OAAO,EAAE,SALK;EAMdC,EAAAA,YAAY,EAAE;EANA,CAAhB;EASA,IAAMC,WAAW,GAAG;EAClBN,EAAAA,MAAM,EAAE,0BADU;EAElBC,EAAAA,IAAI,EAAE,SAFY;EAGlBC,EAAAA,QAAQ,EAAE,kBAHQ;EAIlBC,EAAAA,SAAS,EAAE,kBAJO;EAKlBC,EAAAA,OAAO,EAAE,QALS;EAMlBC,EAAAA,YAAY,EAAE;EANI,CAApB;EASA;;;;;;MAMME;;;EACJ,oBAAYrF,OAAZ,EAAqBY,MAArB,EAA6B;EAC3B,SAAK0E,QAAL,GAAgBtF,OAAhB;EACA,SAAKuF,OAAL,GAAe,IAAf;EACA,SAAKC,OAAL,GAAe,KAAKC,UAAL,CAAgB7E,MAAhB,CAAf;EACA,SAAK8E,KAAL,GAAa,KAAKC,eAAL,EAAb;EACA,SAAKC,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;EAEA,SAAKC,kBAAL;;EACAC,IAAAA,IAAI,CAACC,OAAL,CAAahG,OAAb,EAAsBoC,QAAtB,EAAgC,IAAhC;EACD;;;;;EAgBD;WAEA6D,SAAA,kBAAS;EACP,QAAI,KAAKX,QAAL,CAAcY,QAAd,IAA0B,KAAKZ,QAAL,CAAca,SAAd,CAAwBC,QAAxB,CAAiC7C,SAAS,CAACC,QAA3C,CAA9B,EAAoF;EAClF;EACD;;EAED,QAAM6C,QAAQ,GAAG,KAAKX,KAAL,CAAWS,SAAX,CAAqBC,QAArB,CAA8B7C,SAAS,CAACN,IAAxC,CAAjB;;EAEAoC,IAAAA,QAAQ,CAACiB,UAAT;;EAEA,QAAID,QAAJ,EAAc;EACZ;EACD;;EAED,SAAKE,IAAL;EACD;;WAEDA,OAAA,gBAAO;EACL,QAAI,KAAKjB,QAAL,CAAcY,QAAd,IAA0B,KAAKZ,QAAL,CAAca,SAAd,CAAwBC,QAAxB,CAAiC7C,SAAS,CAACC,QAA3C,CAA1B,IAAkF,KAAKkC,KAAL,CAAWS,SAAX,CAAqBC,QAArB,CAA8B7C,SAAS,CAACN,IAAxC,CAAtF,EAAqI;EACnI;EACD;;EAED,QAAMuD,MAAM,GAAGnB,QAAQ,CAACoB,oBAAT,CAA8B,KAAKnB,QAAnC,CAAf;EACA,QAAMoB,aAAa,GAAG;EACpBA,MAAAA,aAAa,EAAE,KAAKpB;EADA,KAAtB;EAIA,QAAMqB,SAAS,GAAGC,YAAY,CAACC,OAAb,CAAqBL,MAArB,EAA6B1D,KAAK,CAACG,IAAnC,EAAyCyD,aAAzC,CAAlB;;EAEA,QAAIC,SAAS,CAACG,gBAAd,EAAgC;EAC9B;EACD,KAdI;;;EAiBL,QAAI,CAAC,KAAKlB,SAAV,EAAqB;EACnB,UAAI,OAAOmB,MAAP,KAAkB,WAAtB,EAAmC;EACjC,cAAM,IAAIC,SAAJ,CAAc,kEAAd,CAAN;EACD;;EAED,UAAIC,gBAAgB,GAAG,KAAK3B,QAA5B;;EAEA,UAAI,KAAKE,OAAL,CAAaP,SAAb,KAA2B,QAA/B,EAAyC;EACvCgC,QAAAA,gBAAgB,GAAGT,MAAnB;EACD,OAFD,MAEO,IAAIhG,SAAS,CAAC,KAAKgF,OAAL,CAAaP,SAAd,CAAb,EAAuC;EAC5CgC,QAAAA,gBAAgB,GAAG,KAAKzB,OAAL,CAAaP,SAAhC,CAD4C;;EAI5C,YAAI,OAAO,KAAKO,OAAL,CAAaP,SAAb,CAAuBiC,MAA9B,KAAyC,WAA7C,EAA0D;EACxDD,UAAAA,gBAAgB,GAAG,KAAKzB,OAAL,CAAaP,SAAb,CAAuB,CAAvB,CAAnB;EACD;EACF,OAhBkB;EAmBnB;EACA;;;EACA,UAAI,KAAKO,OAAL,CAAaR,QAAb,KAA0B,cAA9B,EAA8C;EAC5CwB,QAAAA,MAAM,CAACL,SAAP,CAAiBgB,GAAjB,CAAqB5D,SAAS,CAACM,eAA/B;EACD;;EAED,WAAK0B,OAAL,GAAe,IAAIwB,MAAJ,CAAWE,gBAAX,EAA6B,KAAKvB,KAAlC,EAAyC,KAAK0B,gBAAL,EAAzC,CAAf;EACD,KA3CI;EA8CL;EACA;EACA;;;EACA,QAAI,kBAAkB9G,QAAQ,CAAC+G,eAA3B,IACF,CAAC5F,SAAS,CAAC6F,cAAc,CAACC,OAAf,CAAuBf,MAAvB,EAA+B1C,QAAQ,CAACI,UAAxC,CAAD,CAAT,CAA+DsD,MADlE,EAC0E;EACxE/F,MAAAA,SAAS,CAACnB,QAAQ,CAAC0B,IAAT,CAAcyF,QAAf,CAAT,CACGzG,OADH,CACW,UAAA0G,IAAI;EAAA,eAAId,YAAY,CAACe,EAAb,CAAgBD,IAAhB,EAAsB,WAAtB,EAAmC,IAAnC,EAAyC9F,IAAI,EAA7C,CAAJ;EAAA,OADf;EAED;;EAED,SAAK0D,QAAL,CAAcsC,KAAd;;EACA,SAAKtC,QAAL,CAAcuC,YAAd,CAA2B,eAA3B,EAA4C,IAA5C;;EAEAC,IAAAA,WAAW,CAACC,WAAZ,CAAwB,KAAKrC,KAA7B,EAAoCnC,SAAS,CAACN,IAA9C;EACA6E,IAAAA,WAAW,CAACC,WAAZ,CAAwBvB,MAAxB,EAAgCjD,SAAS,CAACN,IAA1C;EACA2D,IAAAA,YAAY,CAACC,OAAb,CAAqBL,MAArB,EAA6B1D,KAAK,CAACI,KAAnC,EAA0CwD,aAA1C;EACD;;WAEDsB,OAAA,gBAAO;EACL,QAAI,KAAK1C,QAAL,CAAcY,QAAd,IAA0B,KAAKZ,QAAL,CAAca,SAAd,CAAwBC,QAAxB,CAAiC7C,SAAS,CAACC,QAA3C,CAA1B,IAAkF,CAAC,KAAKkC,KAAL,CAAWS,SAAX,CAAqBC,QAArB,CAA8B7C,SAAS,CAACN,IAAxC,CAAvF,EAAsI;EACpI;EACD;;EAED,QAAMuD,MAAM,GAAGnB,QAAQ,CAACoB,oBAAT,CAA8B,KAAKnB,QAAnC,CAAf;EACA,QAAMoB,aAAa,GAAG;EACpBA,MAAAA,aAAa,EAAE,KAAKpB;EADA,KAAtB;EAIA,QAAM2C,SAAS,GAAGrB,YAAY,CAACC,OAAb,CAAqBL,MAArB,EAA6B1D,KAAK,CAACC,IAAnC,EAAyC2D,aAAzC,CAAlB;;EAEA,QAAIuB,SAAS,CAACnB,gBAAd,EAAgC;EAC9B;EACD;;EAED,QAAI,KAAKvB,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAa2C,OAAb;EACD;;EAEDJ,IAAAA,WAAW,CAACC,WAAZ,CAAwB,KAAKrC,KAA7B,EAAoCnC,SAAS,CAACN,IAA9C;EACA6E,IAAAA,WAAW,CAACC,WAAZ,CAAwBvB,MAAxB,EAAgCjD,SAAS,CAACN,IAA1C;EACA2D,IAAAA,YAAY,CAACC,OAAb,CAAqBL,MAArB,EAA6B1D,KAAK,CAACE,MAAnC,EAA2C0D,aAA3C;EACD;;WAEDyB,UAAA,mBAAU;EACRpC,IAAAA,IAAI,CAACqC,UAAL,CAAgB,KAAK9C,QAArB,EAA+BlD,QAA/B;EACAwE,IAAAA,YAAY,CAACyB,GAAb,CAAiB,KAAK/C,QAAtB,EAAgCjD,SAAhC;EACA,SAAKiD,QAAL,GAAgB,IAAhB;EACA,SAAKI,KAAL,GAAa,IAAb;;EACA,QAAI,KAAKH,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAa2C,OAAb;;EACA,WAAK3C,OAAL,GAAe,IAAf;EACD;EACF;;WAED+C,SAAA,kBAAS;EACP,SAAK1C,SAAL,GAAiB,KAAKC,aAAL,EAAjB;;EACA,QAAI,KAAKN,OAAT,EAAkB;EAChB,WAAKA,OAAL,CAAagD,cAAb;EACD;EACF;;;WAIDzC,qBAAA,8BAAqB;EAAA;;EACnBc,IAAAA,YAAY,CAACe,EAAb,CAAgB,KAAKrC,QAArB,EAA+BxC,KAAK,CAACK,KAArC,EAA4C,UAAAqF,KAAK,EAAI;EACnDA,MAAAA,KAAK,CAACC,cAAN;EACAD,MAAAA,KAAK,CAACE,eAAN;;EACA,MAAA,KAAI,CAACzC,MAAL;EACD,KAJD;EAKD;;WAEDR,aAAA,oBAAW7E,MAAX,EAAmB;EACjBA,IAAAA,MAAM,sBACD,KAAK+H,WAAL,CAAiB9D,OADhB,MAEDiD,WAAW,CAACc,iBAAZ,CAA8B,KAAKtD,QAAnC,CAFC,MAGD1E,MAHC,CAAN;EAMAF,IAAAA,eAAe,CACbwB,IADa,EAEbtB,MAFa,EAGb,KAAK+H,WAAL,CAAiBvD,WAHJ,CAAf;EAMA,WAAOxE,MAAP;EACD;;WAED+E,kBAAA,2BAAkB;EAChB,QAAMa,MAAM,GAAGnB,QAAQ,CAACoB,oBAAT,CAA8B,KAAKnB,QAAnC,CAAf;EAEA,WAAOgC,cAAc,CAACuB,OAAf,CAAuB/E,QAAQ,CAACG,IAAhC,EAAsCuC,MAAtC,CAAP;EACD;;WAEDsC,gBAAA,yBAAgB;EACd,QAAMC,cAAc,GAAG,KAAKzD,QAAL,CAAc0D,UAArC;EACA,QAAIC,SAAS,GAAG7E,aAAa,CAACG,MAA9B,CAFc;;EAKd,QAAIwE,cAAc,CAAC5C,SAAf,CAAyBC,QAAzB,CAAkC7C,SAAS,CAACE,MAA5C,CAAJ,EAAyD;EACvDwF,MAAAA,SAAS,GAAG7E,aAAa,CAACC,GAA1B;;EACA,UAAI,KAAKqB,KAAL,CAAWS,SAAX,CAAqBC,QAArB,CAA8B7C,SAAS,CAACK,SAAxC,CAAJ,EAAwD;EACtDqF,QAAAA,SAAS,GAAG7E,aAAa,CAACE,MAA1B;EACD;EACF,KALD,MAKO,IAAIyE,cAAc,CAAC5C,SAAf,CAAyBC,QAAzB,CAAkC7C,SAAS,CAACG,SAA5C,CAAJ,EAA4D;EACjEuF,MAAAA,SAAS,GAAG7E,aAAa,CAACK,KAA1B;EACD,KAFM,MAEA,IAAIsE,cAAc,CAAC5C,SAAf,CAAyBC,QAAzB,CAAkC7C,SAAS,CAACI,QAA5C,CAAJ,EAA2D;EAChEsF,MAAAA,SAAS,GAAG7E,aAAa,CAACO,IAA1B;EACD,KAFM,MAEA,IAAI,KAAKe,KAAL,CAAWS,SAAX,CAAqBC,QAArB,CAA8B7C,SAAS,CAACK,SAAxC,CAAJ,EAAwD;EAC7DqF,MAAAA,SAAS,GAAG7E,aAAa,CAACI,SAA1B;EACD;;EAED,WAAOyE,SAAP;EACD;;WAEDpD,gBAAA,yBAAgB;EACd,WAAOqD,OAAO,CAAC5B,cAAc,CAACC,OAAf,CAAuB,KAAKjC,QAA5B,EAAsC,SAAtC,CAAD,CAAd;EACD;;WAED6D,aAAA,sBAAa;EAAA;;EACX,QAAMrE,MAAM,GAAG,EAAf;;EAEA,QAAI,OAAO,KAAKU,OAAL,CAAaV,MAApB,KAA+B,UAAnC,EAA+C;EAC7CA,MAAAA,MAAM,CAACsE,EAAP,GAAY,UAAAC,IAAI,EAAI;EAClBA,QAAAA,IAAI,CAACC,OAAL,sBACKD,IAAI,CAACC,OADV,MAEK,MAAI,CAAC9D,OAAL,CAAaV,MAAb,CAAoBuE,IAAI,CAACC,OAAzB,EAAkC,MAAI,CAAChE,QAAvC,KAAoD,EAFzD;EAKA,eAAO+D,IAAP;EACD,OAPD;EAQD,KATD,MASO;EACLvE,MAAAA,MAAM,CAACA,MAAP,GAAgB,KAAKU,OAAL,CAAaV,MAA7B;EACD;;EAED,WAAOA,MAAP;EACD;;WAEDsC,mBAAA,4BAAmB;EACjB,QAAMjC,YAAY,GAAG;EACnB8D,MAAAA,SAAS,EAAE,KAAKH,aAAL,EADQ;EAEnBS,MAAAA,SAAS,EAAE;EACTzE,QAAAA,MAAM,EAAE,KAAKqE,UAAL,EADC;EAETpE,QAAAA,IAAI,EAAE;EACJyE,UAAAA,OAAO,EAAE,KAAKhE,OAAL,CAAaT;EADlB,SAFG;EAKT0E,QAAAA,eAAe,EAAE;EACfC,UAAAA,iBAAiB,EAAE,KAAKlE,OAAL,CAAaR;EADjB;EALR;EAFQ,KAArB,CADiB;;EAejB,QAAI,KAAKQ,OAAL,CAAaN,OAAb,KAAyB,QAA7B,EAAuC;EACrCC,MAAAA,YAAY,CAACoE,SAAb,CAAuBI,UAAvB,GAAoC;EAClCH,QAAAA,OAAO,EAAE;EADyB,OAApC;EAGD;;EAED,8BACKrE,YADL,MAEK,KAAKK,OAAL,CAAaL,YAFlB;EAID;;;aAIMyE,oBAAP,2BAAyB5J,OAAzB,EAAkCY,MAAlC,EAA0C;EACxC,QAAIyI,IAAI,GAAGtD,IAAI,CAAC8D,OAAL,CAAa7J,OAAb,EAAsBoC,QAAtB,CAAX;;EACA,QAAMoD,OAAO,GAAG,OAAO5E,MAAP,KAAkB,QAAlB,GAA6BA,MAA7B,GAAsC,IAAtD;;EAEA,QAAI,CAACyI,IAAL,EAAW;EACTA,MAAAA,IAAI,GAAG,IAAIhE,QAAJ,CAAarF,OAAb,EAAsBwF,OAAtB,CAAP;EACD;;EAED,QAAI,OAAO5E,MAAP,KAAkB,QAAtB,EAAgC;EAC9B,UAAI,OAAOyI,IAAI,CAACzI,MAAD,CAAX,KAAwB,WAA5B,EAAyC;EACvC,cAAM,IAAIoG,SAAJ,wBAAkCpG,MAAlC,QAAN;EACD;;EAEDyI,MAAAA,IAAI,CAACzI,MAAD,CAAJ;EACD;EACF;;aAEMkJ,kBAAP,yBAAuBlJ,MAAvB,EAA+B;EAC7B,WAAO,KAAKmJ,IAAL,CAAU,YAAY;EAC3B1E,MAAAA,QAAQ,CAACuE,iBAAT,CAA2B,IAA3B,EAAiChJ,MAAjC;EACD,KAFM,CAAP;EAGD;;aAEM0F,aAAP,oBAAkBkC,KAAlB,EAAyB;EACvB,QAAIA,KAAK,KAAKA,KAAK,CAACwB,KAAN,KAAgBpH,wBAAhB,IACX4F,KAAK,CAACyB,IAAN,KAAe,OAAf,IAA0BzB,KAAK,CAACwB,KAAN,KAAgBvH,WADpC,CAAT,EAC4D;EAC1D;EACD;;EAED,QAAMyH,OAAO,GAAGzI,SAAS,CAAC6F,cAAc,CAAC6C,IAAf,CAAoBrG,QAAQ,CAACC,WAA7B,CAAD,CAAzB;;EACA,SAAK,IAAIqG,CAAC,GAAG,CAAR,EAAWC,GAAG,GAAGH,OAAO,CAAC1C,MAA9B,EAAsC4C,CAAC,GAAGC,GAA1C,EAA+CD,CAAC,EAAhD,EAAoD;EAClD,UAAM5D,MAAM,GAAGnB,QAAQ,CAACoB,oBAAT,CAA8ByD,OAAO,CAACE,CAAD,CAArC,CAAf;EACA,UAAME,OAAO,GAAGvE,IAAI,CAAC8D,OAAL,CAAaK,OAAO,CAACE,CAAD,CAApB,EAAyBhI,QAAzB,CAAhB;EACA,UAAMsE,aAAa,GAAG;EACpBA,QAAAA,aAAa,EAAEwD,OAAO,CAACE,CAAD;EADF,OAAtB;;EAIA,UAAI5B,KAAK,IAAIA,KAAK,CAACyB,IAAN,KAAe,OAA5B,EAAqC;EACnCvD,QAAAA,aAAa,CAAC6D,UAAd,GAA2B/B,KAA3B;EACD;;EAED,UAAI,CAAC8B,OAAL,EAAc;EACZ;EACD;;EAED,UAAME,YAAY,GAAGF,OAAO,CAAC5E,KAA7B;;EACA,UAAI,CAACc,MAAM,CAACL,SAAP,CAAiBC,QAAjB,CAA0B7C,SAAS,CAACN,IAApC,CAAL,EAAgD;EAC9C;EACD;;EAED,UAAIuF,KAAK,KAAMA,KAAK,CAACyB,IAAN,KAAe,OAAf,IACX,kBAAkB3I,IAAlB,CAAuBkH,KAAK,CAACiC,MAAN,CAAaC,OAApC,CADU,IAETlC,KAAK,CAACyB,IAAN,KAAe,OAAf,IAA0BzB,KAAK,CAACwB,KAAN,KAAgBvH,WAFtC,CAAL,IAGA+D,MAAM,CAACJ,QAAP,CAAgBoC,KAAK,CAACiC,MAAtB,CAHJ,EAGmC;EACjC;EACD;;EAED,UAAMxC,SAAS,GAAGrB,YAAY,CAACC,OAAb,CAAqBL,MAArB,EAA6B1D,KAAK,CAACC,IAAnC,EAAyC2D,aAAzC,CAAlB;;EACA,UAAIuB,SAAS,CAACnB,gBAAd,EAAgC;EAC9B;EACD,OA9BiD;EAiClD;;;EACA,UAAI,kBAAkBxG,QAAQ,CAAC+G,eAA/B,EAAgD;EAC9C5F,QAAAA,SAAS,CAACnB,QAAQ,CAAC0B,IAAT,CAAcyF,QAAf,CAAT,CACGzG,OADH,CACW,UAAA0G,IAAI;EAAA,iBAAId,YAAY,CAACyB,GAAb,CAAiBX,IAAjB,EAAuB,WAAvB,EAAoC,IAApC,EAA0C9F,IAAI,EAA9C,CAAJ;EAAA,SADf;EAED;;EAEDsI,MAAAA,OAAO,CAACE,CAAD,CAAP,CAAWvC,YAAX,CAAwB,eAAxB,EAAyC,OAAzC;;EAEA,UAAIyC,OAAO,CAAC/E,OAAZ,EAAqB;EACnB+E,QAAAA,OAAO,CAAC/E,OAAR,CAAgB2C,OAAhB;EACD;;EAEDsC,MAAAA,YAAY,CAACrE,SAAb,CAAuBwE,MAAvB,CAA8BpH,SAAS,CAACN,IAAxC;EACAuD,MAAAA,MAAM,CAACL,SAAP,CAAiBwE,MAAjB,CAAwBpH,SAAS,CAACN,IAAlC;EACA2D,MAAAA,YAAY,CAACC,OAAb,CAAqBL,MAArB,EAA6B1D,KAAK,CAACE,MAAnC,EAA2C0D,aAA3C;EACD;EACF;;aAEMD,uBAAP,8BAA4BzG,OAA5B,EAAqC;EACnC,WAAOK,sBAAsB,CAACL,OAAD,CAAtB,IAAmCA,OAAO,CAACgJ,UAAlD;EACD;;aAEM4B,wBAAP,+BAA6BpC,KAA7B,EAAoC;EAClC;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAI,kBAAkBlH,IAAlB,CAAuBkH,KAAK,CAACiC,MAAN,CAAaC,OAApC,IACFlC,KAAK,CAACwB,KAAN,KAAgBxH,aAAhB,IAAkCgG,KAAK,CAACwB,KAAN,KAAgBzH,cAAhB,KAChCiG,KAAK,CAACwB,KAAN,KAAgBrH,kBAAhB,IAAsC6F,KAAK,CAACwB,KAAN,KAAgBtH,gBAAvD,IACC4E,cAAc,CAACC,OAAf,CAAuBiB,KAAK,CAACiC,MAA7B,EAAqC3G,QAAQ,CAACG,IAA9C,CAFgC,CADhC,GAIF,CAACpB,cAAc,CAACvB,IAAf,CAAoBkH,KAAK,CAACwB,KAA1B,CAJH,EAIqC;EACnC;EACD;;EAEDxB,IAAAA,KAAK,CAACC,cAAN;EACAD,IAAAA,KAAK,CAACE,eAAN;;EAEA,QAAI,KAAKxC,QAAL,IAAiB,KAAKC,SAAL,CAAeC,QAAf,CAAwB7C,SAAS,CAACC,QAAlC,CAArB,EAAkE;EAChE;EACD;;EAED,QAAMgD,MAAM,GAAGnB,QAAQ,CAACoB,oBAAT,CAA8B,IAA9B,CAAf;EACA,QAAMJ,QAAQ,GAAGG,MAAM,CAACL,SAAP,CAAiBC,QAAjB,CAA0B7C,SAAS,CAACN,IAApC,CAAjB;;EAEA,QAAI,CAACoD,QAAD,IAAcA,QAAQ,KAAKmC,KAAK,CAACwB,KAAN,KAAgBzH,cAAhB,IAAkCiG,KAAK,CAACwB,KAAN,KAAgBxH,aAAvD,CAA1B,EAAkG;EAChG,UAAIgG,KAAK,CAACwB,KAAN,KAAgBzH,cAApB,EAAoC;EAClC+E,QAAAA,cAAc,CAACuB,OAAf,CAAuB/E,QAAQ,CAACC,WAAhC,EAA6CyC,MAA7C,EAAqDoB,KAArD;EACD;;EAEDvC,MAAAA,QAAQ,CAACiB,UAAT;EACA;EACD;;EAED,QAAMuE,KAAK,GAAGpJ,SAAS,CAAC6F,cAAc,CAAC6C,IAAf,CAAoBrG,QAAQ,CAACK,aAA7B,EAA4CqC,MAA5C,CAAD,CAAvB;;EAEA,QAAI,CAACqE,KAAK,CAACrD,MAAX,EAAmB;EACjB;EACD;;EAED,QAAIsD,KAAK,GAAGD,KAAK,CAACE,OAAN,CAAcvC,KAAK,CAACiC,MAApB,CAAZ;;EAEA,QAAIjC,KAAK,CAACwB,KAAN,KAAgBtH,gBAAhB,IAAoCoI,KAAK,GAAG,CAAhD,EAAmD;EAAE;EACnDA,MAAAA,KAAK;EACN;;EAED,QAAItC,KAAK,CAACwB,KAAN,KAAgBrH,kBAAhB,IAAsCmI,KAAK,GAAGD,KAAK,CAACrD,MAAN,GAAe,CAAjE,EAAoE;EAAE;EACpEsD,MAAAA,KAAK;EACN;;EAED,QAAIA,KAAK,GAAG,CAAZ,EAAe;EACbA,MAAAA,KAAK,GAAG,CAAR;EACD;;EAEDD,IAAAA,KAAK,CAACC,KAAD,CAAL,CAAalD,KAAb;EACD;;aAEMoD,cAAP,qBAAmBhL,OAAnB,EAA4B;EAC1B,WAAO+F,IAAI,CAAC8D,OAAL,CAAa7J,OAAb,EAAsBoC,QAAtB,CAAP;EACD;;;;0BAlYoB;EACnB,aAAOD,OAAP;EACD;;;0BAEoB;EACnB,aAAO0C,OAAP;EACD;;;0BAEwB;EACvB,aAAOO,WAAP;EACD;;;;;EA2XH;;;;;;;EAMAwB,YAAY,CAACe,EAAb,CAAgBrH,QAAhB,EAA0BwC,KAAK,CAACO,gBAAhC,EAAkDS,QAAQ,CAACC,WAA3D,EAAwEsB,QAAQ,CAACuF,qBAAjF;EACAhE,YAAY,CAACe,EAAb,CAAgBrH,QAAhB,EAA0BwC,KAAK,CAACO,gBAAhC,EAAkDS,QAAQ,CAACG,IAA3D,EAAiEoB,QAAQ,CAACuF,qBAA1E;EACAhE,YAAY,CAACe,EAAb,CAAgBrH,QAAhB,EAA0BwC,KAAK,CAACM,cAAhC,EAAgDiC,QAAQ,CAACiB,UAAzD;EACAM,YAAY,CAACe,EAAb,CAAgBrH,QAAhB,EAA0BwC,KAAK,CAACQ,cAAhC,EAAgD+B,QAAQ,CAACiB,UAAzD;EACAM,YAAY,CAACe,EAAb,CAAgBrH,QAAhB,EAA0BwC,KAAK,CAACM,cAAhC,EAAgDU,QAAQ,CAACC,WAAzD,EAAsE,UAAUyE,KAAV,EAAiB;EACrFA,EAAAA,KAAK,CAACC,cAAN;EACAD,EAAAA,KAAK,CAACE,eAAN;EACArD,EAAAA,QAAQ,CAACuE,iBAAT,CAA2B,IAA3B,EAAiC,QAAjC;EACD,CAJD;EAKAhD,YAAY,CACTe,EADH,CACMrH,QADN,EACgBwC,KAAK,CAACM,cADtB,EACsCU,QAAQ,CAACE,UAD/C,EAC2D,UAAAiH,CAAC;EAAA,SAAIA,CAAC,CAACvC,eAAF,EAAJ;EAAA,CAD5D;EAGA,IAAMwC,CAAC,GAAGrJ,SAAS,EAAnB;EAEA;;;;;;;EAMA;;EACA,IAAIqJ,CAAJ,EAAO;EACL,MAAMC,kBAAkB,GAAGD,CAAC,CAAC9B,EAAF,CAAKlH,IAAL,CAA3B;EACAgJ,EAAAA,CAAC,CAAC9B,EAAF,CAAKlH,IAAL,IAAamD,QAAQ,CAACyE,eAAtB;EACAoB,EAAAA,CAAC,CAAC9B,EAAF,CAAKlH,IAAL,EAAWkJ,WAAX,GAAyB/F,QAAzB;;EACA6F,EAAAA,CAAC,CAAC9B,EAAF,CAAKlH,IAAL,EAAWmJ,UAAX,GAAwB,YAAM;EAC5BH,IAAAA,CAAC,CAAC9B,EAAF,CAAKlH,IAAL,IAAaiJ,kBAAb;EACA,WAAO9F,QAAQ,CAACyE,eAAhB;EACD,GAHD;EAID;;;;;;;;"}