UNPKG

thematic-earth

Version:

HTML-based, whole-Earth thematic maps using locally hosted data layers

2 lines 1.4 kB
/* Copyright (c) 2023 Read Write Tools. Legal use subject to the Thematic Earth Software License Agreement. */ import BasePanel from'../panels/base-panel.class.js';export default class DistancePanel extends BasePanel{constructor(e){super(e),Object.seal(this)}registerBroadcasters(){}registerReceivers(){this.signal.listen('greatCircles/distanceFeatureAdded',(e=>{var t,a=this.querySelector('#distance-table tbody'),s=e.featureId,n=e.embarkationName,r=e.destinationName,i=`${Math.round(e.distance)} km`;1==a.children.length&&('TR'==(t=a.children[0]).tagName&&t.hasAttribute('data-instructions')&&(t.remove(),a.innerHTML='<tr><th>Point A</th><th>Point B</th><th>Distance</th><th>Clear</th></tr>'));(t=document.createElement('tr')).setAttribute('data-feature-id',s),t.innerHTML=`<td class='chef-center'>${n}</td><td class='chef-center'>${r}</td><td class='chef-center'>${i}</td><td class='chef-center'><kbd class='chef-kbd' tabindex=0 id=feature-${s} title='remove distance line'>✗</kbd></td>`,a.append(t),this.getElementById(`feature-${s}`).addEventListener('click',(async e=>{(await this.thematicEarthElement.earth.catalog.getDistanceSpatialFile()).removeFeature(s),this.thematicEarthElement.invalidateCanvas(),this.querySelector(`#distance-table tr[data-feature-id="${s}"]`).remove()}));var c=this.getDockablePanels();c.toolbar.isExpanded||c.detachPanel('distance'),c.expandPanel('distance')}))}}