UNPKG

thebe-core

Version:

Typescript based core functionality for Thebe

2 lines 1.31 MB
/*! For license information please see thebe-core.min.js.LICENSE.txt */ (()=>{var __webpack_modules__={17998:(e,t,n)=>{"use strict";n.r(t),n.d(t,{BROKEN_FILE_SVG_ICON:()=>g,DOMWidgetModel:()=>P,DOMWidgetView:()=>B,ErrorWidgetView:()=>G,IJupyterWidgetRegistry:()=>W,JUPYTER_WIDGETS_VERSION:()=>k,JupyterLuminoPanelWidget:()=>R,JupyterLuminoWidget:()=>L,JupyterPhosphorPanelWidget:()=>j,JupyterPhosphorWidget:()=>D,LayoutModel:()=>F,LayoutView:()=>$,PROTOCOL_VERSION:()=>M,StyleModel:()=>U,StyleView:()=>q,ViewList:()=>H,WidgetModel:()=>A,WidgetView:()=>N,assign:()=>l,createErrorWidgetModel:()=>K,createErrorWidgetView:()=>J,difference:()=>o,isEqual:()=>a,isObject:()=>f,isSerializable:()=>p,pack_models:()=>I,put_buffers:()=>h,reject:()=>d,remove_buffers:()=>m,resolvePromisesDict:()=>c,shims:()=>V,unpack_models:()=>O,uuid:()=>u});var i=n(75764),r=n(46343),s=n.n(r);function o(e,t){return e.filter((e=>-1===t.indexOf(e)))}function a(e,t){return s()(e,t)}const l=Object.assign||function(e,...t){for(let n=1;n<t.length;n++){const i=t[n];for(const t in i)Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t])}return e};function u(){return i.UUID.uuid4()}function c(e){const t=Object.keys(e),n=[];return t.forEach((function(t){n.push(e[t])})),Promise.all(n).then((e=>{const n={};for(let i=0;i<t.length;i++)n[t[i]]=e[i];return n}))}function d(e,t){return function(n){throw t&&console.error(new Error(e)),n}}function h(e,t,n){for(let i=0;i<t.length;i++){const r=t[i];let s=n[i];s instanceof DataView||(s=new DataView(s instanceof ArrayBuffer?s:s.buffer));let o=e;for(let e=0;e<r.length-1;e++)o=o[r[e]];o[r[r.length-1]]=s}}function p(e){var t;return null!==(t="object"==typeof e&&e&&"toJSON"in e)&&void 0!==t&&t}function f(e){return i.JSONExt.isObject(e)}function m(e){const t=[],n=[];return{state:function e(i,r){if(p(i)&&(i=i.toJSON()),Array.isArray(i)){let s=!1;for(let o=0;o<i.length;o++){const a=i[o];if(a)if(a instanceof ArrayBuffer||ArrayBuffer.isView(a))s||(i=i.slice(),s=!0),t.push(ArrayBuffer.isView(a)?a.buffer:a),n.push(r.concat([o])),i[o]=null;else{const t=e(a,r.concat([o]));t!==a&&(s||(i=i.slice(),s=!0),i[o]=t)}}}else if(f(i))for(const s in i){let o=!1;if(Object.prototype.hasOwnProperty.call(i,s)){const a=i[s];if(a)if(a instanceof ArrayBuffer||ArrayBuffer.isView(a))o||(i=Object.assign({},i),o=!0),t.push(ArrayBuffer.isView(a)?a.buffer:a),n.push(r.concat([s])),delete i[s];else{const t=e(a,r.concat([s]));t!==a&&(o||(i=Object.assign({},i),o=!0),i[s]=t)}}}return i}(e,[]),buffers:t,buffer_paths:n}}const g='<svg style="height:50%;max-height: 50px;" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48">\n<g >\n <g transform="translate(0.24520123,0.93464292)">\n <path d="M 8.2494641,21.074514 V 5.6225142 c 0,-0.314 0.254,-0.567 0.57,-0.567 H 29.978464 c 2.388,0 9.268,5.8269998 9.268,8.3029998 v 5.5835 l -3.585749,4.407396 -2.772971,-3.535534 -5.126524,3.414213 -5.944543,-3.237436 -5.722718,3.06066 z m 30.9969999,3.8675 v 15.5835 c 0,0.314 -0.254,0.567 -0.57,0.567 H 8.8194641 c -0.315,0.002 -0.57,-0.251 -0.57,-0.566 v -15.452 l 7.8444949,2.628449 5.656854,-2.65165 4.24264,3.005204 5.833631,-3.237437 3.712311,3.944543 z" style="fill:url(#linearGradient3448);stroke:#888a85" />\n <path d="m 30.383464,12.110514 c 4.108,0.159 7.304,-0.978 8.867,1.446 0.304,-3.9679998 -7.254,-8.8279998 -9.285,-8.4979998 0.813,0.498 0.418,7.0519998 0.418,7.0519998 z" style="fill:url(#linearGradient3445);stroke:#868a84" />\n <path enable-background="new" d="m 31.443464,11.086514 c 2.754,-0.019 4.106,-0.49 5.702,0.19 -1.299,-1.8809998 -4.358,-3.3439998 -5.728,-4.0279998 0.188,0.775 0.026,3.8379998 0.026,3.8379998 z" style="opacity:0.36930003;fill:none;stroke:url(#linearGradient3442)" />\n </g>\n</g>\n</svg>';function v(e,t,n){if(null==e)return this;let r;if(i.JSONExt.isObject(e)?(r=e,n=t):(r={})[e]=t,n||(n={}),!this._validate(r,n))return!1;const s=n.unset,o=n.silent,l=[],u=this._changing;this._changing=!0;try{u||(this._previousAttributes=Object.assign({},this.attributes),this.changed={});const e=this.attributes,i=this.changed,c=this._previousAttributes;for(const n in r)t=r[n],a(e[n],t)||l.push(n),a(c[n],t)?delete i[n]:i[n]=t,s?delete e[n]:e[n]=t;if(this.id=this.get(this.idAttribute),!o){l.length&&(this._pending=n);for(let t=0;t<l.length;t++)this.trigger("change:"+l[t],this,e[l[t]],n)}if(u)return this;if(!o)for(;this._pending;)n=this._pending,this._pending=!1,this.trigger("change",this,n)}finally{this._pending=!1,this._changing=!1}return this}var _=n(10482),b=n(34651),y=n.n(b);const w="undefined"!=typeof Element?Element.prototype:void 0;const x=w&&(w.matches||w.webkitMatchesSelector||w.mozMatchesSelector||w.msMatchesSelector||w.oMatchesSelector)||function(e){const t=(this.document||this.ownerDocument).querySelectorAll(e);let n=t.length;for(;--n>=0&&t.item(n)!==this;);return n>-1};class S extends _.View{_removeElement(){this.undelegateEvents(),this.el.parentNode&&this.el.parentNode.removeChild(this.el)}_setElement(e){this.el=e}_setAttributes(e){for(const t in e)t in this.el?this.el[t]=e[t]:this.el.setAttribute(t,e[t])}delegate(e,t,n){"string"!=typeof t&&(n=t,t=null),void 0===this._domEvents&&(this._domEvents=[]);const i=this.el,r=t?function(e){let r=e.target||e.srcElement;for(;r&&r!==i;r=r.parentNode)if(x.call(r,t))return e.delegateTarget=r,n.handleEvent?n.handleEvent(e):n(e)}:n;return this.el.addEventListener(e,r,!1),this._domEvents.push({eventName:e,handler:r,listener:n,selector:t}),r}undelegate(e,t,n){if("function"==typeof t&&(n=t,t=null),this.el&&this._domEvents){const i=this._domEvents.slice();let r=i.length;for(;r--;){const s=i[r];!(s.eventName!==e||n&&s.listener!==n||t&&s.selector!==t)&&(this.el.removeEventListener(s.eventName,s.handler,!1),this._domEvents.splice(r,1))}}return this}undelegateEvents(){if(this.el&&this._domEvents){const e=this._domEvents.length;for(let t=0;t<e;t++){const e=this._domEvents[t];this.el.removeEventListener(e.eventName,e.handler,!1)}this._domEvents.length=0}return this}}var E=n(33326),C=n(75735);const k="2.0.0",M="2.1.0",T="IPY_MODEL_";function O(e,t){if(Array.isArray(e)){const n=[];for(const i of e)n.push(O(i,t));return Promise.all(n)}if(e instanceof Object&&"string"!=typeof e){const n={};for(const[i,r]of Object.entries(e))n[i]=O(r,t);return c(n)}return"string"==typeof e&&e.slice(0,10)===T?t.get_model(e.slice(10,e.length)):Promise.resolve(e)}function I(e,t){if(Array.isArray(e)){const n=[];for(const i of e)n.push(I(i,t));return n}if(e instanceof A)return`${T}${e.model_id}`;if(e instanceof Object&&"string"!=typeof e){const n={};for(const[i,r]of Object.entries(e))n[i]=I(r,t);return n}return e}class A extends _.Model{defaults(){return{_model_module:"@jupyter-widgets/base",_model_name:"WidgetModel",_model_module_version:k,_view_module:"@jupyter-widgets/base",_view_name:null,_view_module_version:k,_view_count:null}}isNew(){return!1}initialize(e,t){this._expectedEchoMsgIds=new Map,this._attrsToUpdate=new Set,super.initialize(e,t),this.widget_manager=t.widget_manager,this.model_id=t.model_id;const n=t.comm;this.views=Object.create(null),this.state_change=Promise.resolve(),this._closed=!1,this._state_lock=null,this._msg_buffer=null,this._msg_buffer_callbacks=null,this._pending_msgs=0,this._buffered_state_diff={},n?(this.comm=n,n.on_close(this._handle_comm_closed.bind(this)),n.on_msg(this._handle_comm_msg.bind(this)),this.comm_live=!0):this.comm_live=!1}get comm_live(){return this._comm_live}set comm_live(e){this._comm_live=e,this.trigger("comm_live_update")}send(e,t,n){if(void 0!==this.comm){const i={method:"custom",content:e};this.comm.send(i,t,{},n)}}close(e=!1){if(this._closed)return Promise.resolve();if(this._closed=!0,this.comm&&!e&&this.comm.close(),this.stopListening(),this.trigger("destroy",this),this.comm&&delete this.comm,this.views){const e=Object.keys(this.views).map((e=>this.views[e].then((e=>e.remove()))));return delete this.views,Promise.all(e).then((()=>{}))}return Promise.resolve()}_handle_comm_closed(e){this.trigger("comm:close"),this.close(!0)}_handle_comm_msg(e){const t=e.content.data,n=t.method;switch(n){case"update":case"echo_update":return this.state_change=this.state_change.then((()=>{var i,r,s;const o=t.state,a=null!==(i=t.buffer_paths)&&void 0!==i?i:[],l=null!==(s=null===(r=e.buffers)||void 0===r?void 0:r.slice(0,a.length))&&void 0!==s?s:[];if(h(o,a,l),e.parent_header&&"echo_update"===n){const t=e.parent_header.msg_id;Object.keys(o).filter((e=>this._expectedEchoMsgIds.has(e))).forEach((e=>{this._expectedEchoMsgIds.get(e)!==t?delete o[e]:(this._expectedEchoMsgIds.delete(e),null!==this._msg_buffer&&Object.prototype.hasOwnProperty.call(this._msg_buffer,e)&&delete o[e])}))}return this.constructor._deserialize_state(o,this.widget_manager)})).then((e=>{this.set_state(e)})).catch(d(`Could not process update msg for model id: ${this.model_id}`,!0)),this.state_change;case"custom":return this.trigger("msg:custom",t.content,e.buffers),Promise.resolve()}return Promise.resolve()}set_state(e){this._state_lock=e;try{this.set(e)}catch(e){console.error(`Error setting state: ${e instanceof Error?e.message:e}`)}finally{this._state_lock=null}}get_state(e){const t=this.attributes;if(e){const e=this.defaults,n="function"==typeof e?e.call(this):e,i={};return Object.keys(t).forEach((e=>{a(t[e],n[e])||(i[e]=t[e])})),i}return Object.assign({},t)}_handle_status(e){if(void 0!==this.comm&&"idle"===e.content.execution_state&&(this._pending_msgs--,this._pending_msgs<0&&(console.error(`Jupyter Widgets message throttle: Pending messages < 0 (=${this._pending_msgs}), which is unexpected. Resetting to 0 to continue.`),this._pending_msgs=0),null!==this._msg_buffer&&this._pending_msgs<1)){const e=this.send_sync_message(this._msg_buffer,this._msg_buffer_callbacks);this.rememberLastUpdateFor(e),this._msg_buffer=null,this._msg_buffer_callbacks=null}}callbacks(e){return this.widget_manager.callbacks(e)}set(e,t,n){const i=v.call(this,e,t,n);if(void 0!==this._buffered_state_diff){const e=this.changedAttributes()||{};if(this._state_lock)for(const t of Object.keys(this._state_lock))e[t]===this._state_lock[t]&&delete e[t];if(this._buffered_state_diff_synced)for(const t of Object.keys(this._buffered_state_diff_synced))e[t]===this._buffered_state_diff_synced[t]&&delete e[t];this._buffered_state_diff=l(this._buffered_state_diff,e)}return!1===this._changing&&(this._buffered_state_diff_synced={}),i}sync(e,t,n={}){if(void 0===this.comm)throw"Syncing error: no comm channel defined";const i="patch"===e?n.attrs:t.get_state(n.drop_defaults);if(this._state_lock)for(const e of Object.keys(this._state_lock))i[e]===this._state_lock[e]&&delete i[e];Object.keys(i).forEach((e=>{this._attrsToUpdate.add(e)}));const r=this.serialize(i);if(Object.keys(r).length>0){const t=n.callbacks||this.callbacks();if(this._pending_msgs>=1){switch(e){case"patch":this._msg_buffer=l(this._msg_buffer||{},r);break;case"update":case"create":this._msg_buffer=r;break;default:throw"unrecognized syncing method"}this._msg_buffer_callbacks=t}else{const e=this.send_sync_message(i,t);this.rememberLastUpdateFor(e)}}}rememberLastUpdateFor(e){this._attrsToUpdate.forEach((t=>{this._expectedEchoMsgIds.set(t,e)})),this._attrsToUpdate=new Set}serialize(e){const t=this.constructor.serializers||i.JSONExt.emptyObject;for(const n of Object.keys(e))try{t[n]&&t[n].serialize?e[n]=t[n].serialize(e[n],this):e[n]=JSON.parse(JSON.stringify(e[n])),e[n]&&e[n].toJSON&&(e[n]=e[n].toJSON())}catch(e){throw console.error("Error serializing widget state attribute: ",n),e}return e}send_sync_message(e,t={}){if(!this.comm)return"";try{const n=(t={shell:Object.assign({},t.shell),iopub:Object.assign({},t.iopub),input:t.input}).iopub.status;t.iopub.status=e=>{this._handle_status(e),n&&n(e)};const i=m(e),r=this.comm.send({method:"update",state:i.state,buffer_paths:i.buffer_paths},t,{},i.buffers);return this._pending_msgs++,r}catch(e){console.error("Could not send widget sync message",e)}return""}save_changes(e){if(this.comm_live){const t={patch:!0};e&&(t.callbacks=e),this.save(this._buffered_state_diff,t),this._changing&&l(this._buffered_state_diff_synced,this._buffered_state_diff),this._buffered_state_diff={}}}on_some_change(e,t,n){this.on("change",((...i)=>{e.some(this.hasChanged,this)&&t.apply(n,i)}),this)}toJSON(e){return`IPY_MODEL_${this.model_id}`}static _deserialize_state(e,t){const n=this.serializers;let i;if(n){i={};for(const r in e)n[r]&&n[r].deserialize?i[r]=n[r].deserialize(e[r],t):i[r]=e[r]}else i=e;return c(i)}}class P extends A{defaults(){return l(super.defaults(),{_dom_classes:[],tabbable:null,tooltip:null})}}P.serializers=Object.assign(Object.assign({},A.serializers),{layout:{deserialize:O},style:{deserialize:O}});class N extends S{constructor(e){super(e)}initialize(e){this.listenTo(this.model,"change",((e,t)=>{const n=Object.keys(this.model.changedAttributes()||{});"_view_count"===n[0]&&1===n.length||this.update(t)})),this.options=e.options,this.once("remove",(()=>{"number"==typeof this.model.get("_view_count")&&(this.model.set("_view_count",this.model.get("_view_count")-1),this.model.save_changes())})),this.once("displayed",(()=>{"number"==typeof this.model.get("_view_count")&&(this.model.set("_view_count",this.model.get("_view_count")+1),this.model.save_changes())})),this.displayed=new Promise(((e,t)=>{this.once("displayed",e),this.model.on("msg:custom",this.handle_message.bind(this))}))}handle_message(e){"focus"===e.do?this.el.focus():"blur"===e.do&&this.el.blur()}update(e){}render(){}create_child_view(e,t={}){return t=Object.assign({parent:this},t),this.model.widget_manager.create_view(e,t).catch(d("Could not create child view",!0))}callbacks(){return this.model.callbacks(this)}send(e,t){this.model.send(e,this.callbacks(),t)}touch(){this.model.save_changes(this.callbacks())}remove(){return super.remove(),this.trigger("remove"),this}}class L extends C.Widget{constructor(e){const t=e.view;delete e.view,super(e),this._view=t}dispose(){this.isDisposed||(super.dispose(),this._view.remove(),this._view=null)}processMessage(e){super.processMessage(e),this._view.processLuminoMessage(e)}}const D=L;class R extends C.Panel{constructor(e){const t=e.view;delete e.view,super(e),this._view=t}processMessage(e){super.processMessage(e),this._view.processLuminoMessage(e)}dispose(){var e;this.isDisposed||(super.dispose(),null===(e=this._view)||void 0===e||e.remove(),this._view=null)}}const j=R;class B extends N{initialize(e){super.initialize(e),this.listenTo(this.model,"change:_dom_classes",((e,t)=>{const n=e.previous("_dom_classes");this.update_classes(n,t)})),this.layoutPromise=Promise.resolve(),this.listenTo(this.model,"change:layout",((e,t)=>{this.setLayout(t,e.previous("layout"))})),this.stylePromise=Promise.resolve(),this.listenTo(this.model,"change:style",((e,t)=>{this.setStyle(t,e.previous("style"))})),this.displayed.then((()=>{this.update_classes([],this.model.get("_dom_classes")),this.setLayout(this.model.get("layout")),this.setStyle(this.model.get("style"))})),this._comm_live_update(),this.listenTo(this.model,"comm_live_update",(()=>{this._comm_live_update()})),this.listenTo(this.model,"change:tooltip",this.updateTooltip),this.updateTooltip()}setLayout(e,t){e&&(this.layoutPromise=this.layoutPromise.then((t=>(t&&(t.unlayout(),this.stopListening(t.model),t.remove()),this.create_child_view(e).then((e=>this.displayed.then((()=>(e.trigger("displayed"),this.listenTo(e.model,"change",(()=>{E.MessageLoop.postMessage(this.luminoWidget,C.Widget.ResizeMessage.UnknownSize)})),E.MessageLoop.postMessage(this.luminoWidget,C.Widget.ResizeMessage.UnknownSize),this.trigger("layout-changed"),e))))).catch(d("Could not add LayoutView to DOMWidgetView",!0))))))}setStyle(e,t){e&&(this.stylePromise=this.stylePromise.then((t=>(t&&(t.unstyle(),this.stopListening(t.model),t.remove()),this.create_child_view(e).then((e=>this.displayed.then((()=>(e.trigger("displayed"),this.trigger("style-changed"),e))))).catch(d("Could not add styleView to DOMWidgetView",!0))))))}updateTooltip(){const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.el.setAttribute("title",e):this.el.removeAttribute("title")}update_classes(e,t,n){void 0===n&&(n=this.el),o(e,t).map((function(e){n.classList?n.classList.remove(e):n.setAttribute("class",n.getAttribute("class").replace(e,""))})),o(t,e).map((function(e){n.classList?n.classList.add(e):n.setAttribute("class",n.getAttribute("class").concat(" ",e))}))}update_mapped_classes(e,t,n){let i=this.model.previous(t);const r=e[i]?e[i]:[];i=this.model.get(t);const s=e[i]?e[i]:[];this.update_classes(r,s,n||this.el)}set_mapped_classes(e,t,n){const i=this.model.get(t),r=e[i]?e[i]:[];this.update_classes([],r,n||this.el)}_setElement(e){this.luminoWidget&&this.luminoWidget.dispose(),this.$el=e instanceof y()?e:y()(e),this.el=this.$el[0],this.luminoWidget=new L({node:e,view:this})}remove(){return this.luminoWidget&&this.luminoWidget.dispose(),super.remove()}processLuminoMessage(e){switch(e.type){case"after-attach":this.trigger("displayed");break;case"show":this.trigger("shown")}}_comm_live_update(){this.model.comm_live?this.luminoWidget.removeClass("jupyter-widgets-disconnected"):this.luminoWidget.addClass("jupyter-widgets-disconnected")}updateTabindex(){const e=this.model.get("tabbable");!0===e?this.el.setAttribute("tabIndex","0"):!1===e?this.el.setAttribute("tabIndex","-1"):null===e&&this.el.removeAttribute("tabIndex")}get pWidget(){return this.luminoWidget}set pWidget(e){this.luminoWidget=e}}const z={align_content:null,align_items:null,align_self:null,border_top:null,border_right:null,border_bottom:null,border_left:null,bottom:null,display:null,flex:null,flex_flow:null,height:null,justify_content:null,justify_items:null,left:null,margin:null,max_height:null,max_width:null,min_height:null,min_width:null,overflow:null,order:null,padding:null,right:null,top:null,visibility:null,width:null,object_fit:null,object_position:null,grid_auto_columns:null,grid_auto_flow:null,grid_auto_rows:null,grid_gap:null,grid_template_rows:null,grid_template_columns:null,grid_template_areas:null,grid_row:null,grid_column:null,grid_area:null};class F extends A{defaults(){return l(super.defaults(),{_model_name:"LayoutModel",_view_name:"LayoutView"},z)}}class $ extends N{initialize(e){this._traitNames=[],super.initialize(e);for(const e of Object.keys(z))this.registerTrait(e)}registerTrait(e){this._traitNames.push(e),this.listenTo(this.model,"change:"+e,((t,n)=>{this.handleChange(e,n)})),this.handleChange(e,this.model.get(e))}css_name(e){return e.replace(/_/g,"-")}handleChange(e,t){const n=this.options.parent;n?null===t?n.el.style.removeProperty(this.css_name(e)):n.el.style.setProperty(this.css_name(e),t):console.warn("Style not applied because a parent view does not exist")}unlayout(){const e=this.options.parent;this._traitNames.forEach((t=>{e?e.el.style.removeProperty(this.css_name(t)):console.warn("Style not removed because a parent view does not exist")}),this)}}class U extends A{defaults(){const e=this.constructor;return l(super.defaults(),{_model_name:"StyleModel",_view_name:"StyleView"},Object.keys(e.styleProperties).reduce(((t,n)=>(t[n]=e.styleProperties[n].default,t)),{}))}}U.styleProperties={};class q extends N{initialize(e){this._traitNames=[],super.initialize(e);const t=this.model.constructor;for(const e of Object.keys(t.styleProperties))this.registerTrait(e);this.style()}registerTrait(e){this._traitNames.push(e),this.listenTo(this.model,"change:"+e,((t,n)=>{this.handleChange(e,n)}))}handleChange(e,t){const n=this.options.parent;if(n){const i=this.model.constructor.styleProperties,r=i[e].attribute,s=i[e].selector,o=s?n.el.querySelectorAll(s):[n.el];if(null===t)for(let e=0;e!==o.length;++e)o[e].style.removeProperty(r);else for(let e=0;e!==o.length;++e)o[e].style.setProperty(r,t)}else console.warn("Style not applied because a parent view does not exist")}style(){for(const e of this._traitNames)this.handleChange(e,this.model.get(e))}unstyle(){const e=this.options.parent,t=this.model.constructor.styleProperties;this._traitNames.forEach((n=>{if(e){const i=t[n].attribute,r=t[n].selector,s=r?e.el.querySelectorAll(r):[e.el];for(let e=0;e!==s.length;++e)s[e].style.removeProperty(i)}else console.warn("Style not removed because a parent view does not exist")}),this)}}var V;!function(e){let t;!function(e){e.CommManager=class{constructor(e){this.targets=Object.create(null),this.comms=Object.create(null),this.init_kernel(e)}init_kernel(e){this.kernel=e,this.jsServicesKernel=e}async new_comm(e,n,i,r,s,o){const a=this.jsServicesKernel.createComm(e,s),l=new t(a);return this.register_comm(l),l.open(n,i,r,o),l}register_target(e,n){const i=this.jsServicesKernel.registerCommTarget(e,((e,i)=>{const r=new t(e);this.register_comm(r);try{return n(r,i)}catch(e){r.close(),console.error(e),console.error(new Error("Exception opening new comm"))}}));this.targets[e]=i}unregister_target(e,t){this.targets[e].dispose(),delete this.targets[e]}register_comm(e){return this.comms[e.comm_id]=Promise.resolve(e),e.kernel=this.kernel,e.comm_id}};class t{constructor(e){this.jsServicesComm=e}get comm_id(){return this.jsServicesComm.commId}get target_name(){return this.jsServicesComm.targetName}open(e,t,n,i){const r=this.jsServicesComm.open(e,n,i);return this._hookupCallbacks(r,t),r.msg.header.msg_id}send(e,t,n,i){const r=this.jsServicesComm.send(e,n,i);return this._hookupCallbacks(r,t),r.msg.header.msg_id}close(e,t,n,i){const r=this.jsServicesComm.close(e,n,i);return this._hookupCallbacks(r,t),r.msg.header.msg_id}on_msg(e){this.jsServicesComm.onMsg=e.bind(this)}on_close(e){this.jsServicesComm.onClose=e.bind(this)}_hookupCallbacks(e,t){t&&(e.onReply=function(e){t.shell&&t.shell.reply&&t.shell.reply(e)},e.onStdin=function(e){t.input&&t.input(e)},e.onIOPub=function(e){if(t.iopub)if(t.iopub.status&&"status"===e.header.msg_type)t.iopub.status(e);else if(t.iopub.clear_output&&"clear_output"===e.header.msg_type)t.iopub.clear_output(e);else if(t.iopub.output)switch(e.header.msg_type){case"display_data":case"execute_result":case"stream":case"error":t.iopub.output(e)}})}}e.Comm=t}(t=e.services||(e.services={}))}(V||(V={}));class H{constructor(e,t,n){this.initialize(e,t,n)}initialize(e,t,n){this._handler_context=n||this,this._models=[],this.views=[],this._create_view=e,this._remove_view=t||function(e){e.remove()}}update(e,t,n,i){const r=n||this._remove_view,s=t||this._create_view;i=i||this._handler_context;let o=0;for(;o<e.length&&!(o>=this._models.length||e[o]!==this._models[o]);o++);const a=o,l=this.views.splice(a,this.views.length-a);for(let e=0;e<l.length;e++)l[e].then((function(e){r.call(i,e)}));for(;o<e.length;o++)this.views.push(Promise.resolve(s.call(i,e[o],o)));return this._models=e.slice(),Promise.all(this.views)}remove(){return Promise.all(this.views).then((e=>{e.forEach((e=>this._remove_view.call(this._handler_context,e))),this.views=[],this._models=[]}))}dispose(){this.views=null,this._models=null}}const W=new i.Token("jupyter.extensions.jupyterWidgetRegistry");function K(e,t){return class extends P{constructor(n,i){super(n=Object.assign(Object.assign({},n),{_view_name:"ErrorWidgetView",_view_module:"@jupyter-widgets/base",_model_module_version:k,_view_module_version:k,msg:t,error:e}),i),this.comm_live=!0}}}class G extends B{generateErrorMessage(){return{msg:this.model.get("msg"),stack:String(this.model.get("error").stack)}}render(){const{msg:e,stack:t}=this.generateErrorMessage();this.el.classList.add("jupyter-widgets");const n=document.createElement("div");n.classList.add("jupyter-widgets-error-widget","icon-error"),n.innerHTML=g;const i=document.createElement("pre");let r,s;i.style.textAlign="center",i.innerText="Click to show javascript error.",n.append(i),this.el.appendChild(n),this.el.onclick=()=>{n.classList.contains("icon-error")&&(s=s||n.clientHeight,r=r||n.clientWidth,n.classList.remove("icon-error"),n.innerHTML=`\n <pre>[Open Browser Console for more detailed log - Double click to close this message]\n${e}\n${t}</pre>\n `,n.style.height=`${s}px`,n.style.width=`${r}px`,n.classList.add("text-error"))},this.el.ondblclick=()=>{n.classList.contains("text-error")&&(n.classList.remove("text-error"),n.innerHTML=g,n.append(i),n.classList.add("icon-error"))}}}function J(e,t){return class extends G{generateErrorMessage(){return{msg:t,stack:String(e instanceof Error?e.stack:e)}}}}},75803:(e,t,n)=>{"use strict";n.r(t),n.d(t,{AccordionModel:()=>Vt,AccordionView:()=>Wt,AudioModel:()=>K,AudioView:()=>G,BaseIntSliderView:()=>je,BoolModel:()=>y,BoundedFloatModel:()=>Je,BoundedFloatTextModel:()=>it,BoundedIntModel:()=>Ne,BoundedIntTextModel:()=>$e,BoxModel:()=>D,BoxView:()=>B,ButtonModel:()=>T,ButtonStyleModel:()=>M,ButtonView:()=>O,CheckboxModel:()=>w,CheckboxStyleModel:()=>_,CheckboxView:()=>x,ColorPickerModel:()=>X,ColorPickerView:()=>Y,ColorsInputModel:()=>Bn,ColorsInputView:()=>zn,ComboboxModel:()=>di,ComboboxView:()=>hi,ControllerAxisModel:()=>lt,ControllerAxisView:()=>ut,ControllerButtonModel:()=>ot,ControllerButtonView:()=>at,ControllerModel:()=>ct,ControllerView:()=>dt,DatePickerModel:()=>ee,DatePickerView:()=>te,DatetimeModel:()=>de,DatetimeView:()=>he,DescriptionModel:()=>u,DescriptionStyleModel:()=>l,DescriptionView:()=>c,DirectionalLinkModel:()=>g,DropdownModel:()=>ft,DropdownView:()=>mt,FileUploadModel:()=>pi,FileUploadView:()=>fi,FloatLogSliderModel:()=>Ye,FloatLogSliderView:()=>et,FloatModel:()=>Ge,FloatProgressModel:()=>st,FloatRangeSliderModel:()=>Qe,FloatRangeSliderView:()=>tt,FloatSliderModel:()=>Xe,FloatSliderView:()=>Ze,FloatTextModel:()=>nt,FloatTextView:()=>rt,FloatsInputModel:()=>Un,FloatsInputView:()=>qn,GridBoxModel:()=>U,GridBoxView:()=>$,HBoxModel:()=>R,HBoxView:()=>z,HTMLMathModel:()=>ti,HTMLMathStyleModel:()=>Gn,HTMLMathView:()=>ni,HTMLModel:()=>Zn,HTMLStyleModel:()=>Kn,HTMLView:()=>ei,ImageModel:()=>q,ImageView:()=>V,IntModel:()=>Pe,IntProgressModel:()=>Ve,IntRangeSliderModel:()=>Re,IntRangeSliderView:()=>Be,IntSliderModel:()=>De,IntSliderView:()=>ze,IntTextModel:()=>Fe,IntTextView:()=>Ue,IntsInputModel:()=>Vn,IntsInputView:()=>Hn,JUPYTER_CONTROLS_VERSION:()=>a.A,JupyterLuminoAccordionWidget:()=>Ht,JupyterLuminoTabPanelWidget:()=>Gt,LabelModel:()=>ii,LabelStyleModel:()=>Jn,LabelView:()=>ri,LabeledDOMWidgetModel:()=>d,LabeledDOMWidgetView:()=>h,LinkModel:()=>v,MultipleSelectionModel:()=>Ct,NaiveDatetimeModel:()=>ve,PasswordModel:()=>ui,PasswordView:()=>ci,PlayModel:()=>We,PlayView:()=>Ke,ProgressStyleModel:()=>qe,ProgressView:()=>He,RadioButtonsModel:()=>_t,RadioButtonsView:()=>bt,SelectModel:()=>gt,SelectMultipleModel:()=>kt,SelectMultipleView:()=>Mt,SelectView:()=>vt,SelectionContainerModel:()=>qt,SelectionModel:()=>ht,SelectionRangeSliderModel:()=>Tt,SelectionRangeSliderView:()=>Ot,SelectionSliderModel:()=>St,SelectionSliderView:()=>Et,SelectionView:()=>pt,SliderStyleModel:()=>Le,StackModel:()=>Xt,StackView:()=>Yt,StringModel:()=>Yn,StringView:()=>Qn,TabModel:()=>Kt,TabView:()=>Jt,TagsInputModel:()=>Rn,TagsInputView:()=>jn,TextModel:()=>ai,TextStyleModel:()=>Xn,TextView:()=>li,TextareaModel:()=>si,TextareaView:()=>oi,TimeModel:()=>oe,TimeView:()=>ae,ToggleButtonModel:()=>S,ToggleButtonStyleModel:()=>b,ToggleButtonView:()=>E,ToggleButtonsModel:()=>wt,ToggleButtonsStyleModel:()=>yt,ToggleButtonsView:()=>xt,VBoxModel:()=>j,VBoxView:()=>F,ValidModel:()=>C,ValidView:()=>k,VideoModel:()=>H,VideoView:()=>W,datetime_serializers:()=>ce,deserialize_date:()=>Z,deserialize_datetime:()=>ue,deserialize_naive:()=>me,deserialize_time:()=>re,escape_html:()=>s,naive_serializers:()=>ge,reject:()=>o,resolvePromisesDict:()=>i.resolvePromisesDict,serialize_date:()=>Q,serialize_datetime:()=>le,serialize_naive:()=>fe,serialize_time:()=>ie,time_serializers:()=>se,typeset:()=>r,uuid:()=>i.uuid,version:()=>mi});var i=n(17998);function r(e,t){void 0!==t&&(e.textContent=t),void 0!==window.MathJax&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,e])}function s(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function o(e,t){return function(n){throw t&&console.error(new Error(e)),n}}var a=n(19874);class l extends i.StyleModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"DescriptionStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}l.styleProperties={description_width:{selector:".widget-label",attribute:"width",default:null}};class u extends i.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"DescriptionModel",_view_name:"DescriptionView",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A,description:"",description_allow_html:!1})}}class c extends i.DOMWidgetView{render(){this.label=document.createElement("label"),this.el.appendChild(this.label),this.label.className="widget-label",this.label.style.display="none",this.listenTo(this.model,"change:description",this.updateDescription),this.listenTo(this.model,"change:description_allow_html",this.updateDescription),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.updateDescription(),this.updateTabindex(),this.updateTooltip()}typeset(e,t){this.displayed.then((()=>{var n,i,s;if(null===(i=null===(n=window.MathJax)||void 0===n?void 0:n.Hub)||void 0===i?void 0:i.Queue)return r(e,t);const o=null===(s=this.model.widget_manager._rendermime)||void 0===s?void 0:s.latexTypesetter;o&&(void 0!==t&&(e.textContent=t),o.typeset(e))}))}updateDescription(){const e=this.model.get("description");0===e.length?this.label.style.display="none":(this.model.get("description_allow_html")?this.label.innerHTML=this.model.widget_manager.inline_sanitize(e):this.label.textContent=e,this.typeset(this.label),this.label.style.display="")}updateTooltip(){this.label&&(this.label.title=this.model.get("tooltip"))}}class d extends u{}class h extends c{}class p extends i.WidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CoreWidgetModel",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A})}}class f extends i.DOMWidgetModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CoreDOMWidgetModel",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A})}}class m extends u{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CoreDescriptionModel",_view_module:"@jupyter-widgets/controls",_model_module:"@jupyter-widgets/controls",_view_module_version:a.A,_model_module_version:a.A})}}class g extends p{defaults(){return Object.assign(Object.assign({},super.defaults()),{target:void 0,source:void 0,_model_name:"DirectionalLinkModel"})}initialize(e,t){super.initialize(e,t),this.on("change",this.updateBindings,this),this.updateBindings()}updateValue(e,t,n,i){if(!this._updating){this._updating=!0;try{n&&(n.set(i,e.get(t)),n.save_changes())}finally{this._updating=!1}}}updateBindings(){this.cleanup(),[this.sourceModel,this.sourceAttr]=this.get("source")||[null,null],[this.targetModel,this.targetAttr]=this.get("target")||[null,null],this.sourceModel&&(this.listenTo(this.sourceModel,"change:"+this.sourceAttr,(()=>{this.updateValue(this.sourceModel,this.sourceAttr,this.targetModel,this.targetAttr)})),this.updateValue(this.sourceModel,this.sourceAttr,this.targetModel,this.targetAttr),this.listenToOnce(this.sourceModel,"destroy",this.cleanup)),this.targetModel&&this.listenToOnce(this.targetModel,"destroy",this.cleanup)}cleanup(){this.sourceModel&&(this.stopListening(this.sourceModel,"change:"+this.sourceAttr,void 0),this.stopListening(this.sourceModel,"destroy",void 0)),this.targetModel&&this.stopListening(this.targetModel,"destroy",void 0)}}g.serializers=Object.assign(Object.assign({},p.serializers),{target:{deserialize:i.unpack_models},source:{deserialize:i.unpack_models}});class v extends g{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"LinkModel"})}updateBindings(){super.updateBindings(),this.targetModel&&this.listenTo(this.targetModel,"change:"+this.targetAttr,(()=>{this.updateValue(this.targetModel,this.targetAttr,this.sourceModel,this.sourceAttr)}))}cleanup(){super.cleanup(),this.targetModel&&this.stopListening(this.targetModel,"change:"+this.targetAttr,void 0)}}class _ extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"CheckboxStyleModel"})}}_.styleProperties=Object.assign(Object.assign({},l.styleProperties),{background:{selector:"",attribute:"background",default:null}});class b extends l{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ToggleButtonStyleModel"})}}b.styleProperties=Object.assign(Object.assign({},l.styleProperties),{font_family:{selector:"",attribute:"font-family",default:""},font_size:{selector:"",attribute:"font-size",default:""},font_style:{selector:"",attribute:"font-style",default:""},font_variant:{selector:"",attribute:"font-variant",default:""},font_weight:{selector:"",attribute:"font-weight",default:""},text_color:{selector:"",attribute:"color",default:""},text_decoration:{selector:"",attribute:"text-decoration",default:""}});class y extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:!1,disabled:!1,_model_name:"BoolModel"})}}class w extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{indent:!0,style:null,_view_name:"CheckboxView",_model_name:"CheckboxModel"})}}class x extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-checkbox"),this.label.innerHTML="&#8203;",this.checkboxLabel=document.createElement("label"),this.checkboxLabel.classList.add("widget-label-basic"),this.el.appendChild(this.checkboxLabel),this.checkbox=document.createElement("input"),this.checkbox.setAttribute("type","checkbox"),this.checkboxLabel.appendChild(this.checkbox),this.descriptionSpan=document.createElement("span"),this.checkboxLabel.appendChild(this.descriptionSpan),this.listenTo(this.model,"change:indent",this.updateIndent),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.update(),this.updateDescription(),this.updateIndent(),this.updateTabindex(),this.updateTooltip()}updateDescription(){if(null==this.checkboxLabel)return;const e=this.model.get("description");this.model.get("description_allow_html")?this.descriptionSpan.innerHTML=this.model.widget_manager.inline_sanitize(e):this.descriptionSpan.textContent=e,this.typeset(this.descriptionSpan),this.descriptionSpan.title=e,this.checkbox.title=e}updateIndent(){const e=this.model.get("indent");this.label.style.display=e?"":"none"}updateTabindex(){if(!this.checkbox)return;const e=this.model.get("tabbable");!0===e?this.checkbox.setAttribute("tabIndex","0"):!1===e?this.checkbox.setAttribute("tabIndex","-1"):null===e&&this.checkbox.removeAttribute("tabIndex")}updateTooltip(){if(!this.checkbox)return;const e=this.model.get("tooltip");e?0===this.model.get("description").length&&this.checkbox.setAttribute("title",e):this.checkbox.removeAttribute("title")}events(){return{'click input[type="checkbox"]':"_handle_click"}}_handle_click(){const e=this.model.get("value");this.model.set("value",!e,{updated_view:this}),this.touch()}update(e){return this.checkbox.checked=this.model.get("value"),void 0!==e&&e.updated_view==this||(this.checkbox.disabled=this.model.get("disabled")),super.update()}handle_message(e){"focus"==e.do?this.checkbox.focus():"blur"==e.do&&this.checkbox.blur()}}class S extends y{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"ToggleButtonView",_model_name:"ToggleButtonModel",tooltip:"",icon:"",button_style:"",style:null})}}class E extends i.DOMWidgetView{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("jupyter-button"),this.el.classList.add("widget-toggle-button"),this.listenTo(this.model,"change:button_style",this.update_button_style),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.set_button_style(),this.update()}update_button_style(){this.update_mapped_classes(E.class_map,"button_style")}set_button_style(){this.set_mapped_classes(E.class_map,"button_style")}update(e){if(this.model.get("value")?this.el.classList.add("mod-active"):this.el.classList.remove("mod-active"),void 0===e||e.updated_view!==this){this.el.disabled=this.model.get("disabled"),this.el.setAttribute("tabbable",this.model.get("tabbable")),this.el.setAttribute("title",this.model.get("tooltip"));const e=this.model.get("description"),t=this.model.get("icon");if(0===e.trim().length&&0===t.trim().length)this.el.innerHTML="&nbsp;";else{if(this.el.textContent="",t.trim().length){const e=document.createElement("i");this.el.appendChild(e),e.classList.add("fa"),e.classList.add("fa-"+t)}this.el.appendChild(document.createTextNode(e))}}return this.updateTabindex(),super.update()}events(){return{click:"_handle_click"}}_handle_click(e){e.preventDefault();const t=this.model.get("value");this.model.set("value",!t,{updated_view:this}),this.touch()}preinitialize(){this.tagName="button"}}E.class_map={primary:["mod-primary"],success:["mod-success"],info:["mod-info"],warning:["mod-warning"],danger:["mod-danger"]};class C extends y{defaults(){return Object.assign(Object.assign({},super.defaults()),{readout:"Invalid",_view_name:"ValidView",_model_name:"ValidModel"})}}class k extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-valid"),this.el.classList.add("widget-inline-hbox"),this.icon=document.createElement("i"),this.icon.classList.add("fa","fa-fw"),this.el.appendChild(this.icon),this.readout=document.createElement("span"),this.readout.classList.add("widget-valid-readout"),this.readout.classList.add("widget-readout"),this.el.appendChild(this.readout),this.update()}update(){this.el.classList.remove("mod-valid"),this.el.classList.remove("mod-invalid"),this.icon.classList.remove("fa-check"),this.icon.classList.remove("fa-times"),this.readout.textContent=this.model.get("readout"),this.model.get("value")?(this.el.classList.add("mod-valid"),this.icon.classList.add("fa-check")):(this.el.classList.add("mod-invalid"),this.icon.classList.add("fa-times"))}}class M extends i.StyleModel{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ButtonStyleModel",_model_module:"@jupyter-widgets/controls",_model_module_version:a.A})}}M.styleProperties={button_color:{selector:"",attribute:"background-color",default:null},font_family:{selector:"",attribute:"font-family",default:""},font_size:{selector:"",attribute:"font-size",default:""},font_style:{selector:"",attribute:"font-style",default:""},font_variant:{selector:"",attribute:"font-variant",default:""},font_weight:{selector:"",attribute:"font-weight",default:""},text_color:{selector:"",attribute:"color",default:""},text_decoration:{selector:"",attribute:"text-decoration",default:""}};class T extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{description:"",tooltip:"",disabled:!1,icon:"",button_style:"",_view_name:"ButtonView",_model_name:"ButtonModel",style:null})}}class O extends i.DOMWidgetView{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("jupyter-button"),this.el.classList.add("widget-button"),this.listenTo(this.model,"change:button_style",this.update_button_style),this.listenTo(this.model,"change:tabbable",this.updateTabindex),this.set_button_style(),this.update()}update(){this.el.disabled=this.model.get("disabled"),this.updateTabindex();const e=this.model.get("tooltip"),t=this.model.get("description"),n=this.model.get("icon");if(this.el.setAttribute("title",null!=e?e:t),t.length||n.length){if(this.el.textContent="",n.length){const e=document.createElement("i");e.classList.add("fa"),e.classList.add(...n.split(/[\s]+/).filter(Boolean).map((e=>`fa-${e}`))),0===t.length&&e.classList.add("center"),this.el.appendChild(e)}this.el.appendChild(document.createTextNode(t))}return super.update()}update_button_style(){this.update_mapped_classes(O.class_map,"button_style")}set_button_style(){this.set_mapped_classes(O.class_map,"button_style")}events(){return{click:"_handle_click"}}_handle_click(e){e.preventDefault(),this.send({event:"click"})}preinitialize(){this.tagName="button"}}O.class_map={primary:["mod-primary"],success:["mod-success"],info:["mod-info"],warning:["mod-warning"],danger:["mod-danger"]};var I=n(38135),A=n(33326),P=n(75735),N=n(34651),L=n.n(N);class D extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"BoxView",_model_name:"BoxModel",children:[],box_style:""})}}D.serializers=Object.assign(Object.assign({},f.serializers),{children:{deserialize:i.unpack_models}});class R extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"HBoxView",_model_name:"HBoxModel"})}}class j extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"VBoxView",_model_name:"VBoxModel"})}}class B extends i.DOMWidgetView{_createElement(e){return this.luminoWidget=new i.JupyterLuminoPanelWidget({view:this}),this.luminoWidget.node}_setElement(e){if(this.el||e!==this.luminoWidget.node)throw new Error("Cannot reset the DOM element.");this.el=this.luminoWidget.node,this.$el=L()(this.luminoWidget.node)}initialize(e){super.initialize(e),this.children_views=new i.ViewList(this.add_child_model,null,this),this.listenTo(this.model,"change:children",this.update_children),this.listenTo(this.model,"change:box_style",this.update_box_style),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-container"),this.luminoWidget.addClass("widget-box")}render(){super.render(),this.update_children(),this.set_box_style()}update_children(){var e;null===(e=this.children_views)||void 0===e||e.update(this.model.get("children")).then((e=>{e.forEach((e=>{A.MessageLoop.postMessage(e.luminoWidget,P.Widget.ResizeMessage.UnknownSize)}))}))}update_box_style(){this.update_mapped_classes(B.class_map,"box_style")}set_box_style(){this.set_mapped_classes(B.class_map,"box_style")}add_child_model(e){const t=new P.Widget;return this.luminoWidget.addWidget(t),this.create_child_view(e).then((e=>{const n=I.Rw.firstIndexOf(this.luminoWidget.widgets,t);return this.luminoWidget.insertWidget(n,e.luminoWidget),t.dispose(),e})).catch((0,i.reject)("Could not add child view to box",!0))}remove(){this.children_views=null,super.remove()}}B.class_map={success:["alert","alert-success"],info:["alert","alert-info"],warning:["alert","alert-warning"],danger:["alert","alert-danger"]};class z extends B{initialize(e){super.initialize(e),this.luminoWidget.addClass("widget-hbox")}}class F extends B{initialize(e){super.initialize(e),this.luminoWidget.addClass("widget-vbox")}}class $ extends B{initialize(e){super.initialize(e),this.luminoWidget.addClass("widget-gridbox"),this.luminoWidget.removeClass("widget-box")}}class U extends D{defaults(){return Object.assign(Object.assign({},super.defaults()),{_view_name:"GridBoxView",_model_name:"GridBoxModel"})}}class q extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"ImageModel",_view_name:"ImageView",format:"png",width:"",height:"",value:new DataView(new ArrayBuffer(0))})}}q.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>new DataView(e.buffer.slice(0))}});class V extends i.DOMWidgetView{render(){super.render(),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-image"),this.update()}update(){let e;const t=this.model.get("format"),n=this.model.get("value");if("url"!==t){const t=new Blob([n],{type:`image/${this.model.get("format")}`});e=URL.createObjectURL(t)}else e=new TextDecoder("utf-8").decode(n.buffer);const i=this.el.src;this.el.src=e,i&&URL.revokeObjectURL(i);const r=this.model.get("width");void 0!==r&&r.length>0?this.el.setAttribute("width",r):this.el.removeAttribute("width");const s=this.model.get("height");return void 0!==s&&s.length>0?this.el.setAttribute("height",s):this.el.removeAttribute("height"),super.update()}remove(){this.el.src&&URL.revokeObjectURL(this.el.src),super.remove()}preinitialize(){this.tagName="img"}}class H extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"VideoModel",_view_name:"VideoView",format:"mp4",width:"",height:"",autoplay:!0,loop:!0,controls:!0,value:new DataView(new ArrayBuffer(0))})}}H.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>new DataView(e.buffer.slice(0))}});class W extends i.DOMWidgetView{render(){super.render(),this.luminoWidget.addClass("jupyter-widgets"),this.luminoWidget.addClass("widget-image"),this.update()}update(){let e;const t=this.model.get("format"),n=this.model.get("value");if("url"!==t){const t=new Blob([n],{type:`video/${this.model.get("format")}`});e=URL.createObjectURL(t)}else e=new TextDecoder("utf-8").decode(n.buffer);const i=this.el.src;this.el.src=e,i&&URL.revokeObjectURL(i);const r=this.model.get("width");void 0!==r&&r.length>0?this.el.setAttribute("width",r):this.el.removeAttribute("width");const s=this.model.get("height");return void 0!==s&&s.length>0?this.el.setAttribute("height",s):this.el.removeAttribute("height"),this.el.loop=this.model.get("loop"),this.el.autoplay=this.model.get("autoplay"),this.el.controls=this.model.get("controls"),super.update()}remove(){this.el.src&&URL.revokeObjectURL(this.el.src),super.remove()}preinitialize(){this.tagName="video"}}class K extends f{defaults(){return Object.assign(Object.assign({},super.defaults()),{_model_name:"AudioModel",_view_name:"AudioView",format:"mp3",autoplay:!0,loop:!0,controls:!0,value:new DataView(new ArrayBuffer(0))})}}K.serializers=Object.assign(Object.assign({},f.serializers),{value:{serialize:e=>new DataView(e.buffer.slice(0))}});class G extends i.DOMWidgetView{render(){super.render(),this.luminoWidget.addClass("jupyter-widgets"),this.update()}update(){let e;const t=this.model.get("format"),n=this.model.get("value");if("url"!==t){const t=new Blob([n],{type:`audio/${this.model.get("format")}`});e=URL.createObjectURL(t)}else e=new TextDecoder("utf-8").decode(n.buffer);const i=this.el.src;return this.el.src=e,i&&URL.revokeObjectURL(i),this.el.loop=this.model.get("loop"),this.el.autoplay=this.model.get("autoplay"),this.el.controls=this.model.get("controls"),super.update()}remove(){this.el.src&&URL.revokeObjectURL(this.el.src),super.remove()}preinitialize(){this.tagName="audio"}}const J={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgrey:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgreen:"#90ee90",lightgray:"#d3d3d3",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};class X extends m{defaults(){return Object.assign(Object.assign({},super.defaults()),{value:"black",concise:!1,_model_name:"ColorPickerModel",_view_name:"ColorPickerView"})}}class Y extends c{render(){super.render(),this.el.classList.add("jupyter-widgets"),this.el.classList.add("widget-inline-hbox"),this.el.classList.add("widget-colorpicker"),this._color_container=document.createElement("div"),this._color_conta