@social-mail/social-mail-client 1.2.262 → 1.2.263

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1615,7 +1615,7 @@ and limitations under the License.
1615
1615
  }
1616
1616
  }
1617
1617
  }
1618
- `.installLocal();_export("default",AtomHtmlEditor=class AtomHtmlEditor extends AtomControl{get htmlContent(){var _a,_b;try{return(_b=(_a=this.editor)===null||_a===void 0?void 0:_a.innerHTML)!==null&&_b!==void 0?_b:this.initialContent}catch(ex){console.warn(ex)}}set htmlContent(v){if(this.editor){this.editor.innerHTML=v}else{this.initialContent=v}AtomBinder.refreshValue(this,"htmlContent")}insertImage(s,e){return showImageDialog(s,e)}executeCommand(cmd,showUI,value){const r=this.editorDocument.execCommand(cmd,showUI,value);setTimeout((()=>this.version++),1);return r}queryCommandState(cmd,...a){return this.editorDocument.queryCommandState(cmd)}getStyle(name,v){try{const node=this.editorWindow.getSelection().getRangeAt(0);const e=node.startContainer.parentElement;return this.editorWindow.getComputedStyle(e)[name]}catch(ex){return null}}onPropertyChanged(name){super.onPropertyChanged(name);if(name==="tags"){this.setupTags()}}setupTags(){const doc=this.editorDocument;if(!doc){return}if(Array.isArray(this.tags)){for(const{name,style}of this.tags){if(style){const styleElement=doc.createElement("style");styleElement.textContent=`*[data-command=${name}] {\n ${style.toStyleSheet()}\n }`;doc.head.appendChild(styleElement)}}}}preCreate(){this.version=1;this.files=[];this.runAfterInit((()=>{this.setup()}));this.element.classList.add(css);this.element.classList.add("html-editor")}onPasteEvent(e){if(!e.clipboardData.types.find((x=>x==="text/html"))){return}const d=e.clipboardData.getData("text/plain");if(d){const s=window.getSelection();const r=s.getRangeAt(0);let last;const tags=[];for(const iterator of d.split("\n")){const text=iterator.trim();if(!text){continue}last=document.createElement("p");last.innerText=iterator;tags.push(last)}while(tags.length){r.insertNode(tags.pop())}r.setStartAfter(last)}e.preventDefault()}onInputEvent(e){console.log(e)}setup(){var _a;const frame=this.element.getElementsByTagName("iframe")[0];const doc=frame.contentWindow.document;doc.open();const baseUrl=`${location.protocol}//${location.host}`;doc.writeln(`<base href="${baseUrl}"></base><div id="editor"><p>&nbsp;</p></div>`);doc.close();const style=doc.createElement("style");style.textContent=`body {\n font-family: arial,sans-serif\n }\n #editor {\n min-height: 500px;\n }\n *[data-prompt] {\n background: yellow\n }\n `;doc.head.appendChild(style);doc.body.addEventListener("click",(e=>preventLinkClick(e,this.element,doc)));this.editor=doc.getElementById("editor");this.editor.contentEditable="true";this.editor.innerHTML=(_a=this.initialContent)!==null&&_a!==void 0?_a:"";doc.execCommand("styleWithCSS");doc.execCommand("insertBrOnReturn");const updateVersion=()=>setTimeout((()=>{this.version++;AtomBinder.refreshValue(this,"htmlContent");this.element.dispatchEvent(new CustomEvent("documentUpdated",{detail:this.editor}));this.documentUpdated(this.editor)}),1);this.editor.addEventListener("click",updateVersion);this.editor.addEventListener("keydown",updateVersion);this.editor.addEventListener("keypress",updateVersion);this.editor.addEventListener("input",updateVersion);this.editorWindow=frame.contentWindow;this.editorDocument=doc;updateVersion();this.documentCreated(this.editor);this.element.dispatchEvent(new CustomEvent("documentCreated",{detail:this.editor}));this.registerDisposable({dispose:()=>{this.editor.removeEventListener("click",updateVersion);this.editor.removeEventListener("keydown",updateVersion);this.editor.removeEventListener("keypress",updateVersion);this.editor.removeEventListener("input",updateVersion)}});this.bindEvent(this.element,"editorClick",(ce=>{var _a,_b;const{detail:{data,target}}=ce;if(data.prompt){const element=target;const result=prompt("Enter "+((_a=data.promptTitle)!==null&&_a!==void 0?_a:data.prompt),data.promptDefault);if(result){const replace=((_b=data.replace)!==null&&_b!==void 0?_b:"textContent").split(",").map((x=>x.trim()));for(const iterator of replace){const template=element.getAttribute("data-"+iterator+"-template")||element.getAttribute("data-template");if(template){element[iterator]=template.replace(data.prompt,result)}else{element[iterator]=result}}}return}if(this.tags){for(const{name,handler}of this.tags){if(name===data.command||name===data.clickEvent){handler(ce)}}}}));this.setupTags()}documentCreated(e){}documentUpdated(e){}render(node,e,creator){this.render=super.render;if(!node.children||node.children.length===0){node.children[0]=XNode.create(Toolbar,null,XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,null),XNode.create(Separator,null),XNode.create(Headings,null),XNode.create(ChangeColor,null),XNode.create(HorizontalRule,null),XNode.create(Separator,null),XNode.create(ChangeFont,null),XNode.create(ChangeFontSize,null),XNode.create(Separator,null),XNode.create(NumberedList,null),XNode.create(UnorderedList,null),XNode.create(IndentLess,null),XNode.create(IndentMore,null),XNode.create(Separator,null),XNode.create(AddImage,null),XNode.create(AttachFile,null),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null),XNode.create(RemoveFormat,null),XNode.create(Separator,null),XNode.create(Source,null))}super.render(XNode.create("div",Object.assign({},node.attributes),...node.children,XNode.create(AtomRepeater,{class:"files","event-item-delete":ce=>this.files.remove(ce.detail),items:Bind.oneWay((()=>this.files)),itemRenderer:file=>XNode.create("div",{class:"file"},XNode.create("i",{class:"ri-attachment-2"}),XNode.create("label",{text:file.name}),XNode.create("i",{"data-click-event":"item-delete",class:"ri-close-circle-fill"}))}),XNode.create("iframe",{class:"editor-frame"})))}});__decorate([BindableProperty,__metadata("design:type",String)],AtomHtmlEditor.prototype,"content",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"header",void 0);__decorate([BindableProperty,__metadata("design:type",Number)],AtomHtmlEditor.prototype,"version",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"files",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"tags",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor");System.register(["tslib","@web-atoms/core/dist/core/types","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,UMD,FetchBuilder,MonacoService,monacoPath,codeModelChangedDisposable;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){monacoPath=UMD.resolvePath("@social-mail/social-mail-client/content/modules/monaco/monaco.html");codeModelChangedDisposable=Symbol("codeModelChangedDisposable");_export("default",MonacoService=class MonacoService{static createEditor(ctrl,iframe){return __awaiter(this,void 0,void 0,(function*(){const ms=new MonacoService;const srcdoc=yield FetchBuilder.get(monacoPath).responseAsText();const{monaco,editor}=yield new Promise(((resolve,reject)=>{iframe.parentEditor={resolve,reject,codeEditor:ctrl};iframe.srcdoc=srcdoc}));ctrl.registerDisposable({dispose:()=>{ms.monaco=null;ms.editor=null}});ms.monaco=monaco;ms.editor=editor;ms.languages=monaco.languages.getLanguages();return ms}))}clearModels(){for(const model of this.monaco.editor.getModels()){model.dispose()}}getLanguages(){return this.languages.map((x=>{var _a,_b,_c;return{label:(_b=(_a=x.aliases)===null||_a===void 0?void 0:_a[0])!==null&&_b!==void 0?_b:x.id,value:x.id,ext:(_c=x.extensions)===null||_c===void 0?void 0:_c[0],extensions:x.extensions}}))}createModel({code,url="http://a/file.html"}){const{monaco}=this;const uri=monaco.Uri.parse(url);const model=monaco.editor.getModel(uri);if(model){model.setValue(code);return model}return monaco.editor.createModel(code,void 0,uri)}setCodeModel(ctrl,code,url,clear=false){var _a;const{monaco,editor}=this;const uri=monaco.Uri.parse(url);let model=monaco.editor.getModel(uri);if(model){model.setValue(code);editor.setModel(model);return}(_a=ctrl[codeModelChangedDisposable])===null||_a===void 0?void 0:_a.dispose();if(clear){this.clearModels()}model=monaco.editor.createModel(code,void 0,uri);editor.setModel(model);let id=0;ctrl[codeModelChangedDisposable]=ctrl.registerDisposable(model.onDidChangeContent((()=>{if(id){clearTimeout(id)}id=setTimeout((()=>{var _a;const newCode=model.getValue();const ce=new CustomEvent("codeChanged",{bubbles:true,detail:{code:newCode,originalCode:code}});ctrl.element.dispatchEvent(ce);(_a=ctrl===null||ctrl===void 0?void 0:ctrl.onCodeChanged)===null||_a===void 0?void 0:_a.call(ctrl,newCode,code)}),500)})));return model}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/MonacoService");System.register(["tslib","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var __rest,AtomControl,XNode,labelPathSetter,valuePathSetter,valueSetter,refreshItems,itemsSetter;function Select(_a){var{items,labelPath,valuePath,value}=_a,a=__rest(_a,["items","labelPath","valuePath","value"]);a[labelPathSetter.property]=labelPath;a[valuePathSetter.property]=valuePath;a[valueSetter.property]=value;a[itemsSetter.property]=items;return XNode.create("select",Object.assign({},a))}_export("default",Select);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){labelPathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["labelPath"]=value}));valuePathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["valuePath"]=value}));valueSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["initialValue"]=value;setTimeout(refreshItems,1,element)}));refreshItems=(element,items)=>{var _a,_b;items!==null&&items!==void 0?items:items=element["items"];element.update=true;element.options.length=0;const cv=element["initialValue"];const lp=(_a=element["labelPath"])!==null&&_a!==void 0?_a:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};const vp=(_b=element["valuePath"])!==null&&_b!==void 0?_b:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};let i=0;let si=-1;for(const iterator of items){const option=document.createElement("option");const label=lp(iterator);const value=vp(iterator);option.text=label;option.value=value;element.options.add(option);if(cv!==void 0){if(cv==value){si=i}}i++}if(si!=-1){element.selectedIndex=si}element.update=false};itemsSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["items"]=value;setTimeout(refreshItems,1,element,value)}))}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/Select");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/Bind","../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","./MonacoService","@web-atoms/web-controls/dist/basic/Select"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,PopupWindowPage,isMobileView,Bind,SaveIconTextButton,Action,MonacoService,Select,CodeSnippetPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;isMobileView=_webAtomsWebControlsDistMobileAppMobileApp.isMobileView},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_MonacoService){MonacoService=_MonacoService.default},function(_webAtomsWebControlsDistBasicSelect){Select=_webAtomsWebControlsDistBasicSelect.default}],execute:function(){_export("default",CodeSnippetPage=class CodeSnippetPage extends PopupWindowPage{constructor(){super(...arguments);this.langaugeId="html";this.code=""}init(){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,(function*(){this.code=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.code)!==null&&_b!==void 0?_b:"";this.langaugeId=(_d=(_c=this.parameters)===null||_c===void 0?void 0:_c.languageId)!==null&&_d!==void 0?_d:"html";this.title="Insert Code Snippet";if(!isMobileView){this.element.style.minWidth="70vw";this.element.style.minHeight="60vh"}this.renderer=XNode.create("div",{"data-display":"grid","data-align-items":"stretch","data-justify-items":"stretch"},XNode.create("iframe",null));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-click-event":"save-code"}));const iframe=this.element.querySelector("iframe");this.monacoService=yield MonacoService.createEditor(this,iframe);this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create(Select,{items:this.monacoService.getLanguages(),value:Bind.twoWaysImmediate((()=>this.langaugeId)),"event-input":()=>setTimeout((()=>this.createModel()))}));this.createModel()}))}save(){return __awaiter(this,void 0,void 0,(function*(){this.code=this.textModel.getValue();const colorizedText=yield this.monacoService.monaco.editor.colorize(this.code,this.textModel.getLanguageId(),{});const colorized=yield this.colorize(colorizedText);return colorized}))}codeChanged({code}){this.code=code}createModel(){var _a,_b,_c;const lang=(_a=this.monacoService.languages.find((x=>x.id===this.langaugeId)))!==null&&_a!==void 0?_a:this.monacoService.languages[0];this.textModel=this.monacoService.setCodeModel(this,this.code,`http://a/file${(_c=(_b=lang.extensions)===null||_b===void 0?void 0:_b[0])!==null&&_c!==void 0?_c:".txt"}`)}colorize(code){return __awaiter(this,void 0,void 0,(function*(){}))}});__decorate([Action({onEvent:"save-code",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],CodeSnippetPage.prototype,"save",null);__decorate([Action({onEvent:"code-changed"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],CodeSnippetPage.prototype,"codeChanged",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/CodeSnippetPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent","../../../../code-editor/CodeSnippetPage"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,PageNavigator,PopupButton,MenuItem,UploadEvent,CodeSnippetPage;function Insert({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fas fa-plus",title:"Insert",alignment},XNode.create(MenuItem,{icon:"ri-list-unordered",label:"List","event-click":Bind.event((editor=>editor.executeCommand("insertUnorderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Numbered List","event-click":Bind.event((editor=>editor.executeCommand("insertOrderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Insert Code","event-click":Bind.event((editor=>__awaiter(this,void 0,void 0,(function*(){const code=yield PageNavigator.pushPageForResult(CodeSnippetPage);editor.executeCommand("insertHTML",void 0,`<pre style="margin: 5px; border: solid 1px lightgray; padding: 10px; border-radius: 10px;" contentEditable="true" spellcheck="false">${code}</pre><br/><p contentEditable="true"></p>`)}))))}),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",multiple:true,extra:{insert:true}}),{"data-click-event":"send-photos",icon:"fas fa-image",label:"Add Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",capture:"user",extra:{insert:true}}),{"data-click-event":"take-photo",icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,extra:{insert:true}}),{"data-click-event":"send-video",icon:"fas fa-file-video",label:"Add Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",extra:{insert:true}}),{"data-click-event":"record-video",icon:"fa-duotone fa-video-plus",label:"Record Video"})))}_export("default",Insert);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_codeEditorCodeSnippetPage){CodeSnippetPage=_codeEditorCodeSnippetPage.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Insert");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent"],(function(_export,_context){"use strict";var XNode,PopupButton,MenuItem,UploadEvent;function Attach({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fa-light fa-file-plus",title:"Attach",alignment},XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",multiple:true,extra:{}}),{icon:"fas fa-image",label:"Attach Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",capture:"user",extra:{}}),{icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,extra:{}}),{icon:"fas fa-file-video",label:"Attach Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",extra:{}}),{icon:"fa-duotone fa-video-plus",label:"Record Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"*/*",extra:{}}),{icon:"fa-duotone fa-file",label:"Attach Documents","style-min-width":"150px"})))}_export("default",Attach);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Attach");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode;function EmailLabel({recipient=void 0}){return XNode.create("a",{href:`mailto:${recipient.emailAddress.emailAddress}`},recipient.name&&XNode.create("span",null,'"',recipient.name,'"'),"<",recipient.emailAddress.emailAddress,">")}_export("default",EmailLabel);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailLabel");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode;function Loader(){return XNode.create("div",{"data-position":"absolute-fill","data-layout":"center-all"},XNode.create("i",{class:"fas fa-spinner fa-spin"}))}_export("default",Loader);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/Loader");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/controls/AtomControl","../../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../../../common/controls/audio/AudioRecorder","../service/ConversationService","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","../../../../common/events/CommonEvents","../service/MailService","@web-atoms/date-time/dist/DateTime","@web-atoms/core/dist/core/sleep","../../../../common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/Bold","@web-atoms/web-controls/dist/html-editor/commands/Italic","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Underline","@web-atoms/web-controls/dist/html-editor/commands/AddLink","@web-atoms/web-controls/dist/html-editor/commands/Unlink","@web-atoms/web-controls/dist/html-editor/commands/Separator","./Insert","@web-atoms/date-time/dist/TimeSpan","./Attach","@web-atoms/core/dist/core/types","@web-atoms/email-dom/dist/DomToString","../../../../common/controls/email-recipients/EmailLabel","../../../../common/controls/Loader","@web-atoms/core/dist/web/core/AtomUI"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,styled,AtomControl,AppFile,Email,Bind,Action,AudioRecorder,ConversationService,AtomRepeater,InjectProperty,CommonEvents,MailService,DateTime,sleep,MailHtmlEditor,Toolbar,Align,Bold,Italic,StrikeThrough,Underline,AddLink,Unlink,Separator,Insert,TimeSpan,Attach,CancelToken,DomToString,EmailLabel,Loader,descendentElementIterator,MiniComposeBox,css,defaultEmailBody;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_modelModel){AppFile=_modelModel.AppFile;Email=_modelModel.Email},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsAudioAudioRecorder){AudioRecorder=_commonControlsAudioAudioRecorder.default},function(_serviceConversationService){ConversationService=_serviceConversationService.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_serviceMailService){MailService=_serviceMailService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_commonControlsHtmlInlineHtmlEditorWithToolbar){MailHtmlEditor=_commonControlsHtmlInlineHtmlEditorWithToolbar.MailHtmlEditor},function(_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor){Toolbar=_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor.Toolbar},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_Insert){Insert=_Insert.default},function(_webAtomsDateTimeDistTimeSpan){TimeSpan=_webAtomsDateTimeDistTimeSpan.default},function(_Attach){Attach=_Attach.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsEmailDomDistDomToString){DomToString=_webAtomsEmailDomDistDomToString.default},function(_commonControlsEmailRecipientsEmailLabel){EmailLabel=_commonControlsEmailRecipientsEmailLabel.default},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator}],execute:function(){css=styled.css`
1618
+ `.installLocal();_export("default",AtomHtmlEditor=class AtomHtmlEditor extends AtomControl{get htmlContent(){var _a,_b;try{return(_b=(_a=this.editor)===null||_a===void 0?void 0:_a.innerHTML)!==null&&_b!==void 0?_b:this.initialContent}catch(ex){console.warn(ex)}}set htmlContent(v){if(this.editor){this.editor.innerHTML=v}else{this.initialContent=v}AtomBinder.refreshValue(this,"htmlContent")}insertImage(s,e){return showImageDialog(s,e)}executeCommand(cmd,showUI,value){const r=this.editorDocument.execCommand(cmd,showUI,value);setTimeout((()=>this.version++),1);return r}queryCommandState(cmd,...a){return this.editorDocument.queryCommandState(cmd)}getStyle(name,v){try{const node=this.editorWindow.getSelection().getRangeAt(0);const e=node.startContainer.parentElement;return this.editorWindow.getComputedStyle(e)[name]}catch(ex){return null}}onPropertyChanged(name){super.onPropertyChanged(name);if(name==="tags"){this.setupTags()}}setupTags(){const doc=this.editorDocument;if(!doc){return}if(Array.isArray(this.tags)){for(const{name,style}of this.tags){if(style){const styleElement=doc.createElement("style");styleElement.textContent=`*[data-command=${name}] {\n ${style.toStyleSheet()}\n }`;doc.head.appendChild(styleElement)}}}}preCreate(){this.version=1;this.files=[];this.runAfterInit((()=>{this.setup()}));this.element.classList.add(css);this.element.classList.add("html-editor")}onPasteEvent(e){if(!e.clipboardData.types.find((x=>x==="text/html"))){return}const d=e.clipboardData.getData("text/plain");if(d){const s=window.getSelection();const r=s.getRangeAt(0);let last;const tags=[];for(const iterator of d.split("\n")){const text=iterator.trim();if(!text){continue}last=document.createElement("p");last.innerText=iterator;tags.push(last)}while(tags.length){r.insertNode(tags.pop())}r.setStartAfter(last)}e.preventDefault()}onInputEvent(e){console.log(e)}setup(){var _a;const frame=this.element.getElementsByTagName("iframe")[0];const doc=frame.contentWindow.document;doc.open();const baseUrl=`${location.protocol}//${location.host}`;doc.writeln(`<base href="${baseUrl}"></base><div id="editor"><p>&nbsp;</p></div>`);doc.close();const style=doc.createElement("style");style.textContent=`body {\n font-family: arial,sans-serif\n }\n #editor {\n min-height: 500px;\n }\n *[data-prompt] {\n background: yellow\n }\n `;doc.head.appendChild(style);doc.body.addEventListener("click",(e=>preventLinkClick(e,this.element,doc)));this.editor=doc.getElementById("editor");this.editor.contentEditable="true";this.editor.innerHTML=(_a=this.initialContent)!==null&&_a!==void 0?_a:"";doc.execCommand("styleWithCSS");doc.execCommand("insertBrOnReturn");const updateVersion=()=>setTimeout((()=>{this.version++;AtomBinder.refreshValue(this,"htmlContent");this.element.dispatchEvent(new CustomEvent("documentUpdated",{detail:this.editor}));this.documentUpdated(this.editor)}),1);this.editor.addEventListener("click",updateVersion);this.editor.addEventListener("keydown",updateVersion);this.editor.addEventListener("keypress",updateVersion);this.editor.addEventListener("input",updateVersion);this.editorWindow=frame.contentWindow;this.editorDocument=doc;updateVersion();this.documentCreated(this.editor);this.element.dispatchEvent(new CustomEvent("documentCreated",{detail:this.editor}));this.registerDisposable({dispose:()=>{this.editor.removeEventListener("click",updateVersion);this.editor.removeEventListener("keydown",updateVersion);this.editor.removeEventListener("keypress",updateVersion);this.editor.removeEventListener("input",updateVersion)}});this.bindEvent(this.element,"editorClick",(ce=>{var _a,_b;const{detail:{data,target}}=ce;if(data.prompt){const element=target;const result=prompt("Enter "+((_a=data.promptTitle)!==null&&_a!==void 0?_a:data.prompt),data.promptDefault);if(result){const replace=((_b=data.replace)!==null&&_b!==void 0?_b:"textContent").split(",").map((x=>x.trim()));for(const iterator of replace){const template=element.getAttribute("data-"+iterator+"-template")||element.getAttribute("data-template");if(template){element[iterator]=template.replace(data.prompt,result)}else{element[iterator]=result}}}return}if(this.tags){for(const{name,handler}of this.tags){if(name===data.command||name===data.clickEvent){handler(ce)}}}}));this.setupTags()}documentCreated(e){}documentUpdated(e){}render(node,e,creator){this.render=super.render;if(!node.children||node.children.length===0){node.children[0]=XNode.create(Toolbar,null,XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,null),XNode.create(Separator,null),XNode.create(Headings,null),XNode.create(ChangeColor,null),XNode.create(HorizontalRule,null),XNode.create(Separator,null),XNode.create(ChangeFont,null),XNode.create(ChangeFontSize,null),XNode.create(Separator,null),XNode.create(NumberedList,null),XNode.create(UnorderedList,null),XNode.create(IndentLess,null),XNode.create(IndentMore,null),XNode.create(Separator,null),XNode.create(AddImage,null),XNode.create(AttachFile,null),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null),XNode.create(RemoveFormat,null),XNode.create(Separator,null),XNode.create(Source,null))}super.render(XNode.create("div",Object.assign({},node.attributes),...node.children,XNode.create(AtomRepeater,{class:"files","event-item-delete":ce=>this.files.remove(ce.detail),items:Bind.oneWay((()=>this.files)),itemRenderer:file=>XNode.create("div",{class:"file"},XNode.create("i",{class:"ri-attachment-2"}),XNode.create("label",{text:file.name}),XNode.create("i",{"data-click-event":"item-delete",class:"ri-close-circle-fill"}))}),XNode.create("iframe",{class:"editor-frame"})))}});__decorate([BindableProperty,__metadata("design:type",String)],AtomHtmlEditor.prototype,"content",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"header",void 0);__decorate([BindableProperty,__metadata("design:type",Number)],AtomHtmlEditor.prototype,"version",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"files",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"tags",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor");System.register(["tslib","@web-atoms/core/dist/core/types","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,UMD,FetchBuilder,MonacoService,monacoPath,codeModelChangedDisposable;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){monacoPath=UMD.resolvePath("@social-mail/social-mail-client/content/modules/monaco/monaco.html");codeModelChangedDisposable=Symbol("codeModelChangedDisposable");_export("default",MonacoService=class MonacoService{static createEditor(ctrl,iframe){return __awaiter(this,void 0,void 0,(function*(){const ms=new MonacoService;const srcdoc=yield FetchBuilder.get(monacoPath).responseAsText();const{monaco,editor}=yield new Promise(((resolve,reject)=>{iframe.parentEditor={resolve,reject,codeEditor:ctrl};iframe.srcdoc=srcdoc}));ctrl.registerDisposable({dispose:()=>{ms.monaco=null;ms.editor=null}});ms.monaco=monaco;ms.editor=editor;ms.languages=monaco.languages.getLanguages();return ms}))}clearModels(){for(const model of this.monaco.editor.getModels()){model.dispose()}}getLanguages(){return this.languages.map((x=>{var _a,_b,_c;return{label:(_b=(_a=x.aliases)===null||_a===void 0?void 0:_a[0])!==null&&_b!==void 0?_b:x.id,value:x.id,ext:(_c=x.extensions)===null||_c===void 0?void 0:_c[0],extensions:x.extensions}}))}createModel({code,url="http://a/file.html"}){const{monaco}=this;const uri=monaco.Uri.parse(url);const model=monaco.editor.getModel(uri);if(model){model.setValue(code);return model}return monaco.editor.createModel(code,void 0,uri)}setCodeModel(ctrl,code,url,clear=false){var _a;const{monaco,editor}=this;const uri=monaco.Uri.parse(url);let model=monaco.editor.getModel(uri);if(model){model.setValue(code);editor.setModel(model);return}(_a=ctrl[codeModelChangedDisposable])===null||_a===void 0?void 0:_a.dispose();if(clear){this.clearModels()}model=monaco.editor.createModel(code,void 0,uri);editor.setModel(model);let id=0;ctrl[codeModelChangedDisposable]=ctrl.registerDisposable(model.onDidChangeContent((()=>{if(id){clearTimeout(id)}id=setTimeout((()=>{var _a;const newCode=model.getValue();const ce=new CustomEvent("codeChanged",{bubbles:true,detail:{code:newCode,originalCode:code}});ctrl.element.dispatchEvent(ce);(_a=ctrl===null||ctrl===void 0?void 0:ctrl.onCodeChanged)===null||_a===void 0?void 0:_a.call(ctrl,newCode,code)}),500)})));return model}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/MonacoService");System.register(["tslib","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var __rest,AtomControl,XNode,labelPathSetter,valuePathSetter,valueSetter,refreshItems,itemsSetter;function Select(_a){var{items,labelPath,valuePath,value}=_a,a=__rest(_a,["items","labelPath","valuePath","value"]);a[labelPathSetter.property]=labelPath;a[valuePathSetter.property]=valuePath;a[valueSetter.property]=value;a[itemsSetter.property]=items;return XNode.create("select",Object.assign({},a))}_export("default",Select);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){labelPathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["labelPath"]=value}));valuePathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["valuePath"]=value}));valueSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["initialValue"]=value;setTimeout(refreshItems,1,element)}));refreshItems=(element,items)=>{var _a,_b;items!==null&&items!==void 0?items:items=element["items"];element.update=true;element.options.length=0;const cv=element["initialValue"];const lp=(_a=element["labelPath"])!==null&&_a!==void 0?_a:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};const vp=(_b=element["valuePath"])!==null&&_b!==void 0?_b:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};let i=0;let si=-1;for(const iterator of items){const option=document.createElement("option");const label=lp(iterator);const value=vp(iterator);option.text=label;option.value=value;element.options.add(option);if(cv!==void 0){if(cv==value){si=i}}i++}if(si!=-1){element.selectedIndex=si}element.update=false};itemsSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["items"]=value;setTimeout(refreshItems,1,element,value)}))}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/Select");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/Bind","../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","./MonacoService","@web-atoms/web-controls/dist/basic/Select"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,PopupWindowPage,isMobileView,Bind,SaveIconTextButton,Action,MonacoService,Select,CodeSnippetPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;isMobileView=_webAtomsWebControlsDistMobileAppMobileApp.isMobileView},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_MonacoService){MonacoService=_MonacoService.default},function(_webAtomsWebControlsDistBasicSelect){Select=_webAtomsWebControlsDistBasicSelect.default}],execute:function(){_export("default",CodeSnippetPage=class CodeSnippetPage extends PopupWindowPage{constructor(){super(...arguments);this.langaugeId="html";this.code=""}init(){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,(function*(){this.code=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.code)!==null&&_b!==void 0?_b:"";this.langaugeId=(_d=(_c=this.parameters)===null||_c===void 0?void 0:_c.languageId)!==null&&_d!==void 0?_d:"html";this.title="Insert Code Snippet";if(!isMobileView){this.element.style.minWidth="70vw";this.element.style.minHeight="60vh"}this.renderer=XNode.create("div",{"data-display":"grid","data-align-items":"stretch","data-justify-items":"stretch"},XNode.create("iframe",null));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-click-event":"save-code"}));const iframe=this.element.querySelector("iframe");this.monacoService=yield MonacoService.createEditor(this,iframe);this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create(Select,{items:this.monacoService.getLanguages(),value:Bind.twoWaysImmediate((()=>this.langaugeId)),"event-input":()=>setTimeout((()=>this.createModel()))}));this.createModel()}))}save(){return __awaiter(this,void 0,void 0,(function*(){this.code=this.textModel.getValue();const colorizedText=yield this.monacoService.monaco.editor.colorize(this.code,this.textModel.getLanguageId(),{});const colorized=yield this.colorize(colorizedText);return colorized}))}codeChanged({code}){this.code=code}createModel(){var _a,_b,_c;const lang=(_a=this.monacoService.languages.find((x=>x.id===this.langaugeId)))!==null&&_a!==void 0?_a:this.monacoService.languages[0];this.textModel=this.monacoService.setCodeModel(this,this.code,`http://a/file${(_c=(_b=lang.extensions)===null||_b===void 0?void 0:_b[0])!==null&&_c!==void 0?_c:".txt"}`)}colorize(code){return __awaiter(this,void 0,void 0,(function*(){}))}});__decorate([Action({onEvent:"save-code",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],CodeSnippetPage.prototype,"save",null);__decorate([Action({onEvent:"code-changed"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],CodeSnippetPage.prototype,"codeChanged",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/CodeSnippetPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent","../../../../code-editor/CodeSnippetPage"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,PageNavigator,PopupButton,MenuItem,UploadEvent,CodeSnippetPage;function Insert({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fas fa-plus",title:"Insert",alignment},XNode.create(MenuItem,{icon:"ri-list-unordered",label:"List","event-click":Bind.event((editor=>editor.executeCommand("insertUnorderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Numbered List","event-click":Bind.event((editor=>editor.executeCommand("insertOrderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Insert Code","event-click":Bind.event((editor=>__awaiter(this,void 0,void 0,(function*(){const code=yield PageNavigator.pushPageForResult(CodeSnippetPage);editor.executeCommand("insertHTML",void 0,`<pre style="margin: 5px; border: solid 1px lightgray; padding: 10px; border-radius: 10px;" contentEditable="true" spellcheck="false">${code}</pre><br/><p contentEditable="true"></p>`)}))))}),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",multiple:true,extra:{insert:true}}),{"data-click-event":"send-photos",icon:"fas fa-image",label:"Add Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",capture:"user",extra:{insert:true}}),{"data-click-event":"take-photo",icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,extra:{insert:true}}),{"data-click-event":"send-video",icon:"fas fa-file-video",label:"Add Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",extra:{insert:true}}),{"data-click-event":"record-video",icon:"fa-duotone fa-video-plus",label:"Record Video"})))}_export("default",Insert);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_codeEditorCodeSnippetPage){CodeSnippetPage=_codeEditorCodeSnippetPage.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Insert");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent"],(function(_export,_context){"use strict";var XNode,PopupButton,MenuItem,UploadEvent;function Attach({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fa-light fa-file-plus",title:"Attach",alignment},XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",multiple:true,extra:{}}),{icon:"fas fa-image",label:"Attach Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",capture:"user",extra:{}}),{icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,extra:{}}),{icon:"fas fa-file-video",label:"Attach Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",extra:{}}),{icon:"fa-duotone fa-video-plus",label:"Record Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"*/*",extra:{}}),{icon:"fa-duotone fa-file",label:"Attach Documents","style-min-width":"150px"})))}_export("default",Attach);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Attach");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode;function EmailLabel({recipient=void 0}){return XNode.create("a",{href:`mailto:${recipient.emailAddress.emailAddress}`},recipient.name&&XNode.create("span",null,'"',recipient.name,'"'),"<",recipient.emailAddress.emailAddress,">")}_export("default",EmailLabel);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailLabel");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode;function Loader(){return XNode.create("div",{"data-position":"absolute-fill","data-layout":"center-all"},XNode.create("i",{class:"fas fa-spinner fa-spin"}))}_export("default",Loader);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/Loader");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/controls/AtomControl","../../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../../../common/controls/audio/AudioRecorder","../service/ConversationService","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","../../../../common/events/CommonEvents","../service/MailService","@web-atoms/date-time/dist/DateTime","@web-atoms/core/dist/core/sleep","../../../../common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/Bold","@web-atoms/web-controls/dist/html-editor/commands/Italic","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Underline","@web-atoms/web-controls/dist/html-editor/commands/AddLink","@web-atoms/web-controls/dist/html-editor/commands/Unlink","@web-atoms/web-controls/dist/html-editor/commands/Separator","./Insert","@web-atoms/date-time/dist/TimeSpan","./Attach","@web-atoms/core/dist/core/types","@web-atoms/email-dom/dist/DomToString","../../../../common/controls/email-recipients/EmailLabel","../../../../common/controls/Loader","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/web-controls/dist/basic/TitleEditor"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,styled,AtomControl,AppFile,Email,Bind,Action,AudioRecorder,ConversationService,AtomRepeater,InjectProperty,CommonEvents,MailService,DateTime,sleep,MailHtmlEditor,Toolbar,Align,Bold,Italic,StrikeThrough,Underline,AddLink,Unlink,Separator,Insert,TimeSpan,Attach,CancelToken,DomToString,EmailLabel,Loader,descendentElementIterator,TitleEditor,MiniComposeBox,css,defaultEmailBody;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_modelModel){AppFile=_modelModel.AppFile;Email=_modelModel.Email},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsAudioAudioRecorder){AudioRecorder=_commonControlsAudioAudioRecorder.default},function(_serviceConversationService){ConversationService=_serviceConversationService.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_serviceMailService){MailService=_serviceMailService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_commonControlsHtmlInlineHtmlEditorWithToolbar){MailHtmlEditor=_commonControlsHtmlInlineHtmlEditorWithToolbar.MailHtmlEditor},function(_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor){Toolbar=_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor.Toolbar},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_Insert){Insert=_Insert.default},function(_webAtomsDateTimeDistTimeSpan){TimeSpan=_webAtomsDateTimeDistTimeSpan.default},function(_Attach){Attach=_Attach.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsEmailDomDistDomToString){DomToString=_webAtomsEmailDomDistDomToString.default},function(_commonControlsEmailRecipientsEmailLabel){EmailLabel=_commonControlsEmailRecipientsEmailLabel.default},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_webAtomsWebControlsDistBasicTitleEditor){TitleEditor=_webAtomsWebControlsDistBasicTitleEditor.default}],execute:function(){css=styled.css`
1619
1619
  display: grid;
1620
1620
  grid-template-columns: auto 1fr auto;
1621
1621
  grid-template-rows: auto 1fr auto;
@@ -1657,7 +1657,7 @@ and limitations under the License.
1657
1657
  border-color: transparent;
1658
1658
  }
1659
1659
 
1660
- & input.subject {
1660
+ & .subject {
1661
1661
  border-bottom: solid 1px lightgray;
1662
1662
  place-self: stretch;
1663
1663
  margin-left: 5px;
@@ -1667,8 +1667,12 @@ and limitations under the License.
1667
1667
  outline: none;
1668
1668
  border: none;
1669
1669
  border-bottom: solid 1px lightgray;
1670
+ & input {
1671
+ border: none;
1672
+ outline: none;
1673
+ }
1670
1674
  }
1671
- `.installLocal();defaultEmailBody=`<section style="background-color: white; color: black;">\n<section contentEditable="true">&nbsp;<br/></section>\n<footer data-social-mail-commands="emoji-bar"></footer>\n</section>`;_export("default",MiniComposeBox=class MiniComposeBox extends AtomControl{constructor(app,e){super(app,e);this.mailboxContact=null;this.draft=null;this.typedMessage="";this.active=false;this.savedSubject=void 0;this.savedBody=void 0;this.element.className=css;this.app.runAsync((()=>this.init()))}init(){var _a,_b,_c,_d,_e;var _f;return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null));yield sleep(100);(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=(_b=yield this.conversationService.getDraft(this.mailboxContact))===null||_b===void 0?void 0:_b.email;if(this.draft){(_c=(_f=this.draft).attachments)!==null&&_c!==void 0?_c:_f.attachments=[]}this.typedMessage=((_d=this.draft)===null||_d===void 0?void 0:_d.htmlBody)?this.draft.htmlBody:defaultEmailBody;this.renderer=XNode.create("div",null,XNode.create(MailHtmlEditor,{toolbar:()=>XNode.create("div",null,XNode.create(Toolbar,null,XNode.create(Insert,null),XNode.create(Separator,null),XNode.create(Attach,null),XNode.create(Separator,null),XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,{alignment:"above"}),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null)),XNode.create("input",{class:"subject",placeholder:"Subject ... ",value:Bind.sourceTwoWays(this,(x=>x.source.draft.subject))})),"data-element":"editor","data-html-editor":"email-editor",presenter:Bind.presenter((c=>this.editor=c)),content:this.typedMessage,"style-min-height":"50px",attachments:Bind.oneWay((()=>this.draft.attachments))}),XNode.create("i",{"data-element":"send",class:"fa-solid fa-microphone-lines mic","event-click":()=>this.sendAudioMessage(),"style-display":Bind.oneWay((()=>!this.typedMessage))}),XNode.create("i",{"data-element":"send",class:"fa-solid fa-angle-double-right send","style-display":Bind.oneWay((()=>!!this.typedMessage)),"data-click-event":"send-email"}),XNode.create(AtomRepeater,{"data-element":"files",items:Bind.oneWay((()=>{var _a;return(_a=this.draft)===null||_a===void 0?void 0:_a.attachments})),"style-display":Bind.oneWay((()=>this.draft&&this.draft.attachments&&this.draft.attachments.length>0),false),"data-layout":"flex-wrap-padding",itemRenderer:item=>XNode.create("div",{"data-layout":"icon-button"},XNode.create("label",{text:item.name}),XNode.create("i",{"data-click-event":"delete-attachment",class:"fas fa-times-circle","data-cursor":"pointer","data-color":"red"}))}));yield sleep(100);if(!this.draft.subject){(_e=this.editor.element.querySelector("input.subject"))===null||_e===void 0?void 0:_e.focus();return}const editor=this.editor.element.querySelector(`[data-element="editor"]`);for(const iterator of descendentElementIterator(editor)){if(iterator.isContentEditable){let start=iterator;let next;while((next=start.firstElementChild)&&next.tagName!=="BR"){start=next}start.focus();window.getSelection().setPosition(start.firstElementChild);return}}}))}filesAvailable({files,extra}){return __awaiter(this,void 0,void 0,(function*(){if(extra.stream){yield this.streamFiles({files,extra});return}const size=files.reduce(((pv,cv)=>pv+cv.file.size),0);if(size>20*1024*1024){if(!extra.stream){throw new Error(`Total size of attachments cannot be more than 20MB.`)}}if(extra.insert){this.ensureDraft();const firstChild=this.editor.editor.firstElementChild;for(const iterator of files){if(/^image\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("img");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}if(/^(video|audio)\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("video");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}}return}yield this.addFiles(...files)}))}streamFiles({files,extra}){return __awaiter(this,void 0,void 0,(function*(){}))}deleteAttachment(file){var _a;return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.deleteAttachment(file);(_a=this.draft)===null||_a===void 0?void 0:_a.attachments.remove(file)}))}recreateDraft(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){this.draft=null;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",attachments:[]});(_b=(_c=this.draft).attachments)!==null&&_b!==void 0?_b:_c.attachments=[]}))}onChanged(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.editor)===null||_a===void 0?void 0:_a.htmlTextContent)){return}(_b=this.draft)!==null&&_b!==void 0?_b:this.draft=Email.create({attachments:[]});const{html,text}=this.editor.htmlTextContent;if(this.savedSubject===this.draft.subject&&this.savedBody===html){return}if(this.prevSave){yield this.prevSave}this.savedSubject=this.draft.subject;this.savedBody=html;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save(false)}))}onEmailUnscheduled(mce){return __awaiter(this,void 0,void 0,(function*(){this.draft=mce.email}))}onForwardEmail(mce){var _a;return __awaiter(this,void 0,void 0,(function*(){if((_a=this.draft)===null||_a===void 0?void 0:_a.emailID){yield this.save(true);this.draft=null}this.ensureDraft();const{email}=mce;const{recipients}=email;const to=recipients===null||recipients===void 0?void 0:recipients.filter((x=>x.type==="to"));const cc=recipients===null||recipients===void 0?void 0:recipients.filter((x=>x.type==="cc"));this.draft.htmlBody=DomToString(XNode.create("section",{style:"background-color: white; color: black;"},XNode.create("section",{contentEditable:"true"}," ",XNode.create("br",null)),XNode.create("blockquote",{contentEditable:"false","data-type":"forwarded",style:"margin-inline-start: 20px; margin-inline-end: 0; border-left: solid 1px lightgray; padding-left: 10px;"},XNode.create("summary",null,XNode.create("div",null,"From: $",email.senderName," ",`<${email.senderEmail.emailAddress}>`),XNode.create("div",null,(to===null||to===void 0?void 0:to.length)&&XNode.create("div",null,XNode.create("label",{style:"margin-right:10px;"},"To:"),...to.map((x=>XNode.create(EmailLabel,{recipient:x})))),(cc===null||cc===void 0?void 0:cc.length)&&XNode.create("div",null,XNode.create("label",{style:"margin-right:10px;"},"CC:"),...cc.map((x=>XNode.create(EmailLabel,{recipient:x})))),XNode.create("div",null,XNode.create("label",{style:"margin-right:10px;"},"Subject:"),XNode.create("label",null,email.subject)),XNode.create("div",{"data-type":"html-body"},email.htmlBody)))),XNode.create("footer",{"data-social-mail-commands":"emoji-bar"})));this.editor.htmlContent=this.draft.htmlBody;const attachments=mce.email.attachments;if(attachments){for(const iterator of attachments){this.draft.attachments.add(AppFile.create(Object.assign(Object.assign({},iterator),{appFileID:void 0})))}}yield this.save(!!attachments)}))}onForwardEmailAsAttachment(mce){var _a;return __awaiter(this,void 0,void 0,(function*(){if((_a=this.draft)===null||_a===void 0?void 0:_a.emailID){yield this.save(true);this.draft=null}this.ensureDraft();const{email,signedFileLogID}=mce;const{mimeFileID}=email;this.draft.htmlBody=DomToString(XNode.create("section",{style:"background-color: white; color: black;"},XNode.create("section",{contentEditable:"true"}," ",XNode.create("br",null))));this.editor.htmlContent=this.draft.htmlBody;this.draft.attachments.add(AppFile.create({name:"forwarded.eml",sourceEmailLogID:mimeFileID!==null&&mimeFileID!==void 0?mimeFileID:signedFileLogID,contentType:"message/rfc822"}));yield this.save(true)}))}sendEmail(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.draft)===null||_a===void 0?void 0:_a.textBody)){if(!((_c=(_b=this.draft)===null||_b===void 0?void 0:_b.attachments)===null||_c===void 0?void 0:_c.length)){alert("Cannot send empty email");return}}const{html,text}=this.editor.htmlTextContent;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save();this.draft.status="scheduled";this.draft.dateSent=DateTime.now.add(TimeSpan.fromSeconds(30));this.draft.dateUpdated=DateTime.now;yield this.mailService.send(this.draft);this.draft=Email.create({subject:"",htmlBody:defaultEmailBody,attachments:[]});this.editor.htmlContent=this.draft.htmlBody}))}sendAudioMessage(){return __awaiter(this,void 0,void 0,(function*(){const uploadedFile=yield AudioRecorder.show();this.ensureDraft();this.draft.textBody=this.typedMessage;yield this.addFiles(uploadedFile)}))}addFiles(...files){return __awaiter(this,void 0,void 0,(function*(){this.ensureDraft();const attachments=this.draft.attachments;for(const file of files){attachments.add(this.createAppFile(file))}yield this.save()}))}createAppFile(file){return AppFile.create({appFileID:file.appFileID,contentType:file.file.type,name:file.file.name,contentID:file.appFileID.toString(36),url:file.url})}ensureDraft(){var _a,_b;var _c;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",attachments:[]});(_b=(_c=this.draft).attachments)!==null&&_b!==void 0?_b:_c.attachments=[]}save(saveAttachments=true){return __awaiter(this,void 0,void 0,(function*(){const{prevSave,saveCancelToken}=this;saveCancelToken===null||saveCancelToken===void 0?void 0:saveCancelToken.cancel();const ct=this.saveCancelToken=new CancelToken;this.prevSave=(()=>__awaiter(this,void 0,void 0,(function*(){try{if(prevSave){yield prevSave}this.draft=yield this.conversationService.draft(Object.assign(Object.assign({},this.mailboxContact),{email:this.draft}),true,saveAttachments,ct)}catch(_a){}})))().catch(console.error)}))}});__decorate([InjectProperty,__metadata("design:type",ConversationService)],MiniComposeBox.prototype,"conversationService",void 0);__decorate([InjectProperty,__metadata("design:type",MailService)],MiniComposeBox.prototype,"mailService",void 0);__decorate([Action({onEvent:"filesAvailable"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"filesAvailable",null);__decorate([Action({onEvent:"delete-attachment",confirm:"Are you sure you want to delete this attachment?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"deleteAttachment",null);__decorate([Action({onEvent:CommonEvents.onDraftDeleted}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"recreateDraft",null);__decorate([Action({onEvent:"input",defer:500,blockMultipleExecution:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onChanged",null);__decorate([Action({onEvent:CommonEvents.onEmailUnscheduled}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onEmailUnscheduled",null);__decorate([Action({onEvent:CommonEvents.onEmailForward}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onForwardEmail",null);__decorate([Action({onEvent:CommonEvents.onEmailForwardAsAttachment}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onForwardEmailAsAttachment",null);__decorate([Action({onEvent:"send-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendEmail",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendAudioMessage",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/MiniComposeBox");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../../core/XNode","../../style/styled","./PopupService"],(function(_export,_context){"use strict";var XNode,styled,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_styleStyled){styled=_styleStyled.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow}],execute:function(){css=styled.css`
1675
+ `.installLocal();defaultEmailBody=`<section style="background-color: white; color: black;">\n<section contentEditable="true">&nbsp;<br/></section>\n<footer data-social-mail-commands="emoji-bar"></footer>\n</section>`;_export("default",MiniComposeBox=class MiniComposeBox extends AtomControl{constructor(app,e){super(app,e);this.mailboxContact=null;this.draft=null;this.typedMessage="";this.active=false;this.savedSubject=void 0;this.savedBody=void 0;this.element.className=css;this.app.runAsync((()=>this.init()))}init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null));yield sleep(100);(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=null;if(!this.draft){this.ensureDraft()}this.typedMessage=((_b=this.draft)===null||_b===void 0?void 0:_b.htmlBody)?this.draft.htmlBody:defaultEmailBody;this.renderer=XNode.create("div",null,XNode.create(MailHtmlEditor,{toolbar:()=>XNode.create("div",null,XNode.create(Toolbar,null,XNode.create(Insert,null),XNode.create(Separator,null),XNode.create(Attach,null),XNode.create(Separator,null),XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,{alignment:"above"}),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null)),XNode.create(TitleEditor,{class:"subject",placeholder:"Subject ... ",value:Bind.sourceTwoWays(this,(x=>x.source.draft.subject))})),"data-element":"editor","data-html-editor":"email-editor",presenter:Bind.presenter((c=>this.editor=c)),content:this.typedMessage,"style-min-height":"50px",attachments:Bind.oneWay((()=>this.draft.attachments))}),XNode.create("i",{"data-element":"send",class:"fa-solid fa-microphone-lines mic","event-click":()=>this.sendAudioMessage(),"style-display":Bind.oneWay((()=>!this.typedMessage))}),XNode.create("i",{"data-element":"send",class:"fa-solid fa-angle-double-right send","style-display":Bind.oneWay((()=>!!this.typedMessage)),"data-click-event":"send-email"}),XNode.create(AtomRepeater,{"data-element":"files",items:Bind.oneWay((()=>{var _a;return(_a=this.draft)===null||_a===void 0?void 0:_a.attachments})),"style-display":Bind.oneWay((()=>this.draft&&this.draft.attachments&&this.draft.attachments.length>0),false),"data-layout":"flex-wrap-padding",itemRenderer:item=>XNode.create("div",{"data-layout":"icon-button"},XNode.create("label",{text:item.name}),XNode.create("i",{"data-click-event":"delete-attachment",class:"fas fa-times-circle","data-cursor":"pointer","data-color":"red"}))}));yield sleep(100);if(!this.draft.subject){(_c=this.editor.element.querySelector(".subject > input"))===null||_c===void 0?void 0:_c.focus();return}const editor=this.editor.element.querySelector(`[data-element="editor"]`);for(const iterator of descendentElementIterator(editor)){if(iterator.isContentEditable){let start=iterator;let next;while((next=start.firstElementChild)&&next.tagName!=="BR"){start=next}start.focus();window.getSelection().setPosition(start.firstElementChild);return}}}))}filesAvailable({files,extra}){return __awaiter(this,void 0,void 0,(function*(){if(extra.stream){yield this.streamFiles({files,extra});return}const size=files.reduce(((pv,cv)=>pv+cv.file.size),0);if(size>20*1024*1024){if(!extra.stream){throw new Error(`Total size of attachments cannot be more than 20MB.`)}}if(extra.insert){this.ensureDraft();const firstChild=this.editor.editor.firstElementChild;for(const iterator of files){if(/^image\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("img");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}if(/^(video|audio)\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("video");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}}return}yield this.addFiles(...files)}))}streamFiles({files,extra}){return __awaiter(this,void 0,void 0,(function*(){}))}deleteAttachment(file){var _a;return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.deleteAttachment(file);(_a=this.draft)===null||_a===void 0?void 0:_a.attachments.remove(file)}))}recreateDraft(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){this.draft=null;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",attachments:[]});(_b=(_c=this.draft).attachments)!==null&&_b!==void 0?_b:_c.attachments=[]}))}onChanged(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.editor)===null||_a===void 0?void 0:_a.htmlTextContent)){return}(_b=this.draft)!==null&&_b!==void 0?_b:this.draft=Email.create({attachments:[]});const{html,text}=this.editor.htmlTextContent;if(this.savedSubject===this.draft.subject&&this.savedBody===html){return}if(this.prevSave){yield this.prevSave}this.savedSubject=this.draft.subject;this.savedBody=html;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save(false)}))}onEmailUnscheduled(mce){return __awaiter(this,void 0,void 0,(function*(){this.draft=mce.email}))}onForwardEmail(mce){var _a;return __awaiter(this,void 0,void 0,(function*(){if((_a=this.draft)===null||_a===void 0?void 0:_a.emailID){yield this.save(true);this.draft=null}this.ensureDraft();const{email}=mce;const{recipients}=email;const to=recipients===null||recipients===void 0?void 0:recipients.filter((x=>x.type==="to"));const cc=recipients===null||recipients===void 0?void 0:recipients.filter((x=>x.type==="cc"));this.draft.htmlBody=DomToString(XNode.create("section",{style:"background-color: white; color: black;"},XNode.create("section",{contentEditable:"true"}," ",XNode.create("br",null)),XNode.create("blockquote",{contentEditable:"false","data-type":"forwarded",style:"margin-inline-start: 20px; margin-inline-end: 0; border-left: solid 1px lightgray; padding-left: 10px;"},XNode.create("summary",null,XNode.create("div",null,"From: $",email.senderName," ",`<${email.senderEmail.emailAddress}>`),XNode.create("div",null,(to===null||to===void 0?void 0:to.length)&&XNode.create("div",null,XNode.create("label",{style:"margin-right:10px;"},"To:"),...to.map((x=>XNode.create(EmailLabel,{recipient:x})))),(cc===null||cc===void 0?void 0:cc.length)&&XNode.create("div",null,XNode.create("label",{style:"margin-right:10px;"},"CC:"),...cc.map((x=>XNode.create(EmailLabel,{recipient:x})))),XNode.create("div",null,XNode.create("label",{style:"margin-right:10px;"},"Subject:"),XNode.create("label",null,email.subject)),XNode.create("div",{"data-type":"html-body"},email.htmlBody)))),XNode.create("footer",{"data-social-mail-commands":"emoji-bar"})));this.editor.htmlContent=this.draft.htmlBody;const attachments=mce.email.attachments;if(attachments){for(const iterator of attachments){this.draft.attachments.add(AppFile.create(Object.assign(Object.assign({},iterator),{appFileID:void 0})))}}yield this.save(!!attachments)}))}onForwardEmailAsAttachment(mce){var _a;return __awaiter(this,void 0,void 0,(function*(){if((_a=this.draft)===null||_a===void 0?void 0:_a.emailID){yield this.save(true);this.draft=null}this.ensureDraft();const{email,signedFileLogID}=mce;const{mimeFileID}=email;this.draft.htmlBody=DomToString(XNode.create("section",{style:"background-color: white; color: black;"},XNode.create("section",{contentEditable:"true"}," ",XNode.create("br",null))));this.editor.htmlContent=this.draft.htmlBody;this.draft.attachments.add(AppFile.create({name:"forwarded.eml",sourceEmailLogID:mimeFileID!==null&&mimeFileID!==void 0?mimeFileID:signedFileLogID,contentType:"message/rfc822"}));yield this.save(true)}))}sendEmail(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.draft)===null||_a===void 0?void 0:_a.textBody)){if(!((_c=(_b=this.draft)===null||_b===void 0?void 0:_b.attachments)===null||_c===void 0?void 0:_c.length)){alert("Cannot send empty email");return}}const{html,text}=this.editor.htmlTextContent;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save();this.draft.status="scheduled";this.draft.dateSent=DateTime.now.add(TimeSpan.fromSeconds(30));this.draft.dateUpdated=DateTime.now;yield this.mailService.send(this.draft);const saved=this.draft;this.draft=Email.create({subject:"",htmlBody:defaultEmailBody,attachments:[]});this.editor.htmlContent=this.draft.htmlBody;this.element.dispatchEvent(new CustomEvent("emailSent",{bubbles:true,detail:saved}))}))}sendAudioMessage(){return __awaiter(this,void 0,void 0,(function*(){const uploadedFile=yield AudioRecorder.show();this.ensureDraft();this.draft.textBody=this.typedMessage;yield this.addFiles(uploadedFile)}))}addFiles(...files){return __awaiter(this,void 0,void 0,(function*(){this.ensureDraft();const attachments=this.draft.attachments;for(const file of files){attachments.add(this.createAppFile(file))}yield this.save()}))}createAppFile(file){return AppFile.create({appFileID:file.appFileID,contentType:file.file.type,name:file.file.name,contentID:file.appFileID.toString(36),url:file.url})}ensureDraft(){var _a,_b;var _c;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",attachments:[]});(_b=(_c=this.draft).attachments)!==null&&_b!==void 0?_b:_c.attachments=[]}save(saveAttachments=true){return __awaiter(this,void 0,void 0,(function*(){const{prevSave,saveCancelToken}=this;saveCancelToken===null||saveCancelToken===void 0?void 0:saveCancelToken.cancel();const ct=this.saveCancelToken=new CancelToken;this.prevSave=(()=>__awaiter(this,void 0,void 0,(function*(){try{if(prevSave){yield prevSave}this.draft=yield this.conversationService.draft(Object.assign(Object.assign({},this.mailboxContact),{email:this.draft}),true,saveAttachments,ct)}catch(_a){}})))().catch(console.error)}))}});__decorate([InjectProperty,__metadata("design:type",ConversationService)],MiniComposeBox.prototype,"conversationService",void 0);__decorate([InjectProperty,__metadata("design:type",MailService)],MiniComposeBox.prototype,"mailService",void 0);__decorate([Action({onEvent:"filesAvailable"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"filesAvailable",null);__decorate([Action({onEvent:"delete-attachment",confirm:"Are you sure you want to delete this attachment?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"deleteAttachment",null);__decorate([Action({onEvent:CommonEvents.onDraftDeleted}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"recreateDraft",null);__decorate([Action({onEvent:"input",defer:500,blockMultipleExecution:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onChanged",null);__decorate([Action({onEvent:CommonEvents.onEmailUnscheduled}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onEmailUnscheduled",null);__decorate([Action({onEvent:CommonEvents.onEmailForward}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onForwardEmail",null);__decorate([Action({onEvent:CommonEvents.onEmailForwardAsAttachment}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onForwardEmailAsAttachment",null);__decorate([Action({onEvent:"send-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendEmail",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendAudioMessage",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/MiniComposeBox");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../../core/XNode","../../style/styled","./PopupService"],(function(_export,_context){"use strict";var XNode,styled,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_styleStyled){styled=_styleStyled.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow}],execute:function(){css=styled.css`
1672
1676
  padding: 5px;
1673
1677
  font-size: larger;
1674
1678
  & .error {
@@ -1756,7 +1760,7 @@ and limitations under the License.
1756
1760
 
1757
1761
  }
1758
1762
  }
1759
- `.installLocal();id=1;fixLinks=()=>{const mID=`m_id_${id++}`;setTimeout((x=>{const m=document.getElementById(x);if(!m){return}m.querySelectorAll("a").forEach((a=>a.target="_blank"))}),100,mID);return mID};_export("default",ConversationPage=class ConversationPage extends ContentPage{constructor(){super(...arguments);this.mails=[];this.search="";this.version=1}init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;const mb=this.parameters;const name=mb.emailAddress.name;const emailAddress=mb.emailAddress.emailAddress;const title=`${name} <${emailAddress}>`;if(isMobileView){this.title=title;this.headerRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search)),type:"search",placeholder:"Search"}))}else{this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search)),type:"search",placeholder:"Search"}),XNode.create("span",{text:title}))}this.registerDisposable(yield this.resolve(MailboxSocket).join(mb.mailboxID.toString(),{newMail:()=>{this.version++},mailRead:(mailboxID,emailAddressID,emailID)=>{for(const iterator of this.mailsRepeater.items){if(iterator.emailID!==emailID){continue}iterator.timeRead=DateTime.now;this.mailsRepeater.refreshItem(iterator)}}}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({"data-layout":"vertical-flex",style:"flex-direction: column-reverse",presenter:Bind.presenter((c=>this.mailsRepeater=c)),items:this.mails},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.conversationService.list({start,size:10,search:this.search,mailboxID:mb.mailboxID,emailAddressID:mb.emailAddressID,version:this.version,cancelToken}))),{itemRenderer:thread=>{var _a,_b,_c,_d,_e,_f,_g,_h;const item=thread.email;const internalDate=(_b=(_a=item.dateSent)!==null&&_a!==void 0?_a:item.dateReceived)!==null&&_b!==void 0?_b:item.dateCreated;const sent=item.senderID===thread.mailboxID;const remaining=DateTime.from((_c=item.dateSent)!==null&&_c!==void 0?_c:DateTime.today).diff(DateTime.now);const isSending=thread.email.status==="scheduled"&&remaining.totalSeconds>3;const engagements=(_d=thread.email.engagements)!==null&&_d!==void 0?_d:[];const tags=((_e=thread.email.tags)!==null&&_e!==void 0?_e:"").split(",").filter((x=>x));const isDraft=item.status==="draft";let readStatus="";let readColor="";if(sent){const timeRead=thread.timeRead&&DateTime.from(thread.timeRead);if(timeRead){readStatus=`Read ${DateFormats.relative.short(timeRead)}`;readColor="green"}else if(item.status==="sent"){readStatus="Sent";readColor="yellow"}else if(item.status==="scheduled"){readStatus="In queue";readColor="lightblue"}else{readStatus="";readColor=""}}if(remaining.totalSeconds>0){setTimeout((()=>this.mailsRepeater.refreshItem(thread)),2e3)}return XNode.create("div",{class:itemCss,"data-sent":sent},XNode.create("div",{"data-layout":"row"},XNode.create("div",{"data-flex":"stretch-full",text:item.subject}),item.received?XNode.create("div",null):item.userID!==SocialMailApp.user.userID&&XNode.create("div",{"style-max-width":"20ch",title:(_f=item.senderUser)===null||_f===void 0?void 0:_f.displayName,text:(_g=item.senderUser)===null||_g===void 0?void 0:_g.displayName}),XNode.create("div",{text:DateFormats.relative.short(internalDate),title:DateFormats.withWeekDayAndTime(internalDate)}),XNode.create("i",{"data-click-event":"mail-options",class:"fa-light fa-square-ellipsis-vertical",title:"Options"})),XNode.create(LimitedText,{height:"40vh"},XNode.create("div",Object.assign({class:"message"},renderMail(thread)))),XNode.create("div",{class:"engagements"},readStatus&&XNode.create("i",{class:"fa-solid fa-circle-small","style-color":readColor,title:readStatus}),...engagements.map((x=>XNode.create("span",{"data-click-event":"view-engagements","data-cursor":"pointer",title:`View all ${x.engagement} ${x.count}`,text:`${x.engagement} ${x.count}`})))),((_h=item.attachments)===null||_h===void 0?void 0:_h.length)&&XNode.create("div",{class:"attachments","data-layout":"flex-wrap-padding"},...item.attachments.map(FilePreview)),XNode.create("div",{"data-layout":"row","data-margin-top":"default","data-margin-bottom":"default"},...tags.map((x=>XNode.create("span",{text:`#${x.startsWith("#")?x.substring(1):x}`})))),isDraft&&XNode.create("div",{"data-layout":"row","data-margin-top":"default"},XNode.create(EditIconTextButton,{"data-click-event":"edit-draft",text:"Edit Draft"}),XNode.create(DeleteIconTextButton,{"data-click-event":"delete-draft",text:"Delete Draft"})),!sent&&XNode.create("div",{"data-layout":"row","data-margin-top":"default"},XNode.create("i",{"data-click-event":"react-email",class:"fa-light fa-face-smile-plus",title:"React"}),XNode.create("i",{"data-click-event":"reply-email",class:"fas fa-reply",title:"Reply"}),XNode.create("i",{"data-click-event":"reply-all-email",class:"fa-solid fa-reply-all",title:"Reply All"}),XNode.create("i",{"data-click-event":"forward-email",class:"fa-solid fa-share-all",title:"Forward"})),isSending&&XNode.create("div",{"data-layout":"command-row","style-padding-left":"20px"},XNode.create("span",{text:`Sending in (${Math.ceil(remaining.totalSeconds)} sec) `}),XNode.create("button",{"data-click-event":"stop-email","data-layout":"stop-icon-button","style-margin-left":"20px"},XNode.create("i",{class:"fas fa-stop"}),"Stop")))}})));this.actionRenderer=()=>XNode.create(PopupActionButton,{icon:"fas fa-bars"},XNode.create("div",{"data-layout":"vertical-flex","style-width":"200px"},this.parameters.blocked?XNode.create(MenuItem,{"data-click-event":"unblock-sender",icon:"fas fa-badge-check",label:"Unblock Sender"}):XNode.create(MenuItem,{"data-click-event":"block-sender",icon:"fas fa-ban",label:"Block Sender"})));this.footerRenderer=()=>XNode.create("div",{"data-position":"absolute","style-right":"20px","style-bottom":"5px","data-layout":"row"},XNode.create(AddIconTextButton,{"event-click":()=>this.startCompose(),"data-margin-left":"auto",text:"Compose"}))}))}startCompose(thread=null,email=null){this.footerRenderer=()=>{var _a;return XNode.create(MiniComposeBox,{mailboxContact:thread!==null&&thread!==void 0?thread:this.parameters,draft:(_a=thread===null||thread===void 0?void 0:thread.email)!==null&&_a!==void 0?_a:email})}}onClick(a,e){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){const anchor=e.composed?e.composedPath().find((x=>x.tagName==="A")):AncestorEnumerator.find(e.target,(x=>x.tagName==="A"));if(!anchor){return}const href=anchor.getAttribute("href");if(!/^mailto\:/.test(href)){return}e.preventDefault();const url=new URL(href);const to=url.pathname;const subject=(_a=url.searchParams.get("subject"))!==null&&_a!==void 0?_a:"";const body=(_b=url.searchParams.get("body"))!==null&&_b!==void 0?_b:"";const inReplyTo=(_c=url.searchParams.get("inReplyTo"))!==null&&_c!==void 0?_c:"";const{item}=AtomRepeater.itemFromElement(e.target);const{email:{parentID,headerMessageID}}=item;const recipients=[EmailRecipient.create({emailAddressText:to})];const child=Email.create({senderID:this.parameters.mailboxID,subject,headers:JSON.stringify({inReplyTo}),parentID:inReplyTo===headerMessageID?parentID:null,received:false,recipients,htmlBody:`<div contentEditable="true">${body}</div>`});yield PageNavigator.pushPageForResult(ComposeMailPage,{mailboxID:child.senderID,mailbox:this.parameters.mailbox,model:child})}))}onEmailScheduled(email){if(email.senderID!==this.parameters.mailboxID){return}const{emailID}=email;const{emailAddressID,mailboxID}=this.parameters;this.mails.insert(0,MailboxContactEmail.create({emailID,emailAddressID,mailboxID,email}))}stopEmail(thread){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.stopEmail(thread)}))}forwardEmail(thread,ce){return __awaiter(this,void 0,void 0,(function*(){void InlinePopup.show(ce.target,XNode.create("div",{"data-click-event":"none","data-click-animate":"none"},XNode.create(MenuItem,{eventClick:()=>CommonEvents.onEmailForward.dispatchEvent(thread),label:"As Inline Message"}),XNode.create(MenuItem,{eventClick:()=>CommonEvents.onEmailForwardAsAttachment.dispatchEvent(thread),label:"As Attachment"})),{alignment:"above"})}))}mailOptions(thread,ce){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){void InlinePopupControl.showPopup(ce.target,XNode.create("div",{"data-click-event":"none","data-click-animate":"none"},((_a=thread.email)===null||_a===void 0?void 0:_a.status)==="published"&&XNode.create(MenuItem,{icon:"fas fa-delete","data-click-event":"un-publish-mail"}),XNode.create(MenuItem,{eventClick:()=>PageNavigator.pushPage(MailDetailPage,thread.email),icon:"fas fa-eye",label:"Details"}),XNode.create(MenuItem,{href:apiPath(`/api/emails/logs/${thread.email.mimeFileID}/${thread.email.emailID}.eml`),icon:"fas fa-download",label:"Download"}),XNode.create(MenuItem,{"data-click-event":"open-logs",icon:"fa-regular fa-clock-rotate-left",label:"Logs"}),((_b=thread.email)===null||_b===void 0?void 0:_b.status)==="draft"&&XNode.create(MenuItem,{"data-click-event":"delete-draft",icon:"fa-regular fa-clock-rotate-left",label:"Delete Draft"})))}))}openLogs({emailID}){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(LogsPage,{emailID})}))}reactEmail(thread,ce){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const emoji=yield EmojiPicker.show({parameters:{thread,preview:XNode.create("div",Object.assign({},renderMail(thread)))}});const{email:{emailID,subject}}=thread;const now=DateTime.now;const{emailAddressID}=thread;const email=Email.create({parentID:emailID,subject:"Re: "+subject,textBody:emoji+"\n",htmlBody:`<div>${emoji}</div>`,engagement:emoji,senderID:this.parameters.mailboxID,headers:JSON.stringify({"x-engagement":emoji}),dateSent:now,dateReceived:now,dateCreated:now,received:false,status:"scheduled",recipients:[EmailRecipient.create({emailAddressID})]});yield this.resolve(EntityService).save(email);const engagements=(_a=(_b=thread.email).engagements)!==null&&_a!==void 0?_a:_b.engagements=[];let e=engagements.find((x=>x.engagement===emoji));if(!e){e=EmailEngagement.create({engagement:emoji,emailID,count:1});engagements.add(e)}else{e.count++}this.mailsRepeater.refreshItem(thread)}))}replyEmail({email},ce){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const parse=JSON.parse(email.headers);const replyTo=(_a=parse===null||parse===void 0?void 0:parse.replyTo)===null||_a===void 0?void 0:_a[0];const emailAddressText=this.parameters.emailAddress.emailAddress.toLocaleLowerCase();const name=email.senderName;const parentID=(_b=email.parentID)!==null&&_b!==void 0?_b:email.emailID;const recipients=[EmailRecipient.create({name,replyTo,emailAddressText})];if(/all/i.test(ce.type)){for(const{name:rName,emailAddressID,emailAddress:{emailAddress}}of email.recipients){if(recipients.some((er=>er.emailAddressText===emailAddress))){continue}if(this.parameters.mailboxID===emailAddressID){continue}recipients.push(EmailRecipient.create({name:rName,emailAddressText:emailAddress}))}}const subject=/^re\s?\:/i.test(email.subject)?email.subject:`Re: ${email.subject}`;const child=Email.create({senderID:this.parameters.mailboxID,subject,parentID,received:false,recipients,htmlBody:`<section>\n <section contentEditable="true">\n <p>\n <br/>\n <br/>\n </p>\n </section>\n <blockquote data-type="reply-to" style="margin-inline-start: 20px; margin-inline-end: 0; border-left: solid 1px lightgray; padding-left: 10px;">\n <details>\n <summary>From: ${email.senderName} ${`&lt;${this.parameters.emailAddress.emailAddress}&gt;`}<br/>\n Subject: ${email.subject}\n </summary>\n <div>\n\n ${email.htmlBody}\n </div>\n </details>\n </blockquote>\n </section>`});this.startCompose(null,child)}))}blockSender(){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.block(this.parameters)}))}unblockSender(){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.block(this.parameters)}))}viewEngagements(thread){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EngagementDetails,thread)}))}deleteDraft(mce){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.delete(mce.email);this.mails.remove(mce)}))}});__decorate([InjectProperty,__metadata("design:type",ConversationService)],ConversationPage.prototype,"conversationService",void 0);__decorate([Action({onEvent:"edit-draft"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,Object]),__metadata("design:returntype",void 0)],ConversationPage.prototype,"startCompose",null);__decorate([Action({onEvent:"click"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,PointerEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"onClick",null);__decorate([Action({onEvent:CommonEvents.onEmailScheduled}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],ConversationPage.prototype,"onEmailScheduled",null);__decorate([Action({onEvent:"stop-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"stopEmail",null);__decorate([Action({onEvent:"forward-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"forwardEmail",null);__decorate([Action({onEvent:"mail-options"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"mailOptions",null);__decorate([Action({onEvent:"open-logs"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"openLogs",null);__decorate([Action({onEvent:"react-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"reactEmail",null);__decorate([Action({onEvent:["reply-email","reply-all-email"]}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"replyEmail",null);__decorate([Action({onEvent:"block-sender",confirm:"Are you sure you want to block this sender?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"blockSender",null);__decorate([Action({onEvent:"unblock-sender",confirm:"Are you sure you want to unblock this sender?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"unblockSender",null);__decorate([Action({onEvent:"view-engagements"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"viewEngagements",null);__decorate([Action({onEvent:"delete-draft",confirm:"Are you sure you want to delete this draft?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"deleteDraft",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ConversationPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/pages/mailboxes/services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../common/controls/repeater/InfiniteRepeater","../../../common/NumberFormats","../../commands/AppCommands","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,MailboxService,InjectProperty,XNode,AtomRepeater,InfiniteRepeater,toFileSize,AppCommands,Bind,ChooseMailboxPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_commonPagesMailboxesServicesMailboxService){MailboxService=_commonPagesMailboxesServicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",ChooseMailboxPage=class ChooseMailboxPage extends PopupWindowPage{constructor(){super(...arguments);this.mailboxes=[];this.search=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Open Mailbox";this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search))}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({"data-layout":"list",items:this.mailboxes},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailboxService.list({search:this.search,cancelToken,start}))),{itemRenderer:item=>XNode.create("div",null,XNode.create("a",{"data-click-event":"route",href:AppCommands.openMailbox.displayRoute({id:item.mailboxID}),text:item.emailAddress.emailAddress}),XNode.create("span",{text:toFileSize(item.storage)}))})))}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],ChooseMailboxPage.prototype,"mailboxService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ChooseMailboxPage");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","@web-atoms/date-time/dist/DateTime","../../../../common/Sql","../../../../common/SocialMailApp","../../../../services/files/LocalFileService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,AppFile,User,DateTime,Sql,SocialMailApp,LocalFileService,hideActivityIndicator,CloudFileService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){AppFile=_modelModel.AppFile;User=_modelModel.User},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonSql){Sql=_commonSql.Sql},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default}],execute:function(){hideActivityIndicator=true;CloudFileService=class CloudFileService{top(site=false){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null));q=site?q.where((x=>x.contentType==="application/site")):q.where((x=>x.contentType==="folder"));const top=yield q.orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.dateUpdated)).include((x=>x.creator)).toPagedList({size:3,count:false});return top.items}))}drives({start=0,size=50,search="",version=1,contentType=void 0,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null&&x.contentType!=="snapshot"));if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.creator.userName,p.search)))}if(contentType){q=q.where({contentType},(p=>x=>x.contentType===p.contentType))}return q.include((x=>x.creator)).orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.fileSize)).toPagedList({start,size,cancelToken})}))}allTemplates(){return __awaiter(this,void 0,void 0,(function*(){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray();const roots=children.map((x=>x.path+"%"));const all=yield this.entityService.query(AppFile).where({roots},(p=>x=>Sql.text.likeAny(x.path,p.roots))).toArray();return all.filter((x=>!x.parentID))}))}getFile(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).firstOrDefault({cancelToken});return folder}))}getFolder(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});if(folder.children){folder.children.remove((x=>!x.isFolder))}else{folder.children=[]}return folder}))}root({id,templates=false,cancelToken=null}){var _a;return __awaiter(this,void 0,void 0,(function*(){let root;if(templates){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray({cancelToken});root=AppFile.create({name:"Templates",isFolder:true,appFileID:0,creator:User.create({}),children});return root}root=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id&&x.isDeleted===false)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});(_a=root.children)===null||_a===void 0?void 0:_a.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));return root}))}rootFolders(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null)).include((x=>x.creator)).toArray()}))}createFolder({name,parentID}){return __awaiter(this,void 0,void 0,(function*(){const dateCreated=DateTime.now;const r=yield this.entityService.save(AppFile.create({name,parentID,isFolder:true,contentType:"folder",dateCreated,dateUpdated:dateCreated}));return this.entityService.query(AppFile).where({id:r.appFileID},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).firstOrDefault()}))}expand(folder,showDeleted=false){return __awaiter(this,void 0,void 0,(function*(){const parentID=folder.appFileID;const files=yield this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isFolder===true&&x.isDeleted===p.showDeleted)).toArray({hideActivityIndicator});const{children}=folder;for(const iterator of files){if(children.some((c=>c.appFileID===iterator.appFileID))){continue}children.add(iterator)}}))}files({search="",accept="",folder,cancelToken,showDeleted=false,showSnapShot=false,showFolder=true,includeFilesInFolder=true}){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const parentID=folder===null||folder===void 0?void 0:folder.appFileID;if(!parentID){return folder===null||folder===void 0?void 0:folder.children}let q=this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isDeleted===p.showDeleted));if(search){if(!/\%/.test(search)){search=search+"%"}q=q.where({search},(p=>x=>Sql.text.like(x.name,p.search)))}if(accept){const contentTypes=accept.split(/\,/g).map((x=>x.replace("*","%").trim())).filter((x=>x));q=q.where({contentTypes},(p=>x=>x.isFolder||Sql.text.iLikeAny(x.contentType,p.contentTypes)))}if(!showFolder){q=q.where((x=>x.isFolder===false)).orderBy((x=>x.name))}else{q=q.orderByDescending((x=>x.isFolder)).thenBy((x=>x.name))}if(!showSnapShot){q=q.where((x=>x.contentType!=="snapshot"))}const files=yield q.toArray({cancelToken});const results=[];for(const iterator of files){if(!iterator.isFolder){if(accept&&iterator.parentID===folder.appFileID){const children=(_a=folder.children)!==null&&_a!==void 0?_a:folder.children=[];if(!children.some((f=>f.appFileID===iterator.appFileID))){if(includeFilesInFolder||iterator.isFolder){children.add(iterator)}}}results.push(iterator);continue}const fx=folder.children.find((f=>f.appFileID===iterator.appFileID));if(fx){results.push(fx);fx.fileSize=iterator.fileSize;continue}(_b=iterator.children)!==null&&_b!==void 0?_b:iterator.children=[];folder.children.add(iterator);results.push(iterator)}results.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));results.refresh();return results}))}children(parentID,name,sha256){return this.entityService.query(AppFile,"children",parentID,name,sha256)}saveFile(fm){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,content,parentID,folder}=fm;return this.localFileService.uploadFile(content,{appFileID,parentID,folder})}))}save(file){return __awaiter(this,void 0,void 0,(function*(){const c=this.entityService.cloner(file);yield this.entityService.save(c.copy);return file}))}delete(files){return __awaiter(this,void 0,void 0,(function*(){files=files.map((({appFileID})=>AppFile.create({appFileID,isDeleted:true})));yield this.entityService.save(files)}))}};__decorate([Inject,__metadata("design:type",EntityService)],CloudFileService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",LocalFileService)],CloudFileService.prototype,"localFileService",void 0);CloudFileService=__decorate([DISingleton()],CloudFileService);_export("default",CloudFileService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/core/AtomUI"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,AtomControl,BindableProperty,styled,AncestorEnumerator,TreeView,expandSymbol;function findTreeElement(element){if(element.matches("[data-layout=tree-view-item]")){return element}return AncestorEnumerator.findSelector(element,"[data-layout=tree-view-item]")}_export({findTreeElement,default:void 0});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebCoreAtomUI){AncestorEnumerator=_webAtomsCoreDistWebCoreAtomUI.AncestorEnumerator}],execute:function(){expandSymbol=Symbol("expand");styled.css`
1763
+ `.installLocal();id=1;fixLinks=()=>{const mID=`m_id_${id++}`;setTimeout((x=>{const m=document.getElementById(x);if(!m){return}m.querySelectorAll("a").forEach((a=>a.target="_blank"))}),100,mID);return mID};_export("default",ConversationPage=class ConversationPage extends ContentPage{constructor(){super(...arguments);this.mails=[];this.search="";this.version=1}init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;const mb=this.parameters;const name=mb.emailAddress.name;const emailAddress=mb.emailAddress.emailAddress;const title=`${name} <${emailAddress}>`;if(isMobileView){this.title=title;this.headerRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search)),type:"search",placeholder:"Search"}))}else{this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search)),type:"search",placeholder:"Search"}),XNode.create("span",{text:title}))}this.registerDisposable(yield this.resolve(MailboxSocket).join(mb.mailboxID.toString(),{newMail:()=>{this.version++},mailRead:(mailboxID,emailAddressID,emailID)=>{for(const iterator of this.mailsRepeater.items){if(iterator.emailID!==emailID){continue}iterator.timeRead=DateTime.now;this.mailsRepeater.refreshItem(iterator)}}}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({"data-layout":"vertical-flex",style:"flex-direction: column-reverse",presenter:Bind.presenter((c=>this.mailsRepeater=c)),items:this.mails},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.conversationService.list({start,size:10,search:this.search,mailboxID:mb.mailboxID,emailAddressID:mb.emailAddressID,version:this.version,cancelToken}))),{itemRenderer:thread=>{var _a,_b,_c,_d,_e,_f,_g,_h;const item=thread.email;const internalDate=(_b=(_a=item.dateSent)!==null&&_a!==void 0?_a:item.dateReceived)!==null&&_b!==void 0?_b:item.dateCreated;const sent=item.senderID===thread.mailboxID;const remaining=DateTime.from((_c=item.dateSent)!==null&&_c!==void 0?_c:DateTime.today).diff(DateTime.now);const isSending=thread.email.status==="scheduled"&&remaining.totalSeconds>3;const engagements=(_d=thread.email.engagements)!==null&&_d!==void 0?_d:[];const tags=((_e=thread.email.tags)!==null&&_e!==void 0?_e:"").split(",").filter((x=>x));const isDraft=item.status==="draft";let readStatus="";let readColor="";if(sent){const timeRead=thread.timeRead&&DateTime.from(thread.timeRead);if(timeRead){readStatus=`Read ${DateFormats.relative.short(timeRead)}`;readColor="green"}else if(item.status==="sent"){readStatus="Sent";readColor="yellow"}else if(item.status==="scheduled"){readStatus="In queue";readColor="lightblue"}else{readStatus="";readColor=""}}if(remaining.totalSeconds>0){setTimeout((()=>this.mailsRepeater.refreshItem(thread)),2e3)}return XNode.create("div",{class:itemCss,"data-sent":sent},XNode.create("div",{"data-layout":"row"},XNode.create("div",{"data-flex":"stretch-full",text:item.subject}),item.received?XNode.create("div",null):item.userID!==SocialMailApp.user.userID&&XNode.create("div",{"style-max-width":"20ch",title:(_f=item.senderUser)===null||_f===void 0?void 0:_f.displayName,text:(_g=item.senderUser)===null||_g===void 0?void 0:_g.displayName}),XNode.create("div",{text:DateFormats.relative.short(internalDate),title:DateFormats.withWeekDayAndTime(internalDate)}),XNode.create("i",{"data-click-event":"mail-options",class:"fa-light fa-square-ellipsis-vertical",title:"Options"})),XNode.create(LimitedText,{height:"40vh"},XNode.create("div",Object.assign({class:"message"},renderMail(thread)))),XNode.create("div",{class:"engagements"},readStatus&&XNode.create("i",{class:"fa-solid fa-circle-small","style-color":readColor,title:readStatus}),...engagements.map((x=>XNode.create("span",{"data-click-event":"view-engagements","data-cursor":"pointer",title:`View all ${x.engagement} ${x.count}`,text:`${x.engagement} ${x.count}`})))),((_h=item.attachments)===null||_h===void 0?void 0:_h.length)&&XNode.create("div",{class:"attachments","data-layout":"flex-wrap-padding"},...item.attachments.map(FilePreview)),XNode.create("div",{"data-layout":"row","data-margin-top":"default","data-margin-bottom":"default"},...tags.map((x=>XNode.create("span",{text:`#${x.startsWith("#")?x.substring(1):x}`})))),isDraft&&XNode.create("div",{"data-layout":"row","data-margin-top":"default"},XNode.create(EditIconTextButton,{"data-click-event":"edit-draft",text:"Edit Draft"}),XNode.create(DeleteIconTextButton,{"data-click-event":"delete-draft",text:"Delete Draft"})),!sent&&XNode.create("div",{"data-layout":"row","data-margin-top":"default"},XNode.create("i",{"data-click-event":"react-email",class:"fa-light fa-face-smile-plus",title:"React"}),XNode.create("i",{"data-click-event":"reply-email",class:"fas fa-reply",title:"Reply"}),XNode.create("i",{"data-click-event":"reply-all-email",class:"fa-solid fa-reply-all",title:"Reply All"}),XNode.create("i",{"data-click-event":"forward-email",class:"fa-solid fa-share-all",title:"Forward"})),isSending&&XNode.create("div",{"data-layout":"command-row","style-padding-left":"20px"},XNode.create("span",{text:`Sending in (${Math.ceil(remaining.totalSeconds)} sec) `}),XNode.create("button",{"data-click-event":"stop-email","data-layout":"stop-icon-button","style-margin-left":"20px"},XNode.create("i",{class:"fas fa-stop"}),"Stop")))}})));this.actionRenderer=()=>XNode.create(PopupActionButton,{icon:"fas fa-bars"},XNode.create("div",{"data-layout":"vertical-flex","style-width":"200px"},this.parameters.blocked?XNode.create(MenuItem,{"data-click-event":"unblock-sender",icon:"fas fa-badge-check",label:"Unblock Sender"}):XNode.create(MenuItem,{"data-click-event":"block-sender",icon:"fas fa-ban",label:"Block Sender"})));this.showComposeButton()}))}showComposeButton(email=null){if(email){this.mailsRepeater.items.remove(email)}this.footerRenderer=()=>XNode.create("div",{"data-position":"absolute","style-right":"20px","style-bottom":"5px","data-layout":"row"},XNode.create(AddIconTextButton,{"event-click":()=>this.startCompose(),"data-margin-left":"auto",text:"Compose"}))}startCompose(thread=null,email=null){this.footerRenderer=()=>{var _a;return XNode.create(MiniComposeBox,{mailboxContact:thread!==null&&thread!==void 0?thread:this.parameters,draft:(_a=thread===null||thread===void 0?void 0:thread.email)!==null&&_a!==void 0?_a:email})}}onClick(a,e){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){const anchor=e.composed?e.composedPath().find((x=>x.tagName==="A")):AncestorEnumerator.find(e.target,(x=>x.tagName==="A"));if(!anchor){return}const href=anchor.getAttribute("href");if(!/^mailto\:/.test(href)){return}e.preventDefault();const url=new URL(href);const to=url.pathname;const subject=(_a=url.searchParams.get("subject"))!==null&&_a!==void 0?_a:"";const body=(_b=url.searchParams.get("body"))!==null&&_b!==void 0?_b:"";const inReplyTo=(_c=url.searchParams.get("inReplyTo"))!==null&&_c!==void 0?_c:"";const{item}=AtomRepeater.itemFromElement(e.target);const{email:{parentID,headerMessageID}}=item;const recipients=[EmailRecipient.create({emailAddressText:to})];const child=Email.create({senderID:this.parameters.mailboxID,subject,headers:JSON.stringify({inReplyTo}),parentID:inReplyTo===headerMessageID?parentID:null,received:false,recipients,htmlBody:`<div contentEditable="true">${body}</div>`});yield PageNavigator.pushPageForResult(ComposeMailPage,{mailboxID:child.senderID,mailbox:this.parameters.mailbox,model:child})}))}onEmailScheduled(email){if(email.senderID!==this.parameters.mailboxID){return}const{emailID}=email;const{emailAddressID,mailboxID}=this.parameters;const index=this.mails.findIndex((x=>x.emailID===emailID));if(index!==-1){this.mails.removeAt(index)}this.mails.insert(0,MailboxContactEmail.create({emailID,emailAddressID,mailboxID,email}))}stopEmail(thread){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.stopEmail(thread)}))}forwardEmail(thread,ce){return __awaiter(this,void 0,void 0,(function*(){void InlinePopup.show(ce.target,XNode.create("div",{"data-click-event":"none","data-click-animate":"none"},XNode.create(MenuItem,{eventClick:()=>CommonEvents.onEmailForward.dispatchEvent(thread),label:"As Inline Message"}),XNode.create(MenuItem,{eventClick:()=>CommonEvents.onEmailForwardAsAttachment.dispatchEvent(thread),label:"As Attachment"})),{alignment:"above"})}))}mailOptions(thread,ce){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){void InlinePopupControl.showPopup(ce.target,XNode.create("div",{"data-click-event":"none","data-click-animate":"none"},((_a=thread.email)===null||_a===void 0?void 0:_a.status)==="published"&&XNode.create(MenuItem,{icon:"fas fa-delete","data-click-event":"un-publish-mail"}),XNode.create(MenuItem,{eventClick:()=>PageNavigator.pushPage(MailDetailPage,thread.email),icon:"fas fa-eye",label:"Details"}),XNode.create(MenuItem,{href:apiPath(`/api/emails/logs/${thread.email.mimeFileID}/${thread.email.emailID}.eml`),icon:"fas fa-download",label:"Download"}),XNode.create(MenuItem,{"data-click-event":"open-logs",icon:"fa-regular fa-clock-rotate-left",label:"Logs"}),((_b=thread.email)===null||_b===void 0?void 0:_b.status)==="draft"&&XNode.create(MenuItem,{"data-click-event":"delete-draft",icon:"fa-regular fa-clock-rotate-left",label:"Delete Draft"})))}))}openLogs({emailID}){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(LogsPage,{emailID})}))}reactEmail(thread,ce){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const emoji=yield EmojiPicker.show({parameters:{thread,preview:XNode.create("div",Object.assign({},renderMail(thread)))}});const{email:{emailID,subject}}=thread;const now=DateTime.now;const{emailAddressID}=thread;const email=Email.create({parentID:emailID,subject:"Re: "+subject,textBody:emoji+"\n",htmlBody:`<div>${emoji}</div>`,engagement:emoji,senderID:this.parameters.mailboxID,headers:JSON.stringify({"x-engagement":emoji}),dateSent:now,dateReceived:now,dateCreated:now,received:false,status:"scheduled",recipients:[EmailRecipient.create({emailAddressID})]});yield this.resolve(EntityService).save(email);const engagements=(_a=(_b=thread.email).engagements)!==null&&_a!==void 0?_a:_b.engagements=[];let e=engagements.find((x=>x.engagement===emoji));if(!e){e=EmailEngagement.create({engagement:emoji,emailID,count:1});engagements.add(e)}else{e.count++}this.mailsRepeater.refreshItem(thread)}))}replyEmail(mce,ce){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const{email}=mce;const parse=JSON.parse(email.headers);const replyTo=(_a=parse===null||parse===void 0?void 0:parse.replyTo)===null||_a===void 0?void 0:_a[0];const emailAddressText=this.parameters.emailAddress.emailAddress.toLocaleLowerCase();const name=email.senderName;const parentID=(_b=email.parentID)!==null&&_b!==void 0?_b:email.emailID;const recipients=[EmailRecipient.create({name,replyTo,emailAddressID:this.parameters.emailAddressID,emailAddressText})];if(/all/i.test(ce.type)){for(const{name:rName,emailAddressID,emailAddress:{emailAddress}}of email.recipients){if(recipients.some((er=>er.emailAddressText===emailAddress))){continue}if(this.parameters.mailboxID===emailAddressID){continue}recipients.push(EmailRecipient.create({name:rName,emailAddressID,emailAddressText:emailAddress}))}}const subject=/^re\s?\:/i.test(email.subject)?email.subject:`Re: ${email.subject}`;const child=Email.create({senderID:this.parameters.mailboxID,subject,parentID,received:false,recipients,htmlBody:`<section>\n <section contentEditable="true">\n <p>\n <br/>\n <br/>\n </p>\n </section>\n <blockquote data-type="reply-to" style="margin-inline-start: 20px; margin-inline-end: 0; border-left: solid 1px lightgray; padding-left: 10px;">\n <details>\n <summary>From: ${email.senderName} ${`&lt;${this.parameters.emailAddress.emailAddress}&gt;`}<br/>\n Subject: ${email.subject}\n </summary>\n <div>\n\n ${email.htmlBody}\n </div>\n </details>\n </blockquote>\n </section>`});this.startCompose(null,child)}))}blockSender(){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.block(this.parameters)}))}unblockSender(){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.block(this.parameters)}))}viewEngagements(thread){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EngagementDetails,thread)}))}deleteDraft(mce){return __awaiter(this,void 0,void 0,(function*(){yield this.conversationService.delete(mce.email);this.mails.remove(mce)}))}});__decorate([InjectProperty,__metadata("design:type",ConversationService)],ConversationPage.prototype,"conversationService",void 0);__decorate([Action({onEvent:"emailSent"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],ConversationPage.prototype,"showComposeButton",null);__decorate([Action({onEvent:"edit-draft"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,Object]),__metadata("design:returntype",void 0)],ConversationPage.prototype,"startCompose",null);__decorate([Action({onEvent:"click"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,PointerEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"onClick",null);__decorate([Action({onEvent:CommonEvents.onEmailScheduled}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],ConversationPage.prototype,"onEmailScheduled",null);__decorate([Action({onEvent:"stop-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"stopEmail",null);__decorate([Action({onEvent:"forward-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"forwardEmail",null);__decorate([Action({onEvent:"mail-options"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"mailOptions",null);__decorate([Action({onEvent:"open-logs"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"openLogs",null);__decorate([Action({onEvent:"react-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"reactEmail",null);__decorate([Action({onEvent:["reply-email","reply-all-email"]}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,CustomEvent]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"replyEmail",null);__decorate([Action({onEvent:"block-sender",confirm:"Are you sure you want to block this sender?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"blockSender",null);__decorate([Action({onEvent:"unblock-sender",confirm:"Are you sure you want to unblock this sender?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"unblockSender",null);__decorate([Action({onEvent:"view-engagements"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"viewEngagements",null);__decorate([Action({onEvent:"delete-draft",confirm:"Are you sure you want to delete this draft?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ConversationPage.prototype,"deleteDraft",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ConversationPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/pages/mailboxes/services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../common/controls/repeater/InfiniteRepeater","../../../common/NumberFormats","../../commands/AppCommands","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,MailboxService,InjectProperty,XNode,AtomRepeater,InfiniteRepeater,toFileSize,AppCommands,Bind,ChooseMailboxPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_commonPagesMailboxesServicesMailboxService){MailboxService=_commonPagesMailboxesServicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",ChooseMailboxPage=class ChooseMailboxPage extends PopupWindowPage{constructor(){super(...arguments);this.mailboxes=[];this.search=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Open Mailbox";this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search))}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({"data-layout":"list",items:this.mailboxes},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailboxService.list({search:this.search,cancelToken,start}))),{itemRenderer:item=>XNode.create("div",null,XNode.create("a",{"data-click-event":"route",href:AppCommands.openMailbox.displayRoute({id:item.mailboxID}),text:item.emailAddress.emailAddress}),XNode.create("span",{text:toFileSize(item.storage)}))})))}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],ChooseMailboxPage.prototype,"mailboxService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ChooseMailboxPage");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","@web-atoms/date-time/dist/DateTime","../../../../common/Sql","../../../../common/SocialMailApp","../../../../services/files/LocalFileService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,AppFile,User,DateTime,Sql,SocialMailApp,LocalFileService,hideActivityIndicator,CloudFileService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){AppFile=_modelModel.AppFile;User=_modelModel.User},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonSql){Sql=_commonSql.Sql},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default}],execute:function(){hideActivityIndicator=true;CloudFileService=class CloudFileService{top(site=false){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null));q=site?q.where((x=>x.contentType==="application/site")):q.where((x=>x.contentType==="folder"));const top=yield q.orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.dateUpdated)).include((x=>x.creator)).toPagedList({size:3,count:false});return top.items}))}drives({start=0,size=50,search="",version=1,contentType=void 0,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null&&x.contentType!=="snapshot"));if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.creator.userName,p.search)))}if(contentType){q=q.where({contentType},(p=>x=>x.contentType===p.contentType))}return q.include((x=>x.creator)).orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.fileSize)).toPagedList({start,size,cancelToken})}))}allTemplates(){return __awaiter(this,void 0,void 0,(function*(){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray();const roots=children.map((x=>x.path+"%"));const all=yield this.entityService.query(AppFile).where({roots},(p=>x=>Sql.text.likeAny(x.path,p.roots))).toArray();return all.filter((x=>!x.parentID))}))}getFile(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).firstOrDefault({cancelToken});return folder}))}getFolder(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});if(folder.children){folder.children.remove((x=>!x.isFolder))}else{folder.children=[]}return folder}))}root({id,templates=false,cancelToken=null}){var _a;return __awaiter(this,void 0,void 0,(function*(){let root;if(templates){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray({cancelToken});root=AppFile.create({name:"Templates",isFolder:true,appFileID:0,creator:User.create({}),children});return root}root=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id&&x.isDeleted===false)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});(_a=root.children)===null||_a===void 0?void 0:_a.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));return root}))}rootFolders(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null)).include((x=>x.creator)).toArray()}))}createFolder({name,parentID}){return __awaiter(this,void 0,void 0,(function*(){const dateCreated=DateTime.now;const r=yield this.entityService.save(AppFile.create({name,parentID,isFolder:true,contentType:"folder",dateCreated,dateUpdated:dateCreated}));return this.entityService.query(AppFile).where({id:r.appFileID},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).firstOrDefault()}))}expand(folder,showDeleted=false){return __awaiter(this,void 0,void 0,(function*(){const parentID=folder.appFileID;const files=yield this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isFolder===true&&x.isDeleted===p.showDeleted)).toArray({hideActivityIndicator});const{children}=folder;for(const iterator of files){if(children.some((c=>c.appFileID===iterator.appFileID))){continue}children.add(iterator)}}))}files({search="",accept="",folder,cancelToken,showDeleted=false,showSnapShot=false,showFolder=true,includeFilesInFolder=true}){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const parentID=folder===null||folder===void 0?void 0:folder.appFileID;if(!parentID){return folder===null||folder===void 0?void 0:folder.children}let q=this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isDeleted===p.showDeleted));if(search){if(!/\%/.test(search)){search=search+"%"}q=q.where({search},(p=>x=>Sql.text.like(x.name,p.search)))}if(accept){const contentTypes=accept.split(/\,/g).map((x=>x.replace("*","%").trim())).filter((x=>x));q=q.where({contentTypes},(p=>x=>x.isFolder||Sql.text.iLikeAny(x.contentType,p.contentTypes)))}if(!showFolder){q=q.where((x=>x.isFolder===false)).orderBy((x=>x.name))}else{q=q.orderByDescending((x=>x.isFolder)).thenBy((x=>x.name))}if(!showSnapShot){q=q.where((x=>x.contentType!=="snapshot"))}const files=yield q.toArray({cancelToken});const results=[];for(const iterator of files){if(!iterator.isFolder){if(accept&&iterator.parentID===folder.appFileID){const children=(_a=folder.children)!==null&&_a!==void 0?_a:folder.children=[];if(!children.some((f=>f.appFileID===iterator.appFileID))){if(includeFilesInFolder||iterator.isFolder){children.add(iterator)}}}results.push(iterator);continue}const fx=folder.children.find((f=>f.appFileID===iterator.appFileID));if(fx){results.push(fx);fx.fileSize=iterator.fileSize;continue}(_b=iterator.children)!==null&&_b!==void 0?_b:iterator.children=[];folder.children.add(iterator);results.push(iterator)}results.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));results.refresh();return results}))}children(parentID,name,sha256){return this.entityService.query(AppFile,"children",parentID,name,sha256)}saveFile(fm){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,content,parentID,folder}=fm;return this.localFileService.uploadFile(content,{appFileID,parentID,folder})}))}save(file){return __awaiter(this,void 0,void 0,(function*(){const c=this.entityService.cloner(file);yield this.entityService.save(c.copy);return file}))}delete(files){return __awaiter(this,void 0,void 0,(function*(){files=files.map((({appFileID})=>AppFile.create({appFileID,isDeleted:true})));yield this.entityService.save(files)}))}};__decorate([Inject,__metadata("design:type",EntityService)],CloudFileService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",LocalFileService)],CloudFileService.prototype,"localFileService",void 0);CloudFileService=__decorate([DISingleton()],CloudFileService);_export("default",CloudFileService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/service/CloudFileService");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/core/AtomUI"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,AtomControl,BindableProperty,styled,AncestorEnumerator,TreeView,expandSymbol;function findTreeElement(element){if(element.matches("[data-layout=tree-view-item]")){return element}return AncestorEnumerator.findSelector(element,"[data-layout=tree-view-item]")}_export({findTreeElement,default:void 0});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebCoreAtomUI){AncestorEnumerator=_webAtomsCoreDistWebCoreAtomUI.AncestorEnumerator}],execute:function(){expandSymbol=Symbol("expand");styled.css`
1760
1764
 
1761
1765
  display: flex;
1762
1766
  flex-direction: column;