From 098b38faa72311662115b3bc0fc442972344dbeb Mon Sep 17 00:00:00 2001 From: Edward Oliveira Date: Mon, 26 Feb 2024 22:11:28 -0800 Subject: [PATCH 01/68] Add blank space when SAPN --- sapl/templates/search/search.html | 1 + 1 file changed, 1 insertion(+) diff --git a/sapl/templates/search/search.html b/sapl/templates/search/search.html index ccb20532a..aa3f8f431 100644 --- a/sapl/templates/search/search.html +++ b/sapl/templates/search/search.html @@ -12,6 +12,7 @@ {% switch "SAPLN_SWITCH" %} +   {% else %}
From d5a2831c6ac625b38f2bd934a833ed220f096693 Mon Sep 17 00:00:00 2001 From: LeandroJatai Date: Fri, 26 Apr 2024 14:41:06 -0300 Subject: [PATCH 02/68] =?UTF-8?q?fix:=20corrige=20carga=20de=20permiss?= =?UTF-8?q?=C3=B5es=20p=C3=BAblicas=20do=20crud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit permissões declaradas como públicas no atributo "public" do Crud estavam sendo descartadas pois estavam sendo guardadas no atributo crud as subclasses originais do crud, e não a construída dentro do get_urls. --- sapl/base/templatetags/menus.py | 26 +++++++----- sapl/crud/base.py | 73 ++++++++++++++++++++++++--------- 2 files changed, 69 insertions(+), 30 deletions(-) diff --git a/sapl/base/templatetags/menus.py b/sapl/base/templatetags/menus.py index 0c3f54ca9..65ecdcfec 100644 --- a/sapl/base/templatetags/menus.py +++ b/sapl/base/templatetags/menus.py @@ -183,17 +183,21 @@ def resolve_urls_inplace(menu, pk, rm, context): as funcionalidades diretas do MasterDetailCrud, como: - visualização de detalhes, adição, edição, remoção. """ - if 'view' in context: - view = context['view'] - if hasattr(view, '__class__') and\ - hasattr(view.__class__, 'crud'): - urls = view.__class__.crud.get_urls() - for u in urls: - if (u.name == url_name or - 'urls_extras' in menu and - u.name in menu['urls_extras']): - menu['active'] = 'active' - break + try: + if 'view' in context: + view = context['view'] + if hasattr(view, 'crud'): + urls = view.crud.get_urls() + for u in urls: + if (u.name == url_name or + 'urls_extras' in menu and + u.name in menu['urls_extras']): + menu['active'] = 'active' + break + except: + url_active = menu.get('url', '') + logger.warning( + f'Não foi possível definir se url {url_active} é a url ativa.') elif 'check_permission' in menu and not context[ 'request'].user.has_perm(menu['check_permission']): menu['active'] = '' diff --git a/sapl/crud/base.py b/sapl/crud/base.py index 94637d9d7..5dbc713dc 100644 --- a/sapl/crud/base.py +++ b/sapl/crud/base.py @@ -263,18 +263,18 @@ class CrudBaseMixin(CrispyLayoutFormMixin): self.model_name_set = getattr( obj.model, obj.model_set).field.model._meta.model_name - if hasattr(self, 'permission_required') and self.permission_required: - if hasattr(obj, 'public'): - self.permission_required = list( - set(self.permission_required) - set(obj.public)) - else: - obj.public = [] + if not hasattr(obj, 'public'): + obj.public = [] - self.permission_required = tuple(( - self.permission(pr) for pr in self.permission_required)) + if hasattr(self, 'permission_required') and self.permission_required: - else: - obj.public = [] + self.permission_required = tuple( + ( + self.permission(pr) for pr in ( + set(self.permission_required) - set(obj.public) + ) + ) + ) @classmethod def url_name(cls, suffix): @@ -460,7 +460,8 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView): # URL padrão para primeira coluna da listagem url = self.resolve_url( ACTION_DETAIL, args=(obj.id,)) if i == 0 else None - # gera URL para matéria a partir de fk_urlify_for_list em layouts.yaml + # gera URL para matéria a partir de fk_urlify_for_list em + # layouts.yaml if i > 0 and func is not None: url = getattr(self, func)(obj, name)[0] @@ -495,7 +496,7 @@ class CrudListView(PermissionRequiredContainerCrudMixin, ListView): if m: ss = get_field_display(m, n[-1])[1] ss = ( - ('
' if '
").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),t={width:n.width(),height:n.height()},i=document.activeElement;try{i.id}catch(e){i=document.body}n.wrap(e);if(n[0]===i||te.contains(n[0],i))te(i).trigger("focus");e=n.parent();if(n.css("position")==="static"){e.css({position:"relative"});n.css({position:"relative"})}else{te.extend(r,{position:n.css("position"),zIndex:n.css("z-index")});te.each(["top","left","bottom","right"],function(e,t){r[t]=n.css(t);if(isNaN(parseInt(r[t],10)))r[t]="auto"});n.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}n.css(t);return e.css(r).show()},removeWrapper:function(e){var t=document.activeElement;if(e.parent().is(".ui-effects-wrapper")){e.parent().replaceWith(e);if(e[0]===t||te.contains(e[0],t))te(t).trigger("focus")}return e}});function O(e,t,n,r){if(te.isPlainObject(e)){t=e;e=e.effect}e={effect:e};if(t==null)t={};if(typeof t==="function"){r=t;n=null;t={}}if(typeof t==="number"||te.fx.speeds[t]){r=n;n=t;t={}}if(typeof n==="function"){r=n;n=null}if(t)te.extend(e,t);n=n||t.duration;e.duration=te.fx.off?0:typeof n==="number"?n:n in te.fx.speeds?te.fx.speeds[n]:te.fx.speeds._default;e.complete=r||t.complete;return e}function E(e){if(!e||typeof e==="number"||te.fx.speeds[e])return true;if(typeof e==="string"&&!te.effects.effect[e])return true;if(typeof e==="function")return true;if(typeof e==="object"&&!e.effect)return true;return false}function Q(e,t){var n=t.outerWidth(),r=t.outerHeight(),i=/^rect\((-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto),?\s*(-?\d*\.?\d*px|-?\d+%|auto)\)$/,o=i.exec(e)||["",0,n,r,0];return{top:parseFloat(o[1])||0,right:o[2]==="auto"?n:parseFloat(o[2]),bottom:o[3]==="auto"?r:parseFloat(o[3]),left:parseFloat(o[4])||0}}te.extend(te.effects,{version:"1.13.2",define:function(e,t,n){if(!n){n=t;t="effect"}te.effects.effect[e]=n;te.effects.effect[e].mode=t;return n},scaledDimensions:function(e,t,n){if(t===0)return{height:0,width:0,outerHeight:0,outerWidth:0};var r=n!=="horizontal"?(t||100)/100:1,i=n!=="vertical"?(t||100)/100:1;return{height:e.height()*i,width:e.width()*r,outerHeight:e.outerHeight()*i,outerWidth:e.outerWidth()*r}},clipToBox:function(e){return{width:e.clip.right-e.clip.left,height:e.clip.bottom-e.clip.top,left:e.clip.left,top:e.clip.top}},unshift:function(e,t,n){var r=e.queue();if(t>1)r.splice.apply(r,[1,0].concat(r.splice(t,n)));e.dequeue()},saveStyle:function(e){e.data(t,e[0].style.cssText)},restoreStyle:function(e){e[0].style.cssText=e.data(t)||"";e.removeData(t)},mode:function(e,t){var n=e.is(":hidden");if(t==="toggle")t=n?"show":"hide";if(n?t==="hide":t==="show")t="none";return t},getBaseline:function(e,t){var n,r;switch(e[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=e[0]/t.height}switch(e[1]){case"left":r=0;break;case"center":r=.5;break;case"right":r=1;break;default:r=e[1]/t.width}return{x:r,y:n}},createPlaceholder:function(e){var t,n=e.css("position"),r=e.position();e.css({marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight());if(/^(static|relative)/.test(n)){n="absolute";t=te("<"+e[0].nodeName+">").insertAfter(e).css({display:/^(inline|ruby)/.test(e.css("display"))?"inline-block":"block",visibility:"hidden",marginTop:e.css("marginTop"),marginBottom:e.css("marginBottom"),marginLeft:e.css("marginLeft"),marginRight:e.css("marginRight"),float:e.css("float")}).outerWidth(e.outerWidth()).outerHeight(e.outerHeight()).addClass("ui-effects-placeholder");e.data(D+"placeholder",t)}e.css({position:n,left:r.left,top:r.top});return t},removePlaceholder:function(e){var t=D+"placeholder",n=e.data(t);if(n){n.remove();e.removeData(t)}},cleanUp:function(e){te.effects.restoreStyle(e);te.effects.removePlaceholder(e)},setTransition:function(r,e,i,o){o=o||{};te.each(e,function(e,t){var n=r.cssUnit(t);if(n[0]>0)o[t]=n[0]*i+n[1]});return o}}),te.fn.extend({effect:function(){var i=O.apply(this,arguments),o=te.effects.effect[i.effect],s=o.mode,e=i.queue,t=e||"fx",a=i.complete,l=i.mode,c=[],n=function(e){var t=te(this),n=te.effects.mode(t,l)||s;t.data(T,true);c.push(n);if(s&&(n==="show"||n===s&&n==="hide"))t.show();if(!s||n!=="none")te.effects.saveStyle(t);if(typeof e==="function")e()};if(te.fx.off||!o)if(l)return this[l](i.duration,a);else return this.each(function(){if(a)a.call(this)});function r(e){var t=te(this);function n(){t.removeData(T);te.effects.cleanUp(t);if(i.mode==="hide")t.hide();r()}function r(){if(typeof a==="function")a.call(t[0]);if(typeof e==="function")e()}i.mode=c.shift();if(te.uiBackCompat!==false&&!s)if(t.is(":hidden")?l==="hide":l==="show"){t[l]();r()}else o.call(t[0],i,r);else if(i.mode==="none"){t[l]();r()}else o.call(t[0],i,n)}return e===false?this.each(n).each(r):this.queue(t,n).queue(t,r)},show:function(n){return function(e){if(E(e))return n.apply(this,arguments);else{var t=O.apply(this,arguments);t.mode="show";return this.effect.call(this,t)}}}(te.fn.show),hide:function(n){return function(e){if(E(e))return n.apply(this,arguments);else{var t=O.apply(this,arguments);t.mode="hide";return this.effect.call(this,t)}}}(te.fn.hide),toggle:function(n){return function(e){if(E(e)||typeof e==="boolean")return n.apply(this,arguments);else{var t=O.apply(this,arguments);t.mode="toggle";return this.effect.call(this,t)}}}(te.fn.toggle),cssUnit:function(e){var n=this.css(e),r=[];te.each(["em","px","%","pt"],function(e,t){if(n.indexOf(t)>0)r=[parseFloat(n),t]});return r},cssClip:function(e){if(e)return this.css("clip","rect("+e.top+"px "+e.right+"px "+e.bottom+"px "+e.left+"px)");return Q(this.css("clip"),this)},transfer:function(e,t){var n=te(this),r=te(e.to),i=r.css("position")==="fixed",o=te("body"),s=i?o.scrollTop():0,a=i?o.scrollLeft():0,l=r.offset(),c={top:l.top-s,left:l.left-a,height:r.innerHeight(),width:r.innerWidth()},u=n.offset(),d=te("
");d.appendTo("body").addClass(e.className).css({top:u.top-s,left:u.left-a,height:n.innerHeight(),width:n.innerWidth(),position:i?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove();if(typeof t==="function")t()})}}),te.fx.step.clip=function(e){if(!e.clipInit){e.start=te(e.elem).cssClip();if(typeof e.end==="string")e.end=Q(e.end,e.elem);e.clipInit=true}te(e.elem).cssClip({top:e.pos*(e.end.top-e.start.top)+e.start.top,right:e.pos*(e.end.right-e.start.right)+e.start.right,bottom:e.pos*(e.end.bottom-e.start.bottom)+e.start.bottom,left:e.pos*(e.end.left-e.start.left)+e.start.left})};var M={},ee=(te.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,e){M[e]=function(e){return Math.pow(e,t+2)}}),te.extend(M,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),te.each(M,function(e,t){te.easing["easeIn"+e]=t;te.easing["easeOut"+e]=function(e){return 1-t(1-e)};te.easing["easeInOut"+e]=function(e){return e<.5?t(e*2)/2:1-t(e*-2+2)/2}}),te.effects),ne=te.effects.define("blind","hide",function(e,t){var n={up:["bottom","top"],vertical:["bottom","top"],down:["top","bottom"],left:["right","left"],horizontal:["right","left"],right:["left","right"]},r=te(this),i=e.direction||"up",o=r.cssClip(),s={clip:te.extend({},o)},a=te.effects.createPlaceholder(r);s.clip[n[i][0]]=s.clip[n[i][1]];if(e.mode==="show"){r.cssClip(s.clip);if(a)a.css(te.effects.clipToBox(s));s.clip=o}if(a)a.animate(te.effects.clipToBox(s),e.duration,e.easing);r.animate(s,{queue:false,duration:e.duration,easing:e.easing,complete:t})}),re=te.effects.define("bounce",function(e,t){var n,r,i,o=te(this),s=e.mode,a=s==="hide",l=s==="show",c=e.direction||"up",u=e.distance,d=e.times||5,h=d*2+(l||a?1:0),f=e.duration/h,p=e.easing,m=c==="up"||c==="down"?"top":"left",g=c==="up"||c==="left",v=0,b=o.queue().length;te.effects.createPlaceholder(o);i=o.css(m);if(!u)u=o[m==="top"?"outerHeight":"outerWidth"]()/3;if(l){r={opacity:1};r[m]=i;o.css("opacity",0).css(m,g?-u*2:u*2).animate(r,f,p)}if(a)u=u/Math.pow(2,d-1);r={};r[m]=i;for(;v
").css({position:"absolute",visibility:"visible",left:-r*p,top:-n*m}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:p,height:m,left:i+(h?s*p:0),top:o+(h?a*m:0),opacity:h?0:1}).animate({left:i+(h?0:s*p),top:o+(h?0:a*m),opacity:h?1:0},e.duration||500,e.easing,v)}}function b(){u.css({visibility:"visible"});te(g).remove();t()}}),ae=te.effects.define("fade","toggle",function(e,t){var n=e.mode==="show";te(this).css("opacity",n?0:1).animate({opacity:n?1:0},{queue:false,duration:e.duration,easing:e.easing,complete:t})}),le=te.effects.define("fold","hide",function(t,e){var n=te(this),r=t.mode,i=r==="show",o=r==="hide",s=t.size||15,a=/([0-9]+)%/.exec(s),l=!!t.horizFirst,c=l?["right","bottom"]:["bottom","right"],u=t.duration/2,d=te.effects.createPlaceholder(n),h=n.cssClip(),f={clip:te.extend({},h)},p={clip:te.extend({},h)},m=[h[c[0]],h[c[1]]],g=n.queue().length;if(a)s=parseInt(a[1],10)/100*m[o?0:1];f.clip[c[0]]=s;p.clip[c[0]]=s;p.clip[c[1]]=0;if(i){n.cssClip(p.clip);if(d)d.css(te.effects.clipToBox(p));p.clip=h}n.queue(function(e){if(d)d.animate(te.effects.clipToBox(f),u,t.easing).animate(te.effects.clipToBox(p),u,t.easing);e()}).animate(f,u,t.easing).animate(p,u,t.easing).queue(e);te.effects.unshift(n,g,4)}),ce=te.effects.define("highlight","show",function(e,t){var n=te(this),r={backgroundColor:n.css("backgroundColor")};if(e.mode==="hide")r.opacity=0;te.effects.saveStyle(n);n.css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(r,{queue:false,duration:e.duration,easing:e.easing,complete:t})}),ue=te.effects.define("size",function(i,t){var e,o,n,r=te(this),s=["fontSize"],a=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],l=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],c=i.mode,u=c!=="effect",d=i.scale||"both",h=i.origin||["middle","center"],f=r.css("position"),p=r.position(),m=te.effects.scaledDimensions(r),g=i.from||m,v=i.to||te.effects.scaledDimensions(r,0);te.effects.createPlaceholder(r);if(c==="show"){n=g;g=v;v=n}o={from:{y:g.height/m.height,x:g.width/m.width},to:{y:v.height/m.height,x:v.width/m.width}};if(d==="box"||d==="both"){if(o.from.y!==o.to.y){g=te.effects.setTransition(r,a,o.from.y,g);v=te.effects.setTransition(r,a,o.to.y,v)}if(o.from.x!==o.to.x){g=te.effects.setTransition(r,l,o.from.x,g);v=te.effects.setTransition(r,l,o.to.x,v)}}if(d==="content"||d==="both")if(o.from.y!==o.to.y){g=te.effects.setTransition(r,s,o.from.y,g);v=te.effects.setTransition(r,s,o.to.y,v)}if(h){e=te.effects.getBaseline(h,m);g.top=(m.outerHeight-g.outerHeight)*e.y+p.top;g.left=(m.outerWidth-g.outerWidth)*e.x+p.left;v.top=(m.outerHeight-v.outerHeight)*e.y+p.top;v.left=(m.outerWidth-v.outerWidth)*e.x+p.left}delete g.outerHeight;delete g.outerWidth;r.css(g);if(d==="content"||d==="both"){a=a.concat(["marginTop","marginBottom"]).concat(s);l=l.concat(["marginLeft","marginRight"]);r.find("*[width]").each(function(){var e=te(this),t=te.effects.scaledDimensions(e),n={height:t.height*o.from.y,width:t.width*o.from.x,outerHeight:t.outerHeight*o.from.y,outerWidth:t.outerWidth*o.from.x},r={height:t.height*o.to.y,width:t.width*o.to.x,outerHeight:t.height*o.to.y,outerWidth:t.width*o.to.x};if(o.from.y!==o.to.y){n=te.effects.setTransition(e,a,o.from.y,n);r=te.effects.setTransition(e,a,o.to.y,r)}if(o.from.x!==o.to.x){n=te.effects.setTransition(e,l,o.from.x,n);r=te.effects.setTransition(e,l,o.to.x,r)}if(u)te.effects.saveStyle(e);e.css(n);e.animate(r,i.duration,i.easing,function(){if(u)te.effects.restoreStyle(e)})})}r.animate(v,{queue:false,duration:i.duration,easing:i.easing,complete:function(){var e=r.offset();if(v.opacity===0)r.css("opacity",g.opacity);if(!u){r.css("position",f==="static"?"relative":f).offset(e);te.effects.saveStyle(r)}t()}})}),de=te.effects.define("scale",function(e,t){var n=te(this),r=e.mode,i=parseInt(e.percent,10)||(parseInt(e.percent,10)===0?0:r!=="effect"?0:100),o=te.extend(true,{from:te.effects.scaledDimensions(n),to:te.effects.scaledDimensions(n,i,e.direction||"both"),origin:e.origin||["middle","center"]},e);if(e.fade){o.from.opacity=1;o.to.opacity=0}te.effects.effect.size.call(this,o,t)}),he=te.effects.define("puff","hide",function(e,t){var n=te.extend(true,{},e,{fade:true,percent:parseInt(e.percent,10)||150});te.effects.effect.scale.call(this,n,t)}),fe=te.effects.define("pulsate","show",function(e,t){var n=te(this),r=e.mode,i=r==="show",o=r==="hide",s=i||o,a=(e.times||5)*2+(s?1:0),l=e.duration/a,c=0,u=1,d=n.queue().length;if(i||!n.is(":visible")){n.css("opacity",0).show();c=1}for(;u0&&i.is(":visible")}if(/^(input|select|textarea|button|object)$/.test(a)){o=!e.disabled;if(o){s=te(e).closest("fieldset")[0];if(s)o=!s.disabled}}else if("a"===a)o=e.href||t;else o=t;return o&&te(e).is(":visible")&&ve(te(e))},te.extend(te.expr.pseudos,{focusable:function(e){return te.ui.focusable(e,te.attr(e,"tabindex")!=null)}});var be=te.ui.focusable,ye=te.fn._form=function(){return typeof this[0].form==="string"?this.closest("form"):te(this[0].form)},_e=te.ui.formResetMixin={_formResetHandler:function(){var t=te(this);setTimeout(function(){var e=t.data("ui-form-reset-instances");te.each(e,function(){this.refresh()})})},_bindFormResetHandler:function(){this.form=this.element._form();if(!this.form.length)return;var e=this.form.data("ui-form-reset-instances")||[];if(!e.length)this.form.on("reset.ui-form-reset",this._formResetHandler);e.push(this);this.form.data("ui-form-reset-instances",e)},_unbindFormResetHandler:function(){if(!this.form.length)return;var e=this.form.data("ui-form-reset-instances");e.splice(te.inArray(this,e),1);if(e.length)this.form.data("ui-form-reset-instances",e);else this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}};if(!te.expr.pseudos)te.expr.pseudos=te.expr[":"];if(!te.uniqueSort)te.uniqueSort=te.unique;if(!te.escapeSelector){var we=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;var xe=function(e,t){if(t){if(e==="\0")return"�";return e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" "}return"\\"+e};te.escapeSelector=function(e){return(e+"").replace(we,xe)}}if(!te.fn.even||!te.fn.odd)te.fn.extend({even:function(){return this.filter(function(e){return e%2===0})},odd:function(){return this.filter(function(e){return e%2===1})}});var Ce=te.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},ke=te.fn.labels=function(){var e,t,n,r,i;if(!this.length)return this.pushStack([]);if(this[0].labels&&this[0].labels.length)return this.pushStack(this[0].labels);r=this.eq(0).parents("label");n=this.attr("id");if(n){e=this.eq(0).parents().last();i=e.add(e.length?e.siblings():this.siblings());t="label[for='"+te.escapeSelector(n)+"']";r=r.add(i.find(t).addBack(t))}return this.pushStack(r)},Se=te.fn.scrollParent=function(e){var t=this.css("position"),n=t==="absolute",r=e?/(auto|scroll|hidden)/:/(auto|scroll)/,i=this.parents().filter(function(){var e=te(this);if(n&&e.css("position")==="static")return false;return r.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return t==="fixed"||!i.length?te(this[0].ownerDocument||document):i},De=te.extend(te.expr.pseudos,{tabbable:function(e){var t=te.attr(e,"tabindex"),n=t!=null;return(!n||t>=0)&&te.ui.focusable(e,n)}}),Te=te.fn.extend({uniqueId:function(){var e=0;return function(){return this.each(function(){if(!this.id)this.id="ui-id-"+ ++e})}}(),removeUniqueId:function(){return this.each(function(){if(/^ui-id-\d+$/.test(this.id))te(this).removeAttr("id")})}}),Oe=te.widget("ui.accordion",{version:"1.13.2",options:{active:0,animate:{},classes:{"ui-accordion-header":"ui-corner-top","ui-accordion-header-collapsed":"ui-corner-all","ui-accordion-content":"ui-corner-bottom"},collapsible:false,event:"click",header:function(e){return e.find("> li > :first-child").add(e.find("> :not(li)").even())},heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var e=this.options;this.prevShow=this.prevHide=te();this._addClass("ui-accordion","ui-widget ui-helper-reset");this.element.attr("role","tablist");if(!e.collapsible&&(e.active===false||e.active==null))e.active=0;this._processPanels();if(e.active<0)e.active+=this.headers.length;this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:!this.active.length?te():this.active.next()}},_createIcons:function(){var e,t,n=this.options.icons;if(n){e=te("");this._addClass(e,"ui-accordion-header-icon","ui-icon "+n.header);e.prependTo(this.headers);t=this.active.children(".ui-accordion-header-icon");this._removeClass(t,n.header)._addClass(t,null,n.activeHeader)._addClass(this.headers,"ui-accordion-icons")}},_destroyIcons:function(){this._removeClass(this.headers,"ui-accordion-icons");this.headers.children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeAttr("role");this.headers.removeAttr("role aria-expanded aria-selected aria-controls tabIndex").removeUniqueId();this._destroyIcons();e=this.headers.next().css("display","").removeAttr("role aria-hidden aria-labelledby").removeUniqueId();if(this.options.heightStyle!=="content")e.css("height","")},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="event"){if(this.options.event)this._off(this.headers,this.options.event);this._setupEvents(t)}this._super(e,t);if(e==="collapsible"&&!t&&this.options.active===false)this._activate(0);if(e==="icons"){this._destroyIcons();if(t)this._createIcons()}},_setOptionDisabled:function(e){this._super(e);this.element.attr("aria-disabled",e);this._toggleClass(null,"ui-state-disabled",!!e);this._toggleClass(this.headers.add(this.headers.next()),null,"ui-state-disabled",!!e)},_keydown:function(e){if(e.altKey||e.ctrlKey)return;var t=te.ui.keyCode,n=this.headers.length,r=this.headers.index(e.target),i=false;switch(e.keyCode){case t.RIGHT:case t.DOWN:i=this.headers[(r+1)%n];break;case t.LEFT:case t.UP:i=this.headers[(r-1+n)%n];break;case t.SPACE:case t.ENTER:this._eventHandler(e);break;case t.HOME:i=this.headers[0];break;case t.END:i=this.headers[n-1];break}if(i){te(e.target).attr("tabIndex",-1);te(i).attr("tabIndex",0);te(i).trigger("focus");e.preventDefault()}},_panelKeyDown:function(e){if(e.keyCode===te.ui.keyCode.UP&&e.ctrlKey)te(e.currentTarget).prev().trigger("focus")},refresh:function(){var e=this.options;this._processPanels();if(e.active===false&&e.collapsible===true||!this.headers.length){e.active=false;this.active=te()}else if(e.active===false)this._activate(0);else if(this.active.length&&!te.contains(this.element[0],this.active[0]))if(this.headers.length===this.headers.find(".ui-state-disabled").length){e.active=false;this.active=te()}else this._activate(Math.max(0,e.active-1));else e.active=this.headers.index(this.active);this._destroyIcons();this._refresh()},_processPanels:function(){var e=this.headers,t=this.panels;if(typeof this.options.header==="function")this.headers=this.options.header(this.element);else this.headers=this.element.find(this.options.header);this._addClass(this.headers,"ui-accordion-header ui-accordion-header-collapsed","ui-state-default");this.panels=this.headers.next().filter(":not(.ui-accordion-content-active)").hide();this._addClass(this.panels,"ui-accordion-content","ui-helper-reset ui-widget-content");if(t){this._off(e.not(this.headers));this._off(t.not(this.panels))}},_refresh:function(){var n,e=this.options,t=e.heightStyle,r=this.element.parent();this.active=this._findActive(e.active);this._addClass(this.active,"ui-accordion-header-active","ui-state-active")._removeClass(this.active,"ui-accordion-header-collapsed");this._addClass(this.active.next(),"ui-accordion-content-active");this.active.next().show();this.headers.attr("role","tab").each(function(){var e=te(this),t=e.uniqueId().attr("id"),n=e.next(),r=n.uniqueId().attr("id");e.attr("aria-controls",r);n.attr("aria-labelledby",t)}).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide();if(!this.active.length)this.headers.eq(0).attr("tabIndex",0);else this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"});this._createIcons();this._setupEvents(e.event);if(t==="fill"){n=r.height();this.element.siblings(":visible").each(function(){var e=te(this),t=e.css("position");if(t==="absolute"||t==="fixed")return;n-=e.outerHeight(true)});this.headers.each(function(){n-=te(this).outerHeight(true)});this.headers.next().each(function(){te(this).height(Math.max(0,n-te(this).innerHeight()+te(this).height()))}).css("overflow","auto")}else if(t==="auto"){n=0;this.headers.next().each(function(){var e=te(this).is(":visible");if(!e)te(this).show();n=Math.max(n,te(this).css("height","").height());if(!e)te(this).hide()}).height(n)}},_activate:function(e){var t=this._findActive(e)[0];if(t===this.active[0])return;t=t||this.active[0];this._eventHandler({target:t,currentTarget:t,preventDefault:te.noop})},_findActive:function(e){return typeof e==="number"?this.headers.eq(e):te()},_setupEvents:function(e){var n={keydown:"_keydown"};if(e)te.each(e.split(" "),function(e,t){n[t]="_eventHandler"});this._off(this.headers.add(this.headers.next()));this._on(this.headers,n);this._on(this.headers.next(),{keydown:"_panelKeyDown"});this._hoverable(this.headers);this._focusable(this.headers)},_eventHandler:function(e){var t,n,r=this.options,i=this.active,o=te(e.currentTarget),s=o[0]===i[0],a=s&&r.collapsible,l=a?te():o.next(),c=i.next(),u={oldHeader:i,oldPanel:c,newHeader:a?te():o,newPanel:l};e.preventDefault();if(s&&!r.collapsible||this._trigger("beforeActivate",e,u)===false)return;r.active=a?false:this.headers.index(o);this.active=s?te():o;this._toggle(u);this._removeClass(i,"ui-accordion-header-active","ui-state-active");if(r.icons){t=i.children(".ui-accordion-header-icon");this._removeClass(t,null,r.icons.activeHeader)._addClass(t,null,r.icons.header)}if(!s){this._removeClass(o,"ui-accordion-header-collapsed")._addClass(o,"ui-accordion-header-active","ui-state-active");if(r.icons){n=o.children(".ui-accordion-header-icon");this._removeClass(n,null,r.icons.header)._addClass(n,null,r.icons.activeHeader)}this._addClass(o.next(),"ui-accordion-content-active")}},_toggle:function(e){var t=e.newPanel,n=this.prevShow.length?this.prevShow:e.oldPanel;this.prevShow.add(this.prevHide).stop(true,true);this.prevShow=t;this.prevHide=n;if(this.options.animate)this._animate(t,n,e);else{n.hide();t.show();this._toggleComplete(e)}n.attr({"aria-hidden":"true"});n.prev().attr({"aria-selected":"false","aria-expanded":"false"});if(t.length&&n.length)n.prev().attr({tabIndex:-1,"aria-expanded":"false"});else if(t.length)this.headers.filter(function(){return parseInt(te(this).attr("tabIndex"),10)===0}).attr("tabIndex",-1);t.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(e,n,t){var r,i,o,s=this,a=0,l=e.css("box-sizing"),c=e.length&&(!n.length||e.index()",delay:300,options:{icons:{submenu:"ui-icon-caret-1-e"},items:"> *",menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element;this.mouseHandled=false;this.lastMousePosition={x:null,y:null};this.element.uniqueId().attr({role:this.options.role,tabIndex:0});this._addClass("ui-menu","ui-widget ui-widget-content");this._on({"mousedown .ui-menu-item":function(e){e.preventDefault();this._activateItem(e)},"click .ui-menu-item":function(e){var t=te(e.target);var n=te(te.ui.safeActiveElement(this.document[0]));if(!this.mouseHandled&&t.not(".ui-state-disabled").length){this.select(e);if(!e.isPropagationStopped())this.mouseHandled=true;if(t.has(".ui-menu").length)this.expand(e);else if(!this.element.is(":focus")&&n.closest(".ui-menu").length){this.element.trigger("focus",[true]);if(this.active&&this.active.parents(".ui-menu").length===1)clearTimeout(this.timer)}}},"mouseenter .ui-menu-item":"_activateItem","mousemove .ui-menu-item":"_activateItem",mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this._menuItems().first();if(!t)this.focus(e,n)},blur:function(t){this._delay(function(){var e=!te.contains(this.element[0],te.ui.safeActiveElement(this.document[0]));if(e)this.collapseAll(t)})},keydown:"_keydown"});this.refresh();this._on(this.document,{click:function(e){if(this._closeOnDocumentClick(e))this.collapseAll(e,true);this.mouseHandled=false}})},_activateItem:function(e){if(this.previousFilter)return;if(e.clientX===this.lastMousePosition.x&&e.clientY===this.lastMousePosition.y)return;this.lastMousePosition={x:e.clientX,y:e.clientY};var t=te(e.target).closest(".ui-menu-item"),n=te(e.currentTarget);if(t[0]!==n[0])return;if(n.is(".ui-state-active"))return;this._removeClass(n.siblings().children(".ui-state-active"),null,"ui-state-active");this.focus(e,n)},_destroy:function(){var e=this.element.find(".ui-menu-item").removeAttr("role aria-disabled"),t=e.children(".ui-menu-item-wrapper").removeUniqueId().removeAttr("tabIndex role aria-haspopup");this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeAttr("role aria-labelledby aria-expanded aria-hidden aria-disabled "+"tabIndex").removeUniqueId().show();t.children().each(function(){var e=te(this);if(e.data("ui-menu-submenu-caret"))e.remove()})},_keydown:function(e){var t,n,r,i,o=true;switch(e.keyCode){case te.ui.keyCode.PAGE_UP:this.previousPage(e);break;case te.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case te.ui.keyCode.HOME:this._move("first","first",e);break;case te.ui.keyCode.END:this._move("last","last",e);break;case te.ui.keyCode.UP:this.previous(e);break;case te.ui.keyCode.DOWN:this.next(e);break;case te.ui.keyCode.LEFT:this.collapse(e);break;case te.ui.keyCode.RIGHT:if(this.active&&!this.active.is(".ui-state-disabled"))this.expand(e);break;case te.ui.keyCode.ENTER:case te.ui.keyCode.SPACE:this._activate(e);break;case te.ui.keyCode.ESCAPE:this.collapse(e);break;default:o=false;n=this.previousFilter||"";i=false;r=e.keyCode>=96&&e.keyCode<=105?(e.keyCode-96).toString():String.fromCharCode(e.keyCode);clearTimeout(this.filterTimer);if(r===n)i=true;else r=n+r;t=this._filterMenuItems(r);t=i&&t.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):t;if(!t.length){r=String.fromCharCode(e.keyCode);t=this._filterMenuItems(r)}if(t.length){this.focus(e,t);this.previousFilter=r;this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)}else delete this.previousFilter}if(o)e.preventDefault()},_activate:function(e){if(this.active&&!this.active.is(".ui-state-disabled"))if(this.active.children("[aria-haspopup='true']").length)this.expand(e);else this.select(e)},refresh:function(){var e,t,n,r,i,o=this,s=this.options.icons.submenu,a=this.element.find(this.options.menus);this._toggleClass("ui-menu-icons",null,!!this.element.find(".ui-icon").length);n=a.filter(":not(.ui-menu)").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=te(this),t=e.prev(),n=te("").data("ui-menu-submenu-caret",true);o._addClass(n,"ui-menu-icon","ui-icon "+s);t.attr("aria-haspopup","true").prepend(n);e.attr("aria-labelledby",t.attr("id"))});this._addClass(n,"ui-menu","ui-widget ui-widget-content ui-front");e=a.add(this.element);t=e.find(this.options.items);t.not(".ui-menu-item").each(function(){var e=te(this);if(o._isDivider(e))o._addClass(e,"ui-menu-divider","ui-widget-content")});r=t.not(".ui-menu-item, .ui-menu-divider");i=r.children().not(".ui-menu").uniqueId().attr({tabIndex:-1,role:this._itemRole()});this._addClass(r,"ui-menu-item")._addClass(i,"ui-menu-item-wrapper");t.filter(".ui-state-disabled").attr("aria-disabled","true");if(this.active&&!te.contains(this.element[0],this.active[0]))this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(e,t){if(e==="icons"){var n=this.element.find(".ui-menu-icon");this._removeClass(n,null,this.options.icons.submenu)._addClass(n,null,t.submenu)}this._super(e,t)},_setOptionDisabled:function(e){this._super(e);this.element.attr("aria-disabled",String(e));this._toggleClass(null,"ui-state-disabled",!!e)},focus:function(e,t){var n,r,i;this.blur(e,e&&e.type==="focus");this._scrollIntoView(t);this.active=t.first();r=this.active.children(".ui-menu-item-wrapper");this._addClass(r,null,"ui-state-active");if(this.options.role)this.element.attr("aria-activedescendant",r.attr("id"));i=this.active.parent().closest(".ui-menu-item").children(".ui-menu-item-wrapper");this._addClass(i,null,"ui-state-active");if(e&&e.type==="keydown")this._close();else this.timer=this._delay(function(){this._close()},this.delay);n=t.children(".ui-menu");if(n.length&&e&&/^mouse/.test(e.type))this._startOpening(n);this.activeMenu=t.parent();this._trigger("focus",e,{item:t})},_scrollIntoView:function(e){var t,n,r,i,o,s;if(this._hasScroll()){t=parseFloat(te.css(this.activeMenu[0],"borderTopWidth"))||0;n=parseFloat(te.css(this.activeMenu[0],"paddingTop"))||0;r=e.offset().top-this.activeMenu.offset().top-t-n;i=this.activeMenu.scrollTop();o=this.activeMenu.height();s=e.outerHeight();if(r<0)this.activeMenu.scrollTop(i+r);else if(r+s>o)this.activeMenu.scrollTop(i+r-o+s)}},blur:function(e,t){if(!t)clearTimeout(this.timer);if(!this.active)return;this._removeClass(this.active.children(".ui-menu-item-wrapper"),null,"ui-state-active");this._trigger("blur",e,{item:this.active});this.active=null},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close();this._open(e)},this.delay)},_open:function(e){var t=te.extend({of:this.active},this.options.position);clearTimeout(this.timer);this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true");e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(t)},collapseAll:function(t,n){clearTimeout(this.timer);this.timer=this._delay(function(){var e=n?this.element:te(t&&t.target).closest(this.element.find(".ui-menu"));if(!e.length)e=this.element;this._close(e);this.blur(t);this._removeClass(e.find(".ui-state-active"),null,"ui-state-active");this.activeMenu=e},n?0:this.delay)},_close:function(e){if(!e)e=this.active?this.active.parent():this.element;e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false")},_closeOnDocumentClick:function(e){return!te(e.target).closest(".ui-menu").length},_isDivider:function(e){return!/[^\-\u2014\u2013\s]/.test(e.text())},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(t&&t.length){this._close();this.focus(e,t)}},expand:function(e){var t=this.active&&this._menuItems(this.active.children(".ui-menu")).first();if(t&&t.length){this._open(t.parent());this._delay(function(){this.focus(e,t)})}},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_menuItems:function(e){return(e||this.element).find(this.options.items).filter(".ui-menu-item")},_move:function(e,t,n){var r;if(this.active)if(e==="first"||e==="last")r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").last();else r=this.active[e+"All"](".ui-menu-item").first();if(!r||!r.length||!this.active)r=this._menuItems(this.activeMenu)[t]();this.focus(n,r)},nextPage:function(e){var t,n,r;if(!this.active){this.next(e);return}if(this.isLastItem())return;if(this._hasScroll()){n=this.active.offset().top;r=this.element.innerHeight();if(te.fn.jquery.indexOf("3.2.")===0)r+=this.element[0].offsetHeight-this.element.outerHeight();this.active.nextAll(".ui-menu-item").each(function(){t=te(this);return t.offset().top-n-r<0});this.focus(e,t)}else this.focus(e,this._menuItems(this.activeMenu)[!this.active?"first":"last"]())},previousPage:function(e){var t,n,r;if(!this.active){this.next(e);return}if(this.isFirstItem())return;if(this._hasScroll()){n=this.active.offset().top;r=this.element.innerHeight();if(te.fn.jquery.indexOf("3.2.")===0)r+=this.element[0].offsetHeight-this.element.outerHeight();this.active.prevAll(".ui-menu-item").each(function(){t=te(this);return t.offset().top-n+r>0});this.focus(e,t)}else this.focus(e,this._menuItems(this.activeMenu).first())},_hasScroll:function(){return this.element.outerHeight()",options:{appendTo:null,autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,liveRegionTimer:null,_create:function(){var n,r,i,e=this.element[0].nodeName.toLowerCase(),t=e==="textarea",o=e==="input";this.isMultiLine=t||!o&&this._isContentEditable(this.element);this.valueMethod=this.element[t||o?"val":"text"];this.isNewMenu=true;this._addClass("ui-autocomplete-input");this.element.attr("autocomplete","off");this._on(this.element,{keydown:function(e){if(this.element.prop("readOnly")){n=true;i=true;r=true;return}n=false;i=false;r=false;var t=te.ui.keyCode;switch(e.keyCode){case t.PAGE_UP:n=true;this._move("previousPage",e);break;case t.PAGE_DOWN:n=true;this._move("nextPage",e);break;case t.UP:n=true;this._keyEvent("previous",e);break;case t.DOWN:n=true;this._keyEvent("next",e);break;case t.ENTER:if(this.menu.active){n=true;e.preventDefault();this.menu.select(e)}break;case t.TAB:if(this.menu.active)this.menu.select(e);break;case t.ESCAPE:if(this.menu.element.is(":visible")){if(!this.isMultiLine)this._value(this.term);this.close(e);e.preventDefault()}break;default:r=true;this._searchTimeout(e);break}},keypress:function(e){if(n){n=false;if(!this.isMultiLine||this.menu.element.is(":visible"))e.preventDefault();return}if(r)return;var t=te.ui.keyCode;switch(e.keyCode){case t.PAGE_UP:this._move("previousPage",e);break;case t.PAGE_DOWN:this._move("nextPage",e);break;case t.UP:this._keyEvent("previous",e);break;case t.DOWN:this._keyEvent("next",e);break}},input:function(e){if(i){i=false;e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null;this.previous=this._value()},blur:function(e){clearTimeout(this.searching);this.close(e);this._change(e)}});this._initSource();this.menu=te("