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

util.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 37833cad878b044be4693c5e9f61dca01bd95db2 (plain)
1
{"version":3,"file":"util.js","sources":["../src/util.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Util = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Private TransitionEnd Helpers\n   * ------------------------------------------------------------------------\n   */\n\n  const TRANSITION_END = 'transitionend'\n  const MAX_UID = 1000000\n  const MILLISECONDS_MULTIPLIER = 1000\n\n  // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n  function toType(obj) {\n    return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n  }\n\n  function 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        return undefined // eslint-disable-line no-undefined\n      }\n    }\n  }\n\n  function 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\n  function setTransitionEndSupport() {\n    $.fn.emulateTransitionEnd = transitionEndEmulator\n    $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n  }\n\n  /**\n   * --------------------------------------------------------------------------\n   * Public Util Api\n   * --------------------------------------------------------------------------\n   */\n\n  const Util = {\n\n    TRANSITION_END: 'bsTransitionEnd',\n\n    getUID(prefix) {\n      do {\n        // eslint-disable-next-line no-bitwise\n        prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n      } while (document.getElementById(prefix))\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      return selector && document.querySelector(selector) ? selector : null\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      const floatTransitionDuration = parseFloat(transitionDuration)\n\n      // Return 0 if element or transition duration is not found\n      if (!floatTransitionDuration) {\n        return 0\n      }\n\n      // If multiple durations are defined, take the first\n      transitionDuration = transitionDuration.split(',')[0]\n\n      return parseFloat(transitionDuration) * MILLISECONDS_MULTIPLIER\n    },\n\n    reflow(element) {\n      return element.offsetHeight\n    },\n\n    triggerTransitionEnd(element) {\n      $(element).trigger(TRANSITION_END)\n    },\n\n    // TODO: Remove in v5\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\n  setTransitionEndSupport()\n\n  return Util\n})($)\n\nexport default Util\n"],"names":["Util","$","TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","getTransitionDurationFromElement","transitionDuration","css","floatTransitionDuration","parseFloat","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase"],"mappings":"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"}