From 0b30c645f82b898ff336c09e332535ed31d5e40c Mon Sep 17 00:00:00 2001 From: Darrell Schiebel Date: Thu, 25 Jan 2024 14:45:52 -0500 Subject: [PATCH] build of comment (?) --- casagui/__js__/casaguijs.min.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/casagui/__js__/casaguijs.min.js b/casagui/__js__/casaguijs.min.js index 0faff22..ba61f1d 100644 --- a/casagui/__js__/casaguijs.min.js +++ b/casagui/__js__/casaguijs.min.js @@ -41,17 +41,17 @@ } }) ({ -"5655cc5fa7": function _(e,a,t,o,c){o();const i=e("tslib"),s=e("5bef8f4f59");c("DataPipe",s.DataPipe);const r=e("e70bb98b3b");c("ImagePipe",r.ImagePipe);const p=e("048e93749a");c("ImageDataSource",p.ImageDataSource);const T=e("d96f397765");c("SpectraDataSource",T.SpectraDataSource);const n=e("aaf1948599");c("WcsTicks",n.WcsTicks);const D=e("10abbc5ec5");c("DragTool",D.DragTool);const b=e("297551eba6");c("CBResetTool",b.CBResetTool);const l=e("e3901fa9f2");c("serialize",l.serialize),c("deserialize",l.deserialize);const g=e("77f2b93036");c("TipButton",g.TipButton);const u=e("5b14d9ac91");c("Tip",u.Tip);const S=i.__importStar(e("15b954190c"));t.find=S;(0,e("@bokehjs/base").register_models)({DataPipe:s.DataPipe,ImagePipe:r.ImagePipe,ImageDataSource:p.ImageDataSource,SpectraDataSource:T.SpectraDataSource,WcsTicks:n.WcsTicks,DragTool:D.DragTool,CBResetTool:b.CBResetTool,Tip:u.Tip,TipButton:g.TipButton})}, +"5655cc5fa7": function _(e,a,t,o,c){o();const i=e("tslib"),s=e("5bef8f4f59");c("DataPipe",s.DataPipe);const r=e("e70bb98b3b");c("ImagePipe",r.ImagePipe);const p=e("d8f54ecc38");c("ImageDataSource",p.ImageDataSource);const T=e("d96f397765");c("SpectraDataSource",T.SpectraDataSource);const n=e("aaf1948599");c("WcsTicks",n.WcsTicks);const D=e("10abbc5ec5");c("DragTool",D.DragTool);const b=e("297551eba6");c("CBResetTool",b.CBResetTool);const l=e("e3901fa9f2");c("serialize",l.serialize),c("deserialize",l.deserialize);const g=e("77f2b93036");c("TipButton",g.TipButton);const u=e("5b14d9ac91");c("Tip",u.Tip);const S=i.__importStar(e("15b954190c"));t.find=S;(0,e("@bokehjs/base").register_models)({DataPipe:s.DataPipe,ImagePipe:r.ImagePipe,ImageDataSource:p.ImageDataSource,SpectraDataSource:T.SpectraDataSource,WcsTicks:n.WcsTicks,DragTool:D.DragTool,CBResetTool:b.CBResetTool,Tip:u.Tip,TipButton:g.TipButton})}, "5bef8f4f59": function _(e,s,t,i,n){var o;i();const c=e("@bokehjs/models/sources/data_source"),a=e("e3901fa9f2");class d extends c.DataSource{constructor(e){super(e),this.send_queue={},this.connection_queue=[],this.pending={},this.incoming_callbacks={}}initialize(){super.initialize();let e=`ws://${this.address[0]}:${this.address[1]}`;console.log("datapipe url:",e);var s=void 0;document.shutdown_in_progress_=!1;var t=()=>{void 0!==this.websocket&&this.websocket.close(),this.websocket=new WebSocket(e),this.websocket.binaryType="arraybuffer",this.websocket.onerror=e=>{console.log("error encountered:",e)},this.websocket.onmessage=e=>{if("string"==typeof e.data||e.data instanceof String){let s=(0,a.deserialize)(e.data);if("id"in s&&"direction"in s&&"message"in s){let{id:e,message:t,direction:i}=s;if(void 0===t&&console.log("Error, event failure",s),"j2p"==i)if(e in this.pending){let{cb:i}=this.pending[e];if(delete this.pending[e],e in this.send_queue&&this.send_queue[e].length>0){let{cb:s,msg:t}=this.send_queue[e].shift();this.pending[e]={cb:s},this.websocket.send((0,a.serialize)(t))}void 0===t?console.log("DROPPING ERROR FOR NOW (maybe need error callbacks)",s):i(t)}else console.log("message received but could not find id");else if(e in this.incoming_callbacks){let s=this.incoming_callbacks[e](t);this.websocket.send((0,a.serialize)({id:e,direction:i,message:s,session:casalib.object_id(this)}))}}else console.log(`datapipe received message without one of 'id', 'message' or 'direction': ${s}`)}else console.log("datapipe received binary data",e.data.byteLength,"bytes")},this.websocket.onopen=()=>{for(s?0==s.connected&&console.log(`connection reestablished at ${new Date}`):this.websocket.send((0,a.serialize)({id:"initialize",direction:"j2p",session:casalib.object_id(this)})),s=new casalib.ReconnectState;this.connection_queue.length>0;){let e=this.connection_queue.shift();this.send.apply(e[0],e[1])}},this.websocket.onclose=()=>{if(1==s.connected&&(console.log(`connection lost at ${new Date}`),s.connected=!1,!document.shutdown_in_progress_)){console.log(`connection lost at ${new Date}`);var e=s;function i(n){0==s.connected&&(console.log(`${n+1}\treconnection attempt ${new Date}`),t(),e.backoff(),e.retries>0?setTimeout(i,e.timeout,n+1):0==s.connected&&console.log(`aborting reconnection after ${n} attempts ${new Date}`))}i(0)}}};t();(()=>{null!=this.init_script&&this.init_script.execute(this)})()}register(e,s){this.incoming_callbacks[e]=s}send(e,s,t,i=!1){let n={id:e,message:s,direction:"j2p",session:casalib.object_id(this)};if(!this.websocket||e in this.pending)if(e in this.send_queue)if("boolean"==typeof i&&i&&this.send_queue[e].length>0)this.send_queue[e][0].msg=n,this.send_queue[e][0].cb=t;else if("function"==typeof i&&this.send_queue[e].length>0){let o=!1;for(const c of this.send_queue[e])i(c.msg.message)&&(c.msg=n,c.cb=t,o=!0);o||this.send_queue[e].push({cb:t,msg:n})}else this.send_queue[e].push({cb:t,msg:n});else this.send_queue[e]=[{cb:t,msg:n}];else if(this.websocket.readyState===WebSocket.CONNECTING)this.connection_queue.push([this,[e,s,t]]);else if(e in this.send_queue&&this.send_queue[e].length>0){this.send_queue[e].push({cb:t,msg:n});{let{cb:d,msg:l}=this.send_queue[e].shift();if(this.pending[e]={cb:d},this.websocket.readyState===WebSocket.OPEN)this.websocket.send((0,a.serialize)(l));else{let u=20,h=this;function r(){h.websocket.readyState===WebSocket.OPEN?h.websocket.send((0,a.serialize)(l)):(u-=1,u>0&&setTimeout(r,3e3))}setTimeout(r,3e3)}}}else if(this.websocket.readyState===WebSocket.OPEN)this.pending[e]={cb:t},this.websocket.send((0,a.serialize)(n));else{let b=20,g=this;function _(){g.websocket.readyState===WebSocket.OPEN?(g.pending[e]={cb:t},g.websocket.send((0,a.serialize)(n))):(b-=1,b>0&&setTimeout(_,3e3))}setTimeout(_,3e3)}}}t.DataPipe=d,o=d,d.__name__="DataPipe",d.__module__="casagui.bokeh.sources._data_pipe",o.define((({Any:e,Tuple:s,String:t,Number:i})=>({init_script:[e,null],address:[s(t,i)]})))}, "e3901fa9f2": function _(e,r,s,i,o){i();const l=e("@bokehjs/base"),a=e("@bokehjs/core/resolvers"),t=e("@bokehjs/core/serialization/deserializer"),n=e("@bokehjs/core/serialization/serializer"),{deserialize:c}=new class{constructor(){this.resolver=new a.ModelResolver(l.default_resolver),this.deserializer=new t.Deserializer(this.resolver),this.deserialize=e=>{try{return this.deserializer.decode(JSON.parse(e))}catch(r){return console.group("deserialize error"),console.log(e),console.log(r),console.groupEnd(),{}}}}};s.deserialize=c;const{serialize:z}=new class{constructor(){this.serializer=new n.Serializer,this.serialize=e=>JSON.stringify(this.serializer.encode(e))}};s.serialize=z}, "e70bb98b3b": function _(e,i,s,t,a){var n;t();const d=e("5bef8f4f59");class o extends d.DataPipe{constructor(e){super(e),this.position={},this._wcs=null}initialize(){super.initialize(),this.fits_header_json&&(this._wcs=new casalib.coordtxl.WCSTransform(new casalib.coordtxl.MapKeywordProvider(JSON.parse(this.fits_header_json))))}channel(e,i,s){this.position[s]={index:e};let t={action:"channel",index:e,id:s};super.send(this.dataid,t,i)}spectra(e,i,s,t=!1){let a={action:"spectra",index:e,id:s};super.send(this.dataid,a,i,t)}adjust_colormap(e,i,s,t,a=!1){const n={action:"adjust-colormap",bounds:e,transfer:i,id:t};super.send(this.dataid,n,s,a)}refresh(e,i,s=[0,0]){let{index:t}=i in this.position?this.position[i]:{index:s};if(2===t.length){let s={action:"channel",index:t,id:i};super.send(this.dataid,s,e)}else if(3===t.length){let s={action:"spectra",index:t,id:i};super.send(this.dataid,s,e)}}wcs(){return this._wcs}}s.ImagePipe=o,n=o,o.__name__="ImagePipe",o.__module__="casagui.bokeh.sources._image_pipe",n.define((({Number:e,Nullable:i,String:s,Tuple:t})=>({dataid:[s],shape:[t(e,e,e,e)],fits_header_json:[i(s),null]})))}, -"048e93749a": function _(s,a,t,o,i){var c;o();const e=s("@bokehjs/models/sources/column_data_source"),n=s("@bokehjs/core/util/string"),u=s("e70bb98b3b");class r extends e.ColumnDataSource{constructor(s){super(s),this.imid=(0,n.uuid4)()}_mask_contour(s){const a=casalib.d3.contours().size(this.image_source.shape.slice(0,2)).thresholds([1])(s[0])[0].coordinates.map((s=>s.map((s=>s.reduce(((s,a)=>(s[0].push(a[0]),s[1].push(a[1]),s)),[[],[]])))));return{xs:[a.map((s=>s.map((s=>s[0]))))],ys:[a.map((s=>s.map((s=>s[1]))))]}}initialize(){if(super.initialize(),null!=this._mask_contour_source&&"msk"in this.data&&this.data.msk.length>0&&this.data.msk[0].length>0){const s=this.data.msk;this._mask_contour_source.data=this._mask_contour(s)}(()=>{null!=this.init_script&&this.init_script.execute(this)})()}channel(s,a=0,t){this.image_source.channel([a,s],(o=>{void 0!==o&&void 0!==o.chan||console.log("ImageDataSource ERROR ENCOUNTERED <1>",o),this.cur_chan=[a,s],null!=this._mask_contour_source&&"chan"in o&&"msk"in o.chan&&(o.msk_contour=this._mask_contour(o.chan.msk),this._mask_contour_source.data=o.msk_contour),t&&t(o),this.data=o.chan}),this.imid)}adjust_colormap(s,a,t){this.image_source.adjust_colormap(s,a,t,this.imid,!0)}signal_change(){this.change.emit()}refresh(s){this.image_source.refresh((a=>{void 0!==a&&void 0!==a.chan||console.log("ImageDataSource ERROR ENCOUNTERED <2>",a),null!=this._mask_contour_source&&"chan"in a&&"msk"in a.chan&&(a.msk_contour=this._mask_contour(a.chan.msk),this._mask_contour_source.data=a.msk_contour),s&&s(a),this.data=a.chan}),this.imid,[0,0])}wcs(){return this.image_source.wcs()}}t.ImageDataSource=r,c=r,r.__name__="ImageDataSource",r.__module__="casagui.bokeh.sources._image_data_source",c.define((({Tuple:s,Number:a,Ref:t,Any:o})=>({init_script:[o,null],image_source:[t(u.ImagePipe)],_mask_contour_source:[t(e.ColumnDataSource),null],num_chans:[s(a,a)],cur_chan:[s(a,a)]})))}, +"d8f54ecc38": function _(s,a,t,o,i){var c;o();const e=s("@bokehjs/models/sources/column_data_source"),n=s("@bokehjs/core/util/string"),u=s("e70bb98b3b");class r extends e.ColumnDataSource{constructor(s){super(s),this.imid=(0,n.uuid4)()}_mask_contour(s){const a=casalib.d3.contours().size(this.image_source.shape.slice(0,2)).thresholds([1])(s[0])[0].coordinates.map((s=>s.map((s=>s.reduce(((s,a)=>(s[0].push(a[0]),s[1].push(a[1]),s)),[[],[]])))));return{xs:[a.map((s=>s.map((s=>s[0]))))],ys:[a.map((s=>s.map((s=>s[1]))))]}}initialize(){if(super.initialize(),null!=this._mask_contour_source&&"msk"in this.data&&this.data.msk.length>0&&this.data.msk[0].length>0){const s=this.data.msk;this._mask_contour_source.data=this._mask_contour(s)}(()=>{null!=this.init_script&&this.init_script.execute(this)})()}channel(s,a=0,t){this.image_source.channel([a,s],(o=>{void 0!==o&&void 0!==o.chan||console.log("ImageDataSource ERROR ENCOUNTERED <1>",o),this.cur_chan=[a,s],null!=this._mask_contour_source&&"chan"in o&&"msk"in o.chan&&(o.msk_contour=this._mask_contour(o.chan.msk),this._mask_contour_source.data=o.msk_contour),t&&t(o),this.data=o.chan}),this.imid)}adjust_colormap(s,a,t){this.image_source.adjust_colormap(s,a,t,this.imid,!0)}signal_change(){this.change.emit()}refresh(s){this.image_source.refresh((a=>{void 0!==a&&void 0!==a.chan||console.log("ImageDataSource ERROR ENCOUNTERED <2>",a),null!=this._mask_contour_source&&"chan"in a&&"msk"in a.chan&&(a.msk_contour=this._mask_contour(a.chan.msk),this._mask_contour_source.data=a.msk_contour),s&&s(a),this.data=a.chan}),this.imid,[0,0])}wcs(){return this.image_source.wcs()}}t.ImageDataSource=r,c=r,r.__name__="ImageDataSource",r.__module__="casagui.bokeh.sources._image_data_source",c.define((({Tuple:s,Number:a,Ref:t,Any:o})=>({init_script:[o,null],image_source:[t(u.ImagePipe)],_mask_contour_source:[t(e.ColumnDataSource),null],num_chans:[s(a,a)],cur_chan:[s(a,a)]})))}, "d96f397765": function _(e,s,i,a,t){var r;a();const c=e("@bokehjs/models/sources/column_data_source"),u=e("@bokehjs/core/util/string"),o=e("e70bb98b3b");class _ extends c.ColumnDataSource{constructor(e){super(e),this.imid=(0,u.uuid4)()}initialize(){super.initialize()}spectra(e,s,i=0,a=!1){this.image_source.spectra([e,s,i],(e=>this.data=e.spectrum),this.imid,a)}refresh(){this.image_source.refresh((e=>this.data=e.spectrum),this.imid,[0,0,0])}}i.SpectraDataSource=_,r=_,_.__name__="SpectraDataSource",_.__module__="casagui.bokeh.sources._spectra_data_source",r.define((({Ref:e})=>({image_source:[e(o.ImagePipe)]})))}, -"aaf1948599": function _(s,i,o,t,e){var r;t();const a=s("@bokehjs/models/formatters/tick_formatter"),c=s("048e93749a");class l extends a.TickFormatter{constructor(s){super(s),this._axis=null,this._coord="world"}initialize(){super.initialize(),"x"==this.axis||"X"==this.axis||"y"==this.axis||"Y"==this.axis?this._axis="x"==this.axis||"X"==this.axis?"x":"y":console.log("ERROR: WcsTicks formatter created with invalid axis:",this.axis)}doFormat(s){const i=[];if(this._axis&&this.image_source.wcs()&&"world"==this._coord)for(let o=0,t=s.length;o({axis:[i],image_source:[s(c.ImageDataSource)]})))}, +"aaf1948599": function _(s,i,o,t,e){var r;t();const a=s("@bokehjs/models/formatters/tick_formatter"),c=s("d8f54ecc38");class l extends a.TickFormatter{constructor(s){super(s),this._axis=null,this._coord="world"}initialize(){super.initialize(),"x"==this.axis||"X"==this.axis||"y"==this.axis||"Y"==this.axis?this._axis="x"==this.axis||"X"==this.axis?"x":"y":console.log("ERROR: WcsTicks formatter created with invalid axis:",this.axis)}doFormat(s){const i=[];if(this._axis&&this.image_source.wcs()&&"world"==this._coord)for(let o=0,t=s.length;o({axis:[i],image_source:[s(c.ImageDataSource)]})))}, "10abbc5ec5": function _(i,e,t,o,s){var d;o();const l=i("@bokehjs/models/tools/gestures/gesture_tool"),r=i("ace4ecdb50"),_=i("15b954190c");class m extends l.GestureToolView{_pan_start(i){var e;null===(e=this.model.document)||void 0===e||e.interactive_start(this.plot_view.model);const t=(0,_.px_from_sx)(this.plot_view,i.sx),o=(0,_.py_from_sy)(this.plot_view,i.sy),s=(0,_.dx_from_px)(this.plot_view,t),d=(0,_.dy_from_py)(this.plot_view,o),{start:l}=this.model;l?l.execute(this.model,{sx:t,sy:o,x:s,y:d,delta_x:i.dx,delta_y:-i.dy,shift:"modifiers"in i?i.modifiers.shift:void 0,ctrl:"modifiers"in i?i.modifiers.ctrl:void 0,alt:"modifiers"in i?i.modifiers.alt:void 0}):this.model.trigger_event(new r.DragStart(t,o,s,d,i.dx,-i.dy,i.modifiers))}_pan(i){var e;null===(e=this.model.document)||void 0===e||e.interactive_start(this.plot_view.model);const t=(0,_.px_from_sx)(this.plot_view,i.sx),o=(0,_.py_from_sy)(this.plot_view,i.sy),s=(0,_.dx_from_px)(this.plot_view,t),d=(0,_.dy_from_py)(this.plot_view,o),{move:l}=this.model;l?l.execute(this.model,{sx:t,sy:o,x:s,y:d,delta_x:i.dx,delta_y:-i.dy,shift:"modifiers"in i?i.modifiers.shift:void 0,ctrl:"modifiers"in i?i.modifiers.ctrl:void 0,alt:"modifiers"in i?i.modifiers.alt:void 0}):this.model.trigger_event(new r.Drag(t,o,s,d,i.dx,-i.dy,i.modifiers))}_pan_end(i){const e=(0,_.px_from_sx)(this.plot_view,i.sx),t=(0,_.py_from_sy)(this.plot_view,i.sy),o=(0,_.dx_from_px)(this.plot_view,e),s=(0,_.dy_from_py)(this.plot_view,t),{end:d}=this.model;d?d.execute(this.model,{sx:e,sy:t,x:o,y:s,delta_x:i.dx,delta_y:-i.dy,shift:"modifiers"in i?i.modifiers.shift:void 0,ctrl:"modifiers"in i?i.modifiers.ctrl:void 0,alt:"modifiers"in i?i.modifiers.alt:void 0}):this.model.trigger_event(new r.DragEnd(e,t,o,s,i.dx,-i.dy,i.modifiers))}}t.DragToolView=m,m.__name__="DragToolView";class a extends l.GestureTool{constructor(i){super(i),this.tool_name="Drag",this.event_type="pan",this.default_order=10}}t.DragTool=a,d=a,a.__name__="DragTool",a.__module__="casagui.bokeh.tools._drag_tool",d.prototype.default_view=m,d.define((({Any:i,Nullable:e})=>({start:[e(i),null],move:[e(i),null],end:[e(i),null]})))}, "ace4ecdb50": function _(e,t,a,s,n){s();const _=e("@bokehjs/core/bokeh_events");class r extends _.Pan{}a.Drag=r,r.__name__="Drag";class l extends _.PanStart{constructor(e,t,a,s,n,_,r){super(e,t,a,s,r),this.delta_x=n,this.delta_y=_}get event_values(){const{delta_x:e,delta_y:t}=this;return Object.assign(Object.assign({},super.event_values),{delta_x:e,delta_y:t})}}a.DragStart=l,l.__name__="DragStart";class d extends _.PanEnd{constructor(e,t,a,s,n,_,r){super(e,t,a,s,r),this.delta_x=n,this.delta_y=_}get event_values(){const{delta_x:e,delta_y:t}=this;return Object.assign(Object.assign({},super.event_values),{delta_x:e,delta_y:t})}}a.DragEnd=d,d.__name__="DragEnd"}, "15b954190c": function _(e,n,o,t,r){t(),o.view=function(e){return function n(o,t){for(const r of o.children()){if(r.model.id===e.id)return r;if(r.children()){const e=n(r,t);if(e)return e}}return null}(Bokeh.index[Object.keys(Bokeh.index)[0]],e.id)},o.span_coords=function(e){function n(e,n,o,t,r){if(null!=e)switch(n){case"canvas":return r.compute(e);case"screen":return t.compute(e);case"data":return o.compute(e)}return NaN}const{frame:o,canvas:t}=e.plot_view,{x_scale:r,y_scale:i}=e.coordinates;let _,c,f,u,m=e.model.dimension;return"width"==e.model.dimension?(f=n(e.model.location,e.model.location_units,i,o.bbox.yview,t.bbox.y_screen),c=o.bbox.left,u=o.bbox.width,_=e.model.line_width):(f=o.bbox.top,c=n(e.model.location,e.model.location_units,r,o.bbox.xview,t.bbox.y_screen),u=e.model.line_width,_=o.bbox.height),{stop:f,sleft:c,width:u,height:_,orientation:m}},o.px_from_sx=function(e,n){return e.frame.bbox.x_view.invert(n)},o.py_from_sy=function(e,n){return e.frame.bbox.y_view.invert(n)},o.dx_from_px=function(e,n){const o=e.frame.bbox.x_view.compute(n);return e.frame.x_scale.invert(o)},o.dy_from_py=function(e,n){const o=e.frame.bbox.y_view.compute(n);return e.frame.y_scale.invert(o)},o.sx_from_dx=function(e,n){return e.frame.x_scale.compute(n)},o.sy_from_dy=function(e,n){return e.frame.y_scale.compute(n)},o.v_px_from_sx=function(e,n){return e.frame.bbox.x_view.v_invert(n)},o.v_py_from_sy=function(e,n){return e.frame.bbox.y_view.v_invert(n)},o.v_dx_from_px=function(e,n){const o=e.frame.bbox.x_view.v_compute(n);return e.frame.x_scale.v_invert(o)},o.v_dy_from_py=function(e,n){const o=e.frame.bbox.y_view.v_compute(n);return e.frame.y_scale.v_invert(o)},o.v_sx_from_dx=function(e,n){return e.frame.x_scale.v_compute(n)},o.v_sy_from_dy=function(e,n){return e.frame.y_scale.v_compute(n)}}, "297551eba6": function _(e,o,s,t,l){var c;t();const _=e("@bokehjs/models/tools/actions/reset_tool"),a=e("@bokehjs/styles/icons.css");class i extends _.ResetToolView{doit(){const{precallback:e,postcallback:o}=this.model;e&&e.execute(this.model),this.plot_view.reset(),o&&o.execute(this.model)}}s.CBResetToolView=i,i.__name__="CBResetToolView";class n extends _.ResetTool{constructor(e){super(e),this.tool_name="CBReset",this.tool_icon=a.tool_icon_reset}}s.CBResetTool=n,c=n,n.__name__="CBResetTool",n.__module__="casagui.bokeh.tools._cbreset_tool",c.prototype.default_view=i,c.define((({Any:e,Nullable:o})=>({precallback:[o(e),null],postcallback:[o(e),null]}))),c.register_alias("cbreset",(()=>new n))}, "77f2b93036": function _(e,t,i,o,s){var l;o();const n=e("@bokehjs/models/widgets/abstract_button"),c=e("@bokehjs/models/ui/tooltip"),d=e("@bokehjs/models/ui/icons/builtin_icon"),r=e("@bokehjs/core/build_views"),u=e("@bokehjs/core/bokeh_events"),a=e("@bokehjs/core/util/object");class _ extends n.AbstractButtonView{click(){this.model.trigger_event(new u.ButtonClick),super.click()}*children(){yield*super.children(),yield this.tooltip}async lazy_initialize(){await super.lazy_initialize();const{tooltip:e}=this.model;this.tooltip=await(0,r.build_view)(e,{parent:this})}remove(){this.tooltip.remove(),super.remove()}render(){super.render();let e=!1,t=!1,i=!1;const o=o=>{if(o&&!e){const{hover_wait:s}=this.model;e=!0,setTimeout((()=>{t&&this.tooltip.model.setv({visible:o,closable:i})}),1e3*s)}else e=!1,this.tooltip.model.setv({visible:o,closable:i})};this.on_change(this.tooltip.model.properties.visible,(()=>{const{visible:e}=this.tooltip.model;e||(i=!1),o(e)})),this.el.addEventListener("mouseenter",(()=>{t=!0,o(!0)})),this.el.addEventListener("mouseleave",(()=>{t=!1,i||o(!1)})),document.addEventListener("mousedown",(e=>{if(void 0===(0,a.dict)(this.model.js_event_callbacks).get(u.ButtonClick.prototype.event_name)){const t=e.composedPath();if(t.includes(this.tooltip.el))return;t.includes(this.el)?(i=!i,o(i)):(i=!1,o(!1))}else o(!1),t=!1})),window.addEventListener("blur",(()=>{i=!1,o(!1)}))}}i.TipButtonView=_,_.__name__="TipButtonView";class h extends n.AbstractButton{constructor(e){super(e)}on_click(e){this.on_event(u.ButtonClick,e)}}i.TipButton=h,l=h,h.__name__="TipButton",h.__module__="casagui.bokeh.models._tip_button",l.prototype.default_view=_,l.define((({Ref:e,Number:t})=>({tooltip:[e(c.Tooltip)],hover_wait:[t,1.5]}))),l.override({label:"",icon:new d.BuiltinIcon({icon_name:"help",size:18}),button_type:"default"})}, "5b14d9ac91": function _(e,t,i,s,o){var l;s();const a=e("@bokehjs/models/ui/ui_element"),r=e("@bokehjs/core/logging"),_=e("@bokehjs/core/signaling"),n=e("@bokehjs/core/util/types"),h=e("@bokehjs/core/build_views"),u=e("@bokehjs/models/layouts/layout_dom"),d=e("@bokehjs/core/util/defer"),c=e("@bokehjs/core/util/canvas"),p=e("@bokehjs/models/ui/tooltip");class y extends a.UIElementView{constructor(){super(...arguments),this._child_views=new Map,this.mouseenter=new _.Signal(this,"mouseenter"),this.mouseleave=new _.Signal(this,"mouseleave"),this._resized=!1,this._layout_computed=!1,this._was_built=!1}get is_layout_root(){return this.is_root||!(this.parent instanceof u.LayoutDOMView)}_after_resize(){this._resized=!0,super._after_resize(),this.is_layout_root&&!this._was_built?(r.logger.warn(`${this} wasn't built properly`),this.render_to(null)):this.compute_layout()}async lazy_initialize(){await super.lazy_initialize(),await this.build_child_views();const{tooltip:e}=this.model;this.tooltip=await(0,h.build_view)(e,{parent:this})}remove(){this.tooltip.remove();for(const e of this.child_views)e.remove();this._child_views.clear(),super.remove()}connect_signals(){super.connect_signals(),this.el.addEventListener("mouseenter",(e=>{this.mouseenter.emit(e)})),this.el.addEventListener("mouseleave",(e=>{this.mouseleave.emit(e)}))}*children(){yield*super.children(),yield*this.child_views,yield this.tooltip}get child_models(){return[this.model.child]}get child_views(){return this.child_models.map((e=>this._child_views.get(e))).filter(n.isNotNull)}get layoutable_views(){return this.child_views.filter((e=>e instanceof y))}async build_child_views(){const{created:e,removed:t}=await(0,h.build_views)(this._child_views,this.child_models,{parent:this});for(const e of t)this._resize_observer.unobserve(e.el);for(const t of e)this._resize_observer.observe(t.el,{box:"border-box"});return e}render(){super.render();let e=!1,t=!1,i=!1;const s=s=>{if(s&&!e){const{hover_wait:i}=this.model;e=!0,setTimeout((()=>{t&&this.tooltip.model.setv({visible:s,closable:!1})}),1e3*i)}else e=!1,this.tooltip.model.setv({visible:s,closable:i})};for(const e of this.child_views)e.render_to(this.el),this.shadow_el.appendChild(e.el);this.on_change(this.tooltip.model.properties.visible,(()=>{const{visible:e}=this.tooltip.model;s(e)})),this.el.addEventListener("mouseenter",(()=>{t=!0,s(!0)})),this.el.addEventListener("mouseleave",(()=>{t=!1,i||s(!1)})),window.addEventListener("blur",(()=>{i=!1,s(!1)})),this.el.addEventListener("click",(()=>{s(!1)}))}_update_layout(){this.style.append(":host",{})}update_layout(){this.update_style();for(const e of this.layoutable_views)e.update_layout();this._update_layout()}get is_managed(){return this.parent instanceof y}_measure_layout(){}measure_layout(){for(const e of this.layoutable_views)e.measure_layout();this._measure_layout()}compute_layout(){this.parent instanceof y?this.parent.compute_layout():(this.measure_layout(),this.update_bbox(),this._compute_layout(),this.after_layout()),this._layout_computed=!0}_compute_layout(){if(null!=this.layout){this.layout.compute(this.bbox.size);for(const e of this.layoutable_views)null==e.layout?e._compute_layout():e._propagate_layout()}else for(const e of this.layoutable_views)e._compute_layout()}_propagate_layout(){for(const e of this.layoutable_views)null==e.layout&&e._compute_layout()}update_bbox(){for(const e of this.layoutable_views)e.update_bbox();const e=super.update_bbox();return null!=this.layout&&(this.layout.visible=this.is_displayed),e}_after_layout(){}after_layout(){for(const e of this.layoutable_views)e.after_layout();this._after_layout()}render_to(e){if(!this.is_layout_root)throw new Error(`${this.toString()} is not a root layout`);this.render(),null!=e&&e.appendChild(this.el),this.r_after_render(),this._was_built=!0,this.notify_finished()}r_after_render(){for(const e of this.child_views)e instanceof y?e.r_after_render():e.after_render();this.after_render()}after_render(){this.is_managed||this.invalidate_layout(),this._has_finished||(this.is_displayed?(0,d.defer)().then((()=>{this._resized||this.finish()})):this.finish())}invalidate_layout(){this.parent instanceof y?this.parent.invalidate_layout():(this.update_layout(),this.compute_layout())}has_finished(){if(!super.has_finished())return!1;if(this.is_layout_root&&!this._layout_computed)return!1;for(const e of this.child_views)if(!e.has_finished())return!1;return!0}export(e="auto",t=!0){const i=(()=>{switch(e){case"auto":case"png":return"canvas";case"svg":return"svg"}})(),s=new c.CanvasLayer(i,t),{x:o,y:l,width:a,height:r}=this.bbox;s.resize(a,r);const _=getComputedStyle(this.el).backgroundColor;s.ctx.fillStyle=_,s.ctx.fillRect(o,l,a,r);for(const i of this.child_views){const o=i.export(e,t),{x:l,y:a}=i.bbox;s.ctx.drawImage(o.canvas,l,a)}return s}serializable_state(){return Object.assign(Object.assign({},super.serializable_state()),{children:this.child_views.map((e=>e.serializable_state()))})}}i.TipView=y,y.__name__="TipView";class f extends a.UIElement{constructor(e){super(e)}}i.Tip=f,l=f,f.__name__="Tip",f.__module__="casagui.bokeh.models._tip",l.prototype.default_view=y,l.define((({Ref:e,Number:t})=>({child:[e(a.UIElement)],tooltip:[e(p.Tooltip)],hover_wait:[t,1.5]})))}, -}, "5655cc5fa7", {"index":"5655cc5fa7","src/bokeh/sources/data_pipe":"5bef8f4f59","src/bokeh/util/conversions":"e3901fa9f2","src/bokeh/sources/image_pipe":"e70bb98b3b","src/bokeh/sources/image_data_source":"048e93749a","src/bokeh/sources/spectra_data_source":"d96f397765","src/bokeh/format/wcs_ticks":"aaf1948599","src/bokeh/tools/drag_tool":"10abbc5ec5","src/bokeh/events":"ace4ecdb50","src/bokeh/util/find":"15b954190c","src/bokeh/tools/cbreset_tool":"297551eba6","src/bokeh/models/tip_button":"77f2b93036","src/bokeh/models/tip":"5b14d9ac91"}, {});}); +}, "5655cc5fa7", {"index":"5655cc5fa7","src/bokeh/sources/data_pipe":"5bef8f4f59","src/bokeh/util/conversions":"e3901fa9f2","src/bokeh/sources/image_pipe":"e70bb98b3b","src/bokeh/sources/image_data_source":"d8f54ecc38","src/bokeh/sources/spectra_data_source":"d96f397765","src/bokeh/format/wcs_ticks":"aaf1948599","src/bokeh/tools/drag_tool":"10abbc5ec5","src/bokeh/events":"ace4ecdb50","src/bokeh/util/find":"15b954190c","src/bokeh/tools/cbreset_tool":"297551eba6","src/bokeh/models/tip_button":"77f2b93036","src/bokeh/models/tip":"5b14d9ac91"}, {});});