1{"version":3,"sources":["../../src/bootstrap/util.js"],"names":["toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","transitionEndEmulator","duration","called","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","setTransitionEndSupport","$","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","_","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","jquery","minMinor"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n  if (obj === null || typeof obj === 'undefined') {\n    return `${obj}`\n  }\n\n  return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n  return {\n    bindType: TRANSITION_END,\n    delegateType: TRANSITION_END,\n    handle(event) {\n      if ($(event.target).is(this)) {\n        return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n      }\n\n      return undefined\n    }\n  }\n}\n\nfunction transitionEndEmulator(duration) {\n  let called = false\n\n  $(this).one(Util.TRANSITION_END, () => {\n    called = true\n  })\n\n  setTimeout(() => {\n    if (!called) {\n      Util.triggerTransitionEnd(this)\n    }\n  }, duration)\n\n  return this\n}\n\nfunction setTransitionEndSupport() {\n  $.fn.emulateTransitionEnd = transitionEndEmulator\n  $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n  TRANSITION_END: 'bsTransitionEnd',\n\n  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\n  getSelectorFromElement(element) {\n    let selector = element.getAttribute('data-target')\n\n    if (!selector || selector === '#') {\n      const hrefAttr = element.getAttribute('href')\n      selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n    }\n\n    try {\n      return document.querySelector(selector) ? selector : null\n    } catch (_) {\n      return null\n    }\n  },\n\n  getTransitionDurationFromElement(element) {\n    if (!element) {\n      return 0\n    }\n\n    // Get transition-duration of the element\n    let transitionDuration = $(element).css('transition-duration')\n    let transitionDelay = $(element).css('transition-delay')\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\n  reflow(element) {\n    return element.offsetHeight\n  },\n\n  triggerTransitionEnd(element) {\n    $(element).trigger(TRANSITION_END)\n  },\n\n  supportsTransitionEnd() {\n    return Boolean(TRANSITION_END)\n  },\n\n  isElement(obj) {\n    return (obj[0] || obj).nodeType\n  },\n\n  typeCheckConfig(componentName, config, configTypes) {\n    for (const property in configTypes) {\n      if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n        const expectedTypes = configTypes[property]\n        const value = config[property]\n        const valueType = value && Util.isElement(value) ?\n          'element' : 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  },\n\n  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 Util.findShadowRoot(element.parentNode)\n  },\n\n  jQueryDetection() {\n    if (typeof $ === 'undefined') {\n      throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n    }\n\n    const version = $.fn.jquery.split(' ')[0].split('.')\n    const minMajor = 1\n    const ltMajor = 2\n    const minMinor = 9\n    const minPatch = 1\n    const maxMajor = 4\n\n    if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n      throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n    }\n  }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n"],"file":"util.min.js"}