55 lines
1.4 KiB
JavaScript
55 lines
1.4 KiB
JavaScript
import { scenarios } from './scenarios.js';
|
|
|
|
export function init() {
|
|
const showButton = document.getElementById('show-dialog'),
|
|
mapDialog = document.getElementById('map-dialog'),
|
|
selectEl = mapDialog.querySelector('select'),
|
|
confirmBtn = mapDialog.querySelector('#confirm-btn');
|
|
|
|
Object.keys(scenarios).forEach(scenario => {
|
|
const option = document.createElement('option');
|
|
option.setAttribute('value', scenario);
|
|
option.textContent = scenarios[scenario];
|
|
selectEl.appendChild(option);
|
|
});
|
|
|
|
return {
|
|
selectCurrentOptionOnPageLoad() {
|
|
mapDialog.querySelectorAll('option').forEach(option =>
|
|
option.value === localStorage.getItem('map') && (option.selected = true)
|
|
);
|
|
|
|
return this;
|
|
},
|
|
|
|
showOnClick() {
|
|
showButton.addEventListener('click', () => {
|
|
mapDialog.showModal();
|
|
});
|
|
|
|
return this;
|
|
},
|
|
|
|
updateValueOnSelection() {
|
|
selectEl.addEventListener('change', () => {
|
|
confirmBtn.value = selectEl.value;
|
|
});
|
|
|
|
return this;
|
|
},
|
|
|
|
changeMapOnConfirm(loadFn) {
|
|
confirmBtn.addEventListener('click', e => {
|
|
e.preventDefault();
|
|
localStorage.removeItem('pan-zoom');
|
|
localStorage.setItem('map', selectEl.value);
|
|
// loadFn(`assets/images/${selectEl.value}.svg`);
|
|
loadFn(selectEl.value);
|
|
mapDialog.close();
|
|
});
|
|
}
|
|
};
|
|
}
|
|
|
|
export const defaultMap = scenarios.sideShow;
|