| Current Path : /home/ereika83/www/wp-content/plugins/squirrly-seo/view/assets/js/ |
| Current File : /home/ereika83/www/wp-content/plugins/squirrly-seo/view/assets/js/bootstrap-ajax-select.min.js |
!function($,window){var AjaxBootstrapSelect=function(element,options){var i,l,plugin=this;options=options||{};this.$element=$(element);this.options=$.extend(true,{},$.fn.ajaxSelectPicker.defaults,options);this.LOG_ERROR=1;this.LOG_WARNING=2;this.LOG_INFO=3;this.LOG_DEBUG=4;this.lastRequest=false;this.previousQuery="";this.query="";this.request=false;var deprecatedOptionsMap=[{from:"ajaxResultsPreHook",to:"preprocessData"},{from:"ajaxSearchUrl",to:{ajax:{url:"{{{value}}}"}}},{from:"ajaxOptions",to:"ajax"},{from:"debug",to:function(map){var _options={};_options.log=Boolean(plugin.options[map.from])?plugin.LOG_DEBUG:0;plugin.options=$.extend(true,{},plugin.options,_options);delete plugin.options[map.from];plugin.log(plugin.LOG_WARNING,'Deprecated option "'+map.from+'". Update code to use:',_options)}},{from:"mixWithCurrents",to:"preserveSelected"},{from:"placeHolderOption",to:{locale:{emptyTitle:"{{{value}}}"}}}];if(deprecatedOptionsMap.length){$.map(deprecatedOptionsMap,function(map){if(plugin.options[map.from]){if($.isPlainObject(map.to)){plugin.replaceValue(map.to,"{{{value}}}",plugin.options[map.from]);plugin.options=$.extend(true,{},plugin.options,map.to);plugin.log(plugin.LOG_WARNING,'Deprecated option "'+map.from+'". Update code to use:',map.to);delete plugin.options[map.from]}else if($.isFunction(map.to)){map.to.apply(plugin,[map])}else{var _options={};_options[map.to]=plugin.options[map.from];plugin.options=$.extend(true,{},plugin.options,_options);plugin.log(plugin.LOG_WARNING,'Deprecated option "'+map.from+'". Update code to use:',_options);delete plugin.options[map.from]}}})}var data=this.$element.data();if(data["searchUrl"]){plugin.log(plugin.LOG_WARNING,'Deprecated attribute name: "data-search-url". Update markup to use: \' data-abs-ajax-url="'+data["searchUrl"]+"\" '");this.options.ajax.url=data["searchUrl"]}var matchToLowerCase=function(match,p1){return p1.toLowerCase()};var expandObject=function(keys,value,obj){var k=[].concat(keys),l=k.length,o=obj||{};if(l){var key=k.shift();o[key]=expandObject(k,value,o[key])}return l?o:value};var dataKeys=Object.keys(data).filter(/./.test.bind(new RegExp("^abs[A-Z]")));if(dataKeys.length){var dataOptions={};var flattenedOptions=["locale"];for(i=0,l=dataKeys.length;i<l;i++){var name=dataKeys[i].replace(/^abs([A-Z])/,matchToLowerCase).replace(/([A-Z])/g,"-$1").toLowerCase();var keys=name.split("-");if(keys[0]&&keys.length>1&&flattenedOptions.indexOf(keys[0])!==-1){var newKeys=[keys.shift()];var property="";for(var ii=0;ii<keys.length;ii++){property+=ii===0?keys[ii]:keys[ii].charAt(0).toUpperCase()+keys[ii].slice(1)}newKeys.push(property);keys=newKeys}this.log(this.LOG_DEBUG,'Processing data attribute "data-abs-'+name+'":',data[dataKeys[i]]);expandObject(keys,data[dataKeys[i]],dataOptions)}this.options=$.extend(true,{},this.options,dataOptions);this.log(this.LOG_DEBUG,"Merged in the data attribute options: ",dataOptions,this.options)}this.selectpicker=data["selectpicker"];if(!this.selectpicker){this.log(this.LOG_ERROR,"Cannot instantiate an AjaxBootstrapSelect instance without selectpicker first being initialized!");return null}if(!this.options.ajax.url){this.log(this.LOG_ERROR,'Option "ajax.url" must be set! Options:',this.options);return null}this.locale=$.extend(true,{},$.fn.ajaxSelectPicker.locale);this.options.langCode=this.options.langCode||window.navigator.userLanguage||window.navigator.language||"en";if(!this.locale[this.options.langCode]){var langCode=this.options.langCode;this.options.langCode="en";var langCodeArray=langCode.split("-");for(i=0,l=langCodeArray.length;i<l;i++){var code=langCodeArray.join("-");if(code.length&&this.locale[code]){this.options.langCode=code;break}langCodeArray.pop()}this.log(this.LOG_WARNING,'Unknown langCode option: "'+langCode+'". Using the following langCode instead: "'+this.options.langCode+'".')}this.locale[this.options.langCode]=$.extend(true,{},this.locale[this.options.langCode],this.options.locale);this.list=new window.AjaxBootstrapSelectList(this);this.list.refresh();setTimeout(function(){plugin.init()},500)};AjaxBootstrapSelect.prototype.init=function(){var requestDelayTimer,plugin=this;if(this.options.preserveSelected){this.selectpicker.$menu.off("click",".actions-btn").on("click",".actions-btn",function(e){if(plugin.selectpicker.options.liveSearch){plugin.selectpicker.$searchbox.focus()}else{plugin.selectpicker.$button.focus()}e.preventDefault();e.stopPropagation();if($(this).is(".bs-select-all")){if(plugin.selectpicker.$lis===null){plugin.selectpicker.$lis=plugin.selectpicker.$menu.find("li")}plugin.$element.find("option:enabled").prop("selected",true);$(plugin.selectpicker.$lis).not(".disabled").addClass("selected");plugin.selectpicker.render()}else{if(plugin.selectpicker.$lis===null){plugin.selectpicker.$lis=plugin.selectpicker.$menu.find("li")}plugin.$element.find("option:enabled").prop("selected",false);$(plugin.selectpicker.$lis).not(".disabled").removeClass("selected");plugin.selectpicker.render()}plugin.selectpicker.$element.change()})}this.selectpicker.$searchbox.attr("placeholder",this.t("searchPlaceholder")).off("input propertychange");this.selectpicker.$searchbox.on(this.options.bindEvent,function(e){var query=plugin.selectpicker.$searchbox.val();plugin.log(plugin.LOG_DEBUG,'Bind event fired: "'+plugin.options.bindEvent+'", keyCode:',e.keyCode,e);if(!plugin.options.cache){plugin.options.ignoredKeys[13]="enter"}if(plugin.options.ignoredKeys[e.keyCode]){plugin.log(plugin.LOG_DEBUG,"Key ignored.");return}if(query.length<plugin.options.minLength){plugin.list.setStatus(plugin.t("statusTooShort"));return}clearTimeout(requestDelayTimer);if(!query.length){if(plugin.options.clearOnEmpty){plugin.list.destroy()}if(!plugin.options.emptyRequest){return}}plugin.previousQuery=plugin.query;plugin.query=query;if(plugin.options.cache&&e.keyCode!==13){var cache=plugin.list.cacheGet(plugin.query);if(cache){plugin.list.setStatus(!cache.length?plugin.t("statusNoResults"):"");plugin.list.replaceOptions(cache);plugin.log(plugin.LOG_INFO,"Rebuilt options from cached data.");return}}requestDelayTimer=setTimeout(function(){if(plugin.lastRequest&&plugin.lastRequest.jqXHR&&$.isFunction(plugin.lastRequest.jqXHR.abort)){plugin.lastRequest.jqXHR.abort()}plugin.request=new window.AjaxBootstrapSelectRequest(plugin);plugin.request.jqXHR.always(function(){plugin.lastRequest=plugin.request;plugin.request=false})},plugin.options.requestDelay||300)})};AjaxBootstrapSelect.prototype.log=function(type,message){if(window.console&&this.options.log){if(typeof this.options.log!=="number"){if(typeof this.options.log==="string"){this.options.log=this.options.log.toLowerCase()}switch(this.options.log){case true:case"debug":this.options.log=this.LOG_DEBUG;break;case"info":this.options.log=this.LOG_INFO;break;case"warn":case"warning":this.options.log=this.LOG_WARNING;break;default:case false:case"error":this.options.log=this.LOG_ERROR;break}}if(type<=this.options.log){var args=[].slice.apply(arguments,[2]);switch(type){case this.LOG_DEBUG:type="debug";break;case this.LOG_INFO:type="info";break;case this.LOG_WARNING:type="warn";break;default:case this.LOG_ERROR:type="error";break}var prefix="["+type.toUpperCase()+"] AjaxBootstrapSelect:";if(typeof message==="string"){args.unshift(prefix+" "+message)}else{args.unshift(message);args.unshift(prefix)}window.console[type].apply(window.console,args)}}};AjaxBootstrapSelect.prototype.replaceValue=function(obj,needle,value,options){var plugin=this;options=$.extend({recursive:true,depth:false,limit:false},options);$.each(obj,function(k,v){if(options.limit!==false&&typeof options.limit==="number"&&options.limit<=0){return false}if($.isArray(obj[k])||$.isPlainObject(obj[k])){if(options.recursive&&options.depth===false||options.recursive&&typeof options.depth==="number"&&options.depth>0){plugin.replaceValue(obj[k],needle,value,options)}}else{if(v===needle){if(options.limit!==false&&typeof options.limit==="number"){options.limit--}obj[k]=value}}})};AjaxBootstrapSelect.prototype.t=function(key,langCode){langCode=langCode||this.options.langCode;if(this.locale[langCode]&&this.locale[langCode].hasOwnProperty(key)){return this.locale[langCode][key]}this.log(this.LOG_WARNING,"Unknown translation key:",key);return key};window.AjaxBootstrapSelect=window.AjaxBootstrapSelect||AjaxBootstrapSelect;var AjaxBootstrapSelectList=function(plugin){var that=this;this.$status=$(plugin.options.templates.status).hide().appendTo(plugin.selectpicker.$menu);var statusInitialized=plugin.t("statusInitialized");if(statusInitialized&&statusInitialized.length){this.setStatus(statusInitialized)}this.cache={};this.plugin=plugin;this.selected=[];this.title=null;this.selectedTextFormat=plugin.selectpicker.options.selectedTextFormat;var initial_options=[];plugin.$element.find("option").each(function(){var $option=$(this);var value=$option.attr("value");initial_options.push({value:value,text:$option.text(),class:$option.attr("class")||"",data:$option.data()||{},preserved:plugin.options.preserveSelected,selected:!!$option.attr("selected")})});this.cacheSet("",initial_options);if(plugin.options.preserveSelected){that.selected=initial_options;plugin.$element.on("change.abs.preserveSelected",function(e){var $selected=plugin.$element.find(":selected");that.selected=[];if(!plugin.selectpicker.multiple){$selected=$selected.last()}$selected.each(function(){var $option=$(this);var value=$option.attr("value");that.selected.push({value:value,text:$option.text(),class:$option.attr("class")||"",data:$option.data()||{},preserved:true,selected:true})});that.replaceOptions(that.cacheGet(that.plugin.query))})}};AjaxBootstrapSelectList.prototype.build=function(data){var a,i,l=data.length;var $select=$("<select/>");var $preserved=$("<optgroup/>").attr("label",this.plugin.t("currentlySelected"));this.plugin.log(this.plugin.LOG_DEBUG,"Building the select list options from data:",data);for(i=0;i<l;i++){var item=data[i];var $option=$("<option/>").appendTo(item.preserved?$preserved:$select);if(item.hasOwnProperty("divider")){$option.attr("data-divider","true");continue}$option.val(item.value).text(item.text).attr("title",item.text);if(item["class"].length){$option.attr("class",item["class"])}if(item.disabled){$option.attr("disabled",true)}if(item.selected&&!this.plugin.selectpicker.multiple){$select.find(":selected").prop("selected",false)}if(item.selected){$option.attr("selected",true)}for(a in item.data){if(item.data.hasOwnProperty(a)){$option.attr("data-"+a,item.data[a])}}}if($preserved.find("option").length){$preserved[this.plugin.options.preserveSelectedPosition==="before"?"prependTo":"appendTo"]($select)}var options=$select.html();this.plugin.log(this.plugin.LOG_DEBUG,options);return options};AjaxBootstrapSelectList.prototype.cacheGet=function(key,defaultValue){var value=this.cache[key]||defaultValue;this.plugin.log(this.LOG_DEBUG,"Retrieving cache:",key,value);return value};AjaxBootstrapSelectList.prototype.cacheSet=function(key,value){this.cache[key]=value;this.plugin.log(this.LOG_DEBUG,"Saving to cache:",key,value)};AjaxBootstrapSelectList.prototype.destroy=function(){this.replaceOptions();this.plugin.list.setStatus();this.plugin.log(this.plugin.LOG_DEBUG,"Destroyed select list.")};AjaxBootstrapSelectList.prototype.refresh=function(triggerChange){this.plugin.selectpicker.$menu.css("minHeight",0);this.plugin.selectpicker.$menu.find("> .inner").css("minHeight",0);var emptyTitle=this.plugin.t("emptyTitle");if(!this.plugin.$element.find("option").length&&emptyTitle&&emptyTitle.length){this.setTitle(emptyTitle)}else if(this.title||this.selectedTextFormat!=="static"&&this.selectedTextFormat!==this.plugin.selectpicker.options.selectedTextFormat){this.restoreTitle()}this.plugin.selectpicker.refresh();this.plugin.selectpicker.findLis();if(triggerChange){this.plugin.log(this.plugin.LOG_DEBUG,"Triggering Change");this.plugin.$element.trigger("change.$")}this.plugin.log(this.plugin.LOG_DEBUG,"Refreshed select list.")};AjaxBootstrapSelectList.prototype.replaceOptions=function(data){var i,l,item,output="",processedData=[],selected=[],seenValues=[];data=data||[];if(this.selected&&this.selected.length){this.plugin.log(this.plugin.LOG_INFO,"Processing preserved selections:",this.selected);selected=[].concat(this.selected,data);l=selected.length;for(i=0;i<l;i++){item=selected[i];if(item.hasOwnProperty("value")&&seenValues.indexOf(item.value+"")===-1){seenValues.push(item.value+"");processedData.push(item)}else{this.plugin.log(this.plugin.LOG_DEBUG,"Duplicate item found, ignoring.")}}data=processedData}if(data.length){output=this.plugin.list.build(data)}this.plugin.$element.html(output);this.refresh();this.plugin.log(this.plugin.LOG_DEBUG,"Replaced options with data:",data)};AjaxBootstrapSelectList.prototype.restore=function(){var cache=this.plugin.list.cacheGet(this.plugin.previousQuery);if(cache&&this.plugin.list.replaceOptions(cache)){this.plugin.log(this.plugin.LOG_DEBUG,"Restored select list to the previous query: ",this.plugin.previousQuery)}this.plugin.log(this.plugin.LOG_DEBUG,"Unable to restore select list to the previous query:",this.plugin.previousQuery);return false};AjaxBootstrapSelectList.prototype.restoreTitle=function(){if(!this.plugin.request){this.plugin.selectpicker.options.selectedTextFormat=this.selectedTextFormat;if(this.title){this.plugin.$element.attr("title",this.title)}else{this.plugin.$element.removeAttr("title")}this.title=null}};AjaxBootstrapSelectList.prototype.setTitle=function(title){if(!this.plugin.request){this.title=this.plugin.$element.attr("title");this.plugin.selectpicker.options.selectedTextFormat="static";this.plugin.$element.attr("title",title)}};AjaxBootstrapSelectList.prototype.setStatus=function(status){status=status||"";if(status.length){this.$status.html(status).show()}else{this.$status.html("").hide()}};window.AjaxBootstrapSelectList=window.AjaxBootstrapSelectList||AjaxBootstrapSelectList;var AjaxBootstrapSelectRequest=function(plugin){var that=this;var ajaxCallback=function(event){return function(){that.plugin.log(that.plugin.LOG_INFO,"Invoking AjaxBootstrapSelectRequest."+event+" callback:",arguments);that[event].apply(that,arguments);if(that.callbacks[event]){that.plugin.log(that.plugin.LOG_INFO,"Invoking ajax."+event+" callback:",arguments);that.callbacks[event].apply(that,arguments)}}};var events=["beforeSend","success","error","complete"];var i,l=events.length;this.plugin=plugin;this.options=$.extend(true,{},plugin.options.ajax);this.callbacks={};for(i=0;i<l;i++){var event=events[i];if(this.options[event]&&$.isFunction(this.options[event])){this.callbacks[event]=this.options[event]}this.options[event]=ajaxCallback(event)}if(this.options.data&&$.isFunction(this.options.data)){this.options.data=this.options.data.apply(this)||{q:"{{{q}}}"}}this.plugin.replaceValue(this.options.data,"{{{q}}}",this.plugin.query);this.jqXHR=$.ajax(this.options)};AjaxBootstrapSelectRequest.prototype.beforeSend=function(jqXHR){this.plugin.list.destroy();this.plugin.list.setStatus(this.plugin.t("statusSearching"))};AjaxBootstrapSelectRequest.prototype.complete=function(jqXHR,status){if(status!=="abort"){var cache=this.plugin.list.cacheGet(this.plugin.query);if(cache){if(cache.length){this.plugin.list.setStatus()}else{this.plugin.list.destroy();this.plugin.list.setStatus(this.plugin.t("statusNoResults"));this.plugin.log(this.plugin.LOG_INFO,"No results were returned.");return}}this.plugin.list.refresh(true)}};AjaxBootstrapSelectRequest.prototype.error=function(jqXHR,status,error){if(status!=="abort"){this.plugin.list.cacheSet(this.plugin.query);if(this.plugin.options.clearOnError){this.plugin.list.destroy()}this.plugin.list.setStatus(this.plugin.t("errorText"));if(this.plugin.options.restoreOnError){this.plugin.list.restore();this.plugin.list.setStatus()}}};AjaxBootstrapSelectRequest.prototype.process=function(data){var i,l,callbackResult,item,preprocessedData,processedData;var filteredData=[],seenValues=[];this.plugin.log(this.plugin.LOG_INFO,"Processing raw data for:",this.plugin.query,data);preprocessedData=data;if($.isFunction(this.plugin.options.preprocessData)){this.plugin.log(this.plugin.LOG_DEBUG,"Invoking preprocessData callback:",this.plugin.options.processData);callbackResult=this.plugin.options.preprocessData.apply(this,[preprocessedData]);if(typeof callbackResult!=="undefined"&&callbackResult!==null&&callbackResult!==false){preprocessedData=callbackResult}}if(!$.isArray(preprocessedData)){this.plugin.log(this.plugin.LOG_ERROR,'The data returned is not an Array. Use the "preprocessData" callback option to parse the results and construct a proper array for this plugin.',preprocessedData);return false}l=preprocessedData.length;for(i=0;i<l;i++){item=preprocessedData[i];this.plugin.log(this.plugin.LOG_DEBUG,"Processing item:",item);if($.isPlainObject(item)){if(item.hasOwnProperty("divider")||item.hasOwnProperty("data")&&$.isPlainObject(item.data)&&item.data.divider){this.plugin.log(this.plugin.LOG_DEBUG,"Item is a divider, ignoring provided data.");filteredData.push({divider:true})}else{if(item.hasOwnProperty("value")){if(seenValues.indexOf(item.value+"")===-1){seenValues.push(item.value+"");item=$.extend({text:item.value,class:"",data:{},disabled:false,selected:false},item);filteredData.push(item)}else{this.plugin.log(this.plugin.LOG_DEBUG,"Duplicate item found, ignoring.")}}else{this.plugin.log(this.plugin.LOG_DEBUG,'Data item must have a "value" property, skipping.')}}}}processedData=[].concat(filteredData);if($.isFunction(this.plugin.options.processData)){this.plugin.log(this.plugin.LOG_DEBUG,"Invoking processData callback:",this.plugin.options.processData);callbackResult=this.plugin.options.processData.apply(this,[processedData]);if(typeof callbackResult!=="undefined"&&callbackResult!==null&&callbackResult!==false){if($.isArray(callbackResult)){processedData=callbackResult}else{this.plugin.log(this.plugin.LOG_ERROR,"The processData callback did not return an array.",callbackResult);return false}}}this.plugin.list.cacheSet(this.plugin.query,processedData);this.plugin.log(this.plugin.LOG_INFO,"Processed data:",processedData);return processedData};AjaxBootstrapSelectRequest.prototype.success=function(data,status,jqXHR){if(!$.isArray(data)&&!$.isPlainObject(data)){this.plugin.log(this.plugin.LOG_ERROR,"Request did not return a JSON Array or Object.",data);this.plugin.list.destroy();return}var processedData=this.process(data);this.plugin.list.replaceOptions(processedData)};window.AjaxBootstrapSelectRequest=window.AjaxBootstrapSelectRequest||AjaxBootstrapSelectRequest;$.fn.ajaxSelectPicker=function(options){return this.each(function(){if(!$(this).data("AjaxBootstrapSelect")){$(this).data("AjaxBootstrapSelect",new window.AjaxBootstrapSelect(this,options))}})};$.fn.ajaxSelectPicker.locale={};$.fn.ajaxSelectPicker.defaults={ajax:{url:null,type:"POST",dataType:"json",data:{q:"{{{q}}}"}},minLength:0,bindEvent:"keyup",cache:true,clearOnEmpty:true,clearOnError:true,emptyRequest:false,ignoredKeys:{9:"tab",16:"shift",17:"ctrl",18:"alt",27:"esc",37:"left",39:"right",38:"up",40:"down",91:"meta"},langCode:null,locale:null,log:"error",preprocessData:function(){},preserveSelected:true,preserveSelectedPosition:"after",processData:function(){},requestDelay:300,restoreOnError:false,templates:{status:'<div class="status"></div>'}};$.fn.ajaxSelectPicker.locale["en-US"]={currentlySelected:"Currently Selected",emptyTitle:"Select and begin typing",errorText:"Unable to retrieve results",searchPlaceholder:"Search...",statusInitialized:"Start typing a search query",statusNoResults:"No Results",statusSearching:"Searching...",statusTooShort:"Please enter more characters"};$.fn.ajaxSelectPicker.locale.en=$.fn.ajaxSelectPicker.locale["en-US"]}(jQuery,window);