{"version":3,"file":"link-filter.js","sources":["../../src/js/util.js","../../src/js/link-filter.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction 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\nfunction 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\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst 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 try {\n return document.querySelector(selector) ? selector : 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 let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * 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 findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n }\n}\n\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Link Filter (v0.0.1): link-filter.js\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'linkfilter'\nconst VERSION = '0.0.1'\nconst DATA_KEY = 'bs.linkfilter'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst KEY_UP = 38\nconst KEY_DOWN = 40\nconst KEY_ENTER = 13\n\n// https://stackoverflow.com/questions/3446170/escape-string-for-use-in-javascript-regex\nconst RE_KEYS = [ \"-\" , \"[\" , \"]\" , \"/\" , \"{\" , \"}\" , \"(\" , \")\" , \"*\" , \"+\" , \"?\" , \".\" , \"\\\\\" , \"^\" , \"$\" , \"|\" ].join('\\\\')\nconst RE_ESCAPE = RegExp('[' + RE_KEYS + ']', 'g')\n\nconst Default = {\n active : 'active',\n delay : 300,\n input : 'string',\n empty : false\n}\n\nconst DefaultType = {\n active : 'string',\n delay : 'number',\n input : 'string',\n empty : 'boolean'\n}\n\nconst Event = {\n FINDING : `finding${EVENT_KEY}${DATA_API_KEY}`,\n FOUND : `found${EVENT_KEY}${DATA_API_KEY}`,\n EMPTY : `empty${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n NOT_MATCH : 'linkfilter-not-match'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass LinkFilter {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._input = document.querySelector(config.input)\n this._timer = null\n this._lastQuery = null\n\n this._addElementListener()\n this._findItem( this._input )\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n dispose() {\n [this._input]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._timer = null\n this._input = null\n }\n\n // Private\n\n _addElementListener(){\n $(this._input).on(Event.KEYDOWN, e => {\n if(e.keyCode === KEY_ENTER)\n return this._clickActive(e)\n if(e.keyCode === KEY_DOWN)\n return this._focusNextItem(e)\n if(e.keyCode === KEY_UP)\n return this._focusPrevItem(e)\n\n if(this._timer)\n clearTimeout(this._timer)\n\n this._timer = setTimeout( el => this._findItem(el), this._config.delay, this._input)\n })\n }\n\n _clickActive(e){\n let el = this._element.querySelector(`.${this._config.active}`)\n if(!el)\n return\n if(el.tagName != 'A')\n el = el.querySelector('a')\n if(el)\n el.click()\n e.preventDefault()\n }\n\n _focusNextItem(e){\n let next, current\n\n for(let i=(this._element.children.length -1 ); i>=0; i--){\n let child = this._element.children[i]\n\n if(child.classList.contains(ClassName.NOT_MATCH))\n continue\n\n if(child.classList.contains(this._config.active)){\n current = child\n if(next)\n break\n continue\n }\n\n next = child\n }\n\n if(next){\n if(current)\n current.classList.remove( this._config.active )\n next.classList.add( this._config.active )\n }\n\n e.preventDefault()\n }\n\n _focusPrevItem(e){\n let prev, current\n\n for(let i=0; i {\n let eText = e.innerText\n if('text' in e.dataset)\n eText = e.dataset.text\n\n let show = false;\n\n if(!val){\n show = !this._config.empty\n }else if(re.test(eText)){\n show = true;\n }\n\n if(show){\n found++\n if(!firstItem)\n firstItem = e\n e.classList.remove( ClassName.NOT_MATCH)\n e.style.removeProperty('display')\n if(e.classList.contains(this._config.active))\n activeFound = true;\n }else{\n e.style.display = 'none'\n e.classList.add( ClassName.NOT_MATCH )\n if(e.classList.contains( this._config.active ))\n e.classList.remove( this._config.active )\n }\n })\n\n let finalEvent\n if(found){\n if(!activeFound && found === 1)\n firstItem.classList.add(this._config.active)\n finalEvent = $.Event(Event.FOUND, {relatedTarget})\n }else{\n finalEvent = $.Event(Event.EMPTY, {relatedTarget})\n }\n\n $(this._element).trigger(finalEvent)\n }\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new LinkFilter(this, _config)\n $(this).data(DATA_KEY, data)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = LinkFilter._jQueryInterface\n$.fn[NAME].Constructor = LinkFilter\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return LinkFilter._jQueryInterface\n}\n\nexport default LinkFilter"],"names":["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","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","KEY_UP","KEY_DOWN","KEY_ENTER","RE_KEYS","join","RE_ESCAPE","Default","active","delay","input","empty","DefaultType","Event","FINDING","FOUND","EMPTY","KEYDOWN","ClassName","NOT_MATCH","LinkFilter","_config","_getConfig","_element","_input","_timer","_lastQuery","_addElementListener","_findItem","dispose","forEach","htmlElement","off","removeData","on","e","keyCode","_clickActive","_focusNextItem","_focusPrevItem","clearTimeout","el","tagName","click","preventDefault","next","current","i","children","length","child","classList","contains","remove","add","prev","relatedTarget","findingEvent","val","replace","re","found","firstItem","activeFound","each","eText","innerText","dataset","text","show","style","removeProperty","display","finalEvent","_jQueryInterface","data","Constructor","noConflict"],"mappings":"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"}