{"version":3,"file":"autocompleteOptions.js","sources":["../current/sites/default/modules/kemia_base/js/autocompleteOptions.es6.js"],"sourcesContent":["(function ($, drupalSettings) {\n\n // Credits: https://stackoverflow.com/a/5717133\n function validURL(str) {\n var pattern = new RegExp('^(https?:\\\\/\\\\/)?' + // protocol\n '((([a-z\\\\d]([a-z\\\\d-]*[a-z\\\\d])*)\\\\.)+[a-z]{2,}|' + // domain name\n '((\\\\d{1,3}\\\\.){3}\\\\d{1,3}))' + // OR ip (v4) address\n '(\\\\:\\\\d+)?(\\\\/[-a-z\\\\d%_.~+]*)*' + // port and path\n '(\\\\?[;&a-z\\\\d%_.~+=-]*)?' + // query string\n '(\\\\#[-a-z\\\\d_]*)?$','i'); // fragment locator\n return !!pattern.test(str);\n }\n\n var func = Drupal.behaviors.autocomplete.attach;\n\n var sendStats = function(pubkey, data) {\n if (typeof window !== 'undefined' && window.navigator && window.navigator.sendBeacon) {\n navigator.sendBeacon('https://api.addsearch.com/v1/stats/' + pubkey + '/', JSON.stringify(data));\n }\n else {\n fetch('https://api.addsearch.com/v1/stats/' + pubkey + '/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'text/plain',\n },\n body: JSON.stringify(data)\n });\n }\n }\n\n Drupal.behaviors.autocomplete.attach = function (context) {\n\n var org = Drupal.autocomplete.options;\n // Act on textfields with the \"form-autocomplete\" class.\n var $autocomplete = $(context)\n .find('input.form-autocomplete')\n .once('autocomplete-alter');\n\n if ($autocomplete.length) {\n if( $autocomplete.hasClass('addsearch')){\n const orginalRender = $.ui.autocomplete;\n\n var orginalSelectHandler = Drupal.autocomplete.options.select;\n\n // Helper to create couple extra elements to make menu away.\n const renderMenu = function( ul, items ) {\n var nextColumn = false;\n\n $.each( items, ( index, item ) => {\n\n var el = this._renderItemData( nextColumn ? nextColumn : ul, item );\n\n if(!nextColumn && item.value === \"\" && item.label === \"\") {\n\n $('a', el).attr('data-content', Drupal.t('Search suggestions'));\n el.addClass('ui-menu-divider ui-widget-content')\n var ol = $('
    ').appendTo(el);\n nextColumn = ol;\n\n }\n else {\n\n el.click(e => {\n $(this.element).val(item.value);\n $(\n this.element).trigger('input')\n });\n }\n });\n\n const close = $('
  1. ').appendTo(ul);\n\n close.click( e => {\n $(this.element).autocomplete(\"close\");\n })\n }\n\n Drupal.autocomplete.options = Object.assign(\n {},\n Drupal.autocomplete.options,\n {\n position: {\n my: \"left top\",\n at: \"left bottom\",\n collision: \"fit none\"\n },\n classes: {\n \"ui-autocomplete\": \"addsearch\"\n },\n response: function( event, ui ) {\n const gridTpl = \"\\\". s\\\"\",\n $el = $(this).autocomplete( 'widget'),\n count = Math.max(0,ui.content.length - 1);\n\n $el.css('grid-template-areas', gridTpl.repeat(count) + \"\\\"x x\\\"\")\n\n },\n select: function selectHandler(event, ui) {\n if (validURL(ui.item.value)) {\n\n sendStats(drupalSettings.addsearch.pubkey,{\n \"action\": \"click\",\n \"keyword\": event.target.value,\n \"docid\": ui.item.docid,\n \"position\": ui.item.pos\n })\n\n window.location = ui.item.value;\n return false;\n }\n\n $(this).data('dontClose', true);\n\n return true;\n },\n // Add our own renderer.\n create: function( event, ui ) {\n $(this).data('ui-autocomplete')._renderMenu = renderMenu\n },\n\n focus: function( event, ui ) {\n var val = event.target.value,\n divider = event.currentTarget.querySelector('.ui-menu-divider'),\n previewEl = event.currentTarget.querySelector('.preview');\n\n if (ui.item.capture) {\n if (!previewEl) {\n previewEl = document.createElement('div');\n previewEl.innerHTML = '';\n previewEl.classList.add('preview')\n divider.insertAdjacentElement('afterbegin',previewEl);\n }\n\n previewEl.querySelector('img').src = ui.item.capture;\n }\n\n return false;\n },\n\n close: function (event, ui) {\n\n if(typeof event.originalEvent !== 'undefined' && event.originalEvent.type === 'blur'){\n $(this).data('dontClose',false)\n }\n\n if($(this).data('dontClose')){\n event.target.focus();\n $(event.target).autocomplete( \"widget\" ).show()\n $(this).autocomplete( 'search' );\n if(typeof event.originalEvent == 'undefined') {\n $(this).data('dontClose',false)\n }\n }\n\n $(event.target).autocomplete( \"widget\" ).find('.preview').remove()\n }\n }\n );\n }\n }\n func(context);\n\n Drupal.autocomplete.options = org;\n }\n\n})(jQuery, drupalSettings);\n"],"names":["$","drupalSettings","validURL","str","test","func","Drupal","behaviors","autocomplete","attach","sendStats","pubkey","data","window","navigator","sendBeacon","JSON","stringify","fetch","method","headers","body","context","org","options","$autocomplete","find","once","length","hasClass","ui","select","renderMenu","ul","items","nextColumn","each","index","item","el","_renderItemData","value","label","attr","t","addClass","ol","appendTo","click","element","val","trigger","close","Object","assign","position","my","at","collision","classes","response","event","Math","max","$el","count","content","css","repeat","addsearch","target","docid","pos","location","create","_renderMenu","focus","divider","currentTarget","querySelector","previewEl","capture","document","createElement","innerHTML","classList","add","insertAdjacentElement","src","originalEvent","type","show","remove","jQuery"],"mappings":"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"}