{"version":3,"sources":["https:\/\/immet-dist.spbstu.ru\/theme\/mooc\/amd\/src\/dropdown.js"],"names":["_typeof2","obj","Symbol","iterator","constructor","prototype","define","exports","_jquery","_popper","_util","Object","defineProperty","value","_jquery2","_interopRequireDefault","_popper2","_util2","__esModule","default","_typeof","_extends","assign","target","i","arguments","length","source","key","hasOwnProperty","call","apply","this","_defineProperties","props","descriptor","enumerable","configurable","writable","Dropdown","$","NAME","DATA_KEY","EVENT_KEY","concat","JQUERY_NO_CONFLICT","fn","REGEXP_KEYDOWN","RegExp","Event","HIDE","HIDDEN","SHOW","SHOWN","CLICK","CLICK_DATA_API","KEYDOWN_DATA_API","KEYUP_DATA_API","ClassName","Selector","AttachmentMap","Default","offset","flip","boundary","DefaultType","element","config","instance","Constructor","TypeError","_classCallCheck","_element","_config","_getConfig","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addEventListeners","protoProps","staticProps","each","data","event","which","type","toggles","makeArray","parent","_getParentFromElement","context","relatedTarget","dropdownMenu","hasClass","test","tagName","contains","hideEvent","trigger","isDefaultPrevented","document","documentElement","children","off","noop","setAttribute","removeClass","selector","getSelectorFromElement","parentNode","closest","preventDefault","stopPropagation","disabled","isActive","items","find","get","index","indexOf","focus","toggle","_clearMenus","showEvent","addClass","_getPopperConfig","on","toggleClass","removeData","destroy","scheduleUpdate","_this","typeCheckConfig","$parentDropdown","placement","_this2","offsetConf","offsets","_getPlacement","modifiers","enabled","preventOverflow","boundariesElement","_dataApiKeydownHandler","_jQueryInterface","e","noConflict"],"mappings":"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\/D,IAEhDmE,EAAUnD,EAAE+C,EAAQ\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\/G,KAAKyC,QAAQT,iBAzR5B\/B,EAAkBoC,EAAYhE,UAAW2E,GACrDC,GAAahD,EAAkBoC,EAAaY,GA8bvC1C,EApWM,GAmYf,OAtBAC,EAAE6D,UAAU0B,GAAG9E,EAAMO,iBAAkBG,EAAsBpB,EAASyG,wBAAwBjB,GAAG9E,EAAMO,iBAAkBG,EAAepB,EAASyG,wBAAwBjB,GAAG,GAAGnF,OAAOK,EAAMM,eAAgB,KAAKX,OAAOK,EAAMQ,gBAAiBlB,EAASoF,aAAaI,GAAG9E,EAAMM,eAAgBI,EAAsB,SAAUyB,GAC5TA,EAAM4B,iBACN5B,EAAM6B,kBAEN1E,EAAS0G,iBAAiBnH,KAAKU,EAAER,MAAO,YACvC+F,GAAG9E,EAAMM,eAAgBI,EAAqB,SAAUuF,GACzDA,EAAEjC,oBAQJzE,EAAEM,GAAGL,GAAQF,EAAS0G,iBACtBzG,EAAEM,GAAGL,GAAM4B,YAAc9B,EAEzBC,EAAEM,GAAGL,GAAM0G,WAAa,WAEtB,OADA3G,EAAEM,GAAGL,GAAQI,EACNN,EAAS0G,kBAGX1G,EAldM,CAmdbzB,EAAkB,QAAGE,EAAkB,SAEzCT,EAAiB,QAAIgC","sourcesContent":["\"use strict\";\ndefine([\"exports\", \"jquery\", \"core\/popper\", \".\/util\"], function(exports, _jquery, _popper, _util) {\n\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n\n var _jquery2 = _interopRequireDefault(_jquery);\n\n var _popper2 = _interopRequireDefault(_popper);\n\n var _util2 = _interopRequireDefault(_util);\n\n function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n }\n\n function _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n function _extends() {\n _extends = Object.assign || function(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n \/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.0.0): dropdown.js\n * Licensed under MIT (https:\/\/github.com\/twbs\/bootstrap\/blob\/master\/LICENSE)\n * --------------------------------------------------------------------------\n *\/\n var Dropdown = function($) {\n \/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n *\/\n var NAME = 'dropdown';\n var VERSION = '4.0.0';\n var DATA_KEY = 'bs.dropdown';\n var EVENT_KEY = \".\".concat(DATA_KEY);\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $.fn[NAME];\n var ESCAPE_KEYCODE = 27; \/\/ KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; \/\/ KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; \/\/ KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; \/\/ KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; \/\/ KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; \/\/ MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(\"\".concat(ARROW_UP_KEYCODE, \"|\").concat(ARROW_DOWN_KEYCODE, \"|\").concat(ESCAPE_KEYCODE));\n var Event = {\n HIDE: \"hide\".concat(EVENT_KEY),\n HIDDEN: \"hidden\".concat(EVENT_KEY),\n SHOW: \"show\".concat(EVENT_KEY),\n SHOWN: \"shown\".concat(EVENT_KEY),\n CLICK: \"click\".concat(EVENT_KEY),\n CLICK_DATA_API: \"click\".concat(EVENT_KEY).concat(DATA_API_KEY),\n KEYDOWN_DATA_API: \"keydown\".concat(EVENT_KEY).concat(DATA_API_KEY),\n KEYUP_DATA_API: \"keyup\".concat(EVENT_KEY).concat(DATA_API_KEY)\n };\n var ClassName = {\n DISABLED: 'disabled',\n SHOW: 'show',\n DROPUP: 'dropup',\n DROPRIGHT: 'dropright',\n DROPLEFT: 'dropleft',\n MENURIGHT: 'dropdown-menu-right',\n MENULEFT: 'dropdown-menu-left',\n POSITION_STATIC: 'position-static'\n };\n var 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)'\n };\n var 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 var Default = {\n offset: 0,\n flip: false,\n boundary: 'scrollParent'\n };\n var DefaultType = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)'\n \/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n *\/\n\n };\n\n var Dropdown = function() {\n function Dropdown(element, config) {\n _classCallCheck(this, Dropdown);\n\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 } \/\/ Getters\n\n _createClass(Dropdown, [{\n key: \"toggle\",\n value: function toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n var isActive = $(this._menu).hasClass(ClassName.SHOW);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $.Event(Event.SHOW, relatedTarget);\n $(parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } \/\/ Disable totally Popper.js for Dropdown in Navbar\n\n if (!this._inNavbar) {\n \/**\n * Check for Popper dependency\n * Popper - https:\/\/popper.js.org\n *\/\n if (typeof _popper2.default === 'undefined') {\n throw new TypeError('Bootstrap dropdown require Popper.js (https:\/\/popper.js.org)');\n }\n\n var element = this._element; \/\/ For dropup with alignment we use the parent as popper container\n\n if ($(parent).hasClass(ClassName.DROPUP)) {\n if ($(this._menu).hasClass(ClassName.MENULEFT) || $(this._menu).hasClass(ClassName.MENURIGHT)) {\n element = parent;\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\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC);\n }\n\n this._popper = new _popper2.default(element, this._menu, this._getPopperConfig());\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\n if ('ontouchstart' in document.documentElement && $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $('body').children().on('mouseover', null, $.noop);\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n $(this._menu).toggleClass(ClassName.SHOW);\n $(parent).toggleClass(ClassName.SHOW).trigger($.Event(Event.SHOWN, relatedTarget));\n }\n }, {\n key: \"dispose\",\n value: function dispose() {\n $.removeData(this._element, DATA_KEY);\n $(this._element).off(EVENT_KEY);\n this._element = null;\n this._menu = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n\n this._popper = null;\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n var _this = this;\n\n $(this._element).on(Event.CLICK, function(event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this.toggle();\n });\n }\n }, {\n key: \"_getConfig\",\n value: function _getConfig(config) {\n config = _extends({}, this.constructor.Default, $(this._element).data(), config);\n\n _util2.default.typeCheckConfig(NAME, config, this.constructor.DefaultType);\n\n return config;\n }\n }, {\n key: \"_getMenuElement\",\n value: function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n\n this._menu = $(parent).find(Selector.MENU)[0];\n }\n\n return this._menu;\n }\n }, {\n key: \"_getPlacement\",\n value: function _getPlacement() {\n var $parentDropdown = $(this._element).parent();\n var placement = AttachmentMap.BOTTOM; \/\/ Handle dropup\n\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP;\n\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND;\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT;\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT;\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND;\n }\n\n return placement;\n }\n }, {\n key: \"_detectNavbar\",\n value: function _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0;\n }\n }, {\n key: \"_getPopperConfig\",\n value: function _getPopperConfig() {\n var _this2 = this;\n\n var offsetConf = {};\n\n if (typeof this._config.offset === 'function') {\n offsetConf.fn = function(data) {\n data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});\n return data;\n };\n } else {\n offsetConf.offset = this._config.offset;\n }\n\n var popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: offsetConf,\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n };\n return popperConfig;\n }\n }], [{\n key: \"_jQueryInterface\",\n value: function _jQueryInterface(config) {\n return this.each(function() {\n var data = $(this).data(DATA_KEY);\n\n var _config = _typeof(config) === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(\"No method named \\\"\".concat(config, \"\\\"\"));\n }\n\n data[config]();\n }\n });\n }\n }, {\n key: \"_clearMenus\",\n value: function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n\n var toggles = $.makeArray($(Selector.DATA_TOGGLE));\n\n for (var i = 0; i < toggles.length; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n\n var context = $(toggles[i]).data(DATA_KEY);\n var relatedTarget = {\n relatedTarget: toggles[i]\n };\n\n if (!context) {\n continue;\n }\n\n var dropdownMenu = context._menu;\n\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue;\n }\n\n if (event && (event.type === 'click' && \/input|textarea\/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $.contains(parent, event.target)) {\n continue;\n }\n\n var hideEvent = $.Event(Event.HIDE, relatedTarget);\n $(parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } \/\/ If this is a touch-enabled device we remove the extra\n \/\/ empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $('body').children().off('mouseover', null, $.noop);\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n $(dropdownMenu).removeClass(ClassName.SHOW);\n $(parent).removeClass(ClassName.SHOW).trigger($.Event(Event.HIDDEN, relatedTarget));\n }\n }\n }, {\n key: \"_getParentFromElement\",\n value: function _getParentFromElement(element) {\n var parent;\n\n var selector = _util2.default.getSelectorFromElement(element);\n\n if (selector) {\n parent = $(selector)[0];\n }\n\n return parent || element.parentNode;\n }\n }, {\n key: \"_dataApiKeydownHandler\",\n value: function _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) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $(parent).hasClass(ClassName.SHOW);\n\n if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n var toggle = $(parent).find(Selector.DATA_TOGGLE)[0];\n $(toggle).trigger('focus');\n }\n\n $(this).trigger('click');\n return;\n }\n\n var items = $(parent).find(Selector.VISIBLE_ITEMS).get();\n\n if (items.length === 0) {\n return;\n }\n\n var index = items.indexOf(event.target);\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n \/\/ Up\n index--;\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n \/\/ Down\n index++;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n }\n }, {\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType;\n }\n }]);\n\n return Dropdown;\n }();\n\n \/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n *\/\n $(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(\"\".concat(Event.CLICK_DATA_API, \" \").concat(Event.KEYUP_DATA_API), Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function(event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($(this), 'toggle');\n }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function(e) {\n e.stopPropagation();\n });\n \/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n *\/\n\n $.fn[NAME] = Dropdown._jQueryInterface;\n $.fn[NAME].Constructor = Dropdown;\n\n $.fn[NAME].noConflict = function() {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Dropdown._jQueryInterface;\n };\n\n return Dropdown;\n }(_jquery2.default, _popper2.default);\n\n exports.default = Dropdown;\n});\n"],"file":"dropdown.min.js"}