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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/droplab/droplab.js')
-rw-r--r--app/assets/javascripts/droplab/droplab.js3
1 files changed, 2 insertions, 1 deletions
diff --git a/app/assets/javascripts/droplab/droplab.js b/app/assets/javascripts/droplab/droplab.js
index ef6e439ee84..c84396011b9 100644
--- a/app/assets/javascripts/droplab/droplab.js
+++ b/app/assets/javascripts/droplab/droplab.js
@@ -1 +1,2 @@
-!function(n){function e(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return n[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var t={};e.m=n,e.c=t,e.i=function(n){return n},e.d=function(n,t,i){e.o(n,t)||Object.defineProperty(n,t,{configurable:!1,enumerable:!0,get:i})},e.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return e.d(t,"a",t),t},e.o=function(n,e){return Object.prototype.hasOwnProperty.call(n,e)},e.p="",e(e.s=9)}([function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar DATA_TRIGGER = 'data-dropdown-trigger';\nvar DATA_DROPDOWN = 'data-dropdown';\nvar SELECTED_CLASS = 'droplab-item-selected';\nvar ACTIVE_CLASS = 'droplab-item-active';\n\nvar constants = {\n DATA_TRIGGER: DATA_TRIGGER,\n DATA_DROPDOWN: DATA_DROPDOWN,\n SELECTED_CLASS: SELECTED_CLASS,\n ACTIVE_CLASS: ACTIVE_CLASS\n};\n\nexports.default = constants;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/constants.js\n// module id = 0\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/constants.js?")},function(module,exports){eval("// Polyfill for creating CustomEvents on IE9/10/11\n\n// code pulled from:\n// https://github.com/d4tocchini/customevent-polyfill\n// https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent#Polyfill\n\ntry {\n var ce = new window.CustomEvent('test');\n ce.preventDefault();\n if (ce.defaultPrevented !== true) {\n // IE has problems with .preventDefault() on custom events\n // http://stackoverflow.com/questions/23349191\n throw new Error('Could not prevent default');\n }\n} catch(e) {\n var CustomEvent = function(event, params) {\n var evt, origPrevent;\n params = params || {\n bubbles: false,\n cancelable: false,\n detail: undefined\n };\n\n evt = document.createEvent(\"CustomEvent\");\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n origPrevent = evt.preventDefault;\n evt.preventDefault = function () {\n origPrevent.call(this);\n try {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function () {\n return true;\n }\n });\n } catch(e) {\n this.defaultPrevented = true;\n }\n };\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n window.CustomEvent = CustomEvent; // expose definition to window\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/custom-event-polyfill/custom-event-polyfill.js\n// module id = 1\n// module chunks = 0\n\n//# sourceURL=webpack:///./~/custom-event-polyfill/custom-event-polyfill.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _dropdown = __webpack_require__(6);\n\nvar _dropdown2 = _interopRequireDefault(_dropdown);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Hook = function Hook(trigger, list, plugins, config) {\n this.trigger = trigger;\n this.list = new _dropdown2.default(list);\n this.type = 'Hook';\n this.event = 'click';\n this.plugins = plugins || [];\n this.config = config || {};\n this.id = trigger.id;\n};\n\nObject.assign(Hook.prototype, {\n\n addEvents: function addEvents() {},\n\n constructor: Hook\n});\n\nexports.default = Hook;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/hook.js\n// module id = 2\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/hook.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DATA_TRIGGER = _constants2.default.DATA_TRIGGER,\n DATA_DROPDOWN = _constants2.default.DATA_DROPDOWN;\n\n\nvar utils = {\n toCamelCase: function toCamelCase(attr) {\n return this.camelize(attr.split('-').slice(1).join(' '));\n },\n t: function t(s, d) {\n for (var p in d) {\n if (Object.prototype.hasOwnProperty.call(d, p)) {\n s = s.replace(new RegExp('{{' + p + '}}', 'g'), d[p]);\n }\n }\n return s;\n },\n camelize: function camelize(str) {\n return str.replace(/(?:^\\w|[A-Z]|\\b\\w)/g, function (letter, index) {\n return index === 0 ? letter.toLowerCase() : letter.toUpperCase();\n }).replace(/\\s+/g, '');\n },\n closest: function closest(thisTag, stopTag) {\n while (thisTag && thisTag.tagName !== stopTag && thisTag.tagName !== 'HTML') {\n thisTag = thisTag.parentNode;\n }\n return thisTag;\n },\n isDropDownParts: function isDropDownParts(target) {\n if (!target || target.tagName === 'HTML') return false;\n return target.hasAttribute(DATA_TRIGGER) || target.hasAttribute(DATA_DROPDOWN);\n }\n};\n\nexports.default = utils;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/utils.js\n// module id = 3\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/utils.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var DropLab = function DropLab(hook, list) {\n if (!this instanceof DropLab) return new DropLab(hook);\n\n this.ready = false;\n this.hooks = [];\n this.queuedData = [];\n this.config = {};\n\n this.eventWrapper = {};\n\n !hook ? this.loadStatic() : this.addHook(hook, list);\n };\n\n Object.assign(DropLab.prototype, {\n loadStatic: function loadStatic() {\n var dropdownTriggers = [].slice.apply(document.querySelectorAll('[' + DATA_TRIGGER + ']'));\n this.addHooks(dropdownTriggers).init();\n },\n\n addData: function addData() {\n var args = [].slice.apply(arguments);\n this.applyArgs(args, '_addData');\n },\n\n setData: function setData() {\n var args = [].slice.apply(arguments);\n this.applyArgs(args, '_setData');\n },\n\n destroy: function destroy() {\n this.hooks.forEach(function (hook) {\n return hook.destroy();\n });\n this.hooks = [];\n this.removeEvents();\n },\n\n applyArgs: function applyArgs(args, methodName) {\n if (this.ready) return this[methodName].apply(this, args);\n\n this.queuedData = this.queuedData || [];\n this.queuedData.push(args);\n },\n\n _addData: function _addData(trigger, data) {\n this._processData(trigger, data, 'addData');\n },\n\n _setData: function _setData(trigger, data) {\n this._processData(trigger, data, 'setData');\n },\n\n _processData: function _processData(trigger, data, methodName) {\n this.hooks.forEach(function (hook) {\n if (Array.isArray(trigger)) hook.list[methodName](trigger);\n\n if (hook.trigger.id === trigger) hook.list[methodName](data);\n });\n },\n\n addEvents: function addEvents() {\n this.eventWrapper.documentClicked = this.documentClicked.bind(this);\n document.addEventListener('click', this.eventWrapper.documentClicked);\n },\n\n documentClicked: function documentClicked(e) {\n var thisTag = e.target;\n\n if (thisTag.tagName !== 'UL') thisTag = _utils2.default.closest(thisTag, 'UL');\n if (_utils2.default.isDropDownParts(thisTag, this.hooks) || _utils2.default.isDropDownParts(e.target, this.hooks)) return;\n\n this.hooks.forEach(function (hook) {\n return hook.list.hide();\n });\n },\n\n removeEvents: function removeEvents() {\n document.removeEventListener('click', this.eventWrapper.documentClicked);\n },\n\n changeHookList: function changeHookList(trigger, list, plugins, config) {\n var _this = this;\n\n var availableTrigger = typeof trigger === 'string' ? document.getElementById(trigger) : trigger;\n\n this.hooks.forEach(function (hook, i) {\n hook.list.list.dataset.dataDropdownActive = false;\n\n if (hook.trigger !== availableTrigger) return;\n\n hook.destroy();\n _this.hooks.splice(i, 1);\n _this.addHook(availableTrigger, list, plugins, config);\n });\n },\n\n addHook: function addHook(hook, list, plugins, config) {\n var availableHook = typeof hook === 'string' ? document.querySelector(hook) : hook;\n var availableList = void 0;\n\n if (typeof list === 'string') {\n availableList = document.querySelector(list);\n } else if (list instanceof Element) {\n availableList = list;\n } else {\n availableList = document.querySelector(hook.dataset[_utils2.default.toCamelCase(DATA_TRIGGER)]);\n }\n\n availableList.dataset.dataDropdownActive = true;\n\n var HookObject = availableHook.tagName === 'INPUT' ? _hook_input2.default : _hook_button2.default;\n this.hooks.push(new HookObject(availableHook, availableList, plugins, config));\n\n return this;\n },\n\n addHooks: function addHooks(hooks, plugins, config) {\n var _this2 = this;\n\n hooks.forEach(function (hook) {\n return _this2.addHook(hook, null, plugins, config);\n });\n return this;\n },\n\n setConfig: function setConfig(obj) {\n this.config = obj;\n },\n\n fireReady: function fireReady() {\n var readyEvent = new CustomEvent('ready.dl', {\n detail: {\n dropdown: this\n }\n });\n document.dispatchEvent(readyEvent);\n\n this.ready = true;\n },\n\n init: function init() {\n var _this3 = this;\n\n this.addEvents();\n\n this.fireReady();\n\n this.queuedData.forEach(function (data) {\n return _this3.addData(data);\n });\n this.queuedData = [];\n\n return this;\n }\n });\n\n return DropLab;\n};\n\n__webpack_require__(1);\n\nvar _hook_button = __webpack_require__(7);\n\nvar _hook_button2 = _interopRequireDefault(_hook_button);\n\nvar _hook_input = __webpack_require__(8);\n\nvar _hook_input2 = _interopRequireDefault(_hook_input);\n\nvar _utils = __webpack_require__(3);\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DATA_TRIGGER = _constants2.default.DATA_TRIGGER;\n\n;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/droplab.js\n// module id = 4\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/droplab.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function () {\n var currentKey;\n var currentFocus;\n var isUpArrow = false;\n var isDownArrow = false;\n var removeHighlight = function removeHighlight(list) {\n var itemElements = Array.prototype.slice.call(list.list.querySelectorAll('li:not(.divider)'), 0);\n var listItems = [];\n for (var i = 0; i < itemElements.length; i++) {\n var listItem = itemElements[i];\n listItem.classList.remove(_constants2.default.ACTIVE_CLASS);\n\n if (listItem.style.display !== 'none') {\n listItems.push(listItem);\n }\n }\n return listItems;\n };\n\n var setMenuForArrows = function setMenuForArrows(list) {\n var listItems = removeHighlight(list);\n if (list.currentIndex > 0) {\n if (!listItems[list.currentIndex - 1]) {\n list.currentIndex = list.currentIndex - 1;\n }\n\n if (listItems[list.currentIndex - 1]) {\n var el = listItems[list.currentIndex - 1];\n var filterDropdownEl = el.closest('.filter-dropdown');\n el.classList.add(_constants2.default.ACTIVE_CLASS);\n\n if (filterDropdownEl) {\n var filterDropdownBottom = filterDropdownEl.offsetHeight;\n var elOffsetTop = el.offsetTop - 30;\n\n if (elOffsetTop > filterDropdownBottom) {\n filterDropdownEl.scrollTop = elOffsetTop - filterDropdownBottom;\n }\n }\n }\n }\n };\n\n var mousedown = function mousedown(e) {\n var list = e.detail.hook.list;\n removeHighlight(list);\n list.show();\n list.currentIndex = 0;\n isUpArrow = false;\n isDownArrow = false;\n };\n var selectItem = function selectItem(list) {\n var listItems = removeHighlight(list);\n var currentItem = listItems[list.currentIndex - 1];\n var listEvent = new CustomEvent('click.dl', {\n detail: {\n list: list,\n selected: currentItem,\n data: currentItem.dataset\n }\n });\n list.list.dispatchEvent(listEvent);\n list.hide();\n };\n\n var keydown = function keydown(e) {\n var typedOn = e.target;\n var list = e.detail.hook.list;\n var currentIndex = list.currentIndex;\n isUpArrow = false;\n isDownArrow = false;\n\n if (e.detail.which) {\n currentKey = e.detail.which;\n if (currentKey === 13) {\n selectItem(e.detail.hook.list);\n return;\n }\n if (currentKey === 38) {\n isUpArrow = true;\n }\n if (currentKey === 40) {\n isDownArrow = true;\n }\n } else if (e.detail.key) {\n currentKey = e.detail.key;\n if (currentKey === 'Enter') {\n selectItem(e.detail.hook.list);\n return;\n }\n if (currentKey === 'ArrowUp') {\n isUpArrow = true;\n }\n if (currentKey === 'ArrowDown') {\n isDownArrow = true;\n }\n }\n if (isUpArrow) {\n currentIndex--;\n }\n if (isDownArrow) {\n currentIndex++;\n }\n if (currentIndex < 0) {\n currentIndex = 0;\n }\n list.currentIndex = currentIndex;\n setMenuForArrows(e.detail.hook.list);\n };\n\n document.addEventListener('mousedown.dl', mousedown);\n document.addEventListener('keydown.dl', keydown);\n};\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/keyboard.js\n// module id = 5\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/keyboard.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _Object$assign;\n\n__webpack_require__(1);\n\nvar _utils = __webpack_require__(3);\n\nvar _utils2 = _interopRequireDefault(_utils);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar DropDown = function DropDown(list) {\n this.currentIndex = 0;\n this.hidden = true;\n this.list = typeof list === 'string' ? document.querySelector(list) : list;\n this.items = [];\n\n this.eventWrapper = {};\n\n this.getItems();\n this.initTemplateString();\n this.addEvents();\n\n this.initialState = list.innerHTML;\n};\n\nObject.assign(DropDown.prototype, (_Object$assign = {\n getItems: function getItems() {\n this.items = [].slice.call(this.list.querySelectorAll('li'));\n return this.items;\n },\n\n initTemplateString: function initTemplateString() {\n var items = this.items || this.getItems();\n\n var templateString = '';\n if (items.length > 0) templateString = items[items.length - 1].outerHTML;\n this.templateString = templateString;\n\n return this.templateString;\n },\n\n clickEvent: function clickEvent(e) {\n var selected = _utils2.default.closest(e.target, 'LI');\n if (!selected) return;\n\n this.addSelectedClass(selected);\n\n e.preventDefault();\n this.hide();\n\n var listEvent = new CustomEvent('click.dl', {\n detail: {\n list: this,\n selected: selected,\n data: e.target.dataset\n }\n });\n this.list.dispatchEvent(listEvent);\n },\n\n addSelectedClass: function addSelectedClass(selected) {\n this.removeSelectedClasses();\n selected.classList.add(_constants2.default.SELECTED_CLASS);\n },\n\n removeSelectedClasses: function removeSelectedClasses() {\n var items = this.items || this.getItems();\n\n items.forEach(function (item) {\n item.classList.remove(_constants2.default.SELECTED_CLASS);\n });\n },\n\n addEvents: function addEvents() {\n this.eventWrapper.clickEvent = this.clickEvent.bind(this);\n this.list.addEventListener('click', this.eventWrapper.clickEvent);\n },\n\n toggle: function toggle() {\n this.hidden ? this.show() : this.hide();\n },\n\n setData: function setData(data) {\n this.data = data;\n this.render(data);\n },\n\n addData: function addData(data) {\n this.data = (this.data || []).concat(data);\n this.render(this.data);\n },\n\n render: function render(data) {\n var children = data ? data.map(this.renderChildren.bind(this)) : [];\n var renderableList = this.list.querySelector('ul[data-dynamic]') || this.list;\n\n renderableList.innerHTML = children.join('');\n },\n\n renderChildren: function renderChildren(data) {\n var html = _utils2.default.t(this.templateString, data);\n var template = document.createElement('div');\n\n template.innerHTML = html;\n this.setImagesSrc(template);\n template.firstChild.style.display = data.droplab_hidden ? 'none' : 'block';\n\n return template.firstChild.outerHTML;\n },\n\n setImagesSrc: function setImagesSrc(template) {\n var images = [].slice.call(template.querySelectorAll('img[data-src]'));\n\n images.forEach(function (image) {\n image.src = image.getAttribute('data-src');\n image.removeAttribute('data-src');\n });\n },\n\n show: function show() {\n if (!this.hidden) return;\n this.list.style.display = 'block';\n this.currentIndex = 0;\n this.hidden = false;\n },\n\n hide: function hide() {\n if (this.hidden) return;\n this.list.style.display = 'none';\n this.currentIndex = 0;\n this.hidden = true;\n }\n\n}, _defineProperty(_Object$assign, 'toggle', function toggle() {\n this.hidden ? this.show() : this.hide();\n}), _defineProperty(_Object$assign, 'destroy', function destroy() {\n this.hide();\n this.list.removeEventListener('click', this.eventWrapper.clickEvent);\n}), _Object$assign));\n\nexports.default = DropDown;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/dropdown.js\n// module id = 6\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/dropdown.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__webpack_require__(1);\n\nvar _hook = __webpack_require__(2);\n\nvar _hook2 = _interopRequireDefault(_hook);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HookButton = function HookButton(trigger, list, plugins, config) {\n _hook2.default.call(this, trigger, list, plugins, config);\n\n this.type = 'button';\n this.event = 'click';\n\n this.eventWrapper = {};\n\n this.addEvents();\n this.addPlugins();\n};\n\nHookButton.prototype = Object.create(_hook2.default.prototype);\n\nObject.assign(HookButton.prototype, {\n addPlugins: function addPlugins() {\n var _this = this;\n\n this.plugins.forEach(function (plugin) {\n return plugin.init(_this);\n });\n },\n\n clicked: function clicked(e) {\n var buttonEvent = new CustomEvent('click.dl', {\n detail: {\n hook: this\n },\n bubbles: true,\n cancelable: true\n });\n e.target.dispatchEvent(buttonEvent);\n\n this.list.toggle();\n },\n\n addEvents: function addEvents() {\n this.eventWrapper.clicked = this.clicked.bind(this);\n this.trigger.addEventListener('click', this.eventWrapper.clicked);\n },\n\n removeEvents: function removeEvents() {\n this.trigger.removeEventListener('click', this.eventWrapper.clicked);\n },\n\n restoreInitialState: function restoreInitialState() {\n this.list.list.innerHTML = this.list.initialState;\n },\n\n removePlugins: function removePlugins() {\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n },\n\n destroy: function destroy() {\n this.restoreInitialState();\n\n this.removeEvents();\n this.removePlugins();\n },\n\n constructor: HookButton\n});\n\nexports.default = HookButton;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/hook_button.js\n// module id = 7\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/hook_button.js?")},function(module,exports,__webpack_require__){"use strict";eval("\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n__webpack_require__(1);\n\nvar _hook = __webpack_require__(2);\n\nvar _hook2 = _interopRequireDefault(_hook);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar HookInput = function HookInput(trigger, list, plugins, config) {\n _hook2.default.call(this, trigger, list, plugins, config);\n\n this.type = 'input';\n this.event = 'input';\n\n this.eventWrapper = {};\n\n this.addEvents();\n this.addPlugins();\n};\n\nObject.assign(HookInput.prototype, {\n addPlugins: function addPlugins() {\n var _this = this;\n\n this.plugins.forEach(function (plugin) {\n return plugin.init(_this);\n });\n },\n\n addEvents: function addEvents() {\n this.eventWrapper.mousedown = this.mousedown.bind(this);\n this.eventWrapper.input = this.input.bind(this);\n this.eventWrapper.keyup = this.keyup.bind(this);\n this.eventWrapper.keydown = this.keydown.bind(this);\n\n this.trigger.addEventListener('mousedown', this.eventWrapper.mousedown);\n this.trigger.addEventListener('input', this.eventWrapper.input);\n this.trigger.addEventListener('keyup', this.eventWrapper.keyup);\n this.trigger.addEventListener('keydown', this.eventWrapper.keydown);\n },\n\n removeEvents: function removeEvents() {\n this.hasRemovedEvents = true;\n\n this.trigger.removeEventListener('mousedown', this.eventWrapper.mousedown);\n this.trigger.removeEventListener('input', this.eventWrapper.input);\n this.trigger.removeEventListener('keyup', this.eventWrapper.keyup);\n this.trigger.removeEventListener('keydown', this.eventWrapper.keydown);\n },\n\n input: function input(e) {\n if (this.hasRemovedEvents) return;\n\n this.list.show();\n\n var inputEvent = new CustomEvent('input.dl', {\n detail: {\n hook: this,\n text: e.target.value\n },\n bubbles: true,\n cancelable: true\n });\n e.target.dispatchEvent(inputEvent);\n },\n\n mousedown: function mousedown(e) {\n if (this.hasRemovedEvents) return;\n\n var mouseEvent = new CustomEvent('mousedown.dl', {\n detail: {\n hook: this,\n text: e.target.value\n },\n bubbles: true,\n cancelable: true\n });\n e.target.dispatchEvent(mouseEvent);\n },\n\n keyup: function keyup(e) {\n if (this.hasRemovedEvents) return;\n\n this.keyEvent(e, 'keyup.dl');\n },\n\n keydown: function keydown(e) {\n if (this.hasRemovedEvents) return;\n\n this.keyEvent(e, 'keydown.dl');\n },\n\n keyEvent: function keyEvent(e, eventName) {\n this.list.show();\n\n var keyEvent = new CustomEvent(eventName, {\n detail: {\n hook: this,\n text: e.target.value,\n which: e.which,\n key: e.key\n },\n bubbles: true,\n cancelable: true\n });\n e.target.dispatchEvent(keyEvent);\n },\n\n restoreInitialState: function restoreInitialState() {\n this.list.list.innerHTML = this.list.initialState;\n },\n\n removePlugins: function removePlugins() {\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n },\n\n destroy: function destroy() {\n this.restoreInitialState();\n\n this.removeEvents();\n this.removePlugins();\n\n this.list.destroy();\n }\n});\n\nexports.default = HookInput;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/hook_input.js\n// module id = 8\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/hook_input.js?")},function(module,exports,__webpack_require__){"use strict";eval('\n\nObject.defineProperty(exports, "__esModule", {\n value: true\n});\n\nvar _droplab = __webpack_require__(4);\n\nvar _droplab2 = _interopRequireDefault(_droplab);\n\nvar _constants = __webpack_require__(0);\n\nvar _constants2 = _interopRequireDefault(_constants);\n\nvar _keyboard = __webpack_require__(5);\n\nvar _keyboard2 = _interopRequireDefault(_keyboard);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar DATA_TRIGGER = _constants2.default.DATA_TRIGGER;\nvar keyboard = (0, _keyboard2.default)();\n\nvar setup = function setup() {\n window.DropLab = (0, _droplab2.default)();\n};\n\nsetup();\n\nexports.default = setup;\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/index.js\n// module id = 9\n// module chunks = 0\n\n//# sourceURL=webpack:///./src/index.js?')}]); \ No newline at end of file
+!function(t){function e(n){if(i[n])return i[n].exports;var s=i[n]={i:n,l:!1,exports:{}};return t[n].call(s.exports,s,s.exports,e),s.l=!0,s.exports}var i={};e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=9)}([function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n="data-dropdown-trigger",s="data-dropdown",r="droplab-item-selected",o="droplab-item-active",a={DATA_TRIGGER:n,DATA_DROPDOWN:s,SELECTED_CLASS:r,ACTIVE_CLASS:o};e.default=a},function(t,e){try{var i=new window.CustomEvent("test");if(i.preventDefault(),i.defaultPrevented!==!0)throw new Error("Could not prevent default")}catch(t){var n=function(t,e){var i,n;return e=e||{bubbles:!1,cancelable:!1,detail:void 0},i=document.createEvent("CustomEvent"),i.initCustomEvent(t,e.bubbles,e.cancelable,e.detail),n=i.preventDefault,i.preventDefault=function(){n.call(this);try{Object.defineProperty(this,"defaultPrevented",{get:function(){return!0}})}catch(t){this.defaultPrevented=!0}},i};n.prototype=window.Event.prototype,window.CustomEvent=n}},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var s=i(6),r=n(s),o=function(t,e,i,n){this.trigger=t,this.list=new r.default(e),this.type="Hook",this.event="click",this.plugins=i||[],this.config=n||{},this.id=t.id};Object.assign(o.prototype,{addEvents:function(){},constructor:o}),e.default=o},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var s=i(0),r=n(s),o=r.default.DATA_TRIGGER,a=r.default.DATA_DROPDOWN,d={toCamelCase:function(t){return this.camelize(t.split("-").slice(1).join(" "))},t:function(t,e){for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t=t.replace(new RegExp("{{"+i+"}}","g"),e[i]));return t},camelize:function(t){return t.replace(/(?:^\w|[A-Z]|\b\w)/g,function(t,e){return 0===e?t.toLowerCase():t.toUpperCase()}).replace(/\s+/g,"")},closest:function(t,e){for(;t&&t.tagName!==e&&"HTML"!==t.tagName;)t=t.parentNode;return t},isDropDownParts:function(t){return!(!t||"HTML"===t.tagName)&&(t.hasAttribute(o)||t.hasAttribute(a))}};e.default=d},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t=function t(e,i){if(!this instanceof t)return new t(e);this.ready=!1,this.hooks=[],this.queuedData=[],this.config={},this.eventWrapper={},e?this.addHook(e,i):this.loadStatic()};return Object.assign(t.prototype,{loadStatic:function(){var t=[].slice.apply(document.querySelectorAll("["+h+"]"));this.addHooks(t).init()},addData:function(){var t=[].slice.apply(arguments);this.applyArgs(t,"_addData")},setData:function(){var t=[].slice.apply(arguments);this.applyArgs(t,"_setData")},destroy:function(){this.hooks.forEach(function(t){return t.destroy()}),this.hooks=[],this.removeEvents()},applyArgs:function(t,e){if(this.ready)return this[e].apply(this,t);this.queuedData=this.queuedData||[],this.queuedData.push(t)},_addData:function(t,e){this._processData(t,e,"addData")},_setData:function(t,e){this._processData(t,e,"setData")},_processData:function(t,e,i){this.hooks.forEach(function(n){Array.isArray(t)&&n.list[i](t),n.trigger.id===t&&n.list[i](e)})},addEvents:function(){this.eventWrapper.documentClicked=this.documentClicked.bind(this),document.addEventListener("click",this.eventWrapper.documentClicked)},documentClicked:function(t){var e=t.target;"UL"!==e.tagName&&(e=u.default.closest(e,"UL")),u.default.isDropDownParts(e,this.hooks)||u.default.isDropDownParts(t.target,this.hooks)||this.hooks.forEach(function(t){return t.list.hide()})},removeEvents:function(){document.removeEventListener("click",this.eventWrapper.documentClicked)},changeHookList:function(t,e,i,n){var s=this,r="string"==typeof t?document.getElementById(t):t;this.hooks.forEach(function(t,o){t.list.list.dataset.dataDropdownActive=!1,t.trigger===r&&(t.destroy(),s.hooks.splice(o,1),s.addHook(r,e,i,n))})},addHook:function(t,e,i,n){var s="string"==typeof t?document.querySelector(t):t,o=void 0;o="string"==typeof e?document.querySelector(e):e instanceof Element?e:document.querySelector(t.dataset[u.default.toCamelCase(h)]),o.dataset.dataDropdownActive=!0;var d="INPUT"===s.tagName?a.default:r.default;return this.hooks.push(new d(s,o,i,n)),this},addHooks:function(t,e,i){var n=this;return t.forEach(function(t){return n.addHook(t,null,e,i)}),this},setConfig:function(t){this.config=t},fireReady:function(){var t=new CustomEvent("ready.dl",{detail:{dropdown:this}});document.dispatchEvent(t),this.ready=!0},init:function(){var t=this;return this.addEvents(),this.fireReady(),this.queuedData.forEach(function(e){return t.addData(e)}),this.queuedData=[],this}}),t},i(1);var s=i(7),r=n(s),o=i(8),a=n(o),d=i(3),u=n(d),c=i(0),l=n(c),h=l.default.DATA_TRIGGER},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){var t,e=!1,i=!1,n=function(t){for(var e=Array.prototype.slice.call(t.list.querySelectorAll("li:not(.divider)"),0),i=[],n=0;n<e.length;n++){var s=e[n];s.classList.remove(r.default.ACTIVE_CLASS),"none"!==s.style.display&&i.push(s)}return i},s=function(t){var e=n(t);if(t.currentIndex>0&&(e[t.currentIndex-1]||(t.currentIndex=t.currentIndex-1),e[t.currentIndex-1])){var i=e[t.currentIndex-1],s=i.closest(".filter-dropdown");if(i.classList.add(r.default.ACTIVE_CLASS),s){var o=s.offsetHeight,a=i.offsetTop-30;a>o&&(s.scrollTop=a-o)}}},o=function(t){var s=t.detail.hook.list;n(s),s.show(),s.currentIndex=0,e=!1,i=!1},a=function(t){var e=n(t),i=e[t.currentIndex-1],s=new CustomEvent("click.dl",{detail:{list:t,selected:i,data:i.dataset}});t.list.dispatchEvent(s),t.hide()},d=function(n){var r=(n.target,n.detail.hook.list),o=r.currentIndex;if(e=!1,i=!1,n.detail.which){if(13===(t=n.detail.which))return void a(n.detail.hook.list);38===t&&(e=!0),40===t&&(i=!0)}else if(n.detail.key){if("Enter"===(t=n.detail.key))return void a(n.detail.hook.list);"ArrowUp"===t&&(e=!0),"ArrowDown"===t&&(i=!0)}e&&o--,i&&o++,o<0&&(o=0),r.currentIndex=o,s(n.detail.hook.list)};document.addEventListener("mousedown.dl",o),document.addEventListener("keydown.dl",d)};var s=i(0),r=n(s)},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}function s(t,e,i){return e in t?Object.defineProperty(t,e,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[e]=i,t}Object.defineProperty(e,"__esModule",{value:!0});var r;i(1);var o=i(3),a=n(o),d=i(0),u=n(d),c=function(t){this.currentIndex=0,this.hidden=!0,this.list="string"==typeof t?document.querySelector(t):t,this.items=[],this.eventWrapper={},this.getItems(),this.initTemplateString(),this.addEvents(),this.initialState=t.innerHTML};Object.assign(c.prototype,(r={getItems:function(){return this.items=[].slice.call(this.list.querySelectorAll("li")),this.items},initTemplateString:function(){var t=this.items||this.getItems(),e="";return t.length>0&&(e=t[t.length-1].outerHTML),this.templateString=e,this.templateString},clickEvent:function(t){var e=a.default.closest(t.target,"LI");if(e){this.addSelectedClass(e),t.preventDefault(),this.hide();var i=new CustomEvent("click.dl",{detail:{list:this,selected:e,data:t.target.dataset}});this.list.dispatchEvent(i)}},addSelectedClass:function(t){this.removeSelectedClasses(),t.classList.add(u.default.SELECTED_CLASS)},removeSelectedClasses:function(){(this.items||this.getItems()).forEach(function(t){t.classList.remove(u.default.SELECTED_CLASS)})},addEvents:function(){this.eventWrapper.clickEvent=this.clickEvent.bind(this),this.list.addEventListener("click",this.eventWrapper.clickEvent)},toggle:function(){this.hidden?this.show():this.hide()},setData:function(t){this.data=t,this.render(t)},addData:function(t){this.data=(this.data||[]).concat(t),this.render(this.data)},render:function(t){var e=t?t.map(this.renderChildren.bind(this)):[];(this.list.querySelector("ul[data-dynamic]")||this.list).innerHTML=e.join("")},renderChildren:function(t){var e=a.default.t(this.templateString,t),i=document.createElement("div");return i.innerHTML=e,this.setImagesSrc(i),i.firstChild.style.display=t.droplab_hidden?"none":"block",i.firstChild.outerHTML},setImagesSrc:function(t){[].slice.call(t.querySelectorAll("img[data-src]")).forEach(function(t){t.src=t.getAttribute("data-src"),t.removeAttribute("data-src")})},show:function(){this.hidden&&(this.list.style.display="block",this.currentIndex=0,this.hidden=!1)},hide:function(){this.hidden||(this.list.style.display="none",this.currentIndex=0,this.hidden=!0)}},s(r,"toggle",function(){this.hidden?this.show():this.hide()}),s(r,"destroy",function(){this.hide(),this.list.removeEventListener("click",this.eventWrapper.clickEvent)}),r)),e.default=c},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),i(1);var s=i(2),r=n(s),o=function(t,e,i,n){r.default.call(this,t,e,i,n),this.type="button",this.event="click",this.eventWrapper={},this.addEvents(),this.addPlugins()};o.prototype=Object.create(r.default.prototype),Object.assign(o.prototype,{addPlugins:function(){var t=this;this.plugins.forEach(function(e){return e.init(t)})},clicked:function(t){var e=new CustomEvent("click.dl",{detail:{hook:this},bubbles:!0,cancelable:!0});t.target.dispatchEvent(e),this.list.toggle()},addEvents:function(){this.eventWrapper.clicked=this.clicked.bind(this),this.trigger.addEventListener("click",this.eventWrapper.clicked)},removeEvents:function(){this.trigger.removeEventListener("click",this.eventWrapper.clicked)},restoreInitialState:function(){this.list.list.innerHTML=this.list.initialState},removePlugins:function(){this.plugins.forEach(function(t){return t.destroy()})},destroy:function(){this.restoreInitialState(),this.removeEvents(),this.removePlugins()},constructor:o}),e.default=o},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),i(1);var s=i(2),r=n(s),o=function(t,e,i,n){r.default.call(this,t,e,i,n),this.type="input",this.event="input",this.eventWrapper={},this.addEvents(),this.addPlugins()};Object.assign(o.prototype,{addPlugins:function(){var t=this;this.plugins.forEach(function(e){return e.init(t)})},addEvents:function(){this.eventWrapper.mousedown=this.mousedown.bind(this),this.eventWrapper.input=this.input.bind(this),this.eventWrapper.keyup=this.keyup.bind(this),this.eventWrapper.keydown=this.keydown.bind(this),this.trigger.addEventListener("mousedown",this.eventWrapper.mousedown),this.trigger.addEventListener("input",this.eventWrapper.input),this.trigger.addEventListener("keyup",this.eventWrapper.keyup),this.trigger.addEventListener("keydown",this.eventWrapper.keydown)},removeEvents:function(){this.hasRemovedEvents=!0,this.trigger.removeEventListener("mousedown",this.eventWrapper.mousedown),this.trigger.removeEventListener("input",this.eventWrapper.input),this.trigger.removeEventListener("keyup",this.eventWrapper.keyup),this.trigger.removeEventListener("keydown",this.eventWrapper.keydown)},input:function(t){if(!this.hasRemovedEvents){this.list.show();var e=new CustomEvent("input.dl",{detail:{hook:this,text:t.target.value},bubbles:!0,cancelable:!0});t.target.dispatchEvent(e)}},mousedown:function(t){if(!this.hasRemovedEvents){var e=new CustomEvent("mousedown.dl",{detail:{hook:this,text:t.target.value},bubbles:!0,cancelable:!0});t.target.dispatchEvent(e)}},keyup:function(t){this.hasRemovedEvents||this.keyEvent(t,"keyup.dl")},keydown:function(t){this.hasRemovedEvents||this.keyEvent(t,"keydown.dl")},keyEvent:function t(e,i){this.list.show();var t=new CustomEvent(i,{detail:{hook:this,text:e.target.value,which:e.which,key:e.key},bubbles:!0,cancelable:!0});e.target.dispatchEvent(t)},restoreInitialState:function(){this.list.list.innerHTML=this.list.initialState},removePlugins:function(){this.plugins.forEach(function(t){return t.destroy()})},destroy:function(){this.restoreInitialState(),this.removeEvents(),this.removePlugins(),this.list.destroy()}}),e.default=o},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var s=i(4),r=n(s),o=i(0),a=n(o),d=i(5),u=n(d),c=(a.default.DATA_TRIGGER,(0,u.default)(),function(){window.DropLab=(0,r.default)()});c(),e.default=c}]);
+//# sourceMappingURL=droplab.js.map \ No newline at end of file