Files
Batflat/themes/admin/js/selectator.min.js

9 lines
16 KiB
JavaScript
Raw Permalink Normal View History

2018-03-12 13:23:44 +01:00
/*
Selectator jQuery Plugin
version 3.1, 30.04.2017
by Ingi P. Jacobsen (Faroe Media) & Sruu.pl
The MIT License (MIT)
*/
!function(a){"use strict";a.selectator=function(b,c){var d={prefix:"selectator_",width:"100%",height:"auto",optionsHeight:"158px",useDimmer:!1,useSearch:!0,useOnMobile:!1,showAllOptionsOnFocus:!1,selectFirstOptionOnSearch:!0,keepOpen:!1,submitCallback:function(){},load:null,delay:0,minSearchLength:0,valueField:"value",textField:"text",searchFields:["value","text"],placeholder:"",render:{selected_item:function(a,b){var c="";return void 0!==a.left&&(c+='<div class="'+e.options.prefix+'selected_item_left">'+a.left+"</div>"),void 0!==a.right&&(c+='<div class="'+e.options.prefix+'selected_item_right">'+a.right+"</div>"),c+='<div class="'+e.options.prefix+'selected_item_title">'+(void 0!==a.text?b(a.text):"")+"</div>",void 0!==a.subtitle&&(c+='<div class="'+e.options.prefix+'selected_item_subtitle">'+b(a.subtitle)+"</div>"),c+='<div class="'+e.options.prefix+'selected_item_remove">x</div>'},option:function(a,b){var c="";return void 0!==a.left&&(c+='<div class="'+e.options.prefix+'option_left">'+a.left+"</div>"),void 0!==a.right&&(c+='<div class="'+e.options.prefix+'option_right">'+a.right+"</div>"),c+='<div class="'+e.options.prefix+'option_title">'+(void 0!==a.text?b(a.text):"")+"</div>",void 0!==a.subtitle&&(c+='<div class="'+e.options.prefix+'option_subtitle">'+b(a.subtitle)+"</div>"),c}},labels:{search:"Search..."}},e=this;e.options={},e.$source_element=a(b),e.$container_element=null,e.$selecteditems_element=null,e.$input_element=null,e.$textlength_element=null,e.$options_element=null,e.usefilterResults=!0;var f=void 0===e.$source_element.attr("multiple"),g=!f,h=e.$source_element.is(":disabled"),i=/Mobi/i.test(navigator.userAgent),j=!1,k=!0,l=null,m={backspace:8,tab:9,enter:13,shift:16,ctrl:17,alt:18,capslock:20,escape:27,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40};e.init=function(){if(e.options=a.extend(!0,{},d,c),a.each(e.$source_element.data(),function(a,b){"selectator"==a.substring(0,10)&&(e.options[a.substring(10,11).toLowerCase()+a.substring(11)]=b)}),e.options.searchFields="string"==typeof e.options.searchFields?e.options.searchFields.split(" "):e.options.searchFields,e.$source_element.find("option").each(function(){a(this).data("value",this.value),a(this).data("text",this.text)}),j=null!==e.options.load,e.options.useDimmer&&0===a("#"+e.options.prefix+"dimmer").length){var b=a(document.createElement("div"));b.attr("id",e.options.prefix+"dimmer"),b.hide(),a(document.body).prepend(b)}e.$source_element.addClass("selectator"),e.$source_element.attr("placeholder")&&(e.options.placeholder=e.$source_element.attr("placeholder")),e.$container_element=a(document.createElement("div")),void 0!==e.$source_element.attr("id")&&e.$container_element.attr("id",e.options.prefix+e.$source_element.attr("id")),e.$container_element.addClass(e.options.prefix+"element "+(g?"multiple ":"single ")+"options-hidden"),e.options.useSearch||e.$container_element.addClass("disable_search"),h&&e.$container_element.addClass("disabled"),e.$container_element.css({width:e.options.width,minHeight:"auto"===e.options.height?e.$source_element.css("height"):e.options.height,padding:e.$source_element.css("padding"),"flex-grow":e.$source_element.css("flex-grow"),position:"relative"}),"element"===e.options.height&&e.$container_element.css({height:e.$source_element.outerHeight()+"px"}),e.$textlength_element=a(document.createElement("span")),e.$textlength_element.addClass(e.options.prefix+"textlength"),e.$textlength_element.css({position:"absolute",visibility:"hidden"}),e.$container_element.append(e.$textlength_element),e.$selecteditems_element=a(document.createElement("div")),e.$selecteditems_element.addClass(e.options.prefix+"selected_items"),e.$container_element.append(e.$selecteditems_element),e.$input_element=a(document.createElement("input")),e.$input_element.addClass(e.options.prefix+"input"),e.$input_element.attr("tabindex",e.$source_element.attr("tabindex")),e.options.useSearch?f?e.$input_element.attr("placeholder",e.options.labels.search):(""!=e.options.placeholder&&e.$input_element.attr("placeholder",e.options.placeholder),e.$i