//!wrt $BSPEC:{"icn":"apps/mdview","cpr":"Copyright (C) Windows 96 Team 2023.","dsc":"MD Viewer","frn":"MD Viewer","ver":1,"ssy":"gui"}

const{DialogCreator:DialogCreator,MenuBar:MenuBar,Theme:Theme,OpenFileDialog:OpenFileDialog}=w96.ui;class MDViewApplication extends WApplication{constructor(){super()}async main(e){super.main(e),null!=e[1]?this._createWindow(e[1]):new OpenFileDialog("c:/",["md","MD"],(e=>{e?this._createWindow(e):this.terminate()})).show()}async _createWindow(e){const i=this.createWindow({initialWidth:470,initialHeight:400,title:FSUtil.fname(e)+" - MD Viewer",taskbar:!0,body:'<div class="appbar"></div>\n            <div class="mdview-container"></div>',icon:await Theme.getIconUrl("apps/mdview","16x16")},!0),t=i.getBodyContainer(),a=new MenuBar;a.addRoot("File",[{type:"normal",label:"Exit",onclick:()=>this.terminate()}]),t.querySelector(".appbar").replaceWith(a.getMenuDiv());const n=new showdown.Converter,o=t.querySelector(".mdview-container");try{const i=await FS.readstr(e);o.innerHTML=n.makeHtml(i)}catch(e){o.textContent="<Unable to load document>",DialogCreator.create({body:"Unable to load file.",icon:"Error",title:"MD Viewer"})}i.show()}}

return await WApplication.execAsync(new MDViewApplication(), this.boxedEnv.args, this);