yfiles-jupyter-graphs
Version:
A diagram visualization extension for JupyterLab and Jupyter Notebooks powered by yFiles for HTML
1 lines • 18.2 MB
JavaScript
define(["module","@jupyter-widgets/base"],(($,f)=>(()=>{var t={77:($,f,t)=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.GraphLayer=void 0;const n=t(3481),i=t(9379);class e extends n.Layer{constructor($,f,t,n){super(n),this.__Po=$,this.worldMap=f,this.getGeoCoordinates=t}preventEventPropagation($){$.addEventListener("pointerdown",($=>{}),!0)}onAdd($){this.map=$,this.pane=$.getPane("overlayPane"),this.preventEventPropagation(this.pane);const f=this.__Po.$XH.parentNode;this.pane&&f&&(f.removeChild(this.__Po.$XH),this.pane.appendChild(this.__Po.$XH)),this.mapPane=$.getPane("mapPane"),$.removeControl($.zoomControl),$.on("zoom viewreset resize move moveend zoomend",this.updateGraphDivHandler,this),$.on("zoomstart",this.hideGraphComponent,this),$.on("zoomend",this.showGraphComponent,this),$.doubleClickZoom.disable();const t=new n.LatLng(-89.98155760646617,-180),i=new n.LatLng(89.99346179538875,180),e=(0,n.latLngBounds)(t,i);return $.setMaxBounds(e),$.on("drag",(()=>{$.panInsideBounds(e,{animate:!1})})),setTimeout((()=>this.updateGraphDiv())),this}onRemove($){return $.off("zoom viewreset resize move moveend zoomend",this.updateGraphDivHandler,this),$.off("zoomstart",this.hideGraphComponent,this),$.off("zoomend",this.showGraphComponent,this),this.pane=void 0,this.mapPane=void 0,this.map=void 0,this.__Po.__Ul(),this.__Po.$XH.remove(),this}updateGraphDivHandler(){this.updateGraphDiv()}updateGraphDiv($=!1){if(!this.map)return;$&&this.map.invalidateSize();const f=this.__Po,t=this.map.getSize(),i=n.DomUtil.getPosition(this.mapPane).multiplyBy(-1),e=i.add(t).subtract(i);f.$XH.style.width=`${e.x}px`,f.$XH.style.height=`${e.y}px`,n.DomUtil.setPosition(this.pane,i),this.updateNodeLocations()}hideGraphComponent(){this.__Po.$XH.style.visibility="hidden"}showGraphComponent(){this.__Po.$XH.style.visibility="visible"}getMapBounds($,f){const t=(f||$.__Fk.toArray()).map(($=>this.getGeoCoordinates($))).filter(($=>null!==$));if(0===t.length)return;const i=t.reduce((($,f)=>($.minLat=Math.min($.minLat,f.lat),$.maxLat=Math.max($.maxLat,f.lat),$.minLng=Math.min($.minLng,f.lng),$.maxLng=Math.max($.maxLng,f.lng),$)),{minLat:Number.POSITIVE_INFINITY,maxLat:Number.NEGATIVE_INFINITY,minLng:Number.POSITIVE_INFINITY,maxLng:Number.NEGATIVE_INFINITY});return(0,n.latLngBounds)((0,n.latLng)(i.minLat,i.minLng),(0,n.latLng)(i.maxLat,i.maxLng))}updateMapSize(){const $=this.worldMap.getSize(),f=n.DomUtil.getPosition(this.mapPane).multiplyBy(-1),t=f.add($).subtract(f);return this.__Po.$XH.style.width=`${t.x}px`,this.__Po.$XH.style.height=`${t.y}px`,n.DomUtil.setPosition(this.pane,f),f}updateNodeLocations(){const $=this.updateMapSize(),f=this.__Po.graph;f.__Fk.forEach(($=>{const t=this.getGeoCoordinates($);if(t){const e=i.Point.from(this.worldMap.latLngToLayerPoint(new n.LatLng(t.lat,t.lng)));f.$Yh($,new i.Point(e.x,e.y))}})),this.__Po.__yo=i.Point.from($),f.__Ek.forEach(($=>f.__fp($))),this.__Po.__dp()}zoomIn(){this.worldMap.zoomIn()}zoomOut(){this.worldMap.zoomOut()}fitContent($,f,t=!0){const n=this.worldMap;if(0===$.graph.__Fk.size){if(f)return;return void n.fitWorld()}const i=this.getMapBounds($.graph,f);i&&(f?n.fitBounds(t?i:i.extend(n.getBounds()),{padding:[100,100],animate:!0,maxZoom:10}):n.fitBounds(i,{padding:[100,100],animate:!0,maxZoom:10}),this.updateNodeLocations())}}f.GraphLayer=e},168:$=>{"use strict";$.exports="data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2240%22%20width%3D%2240%22%20viewBox%3D%220%200%2040%2040.000001%22%3E%3Cg%20display%3D%22block%22%3E%3Cpath%20d%3D%22M3.927%2023.792v7.575M20.97%2023.792v7.575M20.97%208.643v7.574M23.495%208.643v3.787H36.12v3.787M18.445%208.643v3.787H5.821v3.787M7.714%2023.792v3.787h9.469v3.788%22%20stroke%3D%22%2352587a%22%20stroke-miterlimit%3D%2210%22%20fill%3D%22none%22%20stroke-width%3D%22.25249%22%2F%3E%3Cpath%20d%3D%22M17.183%201.068h7.574v7.575h-7.574zM17.183%2016.217h7.574v7.575h-7.574zM15.29%2031.367h7.574v7.574h-7.575zM32.332%2016.217h7.575v7.575h-7.575zM2.033%2016.217h7.575v7.575H2.033zM.14%2031.367h7.574v7.574H.14z%22%20stroke%3D%22%2352587a%22%20fill%3D%22%2352587a%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"},382:($,f,t)=>{"use strict";Object.defineProperty(f,"__esModule",{value:!0}),f.createGraphBuilder=void 0;const n=t(9379),i=t(3619);function e($){$.addEventListener("label-updated",(f=>{$.__Fq(f.graph,f.item,f.$Ty),$.$YUJ(f.graph,f.item,f.$Ty),$.__rq(f.graph,f.item,f.$Ty)}))}function r($){return void 0!==$.parentId?$.parentId:null}f.createGraphBuilder=function($){const f=new n.__Dr($.fullGraph),{__Fk:t,__hp:u}=function($){const f=new Set,t=[];for(const n of $){const i=r(n);if(null!==i&&!f.has(i)){f.add(i);const n=$.find(($=>$.id===i));n&&t.push(n)}}const n=[];for(const t of $){const $=t.id;f.has($)||n.push(t)}return{__Fk:n,__hp:t}}([...$.__Fk()]);return function($,f){const t=$.__Aq({data:f,id:$=>$.id,parentId:$=>r($)});t.__Fp.__Sp=(0,i.getNodeLayoutProvider)(),t.__Fp.__Op=$=>{const{fill:f,stroke:t,shape:e,image:r}=(0,i.parseNodeStyleObject)($);return r?new n.ImageNodeStyle({href:r}):new n.ShapeNodeStyle({fill:f,stroke:t,shape:e})};const u=t.__Fp.__Cq({data:$=>""===$.label?[]:[Object.assign({},$)],text:$=>$.label}).$nL;u.__Op=$=>(0,i.parseLabelObject)($),u.__gq=$=>(0,i.parseNodeLabelObjectParameter)($),e(u)}(f,t),function($,f){const t=$.__Eq({data:f,id:$=>$.id,parentId:$=>r($)});t.__Fp.addEventListener("node-created",(({item:f})=>{const t=$.graph;t.__bp(f,(0,i.getGroupStyling)(f)),f.labels.forEach((($,f)=>{t.__ep($,0===f?(new n.GroupNodeLabelModel).$OCI():n.ExteriorNodeLabelModel.BOTTOM)}))}));const u=t.__Fp.__Cq({data:$=>""===$.label?[]:[Object.assign({},$)],text:$=>$.label}).$nL;u.__Op=$=>{const f=(0,i.parseLabelObject)($);return f.verticalTextAlignment=n.VerticalTextAlignment.CENTER,f.horizontalTextAlignment=n.HorizontalTextAlignment.CENTER,f},e(u)}(f,u),function($,f,t){const r=$.__Gq({data:f,id:$=>$.id,sourceId:$=>$.start,targetId:$=>$.end});r.__Ep.__Op=$=>(0,i.parseEdgeStyleObject)($,t);const u=r.__Ep.__Cq({data:$=>""===$.label?[]:[Object.assign({},$)],text:$=>$.label}).$nL;u.__Op=$=>(0,i.parseLabelObject)($,!0),u.__xp.layoutParameter=(new n.FreeEdgeLabelModel).createParameter(),e(u)}(f,$.__Ek(),$.getDirectedValue()),f}},391:$=>{"use strict";$.exports="data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2216%22%20height%3D%2216%22%20xml%3Aspace%3D%22preserve%22%3E%3Cg%20fill%3D%22%23ECEFF1%22%3E%3Cpath%20d%3D%22M0%200v13l3%203h13V0H0zm4%201h8v4H4V1zm9%2013H5V9h8v5z%22%2F%3E%3Cpath%20d%3D%22M6%2010h2v3H6z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E"},452:$=>{"use strict";$.exports="data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2240%22%20height%3D%2240%22%20viewBox%3D%220%200%2040%2040.000001%22%3E%3Cg%20display%3D%22block%22%20overflow%3D%22hidden%22%3E%3Cpath%20stroke-miterlimit%3D%2210%22%20d%3D%22M12.66%2027.966v8.644h2.966M10.541%2025.424H7.406v7.627M25.541%2017.797v5.084M13.338%2017.797v5.084M15.372%2017.797v2.542h8.135v2.542M23.19%205.085v7.627M24.588%205.085v7.627M20.71%203.05h-5.508l-.847.848v8.814%22%20fill%3D%22none%22%20stroke%3D%22%23ECEFF1%22%20stroke-width%3D%22.33898%22%2F%3E%3Cpath%20stroke-miterlimit%3D%2210%22%20d%3D%22M20.71%204.068h-1.694v21.356h2.966M20.71%201.017H4.864L3.168%202.712v10%22%20fill%3D%22none%22%20stroke%3D%22%23ECEFF1%22%20stroke-width%3D%22.33898%22%2F%3E%3Cpath%20stroke-miterlimit%3D%2210%22%20d%3D%22M20.71%202.034H6.729L5.202%203.559v9.153M13.507%2027.966v6.61h2.119%22%20fill%3D%22none%22%20stroke%3D%22%23ECEFF1%22%20stroke-width%3D%22.33898%22%2F%3E%3Cpath%20stroke-miterlimit%3D%2210%22%20d%3D%22M2.956%2017.797V39.83h15.212v-1.695M27.067%2015.254h7.966l.932.932v6.272M27.067%2025.212h6.356%22%20fill%3D%22none%22%20stroke%3D%22%23ECEFF1%22%20stroke-width%3D%22.33898%22%2F%3E%3Cpath%20d%3D%22M10.541%2022.881h5.085v5.085H10.54zM21.982%2012.712h5.085v5.085h-5.085zM11.812%2012.712h5.085v5.085h-5.085zM5.456%2033.05h5.085v5.086H5.456zM15.626%2033.05h5.085v5.086h-5.085zM21.982%2022.881h5.085v5.085h-5.085zM1.643%2012.712h5.085v5.085H1.643zM20.71%200h5.085v5.085h-5.084zM33.423%2022.458h5.084v5.084h-5.084z%22%20stroke%3D%22%23ECEFF1%22%20fill%3D%22%23ECEFF1%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"},459:function($,f,t){"use strict";var n=this&&this.__awaiter||function($,f,t,n){return new(t||(t=Promise))((function(i,e){function r($){try{s(n.next($))}catch($){e($)}}function u($){try{s(n.throw($))}catch($){e($)}}function s($){var f;$.done?i($.value):(f=$.value,f instanceof t?f:new t((function($){$(f)}))).then(r,u)}s((n=n.apply($,f||[])).next())}))},i=this&&this.__rest||function($,f){var t={};for(var n in $)Object.prototype.hasOwnProperty.call($,n)&&f.indexOf(n)<0&&(t[n]=$[n]);if(null!=$&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols($);i<n.length;i++)f.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call($,n[i])&&(t[n[i]]=$[n[i]])}return t},e=this&&this.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(f,"__esModule",{value:!0}),f.isValidLicenseKey=f.checkContinueConsent=f.showExpiredYfilesLicenseMessage=f.showInvalidHostMessage=f.isValidHostname=f.checkLicenseConsent=f.initializeUpdateReminder=f.getRemainingLicenseDays=f.isGoogleColabEnv=f.isVsCodeEnv=f.isAllowedHostname=void 0;const r=e(t(1509)),u=t(2459),s="yjg.license-accepted",l="yjg.continue-accepted";function o(){const $=r.default.expires;if(!$)return 151;return(new Date($).getTime()-Date.now())/864e5|0}function h($){const f=document.createElement("div");f.className="fullscreen-warning";const t=document.createElement("div");t.className="warning-message",t.innerHTML="<p>You are running yFiles Graphs for Jupyter on <code>"+location.origin+'</code>.</p><p>The widget only permits use on <code>127.0.0.1</code> and <code>localhost</code>.</p><p>In case this doesn\'t work for you, let us know the above-mentioned location on <a href="https://github.com/yWorks/yfiles-jupyter-graphs/discussions/" target="_blank">GitHub</a>.</p>';const n=document.createElement("iframe");n.className="yw-frame",window.addEventListener("message",(t=>{var i;if(-1!==(null==t?void 0:t.origin.indexOf("yworks.com"))&&"continue"===(null==t?void 0:t.data)){try{localStorage.setItem(l,String(Date.now()))}catch($){}f.classList.remove("show"),$.classList.remove("show-iframe-backdrop"),null===(i=n.parentElement)||void 0===i||i.removeChild(n)}})),n.src="https://www.yworks.com/products/yfiles-graphs-for-jupyter/trial";const i=document.createElement("button");i.className="continue-button",i.innerHTML='<span style="display: block;">Click for free license</span><span style="font-size: 12px; margin-top: 4px;">obtains a free temporary license from yworks.com</span>',i.addEventListener("click",(()=>{f.classList.remove("show"),$.classList.add("show-iframe-backdrop")})),t.appendChild(i);const e=document.createElement("p");return e.innerHTML='In case you need a specific license for your domain, <a href="mailto:contact@yworks.com?subject=yFiles Graphs For Jupyter - Domain license request">email</a> us.',t.appendChild(e),f.appendChild(t),$.appendChild(n),$.appendChild(f),f.classList.add("show"),f}f.isAllowedHostname=[/^192\./,/^127\.0\.0\.1$/,/^localhost$/,/vscode.dev$/,/yworks\.home/,/mybinder\.ovh$/,/colab\.googleusercontent\.com$/,/notebooks\.googleusercontent\.com/,/dataproc\.googleusercontent\.com/,/kaggle/,/domino/,/kubeflow/,/ml\.azure\.com/,/notebooks\.azuresandbox\.ms/,/sagemaker\.aws/,/apps\.sciserver\.org/,/kuzu-lab\.netlify\.app/].some(($=>$.test(location.hostname))),f.isVsCodeEnv=location.origin.startsWith("vscode-webview"),f.isGoogleColabEnv=location.origin.includes("colab.research.google.com"),f.getRemainingLicenseDays=o,f.initializeUpdateReminder=function($,f){if(o()<=150){const t="Free license expiring soon. Please update this widget.";f.showToast(t,void 0,!1,null,$)}},f.checkLicenseConsent=function($){try{if(localStorage.getItem(s))return}catch($){}const f=$.showToast("By using this extension, you are accepting the <a href='https://github.com/yWorks/yfiles-jupyter-graphs/blob/master/LICENSE.md' target='_blank'>license terms</a>.",(()=>{try{localStorage.setItem(s,String((new Date).getTime())),window.dispatchEvent(new Event(s))}catch($){}}),!0);window.addEventListener(s,(()=>{f.classList.remove("show-toast")}))},f.isValidHostname=function(){return f.isAllowedHostname||f.isVsCodeEnv},f.showInvalidHostMessage=h,f.showExpiredYfilesLicenseMessage=function($){const f=document.createElement("div");f.className="fullscreen-warning";const t=document.createElement("div");t.className="warning-message",t.innerHTML='<p>The license of this widget has expired.</p><p>To update the license, please install the new free version of the widget from the <a href="https://pypi.org/" target="_blank">Python Package Index</a>.</p><p>In case this doesn\'t work for you, let us know on <a href="https://github.com/yWorks/yfiles-jupyter-graphs/issues" target="_blank">GitHub</a>.</p>',f.appendChild(t),$.appendChild(f)},f.checkContinueConsent=function($){try{const $=localStorage.getItem(l);if($&&function($,f){const t=parseInt($,10),n=Date.now();return n-t<24*f*60*60*1e3}($,7))return}catch($){}h($)},f.isValidLicenseKey=function($){return n(this,void 0,void 0,(function*(){if(!$||0===Object.keys($).length)return!1;const{licenseJson:f,signature:t}=function($){const{signature:f}=$,t=i($,["signature"]);return{signature:($=>{const f=[];for(let t=0;t<$.length;t+=2)f.push(parseInt($.substr(t,2),16));return new Uint8Array(f)})($.signature),licenseJson:t}}($);let n=!1;try{n=yield(0,u.verifyMessage)(f,t)}catch($){console.error("Cannot verify license due to unsupported crypto API in your browser")}if(n){const t=$.domains.map(($=>new RegExp($))).some(($=>$.test(location.hostname)));return new Date(f.expiry).getTime()>Date.now()&&t}return!1}))}},540:$=>{"use strict";$.exports=function($){var f=document.createElement("style");return $.setAttributes(f,$.attributes),$.insert(f,$.options),f}},670:function($,f,t){"use strict";var n=this&&this.__importDefault||function($){return $&&$.__esModule?$:{default:$}};Object.defineProperty(f,"__esModule",{value:!0});const i=n(t(3877));f.default=function(){return new i.default}},827:($,f,t)=>{"use strict";t.r(f),t.d(f,{default:()=>v});var n=t(5072),i=t.n(n),e=t(7825),r=t.n(e),u=t(7659),s=t.n(u),l=t(5056),o=t.n(l),h=t(540),a=t.n(h),c=t(1113),m=t.n(c),C=t(1126),_={};_.styleTagTransform=m(),_.setAttributes=o(),_.insert=s().bind(null,"head"),_.domAPI=r(),_.insertStyleElement=a();i()(C.A,_);const v=C.A&&C.A.locals?C.A.locals:void 0},954:$=>{"use strict";$.exports="data:image/svg+xml;utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20height%3D%2240%22%20width%3D%2240%22%20viewBox%3D%220%200%2040%2040.000001%22%3E%3Cg%20display%3D%22block%22%3E%3Cpath%20d%3D%22M16.7%2013.81l-5.931%205.315M19.434%2010.221l2.86-6.435M19.963%2014.007l5.208%207.192M26.327%2024.985l-1.085%209.59M8.21%2022.713L5.63%2030.032M14.994%2030.032l-.627%206.183M6.857%2033.195l5.426%203.642M10.508%2022.713l3.046%203.533M23.135%2036.754l-7.066%201.068M17.078%2027.298l7.571-3.365M28.435%2022.259l5.678-2.498%22%20stroke%3D%22%23ECEFF1%22%20stroke-miterlimit%3D%2210%22%20stroke-width%3D%22.25236%22%20fill%3D%22none%22%2F%3E%3Cpath%20d%3D%22M16.7%2010.221h3.785v3.786h-3.786zM24.65%2021.199h3.785v3.786h-3.786zM21.242%200h3.786v3.786h-3.786zM13.292%2026.246h3.786v3.786h-3.786zM6.983%2018.928h3.786v3.785H6.983zM23.135%2034.575h3.785v3.785h-3.785zM3.072%2030.032h3.785v3.785H3.072zM12.283%2036.215h3.786v3.786h-3.786zM34.113%2017.035h3.785v3.785h-3.785z%22%20stroke%3D%22%23ECEFF1%22%20fill%3D%22%23ECEFF1%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E%0A"},1081:($,f,t)=>{"use strict";t.d(f,{A:()=>_});var n=t(1601),i=t.n(n),e=t(6314),r=t.n(e),u=t(4417),s=t.n(u),l=new URL(t(3982),t.b),o=new URL(t(6426),t.b),h=new URL(t(9927),t.b),a=r()(i()),c=s()(l),m=s()(o),C=s()(h);a.push([$.id,`/* required styles */\n\n.leaflet-pane,\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-tile-container,\n.leaflet-pane > svg,\n.leaflet-pane > canvas,\n.leaflet-zoom-box,\n.leaflet-image-layer,\n.leaflet-layer {\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\t}\n.leaflet-container {\n\toverflow: hidden;\n\t}\n.leaflet-tile,\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\t-webkit-user-select: none;\n\t -moz-user-select: none;\n\t user-select: none;\n\t -webkit-user-drag: none;\n\t}\n/* Prevents IE11 from highlighting tiles in blue */\n.leaflet-tile::selection {\n\tbackground: transparent;\n}\n/* Safari renders non-retina tile on retina better with this, but Chrome is worse */\n.leaflet-safari .leaflet-tile {\n\timage-rendering: -webkit-optimize-contrast;\n\t}\n/* hack that prevents hw layers "stretching" when loading new tiles */\n.leaflet-safari .leaflet-tile-container {\n\twidth: 1600px;\n\theight: 1600px;\n\t-webkit-transform-origin: 0 0;\n\t}\n.leaflet-marker-icon,\n.leaflet-marker-shadow {\n\tdisplay: block;\n\t}\n/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */\n/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */\n.leaflet-container .leaflet-overlay-pane svg {\n\tmax-width: none !important;\n\tmax-height: none !important;\n\t}\n.leaflet-container .leaflet-marker-pane img,\n.leaflet-container .leaflet-shadow-pane img,\n.leaflet-container .leaflet-tile-pane img,\n.leaflet-container img.leaflet-image-layer,\n.leaflet-container .leaflet-tile {\n\tmax-width: none !important;\n\tmax-height: none !important;\n\twidth: auto;\n\tpadding: 0;\n\t}\n\n.leaflet-container img.leaflet-tile {\n\t/* See: https://bugs.chromium.org/p/chromium/issues/detail?id=600120 */\n\tmix-blend-mode: plus-lighter;\n}\n\n.leaflet-container.leaflet-touch-zoom {\n\t-ms-touch-action: pan-x pan-y;\n\ttouch-action: pan-x pan-y;\n\t}\n.leaflet-container.leaflet-touch-drag {\n\t-ms-touch-action: pinch-zoom;\n\t/* Fallback for FF which doesn't support pinch-zoom */\n\ttouch-action: none;\n\ttouch-action: pinch-zoom;\n}\n.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom {\n\t-ms-touch-action: none;\n\ttouch-action: none;\n}\n.leaflet-container {\n\t-webkit-tap-highlight-color: transparent;\n}\n.leaflet-container a {\n\t-webkit-tap-highlight-color: rgba(51, 181, 229, 0.4);\n}\n.leaflet-tile {\n\tfilter: inherit;\n\tvisibility: hidden;\n\t}\n.leaflet-tile-loaded {\n\tvisibility: inherit;\n\t}\n.leaflet-zoom-box {\n\twidth: 0;\n\theight: 0;\n\t-moz-box-sizing: border-box;\n\t box-sizing: border-box;\n\tz-index: 800;\n\t}\n/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */\n.leaflet-overlay-pane svg {\n\t-moz-user-select: none;\n\t}\n\n.leaflet-pane { z-index: 400; }\n\n.leaflet-tile-pane { z-index: 200; }\n.leaflet-overlay-pane { z-index: 400; }\n.leaflet-shadow-pane { z-index: 500; }\n.leaflet-marker-pane { z-index: 600; }\n.leaflet-tooltip-pane { z-index: 650; }\n.leaflet-popup-pane { z-index: 700; }\n\n.leaflet-map-pane canvas { z-index: 100; }\n.leaflet-map-pane svg { z-index: 200; }\n\n.leaflet-vml-shape {\n\twidth: 1px;\n\theight: 1px;\n\t}\n.lvml {\n\tbehavior: url(#default#VML);\n\tdisplay: inline-block;\n\tposition: absolute;\n\t}\n\n\n/* control positioning */\n\n.leaflet-control {\n\tposition: relative;\n\tz-index: 800;\n\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\n\tpointer-events: auto;\n\t}\n.leaflet-top,\n.leaflet-bottom {\n\tposition: absolute;\n\tz-index: 1000;\n\tpointer-events: none;\n\t}\n.leaflet-top {\n\ttop: 0;\n\t}\n.leaflet-right {\n\tright: 0;\n\t}\n.leaflet-bottom {\n\tbottom: 0;\n\t}\n.leaflet-left {\n\tleft: 0;\n\t}\n.leaflet-control {\n\tfloat: left;\n\tclear: both;\n\t}\n.leaflet-right .leaflet-control {\n\tfloat: right;\n\t}\n.leaflet-top .leaflet-control {\n\tmargin-top: 10px;\n\t}\n.leaflet-bottom .leaflet-control {\n\tmargin-bottom: 10px;\n\t}\n.leaflet-left .leaflet-control {\n\tmargin-left: 10px;\n\t}\n.leaflet-right .leaflet-control {\n\tmargin-right: 10px;\n\t}\n\n\n/* zoom and fade animations */\n\n.leaflet-fade-anim .leaflet-popup {\n\topacity: 0;\n\t-webkit-transition: opacity 0.2s linear;\n\t -moz-transition: opacity 0.2s linear;\n\t transition: opacity 0.2s linear;\n\t}\n.leaflet-fade-anim .leaflet-map-pane .leaflet-popup {\n\topacity: 1;\n\t}\n.leaflet-zoom-animated {\n\t-webkit-transform-origin: 0 0;\n\t -ms-transform-origin: 0 0;\n\t transform-origin: 0 0;\n\t}\nsvg.leaflet-zoom-animated {\n\twill-change: transform;\n}\n\n.leaflet-zoom-anim .leaflet-zoom-animated {\n\t-webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1);\n\t transition: transform 0.25s cubic-bezier(0,0,0.25,1);\n\t}\n.leaflet-zoom-anim .leaflet-tile,\n.leaflet-pan-anim .leaflet-tile {\n\t-webkit-transition: none;\n\t -moz-transition: none;\n\t transition: none;\n\t}\n\n.leaflet-zoom-anim .leaflet-zoom-hide {\n\tvisibility: hidden;\n\t}\n\n\n/* cursors */\n\n.leaflet-interactive {\n\tcursor: pointer;\n\t}\n.leaflet-grab {\n\tcursor: -webkit-grab;\n\tcursor: -moz-grab;\n\tcursor: grab;\n\t}\n.leaflet-crosshair,\n.leaflet-crosshair .leaflet-interactive {\n\tcursor: crosshair;\n\t}\n.leaflet-popup-pane,\n.leaflet-control {\n\tcursor: auto;\n\t}\n.leaflet-dragging .leaflet-grab,\n.leaflet-dragging .leaflet-grab .leaflet-interactive,\n.leaflet-dragging .leaflet-marker-draggable {\n\tcursor: move;\n\tcursor: -webkit-grabbing;\n\tcursor: -moz-grabbing;\n\tcursor: grabbing;\n\t}\n\n/* marker & overlays interactivity */\n.leaflet-marker-icon,\n.leaflet-marker-shadow,\n.leaflet-image-layer,\n.leaflet-pane > svg path,\n.leaflet-tile-container {\n\tpointer-events: none;\n\t}\n\n.leaflet-marker-icon.leaflet-interactive,\n.leaflet-image-layer.leaflet-interactive,\n.leaflet-pane > svg path.leaflet-interactive,\nsvg.leaflet-image-layer.leaflet-interactive path {\n\tpointer-events: visiblePainted; /* IE 9-10 doesn't have auto */\n\tpointer-events: auto;\n\t}\n\n/* visual tweaks */\n\n.leaflet-container {\n\tbackground: #ddd;\n\toutline-offset: 1px;\n\t}\n.leaflet-container a {\n\tcolor: #0078A8;\n\t}\n.leaflet-zoom-box {\n\tborder: 2px dotted #38f;\n\tbackground: rgba(255,255,255,0.5);\n\t}\n\n\n/* general typography */\n.leaflet-container {\n\tfont-family: "Helvetica Neue", Arial, Helvetica, sans-serif;\n\tfont-size: 12px;\n\tfont-size: 0.75rem;\n\tline-height: 1.5;\n\t}\n\n\n/* general toolbar styles */\n\n.leaflet-bar {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.65);\n\tborder-radius: 4px;\n\t}\n.leaflet-bar a {\n\tbackground-color: #fff;\n\tborder-bottom: 1px solid #ccc;\n\twidth: 26px;\n\theight: 26px;\n\tline-height: 26px;\n\tdisplay: block;\n\ttext-align: center;\n\ttext-decoration: none;\n\tcolor: black;\n\t}\n.leaflet-bar a,\n.leaflet-control-layers-toggle {\n\tbackground-position: 50% 50%;\n\tbackground-repeat: no-repeat;\n\tdisplay: block;\n\t}\n.leaflet-bar a:hover,\n.leaflet-bar a:focus {\n\tbackground-color: #f4f4f4;\n\t}\n.leaflet-bar a:first-child {\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\t}\n.leaflet-bar a:last-child {\n\tborder-bottom-left-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tborder-bottom: none;\n\t}\n.leaflet-bar a.leaflet-disabled {\n\tcursor: default;\n\tbackground-color: #f4f4f4;\n\tcolor: #bbb;\n\t}\n\n.leaflet-touch .leaflet-bar a {\n\twidth: 30px;\n\theight: 30px;\n\tline-height: 30px;\n\t}\n.leaflet-touch .leaflet-bar a:first-child {\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\t}\n.leaflet-touch .leaflet-bar a:last-child {\n\tborder-bottom-left-radius: 2px;\n\tborder-bottom-right-radius: 2px;\n\t}\n\n/* zoom control */\n\n.leaflet-control-zoom-in,\n.leaflet-control-zoom-out {\n\tfont: bold 18px 'Lucida Console', Monaco, monospace;\n\ttext-indent: 1px;\n\t}\n\n.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out {\n\tfont-size: 22px;\n\t}\n\n\n/* layers control */\n\n.leaflet-control-layers {\n\tbox-shadow: 0 1px 5px rgba(0,0,0,0.4);\n\tbackground: #fff;\n\tborder-radius: 5px;\n\t}\n.leaflet-control-layers-toggle {\n\tbackground-image: url(${c});\n\twidth: 36px;\n\theight: 36px;\n\t}\n.leaflet-retina .leaflet-control-layers-toggle {\n\tbackground-image: url(${m});\n\tbackground-size: 26px 26px;\n\t}\n.leaflet-touch .leaflet-control-layers-toggle {\n\twidth: 44px;\n\theight: 44px;\n\t}\n.leaflet-control-layers .leaflet-control-layers-list,\n.leaflet-control-layers-expanded .leaflet-control-layers-toggle {\n\tdisplay: none;\n\t}\n.leaflet-control-layers-expanded .leaflet-control-layers-list {\n\tdisplay: block;\n\tposition: relative;\n\t}\n.leaflet-control-layers-expanded {\n\tpadding: 6px 10px 6px 6px;\n\tcolor: #333;\n\tbackground: #fff;\n\t}\n.leaflet-control-layers-scrollbar {\n\toverflow-y: scroll;\n\toverflow-x: hidden;\n\tpadding-right: 5px;\n\t}\n.leaflet-control-layers-selector {\n\tmargin-top: 2px;\n\tposition: relative;\n\ttop: 1px;\n\t}\n.leaflet-control-layers label {\n\tdisplay: block;\n\tfont-size: 13px;\n\tfont-size: 1.08333em;\n\t}\n.leaflet-control-layers-separator {\n\theight: 0;\n\tborder-top: 1px solid #ddd;\n\tmargin: 5px -10px 5px -6px;\n\t}\n\n/* Default icon URLs */\n.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */\n\tbackground-image: url(${C});\n\t}\n\n\n/* attribution and scale controls */\n\n.leaflet-container .leaflet-control-attribution {\n\tbackground: #fff;\n\tbackground: rgba(255, 255, 255, 0.8);\n\tmargin: 0;\n\t}\n.leaflet-control-attribution,\n.leaflet-control-scale-line {\n\tpadding: 0 5px;\n\tcolor: #333;\n\tline-height: 1.4;\n\t}\n.leaflet-control-attribution a {\n\ttext-decoration: none;\n\t}\n.leaflet-control-attribution a:hover,\n.leaflet-control-attribution a:focus {\n\ttext-decoration: underline;\n\t}\n.leaflet-attribution-flag {\n\tdisplay: inline !important;\n\tvertical-align: baseline !important;\n\twidth: 1em;\n\theight: 0.6669em;\n\t}\n.leaflet-left .leaflet-control-scale {\n\tmargin-left: 5px;\n\t}\n.leaflet-bottom .leaflet-control-scale {\n\tmargin-bottom: 5px;\n\t}\n.leaflet-control-scale-line {\n\tborder: 2px solid #777;\n\tborder-top: none;\n\tline-height: 1.1;\n\tpadding: 2px 5px 1px;\n\twhite-space: nowrap;\n\t-moz-box-sizing: border-box;\n\t box-sizing: border-box;\n\tbackground: rgba(255, 255, 255, 0.8);\n\ttext-shadow: 1px 1px #fff;\n\t}\n.leaflet-control-scale-line:not(:first-child) {\n\tborder-top: 2px solid #777;\n\tborder-bottom: none;\n\tmargin-top: -2px;\n\t}\n.leaflet-control-scale-line:not(:first-child):not(:last-child) {\n\tborder-bottom: 2px solid #777;\n\t}\n\n.leaflet-touch .leaflet-control-attribution,\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tbox-shadow: none;\n\t}\n.leaflet-touch .leaflet-control-layers,\n.leaflet-touch .leaflet-bar {\n\tborder: 2px solid rgba(0,0,0,0.2);\n\tbackground-clip: padding-box;\n\t}\n\n\n/* popup */\n\n.leaflet-popup {\n\tposition: absolute;\n\ttext-align: center;\n\tmargin-bottom: 20px;\n\t}\n.leaflet-popup-content-wrapper {\n\tpadding: 1px;\n\ttext-align: left;\n\tborder-radius: 12px;\n\t}\n.leaflet-popup-content {\n\tmargin: 13px 24px 13px 20px;\n\tline-height: 1.3;\n\tfont-size: 13px;\n\tfont-size: 1.08333em;\n\tmin-height: 1px;\n\t}\n.leaflet-popup-content p {\n\tmargin: 17px 0;\n\tmargin: 1.3em 0;\n\t}\n.leaflet-popup-tip-container {\n\twidth: 40px;\n\theight: 20px;\n\tposition: absolute;\n\tleft: 50%;\n\tmargin-top: -1px;\n\tmargin-left: -20px;\n\toverflow: hidden;\n\tpointer-events: none;\n\t}\n.leaflet-popup-tip {\n\twidth: 17px;\n\theight: 17px;\n\tpadding: 1px;\n\n\tmargin: -10px auto 0;\n\tpointer-events: auto;\n\n\t-webkit-transform: rotate(45deg);\n\t -moz-transform: rotate(45deg);\n\t -ms-transform: rotate(45deg);\n\t transform: rotate(45deg);\n\t}\n.leaflet-popup-content-wrapper,\n.leaflet-popup-tip {\n\tbackground: white;\n\tcolor: #333;\n\tbox-shadow: 0 3px 14px rgba(0,0,0,0.4);\n\t}\n.leaflet-container a.leaflet-popup-close-button {\n\tposition: absolute;\n\ttop: 0;\n\tright: 0;\n\tborder: none;\n\ttext-align: center;\n\twidth: 24px;\n\theight: 24px;\n\tfont: 16px/24px Tahoma, Verdana, sans-serif;\n\tcolor: #757575;\n\ttext-decoration: none;\n\tbackground: transparent;\n\t}\n.leaflet-container a.leaflet-popup-close-button:hover,\n.leaflet-container a.leaflet-popup-close-button:focus {\n\tcolor: #585858;\n\t}\n.leaflet-popup-scrolled {\n\toverflow: auto;\n\t}\n\n.leaflet-oldie .leaflet-popup-content-wrapper {\n\t-ms-zoom: 1;\n\t}\n.leaflet-oldie .leaflet-popup-tip {\n\twidth: 24px;\n\tmargin: 0 auto;\n\n\t-ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";\n\tfilter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678);\n\t}\n\n.leaflet-oldie .leaflet-control-zoom,\n.leaflet-oldie .leaflet-control-layers,\n.leaflet-oldie .leaflet-popup-content-wrapper,\n.leaflet-oldie .leaflet-popup-tip {\n\tborder: 1px solid #999;\n\t}\n\n\n/* div icon */\n\n.leaflet-div-icon {\n\tbackground: #fff;\n\tborder: 1px solid #666;\n\t}\n\n\n/* Tooltip */\n/* Base styles for the element that has a tooltip */\n.leaflet-tooltip {\n\tposition: absolute;\n\tpadding: 6px;\n\tbackground-color: #fff;\n\tborder: 1px solid #fff;\n\tborder-radius: 3px;\n\tcolor: #222;\n\twhite-space: nowrap;\n\t-webkit-user-select: none;\n\t-moz-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n\tpointer-events: none;\n\tbox-shadow: 0 1px 3px rgba(0,0,0,0.4);\n\t}\n.leaflet-tooltip.leaflet-interactive {\n\tcursor: pointer;\n\tpointer-events: auto;\n\t}\n.leaflet-tooltip-top:before,\n.leaflet-tooltip-bottom:before,\n.leaflet-tooltip-left:before,\n.leaflet-tooltip-right:before {\n\tposition: absolute;\n\tpointer-events: none;\n\tborder: 6px solid transparent;\n\tbackground: transparent;\n\tcontent: "";\n\t}\n\n/* Directions */\n\n.leaflet-tooltip-bottom {\n\tmargin-top: 6px;\n}\n.leaflet-tooltip-top {\n\tmargin-top: -6px;\n}\n.leaflet-tooltip-bottom:before,\n.leaflet-tooltip-top:before {\n\tleft: 50%;\n\tmargin-left: -6px;\n\t}\n.leaflet-tooltip-top:before {\n\tbottom: 0;\n\tmargin-bottom: -12px;\n\tborder-top-color: #fff;\n\t}\n.leaflet-tooltip-bottom:before {\n\ttop: 0;\n\tmargin-top: -12px;\n\tmargin-left: -6px;\n\tborder-bottom-color: #fff;\n\t}\n.leaflet-tooltip-left {\n\tmargin-left: -6px;\n}\n.leaflet-tooltip-right {\n\tmargin-left: 6px;\n}\n.leaflet-tooltip-left:before,\n.leaflet-tooltip-right:before {\n\ttop: 50%;\n\tmargin-top: -6px;\n\t}\n.leaflet-tooltip-left:before {\n\tright: 0;\n\tmargin-right: -12px;\n\tborder-left-color: #fff;\n\t}\n.leaflet-tooltip-right:before {\n\tleft: 0;\n\tmargin-left: -12px;\n\tborder-right-color: #fff;\n\t}\n\n/* Printing */\n\n@media print {\n\t/* Prevent printers from removing background-images of controls. */\n\t.leaflet-control {\n\t\t-webkit-print-color-adjust: exact;\n\t\tprint-color-adjust: exact;\n\t\t}\n\t}\n`,""]);const _=a},1113:$=>{"use strict";$.exports=function($,f){if(f.styleSheet)f.styleSheet.cssText=$;else{for(;f.firstChild;)f.removeChild(f.firstChild);f.appendChild(document.createTextNode($))}}},1126:($,f,t)=>{"use strict";t.d(f,{A:()=>u});var n=t(1601),i=t.n(n),e=t(6314),r=t.n(e)()(i());r.push([$.id,".graph-widget .dialog {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: rgba(33,33,33,0.46);\n z-index: 99;\n}\n\n.graph-widget .dialog > .dialog-content {\n position: absolute;\n display: block;\n width: 820px;\n max-width: 95%;\n min-height: 20px;\n max-height: 90%;\n background-color: var(--background);\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n transform-origin: center;\n box-shadow: 0 11px 15px -7px rgba(0, 0, 0, 0.2), 0 24px 38px 3px rgba(0,0,0,0.14), 0 9px 46px 8px rgba(0,0,0,0.12);\n border-radius: 4px;\n padding: 10px;\n color: var(--yfiles-primary-color);\n font-family: var(--default-font-family);\n animation: display .3s cubic-bezier(.25,.8,.25,1) forwards;\n}\n\n.graph-widget.dark-mode .dialog > .dialog-content {\n background: var(--elevation-color-1);\n}\n\n@keyframes display {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n}\n\n.graph-widget .dialog > .dialog-content .dialog-headline {\n font-size: 20px;\n font-weight: bold;\n margin: 0;\n vertical-align: middle;\n border-bottom: 2px solid var(--elevation-color-2);\n}\n\n.graph-widget .dialog .flex-container {\n display: flex;\n flex-direction: row;\n margin-top: 10px;\n}\n\n.graph-widget .dialog .flex-element {\n flex: 1;\n text-align: center;\n padding: 0 15px;\n}\n\n.graph-widget .dialog .flex-element:first-of-type {\n border-right: 2px solid var(--elevation-color-2);\n}\n\n.graph-widget .dialog .button {\n display: flex;\n justify-content: center;\n align-items: center;\n border: none;\n height: 36px;\n border-radius: 4px;\n margin: 30px auto 20px auto;\n cursor: pointer;\n position: relative;\n font-size: 14px;\n padding: 0 12px;\n background-color: transparent;\n text-decoration: none;\n color: var(--yfiles-blue)\n}\n\n.graph-widget .dialog .button.secondary {\n border: thin solid var(--yfiles-primary-color);\n}\n\n.graph-widget .dialog .button.secondary.inline {\n display: inline-block;\n padding-left: 5px;\n padding-right: 5px;\n margin: 0 5px;\n color: var(--yfiles-primary-color);\n}\n\n.graph-widget .dialog .button.secondary.inline .mdi-icon {\n margin-right: 3px;\n}\n\n.graph-widget .dialog .button .mdi-icon {\n width: 20px;\n height: 20px;\n margin-right: 8px;\n vertical-align: middle;\n}\n\n.graph-widget .dialog .button[disabled] {\n cursor: default !important;\n opacity: 0.5;\n}\n\n.graph-widget .dialog .button:not([disabled]):hover {\n background-color: var(--toolbar-button-color);\n}\n\n.graph-widget .dialog code {\n color: var( --yfiles-primary-color) !important;\n}\n\n\n/**\nExport Dialog\n */\n\n.graph-widget .export-dialog .step-number {\n font-weight: bold;\n font-size: 27px;\n margin-top: 0;\n}\n\n.graph-widget .export-dialog .drag-button {\n position: relative;\n display: inline-block;\n margin: 0 auto;\n cursor: move;\n z-index: 4;\n border: 2px dashed #bbb;\n background-color: #f2f2f2;\n border-radius: 10px;\n}\n\n.graph-widget .export-dialog .drag-button:hover .drag-button-icon {\n filter: drop-shadow(0px 4px 3px rgba(33,33,33,.4));\n transform: translateY(-3px);\n}\n.graph-widget .export-dialog .drag-button:hover + .drag-arrow:after {\n left: 120%;\n transition: left .8s linear;\n}\n\n.graph-widget .export-dialog .drag-button-icon {\n position: relative;\n width: 100px;\n height: 100px;\n filter: drop-shadow(0px 2px 2px rgba(33,33,33,.4));\n transition: filter .3s ease, transform .3s ease;\n}\n\n.graph-widget .export-dialog .pointer-icon {\n position: absolute;\n bottom: -15px;\n right: -15px;\n pointer-events: none;\n width: 40px;\n stroke: #383838;\n stroke-width: 0.4;\n background: radial-gradient(white 25%, rgba(255, 255, 255, 0) 60%);\n}\n\n.graph-widget .export-dialog .drag-arrow {\n position: absolute;\n display: inline-block;\n width: 100px;\n height: 100px;\n animation: arrow-anim 1.5s linear infinite forwards;\n}\n\n.graph-widget .export-dialog .drag-arrow svg {\n width: 100%;\n height: 100%;\n stroke: #bbb;\n stroke-width: .1;\n stroke-linejoin: bevel;\n transform: scale(2);\n}\n\n.graph-widget .export-dialog .drag-arrow:before {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n left: -30px;\n height: 100%;\n width: 120px;\n background: linear-gradient(to right, white, rgba(255, 255, 255, 0));\n z-index: 1;\n}\n\n.graph-widget .export-dialog .drag-arrow:after {\n content: '';\n position: absolute;\n display: block;\n top: 0;\n left: -75%;\n height: 100%;\n width: 70px;\n background: linear-gradient(to right, rgba(255, 255, 255, 0), rgba(255, 255, 255, .7), rgba(255, 255, 255, 0));\n z-index: 2;\n transition: none;\n}\n\n.graph-widget .export-dialog .download-note {\n text-align: center;\n}\n\n.graph-widget .dialog .button.yed-live-button {\n background-color: var(--yed-color);\n margin-top: 30px;\n}\n\n.graph-widget .dialog .button.yed-live-button:not([disabled]):hover {\n background-color: #b9f319;\n}\n\n.graph-widget .dialog .button.data-explorer-button {\n background-color: var(--data-explorer-color);\n margin-top: 30px;\n}\n\n.graph-widget .dialog .button.data-explorer-button:not([disabled]):hover {\n background-color: #f8fa20;\n}\n\n@keyframes arrow-anim {\n 0% {\n opacity: 0;\n transform: translateX(-50px);\n }\n 25% {\n opacity: 1;\n }\n 50% {\n opacity: 1;\n transform: translateX(0);\n }\n 60% {\n opacity: 1;\n }\n 100% {\n opacity: 0;\n transform: translateX(50px);\n }\n}",""]);const u=r},1209:$=>{"use strict";$.exports="data:image/svg+xml,%3C%3Fxml version=%271.0%27 encoding=%27utf-8%27%3F%3E%3Csvg version=%271.1%27 xmlns=%27http://www.w3.org/2000/svg%27 xmlns:xlink=%27http://www.w3.org/1999/xlink%27 x=%270px%27 y=%270px%27 width=%2716px%27 height=%2716px%27 viewBox=%270 0 16 16%27 enable-background=%27new 0 0 16 16%27 xml:space=%27preserve%27%3E%3Cg%3E%3Cpolygon fill=%27%2352587a%27 points=%277,3 5,3 5,11 11,11 11,12 4,12 4,3 0,3 0,16 11,16 11,5 %27/%3E%3Cpolygon fill=%27%2352587a%27 points=%2712,3 16,3 12,0 %27/%3E%3Cpolygon fill=%27%2352587a%27 points=%2711,0 5,0 5,11 16,11 16,4 11,4%27/%3E%3C/g%3E%3C/svg%3E"},1295:function($,f,t){"use strict";var n=this&&this.__awaiter||function($,f,t,n){return new(t||(t=Promise))((function(i,e){function r($){try{s(n.next($))}catch($){e($)}}function u($){try{s(n.throw($))}catch($){e($)}}function s($){var f;$.done?i($.value):(f=$.value,f instanceof t?f:new t((function($){$(f)}))).then(r,u)}s((n=n.apply($,f||[])).next())}))};Object.defineProperty(f,"__esModule",{value:!0}),f.Toolbar=f.DATA_EXPLORER_URL=f.YED_LIVE_URL=void 0;const i=t(9379);t(4670),t(8318);const e=t(7875),r=t(5766),u=t(3376),s=t(9165),l=t(6185),o=t(5394),h=t(459),a=t(2782),c=t(4775);f.YED_LIVE_URL="https://www.yworks.com/yed-live/",f.DATA_EXPLORER_URL="https://www.yworks.com/data-explorer/";class m{constructor($,f,t,n,i,e){this.__Po=$,this.widgetRootElement=f,this.parentElement=t,this.leafletSupport=n,this.$dJ=i,this.toaster=e,this.layoutCancelled=!1,this.interactiveOrganicSupport=null,this.rootContainer=document.createElement("div"),this.rootContainer.className="toolbar",this.primaryToolbar=document.createElement("div"),this.primaryToolbar.className="toolbar-container primary elevation",this.secondaryToolbar=document.createElement("div"),this.secondaryToolbar.className="toolbar-container secondary elevation",this.externalsToolbar=document.createElement("div"),this.externalsToolbar.className="toolbar-container externals elevation",this.rootContainer.appendChild(this.primaryToolbar),this.rootContainer.appendChild(this.externalsToolbar),this.rootContainer.appendChild(this.secondaryToolbar),this.parentElement.appendChild(this.rootContainer),this.initializeToolbar()}initializeToolbar(){const $=0===this.__Po.graph.__Fk.size;this.addIconButton(this.primaryToolbar,"Zoom In","yIconZoomIn",($=>{a.LeafletSupport.isInMapMode(this.widgetRootElement)?$.target.dispatchEvent(new CustomEvent("yjg-zoom-in",{bubbles:!0})):this.__Po.__xq(i.Command.INCREASE_ZOOM,null)}),!1,"ZoomIn"),this.addIconButton(this.primaryToolbar,"Zoom Out","yIconZoomOut",($=>{a.LeafletSupport.isInMapMode(this.widgetRootElement)?$.target.dispatchEvent(new CustomEvent("yjg-zoom-out",{bubbles:!0})):this.__Po.__xq(i.Command.DECREASE_ZOOM,null)}),!1,"ZoomOut"),this.addIconButton(this.primaryToolbar,"Fit Diagram","yIconZoomFit",($=>{a.LeafletSupport.isInMapMode(this.widgetRootElement)?$.target.dispatchEvent(new CustomEvent("yjg-fit-content",{bubbles:!0})):this.__Po.__xq(i.Command.FIT_GRAPH_BOUNDS,null)}),!1,"FitDiagram"),this.addSeparator(this.primaryToolbar),this.addLayoutIconMenu(this.primaryToolbar,$),this.addIconButton(this.externalsToolbar,"Export to yEd Live","yed-live-logo",this.openInYedLive.bind(this),$,"exportYEdLive"),this.addIconButton(this.externalsToolbar,"Analyze in Data Explorer","data-explorer-logo",this.openInDataExplorer.bind(this),$,"exportDataExplorer");const f=document.fullscreenEnabled&&(!!this.widgetRootElement.requestFullscreen||!!this.widgetRootElement.mozRequestFullScreen||!!this.widgetRootElement.webkitRequestFullScreen||!!this.widgetRootElement.msRequestFullscreen);!h.isVsCodeEnv&&!h.isGoogleColabEnv&&f&&(this.addMdiIconButton(this.secondaryToolbar,"Toggle Fullscreen",s.mdiFullscreen,this.toggleAndFit.bind(this)),this.addSeparator(this.secondaryToolbar)),this.addIconToggleButton(this.secondaryToolbar,"Toggle Sidebar","yIconSidebarRight",!0,($=>{this.toggleHideSidebar.bind(this)(),a.LeafletSupport.isInMapMode(this.widgetRootElement)&&this.leafletSupport.invalidateMapSize()}))}toggleAndFit($){this.toggleFullscreen($),setTimeout((()=>{a.LeafletSupport.isInMapMode(this.widgetRootElement)||this.__Po.__xq(i.Command.FIT_GRAPH_BOUNDS,null)}),30)}openInYedLive($){const t=$.target;t.disabled=!0,h.isVsCodeEnv?o.Dialog.createYedLiveDialog(this.widgetRootElement,this.__Po,(()=>{t.disabled=!1})):this.openGraphIn(f.YED_LIVE_URL,(()=>(0,u.exportGraphML)(this.__Po).then(($=>({graphml:$})))),(()=>{t.disabled=!1}))}createDataExplorerBlob($,f,t){return{json:{metaData:$,nodes:f,edges:t}}}openInDataExplorer($){const t=$.target;t.disabled=!0;const n=this.__Po.graph.__Fk.map(($=>(0,u.consolidateDataObject)($.tag))).toArray(),i=this.__Po.graph.__Ek.map(($=>(0,u.consolidateDataObject)($.tag))).toArray();h.isVsCodeEnv?o.Dialog.createDataExplorerDialog(this.widgetRootElement,(()=>Promise.resolve(this.createDataExplorerBlob(this.__Po.graph.tag,n,i))),(()=>{t.disabled=!1})):this.openGraphIn(f.DATA_EXPLORER_URL,(()=>Promise.resolve(this.createDataExplorerBlob(this.__Po.graph.tag,n,i))),(()=>{t.disabled=!1}))}openGraphIn($,f,t){const i=setTimeout((()=>{alert("Target application not answering."),t()}),1e4),e=u=>n(this,void 0,void 0,(function*(){$.startsWith(u.origin)&&-1!==u.data.indexOf("listening")&&(window.clearTimeout(i),r.postMessage({source:"jupyter-widget",sending:!0},$),setTimeout((()=>n(this,void 0,void 0,(function*(){r.postMessage(Object.assign({source:"jupyter-widget"},yield f()),$)}))),500)),t(),window.removeEventListener("message",e)}));window.addEventListener("message",e);const r=window.open($)}static openFullscreen($){$.requestFullscreen?$.requestFullscreen():$.webkitRequestFullscreen?$.webkitRequestFullscreen():$.msRequestFullscreen&&$.msRequestFullscreen()}static closeFullscreen(){document.exitFullscreen?document.exitFullscreen():document.webkitExitFullscreen?document.webkitExitFullscreen():document.msExitFullscreen&&document.msExitFullscreen()}toggleFullscreen($){const f=this.widgetRootElement;if(f){const t=$.currentTarget;document.fullscreenElement?(m.closeFullscreen(),this.setButtonMdiIcon(t,s.mdiFullscreen)):(m.openFullscreen(f),this.setButtonMdiIcon(t,s.mdiFullscreenExit))}}toggleHideSidebar(){this.secondaryToolbar.querySelector(".yIconSidebarRight").classList.toggle("active"),this.widgetRootElement.classList.toggle("sidebar-right-hidden")}closeLayoutMenu(){this.primaryToolbar.querySelector(".icon-menu.layouts").classList.remove("show")}isLayoutMenuOpen(){return this.primaryToolbar.querySelector(".icon-menu.layouts").classList.contains("show")}addTextButton($,f,t,n){const i=document.createElement("button");i.className="button text",i.title=f,i.innerText=t,i.addEventListener("click",n),$.appendChild(i)}addMdiIconButton($,f,t,n){const i=document.createElement("button");i.className="button mdi-icon",i.title=f,i.addEventListener("click",n),this.setButtonMdiIcon(i,t),$.appendChild(i)}setButtonMdiIcon($,f){$.firstElementChild&&$.removeChild($.firstElementChild),$.appendChild((0,l.createIconSvg)(this.widgetRootElement,f))}addIconButton($,f,t,n,i=!1,e=null){const r=document.createElement("button");r.className=`button icon ${t}`,r.title=f,r.disabled=i,e&&(r.id=e),r.addEventListener("click",n),$.appendChild(r)}addIconToggleButton($,f,t,n,i){const e=document.createElement("button");e.className=`button toggle icon ${t}`,n&&e.classList.add("active"),e.title=f,e.addEventListener("click",($=>{i($)})),$.appendChild(e)}addSeparator($){const f=document.createElement("span");f.className="separator",$.appendChild(f)}addLayoutIconMenuEntry($,f,t){const i=t.key,e=document.createElement("li");if(e.className="layout-item",e.title=t.title,e.setAttribute("data-layout-id",i),"map"===i){const $=document.createElement("span");$.className="layout-mdi-icon";const f=(0,l.createIconSvg)(this.widgetRootElement,s.mdiMapMarkerRadius);$.appendChild(f),e.appendChild($)}const r=document.createElement("span");r.innerText=t.title,e.appendChild(r),e.addEventListener("click",(f=>n(this,void 0,void 0,(function*(){f.stopPropagation(),$.classList.remove("show");const t=e.getAttribute("data-layout-id");yield this.runLayout(t)})))),f.appendChild(e)}addNestedLayoutIconMenu($,f){const t=document.createElement("li");t.title=f.menuTitle,t.innerText=f.menuTitle,t.className="layout-item nested-layout",t.addEventListener("click",($=>$.stopPropagation()));const n=document.createElement("span");n.className="layout-mdi-icon";const i=(0,l.createIconSvg)(this.widgetRootElement,s.mdiMenuLeft);n.appendChild(i),t.prepend(n);const e=document.createElement("ul");e.className="icon-menu elevation layouts";for(const t of f.$lw)this.addLayoutIconMenuEntry($,e,t);t.appendChild(e),$.appendChild(t)}addLayoutIconMenu($,f=!1){const t=document.createElement("button");t.className="button icon layouts-menu-button",t.appendChild(document.createElement("span")),t.disabled=f;const i=document.createElement("ul");i.className="icon-menu elevation layouts";const e=m.getLayoutMenuStructure();for(const $ of e)void 0!==$.menuTitle?this.addNestedLayoutIconMenu(i,$):this.addLayoutIconMenuEntry(i,i,$);t.addEventListener("click",(()=>n(this,void 0,void 0,(function*(){t.classList.contains("yIconCancel")?(this.layoutCancelled=!0,yield r.LayoutSupport.INSTANCE.cancelLayout()):i.classList.toggle("show")})))),t.appendChild(i),$.appendChild(t)}toggleLeaflet($){this.widgetRootElement.querySelectorAll("#exportYEdLive, #exportDataExplorer").forEach((f=>f.disabled=null!=$?$:0===this.__Po.graph.__Fk.size)),this.setEdgeRouterAvailability(!$),this.leafletSupport.toggleMapOverlay($)}runLayout($,f=[]){return n(this,void 0,void 0,(function*(){const t=this.rootContainer.querySelector(".layouts-menu-button"),n=e.LAYOUT_ALGORITHMS[$];if(n)if(this.removeLayoutButtonMdiIcon(),"map"===this.getCurrentLayoutFromButton()?this.toggleLeaflet(!1):"interactive_organic"===this.getCurrentLayoutFromButton()&&this.stopInteractiveOrganicLayout(this.toaster),"map"===$)this.toggleLeaflet(!0),this.setCurrentLayoutButton($);else{t.classList.add("yIconCancel","loading-animation");const i=t.title;t.title=`Calculating ${m.getLayoutTitle($)} layout. Press to cancel.`;try{"interactive_organic"===$?this.startInteractiveOrganicLayout(this.__Po,this.$dJ,this.toaster):yield r.LayoutSupport.INSTANCE.morphLayout(this.__Po,n,f)}catch($){console.log("warning:"),console.warn($)}finally{t.classList.remove("yIconCancel","loading-animation"),this.layoutCancelled?(t.title=i,this.layoutCancelled=!1):this.setCurrentLayoutButton($)}}}))}setCurrentLayoutButton($){const f=this.rootContainer.querySelector(".layouts-menu-button");let t="Click to apply an automatic layout";if(e.LAYOUT_ALGORITHMS[$]&&(t=`Current layout: ${m.getLayoutTitle($)}. Click for more.`),f.title=t,f.setAttribute("data-current-layout",$),this.removeLayoutButtonMdiIcon(),"map"===$){const $=document.createElement("span");$.className="layout-mdi-icon";const t=(0,l.createIconSvg)(this.widgetRootElement,s.mdiMapMarkerRadius);$.appendChild(t),f.prepend($)}}removeLayoutButtonMdiIcon(){var $;const f=this.rootContainer.querySelector(".layouts-menu-button");(null===($=f.firstElementChild)||void 0===$?void 0:$.classList.contains("layout-mdi-icon"))&&f.removeChild(f.firstElementChild)}getCurrentLayoutFromButton(){return this.rootContainer.querySelector(".layouts-menu-button").getAttribute("data-current-layout")}static getLayoutTitle($){switch($){case"circular":case"hierarchic":case"organic":case"orthogonal":case"radial":case"tree":return $.substring(0,1).toUpperCase()+$.substring(1);case"orthogonal_edge_router":return"Orthogonal Edge Router";case"organic_edge_router":return"Organic Edge Router";case"interactive_organic":return"Interactive Organic Layout";case"circular_straight_line":return"Circular Straight Line";case"map":return"Geospatial Layout";default:throw new Error("Unknown Layout Key")}}static getLayoutMenuStructure(){const $=[],f={menuTitle:"Organic Layouts",$lw:[]},t={menuTitle:"Edge Routers",$lw:[]};for(const n of Object.keys(e.LAYOUT_ALGORITHMS)){if(!e.LAYOUT_ALGORITHMS[n].hidden)switch(n){case"organic":case"interactive_organic":f.$lw.push(e.LAYOUT_ALGORITHMS[n]);break;case"organic_edge_router":case"orthogonal_edge_router":t.$lw.push(e.LAYOUT_ALGORITHMS[n]);break;default:$.push(e.LAYOUT_ALGORITHMS[n])}}return[f,...$,t]}setEdgeRouterAvailability($){const f=document.querySelector(".icon-menu.layouts").querySelector("[title='Edge Routers']");$?f.removeAttribute("disabled"):f.setAttribute("disabled","")}startInteractiveOrganicLayout($,f,t){this.interactiveOrganicSupport&&this.stopInteractiveOrganicLayout(t),this.interactiveOrganicSupport=new c.InteractiveOrganicLayoutSupport($),this.interactiveOrganicSupport.start(f,t)}stopInteractiveOrganicLayout($){this.interact