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: bdfb01224078570226fff70625fd8326abdd3a69 (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      let method = 'querySelector'\n\n      if (!selector || selector === '#') {\n        selector = (element.getAttribute('href') || '').trim()\n      }\n\n      const validSelector = selector\n      if (selector.charAt(0) === '#' && selector.indexOf(',') === -1) {\n        selector = selector.substr(1)\n        method = 'getElementById'\n      }\n\n      try {\n        return document[method](selector) ? validSelector : null\n      } catch (err) {\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      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","method","trim","validSelector","charAt","indexOf","substr","err","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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"}