diff options
author | Hsieh Chin Fan <pham@topo.tw> | 2024-10-06 01:04:41 +0800 |
---|---|---|
committer | Hsieh Chin Fan <pham@topo.tw> | 2024-10-06 01:04:41 +0800 |
commit | 2196bc17775419d177e9c1d337368ab3adfe3163 (patch) | |
tree | 6713ad47bdbf51a9129c5689bf73703dd6132667 /src | |
parent | e70a97fd2cee8f87d52748ebd87ec799554f681b (diff) |
refactor: patch 8d1b346, set order correctly
Diffstat (limited to 'src')
-rw-r--r-- | src/editor.mjs | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/src/editor.mjs b/src/editor.mjs index c121eb0..dfafaa9 100644 --- a/src/editor.mjs +++ b/src/editor.mjs | |||
@@ -833,25 +833,31 @@ new window.MutationObserver(mutaions => { | |||
833 | // }}} | 833 | // }}} |
834 | 834 | ||
835 | /** | 835 | /** |
836 | * addMapRandomlyByPreset. insert text of valid mapclay yaml into editor | 836 | * addMapRandomlyByPreset. insert random text of valid mapclay yaml into editor |
837 | */ | 837 | */ |
838 | const addMapRandomlyByPreset = () => { | 838 | const addMapRandomlyByPreset = () => { |
839 | const yamlText = [ | ||
840 | 'apply: dist/default.yml', | ||
841 | 'width: 85%', | ||
842 | 'height: 200px', | ||
843 | ] | ||
839 | const order = [ | 844 | const order = [ |
845 | 'id', | ||
846 | 'apply', | ||
840 | 'use', | 847 | 'use', |
848 | 'width', | ||
849 | 'height', | ||
841 | 'center', | 850 | 'center', |
842 | 'XYZ', | 851 | 'XYZ', |
843 | 'zoom' | 852 | 'zoom' |
844 | ] | 853 | ] |
845 | const aliasesEntries = Object.entries(aliasesForMapOptions) | 854 | const aliasesEntries = Object.entries(aliasesForMapOptions) |
846 | .sort((a, b) => order.indexOf(a) < order.indexOf(b)) | 855 | .filter(([key, _]) => |
847 | .filter(([key, _]) => order.includes(key)) | 856 | order.includes(key) |
857 | && !yamlText.find(text => text.startsWith(key)) | ||
858 | ) | ||
848 | if (aliasesEntries.length === 0) return | 859 | if (aliasesEntries.length === 0) return |
849 | 860 | ||
850 | const yamlText = [ | ||
851 | 'apply: dist/default.yml', | ||
852 | 'width: 100%', | ||
853 | 'height: 200px', | ||
854 | ] | ||
855 | aliasesEntries.forEach(([option, aliases]) => { | 861 | aliasesEntries.forEach(([option, aliases]) => { |
856 | const entries = Object.entries(aliases) | 862 | const entries = Object.entries(aliases) |
857 | const validEntries = entries | 863 | const validEntries = entries |
@@ -869,9 +875,15 @@ const addMapRandomlyByPreset = () => { | |||
869 | const randomValue = validEntries | 875 | const randomValue = validEntries |
870 | .at((Math.random() * validEntries.length) | 0) | 876 | .at((Math.random() * validEntries.length) | 0) |
871 | .at(0) | 877 | .at(0) |
878 | |||
872 | yamlText.push(`${option}: ${typeof randomValue === 'object' ? randomValue.value : randomValue}`) | 879 | yamlText.push(`${option}: ${typeof randomValue === 'object' ? randomValue.value : randomValue}`) |
880 | |||
881 | if (option === 'center') yamlText.push(`id: ${randomValue}`) | ||
873 | }) | 882 | }) |
874 | 883 | ||
884 | yamlText.sort((a, b) => | ||
885 | order.indexOf(a.split(':')[0]) > order.indexOf(b.split(':')[0]) | ||
886 | ) | ||
875 | cm.replaceRange( | 887 | cm.replaceRange( |
876 | '\n```map\n' + yamlText.join('\n') + '\n```\n', | 888 | '\n```map\n' + yamlText.join('\n') + '\n```\n', |
877 | cm.getCursor() | 889 | cm.getCursor() |