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

button.js.map « dist « js - github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 2cacaa9fdbdc1e30775a33cfdcc2b1632ac384d7 (plain)
1
{"version":3,"file":"button.js","sources":["../src/button.js"],"sourcesContent":["import $ from 'jquery'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.1.3): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst Button = (($) => {\n  /**\n   * ------------------------------------------------------------------------\n   * Constants\n   * ------------------------------------------------------------------------\n   */\n\n  const NAME                = 'button'\n  const VERSION             = '4.1.3'\n  const DATA_KEY            = 'bs.button'\n  const EVENT_KEY           = `.${DATA_KEY}`\n  const DATA_API_KEY        = '.data-api'\n  const JQUERY_NO_CONFLICT  = $.fn[NAME]\n\n  const ClassName = {\n    ACTIVE : 'active',\n    BUTTON : 'btn',\n    FOCUS  : 'focus'\n  }\n\n  const Selector = {\n    DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n    DATA_TOGGLE        : '[data-toggle=\"buttons\"]',\n    INPUT              : 'input',\n    ACTIVE             : '.active',\n    BUTTON             : '.btn'\n  }\n\n  const Event = {\n    CLICK_DATA_API      : `click${EVENT_KEY}${DATA_API_KEY}`,\n    FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n                            `blur${EVENT_KEY}${DATA_API_KEY}`\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Class Definition\n   * ------------------------------------------------------------------------\n   */\n\n  class Button {\n    constructor(element) {\n      this._element = element\n    }\n\n    // Getters\n\n    static get VERSION() {\n      return VERSION\n    }\n\n    // Public\n\n    toggle() {\n      let triggerChangeEvent = true\n      let addAriaPressed = true\n      const rootElement = $(this._element).closest(\n        Selector.DATA_TOGGLE\n      )[0]\n\n      if (rootElement) {\n        const input = this._element.querySelector(Selector.INPUT)\n\n        if (input) {\n          if (input.type === 'radio') {\n            if (input.checked &&\n              this._element.classList.contains(ClassName.ACTIVE)) {\n              triggerChangeEvent = false\n            } else {\n              const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n              if (activeElement) {\n                $(activeElement).removeClass(ClassName.ACTIVE)\n              }\n            }\n          }\n\n          if (triggerChangeEvent) {\n            if (input.hasAttribute('disabled') ||\n              rootElement.hasAttribute('disabled') ||\n              input.classList.contains('disabled') ||\n              rootElement.classList.contains('disabled')) {\n              return\n            }\n            input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n            $(input).trigger('change')\n          }\n\n          input.focus()\n          addAriaPressed = false\n        }\n      }\n\n      if (addAriaPressed) {\n        this._element.setAttribute('aria-pressed',\n          !this._element.classList.contains(ClassName.ACTIVE))\n      }\n\n      if (triggerChangeEvent) {\n        $(this._element).toggleClass(ClassName.ACTIVE)\n      }\n    }\n\n    dispose() {\n      $.removeData(this._element, DATA_KEY)\n      this._element = null\n    }\n\n    // Static\n\n    static _jQueryInterface(config) {\n      return this.each(function () {\n        let data = $(this).data(DATA_KEY)\n\n        if (!data) {\n          data = new Button(this)\n          $(this).data(DATA_KEY, data)\n        }\n\n        if (config === 'toggle') {\n          data[config]()\n        }\n      })\n    }\n  }\n\n  /**\n   * ------------------------------------------------------------------------\n   * Data Api implementation\n   * ------------------------------------------------------------------------\n   */\n\n  $(document)\n    .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      event.preventDefault()\n\n      let button = event.target\n\n      if (!$(button).hasClass(ClassName.BUTTON)) {\n        button = $(button).closest(Selector.BUTTON)\n      }\n\n      Button._jQueryInterface.call($(button), 'toggle')\n    })\n    .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n      const button = $(event.target).closest(Selector.BUTTON)[0]\n      $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n    })\n\n  /**\n   * ------------------------------------------------------------------------\n   * jQuery\n   * ------------------------------------------------------------------------\n   */\n\n  $.fn[NAME] = Button._jQueryInterface\n  $.fn[NAME].Constructor = Button\n  $.fn[NAME].noConflict = () => {\n    $.fn[NAME] = JQUERY_NO_CONFLICT\n    return Button._jQueryInterface\n  }\n\n  return Button\n})($)\n\nexport default Button\n"],"names":["Button","$","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","fn","ClassName","ACTIVE","BUTTON","FOCUS","Selector","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","Event","CLICK_DATA_API","FOCUS_BLUR_DATA_API","element","_element","toggle","triggerChangeEvent","addAriaPressed","rootElement","closest","input","querySelector","type","checked","classList","contains","activeElement","removeClass","hasAttribute","trigger","focus","setAttribute","toggleClass","dispose","removeData","_jQueryInterface","config","each","data","document","on","event","preventDefault","button","target","hasClass","call","test","Constructor","noConflict"],"mappings":"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"}