@holoviz/panel 1.8.5 → 1.8.6

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.
Files changed (33) hide show
  1. package/dist/bundled/deckglplot/@deck.gl/carto@^9.1.14/dist.min.js +3 -3
  2. package/dist/bundled/deckglplot/maplibre-gl/dist/maplibre-gl.js +3 -3
  3. package/dist/bundled/deckglplot/maplibre-gl/dist/maplibre-gl.js.map +1 -1
  4. package/dist/bundled/filedropper/filepond@^4/dist/filepond.css +1 -1
  5. package/dist/bundled/filedropper/filepond@^4/dist/filepond.min.js +2 -2
  6. package/dist/bundled/notificationarea/panel/1.8.6/dist/bundled/font-awesome/css/all.min.css +2 -0
  7. package/dist/bundled/panel/1.8.6/dist/bundled/bootstrap5/css/bootstrap.min.css +2 -0
  8. package/dist/bundled/panel/1.8.6/dist/bundled/bootstrap5/js/bootstrap.bundle.min.js +2 -0
  9. package/dist/bundled/panel/1.8.6/dist/bundled/font-awesome/css/all.min.css +2 -0
  10. package/dist/bundled/panel/1.8.6/dist/bundled/jquery/jquery.min.js +2 -0
  11. package/dist/lib/models/card.d.ts +8 -0
  12. package/dist/lib/models/card.js +65 -5
  13. package/dist/lib/models/card.js.map +1 -1
  14. package/dist/lib/models/feed.js +1 -1
  15. package/dist/lib/models/feed.js.map +1 -1
  16. package/dist/lib/models/file_dropper.d.ts +1 -0
  17. package/dist/lib/models/file_dropper.js +139 -2
  18. package/dist/lib/models/file_dropper.js.map +1 -1
  19. package/dist/lib/models/react_component.d.ts +4 -0
  20. package/dist/lib/models/react_component.js +89 -15
  21. package/dist/lib/models/react_component.js.map +1 -1
  22. package/dist/lib/models/tabulator.js +1 -1
  23. package/dist/lib/models/tabulator.js.map +1 -1
  24. package/dist/panel.js +347 -76
  25. package/dist/panel.js.map +1 -1
  26. package/dist/panel.json +1 -1
  27. package/dist/panel.min.js +11 -11
  28. package/package.json +2 -2
  29. package/dist/bundled/notificationarea/panel/1.8.5/dist/bundled/font-awesome/css/all.min.css +0 -2
  30. package/dist/bundled/panel/1.8.5/dist/bundled/bootstrap5/css/bootstrap.min.css +0 -2
  31. package/dist/bundled/panel/1.8.5/dist/bundled/bootstrap5/js/bootstrap.bundle.min.js +0 -2
  32. package/dist/bundled/panel/1.8.5/dist/bundled/font-awesome/css/all.min.css +0 -2
  33. package/dist/bundled/panel/1.8.5/dist/bundled/jquery/jquery.min.js +0 -2
package/dist/panel.min.js CHANGED
@@ -43,7 +43,7 @@
43
43
  })
44
44
  ({
45
45
  "4e90918c0a": function _(e,s,t,b,o){b();const i=e("tslib").__importStar(e("2fe1822b2b"));t.Panel=i;(0,e("@bokehjs/base").register_models)(i)},
46
- "2fe1822b2b": function _(e,t,a,o,c){o(),a.VizzuChart=a.VideoStream=a.Video=a.VegaPlot=a.TrendIndicator=a.TooltipIcon=a.ToggleIcon=void 0;const d=e("tslib");c("AcePlot",e("78ccb7a2c5").AcePlot),c("AnyWidgetComponent",e("1f663ffe94").AnyWidgetComponent),c("Audio",e("fd59c985b3").Audio),c("BrowserInfo",e("5a16cc23e6").BrowserInfo),c("Button",e("1db93211cd").Button),c("ButtonIcon",e("1738ddeb3a").ButtonIcon),c("ClickableIcon",e("6c7fbea0ef").ClickableIcon),c("Card",e("d7035097d8").Card),c("CheckboxButtonGroup",e("51fbe9e2d0").CheckboxButtonGroup),c("ChatAreaInput",e("27a077673d").ChatAreaInput),c("Column",e("b273e5b2fb").Column),c("CommManager",e("1bec1b1fcc").CommManager),c("CustomSelect",e("92bbd30bd1").CustomSelect),c("CustomMultiSelect",e("27b5580835").CustomMultiSelect),c("DataTabulator",e("d446ec1ed8").DataTabulator),c("DatetimePicker",e("100965d6f3").DatetimePicker),c("DatetimeSlider",e("c97cc0eade").DatetimeSlider),c("DeckGLPlot",e("01df2ec63b").DeckGLPlot),c("DiscretePlayer",e("0dca2cd4f6").DiscretePlayer),c("ECharts",e("1da56f3c52").ECharts),c("Feed",e("4cfe0841a5").Feed),c("FileDownload",e("84a13dddfb").FileDownload),c("FileDropper",e("e8b7476f90").FileDropper),c("HTML",e("4c04683fdc").HTML),c("IPyWidget",e("8a8089cbf3").IPyWidget),c("JSON",e("245cd3cfde").JSON),c("JSONEditor",e("a123a88e31").JSONEditor),c("KaTeX",e("f672d71a9f").KaTeX),c("Location",e("bd8e0fe48b").Location),c("MathJax",e("d889a68424").MathJax),c("Modal",e("8c62aa80d9").Modal),c("PDF",e("f87ad1873c").PDF),c("Perspective",e("29a0b0da9a").Perspective),c("Player",e("96e805ccb5").Player),c("PlotlyPlot",e("7d9124b744").PlotlyPlot),c("Progress",e("b1f4d68596").Progress),c("QuillInput",e("f6d86c7342").QuillInput),c("RadioButtonGroup",e("25e2d7c208").RadioButtonGroup),c("ReactComponent",e("1170146660").ReactComponent),c("ReactiveHTML",e("d5752cda5a").ReactiveHTML),c("ReactiveESM",e("d92390e7cb").ReactiveESM),c("SingleSelect",e("4155401209").SingleSelect),c("SpeechToText",e("5ac2cab0ab").SpeechToText),c("State",e("92822cb73a").State),c("Tabs",e("fffb4344f7").Tabs),c("Terminal",e("a961b5ae5e").Terminal),c("TextAreaInput",e("b7d595d74a").TextAreaInput),c("TextInput",e("8be416b160").TextInput),c("TextToSpeech",e("a04eb51988").TextToSpeech),c("TimePicker",e("1afcab4e45").TimePicker),c("ToggleIcon",e("ad985f285e").ToggleIcon),c("TooltipIcon",e("ae3a172647").TooltipIcon),c("TrendIndicator",e("29d55a28a9").TrendIndicator),c("VegaPlot",e("119dc23765").VegaPlot),c("Video",e("79dc37b888").Video),c("VideoStream",e("f8afc4e661").VideoStream),c("VizzuChart",e("1f7bc1f95b").VizzuChart),d.__exportStar(e("c51f25e2a7"),a)},
46
+ "2fe1822b2b": function _(e,t,a,o,c){o(),a.VizzuChart=a.VideoStream=a.Video=a.VegaPlot=a.TrendIndicator=a.TooltipIcon=a.ToggleIcon=void 0;const d=e("tslib");c("AcePlot",e("78ccb7a2c5").AcePlot),c("AnyWidgetComponent",e("1f663ffe94").AnyWidgetComponent),c("Audio",e("fd59c985b3").Audio),c("BrowserInfo",e("5a16cc23e6").BrowserInfo),c("Button",e("1db93211cd").Button),c("ButtonIcon",e("1738ddeb3a").ButtonIcon),c("ClickableIcon",e("6c7fbea0ef").ClickableIcon),c("Card",e("25fcfb521e").Card),c("CheckboxButtonGroup",e("51fbe9e2d0").CheckboxButtonGroup),c("ChatAreaInput",e("27a077673d").ChatAreaInput),c("Column",e("b273e5b2fb").Column),c("CommManager",e("1bec1b1fcc").CommManager),c("CustomSelect",e("92bbd30bd1").CustomSelect),c("CustomMultiSelect",e("27b5580835").CustomMultiSelect),c("DataTabulator",e("8cfbb15960").DataTabulator),c("DatetimePicker",e("100965d6f3").DatetimePicker),c("DatetimeSlider",e("c97cc0eade").DatetimeSlider),c("DeckGLPlot",e("01df2ec63b").DeckGLPlot),c("DiscretePlayer",e("0dca2cd4f6").DiscretePlayer),c("ECharts",e("1da56f3c52").ECharts),c("Feed",e("f9c84aaf3d").Feed),c("FileDownload",e("84a13dddfb").FileDownload),c("FileDropper",e("8531319d94").FileDropper),c("HTML",e("4c04683fdc").HTML),c("IPyWidget",e("8a8089cbf3").IPyWidget),c("JSON",e("245cd3cfde").JSON),c("JSONEditor",e("a123a88e31").JSONEditor),c("KaTeX",e("f672d71a9f").KaTeX),c("Location",e("bd8e0fe48b").Location),c("MathJax",e("d889a68424").MathJax),c("Modal",e("8c62aa80d9").Modal),c("PDF",e("f87ad1873c").PDF),c("Perspective",e("29a0b0da9a").Perspective),c("Player",e("96e805ccb5").Player),c("PlotlyPlot",e("7d9124b744").PlotlyPlot),c("Progress",e("b1f4d68596").Progress),c("QuillInput",e("f6d86c7342").QuillInput),c("RadioButtonGroup",e("25e2d7c208").RadioButtonGroup),c("ReactComponent",e("d42fdf93ec").ReactComponent),c("ReactiveHTML",e("d5752cda5a").ReactiveHTML),c("ReactiveESM",e("d92390e7cb").ReactiveESM),c("SingleSelect",e("4155401209").SingleSelect),c("SpeechToText",e("5ac2cab0ab").SpeechToText),c("State",e("92822cb73a").State),c("Tabs",e("fffb4344f7").Tabs),c("Terminal",e("a961b5ae5e").Terminal),c("TextAreaInput",e("b7d595d74a").TextAreaInput),c("TextInput",e("8be416b160").TextInput),c("TextToSpeech",e("a04eb51988").TextToSpeech),c("TimePicker",e("1afcab4e45").TimePicker),c("ToggleIcon",e("ad985f285e").ToggleIcon),c("TooltipIcon",e("ae3a172647").TooltipIcon),c("TrendIndicator",e("29d55a28a9").TrendIndicator),c("VegaPlot",e("119dc23765").VegaPlot),c("Video",e("79dc37b888").Video),c("VideoStream",e("f8afc4e661").VideoStream),c("VizzuChart",e("1f7bc1f95b").VizzuChart),d.__exportStar(e("c51f25e2a7"),a)},
47
47
  "78ccb7a2c5": function _(e,t,i,o,s){var n;o();const d=e("@bokehjs/core/dom"),_=e("9b11ce01a3"),a=e("a3669a897a");class h extends _.HTMLBoxView{connect_signals(){super.connect_signals();const{code:e,theme:t,language:i,filename:o,print_margin:s,annotations:n,soft_tabs:d,indent:_,readonly:a}=this.model.properties;this.on_change(e,(()=>this._update_code_from_model())),this.on_change(t,(()=>this._update_theme())),this.on_change(i,(()=>this._update_language())),this.on_change(o,(()=>this._update_filename())),this.on_change(s,(()=>this._update_print_margin())),this.on_change(n,(()=>this._add_annotations())),this.on_change(_,(()=>this._editor.setOptions({tabSize:this.model.indent}))),this.on_change(d,(()=>this._editor.setOptions({useSoftTabs:this.model.soft_tabs}))),this.on_change(a,(()=>{this._editor.setReadOnly(this.model.readonly)}))}render(){super.render(),this._container=(0,d.div)({id:(0,a.ID)(),style:{width:"100%",height:"100%",zIndex:"0"}}),this.shadow_el.append(this._container),this._container.textContent=this.model.code,this._editor=ace.edit(this._container),this._editor.renderer.attachToShadowRoot(),this._langTools=ace.require("ace/ext/language_tools"),this._modelist=ace.require("ace/ext/modelist"),this._editor.setOptions({enableBasicAutocompletion:!0,tabSize:this.model.indent,useSoftTabs:this.model.soft_tabs,enableSnippets:!0,fontFamily:"monospace"}),this._update_theme(),this._update_filename(),this._update_language(),this._editor.setReadOnly(this.model.readonly),this._editor.setShowPrintMargin(this.model.print_margin),this.model.on_keyup?this._editor.on("change",(()=>this._update_code_from_editor())):(this._editor.on("blur",(()=>this._update_code_from_editor())),this._editor.commands.addCommand({name:"updateCodeFromEditor",bindKey:{win:"Ctrl-Enter",mac:"Command-Enter"},exec:()=>{this._update_code_from_editor()}})),this._editor.on("change",(()=>this._update_code_input_from_editor()))}_update_code_from_model(){if(this._editor&&this._editor.getValue()!=this.model.code){const e=this._editor.getCursorPosition(),t=this._editor.session.getScrollTop(),i=this._editor.session.getScrollLeft();this._editor.setValue(this.model.code,-1);const o=this._editor.session.getLength();if(e.row<o){const t=this._editor.session.getLine(e.row).length,i=Math.min(e.column,t);this._editor.moveCursorToPosition({row:e.row,column:i})}else this._editor.moveCursorToPosition({row:o-1,column:this._editor.session.getLine(o-1).length});this._editor.clearSelection(),this._editor.session.setScrollTop(t),this._editor.session.setScrollLeft(i)}}_update_print_margin(){this._editor.setShowPrintMargin(this.model.print_margin)}_update_code_from_editor(){this._editor.getValue()!=this.model.code&&(this.model.code=this._editor.getValue())}_update_code_input_from_editor(){this._editor.getValue()!=this.model.code_input&&(this.model.code_input=this._editor.getValue())}_update_theme(){this._editor&&this._editor.setTheme(`ace/theme/${this.model.theme}`)}_update_filename(){if(this.model.filename){const e=this._modelist.getModeForPath(this.model.filename).mode;this.model.language=e.slice(9)}}_update_language(){null!=this.model.language&&this._editor.session.setMode(`ace/mode/${this.model.language}`)}_add_annotations(){this._editor.session.setAnnotations(this.model.annotations)}after_layout(){super.after_layout(),void 0!==this._editor&&this._editor.resize()}}i.AcePlotView=h,h.__name__="AcePlotView";class r extends _.HTMLBox{constructor(e){super(e)}}i.AcePlot=r,n=r,r.__name__="AcePlot",r.__module__="panel.models.ace",n.prototype.default_view=h,n.define((({Any:e,Bool:t,Int:i,List:o,Str:s,Nullable:n})=>({annotations:[o(e),[]],code:[s,""],code_input:[s,""],filename:[n(s),null],indent:[i,4],language:[s,""],on_keyup:[t,!0],print_margin:[t,!1],theme:[s,"github_light_default"],readonly:[t,!1],soft_tabs:[t,!1]}))),n.override({height:300,width:300})},
48
48
  "9b11ce01a3": function _(e,t,i,s,h){s(),i.set_size=o;const n=e("@bokehjs/core/dom"),l=e("@bokehjs/core/util/types"),a=e("@bokehjs/core/util/assert"),r=e("@bokehjs/models/widgets/widget"),d=e("@bokehjs/models/layouts/layout_dom");class _ extends r.WidgetView{connect_signals(){super.connect_signals();const{width:e,height:t,min_height:i,max_height:s,margin:h,sizing_mode:n}=this.model.properties;this.on_change([e,t,i,s,h,n],(()=>{o(this.el,this.model),o(this.container,this.model,!1)}))}async lazy_initialize(){await super.lazy_initialize(),"not_started"!=this.provider.status&&"loading"!=this.provider.status||this.provider.ready.connect((()=>{this.contains_tex_string(this.model.text)&&this.render()}))}watch_stylesheets(){this._initialized_stylesheets=new Map;for(const e of this._applied_stylesheets){const t=e.el;t instanceof HTMLLinkElement&&(this._initialized_stylesheets.set(t.href,!1),t.addEventListener("load",(()=>{this._initialized_stylesheets.set(t.href,!0),[...this._initialized_stylesheets.values()].every((e=>e))&&requestAnimationFrame((()=>this.style_redraw()))})))}0==this._initialized_stylesheets.size&&this.style_redraw()}rerender_(e=null){(e=e??this).rerender?e.rerender():(e.render(),e.r_after_render())}style_redraw(){}has_math_disabled(){return this.model.disable_math||!this.contains_tex_string(this.model.text)}render(){super.render(),o(this.el,this.model),this.container=(0,n.div)(),o(this.container,this.model,!1),this.shadow_el.appendChild(this.container),"failed"!=this.provider.status&&"loaded"!=this.provider.status||(this._has_finished=!0)}}function o(e,t,i=!0){let s=null!=t.width?"fixed":"fit",h=null!=t.height?"fixed":"fit";const{sizing_mode:r,margin:d}=t;if(null!=r)if("fixed"==r)s=h="fixed";else if("stretch_both"==r)s=h="max";else if("stretch_width"==r)s="max";else if("stretch_height"==r)h="max";else switch(r){case"scale_width":s="max",h="min";break;case"scale_height":s="min",h="max";break;case"scale_both":s="max",h="max";break;default:(0,a.unreachable)()}let _,o;i?(0,l.isArray)(d)?4===d.length?(o=d[0]+d[2],_=d[1]+d[3]):(o=2*d[0],_=2*d[1]):null==d?o=_=0:_=o=2*d:o=_=0,"fixed"==s&&null!=t.width?e.style.width=(0,n.px)(t.width):"max"==s&&(e.style.width=0!=_?`calc(100% - ${(0,n.px)(_)})`:"100%"),null!=t.min_width&&(e.style.minWidth=(0,n.px)(t.min_width)),null!=t.max_width&&(e.style.maxWidth=(0,n.px)(t.max_width)),"fixed"==h&&null!=t.height?e.style.height=(0,n.px)(t.height):"max"==h&&(e.style.height=0!=o?`calc(100% - ${(0,n.px)(o)})`:"100%"),null!=t.min_height&&(e.style.minHeight=(0,n.px)(t.min_height)),null!=t.max_height&&(e.style.maxHeight=(0,n.px)(t.max_height))}i.PanelMarkupView=_,_.__name__="PanelMarkupView";class m extends d.LayoutDOMView{connect_signals(){super.connect_signals();const{width:e,height:t,min_height:i,max_height:s,margin:h,sizing_mode:n}=this.model.properties;this.on_change([e,t,i,s,h,n],(()=>{o(this.el,this.model)}))}render(){super.render(),o(this.el,this.model)}rerender_(e=null){(e=e??this).rerender?e.rerender():(e.render(),e.r_after_render())}watch_stylesheets(){this._initialized_stylesheets=new Map;for(const e of this._applied_stylesheets){const t=e.el;t instanceof HTMLLinkElement&&(this._initialized_stylesheets.set(t.href,!1),t.addEventListener("load",(()=>{this._initialized_stylesheets.set(t.href,!0),[...this._initialized_stylesheets.values()].every((e=>e))&&this.style_redraw()})))}0===Object.keys(this._initialized_stylesheets).length&&requestAnimationFrame((()=>this.style_redraw()))}style_redraw(){}get child_models(){return[]}}i.HTMLBoxView=m,m.__name__="HTMLBoxView";class c extends d.LayoutDOM{constructor(e){super(e)}}i.HTMLBox=c,c.__name__="HTMLBox"},
49
49
  "a3669a897a": function _(t,e,n,r,o){r(),n.throttle=function(t,e){let n=0,r=null;return function(...o){const c=this,s=Date.now();r&&clearTimeout(r),s-n>=e?(t.apply(c,o),n=Date.now()):r=setTimeout((function(){t.apply(c,o),n=Date.now(),r=null}),e-(s-n))}},n.deepCopy=function t(e){let n;if(null==e||"object"!=typeof e)return e;if(e instanceof Array){n=[];for(let r=0,o=e.length;r<o;r++)n[r]=t(e[r]);return n}if(e instanceof Object){const n={};for(const r in e){const o=r;e.hasOwnProperty(o)&&(n[o]=t(e[o]))}return n}throw new Error("Unable to copy obj! Its type isn't supported.")},n.reshape=function(t,e){let n=0;if(!e||!t)return[];return function r(o){let s=[];if(o===e.length-1)s=(0,c.concat)(t.slice(n,n+e[o])),n+=e[o];else for(let t=0;t<e[o];t++)s.push(r(o+1));return s}(0)},n.loadScript=async function(t,e){const n=document.createElement("script");return n.type=t,n.src=e,n.defer=!0,document.head.appendChild(n),new Promise(((t,e)=>{n.onload=()=>{t()},n.onerror=()=>{e()}}))},n.ID=function(){return`_${Math.random().toString(36).substring(2,11)}`},n.convertUndefined=function t(e){if((0,s.isArray)(e))return e.map(t);(0,s.isPlainObject)(e)&&Object.entries(e).forEach((([n,r])=>{(0,s.isPlainObject)(r)||(0,s.isArray)(r)?t(r):void 0===r&&(e[n]=null)}));return e},n.formatError=function(t,e){let n=`<span class="msg">${t}</span>`;const r=n.match(/\((\d+):(\d+)\)/);if(!r)return n;const o=parseInt(r[1]),c=parseInt(r[2]),s=Math.max(0,o-5),i=o-s,u=e.replace(">","&lt;").replace("<","&gt;").split(/\r?\n/).slice(s,o+5);n+="<br><br>";for(let t=0;t<i;t++){n+=`<pre${t==i-1?' class="highlight"':""}>${u[t]}</pre>`}const l=" ".repeat(c-1);n+=`<pre class="highlight">${l}^</pre>`;for(let t=i;t<u.length;t++)n+=`<pre>${u[t]}</pre>`;return n},n.find_attributes=function(t,e,n){const r=RegExp(`\\b${e}\\.([a-zA-Z_][a-zA-Z0-9_]*)\\b`,"g"),o=[];let s,i;for(;null!==(s=r.exec(t))&&null!==(i=s[0].slice(e.length+1))&&!n.includes(i);)o.push(i);return(0,c.uniq)(o)},n.schedule_when=function(t,e,n=10){const r=()=>{e()?t():setTimeout(r,n)};r()},n.compileToFunction=l,n.transformJsPlaceholders=function(t,e){return function t(n){if("string"==typeof n){const t=n.match(i);return t?l(t[1],e):n}if(Array.isArray(n))return n.map(t);if(n&&"object"==typeof n&&Object.getPrototypeOf(n)===Object.prototype){const e={};for(const[r,o]of Object.entries(n))e[r]=t(o);return e}return n}(t)};const c=t("@bokehjs/core/util/array"),s=t("@bokehjs/core/util/types");n.get=(t,e,n=void 0)=>{const r=n=>String.prototype.split.call(e,n).filter(Boolean).reduce(((t,e)=>null!=t?t[e]:t),t),o=r(/[,[\]]+?/)||r(/[,[\].]+?/);return void 0===o||o===t?n:o},n.MARK="--x_x--0_0--";const i=new RegExp(`^${n.MARK}([\\s\\S]*?)${n.MARK}$`),u={mode:"expression",args:[]};function l(t,e=u){const{mode:n,args:r}={...u,...e};return new Function(...r,"expression"===n?`"use strict";\nreturn (${t});`:`"use strict";\n${t}`)()}},
@@ -148,7 +148,7 @@ function(e){const t={};void 0!==e.detail&&Object.assign(t,{detail:JSON.parse(JSO
148
148
  "1db93211cd": function _(t,e,o,i,l){var s;i();const n=t("@bokehjs/models/ui/tooltip"),a=t("@bokehjs/core/build_views"),p=t("@bokehjs/models/widgets/button");class u extends p.ButtonView{*children(){yield*super.children(),null!=this.tooltip&&(yield this.tooltip)}connect_signals(){super.connect_signals();const{tooltip:t}=this.model.properties;this.on_change(t,(()=>this.update_tooltip()))}async update_tooltip(){null!=this.tooltip&&this.tooltip.remove();const{tooltip:t}=this.model;null!=t&&(this.tooltip=await(0,a.build_view)(t,{parent:this}))}async lazy_initialize(){await super.lazy_initialize();const{tooltip:t}=this.model;null!=t&&(this.tooltip=await(0,a.build_view)(t,{parent:this}))}remove(){this.tooltip?.remove(),super.remove()}render(){super.render();const t=t=>{this.tooltip?.model.setv({visible:t})};let e;this.el.addEventListener("mouseenter",(()=>{e=setTimeout((()=>t(!0)),this.model.tooltip_delay)})),this.el.addEventListener("mouseleave",(()=>{clearTimeout(e),t(!1)}))}}o.ButtonView=u,u.__name__="ButtonView";class d extends p.Button{constructor(t){super(t)}}o.Button=d,s=d,d.__name__="Button",d.__module__="panel.models.widgets",s.prototype.default_view=u,s.define((({Nullable:t,Ref:e,Float:o})=>({tooltip:[t(e(n.Tooltip)),null],tooltip_delay:[o,500]})))},
149
149
  "1738ddeb3a": function _(e,t,o,n,i){var l;n();const s=e("6c7fbea0ef");class c extends s.ClickableIconView{*controls(){}update_cursor(){this.icon_view.el.style.cursor=this.model.disabled?"default":"pointer"}click(){if(this.model.disabled)return;super.click();const e=(e,t)=>{this.model.value=e,this.model.disabled=t};e(!0,!0),new Promise((e=>setTimeout(e,this.model.toggle_duration))).then((()=>{e(!1,!1)}))}}o.ButtonIconView=c,c.__name__="ButtonIconView";class d extends s.ClickableIcon{constructor(e){super(e)}}o.ButtonIcon=d,l=d,d.__name__="ButtonIcon",d.__module__="panel.models.icon",l.prototype.default_view=c,l.define((({Int:e})=>({toggle_duration:[e,75]})))},
150
150
  "6c7fbea0ef": function _(i,e,t,o,s){var l;o();const n=i("@bokehjs/models/ui/tooltip"),c=i("@bokehjs/models/ui/icons/tabler_icon"),a=i("@bokehjs/models/ui/icons/svg_icon"),h=i("@bokehjs/models/widgets/control"),_=i("@bokehjs/core/dom"),d=i("@bokehjs/core/build_views"),r=i("@bokehjs/core/bokeh_events");class u extends h.ControlView{*controls(){}remove(){this.tooltip?.remove(),this.icon_view.remove(),super.remove()}async lazy_initialize(){await super.lazy_initialize(),this.was_svg_icon=this.is_svg_icon(this.model.icon),this.label_el=(0,_.div)({class:"bk-IconLabel"},this.model.title),this.label_el.style.fontSize=this.calculate_size(.6),this.icon_view=await this.build_icon_model(this.model.icon,this.was_svg_icon);const{tooltip:i}=this.model;null!=i&&(this.tooltip=await(0,d.build_view)(i,{parent:this}))}*children(){yield*super.children(),yield this.icon_view,null!=this.tooltip&&(yield this.tooltip)}is_svg_icon(i){return i.trim().startsWith("<svg")}connect_signals(){super.connect_signals();const{icon:i,active_icon:e,disabled:t,value:o,size:s,tooltip:l}=this.model.properties;this.on_change([e,i,o],(()=>this.update_icon())),this.on_change(this.model.properties.title,(()=>this.update_label())),this.on_change(t,(()=>this.update_cursor())),this.on_change(s,(()=>this.update_size())),this.on_change(l,(()=>this.update_tooltip()))}async update_tooltip(){null!=this.tooltip&&this.tooltip.remove();const{tooltip:i}=this.model;null!=i&&(this.tooltip=await(0,d.build_view)(i,{parent:this}))}render(){super.render(),this.icon_view.render(),this.update_icon(),this.update_label(),this.update_cursor(),this.row_div=(0,_.div)({class:"bk-IconRow"},this.icon_view.el,this.label_el),this.shadow_el.appendChild(this.row_div);const i=i=>{this.tooltip?.model.setv({visible:i})};let e;this.el.addEventListener("mouseenter",(()=>{e&&clearTimeout(e),e=setTimeout((()=>i(!0)),this.model.tooltip_delay)})),this.el.addEventListener("pointerleave",(()=>{clearTimeout(e),e=void 0,i(!1)}))}update_label(){this.label_el.innerText=this.model.title}update_cursor(){this.icon_view.el.style.cursor=this.model.disabled?"not-allowed":"pointer"}update_size(){this.icon_view.model.size=this.calculate_size(),this.label_el.style.fontSize=this.calculate_size(.6)}async build_icon_model(i,e){const t=this.calculate_size(),o=e?new a.SVGIcon({svg:i,size:t}):new c.TablerIcon({icon_name:i,size:t}),s=await(0,d.build_view)(o,{parent:this});return s.el.addEventListener("click",(()=>this.click())),s}async update_icon(){const i=this.model.value?this.get_active_icon():this.model.icon;this.class_list.toggle("active",this.model.value);const e=this.is_svg_icon(i);if(this.was_svg_icon!==e){const t=await this.build_icon_model(i,e);t.render(),this.icon_view.remove(),this.icon_view=t,this.was_svg_icon=e,this.update_cursor(),this.row_div.insertBefore(this.icon_view.el,this.label_el)}else e?this.icon_view.model.svg=i:this.icon_view.model.icon_name=i;this.icon_view.el.style.lineHeight="0"}get_active_icon(){return""!==this.model.active_icon?this.model.active_icon:`${this.model.icon}-filled`}calculate_size(i=1){if(null!==this.model.size)return`calc(${this.model.size} * ${i})`;const e=this.model.width??15,t=this.model.height??15;return`${Math.max(e,t)*i}px`}click(){this.model.trigger_event(new r.ButtonClick)}}t.ClickableIconView=u,u.__name__="ClickableIconView";class v extends h.Control{constructor(i){super(i)}on_click(i){this.on_event(r.ButtonClick,i)}}t.ClickableIcon=v,l=v,v.__name__="ClickableIcon",v.__module__="panel.models.icon",l.prototype.default_view=u,l.define((({Nullable:i,Ref:e,Float:t,Str:o,Bool:s})=>({active_icon:[o,""],icon:[o,"heart"],size:[i(o),null],value:[s,!1],title:[o,""],tooltip:[i(e(n.Tooltip)),null],tooltip_delay:[t,500]})))},
151
- "d7035097d8": function _(e,t,s,l,o){var i;l();const a=e("tslib"),n=a.__importStar(e("@bokehjs/core/dom")),d=e("@bokehjs/core/layout/grid"),h=e("@bokehjs/models/layouts/alignments"),r=e("@bokehjs/models/layouts/layout_dom"),c=e("b273e5b2fb"),_=a.__importDefault(e("6342ac8e26")),u='\n<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-chevron-right"><path stroke="none" d="M0 0h12v12H0z" fill="none"/><path d="M9 6l6 6l-6 6" /></svg>\n',p='\n<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-chevron-down"><path stroke="none" d="M0 0h12v12H0z" fill="none"/><path d="M6 9l6 6l6 -6" /></svg>\n';class g extends c.ColumnView{constructor(){super(...arguments),this.collapsed_style=new n.InlineStyleSheet}connect_signals(){super.connect_signals();const{active_header_background:e,collapsed:t,header_background:s,header_color:l,hide_header:o}=this.model.properties;this.on_change(t,(()=>this._collapse())),this.on_change([l,o],(()=>this.render())),this.on_change([e,t,s],(()=>{const e=this.header_background;null!=e&&(this.child_views[0].el.style.backgroundColor=e,this.header_el.style.backgroundColor=e)}))}stylesheets(){return[...super.stylesheets(),_.default]}*_stylesheets(){yield*super._stylesheets(),yield this.collapsed_style}get header_background(){let e=this.model.header_background;return!this.model.collapsed&&this.model.active_header_background&&(e=this.model.active_header_background),e}render(){this.empty(),this.model.collapsed&&this.collapsed_style.replace(":host",{height:"fit-content",flex:"none"}),this._update_stylesheets(),this._update_css_classes(),this._apply_styles(),this._apply_visible(),this.class_list.add(...this.css_classes());const{button_css_classes:e,header_color:t,header_tag:s,header_css_classes:l}=this.model,o=this.header_background,i=this.child_views[0];let a;if(this.model.collapsible){this.button_el=n.button({class:l});const t=n.div({class:e});t.innerHTML=this.model.collapsed?u:p,this.button_el.appendChild(t),this.button_el.style.backgroundColor=null!=o?o:"",i.el.style.backgroundColor=null!=o?o:"",this.button_el.appendChild(i.el),this.button_el.addEventListener("click",(e=>this._toggle_button(e))),a=this.button_el}else a=n.create_element(s,{class:l}),a.style.backgroundColor=null!=o?o:"",a.appendChild(i.el);if(this.header_el=a,this.model.hide_header||(a.style.color=null!=t?t:"",this.shadow_el.appendChild(a),i.render(),i.r_after_render()),!this.model.collapsed)for(const e of this.child_views.slice(1))this.shadow_el.appendChild(e.el),e.render(),e.r_after_render()}async update_children(){await this.build_child_views(),this.render(),this.invalidate_layout()}_update_layout(){super._update_layout(),this.style.append(":host",{flex_direction:this._direction,gap:n.px(this.model.spacing)});const e=new d.Container;let t=0,s=0;for(let l=0;l<this.child_views.length;l++){const o=this.child_views[l];if(!(o instanceof r.LayoutDOMView))continue;const i=0==l,a=o.box_sizing(),d=(()=>{const e=i?a.width_policy:a.height_policy,t=i?a.width:a.height,s=null!=t?n.px(t):"auto";switch(e){case"auto":case"fixed":return`0 0 ${s}`;case"fit":return"1 1 auto";case"min":return"0 1 auto";case"max":return"1 0 0px"}})(),h=(()=>{switch(i?a.height_policy:a.width_policy){case"auto":case"fixed":case"fit":case"min":return i?a.valign:a.halign;case"max":return"stretch"}})();o.parent_style.append(":host",{flex:d,align_self:h}),i?"max"==a.height_policy&&o.parent_style.append(":host",{height:"auto"}):"max"==a.width_policy&&o.parent_style.append(":host",{width:"auto"}),null!=o.layout&&(e.add({r0:t,c0:s,r1:t+1,c1:s+1},o),i?s+=1:t+=1)}0!=e.size?(this.layout=new h.GridAlignmentLayout(e),this.layout.set_sizing()):delete this.layout}_toggle_button(e){for(const t of e.composedPath())if(t instanceof HTMLInputElement)return;this.model.collapsed=!this.model.collapsed}_collapse(){for(const e of this.child_views.slice(1))this.model.collapsed?(this.shadow_el.removeChild(e.el),e.model.visible=!1):(e.render(),e.after_render(),this.shadow_el.appendChild(e.el),e.model.visible=!0);this.model.collapsed?this.collapsed_style.replace(":host",{height:"fit-content",flex:"none"}):this.collapsed_style.clear(),this.button_el.children[0].innerHTML=this.model.collapsed?u:p,this.invalidate_layout()}_create_element(){return n.create_element(this.model.tag,{class:this.css_classes()})}}s.CardView=g,g.__name__="CardView";class y extends c.Column{constructor(e){super(e)}}s.Card=y,i=y,y.__name__="Card",y.__module__="panel.models.layout",i.prototype.default_view=g,i.define((({List:e,Bool:t,Nullable:s,Str:l})=>({active_header_background:[s(l),null],button_css_classes:[e(l),[]],collapsed:[t,!0],collapsible:[t,!0],header_background:[s(l),null],header_color:[s(l),null],header_css_classes:[e(l),[]],header_tag:[l,"div"],hide_header:[t,!1],tag:[l,"div"]})))},
151
+ "25fcfb521e": function _(e,i,s,t,l){var o;t();const h=e("tslib"),n=h.__importStar(e("@bokehjs/core/dom")),a=e("@bokehjs/core/layout/grid"),d=e("@bokehjs/models/layouts/alignments"),_=e("@bokehjs/models/layouts/layout_dom"),c=e("b273e5b2fb"),r=h.__importDefault(e("6342ac8e26")),u='\n<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-chevron-right"><path stroke="none" d="M0 0h12v12H0z" fill="none"/><path d="M9 6l6 6l-6 6" /></svg>\n',p='\n<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" stroke-linejoin="round" class="icon icon-tabler icons-tabler-outline icon-tabler-chevron-down"><path stroke="none" d="M0 0h12v12H0z" fill="none"/><path d="M6 9l6 6l6 -6" /></svg>\n';class b extends c.ColumnView{constructor(){super(...arguments),this.visible_child_views=new Map,this._updating_child_visibility=new Set,this._child_visible_callbacks=new Map,this.collapsed_style=new n.InlineStyleSheet}connect_signals(){super.connect_signals();const{active_header_background:e,collapsed:i,header_background:s,header_color:t,hide_header:l}=this.model.properties;this.on_change(i,(()=>this._collapse())),this.on_change([t,l],(()=>this.render())),this.on_change([e,i,s],(()=>{const e=this.header_background;null!=e&&(this.child_views[0].el.style.backgroundColor=e,this.header_el.style.backgroundColor=e)}));for(const e of this.child_views.slice(1))this._register_child_view(e)}stylesheets(){return[...super.stylesheets(),r.default]}*_stylesheets(){yield*super._stylesheets(),yield this.collapsed_style}get header_background(){let e=this.model.header_background;return!this.model.collapsed&&this.model.active_header_background&&(e=this.model.active_header_background),e}render(){this.empty(),this.model.collapsed&&this.collapsed_style.replace(":host",{height:"fit-content",flex:"none"}),this._update_stylesheets(),this._update_css_classes(),this._apply_styles(),this._apply_visible(),this.class_list.add(...this.css_classes());const{button_css_classes:e,header_color:i,header_tag:s,header_css_classes:t}=this.model,l=this.header_background,o=this.child_views[0];let h;if(this.model.collapsible){this.button_el=n.button({class:t});const i=n.div({class:e});i.innerHTML=this.model.collapsed?u:p,this.button_el.appendChild(i),this.button_el.style.backgroundColor=null!=l?l:"",o.el.style.backgroundColor=null!=l?l:"",this.button_el.appendChild(o.el),this.button_el.addEventListener("click",(e=>this._toggle_button(e))),h=this.button_el}else h=n.create_element(s,{class:t}),h.style.backgroundColor=null!=l?l:"",h.appendChild(o.el);this.header_el=h,this.model.hide_header||(h.style.color=null!=i?i:"",this.shadow_el.appendChild(h),o.render(),o.r_after_render());for(const e of this.child_views.slice(1))this._register_child_view(e),this._apply_child_visible(e),this.shadow_el.appendChild(e.el),e.render(),e.r_after_render()}async update_children(){await this.build_child_views();const e=new Set(this.child_views.slice(1));for(const i of this.visible_child_views.keys())e.has(i)||this._unregister_child_view(i);for(const i of e)this._register_child_view(i);this.render(),this.invalidate_layout()}_update_layout(){super._update_layout(),this.style.append(":host",{flex_direction:this._direction,gap:n.px(this.model.spacing)});const e=new a.Container;let i=0,s=0;for(let t=0;t<this.child_views.length;t++){const l=this.child_views[t];if(!(l instanceof _.LayoutDOMView))continue;const o=0==t,h=l.box_sizing(),a=(()=>{const e=o?h.width_policy:h.height_policy,i=o?h.width:h.height,s=null!=i?n.px(i):"auto";switch(e){case"auto":case"fixed":return`0 0 ${s}`;case"fit":return"1 1 auto";case"min":return"0 1 auto";case"max":return"1 0 0px"}})(),d=(()=>{switch(o?h.height_policy:h.width_policy){case"auto":case"fixed":case"fit":case"min":return o?h.valign:h.halign;case"max":return"stretch"}})();l.parent_style.append(":host",{flex:a,align_self:d}),o?"max"==h.height_policy&&l.parent_style.append(":host",{height:"auto"}):"max"==h.width_policy&&l.parent_style.append(":host",{width:"auto"}),null!=l.layout&&(e.add({r0:i,c0:s,r1:i+1,c1:s+1},l),o?s+=1:i+=1)}0!=e.size?(this.layout=new d.GridAlignmentLayout(e),this.layout.set_sizing()):delete this.layout}_toggle_button(e){for(const i of e.composedPath())if(i instanceof HTMLInputElement)return;this.model.collapsed=!this.model.collapsed}_collapse(){for(const e of this.child_views.slice(1))this._register_child_view(e),this.model.collapsed?(this.shadow_el.removeChild(e.el),this._set_child_visible(e,!1)):(e.render(),e.after_render(),this.shadow_el.appendChild(e.el),this._apply_child_visible(e));this.model.collapsed?this.collapsed_style.replace(":host",{height:"fit-content",flex:"none"}):this.collapsed_style.clear(),this.button_el.children[0].innerHTML=this.model.collapsed?u:p,this.invalidate_layout()}_set_child_visible(e,i){if(e.model.visible!=i){this._updating_child_visibility.add(e);try{e.model.visible=i}finally{this._updating_child_visibility.delete(e)}}}_apply_child_visible(e){const i=this.visible_child_views.get(e)??e.model.visible;this.visible_child_views.set(e,i),this._set_child_visible(e,i&&!this.model.collapsed)}_register_child_view(e){if(this.visible_child_views.has(e))return;this.visible_child_views.set(e,e.model.visible);const{visible:i}=e.model.properties,s=()=>{if(this._updating_child_visibility.has(e))return;const i=e.model.visible;this.visible_child_views.set(e,i),this.model.collapsed&&i&&this._set_child_visible(e,!1)};this._child_visible_callbacks.set(e,s),this.on_change(i,s)}_unregister_child_view(e){const i=this._child_visible_callbacks.get(e);null!=i&&(e.model.properties.visible.change.disconnect(i),this._child_visible_callbacks.delete(e)),this.visible_child_views.delete(e),this._updating_child_visibility.delete(e)}_create_element(){return n.create_element(this.model.tag,{class:this.css_classes()})}}s.CardView=b,b.__name__="CardView";class v extends c.Column{constructor(e){super(e)}}s.Card=v,o=v,v.__name__="Card",v.__module__="panel.models.layout",o.prototype.default_view=b,o.define((({List:e,Bool:i,Nullable:s,Str:t})=>({active_header_background:[s(t),null],button_css_classes:[e(t),[]],collapsed:[i,!0],collapsible:[i,!0],header_background:[s(t),null],header_color:[s(t),null],header_css_classes:[e(t),[]],header_tag:[t,"div"],hide_header:[i,!1],tag:[t,"div"]})))},
152
152
  "b273e5b2fb": function _(t,e,o,l,s){var i,n,r;l();var _,c=this&&this.__decorate||function(t,e,o,l){var s,i=arguments.length,n=i<3?e:null===l?l=Object.getOwnPropertyDescriptor(e,o):l;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)n=Reflect.decorate(t,e,o,l);else for(var r=t.length-1;r>=0;r--)(s=t[r])&&(n=(i<3?s(n):i>3?s(e,o,n):s(e,o))||n);return i>3&&n&&Object.defineProperty(e,o,n),n};const h=t("@bokehjs/core/bokeh_events"),d=t("@bokehjs/core/dom"),a=t("@bokehjs/models/layouts/column"),u=t("@bokehjs/models/layouts/layout_dom");class p extends h.ModelEvent{}o.ScrollButtonClick=p,i=p,p.__name__="ScrollButtonClick",i.prototype.event_name="scroll_button_click";let m=(n=class extends h.ModelEvent{constructor(t,e){super(),this.model=t,this.index=e,this.index=e,this.origin=t}get event_values(){return{model:this.origin,index:this.index}}static from_values(t){const{model:e,index:o}=t;return new _(e,o)}},_=n,n.__name__="ScrollToEvent",n);o.ScrollToEvent=m,o.ScrollToEvent=m=_=c([(0,h.server_event)("scroll_to")],m);class g extends a.ColumnView{constructor(){super(...arguments),this._updating=!1}connect_signals(){super.connect_signals();const{children:t,scroll_position:e,scroll_button_threshold:o}=this.model.properties;this.on_change(t,(()=>this.trigger_auto_scroll())),this.on_change(e,(()=>this.scroll_to_position())),this.on_change(o,(()=>this.toggle_scroll_button())),this.model.on_event(m,(t=>this.scroll_to_index(t.index)))}get distance_from_latest(){return this.el.scrollHeight-this.el.scrollTop-this.el.clientHeight}scroll_to_index(t){if(null===t)return;if(t>=this.model.children.length)return void console.warn(`Invalid scroll index: ${t}`);const e=this.child_views[t];if(!e)return void console.warn(`Child view not found for index: ${t}`);const o=e.el.getBoundingClientRect(),l=this.el.getBoundingClientRect(),s=o.top-l.top+this.el.scrollTop;this.model.scroll_position=Math.round(s)}scroll_to_position(){this._updating||requestAnimationFrame((()=>{this.el.scrollTo({top:this.model.scroll_position,behavior:"instant"})}))}scroll_to_latest(t=null){if(null!==t){if(!(this.distance_from_latest<=t))return}requestAnimationFrame((()=>{this.model.scroll_position=Math.round(this.el.scrollHeight)}))}trigger_auto_scroll(){const t=this.model.auto_scroll_limit;if(0==t)return;this.distance_from_latest<=t&&this.scroll_to_latest()}record_scroll_position(){this._updating=!0,this.model.scroll_position=Math.round(this.el.scrollTop),this._updating=!1}toggle_scroll_button(){const t=this.model.scroll_button_threshold;if(!this.scroll_down_button_el||0===t)return;const e=this.distance_from_latest>=t;this.scroll_down_button_el.classList.toggle("visible",e)}_update_layout(){super._update_layout();const t=this.model.css_classes.some((t=>["scroll","scrollable","scrollable-vertical"].includes(t)));for(const e of this.child_views)e instanceof u.LayoutDOMView&&t&&e.parent_style.append(":host",{maxHeight:"none"})}render(){super.render(),this.scroll_down_button_el=(0,d.div)({class:"scroll-button"}),this.shadow_el.appendChild(this.scroll_down_button_el),this.el.addEventListener("scroll",(()=>{this.record_scroll_position(),this.toggle_scroll_button()})),this.scroll_down_button_el.addEventListener("click",(()=>{this.scroll_to_latest(),this.model.trigger_event(new p)}))}async update_children(){const t=await this.build_child_views(),e=new Set(t),o=Array.from(this.shadow_el.children).flatMap((t=>{const e=this.child_views.find((e=>e.el===t));return void 0===e?[]:[e]}));let l=null;for(let t=0;t<o.length&&o[t]===this.child_views[t];t++)l=t;for(let t=0;t<this.child_views.length;t++){const o=this.child_views[t],s=e.has(o),i=o.rendering_target()??this.self_target??this.shadow_el;s?o.render_to(i):(null===l||t>l)&&i.append(o.el)}this.r_after_render(),this._update_children(),this.invalidate_layout()}after_render(){super.after_render(),requestAnimationFrame((()=>{this.model.scroll_position&&this.scroll_to_position(),this.model.view_latest&&this.scroll_to_latest(),this.toggle_scroll_button()}))}}o.ColumnView=g,g.__name__="ColumnView";class v extends a.Column{constructor(t){super(t)}on_click(t){this.on_event(p,t)}}o.Column=v,r=v,v.__name__="Column",v.__module__="panel.models.layout",r.prototype.default_view=g,r.define((({Int:t,Bool:e,Nullable:o})=>({auto_scroll_limit:[t,0],scroll_button_threshold:[t,0],scroll_index:[o(t),null],scroll_position:[t,0],view_latest:[e,!1]})))},
153
153
  "6342ac8e26": function _(r,e,o,t,a){t(),o.default=":host(.card){border-radius:0.25rem;box-shadow:rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;outline:1px solid rgba(0, 0, 0, 0.125);}:host(.accordion){box-shadow:rgba(50, 50, 93, 0.25) 0px 6px 12px -2px, rgba(0, 0, 0, 0.3) 0px 3px 7px -3px;outline:1px solid rgba(0, 0, 0, 0.125);width:100%;}.card-header{align-items:center;background-color:rgba(0, 0, 0, 0.03);border:unset;border-radius:0.25rem;display:inline-flex;justify-content:start;outline:unset;position:sticky;width:100%;margin-right:0.5em;padding-inline:0.5em;cursor:pointer;}.card-header:hover{box-shadow:0 0 3px rgba(0, 0, 0, 0.3);}.card-header:not(:hover){box-shadow:0 0 3px rgba(0, 0, 0, 0);}.accordion-header{align-items:center;background-color:rgba(0, 0, 0, 0.03);border:unset;outline:1px solid;border-radius:0;display:flex;justify-content:start;position:sticky;width:100%;cursor:pointer;}.card-button{background-color:transparent;margin-left:0em;margin-right:0.25em;height:12px;width:12px;}.card-header-row{position:relative !important;}.card-title{align-items:center;font-size:1.4em;font-weight:bold;overflow-wrap:break-word;}.card-header-row > .bk{overflow-wrap:break-word;text-align:center;}"},
154
154
  "51fbe9e2d0": function _(t,e,o,i,l){var s;i();const n=t("@bokehjs/models/ui/tooltip"),p=t("@bokehjs/core/build_views"),u=t("@bokehjs/models/widgets/checkbox_button_group");class r extends u.CheckboxButtonGroupView{*children(){yield*super.children(),null!=this.tooltip&&(yield this.tooltip)}connect_signals(){super.connect_signals();const{tooltip:t}=this.model.properties;this.on_change(t,(()=>this.update_tooltip()))}async update_tooltip(){null!=this.tooltip&&this.tooltip.remove();const{tooltip:t}=this.model;null!=t&&(this.tooltip=await(0,p.build_view)(t,{parent:this}))}async lazy_initialize(){await super.lazy_initialize();const{tooltip:t}=this.model;null!=t&&(this.tooltip=await(0,p.build_view)(t,{parent:this}))}remove(){this.tooltip?.remove(),super.remove()}render(){super.render();const t=t=>{this.tooltip?.model.setv({visible:t})};let e;this.el.addEventListener("mouseenter",(()=>{e=setTimeout((()=>t(!0)),this.model.tooltip_delay)})),this.el.addEventListener("mouseleave",(()=>{clearTimeout(e),t(!1)}))}}o.CheckboxButtonGroupView=r,r.__name__="CheckboxButtonGroupView";class a extends u.CheckboxButtonGroup{constructor(t){super(t)}}o.CheckboxButtonGroup=a,s=a,a.__name__="CheckboxButtonGroup",a.__module__="panel.models.widgets",s.prototype.default_view=r,s.define((({Nullable:t,Ref:e,Float:o})=>({tooltip:[t(e(n.Tooltip)),null],tooltip_delay:[o,500]})))},
@@ -157,7 +157,7 @@ function(e){const t={};void 0!==e.detail&&Object.assign(t,{detail:JSON.parse(JSO
157
157
  "1bec1b1fcc": function _(e,t,s,n,o){var i;n();const c=e("@bokehjs/document"),_=e("@bokehjs/core/view"),h=e("@bokehjs/model"),l=e("@bokehjs/protocol/message"),r=e("@bokehjs/protocol/receiver"),a=e("@bokehjs/core/serialization/buffer"),d=e("@bokehjs/core/util/types"),m=e("@bokehjs/core/util/object");s.comm_settings={debounce:!0};class u extends _.View{}s.CommManagerView=u,u.__name__="CommManagerView";class f extends h.Model{constructor(e){super(e),this._document_listener=e=>this._document_changed(e)}initialize(){super.initialize(),this._receiver=new r.Receiver,this._event_buffer=[],this._blocked=!1,this._reconnect=!1,this._timeout=Date.now(),null!=window.PyViz&&window.PyViz.comm_manager?(this.ns=window.PyViz,this.ns.comm_manager.register_target(this.plot_id,this.comm_id,(e=>{for(const t of this.ns.shared_views.get(this.plot_id))t!==this&&t.msg_handler(e);try{this.msg_handler(e)}catch(e){console.error(e)}})),this._client_comm=this.ns.comm_manager.get_client_comm(this.plot_id,this.client_comm_id,(e=>this.on_ack(e))),this._reconnect=!this._client_comm?.active||!1,null==this.ns.shared_views&&(this.ns.shared_views=new Map),this.ns.shared_views.has(this.plot_id)?this.ns.shared_views.get(this.plot_id).push(this):this.ns.shared_views.set(this.plot_id,[this])):console.warn("Could not find comm manager on window.PyViz, ensure the extension is loaded.")}_doc_attached(){super._doc_attached(),null!=this.document&&this.document.on_change(this._document_listener)}_document_changed(e){e instanceof c.ModelChangedEvent&&!e.model.properties[e.attr].syncable||(this._event_buffer.push(e),this._reconnect&&this._client_comm?.connected?this.on_ack({metadata:{msg_type:"Ready"}}):s.comm_settings.debounce?(!this._blocked||Date.now()>this._timeout)&&(setTimeout((()=>this.process_events()),this.debounce),this._blocked=!0,this._timeout=Date.now()+this.timeout):this.process_events())}_extract_buffers(e,t){if((0,d.isArray)(e))for(const s of e)this._extract_buffers(s,t);else if(e instanceof Map)for(const s of e.keys()){const n=e.get(s);this._extract_buffers(n,t)}else{if(e instanceof a.Buffer){const{buffer:s}=e,n=t.length;return t.push(s),{id:n}}if((0,d.isPlainObject)(e))for(const s of(0,m.keys)(e)){const n=this._extract_buffers(e[s],t);null!=n&&(e[s]=n)}}}process_events(){if(null==this.document||null==this._client_comm)return;const e=this.document.create_json_patch(this._event_buffer);this._event_buffer=[];const t={...l.Message.create("PATCH-DOC",{},e)},s=[];this._extract_buffers(t.content,s),this._client_comm.send(t,{},s);for(const t of this.ns.shared_views.get(this.plot_id))t!==this&&null!=t.document&&t.document.apply_json_patch(e,[],this.id)}disconnect_signals(){super.disconnect_signals(),this.ns.shared_views.shared_views.delete(this.plot_id)}on_ack(e){const t=e.metadata;this._event_buffer.length>0?(this._blocked=!0,this._timeout=Date.now()+this.timeout,this.process_events()):this._blocked=!1,"Ready"==t.msg_type&&t.content?console.log("Python callback returned following output:",t.content):"Error"==t.msg_type&&console.warn("Python failed with the following traceback:",t.traceback)}msg_handler(e){const t=e.metadata,s=e.buffers,n=e.content.data,o=this.plot_id;if("Ready"==t.msg_type)t.content?console.log("Python callback returned following output:",t.content):"Error"==t.msg_type&&console.warn("Python failed with the following traceback:",t.traceback);else if(null!=o){let e=null;if(o in this.ns.plot_index&&null!=this.ns.plot_index[o]?e=this.ns.plot_index[o]:void 0!==window.Bokeh&&o in window.Bokeh.index&&(e=window.Bokeh.index[o]),null==e)return;if(n.length)this._receiver.consume(n);else{if(!(null!=s&&s.length>0))return;this._receiver.consume(s[0].buffer)}const t=this._receiver.message;if(null!=t&&Object.keys(t.content).length>0&&null!=this.document){const e=t.content;this.document.apply_json_patch(e,t.buffers)}}}}s.CommManager=f,i=f,f.__name__="CommManager",f.__module__="panel.models.comm_manager",i.prototype.default_view=u,i.define((({Int:e,Str:t,Nullable:s})=>({plot_id:[s(t),null],comm_id:[s(t),null],client_comm_id:[s(t),null],timeout:[e,5e3],debounce:[e,50]})))},
158
158
  "92bbd30bd1": function _(e,t,s,o,i){var n;o();const l=e("@bokehjs/models/widgets/select");class d extends l.SelectView{connect_signals(){super.connect_signals();const{disabled_options:e}=this.model.properties;this.on_change(e,(()=>this._update_disabled_options()))}options_el(){const e=super.options_el(),{disabled_options:t}=this.model;return e.forEach((e=>{e instanceof HTMLOptionElement&&t.includes(e.value)&&e.setAttribute("disabled","true")})),e}_update_disabled_options(){for(const e of this.input_el.options)this.model.disabled_options.includes(e.value)?e.setAttribute("disabled","true"):e.removeAttribute("disabled")}}s.CustomSelectView=d,d.__name__="CustomSelectView";class _ extends l.Select{constructor(e){super(e)}}s.CustomSelect=_,n=_,_.__name__="CustomSelect",_.__module__="panel.models.widgets",n.prototype.default_view=d,n.define((({List:e,Str:t})=>({disabled_options:[e(t),[]]})))},
159
159
  "27b5580835": function _(e,t,l,o,s){var n,i;o();const c=e("@bokehjs/models/widgets/multiselect"),r=e("@bokehjs/core/bokeh_events");class u extends r.ModelEvent{constructor(e){super(),this.option=e}get event_values(){return{model:this.origin,option:this.option}}}l.DoubleClickEvent=u,n=u,u.__name__="DoubleClickEvent",n.prototype.event_name="dblclick_event";class _ extends c.MultiSelectView{render(){super.render();for(const e of this.input_el.children)e.addEventListener("dblclick",(e=>{e.target&&this.model.trigger_event(new u(e.target.value))}))}}l.CustomMultiSelectView=_,_.__name__="CustomMultiSelectView";class d extends c.MultiSelect{constructor(e){super(e)}}l.CustomMultiSelect=d,i=d,d.__name__="CustomMultiSelect",d.__module__="panel.models.widgets",i.prototype.default_view=_},
160
- "d446ec1ed8": function _(t,e,i,s,l){var o,n,a,r;s();const d=t("tslib"),h=t("@bokehjs/core/dom"),c=t("@bokehjs/core/util/arrayable"),u=t("@bokehjs/core/util/types"),_=t("@bokehjs/core/bokeh_events"),g=t("@bokehjs/core/dom"),m=t("@bokehjs/core/kinds"),p=t("@bokehjs/models/sources/column_data_source"),f=t("@bokehjs/models/widgets/tables"),b=t("99a25e6992"),w=t("1bec1b1fcc"),y=t("be689f0377"),x=t("9b11ce01a3"),v=t("a3669a897a"),z=d.__importDefault(t("3d732ff91f"));class S extends _.ModelEvent{constructor(t,e,i){super(),this.column=t,this.row=e,this.pre=i}get event_values(){return{model:this.origin,column:this.column,row:this.row,pre:this.pre}}}i.TableEditEvent=S,o=S,S.__name__="TableEditEvent",o.prototype.event_name="table-edit";class M extends _.ModelEvent{constructor(t,e){super(),this.column=t,this.row=e}get event_values(){return{model:this.origin,column:this.column,row:this.row}}}i.CellClickEvent=M,n=M,M.__name__="CellClickEvent",n.prototype.event_name="cell-click";class T extends _.ModelEvent{constructor(t,e,i=!1){super(),this.indices=t,this.selected=e,this.flush=i}get event_values(){return{model:this.origin,indices:this.indices,selected:this.selected,flush:this.flush}}}function C(t,e,i){for(const s of i)if(s[t]==e)return s;return null}function E(t,e,i,s=0){const l={};if(0==t.length)return l;let o="";s>0&&(o=i[s-1]);for(const n of t){const t=E(n._children,e,i,s+1);for(const e in t)(0,u.isArray)(t[e])?n[e]=(0,c.sum)(t[e])/t[e].length:n[e]=t[e];for(const t of e.slice(1)){let e="";"string"==typeof o?e=o:t.field in o&&(e=o[t.field]);const i=n[t.field];if(t.field in l){const s=l[t.field];"min"===e?l[t.field]=i<s?i:s:"max"===e?l[t.field]=i>s?i:s:"sum"===e?l[t.field]=i+s:"mean"===e&&((0,u.isArray)(l[t.field])?l[t.field].push(i):l[t.field]=[s,i])}else l[t.field]=i}}return l}function D(t,e,i,s){const l=[],o=e[0].field;for(const s of t){const t=s[i[0]];let n=C(o,t,l);null==n&&(n={_children:[]},n[o]=t,l.push(n));let a=n;for(const t of i.slice(1)){a=C(o,s[t],a._children),null==a&&(a={_children:[]},a[o]=s[t],n._children.push(a));for(const t of e.slice(1))a[t.field]=s[t];n=a}for(const t of e.slice(1))a[t.field]=s[t.field]}const n=[];for(const t of i)t in s?s[t]instanceof Map?n.push(Object.fromEntries(s[t])):n.push(s[t]):n.push("sum");return E(l,e,n),l}i.SelectionEvent=T,a=T,T.__name__="SelectionEvent",a.prototype.event_name="selection-change";const k=function(t,e,i,s,l,o,n){let a;a=0;const r={zone:new window.luxon.IANAZone("UTC")};if(t=Number.isNaN(t)?window.luxon.DateTime.fromISO("invalid"):window.luxon.DateTime.fromMillis(t,r),e=Number.isNaN(e)?window.luxon.DateTime.fromISO("invalid"):window.luxon.DateTime.fromMillis(e,r),t.isValid){if(e.isValid)return t-e;a=1}else a=e.isValid?-1:0;return a*=-1,a},P=function(t,e,i,s){const l=t.getValue(),o={zone:new window.luxon.IANAZone("UTC")};let n;n="NaN"===l||null===l?null:window.luxon.DateTime.fromMillis(l,o).toFormat("yyyy-MM-dd");const a=document.createElement("input");function r(){const t=window.luxon.DateTime.fromFormat(a.value,"yyyy-MM-dd",o).toMillis();t!=n?i(t):s()}return a.setAttribute("type","date"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",a.value=n,e((()=>{a.focus(),a.style.height="100%"})),a.addEventListener("blur",r),a.addEventListener("keydown",(t=>{"Enter"==t.key&&setTimeout(r,100),"Escape"==t.key&&setTimeout(s,100)})),a},L=function(t,e,i,s){const l=t.getValue(),o={zone:new window.luxon.IANAZone("UTC")};let n;n="NaN"===l||null===l?null:window.luxon.DateTime.fromMillis(l,o).toFormat("yyyy-MM-dd'T'T");const a=document.createElement("input");function r(){const t=window.luxon.DateTime.fromFormat(a.value,"yyyy-MM-dd'T'T",o).toMillis();t!=n?i(t):s()}return a.setAttribute("type","datetime-local"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",a.value=n,e((()=>{a.focus(),a.style.height="100%"})),a.addEventListener("blur",r),a.addEventListener("keydown",(t=>{"Enter"==t.key&&setTimeout(r,100),"Escape"==t.key&&setTimeout(s,100)})),a},R=function(t,e){const i=t.getRow().getData();let s=e.options;for(const t of e.lookup_order)if(s=i[t]in s?s[i[t]]:[],Array.isArray(s))break;return s||[]};function N(t,e){if(null==t.columns)return t.field===e?t:null;for(const i of t.columns){const t=N(i,e);if(t)return t}}function V(t){if(null==t.columns)return{...t};const e=[];for(const i of t.columns)e.push(V(i));return{...t,columns:e}}class F extends x.HTMLBoxView{constructor(){super(...arguments),this.columns=new Map,this.container=null,this._tabulator_cell_updating=!1,this._updating_page=!1,this._updating_expanded=!1,this._updating_sort=!1,this._updating_page_size=!1,this._selection_updating=!1,this._last_selected_row=null,this._lastVerticalScrollbarTopPosition=0,this._lastHorizontalScrollbarLeftPosition=0,this._applied_styles=!1,this._building=!1,this._redrawing=!1,this._debounced_redraw=null,this._restore_scroll=!1,this._updating_scroll=!1,this._is_scrolling=!1,this._automatic_page_size=!1}connect_signals(){super.connect_signals(),this._debounced_redraw=(0,b.debounce)((()=>this._resize_redraw()),20,!1);const{configuration:t,layout:e,columns:i,groupby:s,visible:l,download:o,children:n,expanded:a,cell_styles:r,hidden_columns:d,page_size:h,page:c,max_page:u,frozen_rows:_,sorters:g,theme_classes:m}=this.model.properties;this.on_change([t,e,s],(0,b.debounce)((()=>{this.invalidate_render()}),20,!1)),this.on_change(l,(()=>{this.model.visible&&(this.tabulator.element.style.visibility="visible")})),this.on_change(i,(()=>{this.tabulator.setColumns(this.getColumns()),this.setHidden()})),this.on_change(o,(()=>{const t=this.model.filename.endsWith(".json")?"json":"csv";this.tabulator.download(t,this.model.filename)})),this.on_change(n,(()=>this.renderChildren())),this.on_change(a,(()=>{for(const t of this.tabulator.rowManager.getRows())t.cells.length>0&&t.cells[0].layoutElement();for(const t of this.tabulator.rowManager.getRows())if(t.cells.length>0){const e=t.data._index,i=this.model.expanded.includes(e)?"\u25bc":"\u25ba";t.cells[1].element.innerText=i}this.model.embed_content&&!this._updating_expanded&&this.renderChildren()})),this.on_change(r,(()=>{this._applied_styles&&this.tabulator.redraw(!0),this.setStyles()})),this.on_change(d,(()=>{this.setHidden(),this.tabulator.redraw(!0)})),this.on_change(h,(()=>this.setPageSize())),this.on_change(c,(()=>{this._updating_page||this.setPage()})),this.on_change(l,(()=>this.setVisibility())),this.on_change(u,(()=>this.setMaxPage())),this.on_change(_,(()=>this.setFrozen())),this.on_change(g,(()=>this.setSorters())),this.on_change(m,(()=>this.setCSSClasses(this.tabulator.element))),this.on_change(this.model.source.properties.data,(()=>{void 0!==this.tabulator&&(this._restore_scroll="horizontal",this._selection_updating=!0,this._updating_scroll=!0,this.setData(),this._updating_scroll=!1,this._selection_updating=!1,this.postUpdate())})),this.connect(this.model.source.streaming,(()=>this.addData())),this.connect(this.model.source.patching,(()=>{const t=this.model.source.selected.indices;this._updating_scroll=!0,this.updateOrAddData(),this._updating_scroll=!1,this.model.source.selected.indices=t,this.restore_scroll()})),this.connect(this.model.source.selected.change,(()=>this.setSelection())),this.connect(this.model.source.selected.properties.indices.change,(()=>this.setSelection()))}get groupBy(){return this.model.groupby.length>0&&(t=>{const e=[];for(const i of this.model.groupby){const s=`${i}: ${t[i]}`;e.push(s)}return e.join(", ")})}get sorters(){const t=[];this.model.sorters.length>0&&t.push({column:"_index",dir:"asc"});for(const e of this.model.sorters.reverse())void 0===e.column&&(e.column=e.field),t.push(e);return t}invalidate_render(){this.tabulator.destroy(),this.tabulator=null,this.rerender_()}redraw(t=!0,e=!0){this._building||null==this.tabulator||this._redrawing||(this._redrawing=!0,t&&null!=this.tabulator.columnManager.element&&this.tabulator.columnManager.redraw(!0),e&&null!=this.tabulator.rowManager.renderer&&(this.tabulator.rowManager.redraw(!0),this.setStyles()),this._redrawing=!1,this._restore_scroll=!0)}get is_drawing(){return this._building||this._redrawing||!this.has_finished()}after_layout(){super.after_layout(),null!=this.tabulator&&this._initializing&&!this.is_drawing&&(this._initializing=!1,this._resize_redraw())}after_resize(){super.after_resize(),this._is_scrolling||this._initializing||this.is_drawing||this._debounced_redraw()}_resize_redraw(){if(this._initializing||!this.container||this._building)return;const t=this.container.clientWidth,e=this.container.clientHeight;t&&e&&(this.redraw(!0,!0),this.restore_scroll(),this.recompute_page_size())}stylesheets(){return[...super.stylesheets(),z.default]}setCSSClasses(t){t.className="pnx-tabulator tabulator";for(const e of this.model.theme_classes)t.classList.add(e)}render(){null!=this.tabulator&&this.tabulator.destroy(),super.render(),this._initializing=!0,this._building=!0;const t=(0,g.div)({style:{display:"contents"}}),e=(0,g.div)({style:{width:"100%",height:"100%",visibility:"hidden"}});this.container=e,this.setCSSClasses(e),t.appendChild(e),this.shadow_el.appendChild(t);const i=this.getConfiguration();this.tabulator=new Tabulator(e,i),this.watch_stylesheets(),this.init_callbacks()}style_redraw(){this.model.visible&&(this.tabulator.element.style.visibility="visible"),this._initializing||this._building||this.redraw()}tableInit(){this._building=!0;this.tabulator.modules.ajax.sendRequest=(t,e,i)=>this.requestPage(e.page,e.sort),this.tabulator.modules.page._parseRemoteData=()=>!1}init_callbacks(){this.tabulator.on("tableBuilding",(()=>this.tableInit())),this.tabulator.on("tableBuilt",(()=>this.tableBuilt())),this.tabulator.on("selectableRowsCheck",(t=>{const e=this.model.selectable_rows;return null==e||e.includes(t._row.data._index)})),this.tabulator.on("tooltips",(t=>`${t.getColumn().getField()}: ${t.getValue()}`)),this.tabulator.on("scrollVertical",(0,b.debounce)((()=>{this.setStyles()}),50,!1)),this.tabulator.on("rowSelectionChanged",((t,e,i,s)=>{this.rowSelectionChanged(t,e,i,s)})),this.tabulator.on("rowClick",((t,e)=>this.rowClicked(t,e))),this.tabulator.on("cellEdited",(t=>this.cellEdited(t))),this.tabulator.on("dataFiltering",(t=>{this.record_scroll(),this.model.filters=t})),this.tabulator.on("dataFiltered",((t,e)=>{this._building||(0===e.length&&this.tabulator.rowManager.renderEmptyScroll(),null!=this.model.pagination&&this.updatePage(this.tabulator.getPage()))})),this.tabulator.on("pageLoaded",(t=>{this.updatePage(t)})),this.tabulator.on("renderComplete",(()=>{this._building||this.postUpdate()})),this.tabulator.on("dataSorting",(t=>{const e=[];for(const i of t)"_index"!==i.field&&e.push({field:i.field,dir:i.dir});"remote"!==this.model.pagination&&(this._updating_sort=!0,this.model.sorters=e.reverse(),this._updating_sort=!1)}))}tableBuilt(){this.setSelection(),this.renderChildren(),this.setStyles();const t=this.shadow_el.querySelector(".tabulator-tableholder");let e;t&&t.addEventListener("scroll",(()=>{this.record_scroll(),this._is_scrolling=!0,clearTimeout(e),e=setTimeout((()=>{this._is_scrolling=!1}),200)})),this.model.pagination&&(this.setMaxPage(),this.tabulator.setPage(this.model.page)),this._building=!1,(0,v.schedule_when)((()=>{const t=this._initializing;this._initializing=!1,t&&this._resize_redraw()}),(()=>this.has_finished()&&[...this._initialized_stylesheets.values()].every((t=>t))))}recompute_page_size(){if(!this.model.pagination||null!==this.model.page_size||this._automatic_page_size)return;this._automatic_page_size=!0;const t=this.model.sizing_mode&&(this.model.sizing_mode.includes("height")||this.model.sizing_mode.includes("both")),e=this.shadow_el.querySelector(".tabulator-tableholder"),i=this.shadow_el.querySelector(".tabulator-table");if(null!=i&&null!=e){const s=e.clientHeight;let l=0,o=null;const n=[];for(let e=0;e<i.children.length;e++){const a=i.children[e].clientHeight;if(n.push(a),l+=a,l>s){o=e,t&&(o-=1);break}}if(l<s){o=i.children.length;const e=s-l;o+=Math.floor(e/Math.min(...n)),t&&(o-=2)}this._updating_page_size=!0;try{this.model.page_size=Math.max(o||1,1)}finally{this._updating_page_size=!1}}}requestPage(t,e){return new Promise(((i,s)=>{try{if(null!=t&&null!=e){this._updating_sort=!0;const i=[];for(const t of e)"_index"!==t.field&&i.push({field:t.field,dir:t.dir});this.model.sorters=i,this._updating_sort=!1,this._updating_page=!0;try{this.model.page=t||1}finally{this._updating_page=!1}}i([])}catch(t){s(t)}}))}getLayout(){switch(this.model.layout){case"fit_data":return"fitData";case"fit_data_fill":return"fitDataFill";case"fit_data_stretch":return"fitDataStretch";case"fit_data_table":return"fitDataTable";case"fit_columns":return"fitColumns"}}getConfiguration(){const t="toggle"===this.model.select_mode||NaN,e={...(0,v.transformJsPlaceholders)(this.model.configuration),index:"_index",nestedFieldSeparator:!1,movableColumns:!1,selectableRows:t,columns:this.getColumns(),initialSort:this.sorters,layout:this.getLayout(),pagination:null!=this.model.pagination,paginationMode:this.model.pagination,paginationSize:this.model.page_size||20,paginationInitialPage:1,popupContainer:this.model.container_popup&&this.container,groupBy:this.groupBy,frozenRows:t=>this.model.frozen_rows.length>0&&this.model.frozen_rows.includes(t._row.data._index),rowFormatter:t=>this._render_row(t,!1)};null!=this.model.max_height&&(e.maxHeight=this.model.max_height),"remote"===this.model.pagination&&(e.ajaxURL="http://panel.pyviz.org",e.sortMode="remote");const i=this.getData();return{...e,data:i}}get_child(t){return this.model.children instanceof Map&&this.model.children.get(t)||null}get child_models(){const t=[];for(const e of this.model.expanded){const i=this.get_child(e);null!=i&&t.push(i)}return t}get row_index(){const t=this.tabulator.getRows(),e=new Map;for(const i of t){const t=i._row?.data._index;null!=t&&e.set(t,i)}return e}renderChildren(){new Promise((async()=>{await this.build_child_views();const t=this.row_index,e=this.model.expanded;for(const i of e){const s=this.get_child(i),l=t.get(i);null!=(null==s?null:this._child_views.get(s))&&this._render_row(l,i===e[e.length-1])}}))}_render_row(t,e=!0){const i=t._row?.data._index;if(!this.model.expanded.includes(i))return;const s=this.get_child(i),l=null==s?null:this._child_views.get(s);null!=l&&(0,v.schedule_when)((()=>{const i=t.getElement(),s=getComputedStyle(this.tabulator.element.children[1].children[0]).backgroundColor,o=i.style.paddingLeft?`-${i.style.paddingLeft}`:"0",n=i.children[i.children.length-1];let a;if(null!=n&&"row-content"==n.className){if(a=n,a.children.length&&a.children[0]===l.el)return}else a=(0,g.div)({class:"row-content",style:{background_color:s,margin_left:o,max_width:"100%",overflow_x:"hidden"}}),i.appendChild(a);(0,h.display)(l.el),a.appendChild(l.el),0===l.shadow_el.children.length&&this.rerender_(l),e&&(this._update_children(),this.resize_table())}),(()=>this.has_finished()))}resize_table(){if(null!=this.tabulator.rowManager.renderer)try{this.tabulator.rowManager.adjustTableSize()}catch(t){}this.invalidate_layout()}_expand_render(t){const e=t._cell.row.data._index;return this.model.expanded.indexOf(e)<0?"\u25ba":"\u25bc"}_update_expand(t){const e=t._cell.row.data._index,i=[...this.model.expanded];if(i.includes(e)){const t=i.indexOf(e),s=i.splice(t,1)[0],l=this.get_child(s);if(null!=l){const t=this._child_views.get(l);void 0!==t&&null!=t.el&&(0,h.undisplay)(t.el)}}else i.push(e);if(this._updating_expanded=!0,this.model.expanded=i,this._updating_expanded=!1,!i.includes(e))return;let s=!0;for(const t of this.model.expanded)if(null==this.get_child(t)){s=!1;break}s&&this.renderChildren()}getData(){const t=this.model.source;let e;return e=null===t||0===t.columns().length?[]:(0,y.transform_cds_to_records)(t,!0),this.model.configuration.dataTree&&(e=D(e,this.model.columns,this.model.indexes,this.model.aggregators)),e}getColumns(){this.columns=new Map;const t=(0,v.transformJsPlaceholders)(this.model.configuration?.columns),e=[];if(e.push({field:"_index",frozen:!0,visible:!1}),null!=t)for(const i of t){const t=V(i);if("expand"===i.formatter){const t={hozAlign:"center",cellClick:(t,e)=>{this._update_expand(e)},formatter:t=>this._expand_render(t),width:40,frozen:!0};e.push(t)}else"rowSelection"===t.formatter&&(t.cellClick=(t,e)=>{e.getRow().toggleSelect()}),e.push(t)}for(const i of this.model.columns){let s=null;if(null!=t)for(const t of e)if(s=N(t,i.field),null!=s)break;if(null==s&&(s={field:i.field}),this.columns.set(i.field,s),null==s.title&&(s.title=i.title),void 0===s.headerTooltip&&(s.headerTooltip=!0),null==s.width&&null!=i.width&&0!=i.width&&(s.width=i.width),null==s.formatter&&null!=i.formatter){const t=i.formatter.type;s.formatter="BooleanFormatter"===t?"tickCross":t=>{const e=t.getRow(),s=i.formatter.doFormat(t.getRow(),t,t.getValue(),null,e.getData());if("HTMLTemplateFormatter"===i.formatter.type)return s;const l=(0,g.div)();l.innerHTML=s;const o=l.children[0];return"function(){return c.convert(arguments)}"===o.innerHTML?"":o}}"timestamp"==s.sorter&&(s.sorter=k),void 0===s.sorter&&(s.sorter="string");const l=i.editor,o=l.type;null!=s.editor?"date"===s.editor?s.editor=P:"datetime"===s.editor?s.editor=L:"nested"===s.editor&&(s.editorParams.valuesLookup=t=>R(t,s.editorParams),s.editor="list"):"StringEditor"===o?l.completions.length>0?(s.editor="list",s.editorParams={values:l.completions,autocomplete:!0,listOnEmpty:!0}):s.editor="input":"TextEditor"===o?s.editor="textarea":"IntEditor"===o||"NumberEditor"===o?(s.editor="number",s.editorParams={step:l.step},s.validator="IntEditor"===o?"integer":"numeric"):"CheckboxEditor"===o?s.editor="tickCross":"DateEditor"===o?s.editor=P:"SelectEditor"===o?(s.editor="list",s.editorParams={values:l.options}):null!=l&&null!=l.default_view&&(s.editor=(t,e,s,l)=>{this.renderEditor(i,t,e,s,l)}),s.visible=0!=s.visible&&!this.model.hidden_columns.includes(i.field);const n=s.editable;(0,u.isFunction)(n)?s.editable=t=>this.model.editable&&null!=l.default_view&&n(t):(0,u.isBoolean)(n)?s.editable=()=>this.model.editable&&null!=l.default_view&&n:s.editable=()=>this.model.editable&&null!=l.default_view,s.headerFilter&&(0,u.isBoolean)(s.headerFilter)&&(0,u.isString)(s.editor)&&(s.headerFilter=s.editor,s.headerFilterParams=s.editorParams);for(const t of this.model.sorters)s.field===t.field&&(s.headerSortStartingDir=t.dir);s.cellClick=(t,e)=>{const s=e.getData()._index,l=new M(i.field,s);this.model.trigger_event(l)},null==t&&e.push(s)}for(const t in this.model.buttons){const i={formatter:()=>this.model.buttons[t],hozAlign:"center",cellClick:(e,i)=>{const s=i.getData()._index,l=new M(t,s);this.model.trigger_event(l)}};e.push(i)}return this.model.container_popup&&"fit_data_stretch"!==this.model.layout&&e.push({width:1,maxWidth:1,minWidth:1,resizable:!1,cssClass:"empty",sorter:null}),e}renderEditor(t,e,i,s,l){const o=t.editor,n=new o.default_view({column:t,model:o,parent:this,container:e._cell.element});return n.initialize(),n.connect_signals(),i((()=>{n.setValue(e.getValue())})),n.inputEl.addEventListener("input",(()=>{const t=n.serializeValue(),i=e.getValue(),o=n.validate();o.valid||l(o.msg),null!=i&&typeof t!=typeof i?l("Mismatching type"):s(n.serializeValue())})),n.inputEl}setData(){if(this._initializing||this._building||!this.tabulator.initialized)return Promise.resolve(void 0);const t=this.getData();return null!=this.model.pagination?this.tabulator.rowManager.setData(t,!0,!1):this.tabulator.setData(t)}addData(){const t=this.tabulator.rowManager.getRows(),e=t[t.length-1],i=e?.data._index||0;this._updating_page=!0;const s=this.setData();this.model.follow?s.then((()=>{this.model.pagination&&this.tabulator.setPage(Math.ceil(this.tabulator.rowManager.getDataCount()/(this.model.page_size||20))),e&&this.tabulator.scrollToRow(i,"top",!1),this._updating_page=!1})):this._updating_page=!0}postUpdate(){if(this.setSelection(),this.setStyles(),this._restore_scroll){const t="horizontal"!==this._restore_scroll,e="vertical"!==this._restore_scroll;this.restore_scroll(e,t),this._restore_scroll=!1}}updateOrAddData(){if(this._tabulator_cell_updating)return;const t=this.tabulator.element.style.minHeight;this.tabulator.element.style.minHeight=`${this.tabulator.element.offsetHeight}px`;const e=(0,y.transform_cds_to_records)(this.model.source,!0);this.tabulator.setData(e).then((()=>{this.tabulator.element.style.minHeight=t}))}setFrozen(){for(const t of this.model.frozen_rows)this.tabulator.getRow(t).freeze()}setVisibility(){null!=this.tabulator&&(this.tabulator.element.style.visibility=this.model.visible?"visible":"hidden")}updatePage(t){"local"!==this.model.pagination||this.model.page===t||this._updating_page||(this._updating_page=!0,this.model.page=t,this._updating_page=!1,this.setStyles())}setGroupBy(){this.tabulator.setGroupBy(this.groupBy)}setSorters(){this._updating_sort||this.tabulator.setSort(this.sorters)}setStyles(){const t=this.model.cell_styles.data;if(null!=this.tabulator&&0!=this.tabulator.getDataCount()&&null!=t&&t.size){this._applied_styles=!1;for(const e of t.keys()){const i=t.get(e),s=this.tabulator.getRow(e);if(!s)continue;const l=s._row.cells;for(const t of i.keys()){const e=i.get(t),s=l[t];if(null==s||!e.length)continue;const o=s.element;for(const t of e){let e,i;if((0,u.isArray)(t))[e,i]=t;else{if(!t.includes(":"))continue;[e,i]=t.split(":")}o.style.setProperty(e,i.trimLeft()),this._applied_styles=!0}}}}}setHidden(){for(const t of this.tabulator.getColumns()){const e=t._column;"_index"==e.field||this.model.hidden_columns.includes(e.field)?t.hide():t.show()}}setMaxPage(){this.tabulator.setMaxPage(this.model.max_page),this.tabulator.modules.page.pagesElement&&this.tabulator.modules.page._setPageButtons()}setPage(){this.tabulator.setPage(Math.min(this.model.max_page,this.model.page)),"local"===this.model.pagination&&this.setStyles()}setPageSize(){this._updating_page_size||(this._automatic_page_size=!1),this.tabulator.setPageSize(this.model.page_size),"local"===this.model.pagination&&this.setStyles()}setSelection(){if(null==this.tabulator||this._initializing||this._selection_updating||!this.tabulator.initialized)return;const t=this.model.source.selected.indices,e=this.tabulator.getSelectedData().map((t=>t._index));if(JSON.stringify(t)!=JSON.stringify(e)){this._selection_updating=!0,this.tabulator.deselectRow(),this.tabulator.selectRow(t);for(const e of t){this.tabulator.rowManager.findRow(e)&&this.tabulator.scrollToRow(e,"center",!1).catch((()=>{}))}this._selection_updating=!1}}restore_scroll(t=!0,e=!0){if(!t&&!e)return;const i={behavior:"instant"};e&&(i.top=this._lastVerticalScrollbarTopPosition),t&&(i.left=this._lastHorizontalScrollbarLeftPosition),setTimeout((()=>{this._updating_scroll=!0,this.tabulator.rowManager.element.scrollTo(i),this._updating_scroll=!1}),0)}record_scroll(){this._updating_scroll||(this._lastVerticalScrollbarTopPosition=this.tabulator.rowManager.element.scrollTop,this._lastHorizontalScrollbarLeftPosition=this.tabulator.rowManager.element.scrollLeft)}rowClicked(t,e){if(this._selection_updating||this._initializing||(0,u.isString)(this.model.select_mode)||!1===this.model.select_mode||this.model.configuration.dataTree||"\u25ba"===t.srcElement?.innerText)return;let i=[];const s=this.model.source.selected,l=e._row.data._index;if(t.ctrlKey||t.metaKey)i=[...s.indices];else if(t.shiftKey&&this._last_selected_row){const t=e._row.parent.getDisplayRows(),s=t.indexOf(this._last_selected_row);if(-1!==s){const l=t.indexOf(e._row),o=s>l,[n,a]=o?[l+1,s+1]:[s,l];i=t.slice(n,a).map((t=>t.data._index)),o&&(i=i.reverse())}}const o=!(t.ctrlKey||t.metaKey||t.shiftKey),n=i.includes(l),a="remote"===this.model.pagination;if(!n||a?i.push(l):i.splice(i.indexOf(l),1),(0,u.isNumber)(this.model.select_mode))for(;i.length>this.model.select_mode;)i.shift();const r=this._filter_selected(i);a||(this.tabulator.deselectRow(),this.tabulator.selectRow(r)),this._last_selected_row=e._row,this._selection_updating=!0,a||(s.indices=r),this.model.trigger_event(new T(i,!n,o)),this._selection_updating=!1}_filter_selected(t){const e=[];for(const i of t)(null==this.model.selectable_rows||this.model.selectable_rows.indexOf(i)>=0)&&e.push(i);return e}rowSelectionChanged(t,e,i,s){if(!(this._selection_updating||this._initializing||(0,u.isBoolean)(this.model.select_mode)||(0,u.isNumber)(this.model.select_mode)||this.model.configuration.dataTree)){if("remote"===this.model.pagination){const t=i.map((t=>t._row.data._index)),e=s.map((t=>t._row.data._index));t.length>0&&(this._selection_updating=!0,this.model.trigger_event(new T(t,!0,!1))),e.length>0&&(this._selection_updating=!0,this.model.trigger_event(new T(e,!1,!1)))}else{const e=t.map((t=>t._index)),i=this._filter_selected(e);this._selection_updating=e.length===i.length,this.model.source.selected.indices=i}this._selection_updating=!1}}cellEdited(t){const e=t._cell.column.field,i=this.columns.get(e),s=t.getData()._index,l=t._cell.value;if("numeric"!==i.validator||""!==l){this._tabulator_cell_updating=!0,w.comm_settings.debounce=!1,this.model.trigger_event(new S(e,s,!0));try{this.model.source.patch({[e]:[[s,l]]})}finally{w.comm_settings.debounce=!0,this._tabulator_cell_updating=!1}this.model.trigger_event(new S(e,s,!1)),this.tabulator.scrollToRow(s,"top",!1)}else t.setValue(NaN,!0)}}i.DataTabulatorView=F,F.__name__="DataTabulatorView",i.TableLayout=(0,m.Enum)("fit_data","fit_data_fill","fit_data_stretch","fit_data_table","fit_columns");class H extends x.HTMLBox{constructor(t){super(t)}}i.DataTabulator=H,r=H,H.__name__="DataTabulator",H.__module__="panel.models.tabulator",r.prototype.default_view=F,r.define((({Any:t,List:e,Bool:s,Nullable:l,Float:o,Ref:n,Str:a})=>({aggregators:[t,{}],buttons:[t,{}],children:[t,new Map],configuration:[t,{}],columns:[e(n(f.TableColumn)),[]],download:[s,!1],editable:[s,!0],embed_content:[s,!1],expanded:[e(o),[]],filename:[a,"table.csv"],filters:[e(t),[]],follow:[s,!0],frozen_rows:[e(o),[]],groupby:[e(a),[]],hidden_columns:[e(a),[]],indexes:[e(a),[]],layout:[i.TableLayout,"fit_data"],max_page:[o,0],pagination:[l(a),null],page:[o,0],page_size:[l(o),null],select_mode:[t,!0],selectable_rows:[l(e(o)),null],source:[n(p.ColumnDataSource)],sorters:[e(t),[]],cell_styles:[t,{}],theme_classes:[e(a),[]],container_popup:[s,!0]})))},
160
+ "8cfbb15960": function _(t,e,i,s,o){var l,n,a,r;s();const d=t("tslib"),h=t("@bokehjs/core/dom"),c=t("@bokehjs/core/util/arrayable"),u=t("@bokehjs/core/util/types"),_=t("@bokehjs/core/bokeh_events"),g=t("@bokehjs/core/dom"),m=t("@bokehjs/core/kinds"),p=t("@bokehjs/models/sources/column_data_source"),f=t("@bokehjs/models/widgets/tables"),b=t("99a25e6992"),w=t("1bec1b1fcc"),y=t("be689f0377"),x=t("9b11ce01a3"),v=t("a3669a897a"),z=d.__importDefault(t("3d732ff91f"));class S extends _.ModelEvent{constructor(t,e,i){super(),this.column=t,this.row=e,this.pre=i}get event_values(){return{model:this.origin,column:this.column,row:this.row,pre:this.pre}}}i.TableEditEvent=S,l=S,S.__name__="TableEditEvent",l.prototype.event_name="table-edit";class M extends _.ModelEvent{constructor(t,e){super(),this.column=t,this.row=e}get event_values(){return{model:this.origin,column:this.column,row:this.row}}}i.CellClickEvent=M,n=M,M.__name__="CellClickEvent",n.prototype.event_name="cell-click";class T extends _.ModelEvent{constructor(t,e,i=!1){super(),this.indices=t,this.selected=e,this.flush=i}get event_values(){return{model:this.origin,indices:this.indices,selected:this.selected,flush:this.flush}}}function C(t,e,i){for(const s of i)if(s[t]==e)return s;return null}function E(t,e,i,s=0){const o={};if(0==t.length)return o;let l="";s>0&&(l=i[s-1]);for(const n of t){const t=E(n._children,e,i,s+1);for(const e in t)(0,u.isArray)(t[e])?n[e]=(0,c.sum)(t[e])/t[e].length:n[e]=t[e];for(const t of e.slice(1)){let e="";"string"==typeof l?e=l:t.field in l&&(e=l[t.field]);const i=n[t.field];if(t.field in o){const s=o[t.field];"min"===e?o[t.field]=i<s?i:s:"max"===e?o[t.field]=i>s?i:s:"sum"===e?o[t.field]=i+s:"mean"===e&&((0,u.isArray)(o[t.field])?o[t.field].push(i):o[t.field]=[s,i])}else o[t.field]=i}}return o}function D(t,e,i,s){const o=[],l=e[0].field;for(const s of t){const t=s[i[0]];let n=C(l,t,o);null==n&&(n={_children:[]},n[l]=t,o.push(n));let a=n;for(const t of i.slice(1)){a=C(l,s[t],a._children),null==a&&(a={_children:[]},a[l]=s[t],n._children.push(a));for(const t of e.slice(1))a[t.field]=s[t];n=a}for(const t of e.slice(1))a[t.field]=s[t.field]}const n=[];for(const t of i)t in s?s[t]instanceof Map?n.push(Object.fromEntries(s[t])):n.push(s[t]):n.push("sum");return E(o,e,n),o}i.SelectionEvent=T,a=T,T.__name__="SelectionEvent",a.prototype.event_name="selection-change";const k=function(t,e,i,s,o,l,n){let a;a=0;const r={zone:new window.luxon.IANAZone("UTC")};if(t=Number.isNaN(t)?window.luxon.DateTime.fromISO("invalid"):window.luxon.DateTime.fromMillis(t,r),e=Number.isNaN(e)?window.luxon.DateTime.fromISO("invalid"):window.luxon.DateTime.fromMillis(e,r),t.isValid){if(e.isValid)return t-e;a=1}else a=e.isValid?-1:0;return a*=-1,a},P=function(t,e,i,s){const o=t.getValue(),l={zone:new window.luxon.IANAZone("UTC")};let n;n="NaN"===o||null===o?null:window.luxon.DateTime.fromMillis(o,l).toFormat("yyyy-MM-dd");const a=document.createElement("input");function r(){const t=window.luxon.DateTime.fromFormat(a.value,"yyyy-MM-dd",l).toMillis();t!=n?i(t):s()}return a.setAttribute("type","date"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",a.value=n,e((()=>{a.focus(),a.style.height="100%"})),a.addEventListener("blur",r),a.addEventListener("keydown",(t=>{"Enter"==t.key&&setTimeout(r,100),"Escape"==t.key&&setTimeout(s,100)})),a},L=function(t,e,i,s){const o=t.getValue(),l={zone:new window.luxon.IANAZone("UTC")};let n;n="NaN"===o||null===o?null:window.luxon.DateTime.fromMillis(o,l).toFormat("yyyy-MM-dd'T'T");const a=document.createElement("input");function r(){const t=window.luxon.DateTime.fromFormat(a.value,"yyyy-MM-dd'T'T",l).toMillis();t!=n?i(t):s()}return a.setAttribute("type","datetime-local"),a.style.padding="4px",a.style.width="100%",a.style.boxSizing="border-box",a.value=n,e((()=>{a.focus(),a.style.height="100%"})),a.addEventListener("blur",r),a.addEventListener("keydown",(t=>{"Enter"==t.key&&setTimeout(r,100),"Escape"==t.key&&setTimeout(s,100)})),a},R=function(t,e){const i=t.getRow().getData();let s=e.options;for(const t of e.lookup_order)if(s=i[t]in s?s[i[t]]:[],Array.isArray(s))break;return s||[]};function N(t,e){if(null==t.columns)return t.field===e?t:null;for(const i of t.columns){const t=N(i,e);if(t)return t}}function F(t){if(null==t.columns)return{...t};const e=[];for(const i of t.columns)e.push(F(i));return{...t,columns:e}}class V extends x.HTMLBoxView{constructor(){super(...arguments),this.columns=new Map,this.container=null,this._tabulator_cell_updating=!1,this._updating_page=!1,this._updating_expanded=!1,this._updating_sort=!1,this._updating_page_size=!1,this._selection_updating=!1,this._last_selected_row=null,this._lastVerticalScrollbarTopPosition=0,this._lastHorizontalScrollbarLeftPosition=0,this._applied_styles=!1,this._building=!1,this._redrawing=!1,this._debounced_redraw=null,this._restore_scroll=!1,this._updating_scroll=!1,this._is_scrolling=!1,this._automatic_page_size=!1}connect_signals(){super.connect_signals(),this._debounced_redraw=(0,b.debounce)((()=>this._resize_redraw()),20,!1);const{configuration:t,layout:e,columns:i,groupby:s,visible:o,download:l,children:n,expanded:a,cell_styles:r,hidden_columns:d,page_size:h,page:c,max_page:u,frozen_rows:_,sorters:g,theme_classes:m}=this.model.properties;this.on_change([t,e,s],(0,b.debounce)((()=>{this.invalidate_render()}),20,!1)),this.on_change(o,(()=>{this.model.visible&&(this.tabulator.element.style.visibility="visible")})),this.on_change(i,(()=>{this.tabulator.setColumns(this.getColumns()),this.setHidden()})),this.on_change(l,(()=>{const t=this.model.filename.endsWith(".json")?"json":"csv";this.tabulator.download(t,this.model.filename)})),this.on_change(n,(()=>this.renderChildren())),this.on_change(a,(()=>{for(const t of this.tabulator.rowManager.getRows())t.cells.length>0&&t.cells[0].layoutElement();for(const t of this.tabulator.rowManager.getRows())if(t.cells.length>0){const e=t.data._index,i=this.model.expanded.includes(e)?"\u25bc":"\u25ba";t.cells[1].element.innerText=i}this.model.embed_content&&!this._updating_expanded&&this.renderChildren()})),this.on_change(r,(()=>{this._applied_styles&&this.tabulator.redraw(!0),this.setStyles()})),this.on_change(d,(()=>{this.setHidden(),this.tabulator.redraw(!0)})),this.on_change(h,(()=>this.setPageSize())),this.on_change(c,(()=>{this._updating_page||this.setPage()})),this.on_change(o,(()=>this.setVisibility())),this.on_change(u,(()=>this.setMaxPage())),this.on_change(_,(()=>this.setFrozen())),this.on_change(g,(()=>this.setSorters())),this.on_change(m,(()=>this.setCSSClasses(this.tabulator.element))),this.on_change(this.model.source.properties.data,(()=>{void 0!==this.tabulator&&(this._restore_scroll="horizontal",this._selection_updating=!0,this._updating_scroll=!0,this.setData(),this._updating_scroll=!1,this._selection_updating=!1,this.postUpdate())})),this.connect(this.model.source.streaming,(()=>this.addData())),this.connect(this.model.source.patching,(()=>{const t=this.model.source.selected.indices;this._updating_scroll=!0,this.updateOrAddData(),this._updating_scroll=!1,this.model.source.selected.indices=t,this.restore_scroll()})),this.connect(this.model.source.selected.change,(()=>this.setSelection())),this.connect(this.model.source.selected.properties.indices.change,(()=>this.setSelection()))}get groupBy(){return this.model.groupby.length>0&&(t=>{const e=[];for(const i of this.model.groupby){const s=`${i}: ${t[i]}`;e.push(s)}return e.join(", ")})}get sorters(){const t=[];this.model.sorters.length>0&&t.push({column:"_index",dir:"asc"});for(const e of this.model.sorters.reverse())void 0===e.column&&(e.column=e.field),t.push(e);return t}invalidate_render(){this.tabulator.destroy(),this.tabulator=null,this.rerender_()}redraw(t=!0,e=!0){this._building||null==this.tabulator||this._redrawing||(this._redrawing=!0,t&&null!=this.tabulator.columnManager.element&&this.tabulator.columnManager.redraw(!0),e&&null!=this.tabulator.rowManager.renderer&&(this.tabulator.rowManager.redraw(!0),this.setStyles()),this._redrawing=!1,this._restore_scroll=!0)}get is_drawing(){return this._building||this._redrawing||!this.has_finished()}after_layout(){super.after_layout(),null!=this.tabulator&&this._initializing&&!this.is_drawing&&(this._initializing=!1,this._resize_redraw())}after_resize(){super.after_resize(),this._is_scrolling||this._initializing||this.is_drawing||this._debounced_redraw()}_resize_redraw(){if(this._initializing||!this.container||this._building)return;const t=this.container.clientWidth,e=this.container.clientHeight;t&&e&&(this.redraw(!0,!0),this.restore_scroll(),window.requestAnimationFrame((()=>this.recompute_page_size())))}stylesheets(){return[...super.stylesheets(),z.default]}setCSSClasses(t){t.className="pnx-tabulator tabulator";for(const e of this.model.theme_classes)t.classList.add(e)}render(){null!=this.tabulator&&this.tabulator.destroy(),super.render(),this._initializing=!0,this._building=!0;const t=(0,g.div)({style:{display:"contents"}}),e=(0,g.div)({style:{width:"100%",height:"100%",visibility:"hidden"}});this.container=e,this.setCSSClasses(e),t.appendChild(e),this.shadow_el.appendChild(t);const i=this.getConfiguration();this.tabulator=new Tabulator(e,i),this.watch_stylesheets(),this.init_callbacks()}style_redraw(){this.model.visible&&(this.tabulator.element.style.visibility="visible"),this._initializing||this._building||this.redraw()}tableInit(){this._building=!0;this.tabulator.modules.ajax.sendRequest=(t,e,i)=>this.requestPage(e.page,e.sort),this.tabulator.modules.page._parseRemoteData=()=>!1}init_callbacks(){this.tabulator.on("tableBuilding",(()=>this.tableInit())),this.tabulator.on("tableBuilt",(()=>this.tableBuilt())),this.tabulator.on("selectableRowsCheck",(t=>{const e=this.model.selectable_rows;return null==e||e.includes(t._row.data._index)})),this.tabulator.on("tooltips",(t=>`${t.getColumn().getField()}: ${t.getValue()}`)),this.tabulator.on("scrollVertical",(0,b.debounce)((()=>{this.setStyles()}),50,!1)),this.tabulator.on("rowSelectionChanged",((t,e,i,s)=>{this.rowSelectionChanged(t,e,i,s)})),this.tabulator.on("rowClick",((t,e)=>this.rowClicked(t,e))),this.tabulator.on("cellEdited",(t=>this.cellEdited(t))),this.tabulator.on("dataFiltering",(t=>{this.record_scroll(),this.model.filters=t})),this.tabulator.on("dataFiltered",((t,e)=>{this._building||(0===e.length&&this.tabulator.rowManager.renderEmptyScroll(),null!=this.model.pagination&&this.updatePage(this.tabulator.getPage()))})),this.tabulator.on("pageLoaded",(t=>{this.updatePage(t)})),this.tabulator.on("renderComplete",(()=>{this._building||this.postUpdate()})),this.tabulator.on("dataSorting",(t=>{const e=[];for(const i of t)"_index"!==i.field&&e.push({field:i.field,dir:i.dir});"remote"!==this.model.pagination&&(this._updating_sort=!0,this.model.sorters=e.reverse(),this._updating_sort=!1)}))}tableBuilt(){this.setSelection(),this.renderChildren(),this.setStyles();const t=this.shadow_el.querySelector(".tabulator-tableholder");let e;t&&t.addEventListener("scroll",(()=>{this.record_scroll(),this._is_scrolling=!0,clearTimeout(e),e=setTimeout((()=>{this._is_scrolling=!1}),200)})),this.model.pagination&&(this.setMaxPage(),this.tabulator.setPage(this.model.page)),this._building=!1,(0,v.schedule_when)((()=>{const t=this._initializing;this._initializing=!1,t&&this._resize_redraw()}),(()=>this.has_finished()&&[...this._initialized_stylesheets.values()].every((t=>t))))}recompute_page_size(){if(!this.model.pagination||null!==this.model.page_size||this._automatic_page_size)return;this._automatic_page_size=!0;const t=this.model.sizing_mode&&(this.model.sizing_mode.includes("height")||this.model.sizing_mode.includes("both")),e=this.shadow_el.querySelector(".tabulator-tableholder"),i=this.shadow_el.querySelector(".tabulator-table");if(null!=i&&null!=e){const s=e.clientHeight;let o=0,l=null;const n=[];for(let e=0;e<i.children.length;e++){const a=i.children[e].clientHeight;if(n.push(a),o+=a,o>s){l=e,t&&(l-=1);break}}if(o<s){l=i.children.length;const e=s-o;l+=Math.floor(e/Math.min(...n)),t&&(l-=2)}this._updating_page_size=!0;try{this.model.page_size=Math.max(l||1,1)}finally{this._updating_page_size=!1}}}requestPage(t,e){return new Promise(((i,s)=>{try{if(null!=t&&null!=e){this._updating_sort=!0;const i=[];for(const t of e)"_index"!==t.field&&i.push({field:t.field,dir:t.dir});this.model.sorters=i,this._updating_sort=!1,this._updating_page=!0;try{this.model.page=t||1}finally{this._updating_page=!1}}i([])}catch(t){s(t)}}))}getLayout(){switch(this.model.layout){case"fit_data":return"fitData";case"fit_data_fill":return"fitDataFill";case"fit_data_stretch":return"fitDataStretch";case"fit_data_table":return"fitDataTable";case"fit_columns":return"fitColumns"}}getConfiguration(){const t="toggle"===this.model.select_mode||NaN,e={...(0,v.transformJsPlaceholders)(this.model.configuration),index:"_index",nestedFieldSeparator:!1,movableColumns:!1,selectableRows:t,columns:this.getColumns(),initialSort:this.sorters,layout:this.getLayout(),pagination:null!=this.model.pagination,paginationMode:this.model.pagination,paginationSize:this.model.page_size||20,paginationInitialPage:1,popupContainer:this.model.container_popup&&this.container,groupBy:this.groupBy,frozenRows:t=>this.model.frozen_rows.length>0&&this.model.frozen_rows.includes(t._row.data._index),rowFormatter:t=>this._render_row(t,!1)};null!=this.model.max_height&&(e.maxHeight=this.model.max_height),"remote"===this.model.pagination&&(e.ajaxURL="http://panel.pyviz.org",e.sortMode="remote");const i=this.getData();return{...e,data:i}}get_child(t){return this.model.children instanceof Map&&this.model.children.get(t)||null}get child_models(){const t=[];for(const e of this.model.expanded){const i=this.get_child(e);null!=i&&t.push(i)}return t}get row_index(){const t=this.tabulator.getRows(),e=new Map;for(const i of t){const t=i._row?.data._index;null!=t&&e.set(t,i)}return e}renderChildren(){new Promise((async()=>{await this.build_child_views();const t=this.row_index,e=this.model.expanded;for(const i of e){const s=this.get_child(i),o=t.get(i);null!=(null==s?null:this._child_views.get(s))&&this._render_row(o,i===e[e.length-1])}}))}_render_row(t,e=!0){const i=t._row?.data._index;if(!this.model.expanded.includes(i))return;const s=this.get_child(i),o=null==s?null:this._child_views.get(s);null!=o&&(0,v.schedule_when)((()=>{const i=t.getElement(),s=getComputedStyle(this.tabulator.element.children[1].children[0]).backgroundColor,l=i.style.paddingLeft?`-${i.style.paddingLeft}`:"0",n=i.children[i.children.length-1];let a;if(null!=n&&"row-content"==n.className){if(a=n,a.children.length&&a.children[0]===o.el)return}else a=(0,g.div)({class:"row-content",style:{background_color:s,margin_left:l,max_width:"100%",overflow_x:"hidden"}}),i.appendChild(a);(0,h.display)(o.el),a.appendChild(o.el),0===o.shadow_el.children.length&&this.rerender_(o),e&&(this._update_children(),this.resize_table())}),(()=>this.has_finished()))}resize_table(){if(null!=this.tabulator.rowManager.renderer)try{this.tabulator.rowManager.adjustTableSize()}catch(t){}this.invalidate_layout()}_expand_render(t){const e=t._cell.row.data._index;return this.model.expanded.indexOf(e)<0?"\u25ba":"\u25bc"}_update_expand(t){const e=t._cell.row.data._index,i=[...this.model.expanded];if(i.includes(e)){const t=i.indexOf(e),s=i.splice(t,1)[0],o=this.get_child(s);if(null!=o){const t=this._child_views.get(o);void 0!==t&&null!=t.el&&(0,h.undisplay)(t.el)}}else i.push(e);if(this._updating_expanded=!0,this.model.expanded=i,this._updating_expanded=!1,!i.includes(e))return;let s=!0;for(const t of this.model.expanded)if(null==this.get_child(t)){s=!1;break}s&&this.renderChildren()}getData(){const t=this.model.source;let e;return e=null===t||0===t.columns().length?[]:(0,y.transform_cds_to_records)(t,!0),this.model.configuration.dataTree&&(e=D(e,this.model.columns,this.model.indexes,this.model.aggregators)),e}getColumns(){this.columns=new Map;const t=(0,v.transformJsPlaceholders)(this.model.configuration?.columns),e=[];if(e.push({field:"_index",frozen:!0,visible:!1}),null!=t)for(const i of t){const t=F(i);if("expand"===i.formatter){const t={hozAlign:"center",cellClick:(t,e)=>{this._update_expand(e)},formatter:t=>this._expand_render(t),width:40,frozen:!0};e.push(t)}else"rowSelection"===t.formatter&&(t.cellClick=(t,e)=>{e.getRow().toggleSelect()}),e.push(t)}for(const i of this.model.columns){let s=null;if(null!=t)for(const t of e)if(s=N(t,i.field),null!=s)break;if(null==s&&(s={field:i.field}),this.columns.set(i.field,s),null==s.title&&(s.title=i.title),void 0===s.headerTooltip&&(s.headerTooltip=!0),null==s.width&&null!=i.width&&0!=i.width&&(s.width=i.width),null==s.formatter&&null!=i.formatter){const t=i.formatter.type;s.formatter="BooleanFormatter"===t?"tickCross":t=>{const e=t.getRow(),s=i.formatter.doFormat(t.getRow(),t,t.getValue(),null,e.getData());if("HTMLTemplateFormatter"===i.formatter.type)return s;const o=(0,g.div)();o.innerHTML=s;const l=o.children[0];return"function(){return c.convert(arguments)}"===l.innerHTML?"":l}}"timestamp"==s.sorter&&(s.sorter=k),void 0===s.sorter&&(s.sorter="string");const o=i.editor,l=o.type;null!=s.editor?"date"===s.editor?s.editor=P:"datetime"===s.editor?s.editor=L:"nested"===s.editor&&(s.editorParams.valuesLookup=t=>R(t,s.editorParams),s.editor="list"):"StringEditor"===l?o.completions.length>0?(s.editor="list",s.editorParams={values:o.completions,autocomplete:!0,listOnEmpty:!0}):s.editor="input":"TextEditor"===l?s.editor="textarea":"IntEditor"===l||"NumberEditor"===l?(s.editor="number",s.editorParams={step:o.step},s.validator="IntEditor"===l?"integer":"numeric"):"CheckboxEditor"===l?s.editor="tickCross":"DateEditor"===l?s.editor=P:"SelectEditor"===l?(s.editor="list",s.editorParams={values:o.options}):null!=o&&null!=o.default_view&&(s.editor=(t,e,s,o)=>{this.renderEditor(i,t,e,s,o)}),s.visible=0!=s.visible&&!this.model.hidden_columns.includes(i.field);const n=s.editable;(0,u.isFunction)(n)?s.editable=t=>this.model.editable&&null!=o.default_view&&n(t):(0,u.isBoolean)(n)?s.editable=()=>this.model.editable&&null!=o.default_view&&n:s.editable=()=>this.model.editable&&null!=o.default_view,s.headerFilter&&(0,u.isBoolean)(s.headerFilter)&&(0,u.isString)(s.editor)&&(s.headerFilter=s.editor,s.headerFilterParams=s.editorParams);for(const t of this.model.sorters)s.field===t.field&&(s.headerSortStartingDir=t.dir);s.cellClick=(t,e)=>{const s=e.getData()._index,o=new M(i.field,s);this.model.trigger_event(o)},null==t&&e.push(s)}for(const t in this.model.buttons){const i={formatter:()=>this.model.buttons[t],hozAlign:"center",cellClick:(e,i)=>{const s=i.getData()._index,o=new M(t,s);this.model.trigger_event(o)}};e.push(i)}return this.model.container_popup&&"fit_data_stretch"!==this.model.layout&&e.push({width:1,maxWidth:1,minWidth:1,resizable:!1,cssClass:"empty",sorter:null}),e}renderEditor(t,e,i,s,o){const l=t.editor,n=new l.default_view({column:t,model:l,parent:this,container:e._cell.element});return n.initialize(),n.connect_signals(),i((()=>{n.setValue(e.getValue())})),n.inputEl.addEventListener("input",(()=>{const t=n.serializeValue(),i=e.getValue(),l=n.validate();l.valid||o(l.msg),null!=i&&typeof t!=typeof i?o("Mismatching type"):s(n.serializeValue())})),n.inputEl}setData(){if(this._initializing||this._building||!this.tabulator.initialized)return Promise.resolve(void 0);const t=this.getData();return null!=this.model.pagination?this.tabulator.rowManager.setData(t,!0,!1):this.tabulator.setData(t)}addData(){const t=this.tabulator.rowManager.getRows(),e=t[t.length-1],i=e?.data._index||0;this._updating_page=!0;const s=this.setData();this.model.follow?s.then((()=>{this.model.pagination&&this.tabulator.setPage(Math.ceil(this.tabulator.rowManager.getDataCount()/(this.model.page_size||20))),e&&this.tabulator.scrollToRow(i,"top",!1),this._updating_page=!1})):this._updating_page=!0}postUpdate(){if(this.setSelection(),this.setStyles(),this._restore_scroll){const t="horizontal"!==this._restore_scroll,e="vertical"!==this._restore_scroll;this.restore_scroll(e,t),this._restore_scroll=!1}}updateOrAddData(){if(this._tabulator_cell_updating)return;const t=this.tabulator.element.style.minHeight;this.tabulator.element.style.minHeight=`${this.tabulator.element.offsetHeight}px`;const e=(0,y.transform_cds_to_records)(this.model.source,!0);this.tabulator.setData(e).then((()=>{this.tabulator.element.style.minHeight=t}))}setFrozen(){for(const t of this.model.frozen_rows)this.tabulator.getRow(t).freeze()}setVisibility(){null!=this.tabulator&&(this.tabulator.element.style.visibility=this.model.visible?"visible":"hidden")}updatePage(t){"local"!==this.model.pagination||this.model.page===t||this._updating_page||(this._updating_page=!0,this.model.page=t,this._updating_page=!1,this.setStyles())}setGroupBy(){this.tabulator.setGroupBy(this.groupBy)}setSorters(){this._updating_sort||this.tabulator.setSort(this.sorters)}setStyles(){const t=this.model.cell_styles.data;if(null!=this.tabulator&&0!=this.tabulator.getDataCount()&&null!=t&&t.size){this._applied_styles=!1;for(const e of t.keys()){const i=t.get(e),s=this.tabulator.getRow(e);if(!s)continue;const o=s._row.cells;for(const t of i.keys()){const e=i.get(t),s=o[t];if(null==s||!e.length)continue;const l=s.element;for(const t of e){let e,i;if((0,u.isArray)(t))[e,i]=t;else{if(!t.includes(":"))continue;[e,i]=t.split(":")}l.style.setProperty(e,i.trimLeft()),this._applied_styles=!0}}}}}setHidden(){for(const t of this.tabulator.getColumns()){const e=t._column;"_index"==e.field||this.model.hidden_columns.includes(e.field)?t.hide():t.show()}}setMaxPage(){this.tabulator.setMaxPage(this.model.max_page),this.tabulator.modules.page.pagesElement&&this.tabulator.modules.page._setPageButtons()}setPage(){this.tabulator.setPage(Math.min(this.model.max_page,this.model.page)),"local"===this.model.pagination&&this.setStyles()}setPageSize(){this._updating_page_size||(this._automatic_page_size=!1),this.tabulator.setPageSize(this.model.page_size),"local"===this.model.pagination&&this.setStyles()}setSelection(){if(null==this.tabulator||this._initializing||this._selection_updating||!this.tabulator.initialized)return;const t=this.model.source.selected.indices,e=this.tabulator.getSelectedData().map((t=>t._index));if(JSON.stringify(t)!=JSON.stringify(e)){this._selection_updating=!0,this.tabulator.deselectRow(),this.tabulator.selectRow(t);for(const e of t){this.tabulator.rowManager.findRow(e)&&this.tabulator.scrollToRow(e,"center",!1).catch((()=>{}))}this._selection_updating=!1}}restore_scroll(t=!0,e=!0){if(!t&&!e)return;const i={behavior:"instant"};e&&(i.top=this._lastVerticalScrollbarTopPosition),t&&(i.left=this._lastHorizontalScrollbarLeftPosition),setTimeout((()=>{this._updating_scroll=!0,this.tabulator.rowManager.element.scrollTo(i),this._updating_scroll=!1}),0)}record_scroll(){this._updating_scroll||(this._lastVerticalScrollbarTopPosition=this.tabulator.rowManager.element.scrollTop,this._lastHorizontalScrollbarLeftPosition=this.tabulator.rowManager.element.scrollLeft)}rowClicked(t,e){if(this._selection_updating||this._initializing||(0,u.isString)(this.model.select_mode)||!1===this.model.select_mode||this.model.configuration.dataTree||"\u25ba"===t.srcElement?.innerText)return;let i=[];const s=this.model.source.selected,o=e._row.data._index;if(t.ctrlKey||t.metaKey)i=[...s.indices];else if(t.shiftKey&&this._last_selected_row){const t=e._row.parent.getDisplayRows(),s=t.indexOf(this._last_selected_row);if(-1!==s){const o=t.indexOf(e._row),l=s>o,[n,a]=l?[o+1,s+1]:[s,o];i=t.slice(n,a).map((t=>t.data._index)),l&&(i=i.reverse())}}const l=!(t.ctrlKey||t.metaKey||t.shiftKey),n=i.includes(o),a="remote"===this.model.pagination;if(!n||a?i.push(o):i.splice(i.indexOf(o),1),(0,u.isNumber)(this.model.select_mode))for(;i.length>this.model.select_mode;)i.shift();const r=this._filter_selected(i);a||(this.tabulator.deselectRow(),this.tabulator.selectRow(r)),this._last_selected_row=e._row,this._selection_updating=!0,a||(s.indices=r),this.model.trigger_event(new T(i,!n,l)),this._selection_updating=!1}_filter_selected(t){const e=[];for(const i of t)(null==this.model.selectable_rows||this.model.selectable_rows.indexOf(i)>=0)&&e.push(i);return e}rowSelectionChanged(t,e,i,s){if(!(this._selection_updating||this._initializing||(0,u.isBoolean)(this.model.select_mode)||(0,u.isNumber)(this.model.select_mode)||this.model.configuration.dataTree)){if("remote"===this.model.pagination){const t=i.map((t=>t._row.data._index)),e=s.map((t=>t._row.data._index));t.length>0&&(this._selection_updating=!0,this.model.trigger_event(new T(t,!0,!1))),e.length>0&&(this._selection_updating=!0,this.model.trigger_event(new T(e,!1,!1)))}else{const e=t.map((t=>t._index)),i=this._filter_selected(e);this._selection_updating=e.length===i.length,this.model.source.selected.indices=i}this._selection_updating=!1}}cellEdited(t){const e=t._cell.column.field,i=this.columns.get(e),s=t.getData()._index,o=t._cell.value;if("numeric"!==i.validator||""!==o){this._tabulator_cell_updating=!0,w.comm_settings.debounce=!1,this.model.trigger_event(new S(e,s,!0));try{this.model.source.patch({[e]:[[s,o]]})}finally{w.comm_settings.debounce=!0,this._tabulator_cell_updating=!1}this.model.trigger_event(new S(e,s,!1)),this.tabulator.scrollToRow(s,"top",!1)}else t.setValue(NaN,!0)}}i.DataTabulatorView=V,V.__name__="DataTabulatorView",i.TableLayout=(0,m.Enum)("fit_data","fit_data_fill","fit_data_stretch","fit_data_table","fit_columns");class A extends x.HTMLBox{constructor(t){super(t)}}i.DataTabulator=A,r=A,A.__name__="DataTabulator",A.__module__="panel.models.tabulator",r.prototype.default_view=V,r.define((({Any:t,List:e,Bool:s,Nullable:o,Float:l,Ref:n,Str:a})=>({aggregators:[t,{}],buttons:[t,{}],children:[t,new Map],configuration:[t,{}],columns:[e(n(f.TableColumn)),[]],download:[s,!1],editable:[s,!0],embed_content:[s,!1],expanded:[e(l),[]],filename:[a,"table.csv"],filters:[e(t),[]],follow:[s,!0],frozen_rows:[e(l),[]],groupby:[e(a),[]],hidden_columns:[e(a),[]],indexes:[e(a),[]],layout:[i.TableLayout,"fit_data"],max_page:[l,0],pagination:[o(a),null],page:[l,0],page_size:[o(l),null],select_mode:[t,!0],selectable_rows:[o(e(l)),null],source:[n(p.ColumnDataSource)],sorters:[e(t),[]],cell_styles:[t,{}],theme_classes:[e(a),[]],container_popup:[s,!0]})))},
161
161
  "99a25e6992": function _(n,l,u,t,e){function o(n,l,u){var t,e,o,a,r;function i(){var c=Date.now()-a;c<l&&c>=0?t=setTimeout(i,l-c):(t=null,u||(r=n.apply(o,e),o=e=null))}null==l&&(l=100);var c=function(){o=this,e=arguments,a=Date.now();var c=u&&!t;return t||(t=setTimeout(i,l)),c&&(r=n.apply(o,e),o=e=null),r};return c.clear=function(){t&&(clearTimeout(t),t=null)},c.flush=function(){t&&(r=n.apply(o,e),o=e=null,clearTimeout(t),t=null)},c}o.debounce=o,l.exports=o},
162
162
  "be689f0377": function _(n,e,t,l,o){l(),t.transform_cds_to_records=function(n,e=!1,t=0){const l=[],o=n.columns(),r=n.get_length();if(0===o.length||null===r)return[];for(let c=t;c<r;c++){const t={};for(const e of o){const l=n.get_array(e),o=null==l[0]||null==l[0].shape?null:l[0].shape;if(null!=o&&o.length>1&&(0,s.isNumber)(o[0]))t[e]=l.slice(c*o[1],c*o[1]+o[1]);else if(l.length!=r&&l.length%r==0){const n=l.length/r;t[e]=l.slice(c*n,c*n+n)}else t[e]=l[c]}e&&(t._index=c),l.push(t)}return l},t.dict_to_records=function(n,e=!0){for(let t=0;t<n.index.length;t++){const l={};for(const o of n)(e||"index"!==o)&&(l[o]=n[o][t])}return[]};const s=n("@bokehjs/core/util/types")},
163
163
  "3d732ff91f": function _(t,a,o,r,l){r(),o.panel_models_markup_HTML="bk-panel-models-markup-HTML",o.default=".pnx-tabulator.tabulator{overflow:visible;}.tabulator-table{max-width:max-content;}.tabulator-table .tabulator-row .row-content .bk-panel-models-markup-HTML{white-space:normal;}.tabulator-table .tabulator-cell.empty{min-width:0px !important;width:0px !important;padding:0px !important;}.tabulator-header .tabulator-col.empty{min-width:0px !important;width:100% !important;border-right:unset !important;}.tabulator-header .tabulator-col.empty .tabulator-col-content{padding:0px !important;}"},
@@ -205,9 +205,9 @@ const r=t("@bokehjs/core/util/types");let o,s;const c={fontFamily:'"Helvetica Ne
205
205
  "0dca2cd4f6": function _(e,t,s,l,i){var o;l();const r=e("96e805ccb5"),a=e("@bokehjs/core/dom"),n=e("@bokehjs/core/util/pretty");class _ extends r.PlayerView{append_value_to_title_el(){let e=this.model.options[this.model.value];"string"!=typeof e&&(e=(0,n.to_string)(e)),this.titleEl.appendChild((0,a.span)({class:"pn-player-value"},e))}}s.DiscretePlayerView=_,_.__name__="DiscretePlayerView";class c extends r.Player{constructor(e){super(e)}}s.DiscretePlayer=c,o=c,c.__name__="DiscretePlayer",c.__module__="panel.models.widgets",o.prototype.default_view=_,o.define((({List:e,Any:t})=>({options:[e(t),[]]}))),o.override({width:400})},
206
206
  "96e805ccb5": function _(t,e,s,i,l){var o;i();const n=t("@bokehjs/core/kinds"),a=t("@bokehjs/core/dom"),r=t("@bokehjs/models/widgets/widget"),h=t("@bokehjs/core/util/pretty"),d='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-minus" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M5 12l14 0" /></svg>',p='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-track-prev-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M20.341 4.247l-8 7a1 1 0 0 0 0 1.506l8 7c.647 .565 1.659 .106 1.659 -.753v-14c0 -.86 -1.012 -1.318 -1.659 -.753z" stroke-width="0" fill="currentColor" /><path d="M9.341 4.247l-8 7a1 1 0 0 0 0 1.506l8 7c.647 .565 1.659 .106 1.659 -.753v-14c0 -.86 -1.012 -1.318 -1.659 -.753z" stroke-width="0" fill="currentColor" /></svg>',c='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-skip-back-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M19.496 4.136l-12 7a1 1 0 0 0 0 1.728l12 7a1 1 0 0 0 1.504 -.864v-14a1 1 0 0 0 -1.504 -.864z" stroke-width="0" fill="currentColor" /><path d="M4 4a1 1 0 0 1 .993 .883l.007 .117v14a1 1 0 0 1 -1.993 .117l-.007 -.117v-14a1 1 0 0 1 1 -1z" stroke-width="0" fill="currentColor" /></svg>',u='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-play-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round" style="transform: scaleX(-1);"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" stroke-width="0" fill="currentColor" /></svg>',_='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-pause-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M9 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" stroke-width="0" fill="currentColor" /><path d="M17 4h-2a2 2 0 0 0 -2 2v12a2 2 0 0 0 2 2h2a2 2 0 0 0 2 -2v-12a2 2 0 0 0 -2 -2z" stroke-width="0" fill="currentColor" /></svg>',m='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-play-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M6 4v16a1 1 0 0 0 1.524 .852l13 -8a1 1 0 0 0 0 -1.704l-13 -8a1 1 0 0 0 -1.524 .852z" stroke-width="0" fill="currentColor" /></svg>',v='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-skip-forward-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M3 5v14a1 1 0 0 0 1.504 .864l12 -7a1 1 0 0 0 0 -1.728l-12 -7a1 1 0 0 0 -1.504 .864z" stroke-width="0" fill="currentColor" /><path d="M20 4a1 1 0 0 1 .993 .883l.007 .117v14a1 1 0 0 1 -1.993 .117l-.007 -.117v-14a1 1 0 0 1 1 -1z" stroke-width="0" fill="currentColor" /></svg>',g='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-player-track-next-filled" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M2 5v14c0 .86 1.012 1.318 1.659 .753l8 -7a1 1 0 0 0 0 -1.506l-8 -7c-.647 -.565 -1.659 -.106 -1.659 .753z" stroke-width="0" fill="currentColor" /><path d="M13 5v14c0 .86 1.012 1.318 1.659 .753l8 -7a1 1 0 0 0 0 -1.506l-8 -7c-.647 -.565 -1.659 -.106 -1.659 .753z" stroke-width="0" fill="currentColor" /></svg>',f='<svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-plus" width="12" height="12" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"/><path d="M12 5l0 14" /><path d="M5 12l14 0" /></svg>';function w(t){t.forEach((t=>t.style.borderStyle="inset"))}function y(t){t.forEach((t=>t.style.borderStyle="outset"))}class b extends r.WidgetView{constructor(){super(...arguments),this._changing=!1}connect_signals(){super.connect_signals();const{title:t,value_align:e,direction:s,value:i,loop_policy:l,disabled:o,show_loop_controls:n,show_value:a,scale_buttons:r,visible_buttons:h,visible_loop_options:d}=this.model.properties;this.on_change(t,(()=>this.update_title_and_value())),this.on_change(e,(()=>this.set_value_align())),this.on_change(s,(()=>this.set_direction())),this.on_change(i,(()=>this.update_value())),this.on_change(l,(()=>this.set_loop_state(this.model.loop_policy))),this.on_change(o,(()=>this.toggle_disable())),this.on_change(n,(()=>{this.model.show_loop_controls&&this.loop_state.parentNode!=this.groupEl?this.groupEl.appendChild(this.loop_state):this.model.show_loop_controls||this.loop_state.parentNode!=this.groupEl||this.groupEl.removeChild(this.loop_state)})),this.on_change(a,(()=>this.update_title_and_value())),this.on_change(r,(()=>this.update_css())),this.on_change(h,(()=>this.update_css())),this.on_change(d,(()=>this.update_css()))}toggle_disable(){this.sliderEl.disabled=this.model.disabled;for(const t of this.buttonEl.children){t.disabled=this.model.disabled}for(const t of this.loop_state.children)if("input"==t.tagName){t.disabled=this.model.disabled}}get_height(){return 250}update_css(){const t=`text-align: center; flex-grow: 1; margin: 2px; transform: scale(${this.model.scale_buttons}); max-width: 50px;`,e=`text-align: center; flex-grow: 2; margin: 2px; transform: scale(${this.model.scale_buttons}); max-width: 50px;`,s={slower:this.slower,first:this.first,previous:this.previous,reverse:this.reverse,pause:this.pause,play:this.play,next:this.next,last:this.last,faster:this.faster};for(const[i,l]of Object.entries(s))l&&(this.model.visible_buttons.includes(i)?(l.style.display="",l.style.cssText+="slower"===i||"faster"===i?t:e):l.style.display="none");for(const t of this.loop_state.children)if("input"==t.tagName.toLowerCase()){const e=t;this.model.visible_loop_options.includes(e.value)?e.style.display="":e.style.display="none"}else if("label"==t.tagName.toLowerCase()){const e=t;this.model.visible_loop_options.includes(e.innerHTML.toLowerCase())?e.style.display="":e.style.display="none"}}update_value(){null!=this.sliderEl&&(this.sliderEl.min=String(this.model.start),this.sliderEl.max=String(this.model.end),this.sliderEl.value=String(this.model.value))}render(){super.render(),this.groupEl=(0,a.div)(),this.groupEl.style.display="flex",this.groupEl.style.flexDirection="column",this.titleEl=(0,a.div)(),this.titleEl.classList.add("pn-player-title"),this.titleEl.style.padding="0 5px 0 5px",this.update_title_and_value(),this.set_value_align(),this.sliderEl=document.createElement("input"),this.sliderEl.style.width="100%",this.sliderEl.setAttribute("type","range"),this.sliderEl.value=String(this.model.value),this.sliderEl.min=String(this.model.start),this.sliderEl.max=String(this.model.end),this.sliderEl.addEventListener("input",(t=>{this.set_frame(parseInt(t.target.value),!1)})),this.sliderEl.addEventListener("change",(t=>{this.set_frame(parseInt(t.target.value))}));const t=(0,a.div)();this.buttonEl=t,t.style.cssText="margin: 0 auto; display: flex; padding: 5px; align-items: stretch; justify-content: center; width: 100%;",this.slower=document.createElement("button"),this.slower.classList.add("slower"),this.slower.innerHTML=d,this.slower.onclick=()=>this.slower_speed(),t.appendChild(this.slower),this.first=document.createElement("button"),this.first.classList.add("first"),this.first.innerHTML=p,this.first.onclick=()=>this.first_frame(),t.appendChild(this.first),this.previous=document.createElement("button"),this.previous.classList.add("previous"),this.previous.innerHTML=c,this.previous.onclick=()=>this.previous_frame(),t.appendChild(this.previous),this.reverse=document.createElement("button"),this.reverse.classList.add("reverse"),this.reverse.innerHTML=u,this.reverse.onclick=()=>this.reverse_animation(),t.appendChild(this.reverse),this.pause=document.createElement("button"),this.pause.classList.add("pause"),this.pause.innerHTML=_,this.pause.onclick=()=>this.pause_animation(),t.appendChild(this.pause),this.play=document.createElement("button"),this.play.classList.add("play"),this.play.innerHTML=m,this.play.onclick=()=>this.play_animation(),t.appendChild(this.play),this.next=document.createElement("button"),this.next.classList.add("next"),this.next.innerHTML=v,this.next.onclick=()=>this.next_frame(),t.appendChild(this.next),this.last=document.createElement("button"),this.last.classList.add("last"),this.last.innerHTML=g,this.last.onclick=()=>this.last_frame(),t.appendChild(this.last),this.faster=document.createElement("button"),this.faster.classList.add("faster"),this.faster.innerHTML=f,this.faster.onclick=()=>this.faster_speed(),t.appendChild(this.faster),this._toggle_reverse=()=>{y([this.pause,this.play]),w([this.reverse])},this._toogle_pause=()=>{y([this.reverse,this.play]),w([this.pause])},this._toggle_play=()=>{y([this.reverse,this.pause]),w([this.play])},this.loop_state=document.createElement("form"),this.loop_state.style.cssText="margin: 0 auto; display: table";const e=document.createElement("input");e.classList.add("once"),e.type="radio",e.value="once",e.name="state";const s=document.createElement("label");s.innerHTML="Once",s.classList.add("once-label"),s.style.cssText="padding: 0 10px 0 5px; user-select:none;";const i=document.createElement("input");i.classList.add("loop"),i.setAttribute("type","radio"),i.setAttribute("value","loop"),i.setAttribute("name","state");const l=document.createElement("label");l.classList.add("loop-label"),l.innerHTML="Loop",l.style.cssText="padding: 0 10px 0 5px; user-select:none;";const o=document.createElement("input");o.classList.add("reflect"),o.setAttribute("type","radio"),o.setAttribute("value","reflect"),o.setAttribute("name","state");const n=document.createElement("label");l.classList.add("reflect-label"),n.innerHTML="Reflect",n.style.cssText="padding: 0 10px 0 5px; user-select:none;","once"==this.model.loop_policy?e.checked=!0:"loop"==this.model.loop_policy?i.checked=!0:o.checked=!0,this.loop_state.appendChild(e),this.loop_state.appendChild(s),this.loop_state.appendChild(i),this.loop_state.appendChild(l),this.loop_state.appendChild(o),this.loop_state.appendChild(n),this.groupEl.appendChild(this.titleEl),this.groupEl.appendChild(this.sliderEl),this.groupEl.appendChild(t),this.model.show_loop_controls&&this.groupEl.appendChild(this.loop_state),this.toggle_disable(),this.update_css(),this.shadow_el.appendChild(this.groupEl),this.set_direction()}set_frame(t,e=!0){this.model.value=t,this.update_title_and_value(),e&&(this.model.value_throttled=t),this.sliderEl.value!=String(t)&&(this.sliderEl.value=String(t))}get_loop_state(){const t=this.loop_state.state;for(let e=0;e<t.length;e++){const s=t[e];if(s.checked)return s.value}return"once"}update_title_and_value(){(0,a.empty)(this.titleEl);const t=null==this.model.title||0==this.model.title.length&&!this.model.show_value;if(this.titleEl.style.display=t?"none":"",t)this.titleEl.style.visibility="hidden";else{this.titleEl.style.visibility="visible";const{title:t}=this.model;null!=t&&t.length>0&&(this.contains_tex_string(t)?(this.titleEl.innerHTML=`${this.process_tex(t)}`,this.model.show_value&&(this.titleEl.innerHTML+=": ")):(this.titleEl.textContent=`${t}`,this.model.show_value&&(this.titleEl.textContent+=": "))),this.model.show_value&&this.append_value_to_title_el()}}append_value_to_title_el(){this.titleEl.appendChild((0,a.span)({class:"pn-player-value"},(0,h.to_string)(this.model.value)))}set_value_align(){switch(this.model.value_align){case"start":this.titleEl.style.textAlign="left";break;case"center":this.titleEl.style.textAlign="center";break;case"end":this.titleEl.style.textAlign="right"}}set_loop_state(t){const e=this.loop_state.state;for(let s=0;s<e.length;s++){const i=e[s];i.value==t&&(i.checked=!0)}}next_frame(){this.set_frame(Math.min(this.model.end,this.model.value+this.model.step))}previous_frame(){this.set_frame(Math.max(this.model.start,this.model.value-this.model.step))}first_frame(){this.set_frame(this.model.start)}last_frame(){this.set_frame(this.model.end)}updateSpeedButton(t,e,s){const i=1e3/e;t.innerHTML=`${i.toFixed(1)}<br>fps`,setTimeout((()=>{t.innerHTML=s}),this.model.preview_duration)}slower_speed(){this.model.interval=Math.round(this.model.interval/.7),this.updateSpeedButton(this.slower,this.model.interval,d),this.model.direction>0?this.play_animation():this.model.direction<0&&this.reverse_animation()}faster_speed(){this.model.interval=Math.round(.7*this.model.interval),this.updateSpeedButton(this.faster,this.model.interval,f),this.model.direction>0?this.play_animation():this.model.direction<0&&this.reverse_animation()}anim_step_forward(){if(this.model.value<this.model.end)this.next_frame();else{const t=this.get_loop_state();"loop"==t?this.first_frame():"reflect"==t?(this.last_frame(),this.reverse_animation()):(this.pause_animation(),this.last_frame())}}anim_step_reverse(){if(this.model.value>this.model.start)this.previous_frame();else{const t=this.get_loop_state();"loop"==t?this.last_frame():"reflect"==t?(this.first_frame(),this.play_animation()):(this.pause_animation(),this.first_frame())}}set_direction(){this._changing||(0===this.model.direction?this.pause_animation():1===this.model.direction?this.play_animation():-1===this.model.direction&&this.reverse_animation())}pause_animation(){this._toogle_pause(),this._changing=!0,this.model.direction=0,this._changing=!1,this.timer&&(clearInterval(this.timer),this.timer=null)}play_animation(){this.pause_animation(),this._toggle_play(),this._changing=!0,this.model.direction=1,this._changing=!1,this.timer||(this.timer=setInterval((()=>this.anim_step_forward()),this.model.interval))}reverse_animation(){this.pause_animation(),this._toggle_reverse(),this._changing=!0,this.model.direction=-1,this._changing=!1,this.timer||(this.timer=setInterval((()=>this.anim_step_reverse()),this.model.interval))}}s.PlayerView=b,b.__name__="PlayerView",s.LoopPolicy=(0,n.Enum)("once","loop","reflect");class k extends r.Widget{constructor(t){super(t)}}s.Player=k,o=k,k.__name__="Player",k.__module__="panel.models.widgets",o.prototype.default_view=b,o.define((({Bool:t,Int:e,Float:i,List:l,Str:o})=>({direction:[e,0],interval:[e,500],start:[e,0],end:[e,10],step:[e,1],loop_policy:[s.LoopPolicy,"once"],title:[o,""],value:[e,0],value_align:[o,"start"],value_throttled:[e,0],preview_duration:[e,1500],show_loop_controls:[t,!0],show_value:[t,!0],button_scale:[i,1],scale_buttons:[i,1],visible_buttons:[l(o),["slower","first","previous","reverse","pause","play","next","last","faster"]],visible_loop_options:[l(o),["once","loop","reflect"]]}))),o.override({width:400})},
207
207
  "1da56f3c52": function _(e,t,s,n,o){var i,h;n();const r=e("@bokehjs/core/bokeh_events"),c=e("@bokehjs/core/dom"),a=e("a572dba9cd"),l=e("9b11ce01a3"),d=e("a3669a897a"),_=["click","dblclick","mousedown","mousemove","mouseup","mouseover","mouseout","globalout","contextmenu"].concat(["highlight","downplay","selectchanged","legendselectchangedEvent","legendselected","legendunselected","legendselectall","legendinverseselect","legendscroll","datazoom","datarangeselected","timelineplaychanged","restore","dataviewchanged","magictypechanged","geoselectchanged","geoselected","geounselected","axisareaselected","brush","brushEnd","rushselected","globalcursortaken","rendered","finished"]);class u extends r.ModelEvent{constructor(e,t,s){super(),this.type=e,this.data=t,this.query=s}get event_values(){return{model:this.origin,type:this.type,data:this.data,query:this.query}}}s.EChartsEvent=u,i=u,u.__name__="EChartsEvent",i.prototype.event_name="echarts_event";class g extends l.HTMLBoxView{constructor(){super(...arguments),this._callbacks=[]}connect_signals(){super.connect_signals();const{width:e,height:t,renderer:s,theme:n,event_config:o,js_events:i,data:h}=this.model.properties;this.on_change(h,(()=>this._plot())),this.on_change([e,t],(()=>this._resize())),this.on_change([n,s],(()=>{this.render(),this._chart.resize()})),this.on_change([o,i],(()=>this._subscribe()))}render(){if(null!=this._chart)try{window.echarts.dispose(this._chart)}catch(e){}super.render(),this.container=(0,c.div)({style:{height:"100%",width:"100%"}});const e={width:this.model.width,height:this.model.height,renderer:this.model.renderer};this._chart=window.echarts.init(this.container,this.model.theme,e),this._plot(),this._subscribe(),this.shadow_el.append(this.container)}remove(){super.remove(),null!=this._chart&&window.echarts.dispose(this._chart)}after_layout(){super.after_layout(),null!=this._chart&&this._chart.resize()}_plot(){if(null==window.echarts)return;const e=(0,d.transformJsPlaceholders)(this.model.data);this._chart.setOption(e,this.model.options)}_resize(){this._chart.resize({width:this.model.width,height:this.model.height})}_subscribe(){if(null!=window.echarts){for(const[e,t]of this._callbacks)this._chart.off(e,t);this._callbacks=[];for(const e in this.model.event_config){if(!_.includes(e)){console.warn(`Could not subscribe to unknown Echarts event: ${e}.`);continue}const t=this.model.event_config[e];for(const s of t){const t=t=>{const n={...t};n.event=(0,a.serializeEvent)(t.event?.event);const o=JSON.parse(JSON.stringify(n));this.model.trigger_event(new u(e,o,s))};null==s?this._chart.on(e,s,t):this._chart.on(e,t),this._callbacks.push([e,t])}}for(const e in this.model.js_events){if(!_.includes(e)){console.warn(`Could not subscribe to unknown Echarts event: ${e}.`);continue}const t=this.model.js_events[e];for(const s of t){const t=e=>{s.callback.execute(this._chart,e)};"query"in s?this._chart.on(e,s.query,t):this._chart.on(e,t),this._callbacks.push([e,t])}}}}}s.EChartsView=g,g.__name__="EChartsView";class m extends l.HTMLBox{constructor(e){super(e)}}s.ECharts=m,h=m,m.__name__="ECharts",m.__module__="panel.models.echarts",h.prototype.default_view=g,h.define((({Any:e,Str:t})=>({data:[e,{}],options:[e,{}],event_config:[e,{}],js_events:[e,{}],theme:[t,"default"],renderer:[t,"canvas"]})))},
208
- "4cfe0841a5": function _(e,t,s,i,r){var l,o;i();var n,_=this&&this.__decorate||function(e,t,s,i){var r,l=arguments.length,o=l<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,s,i);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(o=(l<3?r(o):l>3?r(t,s,o):r(t,s))||o);return l>3&&o&&Object.defineProperty(t,s,o),o};const c=e("b273e5b2fb"),h=e("@bokehjs/core/bokeh_events"),d=e("@bokehjs/core/build_views"),a=e("@bokehjs/models/layouts/column");let v=(l=class extends h.ModelEvent{constructor(e,t,s){super(),this.model=e,this.rerender=t,this.scroll_limit=s,this.origin=e,this.rerender=t,this.scroll_limit=s}get event_values(){return{model:this.origin,rerender:this.rerender,scroll_limit:this.scroll_limit}}static from_values(e){const{model:t,rerender:s,scroll_limit:i}=e;return new n(t,s,i)}},n=l,l.__name__="ScrollLatestEvent",l);s.ScrollLatestEvent=v,s.ScrollLatestEvent=v=n=_([(0,h.server_event)("scroll_latest_event")],v);class u extends c.ColumnView{constructor(){super(...arguments),this._rendered=!1,this._reference=null,this._reference_view=null}initialize(){super.initialize(),this._sync=!0,this._intersection_observer=new IntersectionObserver((e=>{const t=[...this.model.visible_children],s=this.node_map;for(const i of e){const e=s.get(i.target).id;i.isIntersecting?t.includes(e)||t.push(e):t.includes(e)&&t.splice(t.indexOf(e),1)}if(this._sync&&(this.model.visible_children=t),t.length>0){const e=this.child_models.map((e=>e.id)),s=t.map((t=>e.indexOf(t)));this._last_visible=this.child_views[Math.min(...s)]}else this._last_visible=null}),{root:this.el,threshold:.01})}connect_signals(){super.connect_signals(),this.model.on_event(v,(e=>{this.scroll_to_latest(e.scroll_limit),e.rerender&&(this._rendered=!1)}))}get node_map(){const e=new Map;for(const t of this.child_views)e.set(t.el,t.model);return e}async update_children(){const e=this._last_visible,t=this.el.scrollTop;this._reference_view=e,this._reference=e?.el.offsetTop||0,this._sync=!1;const s=await this.build_child_views(),i=new Set(s),r=s.length,l=this.child_views.length,o=s.every(((e,t)=>e===this.child_views[t])),n=s.every(((e,t)=>e===this.child_views[l-r+t])),_=!(o||n);if(_)for(const e of this.child_views)e.el.remove();const c=[];for(const e of this.child_views){const t=i.has(e),s=this.shadow_el;_?t?e.render_to(s):s.append(e.el):t&&(e.render(),e.r_after_render(),n?s.append(e.el):o&&c.push(e.el))}o&&this.shadow_el.prepend(...c),this.r_after_render(),this._update_children(),this.invalidate_layout(),this._sync=!0,o&&requestAnimationFrame((()=>{const e=(this._reference_view?.el.offsetTop||0)-(this._reference||0);this.el.scrollTo({top:t+e,behavior:"smooth"})}))}async build_child_views(){const{created:e,removed:t}=await(0,d.build_views)(this._child_views,this.child_models,{parent:this}),s=this.model.visible_children;for(const e of t)s.includes(e.model.id)&&s.splice(s.indexOf(e.model.id),1),this._resize_observer.unobserve(e.el),this._intersection_observer.unobserve(e.el);this.model.visible_children=[...s];for(const t of e)this._resize_observer.observe(t.el,{box:"border-box"}),this._intersection_observer.observe(t.el);return e}_update_layout(){super._update_layout(),this.style.append(":host > div",{max_height:"unset"})}render(){this._rendered=!1,super.render()}trigger_auto_scroll(){}after_render(){a.ColumnView.prototype.after_render.call(this),requestAnimationFrame((()=>{this.model.scroll_position&&this.scroll_to_position(),this.model.view_latest&&!this._rendered&&this.scroll_to_latest(),this.toggle_scroll_button(),this._rendered=!0}))}}s.FeedView=u,u.__name__="FeedView";class f extends c.Column{constructor(e){super(e)}}s.Feed=f,o=f,f.__name__="Feed",f.__module__="panel.models.feed",o.prototype.default_view=u,o.define((({List:e,Str:t})=>({visible_children:[e(t),[]]})))},
208
+ "f9c84aaf3d": function _(e,t,s,i,r){var l,o;i();var n,_=this&&this.__decorate||function(e,t,s,i){var r,l=arguments.length,o=l<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,s):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,s,i);else for(var n=e.length-1;n>=0;n--)(r=e[n])&&(o=(l<3?r(o):l>3?r(t,s,o):r(t,s))||o);return l>3&&o&&Object.defineProperty(t,s,o),o};const c=e("b273e5b2fb"),h=e("@bokehjs/core/bokeh_events"),d=e("@bokehjs/core/build_views"),a=e("@bokehjs/models/layouts/column");let v=(l=class extends h.ModelEvent{constructor(e,t,s){super(),this.model=e,this.rerender=t,this.scroll_limit=s,this.origin=e,this.rerender=t,this.scroll_limit=s}get event_values(){return{model:this.origin,rerender:this.rerender,scroll_limit:this.scroll_limit}}static from_values(e){const{model:t,rerender:s,scroll_limit:i}=e;return new n(t,s,i)}},n=l,l.__name__="ScrollLatestEvent",l);s.ScrollLatestEvent=v,s.ScrollLatestEvent=v=n=_([(0,h.server_event)("scroll_latest_event")],v);class u extends c.ColumnView{constructor(){super(...arguments),this._rendered=!1,this._reference=null,this._reference_view=null}initialize(){super.initialize(),this._sync=!0,this._intersection_observer=new IntersectionObserver((e=>{const t=[...this.model.visible_children],s=this.node_map;for(const i of e){const e=s.get(i.target)?.id;i.isIntersecting?t.includes(e)||t.push(e):t.includes(e)&&t.splice(t.indexOf(e),1)}if(this._sync&&(this.model.visible_children=t),t.length>0){const e=this.child_models.map((e=>e.id)),s=t.map((t=>e.indexOf(t)));this._last_visible=this.child_views[Math.min(...s)]}else this._last_visible=null}),{root:this.el,threshold:.01})}connect_signals(){super.connect_signals(),this.model.on_event(v,(e=>{this.scroll_to_latest(e.scroll_limit),e.rerender&&(this._rendered=!1)}))}get node_map(){const e=new Map;for(const t of this.child_views)e.set(t.el,t.model);return e}async update_children(){const e=this._last_visible,t=this.el.scrollTop;this._reference_view=e,this._reference=e?.el.offsetTop||0,this._sync=!1;const s=await this.build_child_views(),i=new Set(s),r=s.length,l=this.child_views.length,o=s.every(((e,t)=>e===this.child_views[t])),n=s.every(((e,t)=>e===this.child_views[l-r+t])),_=!(o||n);if(_)for(const e of this.child_views)e.el.remove();const c=[];for(const e of this.child_views){const t=i.has(e),s=this.shadow_el;_?t?e.render_to(s):s.append(e.el):t&&(e.render(),e.r_after_render(),n?s.append(e.el):o&&c.push(e.el))}o&&this.shadow_el.prepend(...c),this.r_after_render(),this._update_children(),this.invalidate_layout(),this._sync=!0,o&&requestAnimationFrame((()=>{const e=(this._reference_view?.el.offsetTop||0)-(this._reference||0);this.el.scrollTo({top:t+e,behavior:"smooth"})}))}async build_child_views(){const{created:e,removed:t}=await(0,d.build_views)(this._child_views,this.child_models,{parent:this}),s=this.model.visible_children;for(const e of t)s.includes(e.model.id)&&s.splice(s.indexOf(e.model.id),1),this._resize_observer.unobserve(e.el),this._intersection_observer.unobserve(e.el);this.model.visible_children=[...s];for(const t of e)this._resize_observer.observe(t.el,{box:"border-box"}),this._intersection_observer.observe(t.el);return e}_update_layout(){super._update_layout(),this.style.append(":host > div",{max_height:"unset"})}render(){this._rendered=!1,super.render()}trigger_auto_scroll(){}after_render(){a.ColumnView.prototype.after_render.call(this),requestAnimationFrame((()=>{this.model.scroll_position&&this.scroll_to_position(),this.model.view_latest&&!this._rendered&&this.scroll_to_latest(),this.toggle_scroll_button(),this._rendered=!0}))}}s.FeedView=u,u.__name__="FeedView";class f extends c.Column{constructor(e){super(e)}}s.Feed=f,o=f,f.__name__="Feed",f.__module__="panel.models.feed",o.prototype.default_view=u,o.define((({List:e,Str:t})=>({visible_children:[e(t),[]]})))},
209
209
  "84a13dddfb": function _(e,t,i,l,s){var o;l();const n=e("tslib"),a=e("@bokehjs/core/build_views"),h=e("@bokehjs/core/enums"),_=e("@bokehjs/models/widgets/input_widget"),d=e("@bokehjs/models/ui/icons/icon"),r=n.__importStar(e("@bokehjs/styles/buttons.css")),c=r,u=e("@bokehjs/core/dom");class b extends _.InputWidgetView{constructor(){super(...arguments),this._downloadable=!1,this._prev_href="",this._prev_download=""}*children(){yield*super.children(),null!=this.icon_view&&(yield this.icon_view)}*controls(){yield this.anchor_el,yield this.button_el}connect_signals(){super.connect_signals();const{button_type:e,filename:t,_transfers:i,label:l}=this.model.properties;this.on_change(e,(()=>this._update_button_style())),this.on_change(t,(()=>this._update_download())),this.on_change(i,(()=>this._handle_click())),this.on_change(l,(()=>this._update_label()))}remove(){null!=this.icon_view&&this.icon_view.remove(),super.remove()}async lazy_initialize(){await super.lazy_initialize();const{icon:e}=this.model;null!=e&&(this.icon_view=await(0,a.build_view)(e,{parent:this}))}_render_input(){if(this.anchor_el=document.createElement("a"),this.button_el=(0,u.button)({disabled:this.model.disabled}),null!=this.icon_view){const e=""!=this.model.label?(0,u.nbsp)():(0,u.text)("");this.anchor_el.appendChild(this.icon_view.el),this.anchor_el.appendChild(e),this.icon_view.render()}return this.label_el=document.createTextNode(this.model.label),this.anchor_el.appendChild(this.label_el),this._update_button_style(),this.model.disabled?(this.anchor_el.setAttribute("disabled",""),this._downloadable=!1):(this.anchor_el.removeAttribute("disabled"),this._prev_download&&(this.anchor_el.download=this._prev_download),this._prev_href&&(this.anchor_el.href=this._prev_href),this.anchor_el.download&&this.anchor_el.download&&(this._downloadable=!0)),this.model.embed?this._make_link_downloadable():(this._click_listener=this._increment_clicks.bind(this),this.anchor_el.addEventListener("click",this._click_listener)),this.button_el.appendChild(this.anchor_el),this.input_el=(0,u.input)(),this.button_el}render(){super.render(),this.group_el.style.display="flex",this.group_el.style.alignItems="stretch"}stylesheets(){return[...super.stylesheets(),r.default]}_increment_clicks(){this.model.clicks=this.model.clicks+1}_handle_click(){!this.model.auto&&this._downloadable||this.anchor_el.hasAttribute("disabled")||(this._make_link_downloadable(),!this.model.embed&&this.model.auto&&(this.anchor_el.removeEventListener("click",this._click_listener),this.anchor_el.click(),this.anchor_el.removeAttribute("href"),this.anchor_el.removeAttribute("download"),this.anchor_el.addEventListener("click",this._click_listener)),this._prev_href=this.anchor_el.getAttribute("href"),this._prev_download=this.anchor_el.getAttribute("download"))}_make_link_downloadable(){this._update_href(),this._update_download(),this.anchor_el.download&&this.anchor_el.href&&(this._downloadable=!0)}_update_href(){if(this.model.data){const e=function(e){const t=atob(e.split(",")[1]),i=e.split(",")[0].split(":")[1].split(";")[0],l=new ArrayBuffer(t.length),s=new Uint8Array(l);for(let e=0;e<t.length;e++)s[e]=t.charCodeAt(e);return new Blob([l],{type:i})}(this.model.data);this.anchor_el.href=URL.createObjectURL(e)}}_update_download(){this.model.filename&&(this.anchor_el.download=this.model.filename)}_update_label(){this.label_el.data=this.model.label}_update_button_style(){const e=c[`btn_${this.model.button_type}`];if(this.button_el.hasAttribute("class")){const t=this.anchor_el.classList.item(1);t&&this.button_el.classList.replace(t,e)}else this.button_el.classList.add(c.btn),this.button_el.classList.add(e)}}i.FileDownloadView=b,b.__name__="FileDownloadView";class p extends _.InputWidget{constructor(e){super(e)}}i.FileDownload=p,o=p,p.__name__="FileDownload",p.__module__="panel.models.widgets",o.prototype.default_view=b,o.define((({Bool:e,Int:t,Nullable:i,Ref:l,Str:s})=>({auto:[e,!1],clicks:[t,0],data:[i(s),null],embed:[e,!1],icon:[i(l(d.Icon)),null],label:[s,"Download"],filename:[i(s),null],button_type:[h.ButtonType,"default"],_transfers:[t,0]}))),o.override({title:""})},
210
- "e8b7476f90": function _(e,i,t,l,s){var n,o,a;l();const d=e("tslib"),r=e("@bokehjs/core/bokeh_events"),_=e("@bokehjs/core/dom"),p=e("@bokehjs/core/kinds"),u=e("@bokehjs/models/widgets/input_widget"),m=d.__importStar(e("@bokehjs/styles/widgets/inputs.css")),c=d.__importDefault(e("c03dd3c931"));class h extends r.ModelEvent{constructor(e){super(),this.data=e}get event_values(){return{model:this.origin,data:this.data}}}t.UploadEvent=h,n=h,h.__name__="UploadEvent",n.prototype.event_name="upload_event";class f extends r.ModelEvent{constructor(e){super(),this.data=e}get event_values(){return{model:this.origin,data:this.data}}}t.DeleteEvent=f,o=f,f.__name__="DeleteEvent",o.prototype.event_name="delete_event";class w extends u.InputWidgetView{constructor(){super(...arguments),this._file_pond=null,this._transfer_in_process=null}initialize(){super.initialize();const{previews:e}=this.model;e.includes("image")&&window.FilePond.registerPlugin(window.FilePondPluginImagePreview),e.includes("pdf")&&window.FilePond.registerPlugin(window.FilePondPluginPdfPreview),window.FilePond.registerPlugin(window.FilePondPluginFileValidateType),window.FilePond.registerPlugin(window.FilePondPluginFileValidateSize)}connect_signals(){super.connect_signals();const{disabled:e,layout:i,max_file_size:t,max_files:l,max_total_file_size:s,multiple:n}=this.model.properties;this.on_change([e,t,l,s,n,i],(()=>{this._file_pond?.setOptions({acceptedFileTypes:this.model.accepted_filetypes,allowMultiple:this.model.multiple,disabled:this.model.disabled,maxFiles:this.model.max_files,maxFileSize:this.model.max_file_size,maxTotalFileSize:this.model.max_total_file_size,stylePanelLayout:this.model.layout})}))}remove(){this._file_pond&&this._file_pond.destroy(),super.remove()}stylesheets(){return[...super.stylesheets(),c.default]}_render_input(){const{multiple:e,disabled:i}=this.model;return this.input_el=(0,_.input)({type:"file",class:m.input,multiple:e,disabled:i})}render(){super.render(),this._file_pond=window.FilePond.create(this.input_el,{acceptedFileTypes:this.model.accepted_filetypes,allowMultiple:this.model.multiple,credits:!1,disabled:this.model.disabled,maxFiles:this.model.max_files,maxFileSize:this.model.max_file_size,maxTotalFileSize:this.model.max_total_file_size,server:{process:(e,i,t,l,s,n)=>{this._process_upload(i,l,s,n)},fetch:null,revert:(e,i)=>{this.model.trigger_event(new f({name:e})),i()}},stylePanelLayout:this.model.layout})}async _process_upload(e,i,t,l){const s=this.model.chunk_size,n=Math.ceil((e.size+1)/s);let o=!1;return new Promise((async(t,a)=>{for(let i=0;i<n;i++){if(o)return void a(e.name);const t=i*s,d=Math.min(t+s,e.size);this.model.trigger_event(new h({chunk:i+1,data:await e.slice(t,d).arrayBuffer(),name:e._relativePath||e.name,total_chunks:n,type:e.type})),l(!0,d,e.size)}i(e.name),t(e.name)})).catch((()=>t("Upload failed."))),{abort:()=>{o=!0}}}}t.FileDropperView=w,w.__name__="FileDropperView",t.DropperLayout=(0,p.Enum)("integrated","compact","circle");class g extends u.InputWidget{constructor(e){super(e)}}t.FileDropper=g,a=g,g.__name__="FileDropper",g.__module__="panel.models.file_dropper",a.prototype.default_view=w,a.define((({Any:e,List:i,Bool:l,Int:s,Nullable:n,Str:o})=>({accepted_filetypes:[i(o),[]],chunk_size:[s,1e7],max_file_size:[n(o),null],max_files:[n(s),null],max_total_file_size:[n(o),null],mime_type:[e,{}],multiple:[l,!0],layout:[n(t.DropperLayout),null],previews:[i(o),["image","pdf"]]})))},
210
+ "8531319d94": function _(e,t,i,a,o){var l,s,p;a();const n=e("tslib"),c=e("@bokehjs/core/bokeh_events"),r=e("@bokehjs/core/dom"),m=e("@bokehjs/core/kinds"),d=e("@bokehjs/models/widgets/input_widget"),u=n.__importStar(e("@bokehjs/styles/widgets/inputs.css")),_=n.__importDefault(e("c03dd3c931"));class f extends c.ModelEvent{constructor(e){super(),this.data=e}get event_values(){return{model:this.origin,data:this.data}}}i.UploadEvent=f,l=f,f.__name__="UploadEvent",l.prototype.event_name="upload_event";class x extends c.ModelEvent{constructor(e){super(),this.data=e}get event_values(){return{model:this.origin,data:this.data}}}i.DeleteEvent=x,s=x,x.__name__="DeleteEvent",s.prototype.event_name="delete_event";const g={".png":"image/png",".jpg":"image/jpeg",".jpeg":"image/jpeg",".gif":"image/gif",".svg":"image/svg+xml",".webp":"image/webp",".bmp":"image/bmp",".ico":"image/x-icon",".tiff":"image/tiff",".tif":"image/tiff",".avif":"image/avif",".mp4":"video/mp4",".webm":"video/webm",".mov":"video/quicktime",".mkv":"video/x-matroska",".avi":"video/x-msvideo",".wmv":"video/x-ms-wmv",".flv":"video/x-flv",".mp3":"audio/mpeg",".wav":"audio/wav",".ogg":"audio/ogg",".oga":"audio/ogg",".m4a":"audio/mp4",".aac":"audio/aac",".flac":"audio/flac",".txt":"text/plain",".md":"text/markdown",".rtf":"application/rtf",".pdf":"application/pdf",".json":"application/json",".xml":"text/xml",".csv":"text/csv",".tsv":"text/tab-separated-values",".yaml":"text/yaml",".yml":"text/yaml",".html":"text/html",".htm":"text/html",".css":"text/css",".js":"text/javascript",".mjs":"text/javascript",".ts":"application/typescript",".jsx":"text/jsx",".tsx":"text/tsx",".wasm":"application/wasm",".doc":"application/msword",".docx":"application/vnd.openxmlformats-officedocument.wordprocessingml.document",".xls":"application/vnd.ms-excel",".xlsb":"application/vnd.ms-excel.sheet.binary.macroenabled.12",".xlsx":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",".ppt":"application/vnd.ms-powerpoint",".pptx":"application/vnd.openxmlformats-officedocument.presentationml.presentation",".odt":"application/vnd.oasis.opendocument.text",".ods":"application/vnd.oasis.opendocument.spreadsheet",".odp":"application/vnd.oasis.opendocument.presentation",".zip":"application/zip",".tar":"application/x-tar",".gz":"application/gzip",".tgz":"application/gzip",".bz2":"application/x-bzip2",".xz":"application/x-xz",".7z":"application/x-7z-compressed",".rar":"application/vnd.rar",".ttf":"font/ttf",".otf":"font/otf",".woff":"font/woff",".woff2":"font/woff2",".exe":"application/vnd.microsoft.portable-executable",".dll":"application/vnd.microsoft.portable-executable",".bin":"application/octet-stream",".dmg":"application/x-apple-diskimage",".pkg":"application/octet-stream",".deb":"application/vnd.debian.binary-package",".rpm":"application/x-rpm",".parquet":"application/octet-stream",".arrow":"application/octet-stream",".feather":"application/octet-stream",".orc":"application/octet-stream",".npy":"application/octet-stream",".npz":"application/octet-stream",".mat":"application/octet-stream",".h5":"application/octet-stream",".hdf5":"application/octet-stream",".zarr":"application/octet-stream",".rds":"application/octet-stream",".rda":"application/octet-stream",".rdata":"application/octet-stream",".ipynb":"application/json",".pkl":"application/octet-stream",".pickle":"application/octet-stream",".joblib":"application/octet-stream",".onnx":"application/octet-stream",".pt":"application/octet-stream",".pth":"application/octet-stream",".h5model":"application/octet-stream",".shp":"application/octet-stream",".shx":"application/octet-stream",".dbf":"application/octet-stream",".geojson":"application/geo+json",".gpkg":"application/octet-stream",".geotiff":"image/tiff",".asc":"text/plain"};class h extends d.InputWidgetView{constructor(){super(...arguments),this._file_pond=null,this._transfer_in_process=null}extensionsToMimeTypes(e){return e.map((e=>{if(e.includes("/"))return e;if(e.startsWith(".")){const t=e.toLowerCase();return g[t]||e}return e}))}initialize(){super.initialize();const{previews:e}=this.model;e.includes("image")&&window.FilePond.registerPlugin(window.FilePondPluginImagePreview),e.includes("pdf")&&window.FilePond.registerPlugin(window.FilePondPluginPdfPreview),window.FilePond.registerPlugin(window.FilePondPluginFileValidateType),window.FilePond.registerPlugin(window.FilePondPluginFileValidateSize)}connect_signals(){super.connect_signals();const{disabled:e,layout:t,max_file_size:i,max_files:a,max_total_file_size:o,multiple:l}=this.model.properties;this.on_change([e,i,a,o,l,t],(()=>{this._file_pond?.setOptions({acceptedFileTypes:this.extensionsToMimeTypes(this.model.accepted_filetypes),allowMultiple:this.model.multiple,disabled:this.model.disabled,maxFiles:this.model.max_files,maxFileSize:this.model.max_file_size,maxTotalFileSize:this.model.max_total_file_size,stylePanelLayout:this.model.layout})}))}remove(){this._file_pond&&this._file_pond.destroy(),super.remove()}stylesheets(){return[...super.stylesheets(),_.default]}_render_input(){const{multiple:e,disabled:t}=this.model;return this.input_el=(0,r.input)({type:"file",class:u.input,multiple:e,disabled:t})}render(){super.render(),this._file_pond=window.FilePond.create(this.input_el,{acceptedFileTypes:this.extensionsToMimeTypes(this.model.accepted_filetypes),allowMultiple:this.model.multiple,credits:!1,disabled:this.model.disabled,maxFiles:this.model.max_files,maxFileSize:this.model.max_file_size,maxTotalFileSize:this.model.max_total_file_size,server:{process:(e,t,i,a,o,l)=>{this._process_upload(t,a,o,l)},fetch:null,revert:(e,t)=>{this.model.trigger_event(new x({name:e})),t()}},stylePanelLayout:this.model.layout})}async _process_upload(e,t,i,a){const o=this.model.chunk_size,l=Math.ceil((e.size+1)/o);let s=!1;return new Promise((async(i,p)=>{for(let t=0;t<l;t++){if(s)return void p(e.name);const i=t*o,n=Math.min(i+o,e.size);this.model.trigger_event(new f({chunk:t+1,data:await e.slice(i,n).arrayBuffer(),name:e._relativePath||e.name,total_chunks:l,type:e.type})),a(!0,n,e.size)}t(e.name),i(e.name)})).catch((()=>i("Upload failed."))),{abort:()=>{s=!0}}}}i.FileDropperView=h,h.__name__="FileDropperView",i.DropperLayout=(0,m.Enum)("integrated","compact","circle");class v extends d.InputWidget{constructor(e){super(e)}}i.FileDropper=v,p=v,v.__name__="FileDropper",v.__module__="panel.models.file_dropper",p.prototype.default_view=h,p.define((({Any:e,List:t,Bool:a,Int:o,Nullable:l,Str:s})=>({accepted_filetypes:[t(s),[]],chunk_size:[o,1e7],max_file_size:[l(s),null],max_files:[l(o),null],max_total_file_size:[l(s),null],mime_type:[e,{}],multiple:[a,!0],layout:[l(i.DropperLayout),null],previews:[t(s),["image","pdf"]]})))},
211
211
  "c03dd3c931": function _(o,r,n,l,f){l(),n.input="bk-input",n.default=".bk-input.filepond--root{background-color:var(--panel-surface-color, #f1f1f1);border:unset;}.bk-input.filepond--root .filepond--drop-label{color:var(--panel-on-surface-color, #000);background-color:var(--panel-surface-color, #f1f1f1);}"},
212
212
  "8a8089cbf3": function _(e,i,t,n,s){var o;n();const l=e("@bokehjs/core/dom"),r=e("9b11ce01a3"),d=window.Jupyter;class a extends r.HTMLBoxView{initialize(){let e;if(super.initialize(),null!=d&&null!=d.notebook)e=d.notebook.kernel.widget_manager;else{if(null==window.PyViz.widget_manager)return void console.warn("Panel IPyWidget model could not find a WidgetManager");e=window.PyViz.widget_manager}this.manager=e,this.ipychildren=[]}remove(){this.ipyview.remove(),super.remove()}_ipy_stylesheets(){const e=[];for(const i of document.head.children)if(i instanceof HTMLStyleElement){const t=i.textContent;if(null!=t){const i=t.replace(/:root/g,":host");e.push(new l.InlineStyleSheet(i))}}return e}stylesheets(){return[...super.stylesheets(),...this._ipy_stylesheets()]}render(){super.render();const{spec:e,state:i}=this.model.bundle;this.manager.set_state(i).then((async i=>{const t=i.find((i=>i.model_id==e.model_id));if(null==t)return;const n=await this.manager.create_view(t,{el:this.el});if(this.ipyview=n,this.ipychildren=[],n.children_views)for(const e of n.children_views.views)this.ipychildren.push(await e);this.shadow_el.appendChild(this.ipyview.el),this.ipyview.trigger("displayed",this.ipyview);for(const e of this.ipychildren)e.trigger("displayed",e);this.invalidate_layout()}))}}t.IPyWidgetView=a,a.__name__="IPyWidgetView";class h extends r.HTMLBox{constructor(e){super(e)}}t.IPyWidget=h,o=h,h.__name__="IPyWidget",h.__module__="panel.models.ipywidget",o.prototype.default_view=a,o.define((({Any:e})=>({bundle:[e,{}]})))},
213
213
  "245cd3cfde": function _(e,t,r,s,n){var o;s();const d=e("tslib"),i=e("@bokehjs/core/kinds"),h=e("@bokehjs/models/widgets/markup"),l=d.__importDefault(e("ec9d1ffc2e")),a=e("9b11ce01a3");class c extends a.PanelMarkupView{connect_signals(){super.connect_signals();const{depth:e,hover_preview:t,text:r,theme:s}=this.model.properties;this.on_change([e,t,r,s],(()=>this.rerender_()))}render(){super.render();const e=this.model.text.replace(/(\r\n|\n|\r)/gm,"");let t;try{t=window.JSON.parse(e)}catch(e){return void(this.container.innerHTML=`<b>Invalid JSON:</b> ${e}`)}const r={hoverPreviewEnabled:this.model.hover_preview,theme:this.model.theme},s=null==this.model.depth?1/0:this.model.depth,n=new l.default(t,s,r).render(),o="border-radius: 5px; padding: 10px; width: 100%; height: 100%;";"dark"==this.model.theme?n.style.cssText=`background-color: rgb(30, 30, 30);${o}`:n.style.cssText=o,this.container.append(n)}}r.JSONView=c,c.__name__="JSONView",r.JSONTheme=(0,i.Enum)("dark","light");class p extends h.Markup{constructor(e){super(e)}}r.JSON=p,o=p,p.__name__="JSON",p.__module__="panel.models.markup",o.prototype.default_view=c,o.define((({List:e,Bool:t,Int:s,Nullable:n,Str:o})=>({css:[e(o),[]],depth:[n(s),1],hover_preview:[t,!1],theme:[r.JSONTheme,"dark"]})))},
@@ -226,11 +226,11 @@ const r=t("@bokehjs/core/util/types");let o,s;const c={fontFamily:'"Helvetica Ne
226
226
  "b1f4d68596": function _(e,s,t,o,l){var i;o();const r=e("@bokehjs/core/dom"),a=e("9b11ce01a3");class h extends a.HTMLBoxView{connect_signals(){super.connect_signals();const{width:e,height:s,height_policy:t,width_policy:o,sizing_mode:l,active:i,bar_color:r,css_classes:a,value:h,max:n}=this.model.properties;this.on_change([e,s,t,o,l],(()=>this.rerender_())),this.on_change([i,r,a],(()=>this.setCSS())),this.on_change(h,(()=>this.setValue())),this.on_change(n,(()=>this.setMax()))}render(){super.render();const e={...this.model.styles,display:"inline-block"};this.progressEl=document.createElement("progress"),this.setValue(),this.setMax(),this.setCSS();for(const s in e)this.progressEl.style.setProperty(s,e[s]);this.shadow_el.appendChild(this.progressEl)}stylesheets(){const e=super.stylesheets();for(const s of this.model.css)e.push(new r.ImportedStyleSheet(s));return e}setCSS(){let e=`${this.model.css_classes.join(" ")} ${this.model.bar_color}`;this.model.active&&(e=`${e} active`),this.progressEl.className=e}setValue(){null==this.model.value?this.progressEl.value=0:this.model.value>=0?this.progressEl.value=this.model.value:this.model.value<0&&this.progressEl.removeAttribute("value")}setMax(){null!=this.model.max&&(this.progressEl.max=this.model.max)}}t.ProgressView=h,h.__name__="ProgressView";class n extends a.HTMLBox{constructor(e){super(e)}}t.Progress=n,i=n,n.__name__="Progress",n.__module__="panel.models.widgets",i.prototype.default_view=h,i.define((({Any:e,List:s,Bool:t,Float:o,Str:l})=>({active:[t,!0],bar_color:[l,"primary"],css:[s(l),[]],max:[o,100],value:[e,null]})))},
227
227
  "f6d86c7342": function _(e,t,i,l,o){var s;l();const n=e("@bokehjs/core/dom"),a=e("9b11ce01a3");class d extends a.HTMLBoxView{connect_signals(){super.connect_signals();const{disabled:e,visible:t,text:i,mode:l,toolbar:o,placeholder:s}=this.model.properties;this.on_change(e,(()=>{this.quill.enable(!this.model.disabled)})),this.on_change(t,(()=>{this.model.visible&&(this.container.style.visibility="visible")})),this.on_change(i,(()=>{this._editing||(this._editing=!0,this.quill.enable(!1),this.quill.setContents([]),this.quill.clipboard.dangerouslyPasteHTML(this.model.text),this.quill.enable(!this.model.disabled),this._editing=!1)})),this.on_change(s,(()=>{this.quill.root.setAttribute("data-placeholder",this.model.placeholder)})),this.on_change([l,o],(()=>{this.render(),this._layout_toolbar()}))}_layout_toolbar(){if(null==this._toolbar)this.el.style.removeProperty("padding-top");else{const e=this._toolbar.getBoundingClientRect().height+1;this.el.style.paddingTop=`${e}px`,this._toolbar.style.marginTop=-e+"px"}}render(){super.render(),this.container=(0,n.div)({style:{visibility:"hidden"}}),this.shadow_el.appendChild(this.container);const e="bubble"===this.model.mode?"bubble":"snow";this.watch_stylesheets(),this.quill=new window.Quill(this.container,{modules:{toolbar:this.model.toolbar},readOnly:!0,placeholder:this.model.placeholder,theme:e});const t=!!document.createElement("div").attachShadow({mode:"open"}).getSelection;this.quill.selection.hasFocus=()=>this.quill.root.getRootNode().activeElement===this.quill.root,this.quill.selection.getNativeRange=()=>{const e=(e=>{try{if(t)return e.getSelection().getRangeAt(0);{const t=window.getSelection();return t.getComposedRanges?t.getComposedRanges(e)[0]:t.getRangeAt(0)}}catch{return null}})(this.quill.root.getRootNode());return e?this.quill.selection.normalizeNative(e):null},this.quill.selection.setNativeRange=(e,t,i=void 0,l=void 0,o=!1)=>{if(i=void 0===i?e:i,l=void 0===l?t:l,o=o||!1,null!=e&&(null==this.quill.selection.root.parentNode||null==e.parentNode||null==i.parentNode))return;const s=document.getSelection();if(null!=s)if(null!=e){this.quill.selection.hasFocus()||this.quill.selection.root.focus();const n=(this.quill.selection.getNativeRange()||{}).native;(null==n||o||e!==n.startContainer||t!==n.startOffset||i!==n.endContainer||l!==n.endOffset)&&("BR"==e.tagName&&(t=Array.prototype.indexOf.call(e.parentNode?.childNodes??[],e),e=e.parentNode),"BR"==i.tagName&&(l=Array.prototype.indexOf(i.parentNode?.childNodes??[],i),i=i.parentNode),s.setBaseAndExtent(e,t,i,l))}else s.removeAllRanges(),this.quill.selection.root.blur(),document.body.focus()},this._editor=this.shadow_el.querySelector(".ql-editor"),this._toolbar=this.shadow_el.querySelector(".ql-toolbar");const i=this.quill.clipboard.convert({html:this.model.text});this.quill.setContents(i),this.quill.on("text-change",(()=>{this._editing||(this._editing=!0,this.model.text=this.quill.getSemanticHTML(),this._editing=!1)})),this.model.disabled||this.quill.enable(!this.model.disabled),document.addEventListener("selectionchange",((...e)=>{this.quill.selection.update()}))}style_redraw(){this.model.visible&&(this.container.style.visibility="visible");const e=this.quill.clipboard.convert({html:this.model.text});this.quill.setContents(e),this.invalidate_layout()}after_layout(){super.after_layout(),this._layout_toolbar()}}i.QuillInputView=d,d.__name__="QuillInputView";class h extends a.HTMLBox{constructor(e){super(e)}}i.QuillInput=h,s=h,h.__name__="QuillInput",h.__module__="panel.models.quill",s.prototype.default_view=d,s.define((({Any:e,Str:t})=>({mode:[t,"toolbar"],placeholder:[t,""],text:[t,""],toolbar:[e,null]}))),s.override({height:300})},
228
228
  "25e2d7c208": function _(t,o,e,i,l){var s;i();const n=t("@bokehjs/models/ui/tooltip"),a=t("@bokehjs/core/build_views"),p=t("@bokehjs/models/widgets/radio_button_group");class u extends p.RadioButtonGroupView{*children(){yield*super.children(),null!=this.tooltip&&(yield this.tooltip)}connect_signals(){super.connect_signals();const{tooltip:t}=this.model.properties;this.on_change(t,(()=>this.update_tooltip()))}async update_tooltip(){null!=this.tooltip&&this.tooltip.remove();const{tooltip:t}=this.model;null!=t&&(this.tooltip=await(0,a.build_view)(t,{parent:this}))}async lazy_initialize(){await super.lazy_initialize();const{tooltip:t}=this.model;null!=t&&(this.tooltip=await(0,a.build_view)(t,{parent:this}))}remove(){this.tooltip?.remove(),super.remove()}render(){super.render();const t=t=>{this.tooltip?.model.setv({visible:t})};let o;this.el.addEventListener("mouseenter",(()=>{o=setTimeout((()=>t(!0)),this.model.tooltip_delay)})),this.el.addEventListener("mouseleave",(()=>{clearTimeout(o),t(!1)}))}}e.RadioButtonGroupView=u,u.__name__="RadioButtonGroupView";class d extends p.RadioButtonGroup{constructor(t){super(t)}}e.RadioButtonGroup=d,s=d,d.__name__="RadioButtonGroup",d.__module__="panel.models.widgets",s.prototype.default_view=u,s.define((({Nullable:t,Ref:o,Float:e})=>({tooltip:[t(o(n.Tooltip)),null],tooltip_delay:[e,500]})))},
229
- "1170146660": function _(e,t,n,r,s){var o;r();const i=e("@bokehjs/core/dom"),a=e("@bokehjs/core/util/types"),d=e("d92390e7cb");class l extends i.InlineStyleSheet{constructor(e,t,n=!1,r=""){super(e,t,n),this.persistent=n,this.host_id=r}replace(e,t){e=e.replace(/:host\b/g,`#${this.host_id}`),super.replace(e,t)}prepend(e,t){e=e.replace(/:host\b/g,`#${this.host_id}`),super.prepend(e,t)}append(e,t){e=e.replace(/:host\b/g,`#${this.host_id}`),super.append(e,t)}}n.HostedStyleSheet=l,l.__name__="HostedStyleSheet";class c extends d.ReactiveESMView{constructor(){super(...arguments),this.model_getter=d.model_getter,this.model_setter=d.model_setter,this.react_root=null,this._force_update_callbacks=[]}initialize(){super.initialize(),this.use_shadow_dom||(this.display=new l("","display",!1,this.model.id),this.style=new l("","style",!1,this.model.id),this.parent_style=new l("","parent",!0,this.model.id))}get use_shadow_dom(){return this.model.use_shadow_dom||!(this.parent instanceof c)}render_esm(){if(null!==this.model.compiled&&null!==this.model.render_module){this.model.usesMui&&(this.model.root_node?this.style_cache=document.head:(this.style_cache=document.createElement("head"),this.shadow_el.insertBefore(this.style_cache,this.container))),this.accessed_properties=[];for(const e of this._lifecycle_handlers.keys())(this._lifecycle_handlers.get(e)||[]).splice(0);this.model.disconnect_watchers(this),this.model.render_module.then((e=>{this.react_root=e.default.render(this.model.id)}))}}on_force_update(e){this._force_update_callbacks.push(e)}force_update(){for(const e of this._force_update_callbacks)e()}remove(){if(this._force_update_callbacks=[],this.react_root&&this.use_shadow_dom)super.remove(),this.react_root.then((e=>e&&e.unmount()));else{this._applied_stylesheets.forEach((e=>e.uninstall()));for(const e of this._lifecycle_handlers.get("remove")||[])e();this._child_callbacks.clear(),this._child_rendered.clear(),this._mounted.clear()}}get root_view(){let e=this;if(this.use_shadow_dom)return e;for(;e.parent instanceof c;)e=e.parent;return e}_apply_stylesheets(e){const t=e.map((e=>(0,a.isString)(e)?new i.InlineStyleSheet(e):e)),n=this.root_view.shadow_el.querySelectorAll("style"),r=this.root_view.shadow_el.querySelectorAll("link");t.forEach((e=>{if(!this.use_shadow_dom){if(e instanceof i.InlineStyleSheet&&Array.from(n).some((t=>t.innerHTML===e.css)))return;if(e instanceof i.ImportedStyleSheet&&Array.from(r).some((t=>t.href===e.el.href)))return}this._applied_stylesheets.push(e),e.install(this.root_view.shadow_el)}))}render(){this.react_root&&this.react_root.then((e=>e.unmount())),this._force_update_callbacks=[],super.render()}r_after_render(){super.r_after_render(),this.use_shadow_dom&&this.force_update()}_update_layout(){super._update_layout();const e=this._lifecycle_handlers.get("update_layout")||[];for(const t of e)t()}async update_children(){const e=new Set(await this.build_child_views()),t=this.child_views,n=new Map;for(const t of this.child_views){if(!e.has(t))continue;const r=this._lookup_child(t);r&&(n.has(r)?n.get(r).push(t):n.set(r,[t]))}if(this.use_shadow_dom)for(const e of this._child_rendered.keys())t.includes(e)||(this._child_rendered.delete(e),e.el.remove());for(const e of this.model.children){const t=this._child_callbacks.get(e)||[],r=n.get(e)||[];for(const e of t)e(r)}this._update_children()}_on_mounted(){this.invalidate_layout()}patch_container(e){this.el=this.container=e,this._update_stylesheets(),this.class_list=new i.ClassList(this.container.classList),this._apply_html_attributes()}after_rendered(){const e=this._lifecycle_handlers.get("after_render")||[];for(const t of e)t();if(!this._rendered)for(const e of this._lifecycle_handlers.get("after_layout")||[])e();this._rendered=!0}}n.ReactComponentView=c,c.__name__="ReactComponentView";class h extends d.ReactiveESM{constructor(e){super(e),this.sucrase_transforms=["typescript","jsx"]}get usesMui(){return!!this.importmap?.imports&&Object.keys(this.importmap?.imports).some((e=>e.startsWith("@mui")))}_render_code(){let[e,t]=["",""];const n="url"===this.bundle?this.esm:this.bundle||`${this.class_name}-${this.esm.length}`;this.bundle?t=`\n const ns = await view._module_cache.get("${n}")\n const {React, createRoot} = ns.default`:e='\nimport * as React from "react"\nimport { createRoot } from "react-dom/client"';let r="",s="";return this.usesMui&&(this.bundle?t=`\n const ns = await view._module_cache.get("${n}")\n const {CacheProvider, React, createCache, createRoot} = ns.default`:e=`\n${e}\nimport createCache from "@emotion/cache"\nimport { CacheProvider } from "@emotion/react"`,r='\n if (view.use_shadow_dom) {\n const css_key = id.replace("-", "").replace(/d/g, (digit) => String.fromCharCode(digit.charCodeAt(0) + 49)).toLowerCase()\n view.mui_cache = createCache({\n key: \'css-\'+css_key,\n prepend: true,\n container: view.style_cache,\n })\n }',s="\n if (rendered && ((view.parent?.react_root === undefined) || view.model.use_shadow_dom)) {\n rendered = React.createElement(CacheProvider, {value: view.mui_cache}, rendered)\n }"),`\n${e}\n\nasync function render(id) {\n const view = Bokeh.index.find_one_by_id(id)\n if (view == null) {\n return null\n }\n\n ${t}\n\n class Child extends React.PureComponent {\n\n state = {rendered: null}\n\n constructor(props) {\n super(props)\n this.render_callback = null\n this.containerRef = React.createRef()\n }\n\n updateElement() {\n const childView = this.view\n const el = childView?.el\n if (el && this.containerRef.current && !this.containerRef.current.contains(el)) {\n this.containerRef.current.innerHTML = ""\n this.containerRef.current.appendChild(el)\n }\n }\n\n get view() {\n const child = this.props.parent.model.data[this.props.name]\n const model = this.props.id == null ? child : child.find(item => item.id === this.props.id)\n return this.props.parent.get_child_view(model)\n }\n\n get element() {\n const view = this.view\n return view == null ? null : view.el\n }\n\n get use_shadow_dom() {\n return this.view?.model.use_shadow_dom || (this.view?.react_root === undefined)\n }\n\n componentDidMount() {\n const view = this.view\n if (view == null) { return }\n else if (!this.use_shadow_dom) {\n view.patch_container(this.containerRef.current)\n view.model.render_module.then(async (mod) => {\n this.setState(\n {rendered: await mod.default.render(view.model.id)},\n () => {\n this.props.parent.notify_mount(this.props.name, view.model.id)\n this.view.r_after_render()\n this.view.after_rendered()\n }\n )\n })\n return\n }\n this.updateElement()\n this.props.parent.rerender_(view)\n this.render_callback = (new_views) => {\n const view = this.view\n if (!view) {\n return\n }\n this.updateElement()\n if (new_views.includes(view)) {\n this.props.parent.rerender_(view)\n }\n }\n this.props.parent.on_child_render(this.props.name, this.render_callback)\n this.props.parent.notify_mount(this.props.name, view.model.id)\n }\n\n componentWillUnmount() {\n if (this.render_callback) {\n this.props.parent.remove_on_child_render(this.props.name, this.render_callback)\n }\n if (!this.use_shadow_dom && this.view._mounted.has(this.props.name)) {\n this.view._mounted.get(this.props.name).delete(this.props.id)\n }\n }\n\n componentDidUpdate() {\n if (this.use_shadow_dom) {\n this.updateElement()\n }\n }\n\n render() {\n const child = this.state.rendered\n const class_name = (this.use_shadow_dom ?\n "child-wrapper" : this.view.model.class_name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()\n )\n return React.createElement('div', {id: this.view?.model.id, className: class_name, ref: this.containerRef}, child)\n }\n }\n\n function react_getter(target, name) {\n if (name === "useMount") {\n return (callback) => React.useEffect(() => {\n target.model_proxy.on('lifecycle:mounted', callback)\n return () => target.model_proxy.off('lifecycle:mounted', callback)\n }, [])\n } if (name == "useState") {\n return (prop) => {\n const data_model = target.model.data\n const propPath = prop.split(".")\n let targetModel = data_model\n let resolvedProp = null\n\n for (let i = 0; i < propPath.length - 1; i++) {\n if (targetModel && targetModel.properties && propPath[i] in targetModel.properties) {\n targetModel = targetModel[propPath[i]]\n } else {\n // Stop if any part of the path is missing\n targetModel = null\n break\n }\n }\n if (targetModel && targetModel.attributes && propPath[propPath.length - 1] in targetModel.attributes) {\n resolvedProp = propPath[propPath.length - 1]\n }\n if (resolvedProp && targetModel) {\n const [value, setValue] = React.useState(targetModel.attributes[resolvedProp])\n\n React.useEffect(() => {\n const cb = () => {\n if (target.model.events.includes(resolvedProp)) {\n targetModel.attributes[resolvedProp] && (setValue((v) => v+1) || targetModel.setv({[resolvedProp]: false}))\n } else {\n setValue(targetModel.attributes[resolvedProp])\n }\n }\n react_proxy.on(prop, cb, true)\n return () => react_proxy.off(prop, cb)\n }, [])\n\n React.useEffect(() => {\n if (!target.model.events.includes(resolvedProp)) {\n targetModel.setv({ [resolvedProp]: value })\n }\n }, [value])\n\n return [value, setValue]\n }\n throw ReferenceError("Could not resolve " + prop + " on " + target.model.class_name)\n }\n } else if (name === "get_child") {\n return (child) => {\n const data_model = target.model.data\n const value = data_model.attributes[child]\n if (Array.isArray(value)) {\n const [children_state, set_children] = React.useState(value.map((model) =>\n React.createElement(Child, { parent: target, name: child, key: model.id, id: model.id })\n ))\n React.useEffect(() => {\n target.on_child_render(child, () => {\n const current_models = data_model.attributes[child]\n const previous_models = children_state.map(child => child.props.index)\n if (current_models.some((model, i) => model.id !== previous_models[i])) {\n set_children(current_models.map((model, i) => (\n React.createElement(Child, { parent: target, name: child, key: model.id, id: model.id })\n )))\n }\n })\n }, [])\n return children_state\n } else {\n return React.createElement(Child, {parent: target, name: child})\n }\n }\n }\n return target.model_getter(target, name)\n }\n\n const react_proxy = new Proxy(view, {\n get: react_getter,\n set: view.model_setter\n })\n\n class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props)\n // initialize the error state\n this.state = { hasError: false }\n }\n\n // if an error happened, set the state to true\n static getDerivedStateFromError(error) {\n return { hasError: true }\n }\n\n componentDidCatch(error) {\n this.props.view.render_error(error)\n }\n\n render() {\n if (this.state.hasError) {\n return React.createElement('div')\n }\n return React.createElement('div', {className: "error-wrapper"}, this.props.children)\n }\n }\n\n class Component extends React.Component {\n\n constructor(props) {\n super(props)\n ${r}\n }\n\n componentDidMount() {\n if (!this.props.view.use_shadow_dom) { return }\n this.props.view.on_force_update(() => {\n ${r}\n this.forceUpdate()\n })\n this.props.view._changing = false\n this.props.view.after_rendered()\n }\n\n render() {\n let rendered = React.createElement(this.props.view.render_fn, this.props)\n if (this.props.view.model.dev) {\n rendered = React.createElement(ErrorBoundary, {view}, rendered)\n }\n ${s}\n return rendered\n }\n }\n\n const props = {view, model: react_proxy, data: view.model.data, el: view.container}\n const rendered = React.createElement(Component, props)\n if (!view.model.use_shadow_dom && (view.parent?.react_root !== undefined)) {\n return rendered\n }\n if (rendered) {\n view._changing = true\n let container\n if (view.model.root_node) {\n container = document.querySelector(view.model.root_node)\n if (container == null) {\n container = document.createElement("div")\n container.id = view.model.root_node.replace("#", "")\n document.body.append(container)\n }\n } else {\n container = view.container\n }\n const root = createRoot(container)\n try {\n root.render(rendered)\n } catch(e) {\n view.render_error(e)\n }\n return root\n }\n}\n\nexport default {render}`}compile(){const e=super.compile();return this.bundle?e:null!==e&&e.includes("React")?`\nimport * as React from "react"\n\n${e}`:e}get _render_cache_key(){const e="url"===this.bundle?this.esm:this.bundle||`${this.class_name}-${this.esm.length}`;return`react-${this.usesMui}-${e}`}}n.ReactComponent=h,o=h,h.__name__="ReactComponent",h.__module__="panel.models.esm",o.prototype.default_view=c,o.define((({Bool:e,Nullable:t,Str:n})=>({root_node:[t(n),null],use_shadow_dom:[e,!0]}))),o.override({render_policy:"manual"})},
230
- "d5752cda5a": function _(e,t,n,s,i){var o;s();const r=e("bb986b9dd6"),l=e("0e62f95470"),c=e("b3f51db71c"),a=e("@bokehjs/core/dom"),d=e("@bokehjs/core/util/assert"),_=e("@bokehjs/core/util/iterator"),h=e("@bokehjs/core/util/types"),u=e("@bokehjs/core/util/object"),f=e("@bokehjs/model"),p=e("@bokehjs/models/ui/ui_element"),m=e("be689f0377"),v=e("a572dba9cd"),$=e("4c04683fdc"),g=e("9b11ce01a3"),b=e("a3669a897a");function w(e,t,n){const s=new Map;for(const e of n)s.set(`{${e}}`,"(.*)");const i=[];let o=`^${r=e,r.replace(/[-\/\\^$*+?.()|[\]]/g,"\\$&")}$`;var r;let l,c,a;for(const[t,n]of s)if(c=e.indexOf(t),c>-1){for(o=o.replace(t,n),a={index:c,token:t},l=0;l<i.length&&i[l].index<c;l++);l<i.length?i.splice(l,0,a):i.push(a)}o=o.replace(/\{[^{}]+\}/g,".*");const d=new RegExp(o).exec(t);if(null!=d){const e={};for(l=0;l<i.length;l++)e[i[l].token.slice(1,-1)]=d[l+1];return e}return null}function y(e,t){let n=e.getElementById(t);return null==n&&(n=document.getElementById(t)),n}class M extends g.HTMLBoxView{constructor(){super(...arguments),this._changing=!1,this._event_listeners=new Map,this._mutation_observers=[],this._script_fns=new Map,this._state={}}initialize(){super.initialize(),this.html=(0,$.html_decode)(this.model.html)??this.model.html}_recursive_connect(e,t,n){for(const s of e){const e=0!=n.length?`${n}.${s.attr}`:s.attr,i=s.get_value();null!=i&&(i instanceof f.Model&&this._recursive_connect(i,!0,e),this.on_change(s,(()=>{if(t)for(const[e,t]of(0,u.entries)(this.model.children))if(t==s.attr){let t=s.get_value();return(0,h.isArray)(t)||(t=[t]),void this._render_node(e,t)}this._changing||this._update(e)})))}}connect_signals(){super.connect_signals();const{children:e,events:t}=this.model.properties;this.on_change(e,(async()=>{this.html=(0,$.html_decode)(this.model.html)??this.model.html,await this.build_child_views(),this.invalidate_render()})),this._recursive_connect(this.model.data,!0,""),this.on_change(t,(()=>{this._remove_event_listeners(),this._setup_event_listeners()})),this.connect_scripts()}connect_scripts(){const{id:e}=this.model.data;for(const[t,n]of(0,u.entries)(this.model.scripts)){let s,i=this.model.data;if(t.includes(".")){const e=t.split(".");s=e[e.length-1];for(const t of e.slice(0,-1)){const e=i.property(t).get_value();(0,d.assert)(e instanceof f.Model),i=e}}else s=t;for(const o of n){const n=(0,$.html_decode)(o)??o,r=this._render_script(n,e);if(this._script_fns.set(t,r),!(s in i.properties))continue;const l=i.property(s),c=this.model.event_params.includes(t);this.on_change(l,(()=>{this._changing||c&&!i.property(t).get_value()||(this.run_script(t),c&&i.setv({[t]:!1}))}))}}}run_script(e,t=!1){const n=this._script_fns.get(e);if(void 0===n)return void(t||console.warn(`Script '${e}' could not be found.`));const s={get_records(e,t){return this.get_records(e,t)}};for(const e of this._script_fns.keys())s[e]=()=>this.run_script(e);return n(this.model,this.model.data,this._state,this,(e=>this.run_script(e)),s)}get_records(e,t=!0){return(0,m.dict_to_records)(this.model.data.property(e),t)}disconnect_signals(){super.disconnect_signals(),this._remove_event_listeners(),this._remove_mutation_observers()}remove(){this.run_script("remove",!0),super.remove()}get child_models(){const e=[];for(const[t,n]of(0,u.entries)(this.model.children))for(const t of n)(0,h.isString)(t)||e.push(t);return e}_after_layout(){this.run_script("after_layout",!0)}render(){this.empty(),this._update_stylesheets(),this._update_css_classes(),this._apply_styles(),this._apply_visible(),this.container=(0,a.div)({style:{display:"contents"}}),this.shadow_el.append(this.container),this._update(),this._render_children(),this._setup_mutation_observers(),this._setup_event_listeners(),this.run_script("render",!0)}_send_event(e,t,n){const s=(0,b.convertUndefined)((0,v.serializeEvent)(n));s.type=t,this.model.trigger_event(new $.DOMEvent(e,s))}_render_child(e,t){if((0,h.isString)(e))t.innerHTML=(0,$.html_decode)(e)??e;else{const n=this._child_views.get(e);null==n?t.innerHTML="":(t.appendChild(n.el),n.render(),n.r_after_render())}}_render_node(e,t){const{id:n}=this.model.data;if(this.model.looped.includes(e))for(const[s,i]of(0,_.enumerate)(t)){const t=`${e}-${i}-${n}`,o=y(this.shadow_el,t);null!=o?this._render_child(s,o):console.warn(`DOM node '${t}' could not be found. Cannot render children.`)}else{const s=`${e}-${n}`,i=y(this.shadow_el,s);if(null==i)return void console.warn(`DOM node '${s}' could not be found. Cannot render children.`);for(const e of t)this._render_child(e,i)}}_render_children(){for(const[e,t]of(0,u.entries)(this.model.children)){const n=(()=>{if(!(0,h.isString)(t))return t;{const e=this.model.data.property(t).get_value();if((0,h.isString)(e))return[e];if((0,h.isArray)(e))return e;(0,d.unreachable)()}})();this._render_node(e,n)}}_render_html(e,t={}){let n=e.replace(/[`]/g,"\\$&"),s="";const i=[];for(const[e,t]of(0,u.entries)(this.model.callbacks))for(const[o,r]of t){let t;if(n=n.replaceAll(`\${${r}}`,`$--{${r}}`),r.startsWith("script(")){const e=r.replace("('","_").replace("')","").replace('("',"_").replace('")',"").replace("-","_"),s=e.replaceAll("script_","");n=n.replaceAll(r,e),t=`\n const ${e} = (event) => {\n view._state.event = event\n view.run_script("${s}")\n delete view._state.event\n }\n `}else t=`\n const ${r} = (event) => {\n let elname = "${e}"\n if (RegExp("{{.*loop.index.*}}").test(elname)) {\n const pattern = RegExp(elname.replace(/{{(.+?)}}/g, String.fromCharCode(92) + "d+"))\n for (const p of event.path) {\n if (pattern.exec(p.id) != null) {\n elname = p.id.split("-").slice(null, -1).join("-")\n break\n }\n }\n }\n view._send_event(elname, "${o}", event)\n }\n `;i.indexOf(r)>-1||(i.push(r),s+=t)}return n=n.replaceAll("${model.","$-{model.").replaceAll("${","${data.").replaceAll("$-{model.","${model.").replaceAll("$--{","${"),new Function("view, model, data, state, html, useCallback",`${s}return html\`${n}\`;`)(this,this.model,this.model.data,t,c.html,l.useCallback)}_render_script(e,t){const n=[];for(const s of this.model.nodes){const i=s.replace("-","_");if(!e.includes(i))continue;const o=`\n let ${i} = view.shadow_el.getElementById('${s}-${t}')\n if (${i} == null) {\n ${i} = document.getElementById('${s}-${t}')\n }\n if (${i} == null) {\n console.warn("DOM node '${s}' could not be found. Cannot execute callback.")\n return\n }\n `;n.push(o)}return n.push("\n let event = null\n if (state.event !== undefined) {\n event = state.event\n }\n "),n.push(e),new Function("model, data, state, view, script, self",n.join("\n"))}_remove_mutation_observers(){for(const e of this._mutation_observers)e.disconnect();this._mutation_observers=[]}_setup_mutation_observers(){const{id:e}=this.model.data;for(const t of(0,u.keys)(this.model.attrs)){const n=y(this.shadow_el,`${t}-${e}`);if(null==n){console.warn(`DOM node '${t}-${e}' could not be found. Cannot set up MutationObserver.`);continue}const s=new MutationObserver((()=>{this._update_model(n,t)}));s.observe(n,{attributes:!0}),this._mutation_observers.push(s)}}_remove_event_listeners(){const{id:e}=this.model.data;for(const[t,n]of this._event_listeners){const s=y(this.shadow_el,`${t}-${e}`);if(null!=s)for(const[e,t]of n)s.removeEventListener(e,t)}this._event_listeners.clear()}_setup_event_listeners(){const{id:e}=this.model.data,t=(0,u.dict)(this.model.attrs);for(const[n,s]of(0,u.entries)(this.model.events)){const i=y(this.shadow_el,`${n}-${e}`);if(null!=i)for(const[e,o]of(0,u.entries)(s)){const s=s=>{this._send_event(n,e,s),t.has(n)&&o&&this._update_model(i,n)};i.addEventListener(e,s);let r=this._event_listeners.get(n);void 0===r&&this._event_listeners.set(n,r=new Map),r.set(e,s)}else console.warn(`DOM node '${n}-${e}' could not be found. Cannot subscribe to DOM events.`)}}_update(e=null){if(null==e||this.html.includes(`\${${e}}`)){const e=this._render_html(this.html);if(null==e)return;try{this._changing=!0,(0,r.render)(e,this.container)}finally{this._changing=!1}}}_update_model(e,t){if(this._changing)return;const n=(0,u.dict)(this.model.attrs).get(t)??[],s={};for(const i of n){const[n,o,r]=i;let l="children"==n?e.innerHTML:e[n];if(1===o.length&&`{${o[0]}}`===r)s[o[0]]=l;else if((0,h.isString)(l))if(l=w(r,l,o),null==l)console.warn(`Could not resolve parameters in ${t} element ${n} attribute value ${l}.`);else for(const[e,i]of(0,u.entries)(l))void 0===i?console.warn(`Could not resolve ${e} in ${t} element ${n} attribute value ${l}.`):s[e]=i}try{this._changing=!0,this.model.data.setv(function(e){const t={};for(const[n,s]of(0,u.entries)(e)){const e=(()=>{if((0,h.isString)(s)){if(!(""===s||"NaN"!==s&&isNaN(Number(s))))return Number(s);if("false"===s||"true"===s)return"true"===s}return s})();t[n]=e}return t}(s))}catch{console.error("Could not serialize",s)}finally{this._changing=!1}}}n.ReactiveHTMLView=M,M.__name__="ReactiveHTMLView";class k extends g.HTMLBox{constructor(e){super(e)}}n.ReactiveHTML=k,o=k,k.__name__="ReactiveHTML",k.__module__="panel.models.reactive_html",o.prototype.default_view=M,o.define((({Bool:e,Str:t,List:n,Dict:s,Tuple:i,Or:o,Ref:r})=>({attrs:[s(n(i(t,n(t),t))),{}],callbacks:[s(n(i(t,t))),{}],children:[s(o(n(o(r(p.UIElement),t)),t)),{}],data:[r(f.Model)],event_params:[n(t),[]],events:[s(s(e)),{}],html:[t,""],looped:[n(t),[]],nodes:[n(t),[]],scripts:[s(n(t)),{}]})))},
231
- "bb986b9dd6": function _(e,n,t,_,l){_(),t.Component=S,t.Fragment=P,t.cloneElement=function(e,n,t){var _,l,r,u,i=k({},e.props);for(r in e.type&&e.type.defaultProps&&(u=e.type.defaultProps),n)"key"==r?_=n[r]:"ref"==r?l=n[r]:i[r]=null==n[r]&&null!=u?u[r]:n[r];return arguments.length>2&&(i.children=arguments.length>3?o.call(arguments,2):t),C(e.type,i,_||e.key,l||e.ref,null)},t.createContext=function(e){function n(e){var t,_;return this.getChildContext||(t=new Set,(_={})[n.__c]=this,this.getChildContext=function(){return _},this.componentWillUnmount=function(){t=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&t.forEach((function(e){e.__e=!0,E(e)}))},this.sub=function(e){t.add(e);var n=e.componentWillUnmount;e.componentWillUnmount=function(){t&&t.delete(e),n&&n.call(e)}}),e.children}return n.__c="__cC"+y++,n.__=e,n.Provider=n.__l=(n.Consumer=function(e,n){return e.children(n)}).contextType=n,n},t.createElement=x,t.h=x,t.createRef=function(){return{current:null}},t.hydrate=function e(n,t){z(n,t,e)},t.render=z,t.toChildArray=function e(n,t){return t=t||[],null==n||"boolean"==typeof n||(b(n)?n.some((function(n){e(n,t)})):t.push(n)),t};var o,r,u,i,c,s,f,p,a,h,d,y,v={},m=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,b=Array.isArray;function k(e,n){for(var t in n)e[t]=n[t];return e}function w(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function x(e,n,t){var _,l,r,u={};for(r in n)"key"==r?_=n[r]:"ref"==r?l=n[r]:u[r]=n[r];if(arguments.length>2&&(u.children=arguments.length>3?o.call(arguments,2):t),"function"==typeof e&&null!=e.defaultProps)for(r in e.defaultProps)null==u[r]&&(u[r]=e.defaultProps[r]);return C(e,u,_,l,null)}function C(e,n,t,_,l){var o={type:e,props:n,key:t,ref:_,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:l??++u,__i:-1,__u:0};return null==l&&null!=r.vnode&&r.vnode(o),o}function P(e){return e.children}function S(e,n){this.props=e,this.context=n}function U(e,n){if(null==n)return e.__?U(e.__,e.__i+1):null;for(var t;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e)return t.__e;return"function"==typeof e.type?U(e):null}function T(e){var n,t;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,n=0;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e){e.__e=e.__c.base=t.__e;break}return T(e)}}function E(e){(!e.__d&&(e.__d=!0)&&i.push(e)&&!D.__r++||c!=r.debounceRendering)&&((c=r.debounceRendering)||s)(D)}function D(){for(var e,n,t,_,l,o,u,c=1;i.length;)i.length>c&&i.sort(f),e=i.shift(),c=i.length,e.__d&&(t=void 0,l=(_=(n=e).__v).__e,o=[],u=[],n.__P&&((t=k({},_)).__v=_.__v+1,r.vnode&&r.vnode(t),H(n.__P,t,_,n.__n,n.__P.namespaceURI,32&_.__u?[l]:null,o,l??U(_),!!(32&_.__u),u),t.__v=_.__v,t.__.__k[t.__i]=t,I(o,t,u),t.__e!=l&&T(t)));D.__r=0}function M(e,n,t,_,l,o,r,u,i,c,s){var f,p,a,h,d,y,g=_&&_.__k||m,b=n.length;for(i=W(t,n,g,i,b),f=0;f<b;f++)null!=(a=t.__k[f])&&(p=-1==a.__i?v:g[a.__i]||v,a.__i=f,y=H(e,a,p,l,o,r,u,i,c,s),h=a.__e,a.ref&&p.ref!=a.ref&&(p.ref&&O(p.ref,null,a),s.push(a.ref,a.__c||h,a)),null==d&&null!=h&&(d=h),4&a.__u||p.__k===a.__k?i=L(a,i,e):"function"==typeof a.type&&void 0!==y?i=y:h&&(i=h.nextSibling),a.__u&=-7);return t.__e=d,i}function W(e,n,t,_,l){var o,r,u,i,c,s=t.length,f=s,p=0;for(e.__k=new Array(l),o=0;o<l;o++)null!=(r=n[o])&&"boolean"!=typeof r&&"function"!=typeof r?(i=o+p,(r=e.__k[o]="string"==typeof r||"number"==typeof r||"bigint"==typeof r||r.constructor==String?C(null,r,null,null,null):b(r)?C(P,{children:r},null,null,null):null==r.constructor&&r.__b>0?C(r.type,r.props,r.key,r.ref?r.ref:null,r.__v):r).__=e,r.__b=e.__b+1,u=null,-1!=(c=r.__i=F(r,t,i,f))&&(f--,(u=t[c])&&(u.__u|=2)),null==u||null==u.__v?(-1==c&&(l>s?p--:l<s&&p++),"function"!=typeof r.type&&(r.__u|=4)):c!=i&&(c==i-1?p--:c==i+1?p++:(c>i?p--:p++,r.__u|=4))):e.__k[o]=null;if(f)for(o=0;o<s;o++)null!=(u=t[o])&&!(2&u.__u)&&(u.__e==_&&(_=U(u)),j(u,u));return _}function L(e,n,t){var _,l;if("function"==typeof e.type){for(_=e.__k,l=0;_&&l<_.length;l++)_[l]&&(_[l].__=e,n=L(_[l],n,t));return n}e.__e!=n&&(n&&e.type&&!t.contains(n)&&(n=U(e)),t.insertBefore(e.__e,n||null),n=e.__e);do{n=n&&n.nextSibling}while(null!=n&&8==n.nodeType);return n}function F(e,n,t,_){var l,o,r=e.key,u=e.type,i=n[t];if(null===i&&null==e.key||i&&r==i.key&&u==i.type&&!(2&i.__u))return t;if(_>(null==i||2&i.__u?0:1))for(l=t-1,o=t+1;l>=0||o<n.length;){if(l>=0){if((i=n[l])&&!(2&i.__u)&&r==i.key&&u==i.type)return l;l--}if(o<n.length){if((i=n[o])&&!(2&i.__u)&&r==i.key&&u==i.type)return o;o++}}return-1}function A(e,n,t){"-"==n[0]?e.setProperty(n,t??""):e[n]=null==t?"":"number"!=typeof t||g.test(n)?t:t+"px"}function N(e,n,t,_,l){var o;e:if("style"==n)if("string"==typeof t)e.style.cssText=t;else{if("string"==typeof _&&(e.style.cssText=_=""),_)for(n in _)t&&n in t||A(e.style,n,"");if(t)for(n in t)_&&t[n]==_[n]||A(e.style,n,t[n])}else if("o"==n[0]&&"n"==n[1])o=n!=(n=n.replace(p,"$1")),n=n.toLowerCase()in e||"onFocusOut"==n||"onFocusIn"==n?n.toLowerCase().slice(2):n.slice(2),e.l||(e.l={}),e.l[n+o]=t,t?_?t.u=_.u:(t.u=a,e.addEventListener(n,o?d:h,o)):e.removeEventListener(n,o?d:h,o);else{if("http://www.w3.org/2000/svg"==l)n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=n&&"height"!=n&&"href"!=n&&"list"!=n&&"form"!=n&&"tabIndex"!=n&&"download"!=n&&"rowSpan"!=n&&"colSpan"!=n&&"role"!=n&&"popover"!=n&&n in e)try{e[n]=t??"";break e}catch(e){}"function"==typeof t||(null==t||!1===t&&"-"!=n[4]?e.removeAttribute(n):e.setAttribute(n,"popover"==n&&1==t?"":t))}}function R(e){return function(n){if(this.l){var t=this.l[n.type+e];if(null==n.t)n.t=a++;else if(n.t<t.u)return;return t(r.event?r.event(n):n)}}}function H(e,n,t,_,l,o,u,i,c,s){var f,p,a,h,d,y,v,m,g,x,C,U,T,E,D,W,L,F=n.type;if(null!=n.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[i=n.__e=t.__e]),(f=r.__b)&&f(n);e:if("function"==typeof F)try{if(m=n.props,g="prototype"in F&&F.prototype.render,x=(f=F.contextType)&&_[f.__c],C=f?x?x.props.value:f.__:_,t.__c?v=(p=n.__c=t.__c).__=p.__E:(g?n.__c=p=new F(m,C):(n.__c=p=new S(m,C),p.constructor=F,p.render=V),x&&x.sub(p),p.props=m,p.state||(p.state={}),p.context=C,p.__n=_,a=p.__d=!0,p.__h=[],p._sb=[]),g&&null==p.__s&&(p.__s=p.state),g&&null!=F.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=k({},p.__s)),k(p.__s,F.getDerivedStateFromProps(m,p.__s))),h=p.props,d=p.state,p.__v=n,a)g&&null==F.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),g&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(g&&null==F.getDerivedStateFromProps&&m!==h&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(m,C),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(m,p.__s,C)||n.__v==t.__v){for(n.__v!=t.__v&&(p.props=m,p.state=p.__s,p.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some((function(e){e&&(e.__=n)})),U=0;U<p._sb.length;U++)p.__h.push(p._sb[U]);p._sb=[],p.__h.length&&u.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(m,p.__s,C),g&&null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(h,d,y)}))}if(p.context=C,p.props=m,p.__P=e,p.__e=!1,T=r.__r,E=0,g){for(p.state=p.__s,p.__d=!1,T&&T(n),f=p.render(p.props,p.state,p.context),D=0;D<p._sb.length;D++)p.__h.push(p._sb[D]);p._sb=[]}else do{p.__d=!1,T&&T(n),f=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++E<25);p.state=p.__s,null!=p.getChildContext&&(_=k(k({},_),p.getChildContext())),g&&!a&&null!=p.getSnapshotBeforeUpdate&&(y=p.getSnapshotBeforeUpdate(h,d)),W=f,null!=f&&f.type===P&&null==f.key&&(W=$(f.props.children)),i=M(e,b(W)?W:[W],n,t,_,l,o,u,i,c,s),p.base=n.__e,n.__u&=-161,p.__h.length&&u.push(p),v&&(p.__E=p.__=null)}catch(e){if(n.__v=null,c||null!=o)if(e.then){for(n.__u|=c?160:128;i&&8==i.nodeType&&i.nextSibling;)i=i.nextSibling;o[o.indexOf(i)]=null,n.__e=i}else for(L=o.length;L--;)w(o[L]);else n.__e=t.__e,n.__k=t.__k;r.__e(e,n,t)}else null==o&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):i=n.__e=B(t.__e,n,t,_,l,o,u,c,s);return(f=r.diffed)&&f(n),128&n.__u?void 0:i}function I(e,n,t){for(var _=0;_<t.length;_++)O(t[_],t[++_],t[++_]);r.__c&&r.__c(n,e),e.some((function(n){try{e=n.__h,n.__h=[],e.some((function(e){e.call(n)}))}catch(e){r.__e(e,n.__v)}}))}function $(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:b(e)?e.map($):k({},e)}function B(e,n,t,_,l,u,i,c,s){var f,p,a,h,d,y,m,g=t.props,k=n.props,x=n.type;if("svg"==x?l="http://www.w3.org/2000/svg":"math"==x?l="http://www.w3.org/1998/Math/MathML":l||(l="http://www.w3.org/1999/xhtml"),null!=u)for(f=0;f<u.length;f++)if((d=u[f])&&"setAttribute"in d==!!x&&(x?d.localName==x:3==d.nodeType)){e=d,u[f]=null;break}if(null==e){if(null==x)return document.createTextNode(k);e=document.createElementNS(l,x,k.is&&k),c&&(r.__m&&r.__m(n,u),c=!1),u=null}if(null==x)g===k||c&&e.data==k||(e.data=k);else{if(u=u&&o.call(e.childNodes),g=t.props||v,!c&&null!=u)for(g={},f=0;f<e.attributes.length;f++)g[(d=e.attributes[f]).name]=d.value;for(f in g)if(d=g[f],"children"==f);else if("dangerouslySetInnerHTML"==f)a=d;else if(!(f in k)){if("value"==f&&"defaultValue"in k||"checked"==f&&"defaultChecked"in k)continue;N(e,f,null,d,l)}for(f in k)d=k[f],"children"==f?h=d:"dangerouslySetInnerHTML"==f?p=d:"value"==f?y=d:"checked"==f?m=d:c&&"function"!=typeof d||g[f]===d||N(e,f,d,g[f],l);if(p)c||a&&(p.__html==a.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),n.__k=[];else if(a&&(e.innerHTML=""),M("template"==n.type?e.content:e,b(h)?h:[h],n,t,_,"foreignObject"==x?"http://www.w3.org/1999/xhtml":l,u,i,u?u[0]:t.__k&&U(t,0),c,s),null!=u)for(f=u.length;f--;)w(u[f]);c||(f="value","progress"==x&&null==y?e.removeAttribute("value"):null!=y&&(y!==e[f]||"progress"==x&&!y||"option"==x&&y!=g[f])&&N(e,f,y,g[f],l),f="checked",null!=m&&m!=e[f]&&N(e,f,m,g[f],l))}return e}function O(e,n,t){try{if("function"==typeof e){var _="function"==typeof e.__u;_&&e.__u(),_&&null==n||(e.__u=e(n))}else e.current=n}catch(e){r.__e(e,t)}}function j(e,n,t){var _,l;if(r.unmount&&r.unmount(e),(_=e.ref)&&(_.current&&_.current!=e.__e||O(_,null,n)),null!=(_=e.__c)){if(_.componentWillUnmount)try{_.componentWillUnmount()}catch(e){r.__e(e,n)}_.base=_.__P=null}if(_=e.__k)for(l=0;l<_.length;l++)_[l]&&j(_[l],n,t||"function"!=typeof e.type);t||w(e.__e),e.__c=e.__=e.__e=void 0}function V(e,n,t){return this.constructor(e,t)}function z(e,n,t){var _,l,u,i;n==document&&(n=document.documentElement),r.__&&r.__(e,n),l=(_="function"==typeof t)?null:t&&t.__k||n.__k,u=[],i=[],H(n,e=(!_&&t||n).__k=x(P,null,[e]),l||v,v,n.namespaceURI,!_&&t?[t]:l?null:n.firstChild?o.call(n.childNodes):null,u,!_&&t?t:l?l.__e:n.firstChild,_,i),I(u,e,i)}o=m.slice,t.options=r={__e:function(e,n,t,_){for(var l,o,r;n=n.__;)if((l=n.__c)&&!l.__)try{if((o=l.constructor)&&null!=o.getDerivedStateFromError&&(l.setState(o.getDerivedStateFromError(e)),r=l.__d),null!=l.componentDidCatch&&(l.componentDidCatch(e,_||{}),r=l.__d),r)return l.__E=l}catch(n){e=n}throw e}},u=0,t.isValidElement=function(e){return null!=e&&null==e.constructor},S.prototype.setState=function(e,n){var t;t=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=k({},this.state),"function"==typeof e&&(e=e(k({},t),this.props)),e&&k(t,e),null!=e&&this.__v&&(n&&this._sb.push(n),E(this))},S.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),E(this))},S.prototype.render=P,i=[],s="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(e,n){return e.__v.__b-n.__v.__b},D.__r=0,p=/(PointerCapture)$|Capture$/i,a=0,h=R(!1),d=R(!0),y=0},
232
- "0e62f95470": function _(_,n,t,u,r){u(),t.useCallback=function(_,n){return a=8,g((function(){return _}),n)},t.useContext=function(_){var n=c.context[_.__c],t=E(e++,9);return t.c=_,n?(null==t.__&&(t.__=!0,n.sub(c)),n.props.value):_.__},t.useDebugValue=function(_,n){l.useDebugValue&&l.useDebugValue(n?n(_):_)},t.useEffect=function(_,n){var t=E(e++,3);!l.__s&&q(t.__H,n)&&(t.__=_,t.u=n,c.__H.__h.push(t))},t.useErrorBoundary=function(_){var n=E(e++,10),t=y();return n.__=_,c.componentDidCatch||(c.componentDidCatch=function(_,u){n.__&&n.__(_,u),t[1](_)}),[t[0],function(){t[1](void 0)}]},t.useId=function(){var _=E(e++,11);if(!_.__){for(var n=c.__v;null!==n&&!n.__m&&null!==n.__;)n=n.__;var t=n.__m||(n.__m=[0,0]);_.__="P"+t[0]+"-"+t[1]++}return _.__},t.useImperativeHandle=function(_,n,t){a=6,b((function(){if("function"==typeof _){var t=_(n());return function(){_(null),t&&"function"==typeof t&&t()}}if(_)return _.current=n(),function(){return _.current=null}}),null==t?t:t.concat(_))},t.useLayoutEffect=b,t.useMemo=g,t.useReducer=N,t.useRef=function(_){return a=5,g((function(){return{current:_}}),[])},t.useState=y;const o=_("bb986b9dd6");var e,c,i,f,a=0,h=[],l=o.options,s=l.__b,v=l.__r,m=l.diffed,d=l.__c,p=l.unmount,H=l.__;function E(_,n){l.__h&&l.__h(c,_,a||n),a=0;var t=c.__H||(c.__H={__:[],__h:[]});return _>=t.__.length&&t.__.push({}),t.__[_]}function y(_){return a=1,N(U,_)}function N(_,n,t){var u=E(e++,2);if(u.t=_,!u.__c&&(u.__=[t?t(n):U(void 0,n),function(_){var n=u.__N?u.__N[0]:u.__[0],t=u.t(n,_);n!==t&&(u.__N=[t,u.__[1]],u.__c.setState({}))}],u.__c=c,!c.__f)){var r=function(_,n,t){if(!u.__c.__H)return!0;var r=u.__c.__H.__.filter((function(_){return!!_.__c}));if(r.every((function(_){return!_.__N})))return!o||o.call(this,_,n,t);var e=u.__c.props!==_;return r.forEach((function(_){if(_.__N){var n=_.__[0];_.__=_.__N,_.__N=void 0,n!==_.__[0]&&(e=!0)}})),o&&o.call(this,_,n,t)||e};c.__f=!0;var o=c.shouldComponentUpdate,i=c.componentWillUpdate;c.componentWillUpdate=function(_,n,t){if(this.__e){var u=o;o=void 0,r(_,n,t),o=u}i&&i.call(this,_,n,t)},c.shouldComponentUpdate=r}return u.__N||u.__}function b(_,n){var t=E(e++,4);!l.__s&&q(t.__H,n)&&(t.__=_,t.u=n,c.__h.push(t))}function g(_,n){var t=E(e++,7);return q(t.__H,n)&&(t.__=_(),t.__H=n,t.__h=_),t.__}function C(){for(var _;_=h.shift();)if(_.__P&&_.__H)try{_.__H.__h.forEach(F),_.__H.__h.forEach(k),_.__H.__h=[]}catch(n){_.__H.__h=[],l.__e(n,_.__v)}}l.__b=function(_){c=null,s&&s(_)},l.__=function(_,n){_&&n.__k&&n.__k.__m&&(_.__m=n.__k.__m),H&&H(_,n)},l.__r=function(_){v&&v(_),e=0;var n=(c=_.__c).__H;n&&(i===c?(n.__h=[],c.__h=[],n.__.forEach((function(_){_.__N&&(_.__=_.__N),_.u=_.__N=void 0}))):(n.__h.forEach(F),n.__h.forEach(k),n.__h=[],e=0)),i=c},l.diffed=function(_){m&&m(_);var n=_.__c;n&&n.__H&&(n.__H.__h.length&&(1!==h.push(n)&&f===l.requestAnimationFrame||((f=l.requestAnimationFrame)||D)(C)),n.__H.__.forEach((function(_){_.u&&(_.__H=_.u),_.u=void 0}))),i=c=null},l.__c=function(_,n){n.some((function(_){try{_.__h.forEach(F),_.__h=_.__h.filter((function(_){return!_.__||k(_)}))}catch(t){n.some((function(_){_.__h&&(_.__h=[])})),n=[],l.__e(t,_.__v)}})),d&&d(_,n)},l.unmount=function(_){p&&p(_);var n,t=_.__c;t&&t.__H&&(t.__H.__.forEach((function(_){try{F(_)}catch(_){n=_}})),t.__H=void 0,n&&l.__e(n,t.__v))};var A="function"==typeof requestAnimationFrame;function D(_){var n,t=function(){clearTimeout(u),A&&cancelAnimationFrame(n),setTimeout(_)},u=setTimeout(t,100);A&&(n=requestAnimationFrame(t))}function F(_){var n=c,t=_.__c;"function"==typeof t&&(_.__c=void 0,t()),c=n}function k(_){var n=c;_.__c=_.__(),c=n}function q(_,n){return!_||_.length!==n.length||n.some((function(n,t){return n!==_[t]}))}function U(_,n){return"function"==typeof n?n(_):n}},
233
- "b3f51db71c": function _(d,n,b,t,e){t();const o=d("tslib"),r=d("bb986b9dd6");var a=d("bb986b9dd6");e("h",a.h),e("render",a.render),e("Component",a.Component);var f=o.__importDefault(d("ab33dd3f38")).default.bind(r.h);b.html=f},
229
+ "d42fdf93ec": function _(e,t,n,r,s){var o;r();const i=e("@bokehjs/core/build_views"),a=e("@bokehjs/core/dom"),d=e("@bokehjs/core/util/array"),l=e("@bokehjs/core/util/assert"),c=e("@bokehjs/core/util/types"),h=e("d92390e7cb");class _ extends a.InlineStyleSheet{constructor(e,t,n=!1,r=""){super(e,t,n),this.persistent=n,this.host_id=r}replace(e,t){e=e.replace(/:host\b/g,`#${this.host_id}`),super.replace(e,t)}prepend(e,t){e=e.replace(/:host\b/g,`#${this.host_id}`),super.prepend(e,t)}append(e,t){e=e.replace(/:host\b/g,`#${this.host_id}`),super.append(e,t)}}async function p(e,t,n){(0,l.assert)(null!=e,"model doesn't implement a view");const r=new e({...n,model:t});return r.initialize(),await r.lazy_initialize(),r}async function u(e,t,n={parent:null},r=e=>e.default_view){const s=(0,d.difference)([...e.keys()],t),o=[];for(const t of s){const n=e.get(t);null!=n&&(e.delete(t),o.push(n))}const i=[],a=t.filter((t=>!e.has(t)));for(const t of a){const s=await p(r(t),t,n);e.set(t,s),i.push(s)}for(const e of i)e.connect_signals();return{created:i,removed:o}}n.HostedStyleSheet=_,_.__name__="HostedStyleSheet";class m extends h.ReactiveESMView{constructor(){super(...arguments),this.model_getter=h.model_getter,this.model_setter=h.model_setter,this.react_root=null,this._force_update_callbacks=[],this._scheduled_removals=[]}initialize(){super.initialize(),this.use_shadow_dom||(this.display=new _("","display",!1,this.model.id),this.style=new _("","style",!1,this.model.id),this.parent_style=new _("","parent",!0,this.model.id))}get use_shadow_dom(){return this.model.use_shadow_dom||!(this.parent instanceof m)}render_esm(){if(null!==this.model.compiled&&null!==this.model.render_module){this.model.usesMui&&(this.model.root_node?this.style_cache=document.head:(this.style_cache=document.createElement("head"),this.shadow_el.insertBefore(this.style_cache,this.container))),this.accessed_properties=[];for(const e of this._lifecycle_handlers.keys())(this._lifecycle_handlers.get(e)||[]).splice(0);this.model.disconnect_watchers(this),this.model.render_module.then((e=>{this.react_root=e.default.render(this.model.id)}))}}on_force_update(e){this._force_update_callbacks.push(e)}force_update(){for(const e of this._force_update_callbacks)e()}remove(){if(this._force_update_callbacks=[],this.react_root&&this.use_shadow_dom){super.remove(),this.react_root.then((e=>e&&e.unmount()));for(const e of this._scheduled_removals)e.remove();this._scheduled_removals=[]}else{this._applied_stylesheets.forEach((e=>e.uninstall()));for(const e of this._lifecycle_handlers.get("remove")||[])e();this._child_callbacks.clear(),this._child_rendered.clear(),this._mounted.clear()}}get root_view(){let e=this;if(this.use_shadow_dom)return e;for(;e.parent instanceof m;)e=e.parent;return e}_apply_stylesheets(e){const t=e.map((e=>(0,c.isString)(e)?new a.InlineStyleSheet(e):e)),n=this.root_view.shadow_el.querySelectorAll("style"),r=this.root_view.shadow_el.querySelectorAll("link");t.forEach((e=>{if(!this.use_shadow_dom){if(e instanceof a.InlineStyleSheet&&Array.from(n).some((t=>t.innerHTML===e.css)))return;if(e instanceof a.ImportedStyleSheet&&Array.from(r).some((t=>t.href===e.el.href)))return}this._applied_stylesheets.push(e),e.install(this.root_view.shadow_el)}))}render(){this.react_root&&this.react_root.then((e=>e.unmount())),this._force_update_callbacks=[],super.render()}r_after_render(){super.r_after_render(),this.use_shadow_dom&&this.force_update()}_update_layout(){super._update_layout();const e=this._lifecycle_handlers.get("update_layout")||[];for(const t of e)t()}async build_child_views(){const e=this.model.use_shadow_dom?u:i.build_views,{created:t,removed:n}=await e(this._child_views,this.child_models,{parent:this});for(const e of n)this._resize_observer.unobserve(e.el),this.model.use_shadow_dom&&(this._child_rendered.delete(e),t.length?this._scheduled_removals.push(e):e.remove());for(const e of t)this._resize_observer.observe(e.el,{box:"border-box"});return t}async update_children(){const e=new Set(await this.build_child_views()),t=new Map;for(const n of this.child_views){if(!e.has(n))continue;const r=this._lookup_child(n);r&&(t.has(r)?t.get(r).push(n):t.set(r,[n]))}for(const e of this.model.children){const n=this._child_callbacks.get(e)||[],r=t.get(e)||[];for(const e of n)e(r)}this._update_children()}_on_mounted(){this.invalidate_layout()}patch_container(e){this.el=this.container=e,this._update_stylesheets(),this.class_list=new a.ClassList(this.container.classList),this._apply_html_attributes()}after_rendered(){const e=this._lifecycle_handlers.get("after_render")||[];for(const t of e)t();if(!this._rendered)for(const e of this._lifecycle_handlers.get("after_layout")||[])e();this._rendered=!0}}n.ReactComponentView=m,m.__name__="ReactComponentView";class f extends h.ReactiveESM{constructor(e){super(e),this.sucrase_transforms=["typescript","jsx"]}get usesMui(){return!!this.importmap?.imports&&Object.keys(this.importmap?.imports).some((e=>e.startsWith("@mui")))}_render_code(){let[e,t]=["",""];const n="url"===this.bundle?this.esm:this.bundle||`${this.class_name}-${this.esm.length}`;this.bundle?t=`\n const ns = await view._module_cache.get("${n}")\n const {React, createRoot} = ns.default`:e='\nimport * as React from "react"\nimport { createRoot } from "react-dom/client"';let r="",s="";return this.usesMui&&(this.bundle?t=`\n const ns = await view._module_cache.get("${n}")\n const {CacheProvider, React, createCache, createRoot} = ns.default`:e=`\n${e}\nimport createCache from "@emotion/cache"\nimport { CacheProvider } from "@emotion/react"`,r='\n if (view.use_shadow_dom) {\n const css_key = id.replace("-", "").replace(/d/g, (digit) => String.fromCharCode(digit.charCodeAt(0) + 49)).toLowerCase()\n view.mui_cache = createCache({\n key: \'css-\'+css_key,\n prepend: true,\n container: view.style_cache,\n })\n }',s="\n if (rendered && ((view.parent?.react_root === undefined) || view.model.use_shadow_dom)) {\n rendered = React.createElement(CacheProvider, {value: view.mui_cache}, rendered)\n }"),`\n${e}\n\nasync function render(id) {\n const view = Bokeh.index.find_one_by_id(id)\n if (view == null) {\n return null\n }\n\n ${t}\n\n class Child extends React.PureComponent {\n\n state = {rendered: null}\n\n constructor(props) {\n super(props)\n this.render_callback = null\n this.containerRef = React.createRef()\n }\n\n updateElement() {\n const childView = this.view\n const el = childView?.el\n if (el && this.containerRef.current && !this.containerRef.current.contains(el)) {\n this.containerRef.current.innerHTML = ""\n this.containerRef.current.appendChild(el)\n }\n }\n\n get view() {\n const child = this.props.parent.model.data[this.props.name]\n const model = this.props.id == null ? child : child.find(item => item.id === this.props.id)\n return this.props.parent.get_child_view(model)\n }\n\n get element() {\n const view = this.view\n return view == null ? null : view.el\n }\n\n get use_shadow_dom() {\n return this.view?.model.use_shadow_dom || (this.view?.react_root === undefined)\n }\n\n componentDidMount() {\n const view = this.view\n if (view == null) { return }\n for (const view of this.props.parent._scheduled_removals) { view.remove() }\n this.props.parent._scheduled_removals = []\n if (this.use_shadow_dom) {\n this.updateElement()\n this.props.parent.rerender_(view)\n this.props.parent._child_rendered.set(view, true)\n this.props.parent.notify_mount(this.props.name, view.model.id)\n } else {\n view.patch_container(this.containerRef.current)\n view.model.render_module.then(async (mod) => {\n this.setState(\n {rendered: await mod.default.render(view.model.id)},\n () => {\n this.props.parent.notify_mount(this.props.name, view.model.id)\n this.view.r_after_render()\n this.view.after_rendered()\n }\n )\n })\n }\n this.render_callback = (new_views) => {\n const view = this.view\n if (!view) {\n return\n }\n this.updateElement()\n if (new_views.includes(view)) {\n if (this.use_shadow_dom) {\n for (const view of this.props.parent._scheduled_removals) { view.remove() }\n this.props.parent._scheduled_removals = []\n this.props.parent.rerender_(view)\n this.props.parent._child_rendered.set(view, true)\n } else {\n view.patch_container(this.containerRef.current)\n view.model.render_module.then(async (mod) => {\n for (const view of this.props.parent._scheduled_removals) { view.remove() }\n this.props.parent._scheduled_removals = []\n this.setState(\n {rendered: await mod.default.render(view.model.id)},\n () => {\n this.props.parent.notify_mount(this.props.name, view.model.id)\n this.view.r_after_render()\n this.view.after_rendered()\n }\n )\n })\n }\n }\n }\n this.props.parent.on_child_render(this.props.name, this.render_callback)\n }\n\n componentWillUnmount() {\n if (this.render_callback) {\n this.props.parent.remove_on_child_render(this.props.name, this.render_callback)\n }\n if (!this.use_shadow_dom && this.view._mounted.has(this.props.name)) {\n this.view._mounted.get(this.props.name).delete(this.props.id)\n }\n }\n\n componentDidUpdate() {\n if (this.use_shadow_dom) {\n this.updateElement()\n }\n }\n\n render() {\n const child = this.state.rendered\n const class_name = (this.use_shadow_dom ?\n "child-wrapper" : this.view.model.class_name.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase()\n )\n return React.createElement('div', {id: this.view?.model.id, className: class_name, ref: this.containerRef}, child)\n }\n }\n\n function react_getter(target, name) {\n if (name === "useMount") {\n return (callback) => React.useEffect(() => {\n target.model_proxy.on('lifecycle:mounted', callback)\n return () => target.model_proxy.off('lifecycle:mounted', callback)\n }, [])\n } if (name == "useState") {\n return (prop) => {\n const data_model = target.model.data\n const propPath = prop.split(".")\n let targetModel = data_model\n let resolvedProp = null\n\n for (let i = 0; i < propPath.length - 1; i++) {\n if (targetModel && targetModel.properties && propPath[i] in targetModel.properties) {\n targetModel = targetModel[propPath[i]]\n } else {\n // Stop if any part of the path is missing\n targetModel = null\n break\n }\n }\n if (targetModel && targetModel.attributes && propPath[propPath.length - 1] in targetModel.attributes) {\n resolvedProp = propPath[propPath.length - 1]\n }\n if (resolvedProp && targetModel) {\n const [value, setValue] = React.useState(targetModel.attributes[resolvedProp])\n\n React.useEffect(() => {\n const cb = () => {\n if (target.model.events.includes(resolvedProp)) {\n targetModel.attributes[resolvedProp] && (setValue((v) => v+1) || targetModel.setv({[resolvedProp]: false}))\n } else {\n setValue(targetModel.attributes[resolvedProp])\n }\n }\n react_proxy.on(prop, cb, true)\n return () => react_proxy.off(prop, cb)\n }, [])\n\n React.useEffect(() => {\n if (!target.model.events.includes(resolvedProp)) {\n targetModel.setv({ [resolvedProp]: value })\n }\n }, [value])\n\n return [value, setValue]\n }\n throw ReferenceError("Could not resolve " + prop + " on " + target.model.class_name)\n }\n } else if (name === "get_child") {\n return (child) => {\n const data_model = target.model.data\n const value = data_model.attributes[child]\n if (Array.isArray(value)) {\n const [children_state, set_children] = React.useState(value.map((model) =>\n React.createElement(Child, { parent: target, name: child, key: model.id, id: model.id })\n ))\n React.useEffect(() => {\n target.on_child_render(child, () => {\n const current_models = data_model.attributes[child]\n const previous_models = children_state.map(child => child.props.index)\n if (current_models.some((model, i) => model.id !== previous_models[i])) {\n set_children(current_models.map((model, i) => (\n React.createElement(Child, { parent: target, name: child, key: model.id, id: model.id })\n )))\n }\n })\n }, [])\n return children_state\n } else {\n return React.createElement(Child, {parent: target, name: child})\n }\n }\n }\n return target.model_getter(target, name)\n }\n\n const react_proxy = new Proxy(view, {\n get: react_getter,\n set: view.model_setter\n })\n\n class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props)\n // initialize the error state\n this.state = { hasError: false }\n }\n\n // if an error happened, set the state to true\n static getDerivedStateFromError(error) {\n return { hasError: true }\n }\n\n componentDidCatch(error) {\n this.props.view.render_error(error)\n }\n\n render() {\n if (this.state.hasError) {\n return React.createElement('div')\n }\n return React.createElement('div', {className: "error-wrapper"}, this.props.children)\n }\n }\n\n class Component extends React.Component {\n\n constructor(props) {\n super(props)\n ${r}\n }\n\n componentDidMount() {\n if (!this.props.view.use_shadow_dom) { return }\n this.props.view.on_force_update(() => {\n ${r}\n this.forceUpdate()\n })\n this.props.view._changing = false\n this.props.view.after_rendered()\n }\n\n render() {\n let rendered = React.createElement(this.props.view.render_fn, this.props)\n if (this.props.view.model.dev) {\n rendered = React.createElement(ErrorBoundary, {view}, rendered)\n }\n ${s}\n return rendered\n }\n }\n\n const props = {view, model: react_proxy, data: view.model.data, el: view.container}\n const rendered = React.createElement(Component, props)\n if (!view.model.use_shadow_dom && (view.parent?.react_root !== undefined)) {\n return rendered\n }\n if (rendered) {\n view._changing = true\n let container\n if (view.model.root_node) {\n container = document.querySelector(view.model.root_node)\n if (container == null) {\n container = document.createElement("div")\n container.id = view.model.root_node.replace("#", "")\n document.body.append(container)\n }\n } else {\n container = view.container\n }\n const root = createRoot(container)\n try {\n root.render(rendered)\n } catch(e) {\n view.render_error(e)\n }\n return root\n }\n}\n\nexport default {render}`}compile(){const e=super.compile();return this.bundle?e:null!==e&&e.includes("React")?`\nimport * as React from "react"\n\n${e}`:e}get _render_cache_key(){const e="url"===this.bundle?this.esm:this.bundle||`${this.class_name}-${this.esm.length}`;return`react-${this.usesMui}-${e}`}}n.ReactComponent=f,o=f,f.__name__="ReactComponent",f.__module__="panel.models.esm",o.prototype.default_view=m,o.define((({Bool:e,Nullable:t,Str:n})=>({root_node:[t(n),null],use_shadow_dom:[e,!0]}))),o.override({render_policy:"manual"})},
230
+ "d5752cda5a": function _(e,t,n,s,i){var o;s();const r=e("091628d34a"),l=e("9295b344df"),c=e("b3f51db71c"),a=e("@bokehjs/core/dom"),d=e("@bokehjs/core/util/assert"),_=e("@bokehjs/core/util/iterator"),h=e("@bokehjs/core/util/types"),u=e("@bokehjs/core/util/object"),f=e("@bokehjs/model"),p=e("@bokehjs/models/ui/ui_element"),m=e("be689f0377"),v=e("a572dba9cd"),$=e("4c04683fdc"),g=e("9b11ce01a3"),b=e("a3669a897a");function w(e,t,n){const s=new Map;for(const e of n)s.set(`{${e}}`,"(.*)");const i=[];let o=`^${r=e,r.replace(/[-\/\\^$*+?.()|[\]]/g,"\\$&")}$`;var r;let l,c,a;for(const[t,n]of s)if(c=e.indexOf(t),c>-1){for(o=o.replace(t,n),a={index:c,token:t},l=0;l<i.length&&i[l].index<c;l++);l<i.length?i.splice(l,0,a):i.push(a)}o=o.replace(/\{[^{}]+\}/g,".*");const d=new RegExp(o).exec(t);if(null!=d){const e={};for(l=0;l<i.length;l++)e[i[l].token.slice(1,-1)]=d[l+1];return e}return null}function y(e,t){let n=e.getElementById(t);return null==n&&(n=document.getElementById(t)),n}class M extends g.HTMLBoxView{constructor(){super(...arguments),this._changing=!1,this._event_listeners=new Map,this._mutation_observers=[],this._script_fns=new Map,this._state={}}initialize(){super.initialize(),this.html=(0,$.html_decode)(this.model.html)??this.model.html}_recursive_connect(e,t,n){for(const s of e){const e=0!=n.length?`${n}.${s.attr}`:s.attr,i=s.get_value();null!=i&&(i instanceof f.Model&&this._recursive_connect(i,!0,e),this.on_change(s,(()=>{if(t)for(const[e,t]of(0,u.entries)(this.model.children))if(t==s.attr){let t=s.get_value();return(0,h.isArray)(t)||(t=[t]),void this._render_node(e,t)}this._changing||this._update(e)})))}}connect_signals(){super.connect_signals();const{children:e,events:t}=this.model.properties;this.on_change(e,(async()=>{this.html=(0,$.html_decode)(this.model.html)??this.model.html,await this.build_child_views(),this.invalidate_render()})),this._recursive_connect(this.model.data,!0,""),this.on_change(t,(()=>{this._remove_event_listeners(),this._setup_event_listeners()})),this.connect_scripts()}connect_scripts(){const{id:e}=this.model.data;for(const[t,n]of(0,u.entries)(this.model.scripts)){let s,i=this.model.data;if(t.includes(".")){const e=t.split(".");s=e[e.length-1];for(const t of e.slice(0,-1)){const e=i.property(t).get_value();(0,d.assert)(e instanceof f.Model),i=e}}else s=t;for(const o of n){const n=(0,$.html_decode)(o)??o,r=this._render_script(n,e);if(this._script_fns.set(t,r),!(s in i.properties))continue;const l=i.property(s),c=this.model.event_params.includes(t);this.on_change(l,(()=>{this._changing||c&&!i.property(t).get_value()||(this.run_script(t),c&&i.setv({[t]:!1}))}))}}}run_script(e,t=!1){const n=this._script_fns.get(e);if(void 0===n)return void(t||console.warn(`Script '${e}' could not be found.`));const s={get_records(e,t){return this.get_records(e,t)}};for(const e of this._script_fns.keys())s[e]=()=>this.run_script(e);return n(this.model,this.model.data,this._state,this,(e=>this.run_script(e)),s)}get_records(e,t=!0){return(0,m.dict_to_records)(this.model.data.property(e),t)}disconnect_signals(){super.disconnect_signals(),this._remove_event_listeners(),this._remove_mutation_observers()}remove(){this.run_script("remove",!0),super.remove()}get child_models(){const e=[];for(const[t,n]of(0,u.entries)(this.model.children))for(const t of n)(0,h.isString)(t)||e.push(t);return e}_after_layout(){this.run_script("after_layout",!0)}render(){this.empty(),this._update_stylesheets(),this._update_css_classes(),this._apply_styles(),this._apply_visible(),this.container=(0,a.div)({style:{display:"contents"}}),this.shadow_el.append(this.container),this._update(),this._render_children(),this._setup_mutation_observers(),this._setup_event_listeners(),this.run_script("render",!0)}_send_event(e,t,n){const s=(0,b.convertUndefined)((0,v.serializeEvent)(n));s.type=t,this.model.trigger_event(new $.DOMEvent(e,s))}_render_child(e,t){if((0,h.isString)(e))t.innerHTML=(0,$.html_decode)(e)??e;else{const n=this._child_views.get(e);null==n?t.innerHTML="":(t.appendChild(n.el),n.render(),n.r_after_render())}}_render_node(e,t){const{id:n}=this.model.data;if(this.model.looped.includes(e))for(const[s,i]of(0,_.enumerate)(t)){const t=`${e}-${i}-${n}`,o=y(this.shadow_el,t);null!=o?this._render_child(s,o):console.warn(`DOM node '${t}' could not be found. Cannot render children.`)}else{const s=`${e}-${n}`,i=y(this.shadow_el,s);if(null==i)return void console.warn(`DOM node '${s}' could not be found. Cannot render children.`);for(const e of t)this._render_child(e,i)}}_render_children(){for(const[e,t]of(0,u.entries)(this.model.children)){const n=(()=>{if(!(0,h.isString)(t))return t;{const e=this.model.data.property(t).get_value();if((0,h.isString)(e))return[e];if((0,h.isArray)(e))return e;(0,d.unreachable)()}})();this._render_node(e,n)}}_render_html(e,t={}){let n=e.replace(/[`]/g,"\\$&"),s="";const i=[];for(const[e,t]of(0,u.entries)(this.model.callbacks))for(const[o,r]of t){let t;if(n=n.replaceAll(`\${${r}}`,`$--{${r}}`),r.startsWith("script(")){const e=r.replace("('","_").replace("')","").replace('("',"_").replace('")',"").replace("-","_"),s=e.replaceAll("script_","");n=n.replaceAll(r,e),t=`\n const ${e} = (event) => {\n view._state.event = event\n view.run_script("${s}")\n delete view._state.event\n }\n `}else t=`\n const ${r} = (event) => {\n let elname = "${e}"\n if (RegExp("{{.*loop.index.*}}").test(elname)) {\n const pattern = RegExp(elname.replace(/{{(.+?)}}/g, String.fromCharCode(92) + "d+"))\n for (const p of event.path) {\n if (pattern.exec(p.id) != null) {\n elname = p.id.split("-").slice(null, -1).join("-")\n break\n }\n }\n }\n view._send_event(elname, "${o}", event)\n }\n `;i.indexOf(r)>-1||(i.push(r),s+=t)}return n=n.replaceAll("${model.","$-{model.").replaceAll("${","${data.").replaceAll("$-{model.","${model.").replaceAll("$--{","${"),new Function("view, model, data, state, html, useCallback",`${s}return html\`${n}\`;`)(this,this.model,this.model.data,t,c.html,l.useCallback)}_render_script(e,t){const n=[];for(const s of this.model.nodes){const i=s.replace("-","_");if(!e.includes(i))continue;const o=`\n let ${i} = view.shadow_el.getElementById('${s}-${t}')\n if (${i} == null) {\n ${i} = document.getElementById('${s}-${t}')\n }\n if (${i} == null) {\n console.warn("DOM node '${s}' could not be found. Cannot execute callback.")\n return\n }\n `;n.push(o)}return n.push("\n let event = null\n if (state.event !== undefined) {\n event = state.event\n }\n "),n.push(e),new Function("model, data, state, view, script, self",n.join("\n"))}_remove_mutation_observers(){for(const e of this._mutation_observers)e.disconnect();this._mutation_observers=[]}_setup_mutation_observers(){const{id:e}=this.model.data;for(const t of(0,u.keys)(this.model.attrs)){const n=y(this.shadow_el,`${t}-${e}`);if(null==n){console.warn(`DOM node '${t}-${e}' could not be found. Cannot set up MutationObserver.`);continue}const s=new MutationObserver((()=>{this._update_model(n,t)}));s.observe(n,{attributes:!0}),this._mutation_observers.push(s)}}_remove_event_listeners(){const{id:e}=this.model.data;for(const[t,n]of this._event_listeners){const s=y(this.shadow_el,`${t}-${e}`);if(null!=s)for(const[e,t]of n)s.removeEventListener(e,t)}this._event_listeners.clear()}_setup_event_listeners(){const{id:e}=this.model.data,t=(0,u.dict)(this.model.attrs);for(const[n,s]of(0,u.entries)(this.model.events)){const i=y(this.shadow_el,`${n}-${e}`);if(null!=i)for(const[e,o]of(0,u.entries)(s)){const s=s=>{this._send_event(n,e,s),t.has(n)&&o&&this._update_model(i,n)};i.addEventListener(e,s);let r=this._event_listeners.get(n);void 0===r&&this._event_listeners.set(n,r=new Map),r.set(e,s)}else console.warn(`DOM node '${n}-${e}' could not be found. Cannot subscribe to DOM events.`)}}_update(e=null){if(null==e||this.html.includes(`\${${e}}`)){const e=this._render_html(this.html);if(null==e)return;try{this._changing=!0,(0,r.render)(e,this.container)}finally{this._changing=!1}}}_update_model(e,t){if(this._changing)return;const n=(0,u.dict)(this.model.attrs).get(t)??[],s={};for(const i of n){const[n,o,r]=i;let l="children"==n?e.innerHTML:e[n];if(1===o.length&&`{${o[0]}}`===r)s[o[0]]=l;else if((0,h.isString)(l))if(l=w(r,l,o),null==l)console.warn(`Could not resolve parameters in ${t} element ${n} attribute value ${l}.`);else for(const[e,i]of(0,u.entries)(l))void 0===i?console.warn(`Could not resolve ${e} in ${t} element ${n} attribute value ${l}.`):s[e]=i}try{this._changing=!0,this.model.data.setv(function(e){const t={};for(const[n,s]of(0,u.entries)(e)){const e=(()=>{if((0,h.isString)(s)){if(!(""===s||"NaN"!==s&&isNaN(Number(s))))return Number(s);if("false"===s||"true"===s)return"true"===s}return s})();t[n]=e}return t}(s))}catch{console.error("Could not serialize",s)}finally{this._changing=!1}}}n.ReactiveHTMLView=M,M.__name__="ReactiveHTMLView";class k extends g.HTMLBox{constructor(e){super(e)}}n.ReactiveHTML=k,o=k,k.__name__="ReactiveHTML",k.__module__="panel.models.reactive_html",o.prototype.default_view=M,o.define((({Bool:e,Str:t,List:n,Dict:s,Tuple:i,Or:o,Ref:r})=>({attrs:[s(n(i(t,n(t),t))),{}],callbacks:[s(n(i(t,t))),{}],children:[s(o(n(o(r(p.UIElement),t)),t)),{}],data:[r(f.Model)],event_params:[n(t),[]],events:[s(s(e)),{}],html:[t,""],looped:[n(t),[]],nodes:[n(t),[]],scripts:[s(n(t)),{}]})))},
231
+ "091628d34a": function _(e,n,t,_,l){_(),t.Component=S,t.Fragment=P,t.cloneElement=function(e,n,t){var _,l,r,u,i=k({},e.props);for(r in e.type&&e.type.defaultProps&&(u=e.type.defaultProps),n)"key"==r?_=n[r]:"ref"==r?l=n[r]:i[r]=void 0===n[r]&&null!=u?u[r]:n[r];return arguments.length>2&&(i.children=arguments.length>3?o.call(arguments,2):t),C(e.type,i,_||e.key,l||e.ref,null)},t.createContext=function(e){function n(e){var t,_;return this.getChildContext||(t=new Set,(_={})[n.__c]=this,this.getChildContext=function(){return _},this.componentWillUnmount=function(){t=null},this.shouldComponentUpdate=function(e){this.props.value!=e.value&&t.forEach((function(e){e.__e=!0,E(e)}))},this.sub=function(e){t.add(e);var n=e.componentWillUnmount;e.componentWillUnmount=function(){t&&t.delete(e),n&&n.call(e)}}),e.children}return n.__c="__cC"+v++,n.__=e,n.Provider=n.__l=(n.Consumer=function(e,n){return e.children(n)}).contextType=n,n},t.createElement=x,t.h=x,t.createRef=function(){return{current:null}},t.hydrate=function e(n,t){z(n,t,e)},t.render=z,t.toChildArray=function e(n,t){return t=t||[],null==n||"boolean"==typeof n||(b(n)?n.some((function(n){e(n,t)})):t.push(n)),t};var o,r,u,i,c,s,f,p,a,h,d,v,y={},m=[],g=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,b=Array.isArray;function k(e,n){for(var t in n)e[t]=n[t];return e}function w(e){e&&e.parentNode&&e.parentNode.removeChild(e)}function x(e,n,t){var _,l,r,u={};for(r in n)"key"==r?_=n[r]:"ref"==r?l=n[r]:u[r]=n[r];if(arguments.length>2&&(u.children=arguments.length>3?o.call(arguments,2):t),"function"==typeof e&&null!=e.defaultProps)for(r in e.defaultProps)void 0===u[r]&&(u[r]=e.defaultProps[r]);return C(e,u,_,l,null)}function C(e,n,t,_,l){var o={type:e,props:n,key:t,ref:_,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:l??++u,__i:-1,__u:0};return null==l&&null!=r.vnode&&r.vnode(o),o}function P(e){return e.children}function S(e,n){this.props=e,this.context=n}function U(e,n){if(null==n)return e.__?U(e.__,e.__i+1):null;for(var t;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e)return t.__e;return"function"==typeof e.type?U(e):null}function T(e){var n,t;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,n=0;n<e.__k.length;n++)if(null!=(t=e.__k[n])&&null!=t.__e){e.__e=e.__c.base=t.__e;break}return T(e)}}function E(e){(!e.__d&&(e.__d=!0)&&i.push(e)&&!D.__r++||c!=r.debounceRendering)&&((c=r.debounceRendering)||s)(D)}function D(){for(var e,n,t,_,l,o,u,c=1;i.length;)i.length>c&&i.sort(f),e=i.shift(),c=i.length,e.__d&&(t=void 0,l=(_=(n=e).__v).__e,o=[],u=[],n.__P&&((t=k({},_)).__v=_.__v+1,r.vnode&&r.vnode(t),H(n.__P,t,_,n.__n,n.__P.namespaceURI,32&_.__u?[l]:null,o,l??U(_),!!(32&_.__u),u),t.__v=_.__v,t.__.__k[t.__i]=t,I(o,t,u),t.__e!=l&&T(t)));D.__r=0}function M(e,n,t,_,l,o,r,u,i,c,s){var f,p,a,h,d,v,g=_&&_.__k||m,b=n.length;for(i=W(t,n,g,i,b),f=0;f<b;f++)null!=(a=t.__k[f])&&(p=-1==a.__i?y:g[a.__i]||y,a.__i=f,v=H(e,a,p,l,o,r,u,i,c,s),h=a.__e,a.ref&&p.ref!=a.ref&&(p.ref&&O(p.ref,null,a),s.push(a.ref,a.__c||h,a)),null==d&&null!=h&&(d=h),4&a.__u||p.__k===a.__k?i=F(a,i,e):"function"==typeof a.type&&void 0!==v?i=v:h&&(i=h.nextSibling),a.__u&=-7);return t.__e=d,i}function W(e,n,t,_,l){var o,r,u,i,c,s=t.length,f=s,p=0;for(e.__k=new Array(l),o=0;o<l;o++)null!=(r=n[o])&&"boolean"!=typeof r&&"function"!=typeof r?(i=o+p,(r=e.__k[o]="string"==typeof r||"number"==typeof r||"bigint"==typeof r||r.constructor==String?C(null,r,null,null,null):b(r)?C(P,{children:r},null,null,null):void 0===r.constructor&&r.__b>0?C(r.type,r.props,r.key,r.ref?r.ref:null,r.__v):r).__=e,r.__b=e.__b+1,u=null,-1!=(c=r.__i=L(r,t,i,f))&&(f--,(u=t[c])&&(u.__u|=2)),null==u||null==u.__v?(-1==c&&(l>s?p--:l<s&&p++),"function"!=typeof r.type&&(r.__u|=4)):c!=i&&(c==i-1?p--:c==i+1?p++:(c>i?p--:p++,r.__u|=4))):e.__k[o]=null;if(f)for(o=0;o<s;o++)null!=(u=t[o])&&!(2&u.__u)&&(u.__e==_&&(_=U(u)),j(u,u));return _}function F(e,n,t){var _,l;if("function"==typeof e.type){for(_=e.__k,l=0;_&&l<_.length;l++)_[l]&&(_[l].__=e,n=F(_[l],n,t));return n}e.__e!=n&&(n&&e.type&&!t.contains(n)&&(n=U(e)),t.insertBefore(e.__e,n||null),n=e.__e);do{n=n&&n.nextSibling}while(null!=n&&8==n.nodeType);return n}function L(e,n,t,_){var l,o,r=e.key,u=e.type,i=n[t];if(null===i&&null==e.key||i&&r==i.key&&u==i.type&&!(2&i.__u))return t;if(_>(null==i||2&i.__u?0:1))for(l=t-1,o=t+1;l>=0||o<n.length;){if(l>=0){if((i=n[l])&&!(2&i.__u)&&r==i.key&&u==i.type)return l;l--}if(o<n.length){if((i=n[o])&&!(2&i.__u)&&r==i.key&&u==i.type)return o;o++}}return-1}function A(e,n,t){"-"==n[0]?e.setProperty(n,t??""):e[n]=null==t?"":"number"!=typeof t||g.test(n)?t:t+"px"}function N(e,n,t,_,l){var o,r;e:if("style"==n)if("string"==typeof t)e.style.cssText=t;else{if("string"==typeof _&&(e.style.cssText=_=""),_)for(n in _)t&&n in t||A(e.style,n,"");if(t)for(n in t)_&&t[n]==_[n]||A(e.style,n,t[n])}else if("o"==n[0]&&"n"==n[1])o=n!=(n=n.replace(p,"$1")),r=n.toLowerCase(),n=r in e||"onFocusOut"==n||"onFocusIn"==n?r.slice(2):n.slice(2),e.l||(e.l={}),e.l[n+o]=t,t?_?t.u=_.u:(t.u=a,e.addEventListener(n,o?d:h,o)):e.removeEventListener(n,o?d:h,o);else{if("http://www.w3.org/2000/svg"==l)n=n.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("width"!=n&&"height"!=n&&"href"!=n&&"list"!=n&&"form"!=n&&"tabIndex"!=n&&"download"!=n&&"rowSpan"!=n&&"colSpan"!=n&&"role"!=n&&"popover"!=n&&n in e)try{e[n]=t??"";break e}catch(e){}"function"==typeof t||(null==t||!1===t&&"-"!=n[4]?e.removeAttribute(n):e.setAttribute(n,"popover"==n&&1==t?"":t))}}function R(e){return function(n){if(this.l){var t=this.l[n.type+e];if(null==n.t)n.t=a++;else if(n.t<t.u)return;return t(r.event?r.event(n):n)}}}function H(e,n,t,_,l,o,u,i,c,s){var f,p,a,h,d,v,y,m,g,x,C,U,T,E,D,W,F,L=n.type;if(void 0!==n.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[i=n.__e=t.__e]),(f=r.__b)&&f(n);e:if("function"==typeof L)try{if(m=n.props,g="prototype"in L&&L.prototype.render,x=(f=L.contextType)&&_[f.__c],C=f?x?x.props.value:f.__:_,t.__c?y=(p=n.__c=t.__c).__=p.__E:(g?n.__c=p=new L(m,C):(n.__c=p=new S(m,C),p.constructor=L,p.render=V),x&&x.sub(p),p.props=m,p.state||(p.state={}),p.context=C,p.__n=_,a=p.__d=!0,p.__h=[],p._sb=[]),g&&null==p.__s&&(p.__s=p.state),g&&null!=L.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=k({},p.__s)),k(p.__s,L.getDerivedStateFromProps(m,p.__s))),h=p.props,d=p.state,p.__v=n,a)g&&null==L.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),g&&null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(g&&null==L.getDerivedStateFromProps&&m!==h&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(m,C),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(m,p.__s,C)||n.__v==t.__v){for(n.__v!=t.__v&&(p.props=m,p.state=p.__s,p.__d=!1),n.__e=t.__e,n.__k=t.__k,n.__k.some((function(e){e&&(e.__=n)})),U=0;U<p._sb.length;U++)p.__h.push(p._sb[U]);p._sb=[],p.__h.length&&u.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(m,p.__s,C),g&&null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(h,d,v)}))}if(p.context=C,p.props=m,p.__P=e,p.__e=!1,T=r.__r,E=0,g){for(p.state=p.__s,p.__d=!1,T&&T(n),f=p.render(p.props,p.state,p.context),D=0;D<p._sb.length;D++)p.__h.push(p._sb[D]);p._sb=[]}else do{p.__d=!1,T&&T(n),f=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++E<25);p.state=p.__s,null!=p.getChildContext&&(_=k(k({},_),p.getChildContext())),g&&!a&&null!=p.getSnapshotBeforeUpdate&&(v=p.getSnapshotBeforeUpdate(h,d)),W=f,null!=f&&f.type===P&&null==f.key&&(W=$(f.props.children)),i=M(e,b(W)?W:[W],n,t,_,l,o,u,i,c,s),p.base=n.__e,n.__u&=-161,p.__h.length&&u.push(p),y&&(p.__E=p.__=null)}catch(e){if(n.__v=null,c||null!=o)if(e.then){for(n.__u|=c?160:128;i&&8==i.nodeType&&i.nextSibling;)i=i.nextSibling;o[o.indexOf(i)]=null,n.__e=i}else for(F=o.length;F--;)w(o[F]);else n.__e=t.__e,n.__k=t.__k;r.__e(e,n,t)}else null==o&&n.__v==t.__v?(n.__k=t.__k,n.__e=t.__e):i=n.__e=B(t.__e,n,t,_,l,o,u,c,s);return(f=r.diffed)&&f(n),128&n.__u?void 0:i}function I(e,n,t){for(var _=0;_<t.length;_++)O(t[_],t[++_],t[++_]);r.__c&&r.__c(n,e),e.some((function(n){try{e=n.__h,n.__h=[],e.some((function(e){e.call(n)}))}catch(e){r.__e(e,n.__v)}}))}function $(e){return"object"!=typeof e||null==e||e.__b&&e.__b>0?e:b(e)?e.map($):k({},e)}function B(e,n,t,_,l,u,i,c,s){var f,p,a,h,d,v,m,g=t.props,k=n.props,x=n.type;if("svg"==x?l="http://www.w3.org/2000/svg":"math"==x?l="http://www.w3.org/1998/Math/MathML":l||(l="http://www.w3.org/1999/xhtml"),null!=u)for(f=0;f<u.length;f++)if((d=u[f])&&"setAttribute"in d==!!x&&(x?d.localName==x:3==d.nodeType)){e=d,u[f]=null;break}if(null==e){if(null==x)return document.createTextNode(k);e=document.createElementNS(l,x,k.is&&k),c&&(r.__m&&r.__m(n,u),c=!1),u=null}if(null==x)g===k||c&&e.data==k||(e.data=k);else{if(u=u&&o.call(e.childNodes),g=t.props||y,!c&&null!=u)for(g={},f=0;f<e.attributes.length;f++)g[(d=e.attributes[f]).name]=d.value;for(f in g)if(d=g[f],"children"==f);else if("dangerouslySetInnerHTML"==f)a=d;else if(!(f in k)){if("value"==f&&"defaultValue"in k||"checked"==f&&"defaultChecked"in k)continue;N(e,f,null,d,l)}for(f in k)d=k[f],"children"==f?h=d:"dangerouslySetInnerHTML"==f?p=d:"value"==f?v=d:"checked"==f?m=d:c&&"function"!=typeof d||g[f]===d||N(e,f,d,g[f],l);if(p)c||a&&(p.__html==a.__html||p.__html==e.innerHTML)||(e.innerHTML=p.__html),n.__k=[];else if(a&&(e.innerHTML=""),M("template"==n.type?e.content:e,b(h)?h:[h],n,t,_,"foreignObject"==x?"http://www.w3.org/1999/xhtml":l,u,i,u?u[0]:t.__k&&U(t,0),c,s),null!=u)for(f=u.length;f--;)w(u[f]);c||(f="value","progress"==x&&null==v?e.removeAttribute("value"):null!=v&&(v!==e[f]||"progress"==x&&!v||"option"==x&&v!=g[f])&&N(e,f,v,g[f],l),f="checked",null!=m&&m!=e[f]&&N(e,f,m,g[f],l))}return e}function O(e,n,t){try{if("function"==typeof e){var _="function"==typeof e.__u;_&&e.__u(),_&&null==n||(e.__u=e(n))}else e.current=n}catch(e){r.__e(e,t)}}function j(e,n,t){var _,l;if(r.unmount&&r.unmount(e),(_=e.ref)&&(_.current&&_.current!=e.__e||O(_,null,n)),null!=(_=e.__c)){if(_.componentWillUnmount)try{_.componentWillUnmount()}catch(e){r.__e(e,n)}_.base=_.__P=null}if(_=e.__k)for(l=0;l<_.length;l++)_[l]&&j(_[l],n,t||"function"!=typeof e.type);t||w(e.__e),e.__c=e.__=e.__e=void 0}function V(e,n,t){return this.constructor(e,t)}function z(e,n,t){var _,l,u,i;n==document&&(n=document.documentElement),r.__&&r.__(e,n),l=(_="function"==typeof t)?null:t&&t.__k||n.__k,u=[],i=[],H(n,e=(!_&&t||n).__k=x(P,null,[e]),l||y,y,n.namespaceURI,!_&&t?[t]:l?null:n.firstChild?o.call(n.childNodes):null,u,!_&&t?t:l?l.__e:n.firstChild,_,i),I(u,e,i)}o=m.slice,t.options=r={__e:function(e,n,t,_){for(var l,o,r;n=n.__;)if((l=n.__c)&&!l.__)try{if((o=l.constructor)&&null!=o.getDerivedStateFromError&&(l.setState(o.getDerivedStateFromError(e)),r=l.__d),null!=l.componentDidCatch&&(l.componentDidCatch(e,_||{}),r=l.__d),r)return l.__E=l}catch(n){e=n}throw e}},u=0,t.isValidElement=function(e){return null!=e&&void 0===e.constructor},S.prototype.setState=function(e,n){var t;t=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=k({},this.state),"function"==typeof e&&(e=e(k({},t),this.props)),e&&k(t,e),null!=e&&this.__v&&(n&&this._sb.push(n),E(this))},S.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),E(this))},S.prototype.render=P,i=[],s="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(e,n){return e.__v.__b-n.__v.__b},D.__r=0,p=/(PointerCapture)$|Capture$/i,a=0,h=R(!1),d=R(!0),v=0},
232
+ "9295b344df": function _(_,n,t,u,r){u(),t.useCallback=function(_,n){return a=8,g((function(){return _}),n)},t.useContext=function(_){var n=c.context[_.__c],t=E(e++,9);return t.c=_,n?(null==t.__&&(t.__=!0,n.sub(c)),n.props.value):_.__},t.useDebugValue=function(_,n){l.useDebugValue&&l.useDebugValue(n?n(_):_)},t.useEffect=function(_,n){var t=E(e++,3);!l.__s&&q(t.__H,n)&&(t.__=_,t.u=n,c.__H.__h.push(t))},t.useErrorBoundary=function(_){var n=E(e++,10),t=y();return n.__=_,c.componentDidCatch||(c.componentDidCatch=function(_,u){n.__&&n.__(_,u),t[1](_)}),[t[0],function(){t[1](void 0)}]},t.useId=function(){var _=E(e++,11);if(!_.__){for(var n=c.__v;null!==n&&!n.__m&&null!==n.__;)n=n.__;var t=n.__m||(n.__m=[0,0]);_.__="P"+t[0]+"-"+t[1]++}return _.__},t.useImperativeHandle=function(_,n,t){a=6,b((function(){if("function"==typeof _){var t=_(n());return function(){_(null),t&&"function"==typeof t&&t()}}if(_)return _.current=n(),function(){return _.current=null}}),null==t?t:t.concat(_))},t.useLayoutEffect=b,t.useMemo=g,t.useReducer=N,t.useRef=function(_){return a=5,g((function(){return{current:_}}),[])},t.useState=y;const o=_("091628d34a");var e,c,i,f,a=0,h=[],l=o.options,s=l.__b,v=l.__r,m=l.diffed,d=l.__c,p=l.unmount,H=l.__;function E(_,n){l.__h&&l.__h(c,_,a||n),a=0;var t=c.__H||(c.__H={__:[],__h:[]});return _>=t.__.length&&t.__.push({}),t.__[_]}function y(_){return a=1,N(U,_)}function N(_,n,t){var u=E(e++,2);if(u.t=_,!u.__c&&(u.__=[t?t(n):U(void 0,n),function(_){var n=u.__N?u.__N[0]:u.__[0],t=u.t(n,_);n!==t&&(u.__N=[t,u.__[1]],u.__c.setState({}))}],u.__c=c,!c.__f)){var r=function(_,n,t){if(!u.__c.__H)return!0;var r=u.__c.__H.__.filter((function(_){return!!_.__c}));if(r.every((function(_){return!_.__N})))return!o||o.call(this,_,n,t);var e=u.__c.props!==_;return r.forEach((function(_){if(_.__N){var n=_.__[0];_.__=_.__N,_.__N=void 0,n!==_.__[0]&&(e=!0)}})),o&&o.call(this,_,n,t)||e};c.__f=!0;var o=c.shouldComponentUpdate,i=c.componentWillUpdate;c.componentWillUpdate=function(_,n,t){if(this.__e){var u=o;o=void 0,r(_,n,t),o=u}i&&i.call(this,_,n,t)},c.shouldComponentUpdate=r}return u.__N||u.__}function b(_,n){var t=E(e++,4);!l.__s&&q(t.__H,n)&&(t.__=_,t.u=n,c.__h.push(t))}function g(_,n){var t=E(e++,7);return q(t.__H,n)&&(t.__=_(),t.__H=n,t.__h=_),t.__}function C(){for(var _;_=h.shift();)if(_.__P&&_.__H)try{_.__H.__h.forEach(F),_.__H.__h.forEach(k),_.__H.__h=[]}catch(n){_.__H.__h=[],l.__e(n,_.__v)}}l.__b=function(_){c=null,s&&s(_)},l.__=function(_,n){_&&n.__k&&n.__k.__m&&(_.__m=n.__k.__m),H&&H(_,n)},l.__r=function(_){v&&v(_),e=0;var n=(c=_.__c).__H;n&&(i===c?(n.__h=[],c.__h=[],n.__.forEach((function(_){_.__N&&(_.__=_.__N),_.u=_.__N=void 0}))):(n.__h.forEach(F),n.__h.forEach(k),n.__h=[],e=0)),i=c},l.diffed=function(_){m&&m(_);var n=_.__c;n&&n.__H&&(n.__H.__h.length&&(1!==h.push(n)&&f===l.requestAnimationFrame||((f=l.requestAnimationFrame)||D)(C)),n.__H.__.forEach((function(_){_.u&&(_.__H=_.u),_.u=void 0}))),i=c=null},l.__c=function(_,n){n.some((function(_){try{_.__h.forEach(F),_.__h=_.__h.filter((function(_){return!_.__||k(_)}))}catch(t){n.some((function(_){_.__h&&(_.__h=[])})),n=[],l.__e(t,_.__v)}})),d&&d(_,n)},l.unmount=function(_){p&&p(_);var n,t=_.__c;t&&t.__H&&(t.__H.__.forEach((function(_){try{F(_)}catch(_){n=_}})),t.__H=void 0,n&&l.__e(n,t.__v))};var A="function"==typeof requestAnimationFrame;function D(_){var n,t=function(){clearTimeout(u),A&&cancelAnimationFrame(n),setTimeout(_)},u=setTimeout(t,35);A&&(n=requestAnimationFrame(t))}function F(_){var n=c,t=_.__c;"function"==typeof t&&(_.__c=void 0,t()),c=n}function k(_){var n=c;_.__c=_.__(),c=n}function q(_,n){return!_||_.length!==n.length||n.some((function(n,t){return n!==_[t]}))}function U(_,n){return"function"==typeof n?n(_):n}},
233
+ "b3f51db71c": function _(n,t,d,e,a){e();const o=n("tslib"),r=n("091628d34a");var f=n("091628d34a");a("h",f.h),a("render",f.render),a("Component",f.Component);var h=o.__importDefault(n("ab33dd3f38")).default.bind(r.h);d.html=h},
234
234
  "ab33dd3f38": function _(n,t,s,u,r){u(),s.default=function(n){var t=h.get(this);return t||(t=new Map,h.set(this,t)),(t=e(this,t.get(n)||(t.set(n,t=function(n){for(var t,s,u=1,r="",e="",h=[0],p=function(n){1===u&&(n||(r=r.replace(/^\s*\n\s*|\s*\n\s*$/g,"")))?h.push(0,n,r):3===u&&(n||r)?(h.push(3,n,r),u=2):2===u&&"..."===r&&n?h.push(4,n,0):2===u&&r&&!n?h.push(5,0,!0,r):u>=5&&((r||!n&&5===u)&&(h.push(u,0,r,s),u=6),n&&(h.push(u,n,0,s),u=6)),r=""},a=0;a<n.length;a++){a&&(1===u&&p(),p(a));for(var f=0;f<n[a].length;f++)t=n[a][f],1===u?"<"===t?(p(),h=[h],u=3):r+=t:4===u?"--"===r&&">"===t?(u=1,r=""):r=t+r[0]:e?t===e?e="":r+=t:'"'===t||"'"===t?e=t:">"===t?(p(),u=1):u&&("="===t?(u=5,s=r,r=""):"/"===t&&(u<5||">"===n[a][f+1])?(p(),3===u&&(h=h[0]),u=h,(h=h[0]).push(2,0,u),u=0):" "===t||"\t"===t||"\n"===t||"\r"===t?(p(),u=2):r+=t),3===u&&"!--"===r&&(u=4,h=h[0])}return p(),h}(n)),t),arguments,[])).length>1?t:t[0]};var e=function(n,t,s,u){var r;t[0]=0;for(var h=1;h<t.length;h++){var p=t[h++],a=t[h]?(t[0]|=p?1:2,s[t[h++]]):t[++h];3===p?u[0]=a:4===p?u[1]=Object.assign(u[1]||{},a):5===p?(u[1]=u[1]||{})[t[++h]]=a:6===p?u[1][t[++h]]+=a+"":p?(r=n.apply(a,e(n,a,s,["",null])),u.push(r),a[0]?t[0]|=2:(t[h-2]=0,t[h]=r)):u.push(a)}return u},h=new Map},
235
235
  "4155401209": function _(e,t,s,n,i){var l;n();const o=e("tslib"),r=e("@bokehjs/core/dom"),d=e("@bokehjs/core/util/types"),_=e("@bokehjs/models/widgets/input_widget"),c=o.__importStar(e("@bokehjs/styles/widgets/inputs.css"));class h extends _.InputWidgetView{connect_signals(){super.connect_signals();const{value:e,options:t,disabled_options:s,size:n,disabled:i}=this.model.properties;this.on_change(e,(()=>this.render_selection())),this.on_change(t,(()=>this.rerender_())),this.on_change(s,(()=>this.rerender_())),this.on_change(n,(()=>this.rerender_())),this.on_change(i,(()=>this.rerender_()))}render(){super.render(),this.render_selection()}rerender_(){this.rerender?this.rerender():(this.render(),this.r_after_render())}_render_input(){const e=this.model.options.map((e=>{let t,s;(0,d.isString)(e)?t=s=e:[t,s]=e;const n=this.model.disabled_options.includes(t);return(0,r.option)({value:t,disabled:n},s)}));return this.input_el=(0,r.select)({multiple:!1,class:c.input,name:this.model.name,disabled:this.model.disabled},e),this.input_el.style.backgroundImage="none",this.input_el.addEventListener("change",(()=>this.change_input())),this.input_el}render_selection(){const e=this.model.value;for(const t of this.input_el.querySelectorAll("option"))t.value===e&&(t.selected=!0);this.input_el.size=this.model.size}change_input(){const e=null!=this.el.querySelector("select:focus");let t=null;for(const e of this.shadow_el.querySelectorAll("option"))if(e.selected){t=e.value;break}this.model.value=t,super.change_input(),e&&this.input_el.focus()}}s.SingleSelectView=h,h.__name__="SingleSelectView";class u extends _.InputWidget{constructor(e){super(e)}}s.SingleSelect=u,l=u,u.__name__="SingleSelect",u.__module__="panel.models.widgets",l.prototype.default_view=h,l.define((({Any:e,List:t,Int:s,Nullable:n,Str:i})=>({disabled_options:[t(i),[]],options:[t(e),[]],size:[s,4],value:[n(i),null]})))},
236
236
  "5ac2cab0ab": function _(t,e,i,n,o){var s;n();const r=t("9b11ce01a3"),a="Click to START the speech recognition.",{webkitSpeechRecognition:h}=window,{webkitSpeechGrammarList:l}=window;class c extends r.HTMLBoxView{initialize(){super.initialize(),this.recognition=new h,this.recognition.lang=this.model.lang,this.recognition.continuous=this.model.continuous,this.recognition.interimResults=this.model.interim_results,this.recognition.maxAlternatives=this.model.max_alternatives,this.recognition.serviceURI=this.model.service_uri,this.setGrammars(),this.recognition.onresult=t=>{this.model.results=function(t){const e=[];for(const n of t){const t=[],o={is_final:n.isFinal,alternatives:t};for(let e=0;e<n.length;e++){const o={confidence:(i=n[e].confidence,Math.round(100*(i+Number.EPSILON))/100),transcript:n[e].transcript};t.push(o)}o.alternatives=t,e.push(o)}var i;return e}(t.results)},this.recognition.onerror=t=>{console.error(`SpeechToText Error: ${t}`)},this.recognition.onnomatch=t=>{console.warn(`SpeechToText No Match: ${t}`)},this.recognition.onaudiostart=()=>this.model.audio_started=!0,this.recognition.onaudioend=()=>this.model.audio_started=!1,this.recognition.onsoundstart=()=>this.model.sound_started=!0,this.recognition.onsoundend=()=>this.model.sound_started=!1,this.recognition.onspeechstart=()=>this.model.speech_started=!0,this.recognition.onspeechend=()=>this.model.speech_started=!1,this.recognition.onstart=()=>{this.buttonEl.onclick=()=>{this.recognition.stop()},this.buttonEl.innerHTML=this.iconStarted(),this.buttonEl.setAttribute("title","Click to STOP the speech recognition."),this.model.started=!0},this.recognition.onend=()=>{this.buttonEl.onclick=()=>{this.recognition.start()},this.buttonEl.innerHTML=this.iconNotStarted(),this.buttonEl.setAttribute("title",a),this.model.started=!1},this.buttonEl=function(t){const e=document.createElement("template");return t=t.trim(),e.innerHTML=t,e.content.firstChild}(`<button class="bk bk-btn bk-btn-${this.model.button_type}" type="button" title="${a}"></button>`),this.buttonEl.innerHTML=this.iconNotStarted(),this.buttonEl.onclick=()=>this.recognition.start()}iconStarted(){return""!==this.model.button_started?this.model.button_started:'<svg xmlns="http://www.w3.org/2000/svg" height="22px" style="vertical-align: middle;" fill="currentColor" class="bi bi-mic" viewBox="0 0 16 16">\n <path fill-rule="evenodd" d="M3.5 6.5A.5.5 0 0 1 4 7v1a4 4 0 0 0 8 0V7a.5.5 0 0 1 1 0v1a5 5 0 0 1-4.5 4.975V15h3a.5.5 0 0 1 0 1h-7a.5.5 0 0 1 0-1h3v-2.025A5 5 0 0 1 3 8V7a.5.5 0 0 1 .5-.5z"/>\n <path fill-rule="evenodd" d="M10 8V3a2 2 0 1 0-4 0v5a2 2 0 1 0 4 0zM8 0a3 3 0 0 0-3 3v5a3 3 0 0 0 6 0V3a3 3 0 0 0-3-3z"/>\n</svg>'}iconNotStarted(){return""!==this.model.button_not_started?this.model.button_not_started:'<svg xmlns="http://www.w3.org/2000/svg" height="22px" style="vertical-align: middle;" fill="currentColor" class="bi bi-mic-mute" viewBox="0 0 16 16">\n<path fill-rule="evenodd" d="M12.734 9.613A4.995 4.995 0 0 0 13 8V7a.5.5 0 0 0-1 0v1c0 .274-.027.54-.08.799l.814.814zm-2.522 1.72A4 4 0 0 1 4 8V7a.5.5 0 0 0-1 0v1a5 5 0 0 0 4.5 4.975V15h-3a.5.5 0 0 0 0 1h7a.5.5 0 0 0 0-1h-3v-2.025a4.973 4.973 0 0 0 2.43-.923l-.718-.719zM11 7.88V3a3 3 0 0 0-5.842-.963l.845.845A2 2 0 0 1 10 3v3.879l1 1zM8.738 9.86l.748.748A3 3 0 0 1 5 8V6.121l1 1V8a2 2 0 0 0 2.738 1.86zm4.908 3.494l-12-12 .708-.708 12 12-.708.707z"/>\n</svg>'}setIcon(){this.model.started?this.buttonEl.innerHTML=this.iconStarted():this.buttonEl.innerHTML=this.iconNotStarted()}connect_signals(){super.connect_signals();const{start:t,stop:e,abort:i,grammars:n,lang:o,continuous:s,interim_results:r,max_alternatives:a,service_uri:h,button_type:l,button_hide:c,button_not_started:d,button_started:u}=this.model.properties;this.on_change(t,(()=>{this.model.start=!1,this.recognition.start()})),this.on_change(e,(()=>{this.model.stop=!1,this.recognition.stop()})),this.on_change(i,(()=>{this.model.abort=!1,this.recognition.abort()})),this.on_change(n,(()=>this.setGrammars())),this.on_change(o,(()=>this.recognition.lang=this.model.lang)),this.on_change(s,(()=>this.recognition.continuous=this.model.continuous)),this.on_change(r,(()=>this.recognition.interimResults=this.model.interim_results)),this.on_change(a,(()=>this.recognition.maxAlternatives=this.model.max_alternatives)),this.on_change(h,(()=>this.recognition.serviceURI=this.model.service_uri)),this.on_change(l,(()=>this.buttonEl.className=`bk bk-btn bk-btn-${this.model.button_type}`)),this.on_change(c,(()=>this.render())),this.on_change([d,u],(()=>this.setIcon()))}setGrammars(){this.recognition.grammars=function(t){if(t){const e=new l;for(const i of t)i.src?e.addFromString(i.src,i.weight):i.uri&&e.addFromURI(i.uri,i.weight);return e}return null}(this.model.grammars)}render(){super.render(),this.model.button_hide||this.shadow_el.appendChild(this.buttonEl)}}i.SpeechToTextView=c,c.__name__="SpeechToTextView";class d extends r.HTMLBox{constructor(t){super(t)}}i.SpeechToText=d,s=d,d.__name__="SpeechToText",d.__module__="panel.models.speech_to_text",s.prototype.default_view=c,s.define((({Any:t,List:e,Bool:i,Float:n,Str:o})=>({start:[i,!1],stop:[i,!1],abort:[i,!1],grammars:[e(t),[]],lang:[o,""],continuous:[i,!1],interim_results:[i,!1],max_alternatives:[n,1],service_uri:[o,""],started:[i,!1],audio_started:[i,!1],sound_started:[i,!1],speech_started:[i,!1],button_type:[o,"light"],button_hide:[i,!1],button_not_started:[o,""],button_started:[o,""],results:[e(t),[]]})))},
@@ -268,4 +268,4 @@ const r=t("@bokehjs/core/util/types");let o,s;const c={fontFamily:'"Helvetica Ne
268
268
  "18592eecef": function _(e,t,i,s,n){var r;s();const o=e("b06d05fa3e"),a=e("df9946ff52");class l extends o.AbstractVTKView{connect_signals(){super.connect_signals();const{data:e,colormap:t,shadow:i,sampling:s,edge_gradient:n,rescale:r,ambient:o,diffuse:l,camera:d,specular:_,specular_power:c,display_volume:h,display_slices:g,slice_i:p,slice_j:m,slice_k:u,render_background:v,interpolation:w,controller_expanded:y,nan_opacity:k}=this.model.properties;this.on_change(e,(()=>{this._vtk_image_data=(0,a.data2VTKImageData)(this.model.data),this.invalidate_render()})),this.on_change(t,(()=>{this.colormap_selector.value=this.model.colormap;const e=new Event("change");this.colormap_selector.dispatchEvent(e)})),this.on_change(i,(()=>{this.shadow_selector.value=this.model.shadow?"1":"0";const e=new Event("change");this.shadow_selector.dispatchEvent(e)})),this.on_change(s,(()=>{this.sampling_slider.value=this.model.sampling.toFixed(2);const e=new Event("input");this.sampling_slider.dispatchEvent(e)})),this.on_change(n,(()=>{this.edge_gradient_slider.value=this.model.edge_gradient.toFixed(2);const e=new Event("input");this.edge_gradient_slider.dispatchEvent(e)})),this.on_change(r,(()=>{this._controllerWidget.setRescaleColorMap(this.model.rescale),this._vtk_renwin.getRenderWindow().render()})),this.on_change(o,(()=>{this.volume.getProperty().setAmbient(this.model.ambient),this._vtk_renwin.getRenderWindow().render()})),this.on_change(l,(()=>{this.volume.getProperty().setDiffuse(this.model.diffuse),this._vtk_renwin.getRenderWindow().render()})),this.on_change(d,(()=>{this._setting_camera||(this._set_camera_state(),this._vtk_renwin.getRenderWindow().render())})),this.on_change(_,(()=>{this.volume.getProperty().setSpecular(this.model.specular),this._vtk_renwin.getRenderWindow().render()})),this.on_change(c,(()=>{this.volume.getProperty().setSpecularPower(this.model.specular_power),this._vtk_renwin.getRenderWindow().render()})),this.on_change(h,(()=>{this._set_volume_visibility(this.model.display_volume),this._vtk_renwin.getRenderWindow().render()})),this.on_change(g,(()=>{this._set_slices_visibility(this.model.display_slices),this._vtk_renwin.getRenderWindow().render()})),this.on_change(p,(()=>{void 0!==this.image_actor_i&&(this.image_actor_i.getMapper().setISlice(this.model.slice_i),this._vtk_renwin.getRenderWindow().render())})),this.on_change(m,(()=>{void 0!==this.image_actor_j&&(this.image_actor_j.getMapper().setJSlice(this.model.slice_j),this._vtk_renwin.getRenderWindow().render())})),this.on_change(u,(()=>{void 0!==this.image_actor_k&&(this.image_actor_k.getMapper().setKSlice(this.model.slice_k),this._vtk_renwin.getRenderWindow().render())})),this.on_change(v,(()=>{this._vtk_renwin.getRenderer().setBackground(...(0,a.hexToRGB)(this.model.render_background)),this._vtk_renwin.getRenderWindow().render()})),this.on_change(w,(()=>{this._set_interpolation(this.model.interpolation),this._vtk_renwin.getRenderWindow().render()})),this.on_change(y,(()=>{null!=this._controllerWidget&&this._controllerWidget.setExpanded(this.model.controller_expanded)})),this.on_change(k,(()=>{const e=this.image_actor_i.getProperty().getScalarOpacity();e.get(["nodes"]).nodes[0].y=this.model.nan_opacity,e.modified(),this._vtk_renwin.getRenderWindow().render()}))}render(){this._vtk_renwin=null,this._orientationWidget=null,this._axes=null,super.render(),this._create_orientation_widget(),this._set_axes(),this._vtk_renwin.getRenderer().resetCamera(),Object.keys(this.model.camera).length>0&&this._set_camera_state(),this._get_camera_state()}invalidate_render(){this._vtk_renwin=null,super.invalidate_render()}init_vtk_renwin(){this._vtk_renwin=a.vtkns.FullScreenRenderWindow.newInstance({rootContainer:this.shadow_el,container:this._vtk_container})}plot(){this._controllerWidget=a.vtkns.VolumeController.newInstance({size:[400,150],rescaleColorMap:this.model.rescale}),this._plot_volume(),this._plot_slices(),this._controllerWidget.setupContent(this._vtk_renwin.getRenderWindow(),this.volume,!0),this._controllerWidget.setContainer(this.el),this._controllerWidget.setExpanded(this.model.controller_expanded),this._connect_js_controls(),this._vtk_renwin.getRenderWindow().getInteractor(),this._vtk_renwin.getRenderWindow().getInteractor().setDesiredUpdateRate(45),this._set_volume_visibility(this.model.display_volume),this._set_slices_visibility(this.model.display_slices),this._vtk_renwin.getRenderer().setBackground(...(0,a.hexToRGB)(this.model.render_background)),this._set_interpolation(this.model.interpolation),this._set_camera_state()}get vtk_image_data(){return this._vtk_image_data||(this._vtk_image_data=(0,a.data2VTKImageData)(this.model.data)),this._vtk_image_data}get volume(){return this._vtk_renwin.getRenderer().getVolumes()[0]}get image_actor_i(){return this._vtk_renwin.getRenderer().getActors()[0]}get image_actor_j(){return this._vtk_renwin.getRenderer().getActors()[1]}get image_actor_k(){return this._vtk_renwin.getRenderer().getActors()[2]}get shadow_selector(){return this.el.querySelector(".js-shadow")}get edge_gradient_slider(){return this.el.querySelector(".js-edge")}get sampling_slider(){return this.el.querySelector(".js-spacing")}get colormap_selector(){return this.el.querySelector(".js-color-preset")}_connect_js_controls(){const{el:e}=this._controllerWidget.get("el");if(void 0!==e){e.querySelector(".js-button").addEventListener("click",(()=>this.model.controller_expanded=this._controllerWidget.getExpanded()))}this.colormap_selector.addEventListener("change",(()=>{this.model.colormap=this.colormap_selector.value})),this.model.colormap?this.model.properties.colormap.change.emit():this.model.colormap=this.colormap_selector.value,this.shadow_selector.addEventListener("change",(()=>{this.model.shadow=!!Number(this.shadow_selector.value)})),(this.model.shadow=!!Number(this.shadow_selector.value))&&this.model.properties.shadow.change.emit(),this.sampling_slider.addEventListener("input",(()=>{const e=Number(this.sampling_slider.value);Math.abs(this.model.sampling-e)>=.005&&(this.model.sampling=e)})),Math.abs(this.model.sampling-Number(this.shadow_selector.value))>=.005&&this.model.properties.sampling.change.emit(),this.edge_gradient_slider.addEventListener("input",(()=>{const e=Number(this.edge_gradient_slider.value);Math.abs(this.model.edge_gradient-e)>=.005&&(this.model.edge_gradient=e)})),Math.abs(this.model.edge_gradient-Number(this.edge_gradient_slider.value))>=.005&&this.model.properties.edge_gradient.change.emit()}_plot_slices(){const e=this._vtk_image_data,t=a.vtkns.ImageSlice.newInstance(),i=a.vtkns.ImageSlice.newInstance(),s=a.vtkns.ImageSlice.newInstance(),n=a.vtkns.ImageMapper.newInstance(),r=a.vtkns.ImageMapper.newInstance(),o=a.vtkns.ImageMapper.newInstance();n.setInputData(e),n.setISlice(this.model.slice_i),t.setMapper(n),r.setInputData(e),r.setJSlice(this.model.slice_j),i.setMapper(r),o.setInputData(e),o.setKSlice(this.model.slice_k),s.setMapper(o);const l=a.vtkns.PiecewiseFunction.newInstance(),d=this.volume.getProperty().getRGBTransferFunction(0),_=this.volume.getMapper().getInputData().getPointData().getScalars().getRange();l.removeAllPoints(),l.addPoint(_[0]-1,this.model.nan_opacity),l.addPoint(_[0],1),l.addPoint(_[1],1);const c=t.getProperty();i.setProperty(c),s.setProperty(c),c.setRGBTransferFunction(d),c.setScalarOpacity(l);const h=this._vtk_renwin.getRenderer();h.addActor(t),h.addActor(i),h.addActor(s)}_plot_volume(){const e=this.vtk_image_data,t=a.vtkns.Volume.newInstance(),i=a.vtkns.VolumeMapper.newInstance();t.setMapper(i),i.setInputData(e);const s=(e.getPointData().getScalars()||e.getPointData().getArrays()[0]).getRange(),n=a.vtkns.ColorTransferFunction.newInstance();if(null!=this.model.colormap){const e=a.vtkns.ColorTransferFunction.vtkColorMaps.getPresetByName(this.model.colormap);n.applyColorMap(e)}n.onModified((()=>this.model.mapper=(0,a.vtkLutToMapper)(n)));const r=a.vtkns.PiecewiseFunction.newInstance(),o=.7*Math.sqrt(e.getSpacing().map((e=>e*e)).reduce(((e,t)=>e+t),0));i.setSampleDistance(o),t.getProperty().setRGBTransferFunction(0,n),t.getProperty().setScalarOpacity(0,r),t.getProperty().setInterpolationTypeToFastLinear(),t.getProperty().setScalarOpacityUnitDistance(0,a.vtkns.BoundingBox.getDiagonalLength(e.getBounds())/Math.max(...e.getDimensions())),t.getProperty().setGradientOpacityMinimumValue(0,0),t.getProperty().setGradientOpacityMaximumValue(0,.05*(s[1]-s[0])),t.getProperty().setShade(this.model.shadow),t.getProperty().setUseGradientOpacity(0,!0),t.getProperty().setGradientOpacityMinimumOpacity(0,0),t.getProperty().setGradientOpacityMaximumOpacity(0,1),t.getProperty().setAmbient(this.model.ambient),t.getProperty().setDiffuse(this.model.diffuse),t.getProperty().setSpecular(this.model.specular),t.getProperty().setSpecularPower(this.model.specular_power),this._vtk_renwin.getRenderer().addVolume(t)}_set_interpolation(e){"fast_linear"==e?(this.volume.getProperty().setInterpolationTypeToFastLinear(),this.image_actor_i.getProperty().setInterpolationTypeToLinear()):"linear"==e?(this.volume.getProperty().setInterpolationTypeToLinear(),this.image_actor_i.getProperty().setInterpolationTypeToLinear()):(this.volume.getProperty().setInterpolationTypeToNearest(),this.image_actor_i.getProperty().setInterpolationTypeToNearest())}_set_slices_visibility(e){this.image_actor_i.setVisibility(e),this.image_actor_j.setVisibility(e),this.image_actor_k.setVisibility(e)}_set_volume_visibility(e){this.volume.setVisibility(e)}}i.VTKVolumePlotView=l,l.__name__="VTKVolumePlotView";class d extends o.AbstractVTKPlot{constructor(e){super(e)}}i.VTKVolumePlot=d,r=d,d.__name__="VTKVolumePlot",r.prototype.default_view=l,r.define((({Any:e,Array:t,Boolean:i,Int:s,Number:n,String:r,Struct:o})=>({ambient:[n,.2],colormap:[r],data:[e],diffuse:[n,.7],display_slices:[i,!1],display_volume:[i,!0],edge_gradient:[n,.2],interpolation:[a.Interpolation,"fast_linear"],mapper:[o({palette:t(r),low:n,high:n}),{palette:[],low:0,high:0}],nan_opacity:[n,1],render_background:[r,"#52576e"],rescale:[i,!1],sampling:[n,.4],shadow:[i,!0],slice_i:[s,0],slice_j:[s,0],slice_k:[s,0],specular:[n,.3],specular_power:[n,8],controller_expanded:[i,!0]}))),r.override({height:300,width:300})},
269
269
  "a4e5946204": function _(e,t,n,i,r){var s;i();const _=e("@bokehjs/core/util/object"),o=e("99a25e6992"),c=e("b06d05fa3e"),a=e("5e89c7b3eb"),h=e("df9946ff52"),d="panel";class l extends c.AbstractVTKView{initialize(){super.initialize(),this._renderable=!1,this._synchronizer_context=h.vtkns.SynchronizableRenderWindow.getSynchronizerContext(`${d}-{this.model.id}`)}connect_signals(){super.connect_signals();const{arrays:e,scene:t,one_time_reset:n}=this.model.properties;this.on_change([e,t],(0,o.debounce)((()=>{this._vtk_renwin.delete(),this._vtk_renwin=null,this.invalidate_render()}),20)),this.on_change(n,(()=>{this._vtk_renwin.getRenderWindow().clearOneTimeUpdaters()}))}init_vtk_renwin(){this._vtk_renwin=h.vtkns.FullScreenRenderWindowSynchronized.newInstance({rootContainer:this.el,container:this._vtk_container,synchronizerContext:this._synchronizer_context})}remove(){this._vtk_renwin&&this._vtk_renwin.delete(),super.remove()}plot(){this._vtk_renwin.getRenderWindow().clearOneTimeUpdaters();const e=(0,_.clone)(this.model.scene);this._sync_plot(e,(()=>this._on_scene_ready())).then((()=>{this._set_camera_state(),this._get_camera_state()}))}_on_scene_ready(){this._renderable=!0,this._camera_callbacks.push(this._vtk_renwin.getRenderer().getActiveCamera().onModified((()=>this._vtk_render()))),this._orientationWidget||this._create_orientation_widget(),this._axes||this._set_axes(),this._vtk_renwin.resize(),this._vtk_render()}_sync_plot(e,t){this._renderable=!1,this._unsubscribe_camera_cb(),this._synchronizer_context.setFetchArrayFunction((e=>Promise.resolve(this.model.arrays[e])));const n=this._synchronizer_context.getInstance(this.model.scene.dependencies[0].id);return n&&!this._vtk_renwin.getRenderer()&&this._vtk_renwin.getRenderWindow().addRenderer(n),this._vtk_renwin.getRenderWindow().synchronize(e).then(t)}}n.VTKSynchronizedPlotView=l,l.__name__="VTKSynchronizedPlotView";class v extends c.AbstractVTKPlot{constructor(e){super(e),(0,a.initialize_fullscreen_render)(),this.outline=h.vtkns.OutlineFilter.newInstance();const t=h.vtkns.Mapper.newInstance();t.setInputConnection(this.outline.getOutputPort()),this.outline_actor=h.vtkns.Actor.newInstance(),this.outline_actor.setMapper(t)}getActors(e){let t=this.renderer_el.getRenderer().getActors();if(e){const n=this.renderer_el.getSynchronizerContext(d);t=t.filter((t=>{const i=n.getInstanceId(t);return!!i&&i.slice(-16)==e.slice(1,17)}))}return t}}n.VTKSynchronizedPlot=v,s=v,v.__name__="VTKSynchronizedPlot",v.__module__="panel.models.vtk",s.prototype.default_view=l,s.define((({Any:e,Array:t,Boolean:n,Bytes:i,Dict:r,String:s})=>({arrays:[r(i),{}],arrays_processed:[t(s),[]],enable_keybindings:[n,!1],one_time_reset:[n,!1],rebuild:[n,!1],scene:[e,{}]}))),s.override({height:300,width:300})},
270
270
  "5e89c7b3eb": function _(e,n,o,t,r){t(),o.initialize_fullscreen_render=function(){const e={newInstance:window.vtk.macro.newInstance(((e,n,o={})=>{Object.assign(n,l,o),window.vtk.macro.obj(e,n),window.vtk.macro.get(e,n,["renderWindow","openGLRenderWindow","interactor","rootContainer","container","controlContainer","synchronizerContext"]),function(e,n){n.renderWindow=i.vtkns.SynchronizableRenderWindow.newInstance({synchronizerContext:n.synchronizerContext}),n.openGLRenderWindow=i.vtkns.OpenGLRenderWindow.newInstance(),n.openGLRenderWindow.setContainer(n.container),n.renderWindow.addView(n.openGLRenderWindow),n.interactor=i.vtkns.RenderWindowInteractor.newInstance(),n.interactor.setInteractorStyle(i.vtkns.InteractorStyleTrackballCamera.newInstance()),n.interactor.setView(n.openGLRenderWindow),n.interactor.initialize(),n.interactor.bindEvents(n.container),e.getRenderer=()=>n.renderWindow.getRenderers()[0],e.removeController=()=>{const e=n.controlContainer;e&&e.parentNode.removeChild(e)},e.setControllerVisibility=e=>{n.controllerVisibility=e,n.controlContainer&&(n.controlContainer.style.display=e?"block":"none")},e.toggleControllerVisibility=()=>{e.setControllerVisibility(!n.controllerVisibility)},e.addController=o=>{n.controlContainer=document.createElement("div"),(0,i.applyStyle)(n.controlContainer,n.controlPanelStyle||a),n.rootContainer.appendChild(n.controlContainer),n.controlContainer.innerHTML=o,e.setControllerVisibility(n.controllerVisibility),n.rootContainer.addEventListener("keypress",(n=>{"c"===String.fromCharCode(n.charCode)&&e.toggleControllerVisibility()}))},e.delete=window.vtk.macro.chain(e.setContainer,n.openGLRenderWindow.delete,e.delete),e.resize=()=>{const e=n.container.getBoundingClientRect(),o=window.devicePixelRatio||1;n.openGLRenderWindow.setSize(Math.floor(e.width*o),Math.floor(e.height*o)),n.resizeCallback&&n.resizeCallback(e),n.renderWindow.render()},e.setResizeCallback=o=>{n.resizeCallback=o,e.resize()},n.listenWindowResize&&window.addEventListener("resize",e.resize);e.resize()}(e,n)}))};i.vtkns.FullScreenRenderWindowSynchronized=e};const i=e("df9946ff52"),l={containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0,synchronizerContextName:"default"},a={position:"absolute",left:"25px",top:"25px",backgroundColor:"white",borderRadius:"5px",listStyle:"none",padding:"5px 10px",margin:"0",display:"block",border:"solid 1px black",maxWidth:"calc(100vw - 70px)",maxHeight:"calc(100vh - 60px)",overflow:"auto"}},
271
- }, "4e90918c0a", {"index":"4e90918c0a","models/index":"2fe1822b2b","models/ace":"78ccb7a2c5","models/layout":"9b11ce01a3","models/util":"a3669a897a","models/anywidget_component":"1f663ffe94","models/reactive_esm":"d92390e7cb","models/event-to-object":"a572dba9cd","models/html":"4c04683fdc","styles/models/html.css":"9b8139e439","styles/models/esm.css":"727a14f76b","models/audio":"fd59c985b3","models/browser":"5a16cc23e6","models/button":"1db93211cd","models/button_icon":"1738ddeb3a","models/icon":"6c7fbea0ef","models/card":"d7035097d8","models/column":"b273e5b2fb","styles/models/card.css":"6342ac8e26","models/checkbox_button_group":"51fbe9e2d0","models/chatarea_input":"27a077673d","models/textarea_input":"b7d595d74a","models/comm_manager":"1bec1b1fcc","models/customselect":"92bbd30bd1","models/multiselect":"27b5580835","models/tabulator":"d446ec1ed8","models/data":"be689f0377","styles/models/tabulator.css":"3d732ff91f","models/datetime_picker":"100965d6f3","models/datetime_slider":"c97cc0eade","models/deckgl":"01df2ec63b","models/lumagl":"a49afbffe9","models/tooltips":"f8f8ea4284","models/discrete_player":"0dca2cd4f6","models/player":"96e805ccb5","models/echarts":"1da56f3c52","models/feed":"4cfe0841a5","models/file_download":"84a13dddfb","models/file_dropper":"e8b7476f90","styles/models/filedropper.css":"c03dd3c931","models/ipywidget":"8a8089cbf3","models/json":"245cd3cfde","models/jsoneditor":"a123a88e31","models/katex":"f672d71a9f","models/location":"bd8e0fe48b","models/mathjax":"d889a68424","models/modal":"8c62aa80d9","styles/models/modal.css":"be4b4352c6","models/pdf":"f87ad1873c","models/perspective":"29a0b0da9a","styles/models/perspective.css":"2e2913ea54","models/plotly":"7d9124b744","styles/models/plotly.css":"3d56c75186","models/progress":"b1f4d68596","models/quill":"f6d86c7342","models/radio_button_group":"25e2d7c208","models/react_component":"1170146660","models/reactive_html":"d5752cda5a","models/singleselect":"4155401209","models/speech_to_text":"5ac2cab0ab","models/state":"92822cb73a","models/tabs":"fffb4344f7","models/terminal":"a961b5ae5e","models/text_input":"8be416b160","models/text_to_speech":"a04eb51988","models/time_picker":"1afcab4e45","models/toggle_icon":"ad985f285e","models/tooltip_icon":"ae3a172647","models/trend":"29d55a28a9","models/vega":"119dc23765","models/video":"79dc37b888","styles/models/video.css":"dfe21e6f1b","models/videostream":"f8afc4e661","models/vizzu":"1f7bc1f95b","models/vtk/index":"c51f25e2a7","models/vtk/vtkjs":"ac55912dc1","models/vtk/vtklayout":"b06d05fa3e","models/vtk/util":"df9946ff52","models/vtk/vtkcolorbar":"b1d68776a9","models/vtk/vtkaxes":"0379dcf1cd","models/vtk/vtkvolume":"18592eecef","models/vtk/vtksynchronized":"a4e5946204","models/vtk/panel_fullscreen_renwin_sync":"5e89c7b3eb"}, {});});
271
+ }, "4e90918c0a", {"index":"4e90918c0a","models/index":"2fe1822b2b","models/ace":"78ccb7a2c5","models/layout":"9b11ce01a3","models/util":"a3669a897a","models/anywidget_component":"1f663ffe94","models/reactive_esm":"d92390e7cb","models/event-to-object":"a572dba9cd","models/html":"4c04683fdc","styles/models/html.css":"9b8139e439","styles/models/esm.css":"727a14f76b","models/audio":"fd59c985b3","models/browser":"5a16cc23e6","models/button":"1db93211cd","models/button_icon":"1738ddeb3a","models/icon":"6c7fbea0ef","models/card":"25fcfb521e","models/column":"b273e5b2fb","styles/models/card.css":"6342ac8e26","models/checkbox_button_group":"51fbe9e2d0","models/chatarea_input":"27a077673d","models/textarea_input":"b7d595d74a","models/comm_manager":"1bec1b1fcc","models/customselect":"92bbd30bd1","models/multiselect":"27b5580835","models/tabulator":"8cfbb15960","models/data":"be689f0377","styles/models/tabulator.css":"3d732ff91f","models/datetime_picker":"100965d6f3","models/datetime_slider":"c97cc0eade","models/deckgl":"01df2ec63b","models/lumagl":"a49afbffe9","models/tooltips":"f8f8ea4284","models/discrete_player":"0dca2cd4f6","models/player":"96e805ccb5","models/echarts":"1da56f3c52","models/feed":"f9c84aaf3d","models/file_download":"84a13dddfb","models/file_dropper":"8531319d94","styles/models/filedropper.css":"c03dd3c931","models/ipywidget":"8a8089cbf3","models/json":"245cd3cfde","models/jsoneditor":"a123a88e31","models/katex":"f672d71a9f","models/location":"bd8e0fe48b","models/mathjax":"d889a68424","models/modal":"8c62aa80d9","styles/models/modal.css":"be4b4352c6","models/pdf":"f87ad1873c","models/perspective":"29a0b0da9a","styles/models/perspective.css":"2e2913ea54","models/plotly":"7d9124b744","styles/models/plotly.css":"3d56c75186","models/progress":"b1f4d68596","models/quill":"f6d86c7342","models/radio_button_group":"25e2d7c208","models/react_component":"d42fdf93ec","models/reactive_html":"d5752cda5a","models/singleselect":"4155401209","models/speech_to_text":"5ac2cab0ab","models/state":"92822cb73a","models/tabs":"fffb4344f7","models/terminal":"a961b5ae5e","models/text_input":"8be416b160","models/text_to_speech":"a04eb51988","models/time_picker":"1afcab4e45","models/toggle_icon":"ad985f285e","models/tooltip_icon":"ae3a172647","models/trend":"29d55a28a9","models/vega":"119dc23765","models/video":"79dc37b888","styles/models/video.css":"dfe21e6f1b","models/videostream":"f8afc4e661","models/vizzu":"1f7bc1f95b","models/vtk/index":"c51f25e2a7","models/vtk/vtkjs":"ac55912dc1","models/vtk/vtklayout":"b06d05fa3e","models/vtk/util":"df9946ff52","models/vtk/vtkcolorbar":"b1d68776a9","models/vtk/vtkaxes":"0379dcf1cd","models/vtk/vtkvolume":"18592eecef","models/vtk/vtksynchronized":"a4e5946204","models/vtk/panel_fullscreen_renwin_sync":"5e89c7b3eb"}, {});});