hmpps-open-layers-map
Version:
A native Web Component for displaying maps using OpenLayers.
32 lines (31 loc) • 1 kB
JavaScript
export function createMapDOM() {
const fragment = document.createDocumentFragment();
const mapDiv = document.createElement('div');
mapDiv.id = 'map';
mapDiv.className = 'app-map__viewport';
fragment.appendChild(mapDiv);
const overlay = document.createElement('div');
overlay.className = 'app-map__overlay';
overlay.hidden = true;
overlay.innerHTML = `
<div class="app-map__overlay-header">
<button class="app-map__overlay-close" aria-label="Close overlay">×</button>
</div>
<div class="app-map__overlay-body">
<slot name="overlay"></slot>
</div>
`;
fragment.appendChild(overlay);
return fragment;
}
export function createScopedStyle(styles, nonce) {
const styleEl = document.createElement('style');
if (nonce) {
styleEl.setAttribute('nonce', nonce);
}
styleEl.textContent = styles;
return styleEl;
}
export function getMapNonce(mapEl) {
return mapEl?.getAttribute('csp-nonce') || null;
}