/* ======================================================================== * Bootstrap: bootstrap-iconpicker.js v1.0.0 by @recktoner * https://victor-valencia.github.com/bootstrap-iconpicker * ======================================================================== * Copyright 2013 Victor Valencia Rico. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * ======================================================================== */ +function(e){"use strict";var o=function(t,r){this.$element=e(t),this.options=e.extend({},o.DEFAULTS,this.$element.data()),this.options=e.extend({},this.options,r)};o.ICONSET={glyphicon:["adjust","align-center","align-justify","align-left","align-right","arrow-down","arrow-left","arrow-right","arrow-up","asterisk","backward","ban-circle","barcode","bell","bold","book","bookmark","briefcase","bullhorn","calendar","camera","certificate","check","chevron-down","chevron-left","chevron-right","chevron-up","circle-arrow-down","circle-arrow-left","circle-arrow-right","circle-arrow-up","cloud","cloud-download","cloud-upload","cog","collapse-down","collapse-up","comment","compressed","copyright-mark","credit-card","cutlery","dashboard","download","download-alt","earphone","edit","eject","envelope","euro","exclamation-sign","expand","export","eye-close","eye-open","facetime-video","fast-backward","fast-forward","file","film","filter","fire","flag","flash","floppy-disk","floppy-open","floppy-remove","floppy-save","floppy-saved","folder-close","folder-open","font","forward","fullscreen","gbp","gift","glass","globe","hand-down","hand-left","hand-right","hand-up","hd-video","hdd","header","headphones","heart","heart-empty","home","import","inbox","indent-left","indent-right","info-sign","italic","leaf","link","list","list-alt","lock","log-in","log-out","magnet","map-marker","minus","minus-sign","move","music","new-window","off","ok","ok-circle","ok-sign","open","paperclip","pause","pencil","phone","phone-alt","picture","plane","play","play-circle","plus","plus-sign","print","pushpin","qrcode","question-sign","random","record","refresh","registration-mark","remove","remove-circle","remove-sign","repeat","resize-full","resize-horizontal","resize-small","resize-vertical","retweet","road","save","saved","screenshot","sd-video","search","send","share","share-alt","shopping-cart","signal","sort","sort-by-alphabet","sort-by-alphabet-alt","sort-by-attributes","sort-by-attributes-alt","sort-by-order","sort-by-order-alt","sound-5-1","sound-6-1","sound-7-1","sound-dolby","sound-stereo","star","star-empty","stats","step-backward","step-forward","stop","subtitles","tag","tags","tasks","text-height","text-width","th","th-large","th-list","thumbs-down","thumbs-up","time","tint","tower","transfer","trash","tree-conifer","tree-deciduous","unchecked","upload","usd","user","volume-down","volume-off","volume-up","warning-sign","wrench","zoom-in","zoom-out"],fa:["adjust","anchor","archive","arrows","arrows-h","arrows-v","automobile","asterisk","ban","bank","bar-chart-o","barcode","bars","beer","bell","bell-o","bolt","bomb","book","bookmark","bookmark-o","briefcase","bug","building","building-o","bullhorn","bullseye","cab","calendar","calendar-o","camera","camera-retro","car","caret-square-o-down","caret-square-o-left","caret-square-o-right","caret-square-o-up","certificate","check","check-circle","check-circle-o","check-square","check-square-o","child","circle","circle-o","circle-thin","clock-o","cloud","cloud-download","cloud-upload","code","code-fork","coffee","cog","cogs","comment","comment-o","comments","comments-o","compass","credit-card","crop","crosshairs","cube","cubes","cutlery","dashboard","desktop","dashboard","database","desktop","dot-circle-o","download","edit","ellipsis-h","ellipsis-v","envelope","envelope-o","envelope-square","eraser","exchange","exclamation","exclamation-circle","exclamation-triangle","external-link","external-link-square","eye","eye-slash","fax","female","fighter-jet","file-archive-o","file-audio-o","file-code-o","file-excel-o","file-image-o","file-movie-o","file-pdf-o","file-photo-o","file-picture-o","file-powerpoint-o","file-sound-o","file-video-o","file-word-o","file-zip-o","film","filter","fire","fire-extinguisher","flag","flag-checkered","flag-o","flash","flask","folder","folder-o","folder-open","folder-open-o","frown-o","gamepad","gavel","gear","gears","gift","glass","globe","graduation-cap","group","hdd-o","headphones","heart","heart-o","history","home","image","inbox","info","info-circle","institution","key","keyboard-o","language","laptop","leaf","legal","lemon-o","level-down","level-up","life-bouy","life-ring","life-saver","lightbulb-o","location-arrow","lock","magic","magnet","mail-forward","mail-reply","mail-reply-all","male","map-marker","meh-o","microphone","microphone-slash","minus","minus-circle","minus-square","minus-square-o","mobile","mobile-phone","money","moon-o","mortar-board","music","navicon","paper-plane","paper-plane-o","paw","pencil","pencil-square","pencil-square-o","phone","phone-square","photo","picture-o","plane","plus","plus-circle","plus-square","plus-square-o","power-off","print","puzzle-piece","qrcode","question","question-circle","quote-left","quote-right","random","refresh","reorder","reply","reply-all","retweet","road","rocket","rss","rss-square","search","search-minus","search-plus","send","send-o","share","share-alt","share-alt-square","share-square","share-square-o","shield","shopping-cart","sign-in","sign-out","signal","sitemap","sliders","smile-o","sort","sort-alpha-asc","sort-alpha-desc","sort-amount-asc","sort-amount-desc","sort-asc","sort-desc","sort-down","sort-numeric-asc","sort-numeric-desc","sort-up","space-shuttle","spinner","spoon","square","square-o","star","star-half","star-half-empty","star-half-full","star-half-o","star-o","suitcase","sun-o","support","tablet","tachometer","tag","tags","tasks","taxi","terminal","thumb-tack","thumbs-down","thumbs-o-down","thumbs-o-up","thumbs-up","ticket","times","times-circle","times-circle-o","tint","toggle-down","toggle-left","toggle-right","toggle-up","trash-o","tree","trophy","truck","umbrella","university","unlock","unlock-alt","unsorted","upload","user","users","video-camera","volume-down","volume-off","volume-up","warning","wheelchair","wrench","check-square","check-square-o","circle","circle-o","dot-circle-o","minus-square","minus-square-o","plus-square","plus-square-o","square","square-o","bitcoin","btc","cny","dollar","eur","euro","gbp","inr","jpy","krw","money","rmb","rouble","rub","ruble","rupee","try","turkish-lira","usd","won","yen","align-center","align-justify","align-left","align-right","bold","chain","chain-broken","clipboard","columns","copy","cut","dedent","eraser","file","file-o","file-text","file-text-o","files-o","floppy-o","font","header","indent","italic","link","list","list-alt","list-ol","list-ul","outdent","paperclip","paragraph","paste","repeat","rotate-left","rotate-right","save","scissors","strikethrough","subscript","superscript","table","text-height","text-width","th","th-large","th-list","underline","undo","unlink","angle-double-down","angle-double-left","angle-double-right","angle-double-up","angle-down","angle-left","angle-right","angle-up","arrow-circle-down","arrow-circle-left","arrow-circle-o-down","arrow-circle-o-left","arrow-circle-o-right","arrow-circle-o-up","arrow-circle-right","arrow-circle-up","arrow-down","arrow-left","arrow-right","arrow-up","arrows","arrows-alt","arrows-h","arrows-v","caret-down","caret-left","caret-right","caret-square-o-down","caret-square-o-left","caret-square-o-right","caret-square-o-up","caret-up","chevron-circle-down","chevron-circle-left","chevron-circle-right","chevron-circle-up","chevron-down","chevron-left","chevron-right","chevron-up","hand-o-down","hand-o-left","hand-o-right","hand-o-up","long-arrow-down","long-arrow-left","long-arrow-right","long-arrow-up","toggle-down","toggle-left","toggle-right","toggle-up","arrows-alt","backward","compress","eject","expand","fast-backward","fast-forward","forward","pause","play","play-circle","play-circle-o","step-backward","step-forward","stop","youtube-play","adn","android","apple","behance","behance-square","bitbucket","bitbucket-square","bitcoin","btc","css3","delicious","digg","dribbble","dropbox","drupal","empire","facebook","facebook-square","flickr","foursquare","ge","git","git-square","github","github-alt","github-square","gittip","google","google-plus","google-plus-square","hacker-news","html5","instagram","joomla","jsfiddle","linkedin","linkedin-square","linux","maxcdn","openid","pagelines","pied-piper","pied-piper-alt","pied-piper-square","pinterest","pinterest-square","qq","ra","rebel","reddit","reddit-square","renren","share-alt","share-alt-square","skype","slack","soundcloud","spotify","stack-exchange","stack-overflow","steam","steam-square","stumbleupon","stumbleupon-circle","tencent-weibo","trello","tumblr","tumblr-square","twitter","twitter-square","vimeo-square","vine","vk","wechat","weibo","weixin","windows","wordpress","xing","xing-square","yahoo","youtube","youtube-play","youtube-square","ambulance","h-square","hospital-o","medkit","plus-square","stethoscope","user-md","wheelchair"]},o.DEFAULTS={iconset:"glyphicon",icon:"",rows:4,cols:4,placement:"right"},o.prototype.createButtonBar=function(){for(var o=this.options,t=e(""),r=0;r'),i=e('');0==r||r==o.cols-1?(a.val(0==r?-1:1),a.addClass(0==r?"btn-previous":"btn-next"),a.find("span").addClass(0==r?"glyphicon-arrow-left":"glyphicon-arrow-right"),i.append(a),t.append(i)):0==t.find(".page-count").length&&(i.attr("colspan",o.cols-2).append(''),t.append(i))}o.table.find("thead").append(t)},o.prototype.updateButtonBar=function(e){var o=this.options,t=Math.ceil(o.icons.length/(o.cols*o.rows));o.table.find(".page-count").html(e+" / "+t);var r=o.table.find(".btn-previous"),a=o.table.find(".btn-next");1==e?r.addClass("disabled"):r.removeClass("disabled"),e==t?a.addClass("disabled"):a.removeClass("disabled")},o.prototype.bindEvents=function(){var o=this.options,t=this;o.table.find(".btn-previous, .btn-next").off("click").on("click",function(){var r=parseInt(e(this).val());t.changeList(o.page+r)}),o.table.find(".btn-icon").off("click").on("click",function(){t.select(e(this).val()),t.$element.popover("destroy")})},o.prototype.select=function(o){var t=this.options,r=this.$element;t.selected=e.inArray(o.replace(t.iconClassFix,""),t.icons),-1==t.selected&&(t.selected=0,o=t.iconClassFix+t.icons[t.selected]),""!=o&&t.selected>=0&&(t.icon=o,r.find("input").val(o),r.find("i").attr("class","").addClass(t.iconClass).addClass(o),r.trigger({type:"change",icon:o}),t.table.find("button.btn-warning").removeClass("btn-warning"))},o.prototype.switchPage=function(o){var t=this.options;if(t.selected=e.inArray(o.replace(t.iconClassFix,""),t.icons),""!=o&&t.selected>=0){var r=Math.ceil((t.selected+1)/(t.cols*t.rows));this.changeList(r)}t.table.find("."+o).parent().addClass("btn-warning")},o.prototype.changeList=function(o){var t=this.options;this.updateButtonBar(o);for(var r=t.table.find("tbody").empty(),a=(o-1)*t.rows*t.cols,i=0;i"),n=0;n').hide();if(l')}var d=e("").append(c);s.append(d)}r.append(s)}t.page=o,this.bindEvents()},o.prototype.setIcon=function(e){this.select(e)};var t=e.fn.iconpicker;e.fn.iconpicker=function(t,r){return this.each(function(){var a=e(this),i=a.data("bs.iconpicker"),s="object"==typeof t&&t;if(i||a.data("bs.iconpicker",i=new o(this,s)),"string"==typeof t)i[t](r);else{var n=i.options,l="fontawesome"==n.iconset?"fa":"glyphicon";n=e.extend(n,{icons:o.ICONSET[l],iconClass:l,iconClassFix:l+"-",page:1,selected:-1,table:e('
')});var c="undefined"!=typeof a.attr("name")?'name="'+a.attr("name")+'"':"";a.empty().append("").append('").append(''),a.addClass("iconpicker"),i.createButtonBar(),i.changeList(1),a.on("click",function(e){e.preventDefault(),a.popover({animation:!1,trigger:"manual",html:!0,content:i.options.table,container:"body",placement:i.options.placement}).on("shown.bs.popover",function(){i.switchPage(n.icon),i.bindEvents()}),a.data("bs.popover").tip().addClass("iconpicker-popover"),a.popover("show")}),i.select(n.icon)}})},e.fn.iconpicker.Constructor=o,e.fn.iconpicker.noConflict=function(){return e.fn.iconpicker=t,this},e("body").on("click",function(o){e(".iconpicker").each(function(){e(this).is(o.target)||0!==e(this).has(o.target).length||0!==e(".popover").has(o.target).length||e(this).popover("destroy")})}),e('button[role="iconpicker"]').iconpicker()}(window.jQuery);