|
1 | 1 |
|
2 | 2 |
|
| 3 | +<!-- headers |
| 4 | + cross-origin-isolate |
| 5 | +--> |
| 6 | + |
| 7 | + |
3 | 8 | <!DOCTYPE html> |
4 | 9 |
|
5 | 10 | <html lang=en> |
|
17 | 22 | <link rel=canonical href='https://ext-code.com/utils/editors/js-console/js-console.html'> |
18 | 23 |
|
19 | 24 | <meta name=viewport content='width=device-width, initial-scale=1'> |
20 | | - <link rel=icon type='image/png' href='images/js-console-favicon.png'> |
| 25 | + <link rel=icon type='image/png' href='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAB4FBMVEX/3wD/3gD/4QD+4AD31wDy0wD32AD+3wDt0AB2ZwBfUwBeUgCKeQD62gD73QDDqgBwYgBDOwA3MABvYQDBqQD/4ADjxgAiHQAAAABCOgD21wD42gCIdwASDwARDwCHdgAiHgClkQAKCQAIBwCciAD01QBEOwAGBQBXTABbTwAmIQCrlQDewgAdGgDx1AD/4wCDcgBkVwDZvgDavwAaFgBMQgD42wD32gDrzQAvKQAMCwCGdQDpzAD+3gByZAADAwAzLACLeQDcwAD93wDcwQA2LwABAQAhHQB+bgDjxwDUugBORADGrgDw0wCjjgD/4gDy1AC3oABWSwALCQB9bQCVggAJCAD11wDu0QDJsAD63ADfxAAeGwBFPADRtwDpzwAqJQAxKwDu0AD62wBKQAAaFwC1nwC0ngBZTQD93QCahgArJQBBOQDTuAC8pQAUEQA9NQDz1QC/pwAXFAAdGQBtXwB0ZgAnIgCNfAA6MwBmWQCDcwBqXQAfGwBzZADoywAoIwDbwAC6owAeGgAkIADXvQBJQAAEAwAkHwCznQA9NgAEBAAwKgChjQBaTwA7MwCBcADWuwDszgCnkgBlWABAOAA0LgBYTQCWgwD83QDx0wD52QD+4QDw0gD83AD///80U23rAAAAAWJLR0Sf6LWTnQAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAAd0SU1FB+gMGw8AOrl7kF8AAAGXSURBVDjL7ZJVUwMxFIWTFCgOLaRcurhLobi7FV/cW9y1uLu7O/xWwhaYUtodXpnhPGzmzP12k3M2CP3rX39D2OgpihGJlbWNlFhCbe3sHRyd2NTZxVUml7m5O5snqcIDwFOJEOflDe/y8eXMklThJ4DEPwAMCgyiyDJIg0MAQsMcwwMgIhKJgEQVBSCLVnMxsXFUbGsSnwCQmERRMkcshTFsnZIKkJaeQSy28xkmM4vlyM7JzcunWBSkBYXvkYs0xSVEtB5MSstChXrk5VQMZGRFpafQZWq8OfILZOKrqmtqGVln0ji7BgjTkg+QSqQY8Vx9A7ONJlhTcwuirW0AWhtEVL46nr3X3gHQ2fXtg93uPb19RN3PzjUwqBwahpFRKU/GxgEm9MYcmZwCmJ6ZnWOHmlenLLBFs7i0vMLW1e8p1rQf1wXWNyjd3Pp0sK0jxqkx2dndEwb7ByylZPLwSHBFx5umoYntyemZvOf8QoIwi3Z5dX1ze3Z3r/jxZzDlH/SPT8+GAXP5yhf9K0/xz7qxiPut3gACakyeVGPirgAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyNC0xMi0yN1QxNTowMDo1MiswMDowMDd07d8AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjQtMTItMjdUMTU6MDA6NTIrMDA6MDBGKVVjAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAAABJRU5ErkJggg=='> |
21 | 26 |
|
22 | 27 | <script type='application/ld+json'> |
23 | 28 | { |
|
49 | 54 | console.log('js-console-v2.0.html'); |
50 | 55 | console.log(); |
51 | 56 | console.json=v=>console.log(JSON.stringify(v,null,4)); |
52 | | - var df=true,version='v2.0' |
53 | | - ; |
| 57 | + var version='v2.0'; |
| 58 | + var df=true,did='js-console'; |
54 | 59 |
|
55 | 60 | var ace; |
56 | 61 | var obfuscator; |
|
62 | 67 | var menumod; |
63 | 68 | var keydown; |
64 | 69 | var debug; |
| 70 | + var ls; |
65 | 71 |
|
66 | 72 | var menu; |
67 | 73 |
|
68 | 74 | var hdr; |
69 | 75 | var mainmenu; |
70 | 76 | var filemod; |
| 77 | + var autosave; |
71 | 78 | var publish; |
72 | 79 | var editor; |
73 | 80 | var output; |
|
83 | 90 | menu = menumod(); |
84 | 91 |
|
85 | 92 |
|
86 | | - mod.base.add({ext,$,datatype,keydown,menu,menumod,ace}); |
| 93 | + mod.base.add({ext,$,datatype,keydown,menu,menumod,ace,ls}); |
87 | 94 |
|
88 | 95 |
|
89 | 96 | hdr = mod['editors-hdr']; |
90 | 97 | mainmenu = mod['main-menu']; |
91 | 98 | filemod = mod['file-mod']; |
| 99 | + autosave = mod['auto-save']; |
92 | 100 | publish = mod['publish-ui']; |
93 | 101 | editor = mod['web-editor']; |
94 | 102 | output = mod['output-console'] |
|
100 | 108 | hdr.initmod({ext,$,menu}); |
101 | 109 | mainmenu.initmod({ext,$,menu,editor,filemod}); |
102 | 110 | filemod.initmod({ext,$,menu,menumod,complete,source,focus,log}); |
| 111 | + autosave.initmod({$,menu,keydown,log,save:btn.save}); |
103 | 112 | publish.initmod({ext,$,ui,menu,source,complete,log}); |
104 | 113 | editor.initmod({ext,$,menu,ace,on}); |
105 | 114 | output.initmod({ext,$}); |
106 | 115 | log.initmod({ext,$}); |
107 | 116 |
|
| 117 | + |
108 | 118 | await Promise.all([ |
109 | 119 | mainmenu.init(), |
110 | 120 | hdr.init(), |
111 | 121 | filemod.init(), |
| 122 | + autosave.init(), |
112 | 123 | publish.init(), |
113 | 124 | editor.init(), |
114 | 125 | output.init(), |
|
118 | 129 |
|
119 | 130 | //: |
120 | 131 |
|
| 132 | + |
121 | 133 | icon.def = $('[rel*=icon]').href; |
122 | 134 |
|
123 | 135 | window.onfocus = ()=>editor && editor.focus(); |
|
128 | 140 | initdom(document.body); |
129 | 141 |
|
130 | 142 |
|
| 143 | + publish.query(); |
| 144 | + |
| 145 | + |
131 | 146 | }//init |
132 | 147 |
|
133 | 148 |
|
|
140 | 155 |
|
141 | 156 | ({ext} = await import('https://libs.ext-code.com/js/io/ext-loader/ext-loader.m.js')); |
142 | 157 |
|
| 158 | + var lsmod; |
| 159 | + |
143 | 160 | var promise = ext.load.libs( |
144 | 161 | 'js/dom/$.js', |
145 | 162 | 'js/core/datatype.js', |
146 | 163 | 'js/dom/menumod/menumod.js', |
147 | 164 | 'js/dom/keydown/keydown.js', |
148 | | - 'js/debug/debug.js' |
| 165 | + 'js/debug/debug.js', |
| 166 | + 'js/core/ls-mod/ls-mod.js', |
149 | 167 | ); |
150 | | - [$,datatype,menumod,keydown,debug] = await promise; |
| 168 | + [$,datatype,menumod,keydown,debug,lsmod] = await promise; |
| 169 | + |
| 170 | + ls = lsmod(); |
151 | 171 |
|
152 | 172 | mod.stack.complete; |
153 | 173 |
|
|
250 | 270 |
|
251 | 271 | <div id=save-root> |
252 | 272 | <button id=save>save</button> |
253 | | - <checkbox-one id=autosave></checkbox-one> |
254 | | - <div id=save-menu-root class=menu-root> |
255 | | - <img id=save-menu-icon class=menu-icon> |
256 | | - <div id=save-menu class=menu style='display:none'> |
257 | | - </div> |
258 | | - </div> |
| 273 | + <auto-save v2.0 component=grp></auto-save> |
259 | 274 | </div> |
260 | 275 |
|
261 | 276 | <publish-ui component></publish-ui> |
|
303 | 318 |
|
304 | 319 |
|
305 | 320 |
|
306 | | - |
307 | | - <checkbox-one-template> |
308 | | - <script src='https://html-loader-1024713184986.us-central1.run.app/'></script> |
309 | | - </checkbox-one-template> |
310 | | - |
311 | | - |
312 | 321 | </body> |
313 | 322 |
|
314 | 323 |
|
|
317 | 326 |
|
318 | 327 | var root; |
319 | 328 |
|
320 | | - var autosave; |
| 329 | + //var autosave; |
321 | 330 |
|
322 | 331 | var iframe; |
323 | 332 |
|
|
345 | 354 | menu.add.style(); |
346 | 355 |
|
347 | 356 |
|
348 | | - hdr.initdom(); |
349 | | - |
350 | | - |
351 | | - mainmenu.initdom(root); |
352 | | - |
353 | | - filemod.initdom(root); |
354 | | - |
355 | | - |
356 | 357 | $(root,'#save').onclick = btn.save; |
357 | 358 |
|
358 | | - var card = $(root,'#save-root .menu'); |
359 | | - $(root,'.menu-icon').onclick = menu.click(card,false,false); |
| 359 | + //var card = $(root,'#save-root .menu'); |
| 360 | + //$(root,'.menu-icon').onclick = menu.click(card,false,false); |
360 | 361 |
|
361 | | - autosave = $(root,'#autosave'); |
362 | | - autosave.checked = false; |
| 362 | + |
| 363 | + //autosave = $(root,'#autosave'); |
| 364 | + //autosave.checked = false; |
363 | 365 |
|
364 | 366 |
|
365 | | - publish.initdom(root); |
366 | 367 |
|
367 | 368 | $(root,'#run').onclick = run; |
368 | 369 | mode.iframe = $(root,'#iframe'); |
369 | 370 | mode.async = $(root,'#async'); |
| 371 | + |
370 | 372 | $(root,'#syntax-chk').onclick = btn.syntax; |
371 | 373 | $(root,'#prettier').onclick = btn.prettier; |
372 | 374 | $(root,'#terser').onclick = btn.terser; |
|
380 | 382 | var view = $('#view'); |
381 | 383 | ui.root = view; |
382 | 384 |
|
383 | | - editor.initdom(view,{mode:'javascript'}); |
384 | 385 |
|
385 | 386 | slider.node = $.slider('web-editor','#page-slider','output-console',slider,ui); |
386 | | - output.initdom(root); |
387 | 387 |
|
388 | 388 |
|
389 | | - log.initdom(); |
| 389 | + await Promise.all([ |
| 390 | + hdr.initdom(), |
| 391 | + mainmenu.initdom(root), |
| 392 | + filemod.initdom(root), |
| 393 | + autosave.initdom(), |
| 394 | + publish.initdom(root), |
| 395 | + editor.initdom(view,{mode:'javascript'}), |
| 396 | + output.initdom(root), |
| 397 | + log.initdom(), |
| 398 | + ]); |
390 | 399 |
|
391 | 400 |
|
392 | 401 |
|
393 | 402 | //ui.setup(view); |
394 | 403 |
|
395 | | - publish.query(); |
| 404 | + |
| 405 | + |
396 | 406 | editor.focus(); |
397 | 407 |
|
398 | 408 | query(); |
399 | 409 |
|
| 410 | + |
400 | 411 | }//initdom |
401 | 412 |
|
402 | 413 |
|
|
605 | 616 | function source(){ |
606 | 617 |
|
607 | 618 | var txt = editor.getValue(); |
| 619 | + |
| 620 | + if(autosave.trim.checked){ |
| 621 | + txt = autosave.txt.trim(txt); |
| 622 | + } |
| 623 | + |
608 | 624 | var blob = new Blob([txt]); |
609 | 625 | return blob; |
610 | 626 |
|
611 | 627 | }//source |
612 | 628 |
|
613 | 629 |
|
614 | 630 | function complete(file){ |
615 | | - console.log('complete',file); |
| 631 | + //console.log('complete',file); |
616 | 632 | if(file){ |
617 | 633 | editor.filename(file); |
618 | 634 | editor.filename.save.hide(); |
|
658 | 674 | //: |
659 | 675 |
|
660 | 676 |
|
| 677 | +/* |
661 | 678 | window.onmessage = function(e){ |
662 | 679 | |
663 | 680 | var err; |
|
685 | 702 | } |
686 | 703 | |
687 | 704 | }//onmessage |
688 | | - |
689 | | - |
| 705 | +*/ |
| 706 | + |
| 707 | + |
690 | 708 | //: |
691 | 709 |
|
692 | 710 |
|
|
753 | 771 |
|
754 | 772 |
|
755 | 773 | function run(){ |
756 | | - |
| 774 | + debug('run'); |
757 | 775 | if(autosave.checked){ |
758 | | - console.log('save'); |
| 776 | + debug('autosave'); |
759 | 777 | filemod.save(); |
760 | 778 | } |
761 | 779 |
|
762 | 780 |
|
763 | 781 | var js = editor.getValue(); |
764 | 782 |
|
765 | | - //if(mode.iframe.checked){ |
766 | | - output.run.iframe2(js,{async:mode.async.checked}); |
767 | | - //}else{ |
768 | | - //output.run(js,{async:mode.async.checked}); |
769 | | - //} |
| 783 | + output.run.iframe2(js,{async:mode.async.checked}); |
770 | 784 |
|
771 | 785 |
|
772 | 786 | }//run |
|
840 | 854 | }//favicon |
841 | 855 |
|
842 | 856 |
|
| 857 | + //: |
| 858 | + |
| 859 | + |
| 860 | + function debug(...args){ |
| 861 | + |
| 862 | + if(!df && !obj.df)return; |
| 863 | + args.unshift(`[ ${did} ]`); |
| 864 | + var fmt = Array.from({length:args.length}).fill('%O').join(' '); |
| 865 | + var args2 = [fmt].concat(args); |
| 866 | + console.groupCollapsed.apply(console,args2); |
| 867 | + console.trace(); |
| 868 | + console.groupEnd(); |
| 869 | + |
| 870 | + }//debug |
| 871 | + |
843 | 872 |
|
844 | 873 |
|
845 | 874 | </script> |
|
0 commit comments