/** * jQuery asIconPicker v0.2.4 * https://github.com/amazingSurge/jquery-asIconPicker * * Copyright (c) amazingSurge * Released under the LGPL-3.0 license */ !function(e,i){if("function"==typeof define&&define.amd)define(["jquery"],i);else if("undefined"!=typeof exports)i(require("jquery"));else{var t={exports:{}};i(e.jQuery),e.jqueryAsIconPickerEs=t.exports}}(this,function(e){"use strict";function i(e,i){if(!(e instanceof i))throw new TypeError("Cannot call a class as a function")}var t=function(e){return e&&e.__esModule?e:{default:e}}(e),s=function(){function e(e,i){for(var t=0;tNone selected
'},iconSearch:function(){return''},formatNoMatches:function(){return"No matches found"},errorHanding:function(){},process:function(e){return e&&e.match(this.iconPrefix)?e.replace(this.iconPrefix,""):e},parse:function(e){return e.match(this.iconPrefix)?e:this.iconPrefix+e},onInit:null,onReady:null,onAfterFill:null},a={init:function(e){this.attach(e,this.gather(e))},destroy:function(e){e.$wrapper.off("keydown"),e.bound=!1},keys:function(){return{LEFT:37,UP:38,RIGHT:39,DOWN:40,ENTER:13,ESC:27}},horizontalChange:function(e){this.$mask||this.options.flat?(this.index+=parseInt(e,10),this.index>=this.iconsAll.length?this.index=this.iconsAll.length-1:this.index<0&&(this.index=0),this.current=this.iconsAll[this.index],this.set(this.current)):this._open()},verticalChange:function(e){if(this.$mask||this.options.flat){var i=this.$iconContainer.find("."+this.namespace+"-list").width(),t=this.$iconContainer.find("."+this.namespace+"-list li").width(),s=Math.floor(i/t);if(e=parseInt(e,10),this.index>=0&&this.$iconContainer.find("."+this.namespace+"-group").text()){var n=this.$iconContainer.find("."+this.current).parent().siblings().length+1,a=this.$iconContainer.find("."+this.current).parents("."+this.namespace+"-group").next().find("li").length,r=this.$iconContainer.find("."+this.current).parents("."+this.namespace+"-group").prev().find("li").length,c=this.$iconContainer.find("."+this.current).parent().index(),o=void 0;1===e?(o=n%s,this.index+=c+s>=n&&a?c+o>=n&&o>0?c+o>=n+a?a:o:c+o+s>=n+a?o+a:o+s:s):-1===e&&(o=r%s,this.index-=c>o-1&&c=s?s+o:c+1:c<=o-1?o:s)}else this.index+=s*e;this.index>=this.iconsAll.length?this.index=this.iconsAll.length-1:this.index<0&&(this.index=0),this.current=this.iconsAll[this.index],this.set(this.current)}else this._open()},enter:function(){this.$mask?this.current&&(this.set(this.current),this._hide()):this._open()},esc:function(){this.set(this.previous),this._hide()},tab:function(){this._hide()},gather:function(e){return{left:$.proxy(this.horizontalChange,e,"-1"),up:$.proxy(this.verticalChange,e,"-1"),right:$.proxy(this.horizontalChange,e,"1"),down:$.proxy(this.verticalChange,e,"1"),enter:$.proxy(this.enter,e),esc:$.proxy(this.esc,e)}},press:function(e){var i=e.keyCode||e.which;if(9===i&&this._keyboard.tab.call(this),i in this.map&&"function"==typeof this.map[i])return e.preventDefault(),this.map[i].call(this);var t=this;this.$iconPicker.find("."+this.namespace+"-search-input").one("keyup",function(){t.searching($(this).val())})},attach:function(e,i){var t=this,s=void 0;for(s in i)if(i.hasOwnProperty(s)){var n=this._stringSeparate(s,"_"),a=[];if(1===n.length)a[0]=n[0].toUpperCase(),e.map[this.keys()[a[0]]]=i[s];else for(var r=0;r'),this.$wrapper=this.$element.parent(),this.$wrapper.attr("tabindex","0");var r=this.options.iconPicker().replace(/namespace/g,this.namespace),c=this.options.iconSearch().replace(/namespace/g,this.namespace).replace(/searchText/g,this.options.searchText);this.$iconPicker=(0,t.default)(r),this.$iconContainer=this.$iconPicker.find("."+this.namespace+"-icons-container"),this.$iconSearch=(0,t.default)(c),this.options.hasSearch&&(this.$iconContainer.before(this.$iconSearch),this.$iconContainer.parent().addClass(this.classes.search),this.iconsSearched=[]),this.map={},this.bound=!1,this.isSearch=!1,this.current=this.$element.val(),this.source=[],this.disabled=!1,this.initialized=!1,this._trigger("init"),this.init()}return s(e,[{key:"init",value:function(){var e=this;this.$element.hide(),this.$element.before(this.$iconPicker),!this.options.source&&this.$element.is("select")?this.source=this._getSourceFromSelect():this.source=this._processSource(this.options.source),this.showLoading(),this.$wrapper.find("."+this.namespace+"-selector-popup").addClass(this.classes.hide),e.options.flat?e._open():this.$wrapper.find("."+this.namespace+"-selector").on("click",function(){e._open()}),this.options.keyboard?this.$wrapper.on("focus",function(){a.init(e)}):this.$iconPicker.find("."+this.namespace+"-search-input").keyup(t.default.proxy(function(i){e.searching((0,t.default)(i.currentTarget).val())},this)),this.$iconPicker.on("click","."+this.namespace+"-isSearching ."+this.namespace+"-search-icon",t.default.proxy(function(){this.$iconPicker.find("."+this.namespace+"-search-input").focus().select(),this.reset()},this)),this.$iconContainer.on("click","."+this.namespace+"-list li",t.default.proxy(function(e){if(this.options.cancelSelected&&(0,t.default)(e.currentTarget).hasClass(this.namespace+"-current"))return(0,t.default)(e.currentTarget).removeClass(this.namespace+"-current"),void this.set();this.set((0,t.default)(e.currentTarget).children().data("value")),this._hide()},this)).on("mouseenter","."+this.namespace+"-list li",t.default.proxy(function(e){this.highlight((0,t.default)(e.currentTarget).children().data("value"))},this)).on("mouseleave","."+this.namespace+"-list li",t.default.proxy(function(){this.highlight()},this)),this.$iconPicker.click(function(i){return i.stopPropagation(),e.$iconPicker.find("."+e.namespace+"-search-input").focus().select(),!1}),this.initialized=!0,this._trigger("ready")}},{key:"_getSourceFromSelect",value:function(){var e=[];return this.$element.children().each(function(i,s){var n=(0,t.default)(s);if(n.is("optgroup")){for(var a=t.default.extend({},n.data(),{label:s.label,items:[]}),r=n.children(),c=r.length,o=0;o'),this.source.length>0&&this.fillIcon()}},{key:"searching",value:function(e){var i=this;if(""!==e){this.$iconSearch.addClass(this.namespace+"-isSearching"),this.isSearch=!0,this.iconsSearched=[];for(var s,n=function(t){return i.replaceDiacritics(t.text).toLowerCase().search(e.toLowerCase())>=0},a={},r=0;s=this.source[r];r++)void 0!==s.items?(a={label:s.label,items:t.default.grep(s.items,function(e){return n(e)})}).items.length>0&&this.iconsSearched.push(a):n(s)&&this.iconsSearched.push(s);if(this.iconsSearched.length>0){var c=this.iconsSearched[0];void 0!==c.items?this.current=c.items[0].value:this.current=c.value}else this.current="";this.fillIcon()}else this.reset()}},{key:"fillIcon",value:function(){var e=this;void 0!==this.$iconContainer.data("asIconPicker")&&this.$iconContainer.asIconPicker("destroy");var i=[];if(this.iconsAll=[],(i=this.isSearch?this.iconsSearched:this.source).length<1)this.$iconContainer.html('
'+this.options.formatNoMatches()+"
");else{this.$iconContainer.html("");for(var s,n=function(i){return e.iconsAll.push(i.value),(0,t.default)("
  • ",{html:'',title:e.options.tooltip?i.text:""})},a=void 0,r=0;r
    '+s.label+':
      ').appendTo(this.$iconContainer));for(var c,o=0;c=s.items[o];o++)n(c).appendTo(a.find("ul"))}else this.$iconContainer.children().last().attr("class")!==this.namespace+"-list"&&(0,t.default)('
        ').appendTo(this.$iconContainer),n(s).appendTo(this.$iconContainer.children().last());this.options.tooltip&&(t.default.asTooltip.closeAll(),this.$iconContainer.find("."+this.namespace+"-list li").asTooltip({namespace:"asTooltip",skin:"skin-dream",onlyOne:!0})),this.index=t.default.inArray(this.current,this.iconsAll),this.index>=0?this.set(this.current,!1):this.set(null,!1),this.$iconContainer.asScrollbar({namespace:e.namespace+"-icons"}),this._trigger("afterFill")}}},{key:"replaceDiacritics",value:function(e){var i=void 0,t="40-46 50-53 54-57 62-70 71-74 61 47 77".replace(/\d+/g,"\\3$&").split(" ");for(i in t)({}).hasOwnProperty.call(t,i)&&(e=e.toLowerCase().replace(new RegExp("["+t[i]+"]","g"),"aeiouncy".charAt(i)));return e}},{key:"highlight",value:function(e){e?this.$iconPicker.find("."+e).parent().addClass(this.classes.hover):this.$iconPicker.find("."+this.classes.hover).removeClass(this.classes.hover)}},{key:"scrollToSelectedIcon",value:function(){if(this.current){var e=this.$iconContainer.find("."+this.namespace+"-list").width(),i=this.$iconContainer.height(),t=this.$iconContainer.find("."+this.namespace+"-list li").height(),s=this.$iconContainer.find("."+this.current).parent().offset().top,n=this.$iconContainer.find("."+this.namespace+"-list li").width(),a=Math.floor(e/n),r=this.$iconContainer.find("."+this.namespace+"-list").offset().top;this.index=this.options.heightToScroll&&this.$iconContainer.asScrollbar()}},{key:"_open",value:function(){var e=this.$wrapper.find("."+this.namespace+"-selector"),i=this;i.options.flat?(e.addClass(this.classes.flat),e.siblings("."+this.namespace+"-selector-popup").addClass(this.classes.flat).removeClass(this.classes.hide)):(e.addClass(this.classes.active),e.siblings("."+this.namespace+"-selector-popup").addClass(this.classes.active).removeClass(this.classes.hide),this.previous=this.current,e.hasClass(this.classes.active)&&!i.options.flat&&(this.$iconPicker.find("."+this.namespace+"-search-input").focus().select(),this.$mask=(0,t.default)("
        ").addClass(this.classes.mask).appendTo(this.$element.parent()),this.$mask.on("click",function(){i._hide()})))}},{key:"_hide",value:function(){this.options.flat||(this.options.keyboard&&a.destroy(this),this._clearMask(),this.$wrapper.find("."+this.namespace+"-selector").removeClass(this.classes.active),this.$wrapper.find("."+this.namespace+"-selector-popup").addClass(this.classes.hide).removeClass(this.classes.active),this.$wrapper.focus())}},{key:"_clearMask",value:function(){this.$mask&&(this.$mask.off(".asIconPicker"),this.$mask.remove(),this.$mask=null)}},{key:"_trigger",value:function(e){for(var i=arguments.length,t=Array(i>1?i-1:0),s=1;s'+this.options.process(e))):this.$iconPicker.find("."+this.namespace+"-selected-icon").addClass(this.namespace+"-none-selected").html(''+this.options.emptyText),this.current=e,this.index=t.default.inArray(this.current,this.iconsAll),this.scrollToSelectedIcon(),!1!==i&&this._update()}},{key:"clear",value:function(){this.set(null)}},{key:"val",value:function(e){if(void 0===e)return this.options.process(this.current);var i=this.options.parse(e);i?this.set(i):this.clear()}},{key:"enable",value:function(){this.disabled=!1,this.$wrapper.removeClass(this.classes.disabled),this._trigger("enable")}},{key:"disable",value:function(){this.disabled=!0,this.$wrapper.addClass(this.classes.disabled),this._trigger("disable")}},{key:"destroy",value:function(){this.$element.data("asIconPicker",null),this._trigger("destroy")}}],[{key:"setDefaults",value:function(e){t.default.extend(n,t.default.isPlainObject(e)&&e)}}]),e}(),c={version:"0.2.4"},o=t.default.fn.asIconPicker,h=function(e){for(var i=arguments.length,s=Array(i>1?i-1:0),n=1;n