UNPKG

thematic-earth

Version:

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

2 lines 3.2 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';import expect from'../dev/expect.js';export default class LegendPanel extends BasePanel{constructor(e){super(e),Object.seal(this)}registerBroadcasters(){}registerReceivers(){this.signal.listen('catalog/layerAdded',(e=>{var t=e.layerId,a=e.layerName,l=e.identifiable,r=e.selectable,i=e.wantsLabels,s=e.zOrder;if('disallow'==l)var d='';else d=`<input id=layers-${t}-identifiable type=checkbox data-layer-id=${t} ${'yes'==l?'checked':''} />`;if('disallow'==r)var n='';else n=`<input id=layers-${t}-selectable type=checkbox data-layer-id=${t} ${'yes'==r?'checked':''} />`;if('disallow'==i)var c='';else c=`<input id=layers-${t}-labelable type=checkbox data-layer-id=${t} ${'yes'==i?'checked':''} />`;var h=this.getElementById('layers-table-body'),y=document.createElement('tr');y.id=`layers-${t}`,y['data-z-order']=s,y.innerHTML=`\n\t\t\t\t<td class='chef-center'><input id=layers-${t}-visible type=checkbox data-layer-id=${t} checked /></td>\t\t\t\t\t\n\t\t\t\t<td style='padding: 0 10px'>${a}</td>\n\t\t\t\t<td class='chef-center'>${d}</td>\t\t\t\t\t\n\t\t\t\t<td class='chef-center'>${n}</td>\t\t\t\t\t\n\t\t\t\t<td class='chef-center'>${c}</td>`;let b=!1;for(let e=0;e<h.children.length;e++)if(h.children[e]['data-z-order']>s){h.insertBefore(y,h.children[e]),b=!0;break}b||h.appendChild(y),this.thematicEarthElement.invalidateCanvas(),this.getElementById(`layers-${t}-visible`).addEventListener('change',(e=>{var t=e.currentTarget.attributes['data-layer-id'].value;t=parseInt(t,10);var a=e.currentTarget.checked,l=this.thematicEarthElement.getLayer(t);expect(l,'Layer'),l.changeVisibility(a);var r=this.thematicEarthElement.getSpatialFile(l.spatialId);expect(r,['Space','Sphere','Night','Crosshairs','Graticule','NamedMeridians','NamedParallels','GreatCircles','PlaceOfInterest','TopojsonSpatialFile','GcsSpatialFile']),r.changeVisibility(a);var i=this.getElementById(`layers-${t}-identifiable`);null!=i&&(i.disabled=!a);var s=this.getElementById(`layers-${t}-selectable`);null!=s&&(s.disabled=!a);var d=this.getElementById(`layers-${t}-labelable`);null!=d&&(d.disabled=!a),this.signal.broadcast('user/layerVisibilityChanged',{layerId:l.layerId,layerName:l.layerName,visibility:a})}));var g=this.getElementById(`layers-${t}-identifiable`);null!=g&&g.addEventListener('change',(e=>{var t=e.currentTarget.attributes['data-layer-id'].value;t=parseInt(t,10);var a=e.currentTarget.checked,l=this.thematicEarthElement.getLayer(t);expect(l,'Layer'),l.changeIdentifiability(a)}));var p=this.getElementById(`layers-${t}-selectable`);null!=p&&p.addEventListener('change',(e=>{var t=e.currentTarget.attributes['data-layer-id'].value;t=parseInt(t,10);var a=e.currentTarget.checked,l=this.thematicEarthElement.getLayer(t);expect(l,'Layer'),l.changeSelectability(a)}));var v=this.getElementById(`layers-${t}-labelable`);null!=v&&v.addEventListener('change',(e=>{var t=e.currentTarget.attributes['data-layer-id'].value;t=parseInt(t,10);var a=e.currentTarget.checked,l=this.thematicEarthElement.getLayer(t);expect(l,'Layer'),l.changeLabelability(a)}))}))}}