blob: 359477d71095f7f51db4ff2d925773425b1e2067 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
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).reverse().forEach(scenario => {
const option = document.createElement('option');
option.setAttribute('value', scenario);
option.textContent = scenarios[scenario].title;
selectEl.prepend(option);
});
return {
selectCurrentOptionOnPageLoad() {
mapDialog.querySelectorAll('option').forEach((option, index) =>
option.selected = option.value === localStorage.getItem('map') || index === 0
);
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(scenarios[selectEl.value]?.hashed || `assets/images/${selectEl.value}.svg`);
mapDialog.close();
});
}
};
}
export const defaultMap = scenarios.sideShow;
|