/** * jQuery asItemList v0.2.2 * https://github.com/amazingSurge/jquery-asItemList * * Copyright (c) amazingSurge * Released under the LGPL-3.0 license */ !function(t,e){if("function"==typeof define&&define.amd)define(["jquery","Sortable"],e);else if("undefined"!=typeof exports)e(require("jquery"),require("Sortable"));else{var i={exports:{}};e(t.jQuery,t.Sortable),t.jqueryAsItemListEs=i.exports}}(this,function(t,e){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function s(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var a=i(t),n=i(e),l=function(){function t(t,e){for(var i=0;i{{strings.addTitle}}
{{strings.prompt}}
'},render:function(t){return t},process:function(t){if(t){var e=JSON.stringify(t);return"[]"===e?"":e}return""},parse:function(t){return t?$.parseJSON(t):null},onInit:null,onReady:null,onAdd:null,onEdit:null,onAfterFill:null},h={},u=function(){function t(e,i){s(this,t),this.element=e,this.$element=(0,a.default)(e),this.options=a.default.extend({},r,i,this.$element.data()),void 0===h[this.options.lang]?this.lang="en":this.lang=this.options.lang,this.strings=a.default.extend({},h[this.lang],this.options.strings),this.namespace=this.options.namespace,this.classes={disabled:this.namespace+"_disabled",wrapper:this.namespace+"-wrapper",active:this.namespace+"_active",empty:this.namespace+"_empty",hide:this.namespace+"_hide",hover:this.namespace+"_hover"},this.$element.addClass(this.namespace),this.$element.wrap('
'),this.$wrapper=this.$element.parent(),this.$itemList=(0,a.default)(this.options.itemList().replace(/namespace/g,this.namespace).replace(/\{\{strings.addTitle\}\}/g,this.strings.addTitle).replace(/\{\{strings.prompt\}\}/g,this.strings.prompt)),this.$addItem=this.$itemList.find("."+this.namespace+"-addItem"),this.$prompt=this.$itemList.find("."+this.namespace+"-prompt"),this.$list=this.$itemList.find("."+this.namespace+"-list"),this.$list.attr("id",this.options.sortableID),this.disabled=!1,this.initialized=!1,this._trigger("init"),this.init()}return l(t,[{key:"init",value:function(){var t=this;this.$element.hide(),this.$element.before(this.$itemList),this.value=this.options.parse(this.$element.val()),this.set(this.value,!1),this.$addItem.on("click",function(){t._trigger("add")});var e=document.getElementById(this.options.sortableID);this.$list.on("click","li",a.default.proxy(function(t){this.editIndex=(0,a.default)(t.currentTarget).index(),this._trigger("edit",this.editIndex)},this)).on("mouseenter","li",a.default.proxy(function(t){(0,a.default)(t.currentTarget).addClass(this.classes.hover)},this)).on("mouseleave","li",a.default.proxy(function(t){(0,a.default)(t.currentTarget).removeClass(this.classes.hover)},this)).on("mouseenter","."+this.namespace+"-list-drag",a.default.proxy(function(i){this.sortIndex=(0,a.default)(i.currentTarget).parent().index(),this.sort=new n.default(e,{onUpdate:function(e){var i=t.value.splice(t.sortIndex,1);t.value.splice((0,a.default)(e.item).index(),0,i[0]),t.$element.val(t.options.process(t.value))}})},this)).on("mouseleave","."+this.namespace+"-list-drag",a.default.proxy(function(){},this)).on("click","."+this.namespace+"-list-remove",a.default.proxy(function(t){return this.indexed=(0,a.default)(t.currentTarget).parent().index(),this.remove(this.indexed),!1},this))}},{key:"_update",value:function(){this.$element.val(this.val()),this._trigger("change",this.value)}},{key:"_updateList",value:function(){if(this.value.length>this.$list.children().length)this._addList();else if(this.value.length===this.$list.children().length&&0!==this.value.length){var t=this.value[this.editIndex];this.$list.children().eq(this.editIndex).html(this._editList(t))}else 0===this.value.length&&this.$wrapper.addClass(this.classes.empty),this._delList()}},{key:"_editList",value:function(t){return'
'+this.options.render(t)+'
'}},{key:"_addList",value:function(){this.$wrapper.removeClass(this.classes.empty);for(var t,e=this.$list.children().length;e",{html:this._editList(t)}).appendTo(this.$list)}},{key:"_delList",value:function(){this.$list.children().eq(this.indexed).remove()}},{key:"_clearList",value:function(){this.$list.children().remove()}},{key:"_trigger",value:function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),s=1;s1?e-1:0),s=1;s