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

const{WindowParams:WindowParams}=w96,{Theme:Theme,MsgBoxSimple:MsgBoxSimple}=w96.ui;class UploaderApplication extends WApplication{constructor(){super()}async main(e){super.main(e),this._createWindow()}async _createWindow(){var e=new WindowParams;e.title="Uploader",e.initialWidth=300,e.initialHeight=150,e.resizable=!1;var t=this.createWindow(e,!0);t.registerWindow(),t.registerAppBar(),t.setControlBoxStyle("WS_CBX_CLOSE"),t.setHtml('Choose files below and press "Start" to upload them.<br><br>The uploaded files will be saved to the desktop.\n        <br>\n        <input type="file" class="w96-textbox" multiple=""><br>\n        <button class="w96-button start">Start</button>');const s=t.wndObject.querySelector(".window-html-content");s.classList.add("uploader-app"),t.setWindowIcon(await Theme.getIconUrl("apps/uploader","16x16"));const i=s.querySelector(".start"),o=s.querySelector("input");i.onclick=async()=>{i.disabled=!0;const e=MsgBoxSimple.idleProgress("Upload in progress","The selected files are being saved, please wait...");e.show();for(let e=0;e<o.files.length;e++){const t=o.files.item(e);console.log("Writing c:/user/desktop/"+t.name);const s=new Uint8Array(await t.arrayBuffer());await FS.writebin("c:/user/desktop/"+t.name,s)}setTimeout((()=>{i.disabled=!1,e.closeDialog()}),250)},t.show(),t.center()}}

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