@saltcorn/server 0.6.4-beta.6 → 0.7.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,11 +1,781 @@
1
- function MenuEditor(e,t){var s=$("#"+e).data("level","0"),l={labelEdit:'<i class="fas fa-edit clickable"></i>',labelRemove:'<i class="fas fa-trash-alt clickable"></i>',textConfirmDelete:"This item will be deleted. Are you sure?",iconPicker:{cols:4,rows:4,footer:!1,iconset:"fontawesome5"},maxLevel:-1,listOptions:{hintCss:{border:"1px dashed #13981D"},opener:{as:"html",close:'<i class="fas fa-minus"></i>',open:'<i class="fas fa-plus"></i>',openerCss:{"margin-right":"10px",float:"none"},openerClass:"btn btn-success btn-sm"},placeholderCss:{"background-color":"gray"},ignoreClass:"clickable",listsClass:"pl-0",listsCss:{"padding-top":"10px"},complete:function(e){return MenuEditor.updateButtons(s),s.updateLevels(0),!0},isAllowed:function(e,t,s){return h(e,s)}}};$.extend(!0,l,t);var n=null,o=!0,i=null,r=null,a=l.iconPicker,c=(t=l.listOptions,$("#"+e+"_icon").iconpicker(a));function d(){i[0].reset(),(c=c.iconpicker(a)).iconpicker("setIcon","empty"),r.attr("disabled",!0),n=null}function p(e){return $("<a>").addClass(e.classCss).addClass("clickable").attr("href","#").html(e.text)}function u(){var e=$("<div>").addClass("btn-group float-right"),t=p({classCss:"btn btn-primary btn-sm btnEdit",text:l.labelEdit}),s=p({classCss:"btn btn-danger btn-sm btnRemove",text:l.labelRemove}),n=p({classCss:"btn btn-secondary btn-sm btnUp btnMove",text:'<i class="fas fa-angle-up clickable"></i>'}),o=p({classCss:"btn btn-secondary btn-sm btnDown btnMove",text:'<i class="fas fa-angle-down clickable"></i>'}),i=p({classCss:"btn btn-secondary btn-sm btnOut btnMove",text:'<i class="fas fa-level-down-alt clickable"></i>'}),r=p({classCss:"btn btn-secondary btn-sm btnIn btnMove",text:'<i class="fas fa-level-up-alt clickable"></i>'});return e.append(n).append(o).append(r).append(i).append(t).append(s),e}function f(e){$("<span>").addClass("sortableListsOpener "+t.opener.openerClass).css(t.opener.openerCss).on("mousedown touchstart",function(e){var s=$(this).closest("li");return s.hasClass("sortableListsClosed")?s.iconOpen(t):s.iconClose(t),!1}).prependTo(e.children("div").first()),e.hasClass("sortableListsOpen")?e.iconOpen(t):e.iconClose(t)}function h(e,t){if(l.maxLevel<0)return!0;var s=0,n=e.find("ul").length;return s=0==t.length?0:parseInt(t.parent().data("level"))+1,console.log(s+n),s+n<=l.maxLevel}s.sortableLists(l.listOptions),c.on("change",function(e){i.find("[name=icon]").val(e.icon)}),$(document).on("click",".btnRemove",function(t){if(t.preventDefault(),confirm(l.textConfirmDelete)){var n=$(this).closest("ul");$(this).closest("li").remove();var o=!1;void 0!==n.attr("id")&&(o=n.attr("id").toString()===e),n.children().length||o||(n.prev("div").children(".sortableListsOpener").first().remove(),n.remove()),MenuEditor.updateButtons(s)}}),$(document).on("click",".btnEdit",function(e){e.preventDefault(),function(e){var t=e.data();$.each(t,function(e,t){i.find("[name="+e+"]").val(t)}),i.find(".item-menu").first().focus(),t.hasOwnProperty("icon")?c.iconpicker("setIcon",t.icon):c.iconpicker("setIcon","empty");r.removeAttr("disabled")}(n=$(this).closest("li"))}),s.on("click",".btnUp",function(e){e.preventDefault();var t=$(this).closest("li");t.prev("li").before(t),MenuEditor.updateButtons(s)}),s.on("click",".btnDown",function(e){e.preventDefault();var t=$(this).closest("li");t.next("li").after(t),MenuEditor.updateButtons(s)}),s.on("click",".btnOut",function(e){e.preventDefault();var t=$(this).closest("ul"),l=$(this).closest("li");l.closest("ul").closest("li").after(l),t.children().length<=0&&(t.prev("div").children(".sortableListsOpener").first().remove(),t.remove()),MenuEditor.updateButtons(s),s.updateLevels()}),s.on("click",".btnIn",function(e){e.preventDefault();var t=$(this).closest("li"),l=t.prev("li");if(!h(t,l))return!1;if(l.length>0)if((n=l.children("ul")).length>0)n.append(t);else{var n=$("<ul>").addClass("pl-0").css("padding-top","10px");l.append(n),n.append(t),l.addClass("sortableListsOpen"),f(l)}MenuEditor.updateButtons(s),s.updateLevels()}),this.setForm=function(e){i=e},this.getForm=function(){return i},this.setUpdateButton=function(e){(r=e).attr("disabled",!0),n=null},this.getUpdateButton=function(){return r},this.getCurrentItem=function(){return n},this.update=function(){var e=this.getCurrentItem();if(null!==e){var t=e.data("icon");i.find(".item-menu").each(function(){e.data($(this).attr("name"),$(this).val())}),e.children().children("i").removeClass(t).addClass(e.data("icon")),e.find("span.txt").first().text(e.data("text")),d()}},this.add=function(){var e={};i.find(".item-menu").each(function(){e[$(this).attr("name")]=$(this).val()});var t=u(),l=$("<span>").addClass("txt").text(e.text),n=$("<i>").addClass(e.icon),o=$("<div>").css({overflow:"auto"}).append(n).append("&nbsp;").append(l).append(t),r=$("<li>").data(e);r.addClass("list-group-item pr-0").append(o),s.append(r),MenuEditor.updateButtons(s),d()},this.getString=function(){var e=s.sortableListsToJson();return JSON.stringify(e)},this.setData=function(e){var t=Array.isArray(e)?e:function(e){try{var t=JSON.parse(e)}catch(e){return console.log("The string is not a json valid."),null}return t}(e);if(null!==t){s.empty();var n=function e(t,l){var n=void 0===l?0:l,o=0===n?s:$("<ul>").addClass("pl-0").css("padding-top","10px").data("level",n);return $.each(t,function(t,s){var l=void 0!==s.children&&$.isArray(s.children),i={text:"",href:"",icon:"empty",target:"_self",title:""},r=$.extend({},s);l&&delete r.children,$.extend(i,r);var a=$("<li>").addClass("list-group-item pr-0");a.data(i);var c=$("<div>").css("overflow","auto"),d=$("<i>").addClass(s.icon),p=$("<span>").addClass("txt").append(s.text).css("margin-right","5px"),f=u();c.append(d).append("&nbsp;").append(p).append(f),a.append(c),l&&a.append(e(s.children,n+1)),o.append(a)}),o}(t);o?s.find("li").each(function(){var e=$(this);e.children("ul").length&&f(e)}):(n.sortableLists(l.listOptions),o=!0),MenuEditor.updateButtons(s)}}}!function(e){
2
- /**
3
- * @desc jQuery plugin to sort html list also the tree structures
4
- * @version 1.4.0
5
- * @author Vladimír Čamaj
6
- * @license MIT
7
- * @desc jQuery plugin
8
- * @param options
9
- * @returns this to unsure chaining
10
- */
11
- e.fn.sortableLists=function(t){var s=e("body").css("position","relative"),l={currElClass:"",placeholderClass:"",placeholderCss:{position:"relative",padding:0},hintClass:"",hintCss:{display:"none",position:"relative",padding:0},hintWrapperClass:"",hintWrapperCss:{},baseClass:"",baseCss:{position:"absolute",top:0-parseInt(s.css("margin-top")),left:0-parseInt(s.css("margin-left")),margin:0,padding:0,"z-index":2500},opener:{active:!1,open:"",close:"",openerCss:{float:"left",display:"inline-block","background-position":"center center","background-repeat":"no-repeat"},openerClass:""},listSelector:"ul",listsClass:"",listsCss:{},insertZone:50,insertZonePlus:!1,scroll:20,ignoreClass:"",isAllowed:function(e,t,s){return!0},onDragStart:function(e,t){return!0},onChange:function(e){return!0},complete:function(e){return!0}},n=e.extend(!0,{},l,t),o=e("<"+n.listSelector+" />").prependTo(s).attr("id","sortableListsBase").css(n.baseCss).addClass(n.listsClass+" "+n.baseClass),i=e("<li />").attr("id","sortableListsPlaceholder").css(n.placeholderCss).addClass(n.placeholderClass),r=e("<li />").attr("id","sortableListsHint").css(n.hintCss).addClass(n.hintClass),a=e("<"+n.listSelector+" />").attr("id","sortableListsHintWrapper").addClass(n.listsClass+" "+n.hintWrapperClass).css(n.listsCss).css(n.hintWrapperCss),c=e("<span />").addClass("sortableListsOpener "+n.opener.openerClass).css(n.opener.openerCss).on("mousedown touchstart",function(t){var s=e(this).closest("li");return s.hasClass("sortableListsClosed")?L(s):E(s),!1});"class"==n.opener.as?c.addClass(n.opener.close):"html"==n.opener.as?c.html(n.opener.close):console.error("Invalid setting for opener.as");var d={isDragged:!1,isRelEFP:null,oEl:null,rootEl:null,cEl:null,upScroll:!1,downScroll:!1,pX:0,pY:0,cX:0,cY:0,isAllowed:!0,e:{pageX:0,pageY:0,clientX:0,clientY:0},doc:e(document),win:e(window)};if(n.opener.active){if(!n.opener.open)throw"Opener.open value is not defined. It should be valid url, html or css class.";if(!n.opener.close)throw"Opener.close value is not defined. It should be valid url, html or css class.";e(this).find("li").each(function(){var t=e(this);t.children(n.listSelector).length&&(c.clone(!0).prependTo(t.children("div").first()),t.hasClass("sortableListsOpen")?L(t):E(t))})}return this.on("mousedown touchstart",function(t){var s=e(t.target);if(!(!1!==d.isDragged||n.ignoreClass&&s.hasClass(n.ignoreClass))){t.preventDefault(),"touchstart"===t.type&&v(t);var l=s.closest("li"),a=e(this);l[0]&&(n.onDragStart(t,l),function(t,s,l){d.isDragged=!0;var a=parseInt(s.css("margin-top")),c=parseInt(s.css("margin-bottom")),f=parseInt(s.css("margin-left")),h=parseInt(s.css("margin-right")),v=s.offset(),b=s.innerHeight();d.rootEl={el:l,offset:l.offset(),rootElClass:l.attr("class")},d.cEl={el:s,mT:a,mL:f,mB:c,mR:h,offset:v},d.cEl.xyOffsetDiff={X:t.pageX-d.cEl.offset.left,Y:t.pageY-d.cEl.offset.top},d.cEl.el.addClass("sortableListsCurrent "+n.currElClass),s.before(i);var g=d.placeholderNode=e("#sortableListsPlaceholder");s.css({width:s.width(),position:"absolute",top:v.top-a,left:v.left-f}).prependTo(o),g.css({display:"block",height:b}),r.css("height",b),d.doc.on("mousemove touchmove",p).on("mouseup touchend touchcancel",u)}(t,l,a))}});function p(t){if(d.isDragged){var s=d.cEl,l=d.doc,o=d.win;"touchmove"===t.type&&v(t),t.pageX||function(e){e.pageY=d.pY,e.pageX=d.pX,e.clientY=d.cY,e.clientX=d.cX}(t),l.scrollTop()>d.rootEl.offset.top-10&&t.clientY<50?d.upScroll?(t.pageY=t.pageY-n.scroll,e("html, body").each(function(t){e(this).scrollTop(e(this).scrollTop()-n.scroll)}),f(t)):function(e){if(d.upScroll)return;d.upScroll=setInterval(function(){d.doc.trigger("mousemove")},50)}():l.scrollTop()+o.height()<d.rootEl.offset.top+d.rootEl.el.outerHeight(!1)+10&&o.height()-t.clientY<50?d.downScroll?(t.pageY=t.pageY+n.scroll,e("html, body").each(function(t){e(this).scrollTop(e(this).scrollTop()+n.scroll)}),f(t)):function(e){if(d.downScroll)return;d.downScroll=setInterval(function(){d.doc.trigger("mousemove")},50)}():h(d),d.oElOld=d.oEl,s.el[0].style.visibility="hidden",d.oEl=oEl=function(t,s){if(!document.elementFromPoint)return null;var l=d.isRelEFP;if(null===l){var n,o;(n=d.doc.scrollTop())>0&&(l=null==(o=document.elementFromPoint(0,n+e(window).height()-1))||"HTML"==o.tagName.toUpperCase()),(n=d.doc.scrollLeft())>0&&(l=null==(o=document.elementFromPoint(n+e(window).width()-1,0))||"HTML"==o.tagName.toUpperCase())}l&&(t-=d.doc.scrollLeft(),s-=d.doc.scrollTop());var i=e(document.elementFromPoint(t,s));if(!d.rootEl.el.find(i).length)return null;if(i.is("#sortableListsPlaceholder")||i.is("#sortableListsHint"))return null;if(!i.is("li"))return(i=i.closest("li"))[0]?i:null;if(i.is("li"))return i}(t.pageX,t.pageY),s.el[0].style.visibility="visible",function(e,t){var s=t.oEl;if(!s||!t.oElOld)return;var l=s.outerHeight(!1),o=e.pageY-s.offset().top;n.insertZonePlus?14>o?g(e,s,7>o):l-14<o&&C(e,s,l-7<o):5>o?b(e,s):l-5<o&&m(e,s)}(t,d),function(e,t){var s=t.cEl;s.el.css({top:e.pageY-s.xyOffsetDiff.Y-s.mT,left:e.pageX-s.xyOffsetDiff.X-s.mL})}(t,d)}}function u(t){var s=d.cEl,l=e("#sortableListsHint",d.rootEl.el),o=r[0].style,i=null,a=!1,f=e("#sortableListsHintWrapper");"touchend"!==t.type&&"touchcancel"!==t.type||v(t),"block"==o.display&&l.length&&d.isAllowed?(i=l,a=!0):(i=d.placeholderNode,a=!1),offset=i.offset(),s.el.animate({left:offset.left-d.cEl.mL,top:offset.top-d.cEl.mT},250,function(){!function(e){var t=e.el[0].style;e.el.removeClass(n.currElClass+" sortableListsCurrent"),t.top="0",t.left="0",t.position="relative",t.width="auto"}(s),i.after(s.el[0]),i[0].style.display="none",o.display="none",l.remove(),f.removeAttr("id").removeClass(n.hintWrapperClass),f.length&&f.prev("div").prepend(c.clone(!0)),a?d.placeholderNode.slideUp(150,function(){d.placeholderNode.remove(),y(),n.onChange(s.el),n.complete(s.el),d.isDragged=!1}):(d.placeholderNode.remove(),y(),n.complete(s.el),d.isDragged=!1)}),h(d),d.doc.unbind("mousemove touchmove",p).unbind("mouseup touchend touchcancel",u)}function f(e){d.pY=e.pageY,d.pX=e.pageX,d.cY=e.clientY,d.cX=e.clientX}function h(e){clearInterval(e.upScroll),clearInterval(e.downScroll),e.upScroll=e.downScroll=!1}function v(e){e.pageX=e.originalEvent.changedTouches[0].pageX,e.pageY=e.originalEvent.changedTouches[0].pageY,e.screenX=e.originalEvent.changedTouches[0].screenX,e.screenY=e.originalEvent.changedTouches[0].screenY}function b(t,s){if(e("#sortableListsHintWrapper",d.rootEl.el).length&&r.unwrap(),t.pageX-s.offset().left<n.insertZone){if(s.prev("#sortableListsPlaceholder").length)return void r.css("display","none");s.before(r)}else{var l=s.children(),o=s.children(n.listSelector).first();if(o.children().first().is("#sortableListsPlaceholder"))return void r.css("display","none");o.length?o.prepend(r):(l.first().after(r),r.wrap(a)),d.oEl&&L(s)}r.css("display","block"),d.isAllowed=n.isAllowed(d.cEl.el,r,r.parents("li").first())}function g(t,s,l){if(e("#sortableListsHintWrapper",d.rootEl.el).length&&r.unwrap(),!l&&t.pageX-s.offset().left>n.insertZone){var o=s.children(),i=s.children(n.listSelector).first();if(i.children().first().is("#sortableListsPlaceholder"))return void r.css("display","none");i.length?i.prepend(r):(o.first().after(r),r.wrap(a)),d.oEl&&L(s)}else{if(s.prev("#sortableListsPlaceholder").length)return void r.css("display","none");s.before(r)}r.css("display","block"),d.isAllowed=n.isAllowed(d.cEl.el,r,r.parents("li").first())}function m(t,s){if(e("#sortableListsHintWrapper",d.rootEl.el).length&&r.unwrap(),t.pageX-s.offset().left<n.insertZone){if(s.next("#sortableListsPlaceholder").length)return void r.css("display","none");s.after(r)}else{var l=s.children(),o=s.children(n.listSelector).last();if(o.children().last().is("#sortableListsPlaceholder"))return void r.css("display","none");o.length?l.last().append(r):(s.append(r),r.wrap(a)),d.oEl&&L(s)}r.css("display","block"),d.isAllowed=n.isAllowed(d.cEl.el,r,r.parents("li").first())}function C(t,s,l){if(e("#sortableListsHintWrapper",d.rootEl.el).length&&r.unwrap(),!l&&t.pageX-s.offset().left>n.insertZone){var o=s.children(),i=s.children(n.listSelector).last();if(i.children().last().is("#sortableListsPlaceholder"))return void r.css("display","none");i.length?o.last().append(r):(s.append(r),r.wrap(a)),d.oEl&&L(s)}else{if(s.next("#sortableListsPlaceholder").length)return void r.css("display","none");s.after(r)}r.css("display","block"),d.isAllowed=n.isAllowed(d.cEl.el,r,r.parents("li").first())}function L(e){e.removeClass("sortableListsClosed").addClass("sortableListsOpen"),e.children(n.listSelector).css("display","block");var t=e.children("div").children(".sortableListsOpener").first();"html"==n.opener.as?t.html(n.opener.close):"class"==n.opener.as?t.addClass(n.opener.close).removeClass(n.opener.open):t.css("background-image","url("+n.opener.close+")")}function E(e){e.removeClass("sortableListsOpen").addClass("sortableListsClosed"),e.children(n.listSelector).css("display","none");var t=e.children("div").children(".sortableListsOpener").first();"html"==n.opener.as?t.html(n.opener.open):"class"==n.opener.as?t.addClass(n.opener.open).removeClass(n.opener.close):t.css("background-image","url("+n.opener.open+")")}function y(){e(n.listSelector,d.rootEl.el).each(function(t){e(this).children().length||(e(this).prev("div").children(".sortableListsOpener").first().remove(),e(this).remove())})}},e.fn.iconOpen=function(e){this.removeClass("sortableListsClosed").addClass("sortableListsOpen"),this.children("ul").css("display","block");var t=this.children("div").children(".sortableListsOpener").first();"html"===e.opener.as?t.html(e.opener.close):"class"===e.opener.as&&t.addClass(e.opener.close).removeClass(e.opener.open)},e.fn.iconClose=function(e){this.removeClass("sortableListsOpen").addClass("sortableListsClosed"),this.children("ul").css("display","none");var t=this.children("div").children(".sortableListsOpener").first();"html"===e.opener.as?t.html(e.opener.open):"class"===e.opener.as&&t.addClass(e.opener.open).removeClass(e.opener.close)},e.fn.sortableListsToJson=function(){var t=[];return e(this).children("li").each(function(){var s=e(this),l=s.data();t.push(l);var n=s.children("ul,ol").sortableListsToJson();n.length>0?l.children=n:delete l.children}),t},e.fn.updateLevels=function(t){var s=void 0===t?0:t;e(this).children("li").each(function(){var t=e(this).children("ul");t.length>0&&(t.data("level",s+1),t.updateLevels(s+1))})},e.fn.updateButtons=function(t){var s=void 0===t?0:t,l=["Up","In"],n=["Down"];0===s&&(l.push("Out"),n.push("Out"),e(this).children("li").hideButtons(["Out"])),e(this).children("li").each(function(){var t=e(this).children("ul");t.length>0&&t.updateButtons(s+1)}),e(this).children("li:first").hideButtons(l),e(this).children("li:last").hideButtons(n)},e.fn.hideButtons=function(t){for(var s=0;s<t.length;s++)e(this).find(".btn-group:first").children(".btn"+t[s]).hide()}}(jQuery),MenuEditor.updateButtons=function(e){e.find(".btnMove").show(),e.updateButtons()};
1
+ function MenuEditor(e, t) {
2
+ var s = $("#" + e).data("level", "0"),
3
+ l = {
4
+ labelEdit: '<i class="fas fa-edit clickable"></i>',
5
+ labelRemove: '<i class="fas fa-trash-alt clickable"></i>',
6
+ textConfirmDelete: "This item will be deleted. Are you sure?",
7
+ iconPicker: { cols: 4, rows: 4, footer: !1, iconset: "fontawesome5" },
8
+ maxLevel: -1,
9
+ listOptions: {
10
+ hintCss: { border: "1px dashed #13981D" },
11
+ opener: {
12
+ as: "html",
13
+ close: '<i class="fas fa-minus"></i>',
14
+ open: '<i class="fas fa-plus"></i>',
15
+ openerCss: { "margin-right": "10px", float: "none" },
16
+ openerClass: "btn btn-success btn-sm",
17
+ },
18
+ placeholderCss: { "background-color": "gray" },
19
+ ignoreClass: "clickable",
20
+ listsClass: "pl-0",
21
+ listsCss: { "padding-top": "10px" },
22
+ complete: function (e) {
23
+ return MenuEditor.updateButtons(s), s.updateLevels(0), !0;
24
+ },
25
+ isAllowed: function (e, t, s) {
26
+ return h(e, s);
27
+ },
28
+ },
29
+ };
30
+ $.extend(!0, l, t);
31
+ var n = null,
32
+ o = !0,
33
+ i = null,
34
+ r = null,
35
+ a = l.iconPicker,
36
+ c = ((t = l.listOptions), $("#" + e + "_icon").iconpicker(a));
37
+ function d() {
38
+ i[0].reset(),
39
+ (c = c.iconpicker(a)).iconpicker("setIcon", "empty"),
40
+ r.attr("disabled", !0),
41
+ (n = null);
42
+ }
43
+ function p(e) {
44
+ return $("<a>")
45
+ .addClass(e.classCss)
46
+ .addClass("clickable")
47
+ .attr("href", "#")
48
+ .html(e.text);
49
+ }
50
+ function u() {
51
+ var e = $("<div>").addClass("btn-group float-end"),
52
+ t = p({ classCss: "btn btn-primary btn-sm btnEdit", text: l.labelEdit }),
53
+ s = p({
54
+ classCss: "btn btn-danger btn-sm btnRemove",
55
+ text: l.labelRemove,
56
+ }),
57
+ n = p({
58
+ classCss: "btn btn-secondary btn-sm btnUp btnMove",
59
+ text: '<i class="fas fa-angle-up clickable"></i>',
60
+ }),
61
+ o = p({
62
+ classCss: "btn btn-secondary btn-sm btnDown btnMove",
63
+ text: '<i class="fas fa-angle-down clickable"></i>',
64
+ }),
65
+ i = p({
66
+ classCss: "btn btn-secondary btn-sm btnOut btnMove",
67
+ text: '<i class="fas fa-level-down-alt clickable"></i>',
68
+ }),
69
+ r = p({
70
+ classCss: "btn btn-secondary btn-sm btnIn btnMove",
71
+ text: '<i class="fas fa-level-up-alt clickable"></i>',
72
+ });
73
+ return e.append(n).append(o).append(r).append(i).append(t).append(s), e;
74
+ }
75
+ function f(e) {
76
+ $("<span>")
77
+ .addClass("sortableListsOpener " + t.opener.openerClass)
78
+ .css(t.opener.openerCss)
79
+ .on("mousedown touchstart", function (e) {
80
+ var s = $(this).closest("li");
81
+ return (
82
+ s.hasClass("sortableListsClosed") ? s.iconOpen(t) : s.iconClose(t), !1
83
+ );
84
+ })
85
+ .prependTo(e.children("div").first()),
86
+ e.hasClass("sortableListsOpen") ? e.iconOpen(t) : e.iconClose(t);
87
+ }
88
+ function h(e, t) {
89
+ if (l.maxLevel < 0) return !0;
90
+ var s = 0,
91
+ n = e.find("ul").length;
92
+ return (
93
+ (s = 0 == t.length ? 0 : parseInt(t.parent().data("level")) + 1),
94
+ console.log(s + n),
95
+ s + n <= l.maxLevel
96
+ );
97
+ }
98
+ s.sortableLists(l.listOptions),
99
+ c.on("change", function (e) {
100
+ i.find("[name=icon]").val(e.icon);
101
+ }),
102
+ $(document).on("click", ".btnRemove", function (t) {
103
+ if ((t.preventDefault(), confirm(l.textConfirmDelete))) {
104
+ var n = $(this).closest("ul");
105
+ $(this).closest("li").remove();
106
+ var o = !1;
107
+ void 0 !== n.attr("id") && (o = n.attr("id").toString() === e),
108
+ n.children().length ||
109
+ o ||
110
+ (n.prev("div").children(".sortableListsOpener").first().remove(),
111
+ n.remove()),
112
+ MenuEditor.updateButtons(s);
113
+ }
114
+ }),
115
+ $(document).on("click", ".btnEdit", function (e) {
116
+ e.preventDefault(),
117
+ (function (e) {
118
+ var t = e.data();
119
+ $.each(t, function (e, t) {
120
+ i.find("[name=" + e + "]").val(t);
121
+ }),
122
+ i.find(".item-menu").first().focus(),
123
+ t.hasOwnProperty("icon")
124
+ ? c.iconpicker("setIcon", t.icon)
125
+ : c.iconpicker("setIcon", "empty");
126
+ r.removeAttr("disabled");
127
+ })((n = $(this).closest("li")));
128
+ }),
129
+ s.on("click", ".btnUp", function (e) {
130
+ e.preventDefault();
131
+ var t = $(this).closest("li");
132
+ t.prev("li").before(t), MenuEditor.updateButtons(s);
133
+ }),
134
+ s.on("click", ".btnDown", function (e) {
135
+ e.preventDefault();
136
+ var t = $(this).closest("li");
137
+ t.next("li").after(t), MenuEditor.updateButtons(s);
138
+ }),
139
+ s.on("click", ".btnOut", function (e) {
140
+ e.preventDefault();
141
+ var t = $(this).closest("ul"),
142
+ l = $(this).closest("li");
143
+ l.closest("ul").closest("li").after(l),
144
+ t.children().length <= 0 &&
145
+ (t.prev("div").children(".sortableListsOpener").first().remove(),
146
+ t.remove()),
147
+ MenuEditor.updateButtons(s),
148
+ s.updateLevels();
149
+ }),
150
+ s.on("click", ".btnIn", function (e) {
151
+ e.preventDefault();
152
+ var t = $(this).closest("li"),
153
+ l = t.prev("li");
154
+ if (!h(t, l)) return !1;
155
+ if (l.length > 0)
156
+ if ((n = l.children("ul")).length > 0) n.append(t);
157
+ else {
158
+ var n = $("<ul>").addClass("pl-0").css("padding-top", "10px");
159
+ l.append(n), n.append(t), l.addClass("sortableListsOpen"), f(l);
160
+ }
161
+ MenuEditor.updateButtons(s), s.updateLevels();
162
+ }),
163
+ (this.setForm = function (e) {
164
+ i = e;
165
+ }),
166
+ (this.getForm = function () {
167
+ return i;
168
+ }),
169
+ (this.setUpdateButton = function (e) {
170
+ (r = e).attr("disabled", !0), (n = null);
171
+ }),
172
+ (this.getUpdateButton = function () {
173
+ return r;
174
+ }),
175
+ (this.getCurrentItem = function () {
176
+ return n;
177
+ }),
178
+ (this.update = function () {
179
+ var e = this.getCurrentItem();
180
+ if (null !== e) {
181
+ var t = e.data("icon");
182
+ i.find(".item-menu").each(function () {
183
+ e.data($(this).attr("name"), $(this).val());
184
+ }),
185
+ e.children().children("i").removeClass(t).addClass(e.data("icon")),
186
+ e.find("span.txt").first().text(e.data("text")),
187
+ d();
188
+ }
189
+ }),
190
+ (this.add = function () {
191
+ var e = {};
192
+ i.find(".item-menu").each(function () {
193
+ e[$(this).attr("name")] = $(this).val();
194
+ });
195
+ var t = u(),
196
+ l = $("<span>").addClass("txt").text(e.text),
197
+ n = $("<i>").addClass(e.icon),
198
+ o = $("<div>")
199
+ .css({ overflow: "auto" })
200
+ .append(n)
201
+ .append("&nbsp;")
202
+ .append(l)
203
+ .append(t),
204
+ r = $("<li>").data(e);
205
+ r.addClass("list-group-item pr-0").append(o),
206
+ s.append(r),
207
+ MenuEditor.updateButtons(s),
208
+ d();
209
+ }),
210
+ (this.getString = function () {
211
+ var e = s.sortableListsToJson();
212
+ return JSON.stringify(e);
213
+ }),
214
+ (this.setData = function (e) {
215
+ var t = Array.isArray(e)
216
+ ? e
217
+ : (function (e) {
218
+ try {
219
+ var t = JSON.parse(e);
220
+ } catch (e) {
221
+ return console.log("The string is not a json valid."), null;
222
+ }
223
+ return t;
224
+ })(e);
225
+ if (null !== t) {
226
+ s.empty();
227
+ var n = (function e(t, l) {
228
+ var n = void 0 === l ? 0 : l,
229
+ o =
230
+ 0 === n
231
+ ? s
232
+ : $("<ul>")
233
+ .addClass("pl-0")
234
+ .css("padding-top", "10px")
235
+ .data("level", n);
236
+ return (
237
+ $.each(t, function (t, s) {
238
+ var l = void 0 !== s.children && $.isArray(s.children),
239
+ i = {
240
+ text: "",
241
+ href: "",
242
+ icon: "empty",
243
+ target: "_self",
244
+ title: "",
245
+ },
246
+ r = $.extend({}, s);
247
+ l && delete r.children, $.extend(i, r);
248
+ var a = $("<li>").addClass("list-group-item pr-0");
249
+ a.data(i);
250
+ var c = $("<div>").css("overflow", "auto"),
251
+ d = $("<i>").addClass(s.icon),
252
+ p = $("<span>")
253
+ .addClass("txt")
254
+ .append(s.text)
255
+ .css("margin-right", "5px"),
256
+ f = u();
257
+ c.append(d).append("&nbsp;").append(p).append(f),
258
+ a.append(c),
259
+ l && a.append(e(s.children, n + 1)),
260
+ o.append(a);
261
+ }),
262
+ o
263
+ );
264
+ })(t);
265
+ o
266
+ ? s.find("li").each(function () {
267
+ var e = $(this);
268
+ e.children("ul").length && f(e);
269
+ })
270
+ : (n.sortableLists(l.listOptions), (o = !0)),
271
+ MenuEditor.updateButtons(s);
272
+ }
273
+ });
274
+ }
275
+ !(function (e) {
276
+ /**
277
+ * @desc jQuery plugin to sort html list also the tree structures
278
+ * @version 1.4.0
279
+ * @author Vladimír Čamaj
280
+ * @license MIT
281
+ * @desc jQuery plugin
282
+ * @param options
283
+ * @returns this to unsure chaining
284
+ */
285
+ (e.fn.sortableLists = function (t) {
286
+ var s = e("body").css("position", "relative"),
287
+ l = {
288
+ currElClass: "",
289
+ placeholderClass: "",
290
+ placeholderCss: { position: "relative", padding: 0 },
291
+ hintClass: "",
292
+ hintCss: { display: "none", position: "relative", padding: 0 },
293
+ hintWrapperClass: "",
294
+ hintWrapperCss: {},
295
+ baseClass: "",
296
+ baseCss: {
297
+ position: "absolute",
298
+ top: 0 - parseInt(s.css("margin-top")),
299
+ left: 0 - parseInt(s.css("margin-left")),
300
+ margin: 0,
301
+ padding: 0,
302
+ "z-index": 2500,
303
+ },
304
+ opener: {
305
+ active: !1,
306
+ open: "",
307
+ close: "",
308
+ openerCss: {
309
+ float: "left",
310
+ display: "inline-block",
311
+ "background-position": "center center",
312
+ "background-repeat": "no-repeat",
313
+ },
314
+ openerClass: "",
315
+ },
316
+ listSelector: "ul",
317
+ listsClass: "",
318
+ listsCss: {},
319
+ insertZone: 50,
320
+ insertZonePlus: !1,
321
+ scroll: 20,
322
+ ignoreClass: "",
323
+ isAllowed: function (e, t, s) {
324
+ return !0;
325
+ },
326
+ onDragStart: function (e, t) {
327
+ return !0;
328
+ },
329
+ onChange: function (e) {
330
+ return !0;
331
+ },
332
+ complete: function (e) {
333
+ return !0;
334
+ },
335
+ },
336
+ n = e.extend(!0, {}, l, t),
337
+ o = e("<" + n.listSelector + " />")
338
+ .prependTo(s)
339
+ .attr("id", "sortableListsBase")
340
+ .css(n.baseCss)
341
+ .addClass(n.listsClass + " " + n.baseClass),
342
+ i = e("<li />")
343
+ .attr("id", "sortableListsPlaceholder")
344
+ .css(n.placeholderCss)
345
+ .addClass(n.placeholderClass),
346
+ r = e("<li />")
347
+ .attr("id", "sortableListsHint")
348
+ .css(n.hintCss)
349
+ .addClass(n.hintClass),
350
+ a = e("<" + n.listSelector + " />")
351
+ .attr("id", "sortableListsHintWrapper")
352
+ .addClass(n.listsClass + " " + n.hintWrapperClass)
353
+ .css(n.listsCss)
354
+ .css(n.hintWrapperCss),
355
+ c = e("<span />")
356
+ .addClass("sortableListsOpener " + n.opener.openerClass)
357
+ .css(n.opener.openerCss)
358
+ .on("mousedown touchstart", function (t) {
359
+ var s = e(this).closest("li");
360
+ return s.hasClass("sortableListsClosed") ? L(s) : E(s), !1;
361
+ });
362
+ "class" == n.opener.as
363
+ ? c.addClass(n.opener.close)
364
+ : "html" == n.opener.as
365
+ ? c.html(n.opener.close)
366
+ : console.error("Invalid setting for opener.as");
367
+ var d = {
368
+ isDragged: !1,
369
+ isRelEFP: null,
370
+ oEl: null,
371
+ rootEl: null,
372
+ cEl: null,
373
+ upScroll: !1,
374
+ downScroll: !1,
375
+ pX: 0,
376
+ pY: 0,
377
+ cX: 0,
378
+ cY: 0,
379
+ isAllowed: !0,
380
+ e: { pageX: 0, pageY: 0, clientX: 0, clientY: 0 },
381
+ doc: e(document),
382
+ win: e(window),
383
+ };
384
+ if (n.opener.active) {
385
+ if (!n.opener.open)
386
+ throw "Opener.open value is not defined. It should be valid url, html or css class.";
387
+ if (!n.opener.close)
388
+ throw "Opener.close value is not defined. It should be valid url, html or css class.";
389
+ e(this)
390
+ .find("li")
391
+ .each(function () {
392
+ var t = e(this);
393
+ t.children(n.listSelector).length &&
394
+ (c.clone(!0).prependTo(t.children("div").first()),
395
+ t.hasClass("sortableListsOpen") ? L(t) : E(t));
396
+ });
397
+ }
398
+ return this.on("mousedown touchstart", function (t) {
399
+ var s = e(t.target);
400
+ if (
401
+ !(!1 !== d.isDragged || (n.ignoreClass && s.hasClass(n.ignoreClass)))
402
+ ) {
403
+ t.preventDefault(), "touchstart" === t.type && v(t);
404
+ var l = s.closest("li"),
405
+ a = e(this);
406
+ l[0] &&
407
+ (n.onDragStart(t, l),
408
+ (function (t, s, l) {
409
+ d.isDragged = !0;
410
+ var a = parseInt(s.css("margin-top")),
411
+ c = parseInt(s.css("margin-bottom")),
412
+ f = parseInt(s.css("margin-left")),
413
+ h = parseInt(s.css("margin-right")),
414
+ v = s.offset(),
415
+ b = s.innerHeight();
416
+ (d.rootEl = {
417
+ el: l,
418
+ offset: l.offset(),
419
+ rootElClass: l.attr("class"),
420
+ }),
421
+ (d.cEl = { el: s, mT: a, mL: f, mB: c, mR: h, offset: v }),
422
+ (d.cEl.xyOffsetDiff = {
423
+ X: t.pageX - d.cEl.offset.left,
424
+ Y: t.pageY - d.cEl.offset.top,
425
+ }),
426
+ d.cEl.el.addClass("sortableListsCurrent " + n.currElClass),
427
+ s.before(i);
428
+ var g = (d.placeholderNode = e("#sortableListsPlaceholder"));
429
+ s
430
+ .css({
431
+ width: s.width(),
432
+ position: "absolute",
433
+ top: v.top - a,
434
+ left: v.left - f,
435
+ })
436
+ .prependTo(o),
437
+ g.css({ display: "block", height: b }),
438
+ r.css("height", b),
439
+ d.doc
440
+ .on("mousemove touchmove", p)
441
+ .on("mouseup touchend touchcancel", u);
442
+ })(t, l, a));
443
+ }
444
+ });
445
+ function p(t) {
446
+ if (d.isDragged) {
447
+ var s = d.cEl,
448
+ l = d.doc,
449
+ o = d.win;
450
+ "touchmove" === t.type && v(t),
451
+ t.pageX ||
452
+ (function (e) {
453
+ (e.pageY = d.pY),
454
+ (e.pageX = d.pX),
455
+ (e.clientY = d.cY),
456
+ (e.clientX = d.cX);
457
+ })(t),
458
+ l.scrollTop() > d.rootEl.offset.top - 10 && t.clientY < 50
459
+ ? d.upScroll
460
+ ? ((t.pageY = t.pageY - n.scroll),
461
+ e("html, body").each(function (t) {
462
+ e(this).scrollTop(e(this).scrollTop() - n.scroll);
463
+ }),
464
+ f(t))
465
+ : (function (e) {
466
+ if (d.upScroll) return;
467
+ d.upScroll = setInterval(function () {
468
+ d.doc.trigger("mousemove");
469
+ }, 50);
470
+ })()
471
+ : l.scrollTop() + o.height() <
472
+ d.rootEl.offset.top + d.rootEl.el.outerHeight(!1) + 10 &&
473
+ o.height() - t.clientY < 50
474
+ ? d.downScroll
475
+ ? ((t.pageY = t.pageY + n.scroll),
476
+ e("html, body").each(function (t) {
477
+ e(this).scrollTop(e(this).scrollTop() + n.scroll);
478
+ }),
479
+ f(t))
480
+ : (function (e) {
481
+ if (d.downScroll) return;
482
+ d.downScroll = setInterval(function () {
483
+ d.doc.trigger("mousemove");
484
+ }, 50);
485
+ })()
486
+ : h(d),
487
+ (d.oElOld = d.oEl),
488
+ (s.el[0].style.visibility = "hidden"),
489
+ (d.oEl = oEl = (function (t, s) {
490
+ if (!document.elementFromPoint) return null;
491
+ var l = d.isRelEFP;
492
+ if (null === l) {
493
+ var n, o;
494
+ (n = d.doc.scrollTop()) > 0 &&
495
+ (l =
496
+ null ==
497
+ (o = document.elementFromPoint(
498
+ 0,
499
+ n + e(window).height() - 1
500
+ )) || "HTML" == o.tagName.toUpperCase()),
501
+ (n = d.doc.scrollLeft()) > 0 &&
502
+ (l =
503
+ null ==
504
+ (o = document.elementFromPoint(
505
+ n + e(window).width() - 1,
506
+ 0
507
+ )) || "HTML" == o.tagName.toUpperCase());
508
+ }
509
+ l && ((t -= d.doc.scrollLeft()), (s -= d.doc.scrollTop()));
510
+ var i = e(document.elementFromPoint(t, s));
511
+ if (!d.rootEl.el.find(i).length) return null;
512
+ if (i.is("#sortableListsPlaceholder") || i.is("#sortableListsHint"))
513
+ return null;
514
+ if (!i.is("li")) return (i = i.closest("li"))[0] ? i : null;
515
+ if (i.is("li")) return i;
516
+ })(t.pageX, t.pageY)),
517
+ (s.el[0].style.visibility = "visible"),
518
+ (function (e, t) {
519
+ var s = t.oEl;
520
+ if (!s || !t.oElOld) return;
521
+ var l = s.outerHeight(!1),
522
+ o = e.pageY - s.offset().top;
523
+ n.insertZonePlus
524
+ ? 14 > o
525
+ ? g(e, s, 7 > o)
526
+ : l - 14 < o && C(e, s, l - 7 < o)
527
+ : 5 > o
528
+ ? b(e, s)
529
+ : l - 5 < o && m(e, s);
530
+ })(t, d),
531
+ (function (e, t) {
532
+ var s = t.cEl;
533
+ s.el.css({
534
+ top: e.pageY - s.xyOffsetDiff.Y - s.mT,
535
+ left: e.pageX - s.xyOffsetDiff.X - s.mL,
536
+ });
537
+ })(t, d);
538
+ }
539
+ }
540
+ function u(t) {
541
+ var s = d.cEl,
542
+ l = e("#sortableListsHint", d.rootEl.el),
543
+ o = r[0].style,
544
+ i = null,
545
+ a = !1,
546
+ f = e("#sortableListsHintWrapper");
547
+ ("touchend" !== t.type && "touchcancel" !== t.type) || v(t),
548
+ "block" == o.display && l.length && d.isAllowed
549
+ ? ((i = l), (a = !0))
550
+ : ((i = d.placeholderNode), (a = !1)),
551
+ (offset = i.offset()),
552
+ s.el.animate(
553
+ { left: offset.left - d.cEl.mL, top: offset.top - d.cEl.mT },
554
+ 250,
555
+ function () {
556
+ !(function (e) {
557
+ var t = e.el[0].style;
558
+ e.el.removeClass(n.currElClass + " sortableListsCurrent"),
559
+ (t.top = "0"),
560
+ (t.left = "0"),
561
+ (t.position = "relative"),
562
+ (t.width = "auto");
563
+ })(s),
564
+ i.after(s.el[0]),
565
+ (i[0].style.display = "none"),
566
+ (o.display = "none"),
567
+ l.remove(),
568
+ f.removeAttr("id").removeClass(n.hintWrapperClass),
569
+ f.length && f.prev("div").prepend(c.clone(!0)),
570
+ a
571
+ ? d.placeholderNode.slideUp(150, function () {
572
+ d.placeholderNode.remove(),
573
+ y(),
574
+ n.onChange(s.el),
575
+ n.complete(s.el),
576
+ (d.isDragged = !1);
577
+ })
578
+ : (d.placeholderNode.remove(),
579
+ y(),
580
+ n.complete(s.el),
581
+ (d.isDragged = !1));
582
+ }
583
+ ),
584
+ h(d),
585
+ d.doc
586
+ .unbind("mousemove touchmove", p)
587
+ .unbind("mouseup touchend touchcancel", u);
588
+ }
589
+ function f(e) {
590
+ (d.pY = e.pageY),
591
+ (d.pX = e.pageX),
592
+ (d.cY = e.clientY),
593
+ (d.cX = e.clientX);
594
+ }
595
+ function h(e) {
596
+ clearInterval(e.upScroll),
597
+ clearInterval(e.downScroll),
598
+ (e.upScroll = e.downScroll = !1);
599
+ }
600
+ function v(e) {
601
+ (e.pageX = e.originalEvent.changedTouches[0].pageX),
602
+ (e.pageY = e.originalEvent.changedTouches[0].pageY),
603
+ (e.screenX = e.originalEvent.changedTouches[0].screenX),
604
+ (e.screenY = e.originalEvent.changedTouches[0].screenY);
605
+ }
606
+ function b(t, s) {
607
+ if (
608
+ (e("#sortableListsHintWrapper", d.rootEl.el).length && r.unwrap(),
609
+ t.pageX - s.offset().left < n.insertZone)
610
+ ) {
611
+ if (s.prev("#sortableListsPlaceholder").length)
612
+ return void r.css("display", "none");
613
+ s.before(r);
614
+ } else {
615
+ var l = s.children(),
616
+ o = s.children(n.listSelector).first();
617
+ if (o.children().first().is("#sortableListsPlaceholder"))
618
+ return void r.css("display", "none");
619
+ o.length ? o.prepend(r) : (l.first().after(r), r.wrap(a)),
620
+ d.oEl && L(s);
621
+ }
622
+ r.css("display", "block"),
623
+ (d.isAllowed = n.isAllowed(d.cEl.el, r, r.parents("li").first()));
624
+ }
625
+ function g(t, s, l) {
626
+ if (
627
+ (e("#sortableListsHintWrapper", d.rootEl.el).length && r.unwrap(),
628
+ !l && t.pageX - s.offset().left > n.insertZone)
629
+ ) {
630
+ var o = s.children(),
631
+ i = s.children(n.listSelector).first();
632
+ if (i.children().first().is("#sortableListsPlaceholder"))
633
+ return void r.css("display", "none");
634
+ i.length ? i.prepend(r) : (o.first().after(r), r.wrap(a)),
635
+ d.oEl && L(s);
636
+ } else {
637
+ if (s.prev("#sortableListsPlaceholder").length)
638
+ return void r.css("display", "none");
639
+ s.before(r);
640
+ }
641
+ r.css("display", "block"),
642
+ (d.isAllowed = n.isAllowed(d.cEl.el, r, r.parents("li").first()));
643
+ }
644
+ function m(t, s) {
645
+ if (
646
+ (e("#sortableListsHintWrapper", d.rootEl.el).length && r.unwrap(),
647
+ t.pageX - s.offset().left < n.insertZone)
648
+ ) {
649
+ if (s.next("#sortableListsPlaceholder").length)
650
+ return void r.css("display", "none");
651
+ s.after(r);
652
+ } else {
653
+ var l = s.children(),
654
+ o = s.children(n.listSelector).last();
655
+ if (o.children().last().is("#sortableListsPlaceholder"))
656
+ return void r.css("display", "none");
657
+ o.length ? l.last().append(r) : (s.append(r), r.wrap(a)), d.oEl && L(s);
658
+ }
659
+ r.css("display", "block"),
660
+ (d.isAllowed = n.isAllowed(d.cEl.el, r, r.parents("li").first()));
661
+ }
662
+ function C(t, s, l) {
663
+ if (
664
+ (e("#sortableListsHintWrapper", d.rootEl.el).length && r.unwrap(),
665
+ !l && t.pageX - s.offset().left > n.insertZone)
666
+ ) {
667
+ var o = s.children(),
668
+ i = s.children(n.listSelector).last();
669
+ if (i.children().last().is("#sortableListsPlaceholder"))
670
+ return void r.css("display", "none");
671
+ i.length ? o.last().append(r) : (s.append(r), r.wrap(a)), d.oEl && L(s);
672
+ } else {
673
+ if (s.next("#sortableListsPlaceholder").length)
674
+ return void r.css("display", "none");
675
+ s.after(r);
676
+ }
677
+ r.css("display", "block"),
678
+ (d.isAllowed = n.isAllowed(d.cEl.el, r, r.parents("li").first()));
679
+ }
680
+ function L(e) {
681
+ e.removeClass("sortableListsClosed").addClass("sortableListsOpen"),
682
+ e.children(n.listSelector).css("display", "block");
683
+ var t = e.children("div").children(".sortableListsOpener").first();
684
+ "html" == n.opener.as
685
+ ? t.html(n.opener.close)
686
+ : "class" == n.opener.as
687
+ ? t.addClass(n.opener.close).removeClass(n.opener.open)
688
+ : t.css("background-image", "url(" + n.opener.close + ")");
689
+ }
690
+ function E(e) {
691
+ e.removeClass("sortableListsOpen").addClass("sortableListsClosed"),
692
+ e.children(n.listSelector).css("display", "none");
693
+ var t = e.children("div").children(".sortableListsOpener").first();
694
+ "html" == n.opener.as
695
+ ? t.html(n.opener.open)
696
+ : "class" == n.opener.as
697
+ ? t.addClass(n.opener.open).removeClass(n.opener.close)
698
+ : t.css("background-image", "url(" + n.opener.open + ")");
699
+ }
700
+ function y() {
701
+ e(n.listSelector, d.rootEl.el).each(function (t) {
702
+ e(this).children().length ||
703
+ (e(this)
704
+ .prev("div")
705
+ .children(".sortableListsOpener")
706
+ .first()
707
+ .remove(),
708
+ e(this).remove());
709
+ });
710
+ }
711
+ }),
712
+ (e.fn.iconOpen = function (e) {
713
+ this.removeClass("sortableListsClosed").addClass("sortableListsOpen"),
714
+ this.children("ul").css("display", "block");
715
+ var t = this.children("div").children(".sortableListsOpener").first();
716
+ "html" === e.opener.as
717
+ ? t.html(e.opener.close)
718
+ : "class" === e.opener.as &&
719
+ t.addClass(e.opener.close).removeClass(e.opener.open);
720
+ }),
721
+ (e.fn.iconClose = function (e) {
722
+ this.removeClass("sortableListsOpen").addClass("sortableListsClosed"),
723
+ this.children("ul").css("display", "none");
724
+ var t = this.children("div").children(".sortableListsOpener").first();
725
+ "html" === e.opener.as
726
+ ? t.html(e.opener.open)
727
+ : "class" === e.opener.as &&
728
+ t.addClass(e.opener.open).removeClass(e.opener.close);
729
+ }),
730
+ (e.fn.sortableListsToJson = function () {
731
+ var t = [];
732
+ return (
733
+ e(this)
734
+ .children("li")
735
+ .each(function () {
736
+ var s = e(this),
737
+ l = s.data();
738
+ t.push(l);
739
+ var n = s.children("ul,ol").sortableListsToJson();
740
+ n.length > 0 ? (l.children = n) : delete l.children;
741
+ }),
742
+ t
743
+ );
744
+ }),
745
+ (e.fn.updateLevels = function (t) {
746
+ var s = void 0 === t ? 0 : t;
747
+ e(this)
748
+ .children("li")
749
+ .each(function () {
750
+ var t = e(this).children("ul");
751
+ t.length > 0 && (t.data("level", s + 1), t.updateLevels(s + 1));
752
+ });
753
+ }),
754
+ (e.fn.updateButtons = function (t) {
755
+ var s = void 0 === t ? 0 : t,
756
+ l = ["Up", "In"],
757
+ n = ["Down"];
758
+ 0 === s &&
759
+ (l.push("Out"),
760
+ n.push("Out"),
761
+ e(this).children("li").hideButtons(["Out"])),
762
+ e(this)
763
+ .children("li")
764
+ .each(function () {
765
+ var t = e(this).children("ul");
766
+ t.length > 0 && t.updateButtons(s + 1);
767
+ }),
768
+ e(this).children("li:first").hideButtons(l),
769
+ e(this).children("li:last").hideButtons(n);
770
+ }),
771
+ (e.fn.hideButtons = function (t) {
772
+ for (var s = 0; s < t.length; s++)
773
+ e(this)
774
+ .find(".btn-group:first")
775
+ .children(".btn" + t[s])
776
+ .hide();
777
+ });
778
+ })(jQuery),
779
+ (MenuEditor.updateButtons = function (e) {
780
+ e.find(".btnMove").show(), e.updateButtons();
781
+ });