@holoviz/panel 0.12.3 → 0.12.4-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/panel.min.js CHANGED
@@ -42,13 +42,13 @@
42
42
  })
43
43
  ({
44
44
  "4e90918c0a": function _(e,s,t,o,i){o();const n=(0,e("tslib").__importStar)(e("7898617fc4"));t.Panel=n;(0,e("@bokehjs/base").register_models)(n)},
45
- "7898617fc4": function _(e,a,t,o,c){o();const d=e("tslib");c("AcePlot",e("9fecc8d0f9").AcePlot),c("Audio",e("339f84d639").Audio),c("Card",e("c816112d20").Card),c("CommManager",e("e552778259").CommManager),c("DataTabulator",e("32011d40fa").DataTabulator),c("DatetimePicker",e("6e11b2cfe2").DatetimePicker),c("DeckGLPlot",e("df2378664f").DeckGLPlot),c("ECharts",e("9d046c4720").ECharts),c("HTML",e("2839081043").HTML),c("IDOM",e("7d45bd3bc4").IDOM),c("IPyWidget",e("0eae77d68f").IPyWidget),c("JSON",e("0d30bea0c8").JSON),c("FileDownload",e("1767172ffa").FileDownload),c("KaTeX",e("7b859fb3cf").KaTeX),c("Location",e("642aa56b24").Location),c("MathJax",e("0c21036737").MathJax),c("Perspective",e("84a772681d").Perspective),c("Player",e("2e8044c920").Player),c("PlotlyPlot",e("50ac0b0178").PlotlyPlot),c("Progress",e("9f787650b9").Progress),c("ReactiveHTML",e("11283de978").ReactiveHTML),c("SingleSelect",e("5ed2116e26").SingleSelect),c("SpeechToText",e("aaa48703af").SpeechToText),c("State",e("bfa46a5f19").State),c("Terminal",e("91fe88c277").Terminal),c("TextToSpeech",e("33cd2c254e").TextToSpeech),c("TrendIndicator",e("effe070807").TrendIndicator),c("VegaPlot",e("4feb5fa522").VegaPlot),c("Video",e("ffe54b53c3").Video),c("VideoStream",e("e3e9b8e495").VideoStream),(0,d.__exportStar)(e("c51f25e2a7"),t)},
45
+ "7898617fc4": function _(e,a,t,c,o){c();const d=e("tslib");o("AcePlot",e("9fecc8d0f9").AcePlot),o("Audio",e("339f84d639").Audio),o("Card",e("c816112d20").Card),o("CommManager",e("e552778259").CommManager),o("DataTabulator",e("99e23dce53").DataTabulator),o("DatetimePicker",e("6e11b2cfe2").DatetimePicker),o("DeckGLPlot",e("df2378664f").DeckGLPlot),o("ECharts",e("9d046c4720").ECharts),o("HTML",e("2839081043").HTML),o("IDOM",e("7d45bd3bc4").IDOM),o("IPyWidget",e("0eae77d68f").IPyWidget),o("JSON",e("0d30bea0c8").JSON),o("FileDownload",e("1767172ffa").FileDownload),o("KaTeX",e("7b859fb3cf").KaTeX),o("Location",e("642aa56b24").Location),o("MathJax",e("0c21036737").MathJax),o("Perspective",e("84a772681d").Perspective),o("Player",e("2e8044c920").Player),o("PlotlyPlot",e("50ac0b0178").PlotlyPlot),o("Progress",e("9f787650b9").Progress),o("ReactiveHTML",e("eb3a49319b").ReactiveHTML),o("SingleSelect",e("5ed2116e26").SingleSelect),o("SpeechToText",e("aaa48703af").SpeechToText),o("State",e("bfa46a5f19").State),o("Terminal",e("91fe88c277").Terminal),o("TextToSpeech",e("33cd2c254e").TextToSpeech),o("TrendIndicator",e("effe070807").TrendIndicator),o("VegaPlot",e("4feb5fa522").VegaPlot),o("Video",e("ffe54b53c3").Video),o("VideoStream",e("e3e9b8e495").VideoStream),(0,d.__exportStar)(e("c51f25e2a7"),t)},
46
46
  "9fecc8d0f9": function _(e,t,i,o,s){o();const n=e("@bokehjs/models/layouts/html_box"),a=e("@bokehjs/core/dom"),d=e("4c755983eb");class h extends d.PanelHTMLBoxView{initialize(){super.initialize(),this._ace=window.ace,this._container=(0,a.div)({id:"_"+Math.random().toString(36).substr(2,9),style:{width:"100%",height:"100%",zIndex:0}})}connect_signals(){super.connect_signals(),this.connect(this.model.properties.code.change,(()=>this._update_code_from_model())),this.connect(this.model.properties.theme.change,(()=>this._update_theme())),this.connect(this.model.properties.language.change,(()=>this._update_language())),this.connect(this.model.properties.filename.change,(()=>this._update_filename())),this.connect(this.model.properties.print_margin.change,(()=>this._update_print_margin())),this.connect(this.model.properties.annotations.change,(()=>this._add_annotations())),this.connect(this.model.properties.readonly.change,(()=>{this._editor.setReadOnly(this.model.readonly)}))}render(){super.render(),this._container!==this.el.childNodes[0]&&this.el.appendChild(this._container),this._container.textContent=this.model.code,this._editor=this._ace.edit(this._container.id),this._langTools=this._ace.require("ace/ext/language_tools"),this._modelist=this._ace.require("ace/ext/modelist"),this._editor.setOptions({enableBasicAutocompletion:!0,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._editor.on("change",(()=>this._update_code_from_editor()))}_update_code_from_model(){this._editor&&this._editor.getValue()!=this.model.code&&this._editor.setValue(this.model.code)}_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_theme(){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(),this._editor.resize()}}i.AcePlotView=h,h.__name__="AcePlotView";class _ extends n.HTMLBox{constructor(e){super(e)}static init_AcePlot(){this.prototype.default_view=h,this.define((({Any:e,Array:t,Boolean:i,String:o})=>({code:[o,""],filename:[o],language:[o],theme:[o,"chrome"],annotations:[t(e),[]],readonly:[i,!1],print_margin:[i,!1]}))),this.override({height:300,width:300})}}i.AcePlot=_,_.__name__="AcePlot",_.__module__="panel.models.ace",_.init_AcePlot()},
47
47
  "4c755983eb": function _(e,i,t,s,h){s();const n=e("@bokehjs/core/layout/html"),_=e("@bokehjs/core/layout/types"),a=e("@bokehjs/core/dom"),l=e("@bokehjs/models/widgets/markup"),o=e("@bokehjs/models/layouts/html_box");function d(e,i){let t=null!=i.width?"fixed":"fit",s=null!=i.height?"fixed":"fit";const{sizing_mode:h}=i;if(null!=h)if("fixed"==h)t=s="fixed";else if("stretch_both"==h)t=s="max";else if("stretch_width"==h)t="max";else if("stretch_height"==h)s="max";else switch(h){case"scale_width":t="max",s="min";break;case"scale_height":t="min",s="max";break;case"scale_both":t="max",s="max";break;default:throw new Error("unreachable")}"fixed"==t&&i.width?e.style.width=i.width+"px":"max"==t&&(e.style.width="100%"),null!=i.min_width&&(e.style.minWidth=i.min_width+"px"),null!=i.max_width&&(e.style.maxWidth=i.max_width+"px"),"fixed"==s&&i.height?e.style.height=i.height+"px":"max"==s&&(e.style.height="100%"),null!=i.min_height&&(e.style.minHeight=i.min_height+"px"),null!=i.max_width&&(e.style.maxHeight=i.max_height+"px")}t.set_size=d;class m extends n.VariadicBox{constructor(e,i,t){super(e),this.el=e,this.sizing_mode=i,this.changed=t,this._cache=new Map,this._cache_count=new Map}_measure(e){const i=[e.width,e.height,this.sizing_mode].toString(),t=this.changed&&"fixed"!=this.sizing_mode&&null!=this.sizing_mode?1:0,s=this._cache.get(i),h=this._cache_count.get(i);if(null!=s&&null!=h&&h>=t)return this._cache_count.set(i,h+1),s;const n=new _.Sizeable(e).bounded_to(this.sizing.size),l=(0,a.sized)(this.el,n,(()=>{const e=new _.Sizeable((0,a.content_size)(this.el)),{border:i,padding:t}=(0,a.extents)(this.el);return e.grow_by(i).grow_by(t).map(Math.ceil)}));return this._cache.set(i,l),this._cache_count.set(i,0),l}invalidate_cache(){}}t.CachedVariadicBox=m,m.__name__="CachedVariadicBox";class c extends l.MarkupView{_update_layout(){let e=void 0!==this._prev_sizing_mode&&this._prev_sizing_mode!==this.model.sizing_mode;this._prev_sizing_mode=this.model.sizing_mode,this.layout=new m(this.el,this.model.sizing_mode,e),this.layout.set_sizing(this.box_sizing())}render(){super.render(),d(this.markup_el,this.model)}}t.PanelMarkupView=c,c.__name__="PanelMarkupView";class r extends o.HTMLBoxView{_update_layout(){let e=void 0!==this._prev_sizing_mode&&this._prev_sizing_mode!==this.model.sizing_mode;this._prev_sizing_mode=this.model.sizing_mode,this.layout=new m(this.el,this.model.sizing_mode,e),this.layout.set_sizing(this.box_sizing())}render(){super.render(),d(this.el,this.model)}}t.PanelHTMLBoxView=r,r.__name__="PanelHTMLBoxView"},
48
48
  "339f84d639": function _(e,t,i,o,s){o();const l=e("@bokehjs/models/layouts/html_box"),d=e("4c755983eb");class u extends d.PanelHTMLBoxView{initialize(){super.initialize(),this._blocked=!1,this._setting=!1,this._time=Date.now()}connect_signals(){super.connect_signals(),this.connect(this.model.properties.loop.change,(()=>this.set_loop())),this.connect(this.model.properties.paused.change,(()=>this.set_paused())),this.connect(this.model.properties.time.change,(()=>this.set_time())),this.connect(this.model.properties.value.change,(()=>this.set_value())),this.connect(this.model.properties.volume.change,(()=>this.set_volume()))}render(){super.render(),this.audioEl=document.createElement("audio"),this.audioEl.controls=!0,this.audioEl.src=this.model.value,this.audioEl.currentTime=this.model.time,this.audioEl.loop=this.model.loop,null!=this.model.volume?this.audioEl.volume=this.model.volume/100:this.model.volume=100*this.audioEl.volume,this.audioEl.onpause=()=>this.model.paused=!0,this.audioEl.onplay=()=>this.model.paused=!1,this.audioEl.ontimeupdate=()=>this.update_time(this),this.audioEl.onvolumechange=()=>this.update_volume(this),this.el.appendChild(this.audioEl),this.model.paused||this.audioEl.play()}update_time(e){e._setting?e._setting=!1:Date.now()-e._time<e.model.throttle||(e._blocked=!0,e.model.time=e.audioEl.currentTime,e._time=Date.now())}update_volume(e){e._setting?e._setting=!1:(e._blocked=!0,e.model.volume=100*e.audioEl.volume)}set_loop(){this.audioEl.loop=this.model.loop}set_paused(){!this.audioEl.paused&&this.model.paused&&this.audioEl.pause(),this.audioEl.paused&&!this.model.paused&&this.audioEl.play()}set_volume(){this._blocked?this._blocked=!1:(this._setting=!0,null!=this.model.volume&&(this.audioEl.volume=this.model.volume/100))}set_time(){this._blocked?this._blocked=!1:(this._setting=!0,this.audioEl.currentTime=this.model.time)}set_value(){this.audioEl.src=this.model.value}}i.AudioView=u,u.__name__="AudioView";class h extends l.HTMLBox{constructor(e){super(e)}static init_Audio(){this.prototype.default_view=u,this.define((({Any:e,Boolean:t,Int:i,Number:o})=>({loop:[t,!1],paused:[t,!0],time:[o,0],throttle:[o,250],value:[e,""],volume:[i]})))}}i.Audio=h,h.__name__="Audio",h.__module__="panel.models.widgets",h.init_Audio()},
49
49
  "c816112d20": function _(e,s,l,t,o){t();const i=e("tslib"),a=e("@bokehjs/models/layouts/column"),n=e("@bokehjs/core/util/bbox"),c=(0,i.__importStar)(e("@bokehjs/core/dom")),d=e("@bokehjs/core/dom"),r=e("@bokehjs/core/layout/grid"),h=e("@bokehjs/core/util/color");class _ extends a.ColumnView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.collapsed.change,(()=>this._collapse()));const{active_header_background:e,header_background:s,header_color:l}=this.model.properties;this.on_change([e,s,l],(()=>this.render()))}_update_layout(){const e=(this.model.collapsed?this.child_views.slice(0,1):this.child_views).map((e=>e.layout));this.layout=new r.Column(e),this.layout.rows=this.model.rows,this.layout.spacing=[this.model.spacing,0],this.layout.set_sizing(this.box_sizing())}update_position(){if(this.model.collapsible){const e=this.child_views[0],s=e.layout.bbox,l=e.layout.inner_bbox;if(0!=s.x1){const t=getComputedStyle(this.button_el.children[0]),o=parseFloat(t.width)+parseFloat(t.marginLeft),i=new n.BBox({x0:s.x0,x1:s.x1-o,y0:s.y0,y1:s.y1}),a=new n.BBox({x0:l.x0,x1:l.x1-o,y0:l.y0,y1:l.y1});e.layout.set_geometry(i,a)}}super.update_position()}render(){(0,d.empty)(this.el);const{background:e,button_css_classes:s,header_color:l,header_tag:t,header_css_classes:o}=this.model;this.el.style.backgroundColor=null!=e?(0,h.color2css)(e):"",(0,d.classes)(this.el).clear().add(...this.css_classes());let i=this.model.header_background;!this.model.collapsed&&this.model.active_header_background&&(i=this.model.active_header_background);const a=this.child_views[0];let n;if(this.model.collapsible){this.button_el=c.createElement("button",{type:"button",class:o});const e=c.createElement("div",{class:s});e.innerHTML=this.model.collapsed?"\u25ba":"\u25bc",this.button_el.appendChild(e),this.button_el.style.backgroundColor=null!=i?i:"",a.el.style.backgroundColor=null!=i?i:"",this.button_el.appendChild(a.el),this.button_el.onclick=()=>this._toggle_button(),n=this.button_el}else n=c.createElement(t,{class:o}),n.style.backgroundColor=null!=i?i:"",n.appendChild(a.el);n.style.color=null!=l?l:"",this.el.appendChild(n),a.render();for(const e of this.child_views.slice(1))this.model.collapsed||this.el.appendChild(e.el),e.render()}_toggle_button(){this.model.collapsed=!this.model.collapsed}_collapse(){this.invalidate_render()}_createElement(){return c.createElement(this.model.tag,{class:this.css_classes()})}}l.CardView=_,_.__name__="CardView";class u extends a.Column{constructor(e){super(e)}static init_Card(){this.prototype.default_view=_,this.define((({Array:e,Boolean:s,Nullable:l,String:t})=>({active_header_background:[l(t),null],button_css_classes:[e(t),[]],collapsed:[s,!0],collapsible:[s,!0],header_background:[l(t),null],header_color:[l(t),null],header_css_classes:[e(t),[]],header_tag:[t,"div"],tag:[t,"div"]})))}}l.Card=u,u.__name__="Card",u.__module__="panel.models.layout",u.init_Card()},
50
50
  "e552778259": function _(e,t,n,o,i){o();const s=e("@bokehjs/document"),c=e("@bokehjs/core/view"),_=e("@bokehjs/model"),l=e("@bokehjs/protocol/message"),a=e("@bokehjs/protocol/receiver");class h extends c.View{renderTo(){}}n.CommManagerView=h,h.__name__="CommManagerView";class m extends _.Model{constructor(e){super(e),this._document_listener=e=>this._document_changed(e),this._receiver=new a.Receiver,this._event_buffer=[],this._blocked=!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=>this.msg_handler(e))),this._client_comm=this.ns.comm_manager.get_client_comm(this.plot_id,this.client_comm_id,(e=>this.on_ack(e)))):console.log("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.setter_id!==this.id&&(e instanceof s.ModelChangedEvent&&!(e.attr in e.model.serializable_attributes())||(this._event_buffer.push(e),(!this._blocked||Date.now()>this._timeout)&&(setTimeout((()=>this.process_events()),this.debounce),this._blocked=!0,this._timeout=Date.now()+this.timeout)))}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);this._client_comm.send(t)}on_ack(e){const t=e.metadata;this._event_buffer.length?(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.log("Python failed with the following traceback:",t.traceback)}msg_handler(e){const t=e.metadata,n=e.buffers,o=e.content.data,i=this.plot_id;if("Ready"==t.msg_type)t.content?console.log("Python callback returned following output:",t.content):"Error"==t.msg_type&&console.log("Python failed with the following traceback:",t.traceback);else if(null!=i){let e=null;if(i in this.ns.plot_index&&null!=this.ns.plot_index[i]?e=this.ns.plot_index[i]:void 0!==window.Bokeh&&i in window.Bokeh.index&&(e=window.Bokeh.index[i]),null==e)return;null!=n&&n.length>0?this._receiver.consume(n[0].buffer):this._receiver.consume(o);const t=this._receiver.message;null!=t&&Object.keys(t.content).length>0&&null!=this.document&&this.document.apply_json_patch(t.content,t.buffers,this.id)}}static init_CommManager(){this.prototype.default_view=h,this.define((({Int:e,String:t})=>({plot_id:[t],comm_id:[t],client_comm_id:[t],timeout:[e,5e3],debounce:[e,50]})))}}n.CommManager=m,m.__name__="CommManager",m.__module__="panel.models.comm_manager",m.init_CommManager()},
51
- "32011d40fa": function _(t,e,s,i,o){i();const l=t("@bokehjs/core/util/types"),a=t("@bokehjs/models/layouts/html_box"),n=t("@bokehjs/core/dom"),r=t("@bokehjs/core/kinds"),d=t("@bokehjs/models/sources/column_data_source"),c=t("@bokehjs/models/widgets/tables"),u=t("f1971f81bf"),h=t("4c755983eb");function m(t,e,s){for(const i of s)if(i[t]==e)return i;return null}function f(t,e,s,i=0){const o={};if(0==t.length)return o;const a=s[i];for(const n of t){const t=f(n._children,e,s,i+1);for(const e in t)(0,l.isArray)(t[e])?n[e]=t[e].reduce(((t,e)=>t+e),0)/t[e].length:n[e]=t[e];for(const t of e.slice(1)){const e=n[t.field];if(t.field in o){const s=o[t.field];"min"===a?o[t.field]=Math.min(e,s):"max"===a?o[t.field]=Math.max(e,s):"sum"===a?o[t.field]=e+s:"mean"===a&&((0,l.isArray)(o[t.field])?o[t.field].push(e):o[t.field]=[s,e])}else o[t.field]=e}}return o}function _(t,e,s,i){const o=[],l=e[0].field;for(const i of t){const t=i[s[0]];let a=m(l,t,o);null==a&&(a={_children:[]},a[l]=t,o.push(a));let n=a;const r={};for(const t of s.slice(1)){n=m(l,i[t],n._children),null==n&&(n={_children:[]},n[l]=i[t],a._children.push(n)),r[t]=a;for(const t of e.slice(1))n[t.field]=i[t];a=n}for(const t of e.slice(1))n[t.field]=i[t.field]}const a=[];for(const t of s)a.push(t in i?i[t]:"sum");return f(o,e,a),o}class g extends h.PanelHTMLBoxView{constructor(){super(...arguments),this._tabulator_cell_updating=!1,this._data_updating=!0,this._selection_updating=!1,this._styled_cells=[]}connect_signals(){super.connect_signals();const{configuration:t,layout:e,columns:s,theme:i,groupby:o}=this.model.properties;this.on_change([t,e,s,o],(()=>this.render_and_resize())),this.on_change([i],(()=>this.setCSS())),this.connect(this.model.properties.download.change,(()=>{const t=this.model.filename.endsWith(".json")?"json":"csv";this.tabulator.download(t,this.model.filename)})),this.connect(this.model.properties.hidden_columns.change,(()=>{this.hideColumns()})),this.connect(this.model.properties.page_size.change,(()=>{this.setPageSize()})),this.connect(this.model.properties.page.change,(()=>{this.setPage()})),this.connect(this.model.properties.max_page.change,(()=>{this.setMaxPage()})),this.connect(this.model.properties.frozen_rows.change,(()=>{this.freezeRows()})),this.connect(this.model.properties.styles.change,(()=>{this.updateStyles()})),this.connect(this.model.source.properties.data.change,(()=>{this.setData()})),this.connect(this.model.source.streaming,(()=>this.addData())),this.connect(this.model.source.patching,(()=>this.updateOrAddData())),this.connect(this.model.source.selected.change,(()=>this.updateSelection())),this.connect(this.model.source.selected.properties.indices.change,(()=>this.updateSelection()))}render_and_resize(){this.render(),this.update_layout(),this.compute_layout(),this.root!==this&&this.invalidate_layout()}render(){super.render();if(this.setCSS())return;this._initializing=!0;const t=(0,n.div)({class:"pnx-tabulator"});(0,h.set_size)(t,this.model);let e=this.getConfiguration();this.tabulator=new Tabulator(t,e),"remote"===this.model.pagination&&(this.tabulator.options.pagination=this.model.pagination,this.tabulator.modules.page.mode="remote"),this.setGroupBy(),this.hideColumns(),this.model.pagination?(this.setMaxPage(),this.tabulator.setPage(this.model.page),this.setData()):this.freezeRows(),this.el.appendChild(t)}tableInit(t,e){const s=e.modules.ajax;s.sendRequest=()=>t.requestPage(s.params.page,s.params.sorters),e.modules.page._parseRemoteData=()=>{}}requestPage(t,e){return new Promise(((s,i)=>{try{null!=t&&null!=e&&(this._data_updating?this._data_updating=!1:this.model.sorters=e,this.model.page=t||1),s([])}catch(t){i(t)}}))}renderComplete(){this._initializing&&(this.updateStyles(),this.updateSelection()),this._initializing=!1}freezeRows(){for(const t of this.model.frozen_rows)this.tabulator.getRow(t).freeze()}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="remote"==this.model.pagination?"local":this.model.pagination||!1;let e=!("boolean"==typeof this.model.select_mode);const s=this;let i=Object.assign(Object.assign({},this.model.configuration),{index:"_index",nestedFieldSeparator:!1,selectable:e,tableBuilding:function(){s.tableInit(s,this)},renderComplete:()=>this.renderComplete(),rowSelectionChanged:(t,e)=>this.rowSelectionChanged(t,e),rowClick:(t,e)=>this.rowClicked(t,e),cellEdited:t=>this.cellEdited(t),columns:this.getColumns(),layout:this.getLayout(),pagination:t,paginationSize:this.model.page_size,paginationInitialPage:1,selectableCheck:t=>{const e=this.model.selectable_rows;return null==e||e.indexOf(t._row.data._index)>=0},tooltips:t=>t.getColumn().getField()+": "+t.getValue()});t&&(i.ajaxURL="http://panel.pyviz.org",i.ajaxSorting=!0);const o=this.model.source;let l;return l=null===o||0===o.columns().length?[]:(0,u.transform_cds_to_records)(o,!0),i.dataTree&&(l=_(l,this.model.columns,this.model.indexes,this.model.aggregators)),Object.assign(Object.assign({},i),{data:l})}getColumns(){var t;const e=null===(t=this.model.configuration)||void 0===t?void 0:t.columns;let s=[];if(null!=e)for(const t of e)if(null!=t.columns){const e=[];for(const s of t.columns)e.push(Object.assign({},s));s.push(Object.assign(Object.assign({},t),{columns:e}))}else s.push(Object.assign({},t));for(const t of this.model.columns){let i=null;if(null!=e)for(const e of s)if(null!=e.columns){for(const s of e.columns)if(t.field===s.field){i=s;break}if(null!=i)break}else if(t.field===e.field){i=e;break}if(null==i&&(i={field:t.field}),null==i.title&&(i.title=t.title),null==i.width&&null!=t.width&&0!=t.width&&(i.width=t.width),null==i.formatter&&null!=t.formatter){const e=t.formatter.type;i.formatter="BooleanFormatter"===e?"tickCross":e=>{const s=t.formatter.doFormat(e.getRow(),e,e.getValue(),null,null),i=(0,n.div)();return i.innerHTML=s,i.children[0].innerHTML}}const o=t.editor,l=o.type;null!=i.editor||("StringEditor"===l?o.completions.length>0?(i.editor="autocomplete",i.editorParams={values:o.completions}):i.editor="input":"TextEditor"===l?i.editor="textarea":"IntEditor"===l||"NumberEditor"===l?(i.editor="number",i.editorParams={step:o.step}):"CheckboxEditor"===l?i.editor="tickCross":"SelectEditor"===l?(i.editor="select",i.editorParams={values:o.options}):null!=o&&null!=o.default_view&&(i.editor=(e,s,i,o)=>this.renderEditor(t,e,s,i,o))),i.editable=()=>this.model.editable&&null!=o.default_view,null==e&&s.push(i)}return s}renderEditor(t,e,s,i,o){const l=t.editor,a=new l.default_view({column:t,model:l,parent:this,container:e._cell.element});return a.initialize(),a.connect_signals(),s((()=>{a.setValue(e.getValue())})),a.inputEl.addEventListener("change",(()=>{const t=a.serializeValue(),s=e.getValue(),l=a.validate();l.valid||o(l.msg),null!=s&&typeof t!=typeof s?o("Mismatching type"):i(a.serializeValue())})),a.inputEl}after_layout(){super.after_layout(),null!=this.tabulator&&this.tabulator.redraw(!0),this.updateStyles()}setData(){let t=(0,u.transform_cds_to_records)(this.model.source,!0);this.model.configuration.dataTree&&(t=_(t,this.model.columns,this.model.indexes,this.model.aggregators)),this._data_updating=!0,null!=this.model.pagination?this.tabulator.rowManager.setData(t,!0,!1):(this.tabulator.setData(t),this._data_updating=!1),this.freezeRows(),this.updateSelection()}setGroupBy(){if(0==this.model.groupby.length)return void this.tabulator.setGroupBy(!1);this.tabulator.setGroupBy((t=>{const e=[];for(const s of this.model.groupby){const i=s+": "+t[s];e.push(i)}return e.join(", ")}))}setCSS(){let t;t="default"==this.model.theme?"tabulator":"tabulator_"+this.model.theme;const e=this.model.theme_url+t+".min.css";let s=null;const i=document.getElementsByTagName("link"),o=this.model.theme_url.indexOf("dist/"),l=this.model.theme_url.slice(0,o);for(const t of i)if(t.href.indexOf(l)>=0){s=t;break}if(null!=s)return!s.href.endsWith(e)&&(s.href=e,setTimeout((()=>this.render_and_resize()),100),!0);let a=document.getElementsByTagName("head")[0];const n=document.createElement("link");return n.type="text/css",n.rel="stylesheet",n.media="screen",n.href=e,n.onload=()=>{this.render_and_resize()},a.appendChild(n),!0}updateStyles(){for(const t of this._styled_cells)t.cssText="";if(this._styled_cells=[],null!=this.model.styles&&null!=this.tabulator&&0!=this.tabulator.getDataCount()){for(const t in this.model.styles){const e=this.model.styles[t],s=this.tabulator.getRow(t);if(!s)continue;const i=s._row.cells;for(const t in e){const s=e[t],o=i[t];if(null==o||!s.length)continue;const a=o.element;this._styled_cells.push(a),a.cssText="";for(const t of s){let e,s;if((0,l.isArray)(t))[e,s]=t;else{if(!t.includes(":"))continue;[e,s]=t.split(":")}a.style.setProperty(e,s.trimLeft())}}}this.model.styles={}}}addData(){const t=this.tabulator.rowManager.getRows(),e=t[t.length-1];let s=(0,u.transform_cds_to_records)(this.model.source,!0);this.tabulator.setData(s),this.model.follow&&this.tabulator.scrollToRow(e.data._index||0,"top",!1),this.freezeRows(),this.updateSelection()}updateOrAddData(){if(this._tabulator_cell_updating)return;let t=(0,u.transform_cds_to_records)(this.model.source,!0);this.tabulator.setData(t),this.freezeRows(),this.updateSelection()}hideColumns(){for(const t of this.tabulator.getColumns())this.model.hidden_columns.indexOf(t._column.field)>-1?t.hide():t.show()}setMaxPage(){this.tabulator.setMaxPage(this.model.max_page),this.tabulator.modules.page._setPageButtons()}setPage(){this.tabulator.setPage(Math.min(this.model.max_page,this.model.page))}setPageSize(){this.tabulator.setPageSize(this.model.page_size)}updateSelection(){if(null==this.tabulator||this._selection_updating)return;const t=this.model.source.selected.indices,e=this.tabulator.getSelectedData().map((t=>t._index));JSON.stringify(t)!=JSON.stringify(e)&&(this._selection_updating=!0,this.tabulator.deselectRow(),this.tabulator.selectRow(t),this.tabulator.scrollToRow(t[0],"bottom",!1),this._selection_updating=!1)}rowClicked(t,e){if(this._selection_updating||this._initializing||!0!==this.model.select_mode)return;let s=[];const i=this.model.source.selected,o=e._row.data._index;if(t.ctrlKey||t.metaKey)s=this.model.source.selected.indices;else if(t.shiftKey&&i.indices.length){const t=i.indices[i.indices.length-1];if(o>t)for(let e=t;e<o;e++)s.push(e);else for(let e=t;e>o;e--)s.push(e)}s.indexOf(o)<0?s.push(o):s.splice(s.indexOf(o),1);const l=this._filter_selected(s);this.tabulator.deselectRow(),this.tabulator.selectRow(l),this._selection_updating=!0,i.indices=l,this._selection_updating=!1}_filter_selected(t){const e=[];for(const s of t)(null==this.model.selectable_rows||this.model.selectable_rows.indexOf(s)>=0)&&e.push(s);return e}rowSelectionChanged(t,e){if(this._selection_updating||this._initializing||"boolean"==typeof this.model.select_mode)return;const s=t.map((t=>t._index)),i=this._filter_selected(s);this._selection_updating=s.length===i.length,this.model.source.selected.indices=i,this._selection_updating=!1}cellEdited(t){const e=t._cell.column.field,s=t._cell.row.data._index,i=t._cell.value;this._tabulator_cell_updating=!0,this.model.source.patch({[e]:[[s,i]]}),this._tabulator_cell_updating=!1}}s.DataTabulatorView=g,g.__name__="DataTabulatorView",s.TableLayout=(0,r.Enum)("fit_data","fit_data_fill","fit_data_stretch","fit_data_table","fit_columns");class p extends a.HTMLBox{constructor(t){super(t)}static init_DataTabulator(){this.prototype.default_view=g,this.define((({Any:t,Array:e,Boolean:i,Nullable:o,Number:l,Ref:a,String:n})=>({aggregators:[t,{}],configuration:[t,{}],columns:[e(a(c.TableColumn)),[]],download:[i,!0],editable:[i,!0],filename:[n,"table.csv"],follow:[i,!0],frozen_rows:[e(l),[]],groupby:[e(n),[]],hidden_columns:[e(n),[]],indexes:[e(n),[]],layout:[s.TableLayout,"fit_data"],max_page:[l,0],pagination:[o(n),null],page:[l,0],page_size:[l,0],select_mode:[t,!0],selectable_rows:[o(e(l)),null],source:[a(d.ColumnDataSource)],sorters:[e(t),[]],styles:[t,{}],theme:[n,"simple"],theme_url:[n,"https://unpkg.com/tabulator-tables@4.9.3/dist/css/"]})))}}s.DataTabulator=p,p.__name__="DataTabulator",p.__module__="panel.models.tabulator",p.init_DataTabulator()},
51
+ "99e23dce53": function _(t,e,s,i,o){i();const l=t("@bokehjs/core/util/types"),a=t("@bokehjs/models/layouts/html_box"),n=t("@bokehjs/core/dom"),r=t("@bokehjs/core/kinds"),d=t("@bokehjs/models/sources/column_data_source"),c=t("@bokehjs/models/widgets/tables"),u=t("f1971f81bf"),h=t("4c755983eb");function m(t,e,s){for(const i of s)if(i[t]==e)return i;return null}function _(t,e,s,i=0){const o={};if(0==t.length)return o;const a=s[i];for(const n of t){const t=_(n._children,e,s,i+1);for(const e in t)(0,l.isArray)(t[e])?n[e]=t[e].reduce(((t,e)=>t+e),0)/t[e].length:n[e]=t[e];for(const t of e.slice(1)){const e=n[t.field];if(t.field in o){const s=o[t.field];"min"===a?o[t.field]=Math.min(e,s):"max"===a?o[t.field]=Math.max(e,s):"sum"===a?o[t.field]=e+s:"mean"===a&&((0,l.isArray)(o[t.field])?o[t.field].push(e):o[t.field]=[s,e])}else o[t.field]=e}}return o}function f(t,e,s,i){const o=[],l=e[0].field;for(const i of t){const t=i[s[0]];let a=m(l,t,o);null==a&&(a={_children:[]},a[l]=t,o.push(a));let n=a;const r={};for(const t of s.slice(1)){n=m(l,i[t],n._children),null==n&&(n={_children:[]},n[l]=i[t],a._children.push(n)),r[t]=a;for(const t of e.slice(1))n[t.field]=i[t];a=n}for(const t of e.slice(1))n[t.field]=i[t.field]}const a=[];for(const t of s)a.push(t in i?i[t]:"sum");return _(o,e,a),o}class g extends h.PanelHTMLBoxView{constructor(){super(...arguments),this._tabulator_cell_updating=!1,this._data_updating=!0,this._selection_updating=!1,this._styled_cells=[]}connect_signals(){super.connect_signals();const{configuration:t,layout:e,columns:s,theme:i,groupby:o}=this.model.properties;this.on_change([t,e,s,o],(()=>this.render_and_resize())),this.on_change([i],(()=>this.setCSS())),this.connect(this.model.properties.download.change,(()=>{const t=this.model.filename.endsWith(".json")?"json":"csv";this.tabulator.download(t,this.model.filename)})),this.connect(this.model.properties.hidden_columns.change,(()=>{this.hideColumns()})),this.connect(this.model.properties.page_size.change,(()=>{this.setPageSize()})),this.connect(this.model.properties.page.change,(()=>{this.setPage()})),this.connect(this.model.properties.max_page.change,(()=>{this.setMaxPage()})),this.connect(this.model.properties.frozen_rows.change,(()=>{this.freezeRows()})),this.connect(this.model.properties.styles.change,(()=>{this._styles=this.model.styles,this.updateStyles()})),this.connect(this.model.source.properties.data.change,(()=>{this.setData()})),this.connect(this.model.source.streaming,(()=>this.addData())),this.connect(this.model.source.patching,(()=>this.updateOrAddData())),this.connect(this.model.source.selected.change,(()=>this.updateSelection())),this.connect(this.model.source.selected.properties.indices.change,(()=>this.updateSelection()))}render_and_resize(){this.render(),this.update_layout(),this.compute_layout(),this.root!==this&&this.invalidate_layout()}render(){super.render();if(this.setCSS())return;this._initializing=!0,this._styles=this.model.styles;const t=(0,n.div)({class:"pnx-tabulator"});(0,h.set_size)(t,this.model);let e=this.getConfiguration();this.tabulator=new Tabulator(t,e),"remote"===this.model.pagination&&(this.tabulator.options.pagination=this.model.pagination,this.tabulator.modules.page.mode="remote"),this.setGroupBy(),this.hideColumns(),this.model.pagination?(this.setMaxPage(),this.tabulator.setPage(this.model.page),this.setData()):this.freezeRows(),this.el.appendChild(t)}tableInit(t,e){const s=e.modules.ajax;s.sendRequest=()=>t.requestPage(s.params.page,s.params.sorters),e.modules.page._parseRemoteData=()=>{}}requestPage(t,e){return new Promise(((s,i)=>{try{null!=t&&null!=e&&(this._data_updating?this._data_updating=!1:this.model.sorters=e,this.model.page=t||1),s([])}catch(t){i(t)}}))}renderComplete(){this._initializing&&(this.updateStyles(),this.updateSelection()),this._initializing=!1}freezeRows(){for(const t of this.model.frozen_rows)this.tabulator.getRow(t).freeze()}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="remote"==this.model.pagination?"local":this.model.pagination||!1;let e=!("boolean"==typeof this.model.select_mode);const s=this;let i=Object.assign(Object.assign({},this.model.configuration),{index:"_index",nestedFieldSeparator:!1,selectable:e,tableBuilding:function(){s.tableInit(s,this)},renderComplete:()=>this.renderComplete(),rowSelectionChanged:(t,e)=>this.rowSelectionChanged(t,e),rowClick:(t,e)=>this.rowClicked(t,e),cellEdited:t=>this.cellEdited(t),columns:this.getColumns(),layout:this.getLayout(),pagination:t,paginationSize:this.model.page_size,paginationInitialPage:1,selectableCheck:t=>{const e=this.model.selectable_rows;return null==e||e.indexOf(t._row.data._index)>=0},tooltips:t=>t.getColumn().getField()+": "+t.getValue()});t&&(i.ajaxURL="http://panel.pyviz.org",i.ajaxSorting=!0);const o=this.model.source;let l;return l=null===o||0===o.columns().length?[]:(0,u.transform_cds_to_records)(o,!0),i.dataTree&&(l=f(l,this.model.columns,this.model.indexes,this.model.aggregators)),Object.assign(Object.assign({},i),{data:l})}getColumns(){var t;const e=null===(t=this.model.configuration)||void 0===t?void 0:t.columns;let s=[];if(null!=e)for(const t of e)if(null!=t.columns){const e=[];for(const s of t.columns)e.push(Object.assign({},s));s.push(Object.assign(Object.assign({},t),{columns:e}))}else s.push(Object.assign({},t));for(const t of this.model.columns){let i=null;if(null!=e)for(const e of s)if(null!=e.columns){for(const s of e.columns)if(t.field===s.field){i=s;break}if(null!=i)break}else if(t.field===e.field){i=e;break}if(null==i&&(i={field:t.field}),null==i.title&&(i.title=t.title),null==i.width&&null!=t.width&&0!=t.width&&(i.width=t.width),null==i.formatter&&null!=t.formatter){const e=t.formatter.type;i.formatter="BooleanFormatter"===e?"tickCross":e=>{const s=t.formatter.doFormat(e.getRow(),e,e.getValue(),null,null);if("HTMLTemplateFormatter"===t.formatter.type)return s;const i=(0,n.div)();return i.innerHTML=s,i.children[0].innerHTML}}const o=t.editor,l=o.type;null!=i.editor||("StringEditor"===l?o.completions.length>0?(i.editor="autocomplete",i.editorParams={values:o.completions}):i.editor="input":"TextEditor"===l?i.editor="textarea":"IntEditor"===l||"NumberEditor"===l?(i.editor="number",i.editorParams={step:o.step}):"CheckboxEditor"===l?i.editor="tickCross":"SelectEditor"===l?(i.editor="select",i.editorParams={values:o.options}):null!=o&&null!=o.default_view&&(i.editor=(e,s,i,o)=>this.renderEditor(t,e,s,i,o))),i.editable=()=>this.model.editable&&null!=o.default_view,null==e&&s.push(i)}return s}renderEditor(t,e,s,i,o){const l=t.editor,a=new l.default_view({column:t,model:l,parent:this,container:e._cell.element});return a.initialize(),a.connect_signals(),s((()=>{a.setValue(e.getValue())})),a.inputEl.addEventListener("change",(()=>{const t=a.serializeValue(),s=e.getValue(),l=a.validate();l.valid||o(l.msg),null!=s&&typeof t!=typeof s?o("Mismatching type"):i(a.serializeValue())})),a.inputEl}after_layout(){super.after_layout(),null!=this.tabulator&&this.tabulator.redraw(!0),this.updateStyles()}setData(){let t=(0,u.transform_cds_to_records)(this.model.source,!0);this.model.configuration.dataTree&&(t=f(t,this.model.columns,this.model.indexes,this.model.aggregators)),this._data_updating=!0,null!=this.model.pagination?this.tabulator.rowManager.setData(t,!0,!1):(this.tabulator.setData(t),this._data_updating=!1),this.freezeRows(),this.updateSelection()}setGroupBy(){if(0==this.model.groupby.length)return void this.tabulator.setGroupBy(!1);this.tabulator.setGroupBy((t=>{const e=[];for(const s of this.model.groupby){const i=s+": "+t[s];e.push(i)}return e.join(", ")}))}setCSS(){let t;t="default"==this.model.theme?"tabulator":"tabulator_"+this.model.theme;const e=this.model.theme_url+t+".min.css";let s=null;const i=document.getElementsByTagName("link"),o=this.model.theme_url.indexOf("dist/"),l=this.model.theme_url.slice(0,o);for(const t of i)if(t.href.indexOf(l)>=0){s=t;break}if(null!=s)return!s.href.endsWith(e)&&(s.href=e,setTimeout((()=>this.render_and_resize()),100),!0);let a=document.getElementsByTagName("head")[0];const n=document.createElement("link");return n.type="text/css",n.rel="stylesheet",n.media="screen",n.href=e,n.onload=()=>{this.render_and_resize()},a.appendChild(n),!0}updateStyles(){for(const t of this._styled_cells)t.cssText="";if(this._styled_cells=[],null==this._styles||null==this.tabulator||0==this.tabulator.getDataCount())return;for(const t in this._styles){const e=this._styles[t],s=this.tabulator.getRow(t);if(!s)continue;const i=s._row.cells;for(const t in e){const s=e[t],o=i[t];if(null==o||!s.length)continue;const a=o.element;this._styled_cells.push(a),a.cssText="";for(const t of s){let e,s;if((0,l.isArray)(t))[e,s]=t;else{if(!t.includes(":"))continue;[e,s]=t.split(":")}a.style.setProperty(e,s.trimLeft())}}}const t=this._styles;this.model.styles={},this._styles=t}addData(){const t=this.tabulator.rowManager.getRows(),e=t[t.length-1];let s=(0,u.transform_cds_to_records)(this.model.source,!0);this.tabulator.setData(s),this.model.follow&&this.tabulator.scrollToRow(e.data._index||0,"top",!1),this.freezeRows(),this.updateSelection()}updateOrAddData(){if(this._tabulator_cell_updating)return;let t=(0,u.transform_cds_to_records)(this.model.source,!0);this.tabulator.setData(t),this.freezeRows(),this.updateSelection()}hideColumns(){for(const t of this.tabulator.getColumns())this.model.hidden_columns.indexOf(t._column.field)>-1?t.hide():t.show()}setMaxPage(){this.tabulator.setMaxPage(this.model.max_page),this.tabulator.modules.page._setPageButtons()}setPage(){this.tabulator.setPage(Math.min(this.model.max_page,this.model.page))}setPageSize(){this.tabulator.setPageSize(this.model.page_size)}updateSelection(){if(null==this.tabulator||this._selection_updating)return;const t=this.model.source.selected.indices,e=this.tabulator.getSelectedData().map((t=>t._index));JSON.stringify(t)!=JSON.stringify(e)&&(this._selection_updating=!0,this.tabulator.deselectRow(),this.tabulator.selectRow(t),this.tabulator.scrollToRow(t[0],"bottom",!1),this._selection_updating=!1)}rowClicked(t,e){if(this._selection_updating||this._initializing||!0!==this.model.select_mode)return;let s=[];const i=this.model.source.selected,o=e._row.data._index;if(t.ctrlKey||t.metaKey)s=this.model.source.selected.indices;else if(t.shiftKey&&i.indices.length){const t=i.indices[i.indices.length-1];if(o>t)for(let e=t;e<o;e++)s.push(e);else for(let e=t;e>o;e--)s.push(e)}s.indexOf(o)<0?s.push(o):s.splice(s.indexOf(o),1);const l=this._filter_selected(s);this.tabulator.deselectRow(),this.tabulator.selectRow(l),this._selection_updating=!0,i.indices=l,this._selection_updating=!1}_filter_selected(t){const e=[];for(const s of t)(null==this.model.selectable_rows||this.model.selectable_rows.indexOf(s)>=0)&&e.push(s);return e}rowSelectionChanged(t,e){if(this._selection_updating||this._initializing||"boolean"==typeof this.model.select_mode)return;const s=t.map((t=>t._index)),i=this._filter_selected(s);this._selection_updating=s.length===i.length,this.model.source.selected.indices=i,this._selection_updating=!1}cellEdited(t){const e=t._cell.column.field,s=t._cell.row.data._index,i=t._cell.value;this._tabulator_cell_updating=!0,this.model.source.patch({[e]:[[s,i]]}),this._tabulator_cell_updating=!1}}s.DataTabulatorView=g,g.__name__="DataTabulatorView",s.TableLayout=(0,r.Enum)("fit_data","fit_data_fill","fit_data_stretch","fit_data_table","fit_columns");class p extends a.HTMLBox{constructor(t){super(t)}static init_DataTabulator(){this.prototype.default_view=g,this.define((({Any:t,Array:e,Boolean:i,Nullable:o,Number:l,Ref:a,String:n})=>({aggregators:[t,{}],configuration:[t,{}],columns:[e(a(c.TableColumn)),[]],download:[i,!0],editable:[i,!0],filename:[n,"table.csv"],follow:[i,!0],frozen_rows:[e(l),[]],groupby:[e(n),[]],hidden_columns:[e(n),[]],indexes:[e(n),[]],layout:[s.TableLayout,"fit_data"],max_page:[l,0],pagination:[o(n),null],page:[l,0],page_size:[l,0],select_mode:[t,!0],selectable_rows:[o(e(l)),null],source:[a(d.ColumnDataSource)],sorters:[e(t),[]],styles:[t,{}],theme:[n,"simple"],theme_url:[n,"https://unpkg.com/tabulator-tables@4.9.3/dist/css/"]})))}}s.DataTabulator=p,p.__name__="DataTabulator",p.__module__="panel.models.tabulator",p.init_DataTabulator()},
52
52
  "f1971f81bf": function _(n,t,e,o,r){o(),e.transform_cds_to_records=function(n,t=!1){const e=[],o=n.columns(),r=n.get_length();if(0===o.length||null===r)return[];for(let l=0;l<r;l++){const r={};for(const t of o){let e=n.get_array(t);const o=null==e[0].shape?null:e[0].shape;null!=o&&o.length>1&&"number"==typeof o[0]?r[t]=e.slice(l*o[1],l*o[1]+o[1]):r[t]=e[l]}t&&(r._index=l),e.push(r)}return e},e.dict_to_records=function(n,t=!0){for(let e=0;e<n.index.length;e++){const o={};for(const r of n)(t||"index"!==r)&&(o[r]=n[r][e])}return[]}},
53
53
  "6e11b2cfe2": function _(e,t,i,s,n){s();const o=e("tslib"),l=(0,o.__importDefault)(e("50d3473f3f")),d=e("@bokehjs/models/widgets/input_widget"),a=e("@bokehjs/core/dom"),r=e("@bokehjs/core/enums"),c=e("@bokehjs/core/util/types"),m=(0,o.__importStar)(e("@bokehjs/styles/widgets/inputs.css")),h=(0,o.__importDefault)(e("@bokehjs/styles/widgets/flatpickr.css"));function _(e){const t=[];for(const i of e)if((0,c.isString)(i))t.push(i);else{const[e,s]=i;t.push({from:e,to:s})}return t}class u extends d.InputWidgetView{connect_signals(){super.connect_signals();const{value:e,min_date:t,max_date:i,disabled_dates:s,enabled_dates:n,position:o,inline:l,enable_time:d,enable_seconds:a,military_time:r,date_format:c,mode:m}=this.model.properties;this.connect(e.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.setDate(this.model.value)})),this.connect(t.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("minDate",this.model.min_date)})),this.connect(i.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("maxDate",this.model.max_date)})),this.connect(s.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("disable",this.model.disabled_dates)})),this.connect(n.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("enable",this.model.enabled_dates)})),this.connect(o.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("position",this.model.position)})),this.connect(l.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("inline",this.model.inline)})),this.connect(d.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("enableTime",this.model.enable_time)})),this.connect(a.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("enableSeconds",this.model.enable_seconds)})),this.connect(r.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("time_24hr",this.model.military_time)})),this.connect(m.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("mode",this.model.mode)})),this.connect(c.change,(()=>{var e;return null===(e=this._picker)||void 0===e?void 0:e.set("dateFormat",this.model.date_format)}))}remove(){var e;null===(e=this._picker)||void 0===e||e.destroy(),super.remove()}styles(){return[...super.styles(),h.default]}render(){var e,t;null==this._picker&&(super.render(),this.input_el=(0,a.input)({type:"text",class:m.input,disabled:this.model.disabled}),this.group_el.appendChild(this.input_el),this._picker=(0,l.default)(this.input_el,{defaultDate:this.model.value,minDate:null!==(e=this.model.min_date)&&void 0!==e?e:void 0,maxDate:null!==(t=this.model.max_date)&&void 0!==t?t:void 0,inline:this.model.inline,position:this.model.position,disable:_(this.model.disabled_dates),enable:_(this.model.enabled_dates),enableTime:this.model.enable_time,enableSeconds:this.model.enable_seconds,time_24hr:this.model.military_time,dateFormat:this.model.date_format,mode:this.model.mode,onClose:(e,t,i)=>this._on_close(e,t,i)}))}_on_close(e,t,i){("range"!=this.model.mode||t.includes("to"))&&(this.model.value=t,this.change_input())}}i.DatetimePickerView=u,u.__name__="DatetimePickerView";class p extends d.InputWidget{constructor(e){super(e)}static init_DatetimePicker(){this.prototype.default_view=u,this.define((({Boolean:e,String:t,Array:i,Tuple:s,Or:n,Nullable:o})=>{const l=i(n(t,s(t,t)));return{value:[t],min_date:[o(t),null],max_date:[o(t),null],disabled_dates:[l,[]],enabled_dates:[l,[]],position:[r.CalendarPosition,"auto"],inline:[e,!1],enable_time:[e,!0],enable_seconds:[e,!0],military_time:[e,!0],date_format:[t,"Y-m-d H:i:S"],mode:[t,"single"]}}))}}i.DatetimePicker=p,p.__name__="DatetimePicker",p.__module__="panel.models.datetime_picker",p.init_DatetimePicker()},
54
54
  "50d3473f3f": function _(e,n,t,a,i){
@@ -144,7 +144,7 @@ var i,f=this&&this.__extends||(i=function(r,e){return(i=Object.setPrototypeOf||{
144
144
  "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},
145
145
  "990b5dd5c7": function _(t,n,r,e,o){e();r.get=(t,n,r)=>{const e=r=>String.prototype.split.call(n,r).filter(Boolean).reduce(((t,n)=>null!=t?t[n]:t),t),o=e(/[,[\]]+?/)||e(/[,[\].]+?/);return void 0===o||o===t?r:o},r.throttle=function(t,n){var r=0;return function(){var e=Number(new Date);e-r>=n&&(t(),r=e)}},r.deepCopy=function t(n){var r;if(null==n||"object"!=typeof n)return n;if(n instanceof Array){r=[];for(var e=0,o=n.length;e<o;e++)r[e]=t(n[e]);return r}if(n instanceof Object){const r={};for(const e in n){const o=e;n.hasOwnProperty(o)&&(r[o]=t(n[o]))}return r}throw new Error("Unable to copy obj! Its type isn't supported.")},r.isPlainObject=function(t){return"[object Object]"===Object.prototype.toString.call(t)}},
146
146
  "9f787650b9": function _(e,s,t,i,o){i();const r=(0,e("tslib").__importStar)(e("@bokehjs/core/properties")),h=e("@bokehjs/models/layouts/html_box"),l=e("4c755983eb");class n extends h.HTMLBoxView{connect_signals(){super.connect_signals();const e=()=>{this.render(),this.root.compute_layout()};this.connect(this.model.properties.height.change,e),this.connect(this.model.properties.width.change,e),this.connect(this.model.properties.height_policy.change,e),this.connect(this.model.properties.width_policy.change,e),this.connect(this.model.properties.sizing_mode.change,e),this.connect(this.model.properties.active.change,(()=>this.setCSS())),this.connect(this.model.properties.bar_color.change,(()=>this.setCSS())),this.connect(this.model.properties.css_classes.change,(()=>this.setCSS())),this.connect(this.model.properties.value.change,(()=>this.setValue())),this.connect(this.model.properties.max.change,(()=>this.setMax()))}render(){super.render();const e=Object.assign(Object.assign({},this.model.style),{display:"inline-block"});this.progressEl=document.createElement("progress"),this.setValue(),this.setMax(),(0,l.set_size)(this.progressEl,this.model),this.setCSS();for(const s in e)this.progressEl.style.setProperty(s,e[s]);this.el.appendChild(this.progressEl)}setCSS(){let e=this.model.css_classes.join(" ")+" "+this.model.bar_color;this.model.active&&(e+=" active"),this.progressEl.className=e}setValue(){null!=this.model.value&&(this.progressEl.value=this.model.value)}setMax(){null!=this.model.max&&(this.progressEl.max=this.model.max)}_update_layout(){let e=void 0!==this._prev_sizing_mode&&this._prev_sizing_mode!==this.model.sizing_mode;this._prev_sizing_mode=this.model.sizing_mode,this.layout=new l.CachedVariadicBox(this.el,this.model.sizing_mode,e),this.layout.set_sizing(this.box_sizing())}}t.ProgressView=n,n.__name__="ProgressView";class c extends h.HTMLBox{constructor(e){super(e)}static init_Progress(){this.prototype.default_view=n,this.define({active:[r.Boolean,!0],bar_color:[r.String,"primary"],style:[r.Any,{}],max:[r.Number,100],value:[r.Any,null]})}}t.Progress=c,c.__name__="Progress",c.__module__="panel.models.widgets",c.init_Progress()},
147
- "11283de978": function _(e,t,n,s,i){s();const o=e("6f11f2ef27"),l=e("4c02a9b43f"),r=e("b3f51db71c"),c=e("@bokehjs/core/build_views"),a=e("@bokehjs/core/util/types"),h=e("@bokehjs/models/layouts/html_box"),d=e("@bokehjs/core/dom"),_=e("@bokehjs/core/util/color"),u=e("f1971f81bf"),m=e("3329d4aa5b"),p=e("2839081043"),f=e("4c755983eb");function v(e,t,n){const s={};for(const e of n)s[`{${e}}`]="(.*)";const i=[];let o="^"+(e.replace(/[-\/\\^$*+?.()|[\]]/g,"\\$&")+"$");let l,r,c;for(const t in s)if(r=e.indexOf(t),r>-1){for(o=o.replace(t,s[t]),c={index:r,token:t},l=0;l<i.length&&i[l].index<r;l++);l<i.length?i.splice(l,0,c):i.push(c)}o=o.replace(/\{[^{}]+\}/g,".*");var a=new RegExp(o).exec(t);let h=null;if(a)for(h={},l=0;l<i.length;l++)h[i[l].token.slice(1,-1)]=a[l+1];return h}class g extends f.PanelHTMLBoxView{constructor(){super(...arguments),this._parent=null,this._changing=!1,this._event_listeners={},this._mutation_observers=[],this._script_fns={},this._state={}}initialize(){super.initialize(),this.html=(0,p.htmlDecode)(this.model.html)||this.model.html}_recursive_connect(e,t,n){for(const s in e.properties){let i;i=n.length?`${n}.${s}`:s;const o=e[s];null!=o.properties&&this._recursive_connect(o,!0,i),this.connect(e.properties[s].change,(()=>{if(t)for(const t in this.model.children)if(this.model.children[t]==s){let n=e[s];return(0,a.isArray)(n)||(n=[n]),this._render_node(t,n),void this.invalidate_layout()}this._changing||(this._update(i),this.invalidate_layout())}))}}connect_signals(){super.connect_signals(),this.connect(this.model.properties.children.change,(async()=>{this.html=(0,p.htmlDecode)(this.model.html)||this.model.html,await this.rebuild(),this.invalidate_layout()})),this._recursive_connect(this.model.data,!0,""),this.connect(this.model.properties.events.change,(()=>{this._remove_event_listeners(),this._setup_event_listeners()})),this.connect_scripts()}connect_scripts(){const e=this.model.data.id;for(let t in this.model.scripts){const n=this.model.scripts[t];let s,i=this.model.data;if(t.indexOf(".")>=0){const e=t.split(".");s=e[e.length-1];for(const t of e.slice(0,-1))i=i[t]}else s=t;for(const o of n){const n=(0,p.htmlDecode)(o)||o,l=this._render_script(n,e);this._script_fns[t]=l;const r=i.properties[s];null!=r&&this.connect(r.change,(()=>{this._changing||this.run_script(t)}))}}}run_script(e,t=!1){const n=this._script_fns[e];if(void 0===n)return void(t||console.log(`Script '${e}' could not be found.`));const s={get_records:(e,t)=>this.get_records(e,t)};for(const e in this._script_fns)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,u.dict_to_records)(this.model.data[e],t)}disconnect_signals(){super.disconnect_signals(),this._remove_event_listeners(),this._remove_mutation_observers(),this.run_script("remove",!0)}get child_models(){const e=[];for(const t in this.model.children)for(const n of this.model.children[t])"string"!=typeof n&&e.push(n);return e}async build_child_views(){await(0,c.build_views)(this._child_views,this.child_models,{parent:null})}compute_layout(){this.root!=this?super.compute_layout():(this.update_position(),this.after_layout(),this.notify_finished())}after_layout(){for(const e of this.child_views)e.after_layout();this.run_script("after_layout",!0),this._has_finished=!0}update_layout(){for(const e of this.child_views)this._align_view(e),e.compute_viewport(),e.update_layout(),e.compute_layout();this.root!=this&&this._update_layout()}_align_view(e){const{align:t}=e.model;let n,s;(0,a.isArray)(t)?[n,s]=t:n=s=t,"center"===n?(e.el.style.marginLeft="auto",e.el.style.marginRight="auto"):"end"===n&&(e.el.style.marginLeft="auto"),"center"===s?(e.el.style.marginTop="auto",e.el.style.marginBottom="auto"):"end"===s&&(e.el.style.marginTop="auto")}render(){(0,d.empty)(this.el);const{background:e}=this.model;this.el.style.backgroundColor=null!=e?(0,_.color2css)(e):"",(0,d.classes)(this.el).clear().add(...this.css_classes()),this._update(),this._render_children(),this._setup_mutation_observers(),this._setup_event_listeners(),this.run_script("render",!0)}_send_event(e,t,n){let s=(0,m.serializeEvent)(n);s.type=t,this.model.trigger_event(new p.DOMEvent(e,s))}_render_child(e,t){const n=this._child_views.get(e);null==n?t.innerHTML=(0,p.htmlDecode)(e)||e:(n._parent=this,n.renderTo(t))}resize_layout(){null!=this._parent&&this._parent.resize_layout(),this.root!=this&&super.resize_layout()}invalidate_layout(){null!=this._parent&&this._parent.invalidate_layout(),this.root!=this&&super.invalidate_layout()}update_position(){if(this.root!=this)return void super.update_position();this.el.style.display=this.model.visible?"block":"none",(0,f.set_size)(this.el,this.model);let{margin:e}=this.model,t=null;if(null==e)this.el.style.margin="";else{if((0,a.isNumber)(e))t={top:e,right:e,bottom:e,left:e};else if(2==e.length){const[n,s]=e;t={top:n,right:s,bottom:n,left:s}}else{const[n,s,i,o]=e;t={top:n,right:s,bottom:i,left:o}}const{top:n,right:s,bottom:i,left:o}=t;this.el.style.padding=`${n}px ${s}px ${i}px ${o}px`}for(const e of this.child_views)e.update_position()}_render_node(e,t){const n=this.model.data.id;if(this.model.looped.indexOf(e)>-1)for(let s=0;s<t.length;s++){let i=document.getElementById(`${e}-${s}-${n}`);null!=i?this._render_child(t[s],i):console.warn(`DOM node '${e}-${s}-${n}' could not be found. Cannot render children.`)}else{let s=document.getElementById(`${e}-${n}`);if(null==s)return void console.warn(`DOM node '${e}-${n}' could not be found. Cannot render children.`);for(const e of t)this._render_child(e,s)}}_render_children(){for(const e in this.model.children){let t=this.model.children[e];"string"==typeof t&&(t=this.model.data[t],(0,a.isArray)(t)||(t=[t])),this._render_node(e,t)}}_render_html(e,t={}){let n=e,s="";const i=[];for(const e in this.model.callbacks)for(const t of this.model.callbacks[e]){const[o,l]=t;let r;if(n=n.replace("${"+l,"$--{"+l),l.startsWith("script(")){const e=l.replace("('","_").replace("')","").replace('("',"_").replace('")',"").replace("-","_"),t=e.replace("script_","");n=n.replace(l,e),r=`\n const ${e} = (event) => {\n view._state.event = event\n view.run_script("${t}")\n delete view._state.event\n }\n `}else r=`\n const ${l} = (event) => {\n view._send_event("${e}", "${o}", event)\n }\n `;i.indexOf(l)>-1||(i.push(l),s+=r)}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,r.html,l.useCallback)}_render_script(e,t){const n=[];for(const s of this.model.nodes){if(s in this.model.children&&"string"!=typeof this.model.children[s])continue;const i=s.replace("-","_");if(-1===e.indexOf(i))continue;const o=`\n const ${i} = document.getElementById('${s}-${t}')\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 if (state.event !== undefined) {\n const 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 e=this.model.data.id;for(const t in this.model.attrs){const n=document.getElementById(`${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 e=this.model.data.id;for(const t in this._event_listeners){const n=document.getElementById(`${t}-${e}`);if(null!=n)for(const e in this._event_listeners[t]){const s=this._event_listeners[t][e];n.removeEventListener(e,s)}}this._event_listeners={}}_setup_event_listeners(){const e=this.model.data.id;for(const t in this.model.events){const n=document.getElementById(`${t}-${e}`);if(null==n){console.warn(`DOM node '${t}-${e}' could not be found. Cannot subscribe to DOM events.`);continue}const s=this.model.events[t];for(const e in s){const i=i=>{this._send_event(t,e,i),t in this.model.attrs&&s[e]&&this._update_model(n,t)};n.addEventListener(e,i),t in this._event_listeners||(this._event_listeners[t]={}),this._event_listeners[t][e]=i}}}_update(e=null){if(null==e||this.html.indexOf(`\${${e}}`)>-1){const e=this._render_html(this.html);try{this._changing=!0,(0,o.render)(e,this.el)}finally{this._changing=!1}}}_update_model(e,t){if(this._changing)return;const n={};for(const s of this.model.attrs[t]){const[i,o,l]=s;let r="children"===i?e.innerHTML:e[i];if(1===o.length&&`{${o[0]}}`===l)n[o[0]]=r;else if("string"==typeof r)if(r=v(l,r,o),null==r)console.warn(`Could not resolve parameters in ${t} element ${i} attribute value ${r}.`);else for(const e in r)void 0===r[e]?console.warn(`Could not resolve ${e} in ${t} element ${i} attribute value ${r}.`):n[e]=r[e]}try{this._changing=!0,this.model.data.setv(function(e){const t={};for(const n in e){let s=e[n];"string"!=typeof s?s=s:""===s||"NaN"!==s&&isNaN(Number(s))?"false"!==s&&"true"!==s||(s="true"===s):s=Number(s),t[n]=s}return t}(n))}catch(e){console.log("Could not serialize",n)}finally{this._changing=!1}}}n.ReactiveHTMLView=g,g.__name__="ReactiveHTMLView";class $ extends h.HTMLBox{constructor(e){super(e)}static init_ReactiveHTML(){this.prototype.default_view=g,this.define((({Array:e,Any:t,String:n})=>({attrs:[t,{}],callbacks:[t,{}],children:[t,{}],data:[t],events:[t,{}],html:[n,""],looped:[e(n),[]],nodes:[e(n),[]],scripts:[t,{}]})))}}n.ReactiveHTML=$,$.__name__="ReactiveHTML",$.__module__="panel.models.reactive_html",$.init_ReactiveHTML()},
147
+ "eb3a49319b": function _(e,t,n,s,i){s();const o=e("6f11f2ef27"),l=e("4c02a9b43f"),r=e("b3f51db71c"),c=e("@bokehjs/core/build_views"),a=e("@bokehjs/core/util/types"),h=e("@bokehjs/models/layouts/html_box"),d=e("@bokehjs/core/dom"),_=e("@bokehjs/core/util/color"),u=e("f1971f81bf"),m=e("3329d4aa5b"),p=e("2839081043"),f=e("4c755983eb");function v(e,t,n){const s={};for(const e of n)s[`{${e}}`]="(.*)";const i=[];let o="^"+(e.replace(/[-\/\\^$*+?.()|[\]]/g,"\\$&")+"$");let l,r,c;for(const t in s)if(r=e.indexOf(t),r>-1){for(o=o.replace(t,s[t]),c={index:r,token:t},l=0;l<i.length&&i[l].index<r;l++);l<i.length?i.splice(l,0,c):i.push(c)}o=o.replace(/\{[^{}]+\}/g,".*");var a=new RegExp(o).exec(t);let h=null;if(a)for(h={},l=0;l<i.length;l++)h[i[l].token.slice(1,-1)]=a[l+1];return h}class g extends f.PanelHTMLBoxView{constructor(){super(...arguments),this._parent=null,this._changing=!1,this._event_listeners={},this._mutation_observers=[],this._script_fns={},this._state={}}initialize(){super.initialize(),this.html=(0,p.htmlDecode)(this.model.html)||this.model.html}_recursive_connect(e,t,n){for(const s in e.properties){let i;i=n.length?`${n}.${s}`:s;const o=e[s];null!=o&&(null!=o.properties&&this._recursive_connect(o,!0,i),this.connect(e.properties[s].change,(()=>{if(t)for(const t in this.model.children)if(this.model.children[t]==s){let n=e[s];return(0,a.isArray)(n)||(n=[n]),this._render_node(t,n),void this.invalidate_layout()}this._changing||(this._update(i),this.invalidate_layout())})))}}connect_signals(){super.connect_signals(),this.connect(this.model.properties.children.change,(async()=>{this.html=(0,p.htmlDecode)(this.model.html)||this.model.html,await this.rebuild(),this.invalidate_layout()})),this._recursive_connect(this.model.data,!0,""),this.connect(this.model.properties.events.change,(()=>{this._remove_event_listeners(),this._setup_event_listeners()})),this.connect_scripts()}connect_scripts(){const e=this.model.data.id;for(let t in this.model.scripts){const n=this.model.scripts[t];let s,i=this.model.data;if(t.indexOf(".")>=0){const e=t.split(".");s=e[e.length-1];for(const t of e.slice(0,-1))i=i[t]}else s=t;for(const o of n){const n=(0,p.htmlDecode)(o)||o,l=this._render_script(n,e);this._script_fns[t]=l;const r=i.properties[s];null!=r&&this.connect(r.change,(()=>{this._changing||this.run_script(t)}))}}}run_script(e,t=!1){const n=this._script_fns[e];if(void 0===n)return void(t||console.log(`Script '${e}' could not be found.`));const s={get_records:(e,t)=>this.get_records(e,t)};for(const e in this._script_fns)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,u.dict_to_records)(this.model.data[e],t)}disconnect_signals(){super.disconnect_signals(),this._remove_event_listeners(),this._remove_mutation_observers(),this.run_script("remove",!0)}get child_models(){const e=[];for(const t in this.model.children)for(const n of this.model.children[t])"string"!=typeof n&&e.push(n);return e}async build_child_views(){await(0,c.build_views)(this._child_views,this.child_models,{parent:null})}compute_layout(){this.root!=this?super.compute_layout():(this.update_position(),this.after_layout(),this.notify_finished())}after_layout(){for(const e of this.child_views)e.after_layout();this.run_script("after_layout",!0),this._has_finished=!0}update_layout(){for(const e of this.child_views)this._align_view(e),e.compute_viewport(),e.update_layout(),e.compute_layout();this.root!=this&&this._update_layout()}_align_view(e){const{align:t}=e.model;let n,s;(0,a.isArray)(t)?[n,s]=t:n=s=t,"center"===n?(e.el.style.marginLeft="auto",e.el.style.marginRight="auto"):"end"===n&&(e.el.style.marginLeft="auto"),"center"===s?(e.el.style.marginTop="auto",e.el.style.marginBottom="auto"):"end"===s&&(e.el.style.marginTop="auto")}render(){(0,d.empty)(this.el);const{background:e}=this.model;this.el.style.backgroundColor=null!=e?(0,_.color2css)(e):"",(0,d.classes)(this.el).clear().add(...this.css_classes()),this._update(),this._render_children(),this._setup_mutation_observers(),this._setup_event_listeners(),this.run_script("render",!0)}_send_event(e,t,n){let s=(0,m.serializeEvent)(n);s.type=t,this.model.trigger_event(new p.DOMEvent(e,s))}_render_child(e,t){const n=this._child_views.get(e);null==n?t.innerHTML=(0,p.htmlDecode)(e)||e:(n._parent=this,n.renderTo(t))}resize_layout(){null!=this._parent&&this._parent.resize_layout(),this.root!=this&&super.resize_layout()}invalidate_layout(){null!=this._parent&&this._parent.invalidate_layout(),this.root!=this&&super.invalidate_layout()}update_position(){if(this.root!=this)return void super.update_position();this.el.style.display=this.model.visible?"block":"none",(0,f.set_size)(this.el,this.model);let{margin:e}=this.model,t=null;if(null==e)this.el.style.margin="";else{if((0,a.isNumber)(e))t={top:e,right:e,bottom:e,left:e};else if(2==e.length){const[n,s]=e;t={top:n,right:s,bottom:n,left:s}}else{const[n,s,i,o]=e;t={top:n,right:s,bottom:i,left:o}}const{top:n,right:s,bottom:i,left:o}=t;this.el.style.padding=`${n}px ${s}px ${i}px ${o}px`}for(const e of this.child_views)e.update_position()}_render_node(e,t){const n=this.model.data.id;if(this.model.looped.indexOf(e)>-1)for(let s=0;s<t.length;s++){let i=document.getElementById(`${e}-${s}-${n}`);null!=i?this._render_child(t[s],i):console.warn(`DOM node '${e}-${s}-${n}' could not be found. Cannot render children.`)}else{let s=document.getElementById(`${e}-${n}`);if(null==s)return void console.warn(`DOM node '${e}-${n}' could not be found. Cannot render children.`);for(const e of t)this._render_child(e,s)}}_render_children(){for(const e in this.model.children){let t=this.model.children[e];"string"==typeof t&&(t=this.model.data[t],(0,a.isArray)(t)||(t=[t])),this._render_node(e,t)}}_render_html(e,t={}){let n=e,s="";const i=[];for(const e in this.model.callbacks)for(const t of this.model.callbacks[e]){const[o,l]=t;let r;if(n=n.replace("${"+l,"$--{"+l),l.startsWith("script(")){const e=l.replace("('","_").replace("')","").replace('("',"_").replace('")',"").replace("-","_"),t=e.replace("script_","");n=n.replace(l,e),r=`\n const ${e} = (event) => {\n view._state.event = event\n view.run_script("${t}")\n delete view._state.event\n }\n `}else r=`\n const ${l} = (event) => {\n view._send_event("${e}", "${o}", event)\n }\n `;i.indexOf(l)>-1||(i.push(l),s+=r)}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,r.html,l.useCallback)}_render_script(e,t){const n=[];for(const s of this.model.nodes){if(s in this.model.children&&"string"!=typeof this.model.children[s])continue;const i=s.replace("-","_");if(-1===e.indexOf(i))continue;const o=`\n const ${i} = document.getElementById('${s}-${t}')\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 if (state.event !== undefined) {\n const 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 e=this.model.data.id;for(const t in this.model.attrs){const n=document.getElementById(`${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 e=this.model.data.id;for(const t in this._event_listeners){const n=document.getElementById(`${t}-${e}`);if(null!=n)for(const e in this._event_listeners[t]){const s=this._event_listeners[t][e];n.removeEventListener(e,s)}}this._event_listeners={}}_setup_event_listeners(){const e=this.model.data.id;for(const t in this.model.events){const n=document.getElementById(`${t}-${e}`);if(null==n){console.warn(`DOM node '${t}-${e}' could not be found. Cannot subscribe to DOM events.`);continue}const s=this.model.events[t];for(const e in s){const i=i=>{this._send_event(t,e,i),t in this.model.attrs&&s[e]&&this._update_model(n,t)};n.addEventListener(e,i),t in this._event_listeners||(this._event_listeners[t]={}),this._event_listeners[t][e]=i}}}_update(e=null){if(null==e||this.html.indexOf(`\${${e}}`)>-1){const e=this._render_html(this.html);try{this._changing=!0,(0,o.render)(e,this.el)}finally{this._changing=!1}}}_update_model(e,t){if(this._changing)return;const n={};for(const s of this.model.attrs[t]){const[i,o,l]=s;let r="children"===i?e.innerHTML:e[i];if(1===o.length&&`{${o[0]}}`===l)n[o[0]]=r;else if("string"==typeof r)if(r=v(l,r,o),null==r)console.warn(`Could not resolve parameters in ${t} element ${i} attribute value ${r}.`);else for(const e in r)void 0===r[e]?console.warn(`Could not resolve ${e} in ${t} element ${i} attribute value ${r}.`):n[e]=r[e]}try{this._changing=!0,this.model.data.setv(function(e){const t={};for(const n in e){let s=e[n];"string"!=typeof s?s=s:""===s||"NaN"!==s&&isNaN(Number(s))?"false"!==s&&"true"!==s||(s="true"===s):s=Number(s),t[n]=s}return t}(n))}catch(e){console.log("Could not serialize",n)}finally{this._changing=!1}}}n.ReactiveHTMLView=g,g.__name__="ReactiveHTMLView";class $ extends h.HTMLBox{constructor(e){super(e)}static init_ReactiveHTML(){this.prototype.default_view=g,this.define((({Array:e,Any:t,String:n})=>({attrs:[t,{}],callbacks:[t,{}],children:[t,{}],data:[t],events:[t,{}],html:[n,""],looped:[e(n),[]],nodes:[e(n),[]],scripts:[t,{}]})))}}n.ReactiveHTML=$,$.__name__="ReactiveHTML",$.__module__="panel.models.reactive_html",$.init_ReactiveHTML()},
148
148
  "5ed2116e26": function _(e,t,s,i,n){i();const l=e("tslib"),o=e("@bokehjs/core/dom"),c=e("@bokehjs/core/util/types"),r=e("@bokehjs/models/widgets/input_widget"),h=(0,l.__importStar)(e("@bokehjs/styles/widgets/inputs.css"));class d extends r.InputWidgetView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.value.change,(()=>this.render_selection())),this.connect(this.model.properties.options.change,(()=>this.render())),this.connect(this.model.properties.name.change,(()=>this.render())),this.connect(this.model.properties.title.change,(()=>this.render())),this.connect(this.model.properties.size.change,(()=>this.render())),this.connect(this.model.properties.disabled.change,(()=>this.render()))}render(){super.render();const e=this.model.options.map((e=>{let t,s;return(0,c.isString)(e)?t=s=e:[t,s]=e,(0,o.option)({value:t},s)}));this.select_el=(0,o.select)({multiple:!1,class:h.input,name:this.model.name,disabled:this.model.disabled},e),this.select_el.style.backgroundImage="none",this.select_el.addEventListener("change",(()=>this.change_input())),this.group_el.appendChild(this.select_el),this.render_selection()}render_selection(){const e=this.model.value;for(const t of this.el.querySelectorAll("option"))t.value===e&&(t.selected=!0);this.select_el.size=this.model.size}change_input(){const e=null!=this.el.querySelector("select:focus");let t=null;for(const e of this.el.querySelectorAll("option"))if(e.selected){t=e.value;break}this.model.value=t,super.change_input(),e&&this.select_el.focus()}}s.SingleSelectView=d,d.__name__="SingleSelectView";class a extends r.InputWidget{constructor(e){super(e)}static init_SingleSelect(){this.prototype.default_view=d,this.define((({Any:e,Array:t,Int:s,String:i})=>({value:[i,""],options:[t(e),[]],size:[s,4]})))}}s.SingleSelect=a,a.__name__="SingleSelect",a.__module__="panel.models.widgets",a.init_SingleSelect()},
149
149
  "aaa48703af": function _(t,e,i,o,n){o();const s=(0,t("tslib").__importStar)(t("@bokehjs/core/properties")),r=t("@bokehjs/models/layouts/html_box"),h="Click to START the speech recognition.",{webkitSpeechRecognition:a}=window,{webkitSpeechGrammarList:l}=window;class c extends r.HTMLBoxView{initialize(){var t,e;super.initialize(),this.recognition=new a,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(let o of t){let t=[],n={is_final:o.isFinal,alternatives:t};for(let e=0;e<o.length;e++){let n={confidence:(i=o[e].confidence,Math.round(100*(i+Number.EPSILON))/100),transcript:o[e].transcript};t.push(n)}n.alternatives=t,e.push(n)}var i;return e}(t.results)},this.recognition.onerror=t=>{console.log("SpeechToText Error"),console.log(t)},this.recognition.onnomatch=t=>{console.log("SpeechToText No Match"),console.log(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",h),this.model.started=!1},this.buttonEl=(t=`<button class="bk bk-btn bk-btn-${this.model.button_type}" type="button" title="${h}"></button>`,e=document.createElement("template"),t=t.trim(),e.innerHTML=t,e.content.firstChild),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(),this.connect(this.model.properties.start.change,(()=>{this.model.start=!1,this.recognition.start()})),this.connect(this.model.properties.stop.change,(()=>{this.model.stop=!1,this.recognition.stop()})),this.connect(this.model.properties.abort.change,(()=>{this.model.abort=!1,this.recognition.abort()})),this.connect(this.model.properties.grammars.change,(()=>this.setGrammars())),this.connect(this.model.properties.lang.change,(()=>this.recognition.lang=this.model.lang)),this.connect(this.model.properties.continuous.change,(()=>this.recognition.continuous=this.model.continuous)),this.connect(this.model.properties.interim_results.change,(()=>this.recognition.interimResults=this.model.interim_results)),this.connect(this.model.properties.max_alternatives.change,(()=>this.recognition.maxAlternatives=this.model.max_alternatives)),this.connect(this.model.properties.service_uri.change,(()=>this.recognition.serviceURI=this.model.service_uri)),this.connect(this.model.properties.button_type.change,(()=>this.buttonEl.className=`bk bk-btn bk-btn-${this.model.button_type}`)),this.connect(this.model.properties.button_hide.change,(()=>this.render()));const{button_not_started:t,button_started:e}=this.model.properties;this.on_change([t,e],(()=>this.setIcon()))}setGrammars(){this.recognition.grammars=function(t){if(t){var e=new l;for(let 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.el.appendChild(this.buttonEl)}}i.SpeechToTextView=c,c.__name__="SpeechToTextView";class d extends r.HTMLBox{constructor(t){super(t)}static init_SpeechToText(){this.prototype.default_view=c,this.define({start:[s.Boolean,!1],stop:[s.Boolean,!1],abort:[s.Boolean,!1],grammars:[s.Array,[]],lang:[s.String,""],continuous:[s.Boolean,!1],interim_results:[s.Boolean,!1],max_alternatives:[s.Number,1],service_uri:[s.String],started:[s.Boolean,!1],audio_started:[s.Boolean,!1],sound_started:[s.Boolean,!1],speech_started:[s.Boolean,!1],button_type:[s.String,"light"],button_hide:[s.Boolean,!1],button_not_started:[s.String,""],button_started:[s.String,""],results:[s.Array,[]]})}}i.SpeechToText=d,d.__name__="SpeechToText",d.__module__="panel.models.speech_to_text",d.init_SpeechToText()},
150
150
  "bfa46a5f19": function _(e,t,s,a,i){a();const o=e("@bokehjs/core/view"),c=e("@bokehjs/core/util/array"),n=e("@bokehjs/model"),h=e("@bokehjs/protocol/receiver");class _ extends o.View{renderTo(){}}s.StateView=_,_.__name__="StateView";class r extends n.Model{constructor(e){super(e),this._receiver=new h.Receiver,this._cache={}}apply_state(e){this._receiver.consume(e.header),this._receiver.consume(e.metadata),this._receiver.consume(e.content),this._receiver.message&&this.document&&this.document.apply_json_patch(this._receiver.message.content)}_receive_json(e,t){const s=JSON.parse(e);this._cache[t]=s;let a=this.state;for(const e of this.values)a=a[e];a===t?this.apply_state(s):this._cache[a]&&this.apply_state(this._cache[a])}set_state(e,t){let s=(0,c.copy)(this.values);s[this.widgets[e.id]]=t;let a=this.state;for(const e of s)a=a[e];var i,o,n;this.values=s,this.json?this._cache[a]?this.apply_state(this._cache[a]):(i=a,o=e=>this._receive_json(e,a),(n=new XMLHttpRequest).overrideMimeType("application/json"),n.open("GET",i,!0),n.onreadystatechange=function(){4==n.readyState&&200==n.status&&o(n.responseText)},n.send(null)):this.apply_state(a)}static init_State(){this.prototype.default_view=_,this.define((({Any:e,Boolean:t})=>({json:[t,!1],state:[e,{}],widgets:[e,{}],values:[e,[]]})))}}s.State=r,r.__name__="State",r.__module__="panel.models.state",r.init_State()},
@@ -174,4 +174,4 @@ var i,f=this&&this.__extends||(i=function(r,e){return(i=Object.setPrototypeOf||{
174
174
  "89262e43a1": function _(e,t,i,s,n){s();const r=e("46fdad9667"),o=e("4eb45e35aa");class a extends r.AbstractVTKView{connect_signals(){super.connect_signals(),this.connect(this.model.properties.data.change,(()=>{this._vtk_image_data=(0,o.data2VTKImageData)(this.model.data),this.invalidate_render()})),this.connect(this.model.properties.colormap.change,(()=>{this.colormap_selector.value=this.model.colormap;const e=new Event("change");this.colormap_selector.dispatchEvent(e)})),this.connect(this.model.properties.shadow.change,(()=>{this.shadow_selector.value=this.model.shadow?"1":"0";const e=new Event("change");this.shadow_selector.dispatchEvent(e)})),this.connect(this.model.properties.sampling.change,(()=>{this.sampling_slider.value=this.model.sampling.toFixed(2);const e=new Event("input");this.sampling_slider.dispatchEvent(e)})),this.connect(this.model.properties.edge_gradient.change,(()=>{this.edge_gradient_slider.value=this.model.edge_gradient.toFixed(2);const e=new Event("input");this.edge_gradient_slider.dispatchEvent(e)})),this.connect(this.model.properties.rescale.change,(()=>{this._controllerWidget.setRescaleColorMap(this.model.rescale),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.ambient.change,(()=>{this.volume.getProperty().setAmbient(this.model.ambient),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.diffuse.change,(()=>{this.volume.getProperty().setDiffuse(this.model.diffuse),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.specular.change,(()=>{this.volume.getProperty().setSpecular(this.model.specular),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.specular_power.change,(()=>{this.volume.getProperty().setSpecularPower(this.model.specular_power),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.display_volume.change,(()=>{this._set_volume_visibility(this.model.display_volume),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.display_slices.change,(()=>{this._set_slices_visibility(this.model.display_slices),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.slice_i.change,(()=>{void 0!==this.image_actor_i&&(this.image_actor_i.getMapper().setISlice(this.model.slice_i),this._vtk_renwin.getRenderWindow().render())})),this.connect(this.model.properties.slice_j.change,(()=>{void 0!==this.image_actor_j&&(this.image_actor_j.getMapper().setJSlice(this.model.slice_j),this._vtk_renwin.getRenderWindow().render())})),this.connect(this.model.properties.slice_k.change,(()=>{void 0!==this.image_actor_k&&(this.image_actor_k.getMapper().setKSlice(this.model.slice_k),this._vtk_renwin.getRenderWindow().render())})),this.connect(this.model.properties.render_background.change,(()=>{this._vtk_renwin.getRenderer().setBackground(...(0,o.hexToRGB)(this.model.render_background)),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.interpolation.change,(()=>{this._set_interpolation(this.model.interpolation),this._vtk_renwin.getRenderWindow().render()})),this.connect(this.model.properties.controller_expanded.change,(()=>{null!=this._controllerWidget&&this._controllerWidget.setExpanded(this.model.controller_expanded)}))}render(){this._vtk_renwin=null,this._orientationWidget=null,this._axes=null,super.render(),this._create_orientation_widget(),this._set_axes(),this.model.camera?this._set_camera_state():this._vtk_renwin.getRenderer().resetCamera(),this._get_camera_state()}invalidate_render(){this._vtk_renwin=null,super.invalidate_render()}init_vtk_renwin(){this._vtk_renwin=o.vtkns.FullScreenRenderWindow.newInstance({rootContainer:this.el,container:this._vtk_container})}plot(){this._controllerWidget=o.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,o.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,o.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=o.vtkns.ImageSlice.newInstance(),i=o.vtkns.ImageSlice.newInstance(),s=o.vtkns.ImageSlice.newInstance(),n=o.vtkns.ImageMapper.newInstance(),r=o.vtkns.ImageMapper.newInstance(),a=o.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),a.setInputData(e),a.setKSlice(this.model.slice_k),s.setMapper(a);const l=o.vtkns.PiecewiseFunction.newInstance();l.removeAllPoints(),l.addPoint(0,1);const d=this.volume.getProperty().getRGBTransferFunction(0),c=t.getProperty();i.setProperty(c),s.setProperty(c),c.setRGBTransferFunction(d),c.setScalarOpacity(l);const _=this._vtk_renwin.getRenderer();_.addActor(t),_.addActor(i),_.addActor(s)}_plot_volume(){const e=this.vtk_image_data,t=o.vtkns.Volume.newInstance(),i=o.vtkns.VolumeMapper.newInstance();t.setMapper(i),i.setInputData(e);const s=(e.getPointData().getScalars()||e.getPointData().getArrays()[0]).getRange(),n=o.vtkns.ColorTransferFunction.newInstance();n.onModified((()=>this.model.mapper=(0,o.vtkLutToMapper)(n)));const r=o.vtkns.PiecewiseFunction.newInstance(),a=.7*Math.sqrt(e.getSpacing().map((e=>e*e)).reduce(((e,t)=>e+t),0));i.setSampleDistance(a),t.getProperty().setRGBTransferFunction(0,n),t.getProperty().setScalarOpacity(0,r),t.getProperty().setInterpolationTypeToFastLinear(),t.getProperty().setScalarOpacityUnitDistance(0,o.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._vtk_renwin.getRenderer().getActors().map((t=>t.setVisibility(e)))}_set_volume_visibility(e){this.volume.setVisibility(e)}}i.VTKVolumePlotView=a,a.__name__="VTKVolumePlotView";class l extends r.AbstractVTKPlot{constructor(e){super(e)}static init_VTKVolumePlot(){this.prototype.default_view=a,this.define((({Any:e,Array:t,Boolean:i,Int:s,Number:n,String:r,Struct:a})=>({ambient:[n,.2],colormap:[r],data:[e],diffuse:[n,.7],display_slices:[i,!1],display_volume:[i,!0],edge_gradient:[n,.2],interpolation:[o.Interpolation,"fast_linear"],mapper:[a({palette:t(r),low:n,high:n})],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]})))}}i.VTKVolumePlot=l,l.__name__="VTKVolumePlot",l.init_VTKVolumePlot()},
175
175
  "4baab0b7ce": function _(e,t,n,s,r){s();const i=(0,e("tslib").__importStar)(e("@bokehjs/core/properties")),o=e("@bokehjs/core/util/object"),_=e("46fdad9667"),a=e("4eb45e35aa"),h=e("11e0707a8f"),c="panel";class d extends _.AbstractVTKView{initialize(){super.initialize(),this._promises=[],this._renderable=!1,this._arrays={},this._decoded_arrays={},this._pending_arrays={},this.getArray=e=>this._arrays[e]?Promise.resolve(this._arrays[e]):new Promise(((t,n)=>{this._pending_arrays[e]={resolve:t,reject:n}})),this.registerArray=(e,t)=>(this._arrays[e]=t,this._pending_arrays[e]&&this._pending_arrays[e].resolve(t),!0),this._synchronizer_context=a.vtkns.SynchronizableRenderWindow.getSynchronizerContext(c)}connect_signals(){super.connect_signals(),this.connect(this.model.properties.arrays.change,(()=>this._decode_arrays())),this.connect(this.model.properties.scene.change,(()=>{if(this.model.rebuild)this._vtk_renwin=null,this.invalidate_render();else{const e=(0,o.clone)(this.model.scene);Promise.all(this._promises).then((()=>{this._sync_plot(e,(()=>{this._on_scene_ready()}))}))}})),this.connect(this.model.properties.one_time_reset.change,(()=>{this._vtk_renwin.getRenderWindow().clearOneTimeUpdaters()}))}init_vtk_renwin(){this._vtk_renwin=h.FullScreenRenderWindowSynchronized.newInstance({rootContainer:this.el,container:this._vtk_container,synchronizerContext:this._synchronizer_context})}plot(){this._vtk_renwin.getRenderWindow().clearOneTimeUpdaters(),this._decode_arrays();const e=(0,o.clone)(this.model.scene);Promise.all(this._promises).then((()=>{this._sync_plot(e,(()=>this._on_scene_ready())).then((()=>{this._set_camera_state(),this._get_camera_state()}))}))}_decode_arrays(){const e=new a.vtkns.ThirdParty.JSZip,t=this.model.arrays,n=this.registerArray,s=this.model.arrays_processed,r=this.model;Object.keys(t).forEach((i=>{this._decoded_arrays[i]||(this._decoded_arrays[i]=!0,this._promises.push(function(i){return e.loadAsync(atob(t[i])).then((e=>e.file("data/"+i))).then((e=>e.async("arraybuffer"))).then((e=>n(i,e))).then((()=>{s.push(i),r.properties.arrays_processed.change.emit()}))}(i)))}))}_on_scene_ready(){this._promises.length>0||(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._promises=[],this._unsubscribe_camera_cb(),this._synchronizer_context.setFetchArrayFunction((e=>Promise.resolve(this._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=d,d.__name__="VTKSynchronizedPlotView";class l extends _.AbstractVTKPlot{constructor(e){super(e),this.outline=a.vtkns.OutlineFilter.newInstance();const t=a.vtkns.Mapper.newInstance();t.setInputConnection(this.outline.getOutputPort()),this.outline_actor=a.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(c);t=t.filter((t=>{const s=n.getInstanceId(t);return!!s&&s.slice(-16)==e.slice(1,17)}))}return t}static init_VTKSynchronizedPlot(){this.prototype.default_view=d,this.define({arrays:[i.Any,{}],arrays_processed:[i.Array,[]],enable_keybindings:[i.Boolean,!1],one_time_reset:[i.Boolean],rebuild:[i.Boolean,!1],scene:[i.Any,{}]}),this.override({height:300,width:300})}}n.VTKSynchronizedPlot=l,l.__name__="VTKSynchronizedPlot",l.__module__="panel.models.vtk",l.init_VTKSynchronizedPlot()},
176
176
  "11e0707a8f": function _(e,n,o,t,r){t();const i=e("4eb45e35aa");if(i.vtk){const e={containerStyle:null,controlPanelStyle:null,listenWindowResize:!0,resizeCallback:null,controllerVisibility:!0,synchronizerContextName:"default"},n={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"};o.FullScreenRenderWindowSynchronized={newInstance:i.vtk.macro.newInstance(((o,t,r={})=>{Object.assign(t,e,r),i.vtk.macro.obj(o,t),i.vtk.macro.get(o,t,["renderWindow","openGLRenderWindow","interactor","rootContainer","container","controlContainer","synchronizerContext"]),function(e,o){o.renderWindow=i.vtkns.SynchronizableRenderWindow.newInstance({synchronizerContext:o.synchronizerContext}),o.openGLRenderWindow=i.vtkns.OpenGLRenderWindow.newInstance(),o.openGLRenderWindow.setContainer(o.container),o.renderWindow.addView(o.openGLRenderWindow),o.interactor=i.vtkns.RenderWindowInteractor.newInstance(),o.interactor.setInteractorStyle(i.vtkns.InteractorStyleTrackballCamera.newInstance()),o.interactor.setView(o.openGLRenderWindow),o.interactor.initialize(),o.interactor.bindEvents(o.container),e.getRenderer=()=>o.renderWindow.getRenderers()[0],e.removeController=()=>{const e=o.controlContainer;e&&e.parentNode.removeChild(e)},e.setControllerVisibility=e=>{o.controllerVisibility=e,o.controlContainer&&(o.controlContainer.style.display=e?"block":"none")},e.toggleControllerVisibility=()=>{e.setControllerVisibility(!o.controllerVisibility)},e.addController=t=>{o.controlContainer=document.createElement("div"),(0,i.applyStyle)(o.controlContainer,o.controlPanelStyle||n),o.rootContainer.appendChild(o.controlContainer),o.controlContainer.innerHTML=t,e.setControllerVisibility(o.controllerVisibility),o.rootContainer.addEventListener("keypress",(n=>{"c"===String.fromCharCode(n.charCode)&&e.toggleControllerVisibility()}))},e.delete=i.vtk.macro.chain(e.setContainer,o.openGLRenderWindow.delete,e.delete),e.resize=()=>{const e=o.container.getBoundingClientRect(),n=window.devicePixelRatio||1;o.openGLRenderWindow.setSize(Math.floor(e.width*n),Math.floor(e.height*n)),o.resizeCallback&&o.resizeCallback(e),o.renderWindow.render()},e.setResizeCallback=n=>{o.resizeCallback=n,e.resize()},o.listenWindowResize&&window.addEventListener("resize",e.resize),e.resize()}(o,t)}))}}},
177
- }, "4e90918c0a", {"index":"4e90918c0a","models/index":"7898617fc4","models/ace":"9fecc8d0f9","models/layout":"4c755983eb","models/audio":"339f84d639","models/card":"c816112d20","models/comm_manager":"e552778259","models/tabulator":"32011d40fa","models/data":"f1971f81bf","models/datetime_picker":"6e11b2cfe2","models/deckgl":"df2378664f","models/tooltips":"6e04fbe567","models/echarts":"9d046c4720","models/html":"2839081043","models/event-to-object":"3329d4aa5b","models/idom":"7d45bd3bc4","models/ipywidget":"0eae77d68f","models/json":"0d30bea0c8","models/file_download":"1767172ffa","models/katex":"7b859fb3cf","models/location":"642aa56b24","models/mathjax":"0c21036737","models/perspective":"84a772681d","models/player":"2e8044c920","models/plotly":"50ac0b0178","models/util":"990b5dd5c7","models/progress":"9f787650b9","models/reactive_html":"11283de978","models/singleselect":"5ed2116e26","models/speech_to_text":"aaa48703af","models/state":"bfa46a5f19","models/terminal":"91fe88c277","models/text_to_speech":"33cd2c254e","models/trend":"effe070807","models/vega":"4feb5fa522","models/video":"ffe54b53c3","models/videostream":"e3e9b8e495","models/vtk/index":"c51f25e2a7","models/vtk/vtkjs":"34fc7779c7","models/vtk/vtklayout":"46fdad9667","models/vtk/util":"4eb45e35aa","models/vtk/vtkcolorbar":"c010237f8b","models/vtk/vtkaxes":"db7a0079c0","models/vtk/vtkvolume":"89262e43a1","models/vtk/vtksynchronized":"4baab0b7ce","models/vtk/panel_fullscreen_renwin_sync":"11e0707a8f"}, {});});
177
+ }, "4e90918c0a", {"index":"4e90918c0a","models/index":"7898617fc4","models/ace":"9fecc8d0f9","models/layout":"4c755983eb","models/audio":"339f84d639","models/card":"c816112d20","models/comm_manager":"e552778259","models/tabulator":"99e23dce53","models/data":"f1971f81bf","models/datetime_picker":"6e11b2cfe2","models/deckgl":"df2378664f","models/tooltips":"6e04fbe567","models/echarts":"9d046c4720","models/html":"2839081043","models/event-to-object":"3329d4aa5b","models/idom":"7d45bd3bc4","models/ipywidget":"0eae77d68f","models/json":"0d30bea0c8","models/file_download":"1767172ffa","models/katex":"7b859fb3cf","models/location":"642aa56b24","models/mathjax":"0c21036737","models/perspective":"84a772681d","models/player":"2e8044c920","models/plotly":"50ac0b0178","models/util":"990b5dd5c7","models/progress":"9f787650b9","models/reactive_html":"eb3a49319b","models/singleselect":"5ed2116e26","models/speech_to_text":"aaa48703af","models/state":"bfa46a5f19","models/terminal":"91fe88c277","models/text_to_speech":"33cd2c254e","models/trend":"effe070807","models/vega":"4feb5fa522","models/video":"ffe54b53c3","models/videostream":"e3e9b8e495","models/vtk/index":"c51f25e2a7","models/vtk/vtkjs":"34fc7779c7","models/vtk/vtklayout":"46fdad9667","models/vtk/util":"4eb45e35aa","models/vtk/vtkcolorbar":"c010237f8b","models/vtk/vtkaxes":"db7a0079c0","models/vtk/vtkvolume":"89262e43a1","models/vtk/vtksynchronized":"4baab0b7ce","models/vtk/panel_fullscreen_renwin_sync":"11e0707a8f"}, {});});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@holoviz/panel",
3
- "version": "0.12.3",
3
+ "version": "0.12.4-rc.1",
4
4
  "description": "A high level dashboarding library for python visualization libraries.",
5
5
  "license": "BSD-3-Clause",
6
6
  "repository": {