diff options
Diffstat (limited to 'src/editor.mjs')
-rw-r--r-- | src/editor.mjs | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/src/editor.mjs b/src/editor.mjs index ecf3735..fd18f78 100644 --- a/src/editor.mjs +++ b/src/editor.mjs | |||
@@ -20,12 +20,25 @@ import * as tutorial from './tutorial' | |||
20 | const url = new URL(window.location) | 20 | const url = new URL(window.location) |
21 | const pageParams = url.searchParams | 21 | const pageParams = url.searchParams |
22 | const crs = pageParams.get('crs') ?? 'EPSG:4326' | 22 | const crs = pageParams.get('crs') ?? 'EPSG:4326' |
23 | const initialLayout = pageParams.get('layout') | ||
23 | 24 | ||
24 | /** Variables: dumbymap and editor **/ | 25 | /** Variables: dumbymap and editor **/ |
25 | const context = document.querySelector('[data-mode]') | 26 | const context = document.querySelector('[data-mode]') |
27 | const textArea = document.querySelector('.editor textarea') | ||
26 | const dumbyContainer = document.querySelector('.DumbyMap') | 28 | const dumbyContainer = document.querySelector('.DumbyMap') |
27 | dumbyContainer.dataset.scrollLine = '' | 29 | dumbyContainer.dataset.scrollLine = '' |
28 | const textArea = document.querySelector('.editor textarea') | 30 | /** Watch: Layout of DumbyMap */ |
31 | new window.MutationObserver(mutaions => { | ||
32 | const mutation = mutaions.at(-1) | ||
33 | const layout = dumbyContainer.dataset.layout | ||
34 | if (layout !== 'normal' || mutation.oldValue === 'normal') { | ||
35 | delete context.dataset.mode | ||
36 | } | ||
37 | }).observe(dumbyContainer, { | ||
38 | attributes: true, | ||
39 | attributeFilter: ['data-layout'], | ||
40 | attributeOldValue: true, | ||
41 | }) | ||
29 | let dumbymap | 42 | let dumbymap |
30 | 43 | ||
31 | /** Variables: Reference Style Links in Markdown */ | 44 | /** Variables: Reference Style Links in Markdown */ |
@@ -472,7 +485,11 @@ const updateDumbyMap = (callback = null) => { | |||
472 | 485 | ||
473 | callback?.(dumbymap) | 486 | callback?.(dumbymap) |
474 | } | 487 | } |
475 | updateDumbyMap() | 488 | updateDumbyMap(() => { |
489 | if (initialLayout) { | ||
490 | dumbyContainer.dataset.layout = initialLayout | ||
491 | } | ||
492 | }) | ||
476 | 493 | ||
477 | // Re-render HTML by editor content | 494 | // Re-render HTML by editor content |
478 | cm.on('change', (_, change) => { | 495 | cm.on('change', (_, change) => { |
@@ -931,20 +948,6 @@ document.onkeydown = e => { | |||
931 | 948 | ||
932 | // }}} | 949 | // }}} |
933 | // }}} | 950 | // }}} |
934 | // Layout Switch {{{ | ||
935 | new window.MutationObserver(mutaions => { | ||
936 | const mutation = mutaions.at(-1) | ||
937 | const layout = dumbyContainer.dataset.layout | ||
938 | if (layout !== 'normal' || mutation.oldValue === 'normal') { | ||
939 | delete context.dataset.mode | ||
940 | } | ||
941 | }).observe(dumbyContainer, { | ||
942 | attributes: true, | ||
943 | attributeFilter: ['data-layout'], | ||
944 | attributeOldValue: true, | ||
945 | }) | ||
946 | // }}} | ||
947 | |||
948 | /** | 951 | /** |
949 | * addMapRandomlyByPreset. insert random text of valid mapclay yaml into editor | 952 | * addMapRandomlyByPreset. insert random text of valid mapclay yaml into editor |
950 | */ | 953 | */ |