/** * jQuery Selective v0.3.5 * https://github.com/amazingSurge/jquery-selective * * Copyright (c) amazingSurge * Released under the LGPL-3.0 license */ !function(e,t){if("function"==typeof define&&define.amd)define(["jquery"],t);else if("undefined"!=typeof exports)t(require("jquery"));else{var i={exports:{}};t(e.jQuery),e.jquerySelectiveEs=i.exports}}(this,function(e){"use strict";function t(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var n=t(e),s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a=function(){function e(e,t){for(var i=0;i
'+this.options.tpl.triggerButton.call(this)+'
'+this.options.tpl.list.call(this)+"
"+this.options.tpl.items.call(this)+""},search:function(){return''},select:function(){return''},optionValue:function(e){return"name"in e?e.name:e},option:function(e){return'"},items:function(){return''},item:function(e){return'
  • '+e+this.options.tpl.itemRemove.call(this)+"
  • "},itemRemove:function(){return'x'},triggerButton:function(){return'
    Add
    '},list:function(){return''},listItem:function(e){return'
  • '+e+"
  • "}},onBeforeShow:null,onAfterShow:null,onBeforeHide:null,onAfterHide:null,onBeforeSearch:null,onAfterSearch:null,onBeforeSelected:null,onAfterSelected:null,onBeforeUnselect:null,onAfterUnselect:null,onBeforeItemRemove:null,onAfterItemRemove:null,onBeforeItemAdd:null,onAfterItemAdd:null},c=function(){function e(t){i(this,e),this.instance=t}return a(e,[{key:"getOptions",value:function(){return this.instance.$options=this.instance.$select.find("option"),this.instance.$options}},{key:"select",value:function(e){return $(e).prop("selected",!0),this.instance}},{key:"unselect",value:function(e){return $(e).prop("selected",!1),this.instance}},{key:"add",value:function(e){if(this.instance.options.buildFromHtml===!1&&void 0===this.instance.getItem("option",this.instance.$select,this.instance.options.tpl.optionValue(e))){var t=$(this.instance.options.tpl.option.call(this.instance,e));return this.instance.setIndex(t,e),this.instance.$select.append(t),t}}},{key:"remove",value:function(e){return $(e).remove(),this.instance}}]),e}(),l=function(){function e(t){i(this,e),this.instance=t}return a(e,[{key:"build",value:function(e){var t=this,i=$(""),n=this.instance._options.getOptions();return this.instance.options.buildFromHtml===!0?0!==n.length&&$.each(n,function(e,n){var s=$(t.instance.options.tpl.listItem.call(t.instance,n.text)),a=$(n);t.instance.setIndex(s,a),void 0!==a.attr("selected")&&t.instance.select(s),i.append(s)}):null!==e&&($.each(e,function(n){var s=$(t.instance.options.tpl.listItem.call(t.instance,e[n]));t.instance.setIndex(s,e[n]),i.append(s)}),0!==n.length&&$.each(n,function(e,n){var s=$(n),a=t.instance.getItem("li",i,t.instance.options.tpl.optionValue(s.data("selective_index")));void 0!==a&&t.instance._list.select(a)})),this.instance.$list.append(i.children("li")),this.instance}},{key:"buildSearch",value:function(){return this.instance.options.withSearch===!0&&(this.instance.$triggerDropdown.prepend(this.instance.options.tpl.search.call(this.instance)),this.instance.$search=this.instance.$triggerDropdown.find("."+this.instance.namespace+"-search")),this.instance}},{key:"select",value:function(e){return this.instance._trigger("beforeSelected"),$(e).addClass(this.instance.namespace+"-selected"),this.instance._trigger("afterSelected"),this.instance}},{key:"unselect",value:function(e){return this.instance._trigger("beforeUnselected"),$(e).removeClass(this.instance.namespace+"-selected"),this.instance._trigger("afterUnselected"),this.instance}},{key:"click",value:function(){var e=this;this.instance.$list.on("click","li",function(){var t=$(this);t.hasClass(e.instance.namespace+"-selected")||e.instance.select(t)})}},{key:"filter",value:function(e){return $.expr[":"].Contains=function(e,t,i){return jQuery(e).text().toUpperCase().includes(i[3].toUpperCase())},e?(this.instance.$list.find("li:not(:Contains("+e+"))").slideUp(),this.instance.$list.find("li:Contains("+e+")").slideDown()):this.instance.$list.children("li").slideDown(),this.instance}},{key:"loadMore",value:function(){var e=this,t=this.instance.options.ajax.pageSize||9999;return this.instance.$listWrap.on("scroll.selective",function(){if(t>e.instance.page){var i=e.instance.$list.outerHeight(!0),n=e.instance.$listWrap.outerHeight(),s=e.instance.$listWrap.scrollTop(),a=i-n-s;0===a&&e.instance.options.query(e.instance,e.instance.$search.val(),++e.instance.page)}}),this.instance}},{key:"loadMoreRemove",value:function(){return this.instance.$listWrap.off("scroll.selective"),this.instance}}]),e}(),r=function(){function e(t){i(this,e),this.instance=t}return a(e,[{key:"change",value:function(){var e=this;this.instance.$search.change(function(){e.instance._trigger("beforeSearch"),e.instance.options.buildFromHtml===!0?e.instance._list.filter(e.instance.$search.val()):""!==e.instance.$search.val()?(e.instance.page=1,e.instance.options.query(e.instance,e.instance.$search.val(),e.instance.page)):e.instance.update(e.instance.options.local),e.instance._trigger("afterSearch")})}},{key:"keyup",value:function(){var e=this,t=this.instance.options.ajax.quietMills||1e3,i="",n="",s=void 0;this.instance.$search.on("keyup",function(a){e.instance._trigger("beforeSearch"),n=e.instance.$search.val(),e.instance.options.buildFromHtml===!0?n!==i&&e.instance._list.filter(n):n===i&&13!==a.keyCode||(window.clearTimeout(s),s=window.setTimeout(function(){""!==n?(e.instance.page=1,e.instance.options.query(e.instance,n,e.instance.page)):e.instance.update(e.instance.options.local)},t)),i=n,e.instance._trigger("afterSearch")})}},{key:"bind",value:function(e){"change"===e?this.change():"keyup"===e&&this.keyup()}}]),e}(),u=function(){function e(t){i(this,e),this.instance=t}return a(e,[{key:"withDefaults",value:function(e){var t=this;null!==e&&$.each(e,function(i){t.instance._options.add(e[i]),t.instance._options.select(t.instance.getItem("option",t.instance.$select,t.instance.options.tpl.optionValue(e[i]))),t.instance._items.add(e[i])})}},{key:"add",value:function(e,t){var i=void 0,n=void 0;n=this.instance.options.buildFromHtml===!0?t:e,i=$(this.instance.options.tpl.item.call(this.instance,n)),this.instance.setIndex(i,e),this.instance.$items.append(i)}},{key:"remove",value:function(e){e=$(e);var t=void 0,i=void 0;return this.instance.options.buildFromHtml===!0?(this.instance._list.unselect(e.data("selective_index")),this.instance._options.unselect(e.data("selective_index").data("selective_index"))):(t=this.instance.getItem("li",this.instance.$list,this.instance.options.tpl.optionValue(e.data("selective_index"))),void 0!==t&&this.instance._list.unselect(t),i=this.instance.getItem("option",this.instance.$select,this.instance.options.tpl.optionValue(e.data("selective_index"))),this.instance._options.unselect(i)._options.remove(i)),e.remove(),this.instance}},{key:"click",value:function(){var e=this;this.instance.$items.on("click","."+this.instance.namespace+"-remove",function(){var t=$(this),i=t.parents("li");e.instance.itemRemove(i)})}}]),e}(),h="selective",p=function(){function e(t){var s=this,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};i(this,e),this.element=t,this.$element=(0,n.default)(t).hide()||(0,n.default)(""),this.options=n.default.extend(!0,{},o,a),this.namespace=this.options.namespace;var c=(0,n.default)(this.options.tpl.frame.call(this)),l=function(){return s.$element.html(s.options.tpl.select.call(s)),s.$element.children("select")};this.$select=this.$element.is("select")===!0?this.$element:l(),this.$element.after(c),this.init(),this.opened=!1}return a(e,[{key:"init",value:function(){var e=this;this.$selective=this.$element.next("."+this.namespace),this.$items=this.$selective.find("."+this.namespace+"-items"),this.$trigger=this.$selective.find("."+this.namespace+"-trigger"),this.$triggerButton=this.$selective.find("."+this.namespace+"-trigger-button"),this.$triggerDropdown=this.$selective.find("."+this.namespace+"-trigger-dropdown"),this.$listWrap=this.$selective.find("."+this.namespace+"-list-wrap"),this.$list=this.$selective.find("."+this.namespace+"-list"),this._list=new l(this),this._options=new c(this),this._search=new r(this),this._items=new u(this),this._items.withDefaults(this.options.selected),this.update(this.options.local)._list.buildSearch(),this.$triggerButton.on("click",function(){e.opened===!1?e.show():e.hide()}),this._list.click(this),this._items.click(this),this.options.withSearch===!0&&this._search.bind(this.options.searchType),this._trigger("ready")}},{key:"_trigger",value:function(e){for(var t=arguments.length,i=Array(t>1?t-1:0),n=1;n1?i-1:0),o=1;o