if(typeof PhpDebugBar>"u"){var PhpDebugBar={};PhpDebugBar.$=jQuery}(function(e){PhpDebugBar.Widgets={};var a=PhpDebugBar.utils.makecsscls("phpdebugbar-widgets-"),v=PhpDebugBar.Widgets.htmlize=function(t){return t.replace(/\n/g,"<br>").replace(/\s/g," ")},y=PhpDebugBar.Widgets.renderValue=function(t,i){return typeof t!="string"?i?v(JSON.stringify(t,void 0,2)):JSON.stringify(t):t},W=PhpDebugBar.Widgets.highlight=function(t,i){return typeof t=="string"?typeof hljs>"u"?v(t):i&&hljs.getLanguage(i)?hljs.highlight(t,{language:i}).value:hljs.highlightAuto(t).value:(typeof hljs=="object"&&t.each(function(s,n){hljs.highlightElement(n)}),t)},C=PhpDebugBar.Widgets.createCodeBlock=function(t,i,s,n){var l=e("<pre />").addClass(a("code-block")),d=e("<code />").text(t+`
`).appendTo(l);if(i&&d.addClass("language-"+i),W(d).removeClass("hljs"),!isNaN(parseFloat(s))){var r=t.split(`
`).length,o=e("<ul />").prependTo(l);l.children().addClass(a("numbered-code"));for(var h=s;h<s+r;h++){var c=e("<li />").text(h).appendTo(o);n===h&&c.addClass(a("highlighted-line")).append("<span> </span>")}}return l},w=PhpDebugBar.utils.getDictValue=function(t,i,s){for(var n=t,l=i.split("."),d=0;d<l.length;d++){if(!n[l[d]])return s;n=n[l[d]]}return n},k=PhpDebugBar.Widgets.ListWidget=PhpDebugBar.Widget.extend({tagName:"ul",className:a("list"),initialize:function(t){t.itemRenderer||(t.itemRenderer=this.itemRenderer),this.set(t)},render:function(){this.bindAttr(["itemRenderer","data"],function(){if(this.$el.empty(),!!this.has("data"))for(var t=this.get("data"),i=0;i<t.length;i++){var s=e("<li />").addClass(a("list-item")).appendTo(this.$el);this.get("itemRenderer")(s,t[i])}})},itemRenderer:function(t,i){t.html(y(i))}}),_=PhpDebugBar.Widgets.KVListWidget=k.extend({tagName:"dl",className:a("kvlist"),render:function(){this.bindAttr(["itemRenderer","data"],function(){if(this.$el.empty(),!!this.has("data")){var t=this;e.each(this.get("data"),function(i,s){var n=e("<dt />").addClass(a("key")).appendTo(t.$el),l=e("<dd />").addClass(a("value")).appendTo(t.$el);t.get("itemRenderer")(n,l,i,s)})}})},itemRenderer:function(t,i,s,n){t.text(s),i.html(v(n))}}),A=PhpDebugBar.Widgets.VariableListWidget=_.extend({className:a("kvlist varlist"),itemRenderer:function(t,i,s,n){e("<span />").attr("title",s).text(s).appendTo(t);var l=n&&n.value||n;l&&l.length>100&&(l=l.substr(0,100)+"...");var d=null;i.text(l).click(function(){i.hasClass(a("pretty"))?i.text(l).removeClass(a("pretty")):(d=d||C(n),i.addClass(a("pretty")).empty().append(d))})}}),S=PhpDebugBar.Widgets.HtmlVariableListWidget=_.extend({className:a("kvlist htmlvarlist"),itemRenderer:function(t,i,s,n){if(e("<span />").attr("title",e("<i />").html(s??"").text()).html(s??"").appendTo(t),i.html(n&&n.value||n),n&&n.xdebug_link){var l=e("<span />").addClass(a("filename")).text(n.xdebug_link.filename+(n.xdebug_link.line?"#"+n.xdebug_link.line:""));n.xdebug_link&&(n.xdebug_link.ajax?e('<a title="'+n.xdebug_link.url+'"></a>').on("click",function(){e.ajax(n.xdebug_link.url)}).addClass(a("editor-link")).appendTo(l):e('<a href="'+n.xdebug_link.url+'"></a>').addClass(a("editor-link")).appendTo(l)),l.appendTo(i)}}}),N=PhpDebugBar.Widgets.TableVariableListWidget=PhpDebugBar.Widget.extend({tagName:"div",className:a("tablevarlist"),render:function(){this.bindAttr("data",function(t){if(this.$el.empty(),!!this.has("data")){this.$table=e("<table />").addClass(a("tablevar")).appendTo(this.$el);var i=e("<tr />").addClass(a("header")).append("<td />").appendTo(this.$table),s=t.key_map||{value:"Value"};Array.isArray(s)&&(s=Object.fromEntries(s.map(d=>[d,null]))),e.each(s,function(d,r){var o=e("<td />").text(r??d).appendTo(i);t.badges&&t.badges[d]&&e("<span />").text(t.badges[d]).addClass(a("badge")).appendTo(o)});var n=this;if(e.each(t.data,function(d,r){var o=e("<tr />").addClass(a("item")).appendTo(n.$table);if(e("<td />").addClass(a("key")).text(d).appendTo(o),typeof r!="object"||r===null){e("<td />").addClass(a("value")).text(r??"").appendTo(o);return}if(e.each(s,function(c){e("<td />").addClass(a("value")).text(r[c]??"").appendTo(o)}),r.xdebug_link){var h=e("<span />").addClass(a("filename")).text(r.xdebug_link.filename+(r.xdebug_link.line?"#"+r.xdebug_link.line:"")).appendTo(e("<td />").addClass(a("editor")).appendTo(o));r.xdebug_link.ajax?e('<a title="'+r.xdebug_link.url+'"></a>').on("click",function(){e.ajax(r.xdebug_link.url)}).addClass(a("editor-link")).appendTo(h):e('<a href="'+r.xdebug_link.url+'"></a>').addClass(a("editor-link")).appendTo(h),t.xdebug_link||(t.xdebug_link=!0,i.append(e("<td />")))}}),!!t.summary){var l=e("<tr />").addClass(a("summary")).appendTo(n.$table);e("<td />").addClass(a("key")).appendTo(l),typeof t.summary!="object"||t.summary===null?e("<td />").addClass(a("value")).text(t.summary??"").appendTo(l):e.each(s,function(d){e("<td />").addClass(a("value")).text(t.summary[d]??"").appendTo(l)}),t.xdebug_link&&e("<td />").appendTo(l)}}})}}),E=PhpDebugBar.Widgets.IFrameWidget=PhpDebugBar.Widget.extend({tagName:"iframe",className:a("iframe"),render:function(){this.$el.attr({seamless:"seamless",border:"0",width:"100%",height:"100%"}),this.bindAttr("data",function(t){this.$el.attr("src",t)})}}),F=PhpDebugBar.Widgets.MessagesWidget=PhpDebugBar.Widget.extend({className:a("messages"),render:function(){var t=this;this.$list=new k({itemRenderer:function(i,s){if(s.message_html)var n=e("<span />").addClass(a("value")).html(s.message_html).appendTo(i);else{var l=s.message;l.length>100&&(l=l.substr(0,100)+"...");var n=e("<span />").addClass(a("value")).text(l).appendTo(i);if(!s.is_string||s.message.length>100){var d=s.message;s.is_string||(d=null),i.css("cursor","pointer").click(function(){if(window.getSelection().type=="Range")return"";n.hasClass(a("pretty"))?n.text(l).removeClass(a("pretty")):(d=d||C(s.message,"php"),n.addClass(a("pretty")).empty().append(d))})}}if(s.xdebug_link){var r=e("<span />").addClass(a("filename")).text(s.xdebug_link.filename+(s.xdebug_link.line?"#"+s.xdebug_link.line:""));s.xdebug_link&&(s.xdebug_link.ajax?e('<a title="'+s.xdebug_link.url+'"></a>').on("click",function(){e.ajax(s.xdebug_link.url)}).addClass(a("editor-link")).appendTo(r):e('<a href="'+s.xdebug_link.url+'"></a>').addClass(a("editor-link")).appendTo(r)),r.prependTo(i)}s.collector&&e("<span />").addClass(a("collector")).text(s.collector).prependTo(i),s.label&&(n.addClass(a(s.label)),e("<span />").addClass(a("label")).text(s.label).prependTo(i))}}),this.$list.$el.appendTo(this.$el),this.$toolbar=e('<div><i class="phpdebugbar-fa phpdebugbar-fa-search"></i></div>').addClass(a("toolbar")).appendTo(this.$el),e('<input type="text" name="search" aria-label="Search" placeholder="Search" />').on("change",function(){t.set("search",this.value)}).appendTo(this.$toolbar),this.bindAttr("data",function(i){this.set({excludelabel:[],excludecollector:[],search:""}),this.$toolbar.find(a(".filter")).remove();var s=[],n=[],l=this,d=function(r,o){e("<a />").addClass(a("filter")).addClass(a(r)).text(o).attr("rel",o).on("click",function(){l.onFilterClick(this,r)}).appendTo(l.$toolbar)};i.forEach(function(r){s.includes(r.label||"none")||s.push(r.label||"none"),n.includes(r.collector||"none")||n.push(r.collector||"none")}),s.length>1&&s.forEach(r=>d("label",r)),n.length!==1&&(e("<a />").addClass(a("filter")).css("visibility","hidden").appendTo(l.$toolbar),n.forEach(r=>d("collector",r)))}),this.bindAttr(["excludelabel","excludecollector","search"],function(){var i=this.get("excludelabel")||[],s=this.get("excludecollector")||[],n=this.get("search"),l=!1,d=[];n&&n===n.toLowerCase()&&(l=!0),this.get("data").forEach(function(r){var o=l?r.message.toLowerCase():r.message;!i.includes(r.label||void 0)&&!s.includes(r.collector||void 0)&&(!n||o.indexOf(n)>-1)&&d.push(r)}),this.$list.set("data",d)})},onFilterClick:function(t,i){e(t).toggleClass(a("excluded"));var s=[];this.$toolbar.find(a(".filter")+a(".excluded")+a("."+i)).each(function(){s.push(this.rel==="none"||!this.rel?void 0:this.rel)}),this.set("exclude"+i,s)}}),L=PhpDebugBar.Widgets.TimelineWidget=PhpDebugBar.Widget.extend({tagName:"ul",className:a("timeline"),render:function(){this.bindAttr("data",function(t){var i=function(p){return p<.001?(p*1e6).toFixed()+"\u03BCs":p<.1?(p*1e3).toFixed(2)+"ms":p<1?(p*1e3).toFixed()+"ms":p.toFixed(2)+"s"},s=function(g){if(g===0||g===null)return"0B";var j=g<0?"-":"",g=Math.abs(g),T=Math.log(g)/Math.log(1024),R=["B","KB","MB","GB","TB"];return j+Math.round(Math.pow(1024,T-Math.floor(T))*100)/100+R[Math.floor(T)]};if(this.$el.empty(),t.measures){for(var n={},l=0;l<t.measures.length;l++){var d=t.measures[l],r=d.group||d.label;n[r]||(n[r]={count:0,duration:0,memory:0}),n[r].count+=1,n[r].duration+=d.duration,n[r].memory+=d.memory||0;var o=e("<div />").addClass(a("measure")),h=e("<li />"),c=(d.relative_start*100/t.duration).toFixed(2),u=Math.min((d.duration*100/t.duration).toFixed(2),100-c);if(o.append(e("<span />").addClass(a("value")).css({left:c+"%",width:u+"%"})),o.append(e("<span />").addClass(a("label")).text(d.label.replace(/\s+/g," ")+(d.duration?" ("+d.duration_str+(d.memory?"/"+d.memory_str:"")+")":""))),d.collector&&e("<span />").addClass(a("collector")).text(d.collector).appendTo(o),o.appendTo(h),this.$el.append(h),d.params&&!e.isEmptyObject(d.params)){var x=e('<table><tr><th colspan="2">Params</th></tr></table>').hide().addClass(a("params")).appendTo(h);for(var m in d.params)typeof d.params[m]!="function"&&x.append('<tr><td class="'+a("name")+'">'+m+'</td><td class="'+a("value")+'"><pre><code>'+d.params[m]+"</code></pre></td></tr>");h.css("cursor","pointer").click(function(){if(window.getSelection().type=="Range")return"";var p=e(this).find("table");p.is(":visible")?p.hide():p.show()}).on("click",".sf-dump",function(p){p.stopPropagation()})}}n=e.map(n,function(p,f){return{label:f,data:p}}).sort(function(p,f){return f.data.duration-p.data.duration});var b=e("<table></table>").addClass(a("params"));e.each(n,function(p,f){u=Math.min((f.data.duration*100/t.duration).toFixed(2),100),b.append('<tr><td class="'+a("name")+'">'+f.data.count+" x "+e("<i />").text(f.label.replace(/\s+/g," ")).html()+" ("+u+'%)</td><td class="'+a("value")+'"><div class="'+a("measure")+'"><span class="'+a("value")+'"></span><span class="'+a("label")+'">'+i(f.data.duration)+(f.data.memory?"/"+s(f.data.memory):"")+"</span></div></td></tr>"),b.find("span."+a("value")+":last").css({width:u+"%"})}),this.$el.append("<li/>").find("li:last").append(b)}})}}),M=PhpDebugBar.Widgets.ExceptionsWidget=PhpDebugBar.Widget.extend({className:a("exceptions"),render:function(){this.$list=new k({itemRenderer:function(t,i){if(e("<span />").addClass(a("message")).text(i.message).appendTo(t),i.file){var s=e("<span />").addClass(a("filename")).text(i.file+"#"+i.line);i.xdebug_link&&(i.xdebug_link.ajax?e('<a title="'+i.xdebug_link.url+'"></a>').on("click",function(){fetch(i.xdebug_link.url)}).addClass(a("editor-link")).appendTo(s):e('<a href="'+i.xdebug_link.url+'"></a>').addClass(a("editor-link")).appendTo(s)),s.appendTo(t)}if(i.type&&e("<span />").addClass(a("type")).text(i.type).appendTo(t),i.surrounding_lines){var n=i.line-3<=0?1:i.line-3,l=C(i.surrounding_lines.join(""),"php",n,i.line).addClass(a("file")).appendTo(t);i.stack_trace_html||t.click(function(){l.is(":visible")?l.hide():l.show()})}if(i.stack_trace_html){var d=e("<span />").addClass(a("filename")).html(i.stack_trace_html);d.find('samp[data-depth="1"]').removeClass("sf-dump-expanded").addClass("sf-dump-compact").parent().find(">.sf-dump-note").html((r,o)=>o.replace(/^array:/,'<span class="sf-dump-key">Stack Trace:</span> ')+" files"),d.appendTo(t)}else i.stack_trace&&i.stack_trace.split(`
`).forEach(function(r){var o=e("<div />");e("<span />").addClass(a("filename")).text(r).appendTo(o),o.appendTo(t)})}}),this.$list.$el.appendTo(this.$el),this.bindAttr("data",function(t){this.$list.set("data",t),t.length==1&&this.$list.$el.children().first().find(a(".file")).show()})}}),V=PhpDebugBar.Widgets.DatasetWidget=PhpDebugBar.Widget.extend({initialize:function(t){t.itemRenderer||(t.itemRenderer=this.itemRenderer),this.set(t),this.set("autoshow",null),this.set("id",null),this.set("sort",localStorage.getItem("debugbar-history-sort")||"asc"),this.$el.addClass(a("dataset-history")),this.renderHead()},renderHead:function(){this.$el.empty(),this.$actions=e("<div />").addClass(a("dataset-actions")).appendTo(this.$el);var t=this,i=t.get("debugbar");this.$autoshow=e("<input type=checkbox>").on("click",function(){i.ajaxHandler&&i.ajaxHandler.setAutoShow(e(this).is(":checked")),i.controls.__settings&&i.controls.__settings.get("widget").set("autoshow",this.autoShow)}),e("<label>Autoshow</label>").append(this.$autoshow).appendTo(this.$actions),this.$clearbtn=e("<a>Clear</a>").appendTo(this.$actions).on("click",function(){t.$table.empty()}),this.$showBtn=e("<a>Show all</a>").appendTo(this.$actions).on("click",function(){t.searchInput.val(null),t.methodInput.val(null),t.set("search",null),t.set("method",null)}),this.methodInput=e('<select name="method" style="width:100px"><option>(method)</option><option>GET</option><option>POST</option><option>PUT</option><option>DELETE</option></select>').on("change",function(){t.set("method",this.value)}).appendTo(this.$actions),this.searchInput=e('<input type="text" name="search" aria-label="Search" placeholder="Search" />').on("input",function(){t.set("search",this.value)}).appendTo(this.$actions),this.$table=e("<tbody />"),e("<table/>").append(e("<thead/>").append(e("<tr/>").append(e("<th></th>").css("width","30px")).append(e("<th>Date \u2195</th>").css("width","175px").click(function(){t.set("sort",t.get("sort")==="asc"?"desc":"asc"),localStorage.setItem("debugbar-history-sort",t.get("sort"))})).append(e("<th>Method</th>").css("width","80px")).append(e("<th>URL</th>")).append(e('<th width="40%">Data</th>')))).append(this.$table).appendTo(this.$el)},renderDatasets:function(){this.$table.empty();var t=this;e.each(this.get("data"),function(i,s){s.__meta&&t.get("itemRenderer")(t,s)})},render:function(){this.bindAttr("data",function(){if(this.get("autoshow")===null&&this.get("debugbar").ajaxHandler&&this.set("autoshow",this.get("debugbar").ajaxHandler.autoShow),!!this.has("data")){var t=this.get("data"),i=t[Object.keys(t)[Object.keys(t).length-1]];i.__meta&&this.get("itemRenderer")(this,i)}}),this.bindAttr(["itemRenderer","search","method","sort"],function(){this.renderDatasets()}),this.bindAttr("autoshow",function(){var t=this.get("autoshow");this.$autoshow.prop("checked",t)}),this.bindAttr("id",function(){var t=this.get("id");this.$table.find("."+a("active")).removeClass(a("active")),this.$table.find("tr[data-id="+t+"]").addClass(a("active"))})},itemRenderer:function(t,i){var s=i.__meta,n=e("<td />"),l=e("<tr />");t.get("sort")==="asc"?l.appendTo(t.$table):l.prependTo(t.$table);var d=function(){var c=t.get("debugbar");c.showDataSet(s.id,c.datesetTitleFormater.format("",i,s.suffix,s.nb)),t.$table.find("."+a("active")).removeClass(a("active")),l.addClass(a("active")),e(this).data("tab")&&c.showTab(e(this).data("tab"))};l.attr("data-id",s.id).append(e("<td>#"+s.nb+"</td>").click(d)).append(e("<td>"+s.datetime+"</td>").click(d)).append(e("<td>"+s.method+"</td>").click(d)).append(e("<td />").append(s.uri+(s.suffix?" "+s.suffix:"")).click(d)).css("cursor","pointer").addClass(a("table-row"));var r=t.get("debugbar");e.each(r.dataMap,function(c,u){var x=w(i,u[0],u[1]);if(c.indexOf(":")!=-1)if(c=c.split(":"),c[1]==="badge"&&x>0){var m=r.getControl(c[0]),b=e("<a>").attr("title",m.get("title")).data("tab",c[0]);m.$icon&&b.append(r.getControl(c[0]).$icon.clone()),m.$badge&&b.append(r.getControl(c[0]).$badge.clone().css("display","inline-block").text(x)),b.appendTo(n).click(d)}else c[1]==="tooltip"&&r.getControl(c[0]).set("tooltip",x)}),l.append(n),r.activeDatasetId===s.id&&l.addClass(a("active"));var o=t.get("search"),h=t.get("method");(o&&s.uri.indexOf(o)==-1||h&&s.method!==h)&&l.hide()}})})(PhpDebugBar.$);