Toolbox/static/plugins/jquery.accordion.js

321 lines
6.9 KiB
JavaScript
Raw Permalink Normal View History

2023-05-03 09:06:13 +02:00
/**
* jQuery EasyUI 1.5.1
*
* Copyright (c) 2009-2016 www.jeasyui.com. All rights reserved.
*
* Licensed under the commercial license: http://www.jeasyui.com/license_commercial.php
* To use it on other terms please contact us: info@jeasyui.com
*
*/
(function($){
function _1(_2,_3){
var _4=$.data(_2,"accordion");
var _5=_4.options;
var _6=_4.panels;
var cc=$(_2);
if(_3){
$.extend(_5,{width:_3.width,height:_3.height});
}
cc._size(_5);
var _7=0;
var _8="auto";
var _9=cc.find(">.panel>.accordion-header");
if(_9.length){
_7=$(_9[0]).css("height","")._outerHeight();
}
if(!isNaN(parseInt(_5.height))){
_8=cc.height()-_7*_9.length;
}
_a(true,_8-_a(false)+1);
function _a(_b,_c){
var _d=0;
for(var i=0;i<_6.length;i++){
var p=_6[i];
var h=p.panel("header")._outerHeight(_7);
if(p.panel("options").collapsible==_b){
var _e=isNaN(_c)?undefined:(_c+_7*h.length);
p.panel("resize",{width:cc.width(),height:(_b?_e:undefined)});
_d+=p.panel("panel").outerHeight()-_7*h.length;
}
}
return _d;
};
};
function _f(_10,_11,_12,all){
var _13=$.data(_10,"accordion").panels;
var pp=[];
for(var i=0;i<_13.length;i++){
var p=_13[i];
if(_11){
if(p.panel("options")[_11]==_12){
pp.push(p);
}
}else{
if(p[0]==$(_12)[0]){
return i;
}
}
}
if(_11){
return all?pp:(pp.length?pp[0]:null);
}else{
return -1;
}
};
function _14(_15){
return _f(_15,"collapsed",false,true);
};
function _16(_17){
var pp=_14(_17);
return pp.length?pp[0]:null;
};
function _18(_19,_1a){
return _f(_19,null,_1a);
};
function _1b(_1c,_1d){
var _1e=$.data(_1c,"accordion").panels;
if(typeof _1d=="number"){
if(_1d<0||_1d>=_1e.length){
return null;
}else{
return _1e[_1d];
}
}
return _f(_1c,"title",_1d);
};
function _1f(_20){
var _21=$.data(_20,"accordion").options;
var cc=$(_20);
if(_21.border){
cc.removeClass("accordion-noborder");
}else{
cc.addClass("accordion-noborder");
}
};
function _22(_23){
var _24=$.data(_23,"accordion");
var cc=$(_23);
cc.addClass("accordion");
_24.panels=[];
cc.children("div").each(function(){
var _25=$.extend({},$.parser.parseOptions(this),{selected:($(this).attr("selected")?true:undefined)});
var pp=$(this);
_24.panels.push(pp);
_27(_23,pp,_25);
});
cc.bind("_resize",function(e,_26){
if($(this).hasClass("easyui-fluid")||_26){
_1(_23);
}
return false;
});
};
function _27(_28,pp,_29){
var _2a=$.data(_28,"accordion").options;
pp.panel($.extend({},{collapsible:true,minimizable:false,maximizable:false,closable:false,doSize:false,collapsed:true,headerCls:"accordion-header",bodyCls:"accordion-body"},_29,{onBeforeExpand:function(){
if(_29.onBeforeExpand){
if(_29.onBeforeExpand.call(this)==false){
return false;
}
}
if(!_2a.multiple){
var all=$.grep(_14(_28),function(p){
return p.panel("options").collapsible;
});
for(var i=0;i<all.length;i++){
_33(_28,_18(_28,all[i]));
}
}
var _2b=$(this).panel("header");
_2b.addClass("accordion-header-selected");
_2b.find(".accordion-collapse").removeClass("accordion-expand");
},onExpand:function(){
if(_29.onExpand){
_29.onExpand.call(this);
}
_2a.onSelect.call(_28,$(this).panel("options").title,_18(_28,this));
},onBeforeCollapse:function(){
if(_29.onBeforeCollapse){
if(_29.onBeforeCollapse.call(this)==false){
return false;
}
}
var _2c=$(this).panel("header");
_2c.removeClass("accordion-header-selected");
_2c.find(".accordion-collapse").addClass("accordion-expand");
},onCollapse:function(){
if(_29.onCollapse){
_29.onCollapse.call(this);
}
_2a.onUnselect.call(_28,$(this).panel("options").title,_18(_28,this));
}}));
var _2d=pp.panel("header");
var _2e=_2d.children("div.panel-tool");
_2e.children("a.panel-tool-collapse").hide();
var t=$("<a href=\"javascript:;\"></a>").addClass("accordion-collapse accordion-expand").appendTo(_2e);
t.bind("click",function(){
_2f(pp);
return false;
});
pp.panel("options").collapsible?t.show():t.hide();
_2d.click(function(){
_2f(pp);
return false;
});
function _2f(p){
var _30=p.panel("options");
if(_30.collapsible){
var _31=_18(_28,p);
if(_30.collapsed){
_32(_28,_31);
}else{
_33(_28,_31);
}
}
};
};
function _32(_34,_35){
var p=_1b(_34,_35);
if(!p){
return;
}
_36(_34);
var _37=$.data(_34,"accordion").options;
p.panel("expand",_37.animate);
};
function _33(_38,_39){
var p=_1b(_38,_39);
if(!p){
return;
}
_36(_38);
var _3a=$.data(_38,"accordion").options;
p.panel("collapse",_3a.animate);
};
function _3b(_3c){
var _3d=$.data(_3c,"accordion").options;
var p=_f(_3c,"selected",true);
if(p){
_3e(_18(_3c,p));
}else{
_3e(_3d.selected);
}
function _3e(_3f){
var _40=_3d.animate;
_3d.animate=false;
_32(_3c,_3f);
_3d.animate=_40;
};
};
function _36(_41){
var _42=$.data(_41,"accordion").panels;
for(var i=0;i<_42.length;i++){
_42[i].stop(true,true);
}
};
function add(_43,_44){
var _45=$.data(_43,"accordion");
var _46=_45.options;
var _47=_45.panels;
if(_44.selected==undefined){
_44.selected=true;
}
_36(_43);
var pp=$("<div></div>").appendTo(_43);
_47.push(pp);
_27(_43,pp,_44);
_1(_43);
_46.onAdd.call(_43,_44.title,_47.length-1);
if(_44.selected){
_32(_43,_47.length-1);
}
};
function _48(_49,_4a){
var _4b=$.data(_49,"accordion");
var _4c=_4b.options;
var _4d=_4b.panels;
_36(_49);
var _4e=_1b(_49,_4a);
var _4f=_4e.panel("options").title;
var _50=_18(_49,_4e);
if(!_4e){
return;
}
if(_4c.onBeforeRemove.call(_49,_4f,_50)==false){
return;
}
_4d.splice(_50,1);
_4e.panel("destroy");
if(_4d.length){
_1(_49);
var _51=_16(_49);
if(!_51){
_32(_49,0);
}
}
_4c.onRemove.call(_49,_4f,_50);
};
$.fn.accordion=function(_52,_53){
if(typeof _52=="string"){
return $.fn.accordion.methods[_52](this,_53);
}
_52=_52||{};
return this.each(function(){
var _54=$.data(this,"accordion");
if(_54){
$.extend(_54.options,_52);
}else{
$.data(this,"accordion",{options:$.extend({},$.fn.accordion.defaults,$.fn.accordion.parseOptions(this),_52),accordion:$(this).addClass("accordion"),panels:[]});
_22(this);
}
_1f(this);
_1(this);
_3b(this);
});
};
$.fn.accordion.methods={options:function(jq){
return $.data(jq[0],"accordion").options;
},panels:function(jq){
return $.data(jq[0],"accordion").panels;
},resize:function(jq,_55){
return jq.each(function(){
_1(this,_55);
});
},getSelections:function(jq){
return _14(jq[0]);
},getSelected:function(jq){
return _16(jq[0]);
},getPanel:function(jq,_56){
return _1b(jq[0],_56);
},getPanelIndex:function(jq,_57){
return _18(jq[0],_57);
},select:function(jq,_58){
return jq.each(function(){
_32(this,_58);
});
},unselect:function(jq,_59){
return jq.each(function(){
_33(this,_59);
});
},add:function(jq,_5a){
return jq.each(function(){
add(this,_5a);
});
},remove:function(jq,_5b){
return jq.each(function(){
_48(this,_5b);
});
}};
$.fn.accordion.parseOptions=function(_5c){
var t=$(_5c);
return $.extend({},$.parser.parseOptions(_5c,["width","height",{fit:"boolean",border:"boolean",animate:"boolean",multiple:"boolean",selected:"number"}]));
};
$.fn.accordion.defaults={width:"auto",height:"auto",fit:false,border:true,animate:true,multiple:false,selected:0,onSelect:function(_5d,_5e){
},onUnselect:function(_5f,_60){
},onAdd:function(_61,_62){
},onBeforeRemove:function(_63,_64){
},onRemove:function(_65,_66){
}};
})(jQuery);