Skip to content

Commit 37d69c1

Browse files
committed
Add backwards compatibility with <layer->, mostly.
1 parent 0d77803 commit 37d69c1

21 files changed

+554
-16
lines changed

src/layer-.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { BaseLayerElement } from './layer';
2+
3+
export class LayerDashElement extends BaseLayerElement {
4+
constructor() {
5+
super();
6+
// specific behavior for <map-layer>
7+
}
8+
}

src/layer.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Util } from './mapml/utils/Util';
22
import { MapMLLayer, mapMLLayer } from './mapml/layers/MapMLLayer';
33
import { createLayerControlHTML } from './mapml/elementSupport/layers/createLayerControlForLayer';
44

5-
export class HTMLLayerElement extends HTMLElement {
5+
export class BaseLayerElement extends HTMLElement {
66
static get observedAttributes() {
77
return ['src', 'label', 'checked', 'hidden', 'opacity'];
88
}
@@ -539,7 +539,10 @@ export class HTMLLayerElement extends HTMLElement {
539539
var i = 0,
540540
position = 1;
541541
for (var nodes = this.parentNode.children; i < nodes.length; i++) {
542-
if (this.parentNode.children[i].nodeName === 'MAP-LAYER') {
542+
if (
543+
this.parentNode.children[i].nodeName === 'MAP-LAYER' ||
544+
this.parentNode.children[i].nodeName === 'LAYER-'
545+
) {
543546
if (this.parentNode.children[i] === this) {
544547
position = i + 1;
545548
} else if (this.parentNode.children[i]._layer) {

src/map-extent.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export class HTMLExtentElement extends HTMLElement {
134134
return Util.getClosest(this, 'mapml-viewer,map[is=web-map]');
135135
}
136136
getLayerEl() {
137-
return Util.getClosest(this, 'map-layer');
137+
return Util.getClosest(this, 'map-layer,layer-');
138138
}
139139
attributeChangedCallback(name, oldValue, newValue) {
140140
if (this.#hasConnected /* jshint ignore:line */) {

src/map-feature.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ export class HTMLFeatureElement extends HTMLElement {
137137
return Util.getClosest(this, 'mapml-viewer,map[is=web-map]');
138138
}
139139
getLayerEl() {
140-
return Util.getClosest(this, 'map-layer');
140+
return Util.getClosest(this, 'map-layer,layer-');
141141
}
142142

143143
attributeChangedCallback(name, oldValue, newValue) {
@@ -168,6 +168,7 @@ export class HTMLFeatureElement extends HTMLElement {
168168
this._initialZoom = this.getMapEl().zoom;
169169
this._parentEl =
170170
this.parentNode.nodeName.toUpperCase() === 'MAP-LAYER' ||
171+
this.parentNode.nodeName.toUpperCase() === 'LAYER-' ||
171172
this.parentNode.nodeName.toUpperCase() === 'MAP-LINK'
172173
? this.parentNode
173174
: this.parentNode.host;

src/map-input.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@ export class HTMLInputElement extends HTMLElement {
183183
return Util.getClosest(this, 'mapml-viewer,map[is=web-map]');
184184
}
185185
getLayerEl() {
186-
return Util.getClosest(this, 'map-layer');
186+
return Util.getClosest(this, 'map-layer,layer-');
187187
}
188188
attributeChangedCallback(name, oldValue, newValue) {
189189
this.whenReady()

src/map-layer.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { BaseLayerElement } from './layer';
2+
3+
export class HTMLLayerElement extends BaseLayerElement {
4+
constructor() {
5+
super();
6+
// specific behavior for <map-layer>
7+
}
8+
}

src/map-link.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,7 @@ export class HTMLLinkElement extends HTMLElement {
163163
return Util.getClosest(this, 'mapml-viewer,map[is=web-map]');
164164
}
165165
getLayerEl() {
166-
return Util.getClosest(this, 'map-layer');
166+
return Util.getClosest(this, 'map-layer,layer-');
167167
}
168168

169169
attributeChangedCallback(name, oldValue, newValue) {
@@ -382,7 +382,13 @@ export class HTMLLinkElement extends HTMLElement {
382382
this.getRootNode().querySelector(':host > ' + s)
383383
: Util.getClosest(
384384
this,
385-
'map-extent:has(' + s + '),map-layer:has(' + s + ')'
385+
'map-extent:has(' +
386+
s +
387+
'),map-layer:has(' +
388+
s +
389+
'),layer-:has(' +
390+
s +
391+
')'
386392
)?.querySelector(s);
387393
let options = {
388394
zoomBounds: this.getZoomBounds(),

src/mapml-viewer.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { Util } from './mapml/utils/Util';
22
import { DOMTokenList } from './mapml/utils/DOMTokenList';
33

4-
import { HTMLLayerElement } from './layer.js';
4+
import { HTMLLayerElement } from './map-layer.js';
5+
import { LayerDashElement } from './layer-.js';
56
import { HTMLMapCaptionElement } from './map-caption.js';
67
import { HTMLFeatureElement } from './map-feature.js';
78
import { HTMLExtentElement } from './map-extent.js';
@@ -642,7 +643,7 @@ export class HTMLMapmlViewerElement extends HTMLElement {
642643
this.addEventListener(
643644
'change',
644645
function (e) {
645-
if (e.target.tagName === 'MAP-LAYER') {
646+
if (e.target.tagName === 'MAP-LAYER' || e.target.tagName === 'LAYER-') {
646647
this.dispatchEvent(
647648
new CustomEvent('layerchange', {
648649
details: { target: this, originalEvent: e }
@@ -1456,6 +1457,7 @@ try {
14561457
);
14571458
}
14581459
window.customElements.define('map-layer', HTMLLayerElement);
1460+
window.customElements.define('layer-', LayerDashElement);
14591461
window.customElements.define('map-caption', HTMLMapCaptionElement);
14601462
window.customElements.define('map-feature', HTMLFeatureElement);
14611463
window.customElements.define('map-extent', HTMLExtentElement);

src/mapml/elementSupport/layers/createLayerControlForLayer.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -263,7 +263,7 @@ export var createLayerControlHTML = async function () {
263263
layerEl.removeAttribute('data-moving');
264264
}
265265
// update zIndex of all map-layer elements
266-
let layers = mapEl.querySelectorAll('map-layer');
266+
let layers = mapEl.querySelectorAll('map-layer,layer-');
267267
for (let i = 0; i < layers.length; i++) {
268268
let layer = layers[i]._layer;
269269
if (layer.options.zIndex !== zIndex) {

src/mapml/features/path.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,8 @@ export var Path = L.Path.extend({
7777
while (nextLayer && onTop) {
7878
if (
7979
nextLayer.tagName &&
80-
nextLayer.tagName.toUpperCase() === 'MAP-LAYER'
80+
(nextLayer.tagName.toUpperCase() === 'MAP-LAYER' ||
81+
nextLayer.tagName.toUpperCase() === 'LAYER-')
8182
)
8283
onTop = !nextLayer.queryable();
8384
nextLayer = nextLayer.nextElementSibling;

0 commit comments

Comments
 (0)