- es2015-custom-element needs css variables declared in :host - external-map-map still does not work when editing in codesandbox, though that neither worked before.
42 lines
1.0 KiB
JavaScript
42 lines
1.0 KiB
JavaScript
import Map from '../src/ol/Map.js';
|
|
import OSM from '../src/ol/source/OSM.js';
|
|
import TileLayer from '../src/ol/layer/Tile.js';
|
|
import View from '../src/ol/View.js';
|
|
|
|
class OLComponent extends HTMLElement {
|
|
constructor() {
|
|
super();
|
|
this.shadow = this.attachShadow({mode: 'open'});
|
|
const link = document.createElement('link');
|
|
link.setAttribute('rel', 'stylesheet');
|
|
link.setAttribute('href', 'theme/ol.css');
|
|
this.shadow.appendChild(link);
|
|
const style = document.createElement('style');
|
|
style.innerText = `
|
|
:host {
|
|
display: block;
|
|
}
|
|
`;
|
|
this.shadow.appendChild(style);
|
|
const div = document.createElement('div');
|
|
div.style.width = '100%';
|
|
div.style.height = '100%';
|
|
this.shadow.appendChild(div);
|
|
|
|
this.map = new Map({
|
|
target: div,
|
|
layers: [
|
|
new TileLayer({
|
|
source: new OSM(),
|
|
}),
|
|
],
|
|
view: new View({
|
|
center: [0, 0],
|
|
zoom: 2,
|
|
}),
|
|
});
|
|
}
|
|
}
|
|
|
|
customElements.define('ol-map', OLComponent);
|