Skip to content

Commit 11a083f

Browse files
save file
1 parent 6cdb0f0 commit 11a083f

File tree

1 file changed

+165
-0
lines changed

1 file changed

+165
-0
lines changed
Lines changed: 165 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,165 @@
1+
2+
3+
4+
<main-menu v2.0 style='position:relative'>
5+
6+
<template shadowrootmode=open>
7+
8+
<style>
9+
10+
#icon
11+
{padding:3px;width:20px;background:buttonface}
12+
13+
.menu
14+
{position:absolute;left:0;top:35px;}
15+
16+
</style>
17+
18+
<img id=icon class=icon src='data:image/jpeg;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAAt1BMVEVHcEwbmPYcgfMchvQbsfkay/wbtvkbnfccefMayfwbmfYch/QchvQbtfkbmfYa1P0ddfIcivQcl/Ycj/Ubp/gcmfYdbPEbrvkazPwcmfYbqfgayfwayPwbv/sbvvobsvkazPwbqvga0fwbvPobtvocjvUbofcbpvccfPMcgPMcgvMdafAdbfEckfUbtvka0PwcfPIaxvsbwfsbvPodb/EcnPYclvYckfUbpvccjPQdd/IbofcbrPiPy8D0AAAAMHRSTlMAA/79/v7+5ycVZ3Y3h0xhu9jp8kFeF9OkVfQOrZi+Mh1z/iUJQ+/dx4fOYq7hybzs5xU1AAABIklEQVQ4y+2Ux3aDMBBFpTR6M92AwYB7S6EG/v+7MsJJnBBKVsnGdwHozT1HQgxC6MrfEkiSM+Y4khSgUxhazLDHWGF4QveAO2gyLnGQ9QS4wcDaXGJYiPGegVnU50UzUvdgTsd7AfrMaEaqXvO+sfAAHP0uzz+SmhCfR7FwB5gdpm+SyoeHEJ5P67o2tbanmRBP5/iSgFkUxaplaisIv3kAu6yqihK/RiIF0ZJtT6NTaZpS9iWwm0D/uXB7kmXZ5LOgN0O7ayvEQ57nKtssCbMqDA5i9+YulLIsVQ5MzKnwqCz6Phev3AIcxhy5K3x/A/DbG2CzIdctP9RS9PrxnTU92KOYll8bZHqs7Wk5AcY9hIx9kuyN3/xuxm5nXA+df+cNJSAgjMbiFSoAAAAASUVORK5CYII='>
19+
20+
<div class=menu style='display:none'>
21+
<div id=new class=menu-opt>new</div>
22+
<div id=fork class=menu-opt>fork</div>
23+
<div class=menu-sep></div>
24+
<div id=ex-1 class=menu-opt>example 1</div>
25+
<div class=menu-sep></div>
26+
<div id=source class=menu-opt>markdown editor source code</div>
27+
</div>
28+
29+
</template>
30+
31+
32+
33+
<script>
34+
35+
(function main_menu({mod,dom,host}){
36+
37+
var obj = {
38+
version : 'v2.0',
39+
};
40+
41+
42+
var $,menu,editor
43+
;
44+
45+
obj.initmod = function(params){
46+
47+
$ = params.$;
48+
editor = params.editor;
49+
menu = params.menu;
50+
51+
}//initmod
52+
53+
54+
//vars:-
55+
56+
57+
var click = {};
58+
59+
60+
//:
61+
62+
63+
obj.init = function(){
64+
}//init
65+
66+
67+
//:
68+
69+
70+
obj.initdom = function(rootnode){
71+
72+
var shadow = host.shadowRoot;
73+
74+
var style = $(shadow,'style');
75+
$.stylesheet.copyrule('#page-inline','.icon',style);
76+
77+
menu.add.style(shadow);
78+
79+
80+
var card = $(shadow,'.menu');
81+
$(shadow,'#icon').onclick = menu.click(card,false,false,click.menu);
82+
83+
84+
}//initdom
85+
86+
87+
//:
88+
89+
90+
click.menu = function(type,opt){
91+
92+
if(type=='opt'){
93+
click.menu[opt.id]();
94+
}
95+
96+
}//menu
97+
98+
99+
click.menu.new = function(){
100+
101+
var win = window.open('');
102+
return win;
103+
104+
}//new
105+
106+
107+
click.menu.fork = function(){
108+
109+
var win = menu.new();
110+
var txt = editor.getValue();
111+
win.postMessage({txt},'*');
112+
113+
}//fork
114+
115+
116+
click.menu.source = function(){
117+
118+
window.open('https://github.com/javascript-2020/javascript-2020.github.io/tree/main/utils/editors/markdown-editor');
119+
120+
}//source
121+
122+
123+
click.menu['ex-1'] = async function(){
124+
125+
var url = 'https://raw.githubusercontent.com/javascript-2020/javascript-2020.github.io/main/utils/editors/markdown-editor/examples/example-1.md';
126+
var err;
127+
try{
128+
129+
var res = await fetch(url);
130+
131+
}//try
132+
catch(err2){
133+
134+
err = err2;
135+
136+
}//catch
137+
if(err){
138+
console.error(err);
139+
return;
140+
}
141+
if(!res.ok){
142+
console.log('failed to load example 1',res.status);
143+
return;
144+
}
145+
146+
var txt = await res.text();
147+
editor.setValue(txt);
148+
149+
}//ex-1
150+
151+
152+
153+
154+
return obj;
155+
156+
})//main_menu
157+
158+
159+
</script>
160+
161+
162+
</main-menu>
163+
164+
165+

0 commit comments

Comments
 (0)