File "jquery.fonticonpicker.min.js"
Full Path: /home/amervokv/ecomlive.net/wp-content/plugins/elementskit-lite/modules/megamenu/assets/js/jquery.fonticonpicker.min.js
File size: 12.08 KB
MIME-type: text/plain
Charset: utf-8
!function(t){"use strict";var e={theme:"fip-grey",source:!1,emptyIcon:!0,emptyIconValue:"",iconsPerPage:20,hasSearch:!0,searchSource:!1,useAttribute:!1,attributeName:"data-icon",convertToHex:!0,allCategoryText:"From all categories",unCategorizedText:"Uncategorized"};function i(i,s){this.element=t(i),this.settings=t.extend({},e,s),this.settings.emptyIcon&&this.settings.iconsPerPage--,this.iconPicker=t("<div/>",{"class":"icons-selector",style:"position: relative",html:'<div class="selector"><span class="selected-icon"><i class="fip-icon-block"></i></span><span class="selector-button"><i class="fip-icon-down-dir"></i></span></div><div class="selector-popup" style="display: none;">'+(this.settings.hasSearch?'<div class="selector-search"><input type="text" name="" value="" placeholder="Search icon" class="icons-search-input"/><i class="fip-icon-search"></i></div>':"")+'<div class="selector-category"><select name="" class="icon-category-select" style="display: none"></select></div><div class="fip-icons-container"></div><div class="selector-footer" style="display:none;"><span class="selector-pages">1/2</span><span class="selector-arrows"><span class="selector-arrow-left" style="display:none;"><i class="fip-icon-left-dir"></i></span><span class="selector-arrow-right"><i class="fip-icon-right-dir"></i></span></span></div></div>'}),this.iconContainer=this.iconPicker.find(".fip-icons-container"),this.searchIcon=this.iconPicker.find(".selector-search i"),this.iconsSearched=[],this.isSearch=!1,this.totalPage=1,this.currentPage=1,this.currentIcon=!1,this.iconsCount=0,this.open=!1,this.searchValues=[],this.availableCategoriesSearch=[],this.triggerEvent=null,this.backupSource=[],this.backupSearch=[],this.isCategorized=!1,this.selectCategory=this.iconPicker.find(".icon-category-select"),this.selectedCategory=!1,this.availableCategories=[],this.unCategorizedKey=null,this.init()}i.prototype={init:function(){this.iconPicker.addClass(this.settings.theme),this.iconPicker.css({left:-9999}).appendTo("body");var e=this.iconPicker.outerHeight(),i=this.iconPicker.outerWidth();if(this.iconPicker.css({left:""}),this.element.before(this.iconPicker),this.element.css({visibility:"hidden",top:0,position:"relative",zIndex:"-1",left:"-"+i+"px",display:"inline-block",height:e+"px",width:i+"px",padding:"0",margin:"0 -"+i+"px 0 0",border:"0 none",verticalAlign:"top"}),!this.element.is("select")){var s=function(){for(var t=3,e=document.createElement("div"),i=e.all||[];e.innerHTML="\x3c!--[if gt IE "+ ++t+"]><br><![endif]--\x3e",i[0];);return t>4?t:!t}(),n=document.createElement("div");this.triggerEvent=9!==s&&"oninput"in n?["input","keyup"]:["keyup"]}!this.settings.source&&this.element.is("select")?(this.settings.source=[],this.settings.searchSource=[],this.element.find("optgroup").length?(this.isCategorized=!0,this.element.find("optgroup").each(t.proxy((function(e,i){var s=this.availableCategories.length,n=t("<option />");n.attr("value",s),n.html(t(i).attr("label")),this.selectCategory.append(n),this.availableCategories[s]=[],this.availableCategoriesSearch[s]=[],t(i).find("option").each(t.proxy((function(e,i){var n=t(i).val(),c=t(i).html();n&&n!==this.settings.emptyIconValue&&(this.settings.source.push(n),this.availableCategories[s].push(n),this.searchValues.push(c),this.availableCategoriesSearch[s].push(c))}),this))}),this)),this.element.find("> option").length&&this.element.find("> option").each(t.proxy((function(e,i){var s=t(i).val(),n=t(i).html();if(!s||""===s||s==this.settings.emptyIconValue)return!0;null===this.unCategorizedKey&&(this.unCategorizedKey=this.availableCategories.length,this.availableCategories[this.unCategorizedKey]=[],this.availableCategoriesSearch[this.unCategorizedKey]=[],t("<option />").attr("value",this.unCategorizedKey).html(this.settings.unCategorizedText).appendTo(this.selectCategory)),this.settings.source.push(s),this.availableCategories[this.unCategorizedKey].push(s),this.searchValues.push(n),this.availableCategoriesSearch[this.unCategorizedKey].push(n)}),this))):this.element.find("option").each(t.proxy((function(e,i){var s=t(i).val(),n=t(i).html();s&&(this.settings.source.push(s),this.searchValues.push(n))}),this)),this.backupSource=this.settings.source.slice(0),this.backupSearch=this.searchValues.slice(0),this.loadCategories()):this.initSourceIndex(),this.loadIcons(),this.selectCategory.on("change keyup",t.proxy((function(e){if(!1===this.isCategorized)return!1;var i=t(e.currentTarget),s=i.val();if("all"===i.val())this.settings.source=this.backupSource,this.searchValues=this.backupSearch;else{var n=parseInt(s,10);this.availableCategories[n]&&(this.settings.source=this.availableCategories[n],this.searchValues=this.availableCategoriesSearch[n])}this.resetSearch(),this.loadIcons()}),this)),this.iconPicker.find(".selector-button").on("click",t.proxy((function(){this.toggleIconSelector()}),this)),this.iconPicker.find(".selector-arrow-right").on("click",t.proxy((function(e){this.currentPage<this.totalPage&&(this.iconPicker.find(".selector-arrow-left").show(),this.currentPage=this.currentPage+1,this.renderIconContainer()),this.currentPage===this.totalPage&&t(e.currentTarget).hide()}),this)),this.iconPicker.find(".selector-arrow-left").on("click",t.proxy((function(e){this.currentPage>1&&(this.iconPicker.find(".selector-arrow-right").show(),this.currentPage=this.currentPage-1,this.renderIconContainer()),1===this.currentPage&&t(e.currentTarget).hide()}),this)),this.iconPicker.find(".icons-search-input").keyup(t.proxy((function(e){var i=t(e.currentTarget).val();""!==i?(this.searchIcon.removeClass("fip-icon-search"),this.searchIcon.addClass("fip-icon-cancel"),this.isSearch=!0,this.currentPage=1,this.iconsSearched=[],t.grep(this.searchValues,t.proxy((function(t,e){if(t.toLowerCase().search(i.toLowerCase())>=0)return this.iconsSearched[this.iconsSearched.length]=this.settings.source[e],!0}),this)),this.renderIconContainer()):this.resetSearch()}),this)),this.iconPicker.find(".selector-search").on("click",".fip-icon-cancel",t.proxy((function(){this.iconPicker.find(".icons-search-input").trigger("focus"),this.resetSearch()}),this)),this.iconContainer.on("click",".fip-box",t.proxy((function(e){this.setSelectedIcon(t(e.currentTarget).find("i").attr("data-fip-value")),this.toggleIconSelector()}),this)),this.iconPicker.on("click",(function(t){return t.stopPropagation(),!1})),t("html").on("click",t.proxy((function(){this.open&&this.toggleIconSelector()}),this))},initSourceIndex:function(){if("object"==typeof this.settings.source){if(t.isArray(this.settings.source))this.isCategorized=!1,this.selectCategory.html("").hide(),this.settings.source=t.map(this.settings.source,(function(t,e){return"function"==typeof t.toString?t.toString():t})),t.isArray(this.settings.searchSource)?this.searchValues=t.map(this.settings.searchSource,(function(t,e){return"function"==typeof t.toString?t.toString():t})):this.searchValues=this.settings.source.slice(0);else{var e=t.extend(!0,{},this.settings.source);for(var i in this.settings.source=[],this.searchValues=[],this.availableCategoriesSearch=[],this.selectedCategory=!1,this.availableCategories=[],this.unCategorizedKey=null,this.isCategorized=!0,this.selectCategory.html(""),e){var s=this.availableCategories.length,n=t("<option />");for(var c in n.attr("value",s),n.html(i),this.selectCategory.append(n),this.availableCategories[s]=[],this.availableCategoriesSearch[s]=[],e[i]){var o=e[i][c],r=this.settings.searchSource&&this.settings.searchSource[i]&&this.settings.searchSource[i][c]?this.settings.searchSource[i][c]:o;"function"==typeof o.toString&&(o=o.toString()),o&&o!==this.settings.emptyIconValue&&(this.settings.source.push(o),this.availableCategories[s].push(o),this.searchValues.push(r),this.availableCategoriesSearch[s].push(r))}}}this.backupSource=this.settings.source.slice(0),this.backupSearch=this.searchValues.slice(0),this.loadCategories()}},loadCategories:function(){!1!==this.isCategorized&&(t('<option value="all">'+this.settings.allCategoryText+"</option>").prependTo(this.selectCategory),this.selectCategory.show().val("all").trigger("change"))},loadIcons:function(){this.iconContainer.html('<i class="fip-icon-spin3 animate-spin loading"></i>'),this.settings.source instanceof Array&&this.renderIconContainer()},renderIconContainer:function(){var e,i=[];if(i=this.isSearch?this.iconsSearched:this.settings.source,this.iconsCount=i.length,this.totalPage=Math.ceil(this.iconsCount/this.settings.iconsPerPage),this.totalPage>1?this.iconPicker.find(".selector-footer").show():this.iconPicker.find(".selector-footer").hide(),this.iconPicker.find(".selector-pages").html(this.currentPage+"/"+this.totalPage+" <em>("+this.iconsCount+")</em>"),e=(this.currentPage-1)*this.settings.iconsPerPage,this.settings.emptyIcon)this.iconContainer.html('<span class="fip-box"><i class="fip-icon-block" data-fip-value="fip-icon-block"></i></span>');else{if(i.length<1)return void this.iconContainer.html('<span class="icons-picker-error"><i class="fip-icon-block" data-fip-value="fip-icon-block"></i></span>');this.iconContainer.html("")}i=i.slice(e,e+this.settings.iconsPerPage);for(var s,n=0;s=i[n++];){var c=s;t.grep(this.settings.source,t.proxy((function(t,e){return t===s&&(c=this.searchValues[e],!0)}),this)),t("<span/>",{html:'<i data-fip-value="'+s+'" '+(this.settings.useAttribute?this.settings.attributeName+'="'+(this.settings.convertToHex?"&#x"+parseInt(s,10).toString(16)+";":s)+'"':'class="'+s+'"')+"></i>","class":"fip-box",title:c}).appendTo(this.iconContainer)}this.settings.emptyIcon||this.element.val()&&-1!==t.inArray(this.element.val(),this.settings.source)?-1===t.inArray(this.element.val(),this.settings.source)?this.setSelectedIcon():this.setSelectedIcon(this.element.val()):this.setSelectedIcon(i[0])},setHighlightedIcon:function(){this.iconContainer.find(".current-icon").removeClass("current-icon"),this.currentIcon&&this.iconContainer.find('[data-fip-value="'+this.currentIcon+'"]').parent("span").addClass("current-icon")},setSelectedIcon:function(t){if("fip-icon-block"===t&&(t=""),this.settings.useAttribute?t?this.iconPicker.find(".selected-icon").html("<i "+this.settings.attributeName+'="'+(this.settings.convertToHex?"&#x"+parseInt(t,10).toString(16)+";":t)+'"></i>'):this.iconPicker.find(".selected-icon").html('<i class="fip-icon-block"></i>'):this.iconPicker.find(".selected-icon").html('<i class="'+(t||"fip-icon-block")+'"></i>'),this.element.val(""===t?this.settings.emptyIconValue:t).trigger("change"),null!==this.triggerEvent)for(var e in this.triggerEvent)this.element.trigger(this.triggerEvent[e]);this.currentIcon=t,this.setHighlightedIcon()},toggleIconSelector:function(){this.open=this.open?0:1,this.iconPicker.find(".selector-popup").slideToggle(300),this.iconPicker.find(".selector-button i").toggleClass("fip-icon-down-dir"),this.iconPicker.find(".selector-button i").toggleClass("fip-icon-up-dir"),this.open&&this.iconPicker.find(".icons-search-input").trigger("focus").select()},resetSearch:function(){this.iconPicker.find(".icons-search-input").val(""),this.searchIcon.removeClass("fip-icon-cancel"),this.searchIcon.addClass("fip-icon-search"),this.iconPicker.find(".selector-arrow-left").hide(),this.currentPage=1,this.isSearch=!1,this.renderIconContainer(),this.totalPage>1&&this.iconPicker.find(".selector-arrow-right").show()}},t.fn.fontIconPicker=function(e){return this.each((function(){t.data(this,"fontIconPicker")||t.data(this,"fontIconPicker",new i(this,e))})),this.setIcons=t.proxy((function(e,i){undefined===e&&(e=!1),undefined===i&&(i=!1),this.each((function(){t.data(this,"fontIconPicker").settings.source=e,t.data(this,"fontIconPicker").settings.searchSource=i,t.data(this,"fontIconPicker").initSourceIndex(),t.data(this,"fontIconPicker").resetSearch(),t.data(this,"fontIconPicker").loadIcons()}))}),this),this.destroyPicker=t.proxy((function(){this.each((function(){t.data(this,"fontIconPicker")&&(t.data(this,"fontIconPicker").iconPicker.remove(),t.data(this,"fontIconPicker").element.css({visibility:"",top:"",position:"",zIndex:"",left:"",display:"",height:"",width:"",padding:"",margin:"",border:"",verticalAlign:""}),t.removeData(this,"fontIconPicker"))}))}),this),this.refreshPicker=t.proxy((function(s){s||(s=e),this.destroyPicker(),this.each((function(){t.data(this,"fontIconPicker")||t.data(this,"fontIconPicker",new i(this,s))}))}),this),this}}(jQuery);