@social-mail/social-mail-client 1.2.24 → 1.2.26
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.
- package/dist/admin/AdminAppIndex.pack.js +62 -11
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +5 -9
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/controls/html/InlineHtmlEditorWithToolbar.d.ts +1 -0
- package/dist/common/controls/html/InlineHtmlEditorWithToolbar.d.ts.map +1 -1
- package/dist/common/controls/html/InlineHtmlEditorWithToolbar.js +34 -3
- package/dist/common/controls/html/InlineHtmlEditorWithToolbar.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +62 -11
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +5 -9
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/page/files/preview/document/PreviewDocument.d.ts.map +1 -1
- package/dist/web/page/files/preview/document/PreviewDocument.js +6 -2
- package/dist/web/page/files/preview/document/PreviewDocument.js.map +1 -1
- package/dist/web/page/mails/ComposeMailPage.d.ts.map +1 -1
- package/dist/web/page/mails/ComposeMailPage.js +1 -0
- package/dist/web/page/mails/ComposeMailPage.js.map +1 -1
- package/dist/web/page/mails/ConversationPage.d.ts.map +1 -1
- package/dist/web/page/mails/ConversationPage.js +21 -2
- package/dist/web/page/mails/ConversationPage.js.map +1 -1
- package/dist/web/page/mails/MailboxContacts.d.ts.map +1 -1
- package/dist/web/page/mails/MailboxContacts.js +0 -4
- package/dist/web/page/mails/MailboxContacts.js.map +1 -1
- package/package.json +1 -1
- package/src/common/controls/html/InlineHtmlEditorWithToolbar.tsx +27 -0
- package/src/web/page/files/preview/document/PreviewDocument.tsx +8 -1
- package/src/web/page/mails/ComposeMailPage.tsx +1 -0
- package/src/web/page/mails/ConversationPage.tsx +21 -3
- package/src/web/page/mails/MailboxContacts.tsx +0 -4
|
@@ -1126,12 +1126,12 @@ and limitations under the License.
|
|
|
1126
1126
|
width: 100%;
|
|
1127
1127
|
}
|
|
1128
1128
|
|
|
1129
|
-
`.installGlobal("[data-attachment-file]");LocalFileService=class LocalFileService extends TaskManager{constructor(){super();document.body.addEventListener("uploadRequested",(ce=>{const{target,detail:{files,extra,uploadEvent}}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});target.dispatchEvent(new CustomEvent(StringHelper.fromHyphenToCamel(uploadEvent),{detail,bubbles:true}))}))))}))}uploadWithProgress(files,extra){return __awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});return detail.files}))}sha256(blob){return __awaiter(this,void 0,void 0,(function*(){const msgBuffer=yield blob.arrayBuffer();const hashBuffer=yield crypto.subtle.digest("SHA-256",msgBuffer);const hashArray=Array.from(new Uint8Array(hashBuffer));const hashHex=hashArray.map((b=>b.toString(16).padStart(2,"0"))).join("");return hashHex}))}uploadFile(file,extra,ct,progress){return __awaiter(this,void 0,void 0,(function*(){const sha256=yield this.sha256(file);if(typeof extra==="string"){extra=JSON.parse(extra)}if(extra.parentID){const existing=yield this.entityService.query(AppFile,"children",extra.parentID,file.name,sha256).firstOrDefault();if(existing){const{appFileID,url}=existing;return{appFileID,file,url}}}return new Promise(((resolve,reject)=>{const body=new FormData;body.append(file.name,file,file.name);body.append("sha256",sha256);const xhr=new XMLHttpRequest;const onError=()=>{reject(new Error(xhr.responseText||"Error"))};ct===null||ct===void 0?void 0:ct.registerForCancel((()=>xhr.abort()));xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){progress===null||progress===void 0?void 0:progress(event.loaded/event.total)}}));xhr.upload.addEventListener("timeout",onError);xhr.upload.addEventListener("error",onError);xhr.upload.addEventListener("abort",onError);xhr.addEventListener("timeout",onError);xhr.addEventListener("abort",onError);xhr.addEventListener("error",onError);xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){progress===null||progress===void 0?void 0:progress(event.loaded/event.total)}}));xhr.addEventListener("load",(()=>{if(xhr.status<=300){const r=Object.assign(Object.assign({},JSON.parse(xhr.responseText)),{file});resolve(r)}}));let postUrl="/api/upload";const s=new URLSearchParams;if(extra){for(const key in extra){if(Object.prototype.hasOwnProperty.call(extra,key)){const element=extra[key];if(element){s.append(key,element)}}}}if(file.webkitRelativePath){const folders=file.webkitRelativePath.split("/");folders.pop();if(folders.length){const folder=folders.join("/");s.append("folder",folder)}}postUrl+="?"+s.toString();xhr.open("POST",postUrl,true);xhr.send(body)}))}))}upload(files,extra,ct){const tasks=[];const upload={total:0,tasks,progress:0,error:""};for(const file of files){upload.total+=file.size;const uploadFile={name:file.name,error:"",progress:0};uploadFile.promise=this.run((()=>__awaiter(this,void 0,void 0,(function*(){var _a,_b;let lastError;for(let i=0;i<3;i++){try{uploadFile.progress=.01;const r=yield this.uploadFile(file,extra,ct,(n=>uploadFile.progress=n));upload.progress+=r.file.size;setTimeout((()=>tasks.remove(uploadFile)),500);upload.error="";lastError=null;return r}catch(error){lastError=`${(_a=file.webkitRelativePath)!==null&&_a!==void 0?_a:""}/${file.name} failed to upload.\n${(_b=error.stack)!==null&&_b!==void 0?_b:error}`;uploadFile.error=lastError}}if(lastError){upload.error+="\n"+lastError}}))));tasks.push(uploadFile)}return upload}};__decorate([Inject,__metadata("design:type",App)],LocalFileService.prototype,"app",void 0);__decorate([Inject,__metadata("design:type",EntityService)],LocalFileService.prototype,"entityService",void 0);LocalFileService=__decorate([DISingleton(),__metadata("design:paramtypes",[])],LocalFileService);_export("default",LocalFileService);FileUploadWindow=class FileUploadWindow extends PopupWindow{constructor(){super(...arguments);this.parameters={}}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Uploading...";this.closeWarning="Are you sure you want to cancel the upload?";this.bindEvent(window,"backButton",(e=>__awaiter(this,void 0,void 0,(function*(){var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);e.stopPropagation();yield this.requestCancel()}))),null,{capture:true});const task=this.localFileService.upload(this.parameters.files,this.parameters.extra,this.cancelToken);this.files=task.tasks;this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create("progress",{min:0,max:task.total,value:Bind.source(task,(x=>x.source.progress))}));this.render(XNode.create("div",{"data-overflow":"auto","style-max-height":"500px","style-max-width":"400px"},XNode.create(AtomRepeater,{"data-layout":"vertical-flex-stretch-items",items:this.files,itemRenderer:file=>XNode.create("div",{"data-attachment-file":"file"},XNode.create("div",{"data-element":"file-name",text:file.name}),XNode.create("progress",{"style-display":Bind.source(file,(x=>x.source.progress>0)),min:0,max:1,value:Bind.source(file,(x=>x.source.progress))}),XNode.create("div",{"data-element":"error","data-color":"red",text:Bind.source(file,(x=>x.source.error))}))})));try{const ct=new CancelToken;this.registerDisposable({dispose:()=>{ct.cancel()}});const tasks=this.files.map((x=>x.promise));const files=yield Promise.all(tasks);const extra=this.parameters.extra;this.close({files,extra})}catch(error){if(CancelToken.isCancelled(error)){this.cancel(error);return}yield PopupService.alert({message:error});this.cancel(error)}}))}};__decorate([InjectProperty,__metadata("design:type",LocalFileService)],FileUploadWindow.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/files/LocalFileService");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Toolbar","@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/Underline","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/HorizontalRule","@web-atoms/web-controls/dist/html-editor/commands/Separator","@web-atoms/web-controls/dist/html-editor/commands/Headings","@web-atoms/web-controls/dist/html-editor/commands/ChangeColor","@web-atoms/web-controls/dist/html-editor/commands/ChangeFont","@web-atoms/web-controls/dist/html-editor/commands/ChangeFontSize","@web-atoms/web-controls/dist/html-editor/commands/NumberedList","@web-atoms/web-controls/dist/html-editor/commands/UnorderedList","@web-atoms/web-controls/dist/html-editor/commands/IndentLess","@web-atoms/web-controls/dist/html-editor/commands/IndentMore","@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/RemoveFormat","@web-atoms/web-controls/dist/html-editor/commands/Source","@web-atoms/web-controls/dist/basic/UploadEvent","../../../services/files/LocalFileService","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,InlineHtmlEditor,Toolbar,Bold,Italic,Underline,StrikeThrough,Align,HorizontalRule,Separator,Headings,ChangeColor,ChangeFont,ChangeFontSize,NumberedList,UnorderedList,IndentLess,IndentMore,AddLink,Unlink,RemoveFormat,Source,UploadEvent,LocalFileService,acceptDocumentAndMedia,AtomControl,InjectProperty,StringHelper,styled,MailHtmlEditor,link,onAttachImage,onAttachInlineImage,css;function AttachFile({accept=acceptDocumentAndMedia,maxSize=1024*1024*10,authorize=true,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,multiple:false,ariaLabel})),XNode.create("i",{class:"ri-attachment-2"}))}function AttachImage({accept="image/*",maxSize=1024*1024*5,authorize=true,inlineImage=false,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,upload:!inlineImage,multiple:false,ariaLabel,"event-files-available":inlineImage?onAttachInlineImage:onAttachImage})),XNode.create("i",{class:"ri-image-add-fill"}))}function InlineHtmlEditorWithToolbar(a){var _a;(_a=a.inlineImage)!==null&&_a!==void 0?_a:a.inlineImage=false;const toolbar=()=>XNode.create("div",null,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(Toolbar,null,XNode.create(AttachImage,{inlineImage:a.inlineImage}),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)));return XNode.create(MailHtmlEditor,Object.assign({},a,{toolbar}))}_export({MailHtmlEditor:void 0,default:InlineHtmlEditorWithToolbar});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor){InlineHtmlEditor=_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsToolbar){Toolbar=_webAtomsWebControlsDistHtmlEditorCommandsToolbar.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule){HorizontalRule=_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHeadings){Headings=_webAtomsWebControlsDistHtmlEditorCommandsHeadings.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeColor){ChangeColor=_webAtomsWebControlsDistHtmlEditorCommandsChangeColor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFont){ChangeFont=_webAtomsWebControlsDistHtmlEditorCommandsChangeFont.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize){ChangeFontSize=_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize.default},function(_webAtomsWebControlsDistHtmlEditorCommandsNumberedList){NumberedList=_webAtomsWebControlsDistHtmlEditorCommandsNumberedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList){UnorderedList=_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentLess){IndentLess=_webAtomsWebControlsDistHtmlEditorCommandsIndentLess.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentMore){IndentMore=_webAtomsWebControlsDistHtmlEditorCommandsIndentMore.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat){RemoveFormat=_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSource){Source=_webAtomsWebControlsDistHtmlEditorCommandsSource.default},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default;acceptDocumentAndMedia=_servicesFilesLocalFileService.acceptDocumentAndMedia},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){link=document.createElement("link");link.href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css";link.rel="preload";link.as="style";link.onload=()=>{link.onload=null;link.rel="stylesheet"};document.head.appendChild(link);onAttachImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _a,_b;const c=AtomControl.from(ce.target);if(!((_b=(_a=ce.detail)===null||_a===void 0?void 0:_a.files)===null||_b===void 0?void 0:_b.length)){return}const file=ce.detail.files[0];file.inline=true;c.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}));onAttachInlineImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _c,_d;const c=AtomControl.from(ce.target);if(!((_d=(_c=ce.detail)===null||_c===void 0?void 0:_c.files)===null||_d===void 0?void 0:_d.length)){return}const file=ce.detail.files[0];const reader=new FileReader;reader.onload=()=>{c.executeCommand("insertHTML",void 0,`<div><img\n data-content="data-url"\n src="${reader.result}" style='max-height: 700px;'/>\n </div>`)};reader.readAsDataURL(file)}));css=styled.css`
|
|
1129
|
+
`.installGlobal("[data-attachment-file]");LocalFileService=class LocalFileService extends TaskManager{constructor(){super();document.body.addEventListener("uploadRequested",(ce=>{const{target,detail:{files,extra,uploadEvent}}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});target.dispatchEvent(new CustomEvent(StringHelper.fromHyphenToCamel(uploadEvent),{detail,bubbles:true}))}))))}))}uploadWithProgress(files,extra){return __awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:{files,extra}});return detail.files}))}sha256(blob){return __awaiter(this,void 0,void 0,(function*(){const msgBuffer=yield blob.arrayBuffer();const hashBuffer=yield crypto.subtle.digest("SHA-256",msgBuffer);const hashArray=Array.from(new Uint8Array(hashBuffer));const hashHex=hashArray.map((b=>b.toString(16).padStart(2,"0"))).join("");return hashHex}))}uploadFile(file,extra,ct,progress){return __awaiter(this,void 0,void 0,(function*(){const sha256=yield this.sha256(file);if(typeof extra==="string"){extra=JSON.parse(extra)}if(extra.parentID){const existing=yield this.entityService.query(AppFile,"children",extra.parentID,file.name,sha256).firstOrDefault();if(existing){const{appFileID,url}=existing;return{appFileID,file,url}}}return new Promise(((resolve,reject)=>{const body=new FormData;body.append(file.name,file,file.name);body.append("sha256",sha256);const xhr=new XMLHttpRequest;const onError=()=>{reject(new Error(xhr.responseText||"Error"))};ct===null||ct===void 0?void 0:ct.registerForCancel((()=>xhr.abort()));xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){progress===null||progress===void 0?void 0:progress(event.loaded/event.total)}}));xhr.upload.addEventListener("timeout",onError);xhr.upload.addEventListener("error",onError);xhr.upload.addEventListener("abort",onError);xhr.addEventListener("timeout",onError);xhr.addEventListener("abort",onError);xhr.addEventListener("error",onError);xhr.upload.addEventListener("progress",(event=>{if(event.lengthComputable){progress===null||progress===void 0?void 0:progress(event.loaded/event.total)}}));xhr.addEventListener("load",(()=>{if(xhr.status<=300){const r=Object.assign(Object.assign({},JSON.parse(xhr.responseText)),{file});resolve(r)}}));let postUrl="/api/upload";const s=new URLSearchParams;if(extra){for(const key in extra){if(Object.prototype.hasOwnProperty.call(extra,key)){const element=extra[key];if(element){s.append(key,element)}}}}if(file.webkitRelativePath){const folders=file.webkitRelativePath.split("/");folders.pop();if(folders.length){const folder=folders.join("/");s.append("folder",folder)}}postUrl+="?"+s.toString();xhr.open("POST",postUrl,true);xhr.send(body)}))}))}upload(files,extra,ct){const tasks=[];const upload={total:0,tasks,progress:0,error:""};for(const file of files){upload.total+=file.size;const uploadFile={name:file.name,error:"",progress:0};uploadFile.promise=this.run((()=>__awaiter(this,void 0,void 0,(function*(){var _a,_b;let lastError;for(let i=0;i<3;i++){try{uploadFile.progress=.01;const r=yield this.uploadFile(file,extra,ct,(n=>uploadFile.progress=n));upload.progress+=r.file.size;setTimeout((()=>tasks.remove(uploadFile)),500);upload.error="";lastError=null;return r}catch(error){lastError=`${(_a=file.webkitRelativePath)!==null&&_a!==void 0?_a:""}/${file.name} failed to upload.\n${(_b=error.stack)!==null&&_b!==void 0?_b:error}`;uploadFile.error=lastError}}if(lastError){upload.error+="\n"+lastError}}))));tasks.push(uploadFile)}return upload}};__decorate([Inject,__metadata("design:type",App)],LocalFileService.prototype,"app",void 0);__decorate([Inject,__metadata("design:type",EntityService)],LocalFileService.prototype,"entityService",void 0);LocalFileService=__decorate([DISingleton(),__metadata("design:paramtypes",[])],LocalFileService);_export("default",LocalFileService);FileUploadWindow=class FileUploadWindow extends PopupWindow{constructor(){super(...arguments);this.parameters={}}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Uploading...";this.closeWarning="Are you sure you want to cancel the upload?";this.bindEvent(window,"backButton",(e=>__awaiter(this,void 0,void 0,(function*(){var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);e.stopPropagation();yield this.requestCancel()}))),null,{capture:true});const task=this.localFileService.upload(this.parameters.files,this.parameters.extra,this.cancelToken);this.files=task.tasks;this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create("progress",{min:0,max:task.total,value:Bind.source(task,(x=>x.source.progress))}));this.render(XNode.create("div",{"data-overflow":"auto","style-max-height":"500px","style-max-width":"400px"},XNode.create(AtomRepeater,{"data-layout":"vertical-flex-stretch-items",items:this.files,itemRenderer:file=>XNode.create("div",{"data-attachment-file":"file"},XNode.create("div",{"data-element":"file-name",text:file.name}),XNode.create("progress",{"style-display":Bind.source(file,(x=>x.source.progress>0)),min:0,max:1,value:Bind.source(file,(x=>x.source.progress))}),XNode.create("div",{"data-element":"error","data-color":"red",text:Bind.source(file,(x=>x.source.error))}))})));try{const ct=new CancelToken;this.registerDisposable({dispose:()=>{ct.cancel()}});const tasks=this.files.map((x=>x.promise));const files=yield Promise.all(tasks);const extra=this.parameters.extra;this.close({files,extra})}catch(error){if(CancelToken.isCancelled(error)){this.cancel(error);return}yield PopupService.alert({message:error});this.cancel(error)}}))}};__decorate([InjectProperty,__metadata("design:type",LocalFileService)],FileUploadWindow.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/files/LocalFileService");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/html-editor/InlineHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Toolbar","@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/Underline","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/HorizontalRule","@web-atoms/web-controls/dist/html-editor/commands/Separator","@web-atoms/web-controls/dist/html-editor/commands/Headings","@web-atoms/web-controls/dist/html-editor/commands/ChangeColor","@web-atoms/web-controls/dist/html-editor/commands/ChangeFont","@web-atoms/web-controls/dist/html-editor/commands/ChangeFontSize","@web-atoms/web-controls/dist/html-editor/commands/NumberedList","@web-atoms/web-controls/dist/html-editor/commands/UnorderedList","@web-atoms/web-controls/dist/html-editor/commands/IndentLess","@web-atoms/web-controls/dist/html-editor/commands/IndentMore","@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/RemoveFormat","@web-atoms/web-controls/dist/html-editor/commands/Source","@web-atoms/web-controls/dist/basic/UploadEvent","../../../services/files/LocalFileService","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/core/AtomUI"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,InlineHtmlEditor,Toolbar,Bold,Italic,Underline,StrikeThrough,Align,HorizontalRule,Separator,Headings,ChangeColor,ChangeFont,ChangeFontSize,NumberedList,UnorderedList,IndentLess,IndentMore,AddLink,Unlink,RemoveFormat,Source,UploadEvent,LocalFileService,acceptDocumentAndMedia,AtomControl,InjectProperty,StringHelper,styled,descendentElementIterator,MailHtmlEditor,link,onAttachImage,onAttachInlineImage,css;function AttachFile({accept=acceptDocumentAndMedia,maxSize=1024*1024*10,authorize=true,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,multiple:false,ariaLabel})),XNode.create("i",{class:"ri-attachment-2"}))}function AttachImage({accept="image/*",maxSize=1024*1024*5,authorize=true,inlineImage=false,capture=null,ariaLabel="upload"}){return XNode.create("button",Object.assign({title:"Insert Image",class:"command"},UploadEvent.AttachUploadAction({accept,forceType:true,maxSize,authorize,capture,upload:!inlineImage,multiple:false,ariaLabel,"event-files-available":inlineImage?onAttachInlineImage:onAttachImage})),XNode.create("i",{class:"ri-image-add-fill"}))}function InlineHtmlEditorWithToolbar(a){var _a;(_a=a.inlineImage)!==null&&_a!==void 0?_a:a.inlineImage=false;const toolbar=()=>XNode.create("div",null,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(Toolbar,null,XNode.create(AttachImage,{inlineImage:a.inlineImage}),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)));return XNode.create(MailHtmlEditor,Object.assign({},a,{toolbar}))}_export({MailHtmlEditor:void 0,default:InlineHtmlEditorWithToolbar});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor){InlineHtmlEditor=_webAtomsWebControlsDistHtmlEditorInlineHtmlEditor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsToolbar){Toolbar=_webAtomsWebControlsDistHtmlEditorCommandsToolbar.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule){HorizontalRule=_webAtomsWebControlsDistHtmlEditorCommandsHorizontalRule.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_webAtomsWebControlsDistHtmlEditorCommandsHeadings){Headings=_webAtomsWebControlsDistHtmlEditorCommandsHeadings.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeColor){ChangeColor=_webAtomsWebControlsDistHtmlEditorCommandsChangeColor.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFont){ChangeFont=_webAtomsWebControlsDistHtmlEditorCommandsChangeFont.default},function(_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize){ChangeFontSize=_webAtomsWebControlsDistHtmlEditorCommandsChangeFontSize.default},function(_webAtomsWebControlsDistHtmlEditorCommandsNumberedList){NumberedList=_webAtomsWebControlsDistHtmlEditorCommandsNumberedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList){UnorderedList=_webAtomsWebControlsDistHtmlEditorCommandsUnorderedList.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentLess){IndentLess=_webAtomsWebControlsDistHtmlEditorCommandsIndentLess.default},function(_webAtomsWebControlsDistHtmlEditorCommandsIndentMore){IndentMore=_webAtomsWebControlsDistHtmlEditorCommandsIndentMore.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat){RemoveFormat=_webAtomsWebControlsDistHtmlEditorCommandsRemoveFormat.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSource){Source=_webAtomsWebControlsDistHtmlEditorCommandsSource.default},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default;acceptDocumentAndMedia=_servicesFilesLocalFileService.acceptDocumentAndMedia},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator}],execute:function(){link=document.createElement("link");link.href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css";link.rel="preload";link.as="style";link.onload=()=>{link.onload=null;link.rel="stylesheet"};document.head.appendChild(link);onAttachImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _a,_b;const c=AtomControl.from(ce.target);if(!((_b=(_a=ce.detail)===null||_a===void 0?void 0:_a.files)===null||_b===void 0?void 0:_b.length)){return}const file=ce.detail.files[0];file.inline=true;c.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}));onAttachInlineImage=ce=>__awaiter(void 0,void 0,void 0,(function*(){var _c,_d;const c=AtomControl.from(ce.target);if(!((_d=(_c=ce.detail)===null||_c===void 0?void 0:_c.files)===null||_d===void 0?void 0:_d.length)){return}const file=ce.detail.files[0];const reader=new FileReader;reader.onload=()=>{c.executeCommand("insertHTML",void 0,`<div><img\n data-content="data-url"\n src="${reader.result}" style='max-height: 700px;'/>\n </div>`)};reader.readAsDataURL(file)}));css=styled.css`
|
|
1130
1130
|
& > [data-element=editor] {
|
|
1131
1131
|
background-color: white;
|
|
1132
1132
|
color: black;
|
|
1133
1133
|
}
|
|
1134
|
-
`.installLocal();_export("MailHtmlEditor",MailHtmlEditor=class MailHtmlEditor extends InlineHtmlEditor{onPasteEvent(e){if(e.clipboardData.files.length){e.preventDefault();e.stopPropagation();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const files=yield this.localFileService.uploadWithProgress(Array.from(e.clipboardData.files));for(const file of files){this.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}this.element.dispatchEvent(new CustomEvent("filesAvailable",{detail:{files,extra:"none"},bubbles:true}))}))));return}super.onPasteEvent(e)}preCreate(){super.preCreate();this.element.className=css;this.sanitizeHtml=node=>{const images=Array.from(node.querySelectorAll(`img[data-content-id]`));for(const image of images){image.setAttribute("src",`cid:${image.getAttribute("data-content-id")}`)}};this.bindEvent(this.element,"contentReady",(()=>this.updateTemplateContent()));this.bindEvent(this.element,"click",(e=>this.onClick(e)))}onClick(e){let target=e.target;let editorAction;while(target){editorAction||(editorAction=target.getAttribute("data-editor-action"));if(target.tagName==="A"){e.preventDefault();e.stopImmediatePropagation();break}target=target.parentElement}if(editorAction){e.target.dispatchEvent(new CustomEvent(StringHelper.fromHyphenToCamel(editorAction),{detail:editorAction,bubbles:true,cancelable:true}))}}updateTemplateContent(){}});__decorate([InjectProperty,__metadata("design:type",LocalFileService)],MailHtmlEditor.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1134
|
+
`.installLocal();_export("MailHtmlEditor",MailHtmlEditor=class MailHtmlEditor extends InlineHtmlEditor{constructor(){super(...arguments);this.autofocus=false}onPasteEvent(e){if(e.clipboardData.files.length){e.preventDefault();e.stopPropagation();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const files=yield this.localFileService.uploadWithProgress(Array.from(e.clipboardData.files));for(const file of files){this.executeCommand("insertHTML",void 0,`<div><img data-content="data-url" data-content-id=${file.appFileID} src="${file.url}" style='max-height: 700px;'/></div>`)}this.element.dispatchEvent(new CustomEvent("filesAvailable",{detail:{files,extra:"none"},bubbles:true}))}))));return}super.onPasteEvent(e)}preCreate(){super.preCreate();this.element.className=css;this.sanitizeHtml=node=>{const images=Array.from(node.querySelectorAll(`img[data-content-id]`));for(const image of images){image.setAttribute("src",`cid:${image.getAttribute("data-content-id")}`)}};this.bindEvent(this.element,"contentReady",(()=>this.updateTemplateContent()));this.bindEvent(this.element,"click",(e=>this.onClick(e)))}onClick(e){let target=e.target;let editorAction;while(target){editorAction||(editorAction=target.getAttribute("data-editor-action"));if(target.tagName==="A"){e.preventDefault();e.stopImmediatePropagation();break}target=target.parentElement}if(editorAction){e.target.dispatchEvent(new CustomEvent(StringHelper.fromHyphenToCamel(editorAction),{detail:editorAction,bubbles:true,cancelable:true}))}}updateTemplateContent(){var _a;if(!this.autofocus){return}for(const child of descendentElementIterator(this.editor)){let e=child;if(e.isContentEditable){while(((_a=e.children)===null||_a===void 0?void 0:_a.length)>0){e=e.children[0]}if(e.tagName==="BR"){e=e.parentElement}setTimeout((()=>{const s=window.getSelection();const r=document.createRange();r.setStart(e,1);r.setEnd(e,1);s.removeAllRanges();s.addRange(r)}),1e3);return}}}});__decorate([InjectProperty,__metadata("design:type",LocalFileService)],MailHtmlEditor.prototype,"localFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/html/InlineHtmlEditorWithToolbar");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1135
1135
|
display: inline-grid;
|
|
1136
1136
|
grid-template-rows: 1fr auto;
|
|
1137
1137
|
grid-template-columns: 1fr 40px;
|
|
@@ -1319,7 +1319,7 @@ and limitations under the License.
|
|
|
1319
1319
|
max-height: 20px;
|
|
1320
1320
|
}
|
|
1321
1321
|
}
|
|
1322
|
-
`.installGlobal("[data-html-editor=email-editor]");_export("default",ComposeMailPage=class ComposeMailPage extends PopupWindowPage{init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(this.parameters.subject){this.title="Reply: "+this.parameters.subject}else{this.title="Compose New"}this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:Email.create({subject:(_b=this.parameters.subject)!==null&&_b!==void 0?_b:"",textBody:"",htmlBody:`<div contentEditable="true"><p><br/><br/><br/><br/><br/></p></div>`,recipients:[],attachments:[]});if(this.parameters.social){const senderName=this.parameters.mailbox.emailAddress.name;const senderEmail=this.parameters.mailbox.emailAddress.emailAddress;this.model.htmlBody=DomToString(SocialTemplate.simple({senderEmail,senderName}))}if(this.parameters.emailAddress){this.model.recipients.add(EmailRecipient.create({emailAddressText:this.parameters.emailAddress,emailAddressID:(_c=this.parameters.emailAddressID)!==null&&_c!==void 0?_c:void 0}))}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(HorizontalFormField,{label:"To:"},XNode.create(EmailRecipientChips,{items:this.model.recipients})),XNode.create(FormField,{label:""},XNode.create(TitleEditor,{placeholder:"Subject",capitalize:"words",value:Bind.twoWaysImmediate((()=>this.model.subject))})),XNode.create(InlineHtmlEditorWithToolbar,{"data-html-editor":"email-editor",presenter:Bind.presenter((c=>this.editor=c)),content:this.model.htmlBody,"style-min-height":"200px"}),XNode.create(AtomRepeater,{items:this.model.attachments,itemRenderer:item=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:item.name}))}),XNode.create("div",{"data-layout":"sticky-command-row"},XNode.create("button",{"data-click-event":"send-email",text:"Send"}),XNode.create("button",{"data-click-event":"save-email",text:"Save"}))))}))}filesAvailable({files,extra}){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){(_a=(_b=this.model).attachments)!==null&&_a!==void 0?_a:_b.attachments=[];for(const iterator of files){this.model.attachments.add(AppFile.create({appFileID:iterator.appFileID,name:iterator.file.name,contentType:iterator.file.type,contentDisposition:iterator.inline?"inline":"attachment",contentID:iterator.inline?iterator.appFileID.toString():void 0}))}}))}sendEmail(){return __awaiter(this,void 0,void 0,(function*(){if(!this.model.recipients.length){throw new Error("No recipients specified")}if(!this.model.subject){throw new Error("No subject specified")}const{html,text}=this.editor.htmlTextContent;this.model.htmlBody=html;this.model.textBody=text;if(!this.model.textBody){throw new Error("Email is empty")}this.model.senderID=this.parameters.mailboxID;this.model.status="scheduled";this.model.dateSent=DateTime.now;yield this.mailService.send(this.model)}))}saveEmail(){return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.send(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],ComposeMailPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"filesAvailable",null);__decorate([Action({onEvent:"send-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"sendEmail",null);__decorate([Action({onEvent:"save-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"saveEmail",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ComposeMailPage");System.register(["tslib","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/types","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,AtomDisposableList,UMD,DISingleton,SocketNamespace,io,cache,of,MailboxSocket;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistCoreAtomDisposableList){AtomDisposableList=_webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cache=new Map;of=name=>__awaiter(void 0,void 0,void 0,(function*(){io!==null&&io!==void 0?io:io=(yield UMD.import("https://cdn.jsdelivr.net/npm/socket.io-client@4.6.0/dist/socket.io.min.js")).io;const value=io(name,{transports:["websocket"]});yield new Promise(((resolve,reject)=>{value.on("connect",resolve)}));return value}));SocketNamespace=class SocketNamespace{static for(ns){let sn=cache.get(ns);if(!sn){sn=new SocketNamespace(ns);cache.set(ns,sn)}return sn}constructor(ns){this.ns=ns;this.rooms=new Map}connect(roomName,events){var _a;return __awaiter(this,void 0,void 0,(function*(){(_a=this.socket)!==null&&_a!==void 0?_a:this.socket=yield this.init();let room=this.rooms.get(roomName);if(!room){room=new Set;this.rooms.set(roomName,room);this.socket.emit("join",roomName)}const disposables=new AtomDisposableList;for(const key in events){if(Object.prototype.hasOwnProperty.call(events,key)){const element=events[key];const handler=(...a)=>{var _a;return(_a=element(...a))===null||_a===void 0?void 0:_a.catch(console.error)};room.add(handler);this.socket.on(key,handler);disposables.add((()=>{this.socket.off(key,handler);room.delete(handler)}))}}disposables.add((()=>this.clear(roomName)));return disposables}))}clear(roomName){const room=this.rooms.get(roomName);if(room.size===0){this.rooms.delete(roomName);this.socket.emit("leave",roomName)}}init(){const init=()=>__awaiter(this,void 0,void 0,(function*(){const ns=yield of("/"+this.ns);return ns}));const value=init();Object.defineProperty(this,"init",{value:()=>value});return value}};_export("MailboxSocket",MailboxSocket=class MailboxSocket{join(room,events){return __awaiter(this,void 0,void 0,(function*(){const disposables=new AtomDisposableList;const ns=SocketNamespace.for("mailbox");ns.connect(room,events).then((v=>disposables.add(v)),console.error);return disposables}))}});_export("MailboxSocket",MailboxSocket=__decorate([DISingleton()],MailboxSocket))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/socket/sockets");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __rest,XNode,styled,toggleDetails,setEventHandler;function LimitedText(_a,...nodes){var{text="",height=100}=_a,a=__rest(_a,["text","height"]);setEventHandler===null||setEventHandler===void 0?void 0:setEventHandler();const h=typeof height==="number"?`${height}px`:height;return XNode.create("div",Object.assign({"data-mode":"collapsed","data-max-height":h,"style-max-height":h,"data-limited-text":"limited-text"},a),text&&XNode.create("p",{text}),...nodes,XNode.create("div",{"style-top":h,"data-element":"more"},XNode.create("button",{class:"fa-solid fa-angles-up"})))}_export("default",LimitedText);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1322
|
+
`.installGlobal("[data-html-editor=email-editor]");_export("default",ComposeMailPage=class ComposeMailPage extends PopupWindowPage{init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(this.parameters.subject){this.title="Reply: "+this.parameters.subject}else{this.title="Compose New"}this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:Email.create({subject:(_b=this.parameters.subject)!==null&&_b!==void 0?_b:"",textBody:"",htmlBody:`<div contentEditable="true"><p><br/><br/><br/><br/><br/></p></div>`,recipients:[],attachments:[]});if(this.parameters.social){const senderName=this.parameters.mailbox.emailAddress.name;const senderEmail=this.parameters.mailbox.emailAddress.emailAddress;this.model.htmlBody=DomToString(SocialTemplate.simple({senderEmail,senderName}))}if(this.parameters.emailAddress){this.model.recipients.add(EmailRecipient.create({emailAddressText:this.parameters.emailAddress,emailAddressID:(_c=this.parameters.emailAddressID)!==null&&_c!==void 0?_c:void 0}))}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(HorizontalFormField,{label:"To:"},XNode.create(EmailRecipientChips,{items:this.model.recipients})),XNode.create(FormField,{label:""},XNode.create(TitleEditor,{placeholder:"Subject",capitalize:"words",value:Bind.twoWaysImmediate((()=>this.model.subject))})),XNode.create(InlineHtmlEditorWithToolbar,{autofocus:true,"data-html-editor":"email-editor",presenter:Bind.presenter((c=>this.editor=c)),content:this.model.htmlBody,"style-min-height":"200px"}),XNode.create(AtomRepeater,{items:this.model.attachments,itemRenderer:item=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:item.name}))}),XNode.create("div",{"data-layout":"sticky-command-row"},XNode.create("button",{"data-click-event":"send-email",text:"Send"}),XNode.create("button",{"data-click-event":"save-email",text:"Save"}))))}))}filesAvailable({files,extra}){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){(_a=(_b=this.model).attachments)!==null&&_a!==void 0?_a:_b.attachments=[];for(const iterator of files){this.model.attachments.add(AppFile.create({appFileID:iterator.appFileID,name:iterator.file.name,contentType:iterator.file.type,contentDisposition:iterator.inline?"inline":"attachment",contentID:iterator.inline?iterator.appFileID.toString():void 0}))}}))}sendEmail(){return __awaiter(this,void 0,void 0,(function*(){if(!this.model.recipients.length){throw new Error("No recipients specified")}if(!this.model.subject){throw new Error("No subject specified")}const{html,text}=this.editor.htmlTextContent;this.model.htmlBody=html;this.model.textBody=text;if(!this.model.textBody){throw new Error("Email is empty")}this.model.senderID=this.parameters.mailboxID;this.model.status="scheduled";this.model.dateSent=DateTime.now;yield this.mailService.send(this.model)}))}saveEmail(){return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.send(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],ComposeMailPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"filesAvailable",null);__decorate([Action({onEvent:"send-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"sendEmail",null);__decorate([Action({onEvent:"save-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"saveEmail",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ComposeMailPage");System.register(["tslib","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/types","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,AtomDisposableList,UMD,DISingleton,SocketNamespace,io,cache,of,MailboxSocket;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistCoreAtomDisposableList){AtomDisposableList=_webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cache=new Map;of=name=>__awaiter(void 0,void 0,void 0,(function*(){io!==null&&io!==void 0?io:io=(yield UMD.import("https://cdn.jsdelivr.net/npm/socket.io-client@4.6.0/dist/socket.io.min.js")).io;const value=io(name,{transports:["websocket"]});yield new Promise(((resolve,reject)=>{value.on("connect",resolve)}));return value}));SocketNamespace=class SocketNamespace{static for(ns){let sn=cache.get(ns);if(!sn){sn=new SocketNamespace(ns);cache.set(ns,sn)}return sn}constructor(ns){this.ns=ns;this.rooms=new Map}connect(roomName,events){var _a;return __awaiter(this,void 0,void 0,(function*(){(_a=this.socket)!==null&&_a!==void 0?_a:this.socket=yield this.init();let room=this.rooms.get(roomName);if(!room){room=new Set;this.rooms.set(roomName,room);this.socket.emit("join",roomName)}const disposables=new AtomDisposableList;for(const key in events){if(Object.prototype.hasOwnProperty.call(events,key)){const element=events[key];const handler=(...a)=>{var _a;return(_a=element(...a))===null||_a===void 0?void 0:_a.catch(console.error)};room.add(handler);this.socket.on(key,handler);disposables.add((()=>{this.socket.off(key,handler);room.delete(handler)}))}}disposables.add((()=>this.clear(roomName)));return disposables}))}clear(roomName){const room=this.rooms.get(roomName);if(room.size===0){this.rooms.delete(roomName);this.socket.emit("leave",roomName)}}init(){const init=()=>__awaiter(this,void 0,void 0,(function*(){const ns=yield of("/"+this.ns);return ns}));const value=init();Object.defineProperty(this,"init",{value:()=>value});return value}};_export("MailboxSocket",MailboxSocket=class MailboxSocket{join(room,events){return __awaiter(this,void 0,void 0,(function*(){const disposables=new AtomDisposableList;const ns=SocketNamespace.for("mailbox");ns.connect(room,events).then((v=>disposables.add(v)),console.error);return disposables}))}});_export("MailboxSocket",MailboxSocket=__decorate([DISingleton()],MailboxSocket))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/socket/sockets");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __rest,XNode,styled,toggleDetails,setEventHandler;function LimitedText(_a,...nodes){var{text="",height=100}=_a,a=__rest(_a,["text","height"]);setEventHandler===null||setEventHandler===void 0?void 0:setEventHandler();const h=typeof height==="number"?`${height}px`:height;return XNode.create("div",Object.assign({"data-mode":"collapsed","data-max-height":h,"style-max-height":h,"data-limited-text":"limited-text"},a),text&&XNode.create("p",{text}),...nodes,XNode.create("div",{"style-top":h,"data-element":"more"},XNode.create("button",{class:"fa-solid fa-angles-up"})))}_export("default",LimitedText);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1323
1323
|
position: relative;
|
|
1324
1324
|
overflow: hidden;
|
|
1325
1325
|
contain: content;
|
|
@@ -1657,7 +1657,7 @@ and limitations under the License.
|
|
|
1657
1657
|
|
|
1658
1658
|
}
|
|
1659
1659
|
}
|
|
1660
|
-
`.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++}}));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;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;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:(_d=item.senderUser)===null||_d===void 0?void 0:_d.displayName,text:(_e=item.senderUser)===null||_e===void 0?void 0:_e.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)))),((_f=item.attachments)===null||_f===void 0?void 0:_f.length)&&XNode.create("div",{class:"attachments","data-layout":"flex-wrap-padding"},...item.attachments.map(FilePreview)),thread.email.tags&&XNode.create("div",{"data-layout":"row"},...thread.email.tags.split(",").map((x=>XNode.create("span",{text:`#${x.startsWith("#")?x.substring(1):x}`})))),!sent&&XNode.create("div",{"data-layout":"row"},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"})),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(MiniComposeBox,{mailboxContact:this.parameters})}))}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)}))}mailOptions(thread,ce){var _a;return __awaiter(this,void 0,void 0,(function*(){void InlinePopupControl.showPopup(ce.target,XNode.create("div",{"data-click-event":"none","data-click-animate":"none"},XNode.create(MenuItem,{eventClick:()=>PageNavigator.pushPage(MailDetailPage,thread.email),icon:"fas fa-eye",label:"Details"}),XNode.create(MenuItem,{href:`/api/files/download/${thread.email.originalFileID}`,icon:"fas fa-download",label:"Download"}),XNode.create(MenuItem,{"data-click-event":"open-logs",icon:"fa-regular fa-clock-rotate-left",label:"Logs"}),((_a=thread.email)===null||_a===void 0?void 0:_a.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})}))}replyEmail({email},ce){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){const parse=JSON.parse(email.headers);const emailAddressText=((_b=(_a=parse===null||parse===void 0?void 0:parse.replyTo)===null||_a===void 0?void 0:_a[0])!==null&&_b!==void 0?_b:this.parameters.emailAddress.emailAddress).toLocaleLowerCase();const name=email.senderName;const parentID=(_c=email.parentID)!==null&&_c!==void 0?_c:email.emailID;const recipients=[EmailRecipient.create({name,emailAddressText})];if(/all/i.test(ce.type)){for(const{name:rName,emailAddress:{emailAddress}}of email.recipients){if(recipients.some((er=>er.emailAddress.emailAddress===emailAddress))){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:`<div contentEditable="true"><p><br/><br/><br/><br/><br/></p></div>`});yield PageNavigator.pushPageForResult(ComposeMailPage,{mailboxID:child.senderID,mailbox:this.parameters.mailbox,model: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)}))}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:"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:"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:["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:"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,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));if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.creator.userName,p.search)))}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}){return __awaiter(this,void 0,void 0,(function*(){if(templates){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray({cancelToken});const root=AppFile.create({name:"Templates",isFolder:true,appFileID:0,creator:User.create({}),children});return root}return 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})}))}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,showFolder=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))}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))){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)}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,$deleted: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`
|
|
1660
|
+
`.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++}}));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;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;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:(_d=item.senderUser)===null||_d===void 0?void 0:_d.displayName,text:(_e=item.senderUser)===null||_e===void 0?void 0:_e.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)))),((_f=item.attachments)===null||_f===void 0?void 0:_f.length)&&XNode.create("div",{class:"attachments","data-layout":"flex-wrap-padding"},...item.attachments.map(FilePreview)),thread.email.tags&&XNode.create("div",{"data-layout":"row"},...thread.email.tags.split(",").map((x=>XNode.create("span",{text:`#${x.startsWith("#")?x.substring(1):x}`})))),!sent&&XNode.create("div",{"data-layout":"row"},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"})),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(MiniComposeBox,{mailboxContact:this.parameters})}))}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)}))}mailOptions(thread,ce){var _a;return __awaiter(this,void 0,void 0,(function*(){void InlinePopupControl.showPopup(ce.target,XNode.create("div",{"data-click-event":"none","data-click-animate":"none"},XNode.create(MenuItem,{eventClick:()=>PageNavigator.pushPage(MailDetailPage,thread.email),icon:"fas fa-eye",label:"Details"}),XNode.create(MenuItem,{href:`/api/files/download/${thread.email.originalFileID}`,icon:"fas fa-download",label:"Download"}),XNode.create(MenuItem,{"data-click-event":"open-logs",icon:"fa-regular fa-clock-rotate-left",label:"Logs"}),((_a=thread.email)===null||_a===void 0?void 0:_a.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})}))}replyEmail({email},ce){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){const parse=JSON.parse(email.headers);const emailAddressText=((_b=(_a=parse===null||parse===void 0?void 0:parse.replyTo)===null||_a===void 0?void 0:_a[0])!==null&&_b!==void 0?_b:this.parameters.emailAddress.emailAddress).toLocaleLowerCase();const name=email.senderName;const parentID=(_c=email.parentID)!==null&&_c!==void 0?_c:email.emailID;const recipients=[EmailRecipient.create({name,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} ${`<${this.parameters.emailAddress.emailAddress}>`}<br/>Subject: ${email.subject} </summary>\n <div>\n ${email.htmlBody}\n </div>\n </details>\n </blockquote>\n </section>`});yield PageNavigator.pushPageForResult(ComposeMailPage,{mailboxID:child.senderID,mailbox:this.parameters.mailbox,model: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)}))}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:"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:"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:["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:"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,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));if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.creator.userName,p.search)))}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}){return __awaiter(this,void 0,void 0,(function*(){if(templates){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray({cancelToken});const root=AppFile.create({name:"Templates",isFolder:true,appFileID:0,creator:User.create({}),children});return root}return 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})}))}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,showFolder=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))}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))){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)}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,$deleted: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`
|
|
1661
1661
|
|
|
1662
1662
|
display: flex;
|
|
1663
1663
|
flex-direction: column;
|
|
@@ -1820,10 +1820,6 @@ and limitations under the License.
|
|
|
1820
1820
|
}
|
|
1821
1821
|
}
|
|
1822
1822
|
|
|
1823
|
-
& [data-page-element=content] {
|
|
1824
|
-
background-color: #80808030;
|
|
1825
|
-
}
|
|
1826
|
-
|
|
1827
1823
|
& .threads {
|
|
1828
1824
|
display: flex;
|
|
1829
1825
|
gap: 5px;
|
|
@@ -3291,7 +3287,7 @@ and limitations under the License.
|
|
|
3291
3287
|
& > .hide {
|
|
3292
3288
|
display: none;
|
|
3293
3289
|
}
|
|
3294
|
-
`.installGlobal("div[data-pinch-zoom]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/pinch-zoom-view-style");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","./styles/pinch-zoom-view-style"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomControl,PinchZoomView,center,distance;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_stylesPinchZoomViewStyle){}],execute:function(){center=ev=>{const touch=ev.touches[0];if(touch){return{x:touch.clientX,y:touch.clientY}}return{x:0,y:0}};distance=(first,second)=>Math.hypot(first.pageX-second.pageX,first.pageY-second.pageY);_export("default",PinchZoomView=class PinchZoomView extends AtomControl{preCreate(){this.element.title="Use mouse wheel to zoom";this.loading=false;this.zoom={scale:0,anchorX:0,anchorY:0,x:0,y:0};this.element.dataset.pinchZoom="true";this.render(XNode.create("div",null,XNode.create("div",{class:"image-container"},XNode.create("img",{src:Bind.oneWay((()=>this.getSource(this.source))),"event-load":()=>{this.loading=false;this.updateZoom(this.zoom)}})),XNode.create("i",{class:Bind.oneWay((()=>this.loading?"spinner fa-duotone fa-spinner fa-spin":"hide"))}),XNode.create("i",{"event-click":()=>this.updateZoom(),class:Bind.oneWay((()=>this.zoom.scale?"scale fa-solid fa-arrows-minimize":"hide")),title:"Display entire image"})));this.imageContainer=this.element.firstElementChild;this.image=this.imageContainer.firstElementChild;const scrollView=this.element;let previous;let touchMoveDisposable;let touchEndDisposable;this.bindEvent(scrollView,"touchstart",(evs=>{previous=center(evs);let previousDistance=undefined;touchMoveDisposable!==null&&touchMoveDisposable!==void 0?touchMoveDisposable:touchMoveDisposable=this.bindEvent(scrollView,"touchmove",(ev=>{var _a;ev.preventDefault();(_a=ev.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(ev);let{x,y,anchorX,anchorY,scale}=this.zoom;if(ev.touches.length===2){const rect=this.element.getBoundingClientRect();const first=ev.touches[0];const second=ev.touches[1];anchorX=(first.clientX+second.clientX)/2-rect.left;anchorY=(first.clientY+second.clientY)/2-rect.top;const newScale=distance(first,second);if(previousDistance===void 0){previousDistance=newScale;return}if(previousDistance===newScale){return}scale+=newScale-previousDistance;previousDistance=newScale;this.updateZoom({anchorX,anchorY,x,y,scale});return}if(!previous){return}const cp=center(ev);x+=cp.x-previous.x;y+=cp.y-previous.y;previous=cp;this.updateZoom({anchorX,anchorY,x,y,scale})}));touchEndDisposable!==null&&touchEndDisposable!==void 0?touchEndDisposable:touchEndDisposable=this.bindEvent(scrollView,"touchend",(ev=>{touchMoveDisposable===null||touchMoveDisposable===void 0?void 0:touchMoveDisposable.dispose();touchEndDisposable===null||touchEndDisposable===void 0?void 0:touchEndDisposable.dispose();touchMoveDisposable=undefined;touchEndDisposable=undefined;previousDistance=undefined}))}));let mouseMoveDisposable;let mouseUpDisposable;this.bindEvent(scrollView,"mousedown",(ev=>{this.element.dataset.state="grabbing";previous={x:ev.clientX,y:ev.clientY};mouseMoveDisposable!==null&&mouseMoveDisposable!==void 0?mouseMoveDisposable:mouseMoveDisposable=this.bindEvent(scrollView,"mousemove",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);const{anchorX,anchorY,scale}=this.zoom;let{x,y}=this.zoom;const cp={x:e.clientX,y:e.clientY};x+=cp.x-previous.x;y+=cp.y-previous.y;previous=cp;this.updateZoom({anchorX,anchorY,x,y,scale})}));mouseUpDisposable!==null&&mouseUpDisposable!==void 0?mouseUpDisposable:mouseUpDisposable=this.bindEvent(scrollView,"mouseup",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);this.element.dataset.state="";previous=null;mouseMoveDisposable.dispose();mouseUpDisposable.dispose();mouseMoveDisposable=undefined;mouseUpDisposable=undefined}))}));this.bindEvent(scrollView,"wheel",(ev=>{var _a;const target=ev.currentTarget;ev.preventDefault();(_a=ev.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(ev);const newScale=this.zoom.scale-(ev.deltaY<0?-50:50);const anchorX=ev.offsetX;const anchorY=ev.offsetY;const{x,y}=this.zoom;this.updateZoom({anchorX,anchorY,x,y,scale:newScale<0?0:newScale})}),undefined,{passive:false})}getSource(text){if(text){this.loading=true}return text}updateZoom(zoom={x:0,y:0,anchorX:0,anchorY:0,scale:0}){const{anchorX,anchorY,x,y}=zoom;let{scale}=zoom;this.zoom=zoom;const image=this.image;if(!image.naturalHeight){return}const maxHeight=this.element.clientWidth>this.element.clientHeight;const s=maxHeight?this.element.clientWidth/image.naturalWidth:this.element.clientHeight/image.naturalHeight;if(scale<=0){scale=0}const newWidth=this.element.clientWidth+scale+"px";const newHeight=this.element.clientHeight+scale+"px";this.image.style.maxWidth=this.element.clientWidth+"px";this.image.style.maxHeight=this.element.clientHeight+"px";if(scale<=0){this.imageContainer.style.transform="";return}const clientWidth=this.element.clientWidth;const scaleFactor=(clientWidth+scale)/clientWidth;this.imageContainer.style.transformOrigin=`${anchorX}px ${anchorY}`;this.imageContainer.style.transform=`translate(${x}px, ${y}px) scale(${scaleFactor})`}});__decorate([BindableProperty,__metadata("design:type",Object)],PinchZoomView.prototype,"zoom",void 0);__decorate([BindableProperty,__metadata("design:type",String)],PinchZoomView.prototype,"source",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],PinchZoomView.prototype,"loading",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/PinchZoomView");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/PinchZoomView","../../../../../common/controls/buttons/IconButton"],(function(_export,_context){"use strict";var __awaiter,ContentPage,XNode,PinchZoomView,IconButton,PreviewImage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicPinchZoomView){PinchZoomView=_webAtomsWebControlsDistBasicPinchZoomView.default},function(_commonControlsButtonsIconButton){IconButton=_commonControlsButtonsIconButton.IconButton}],execute:function(){_export("default",PreviewImage=class PreviewImage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,fileContentID,name}=this.parameters;const pdf=`/api/files/pdf/${appFileID}/${fileContentID}/${name}/${name}.pdf`;const download=`/api/files/download/${appFileID}/${fileContentID}/${name}`;this.title=name;this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("a",{href:pdf,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-print",text:"Print"})),XNode.create("a",{href:download,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-download",text:"Download"})));const webp=/\.(jpg|png|jpeg|bmp)/i.test(name)?`/api/files/download/${appFileID}/${fileContentID}/${name}`:`/api/files/webp/${appFileID}/${fileContentID}/${name}/${name}.webp`;this.renderer=XNode.create("div",{"data-display":"grid","data-align-items":"stretch"},XNode.create(PinchZoomView,{source:webp}))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/preview/image/PreviewImage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/XNode","../../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,ContentPage,FetchBuilder,XNode,IconButton,AtomControl,PreviewDocument,renderHTML;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonControlsButtonsIconButton){IconButton=_commonControlsButtonsIconButton.IconButton},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){renderHTML=AtomControl.registerProperty("data-html","html",((c,e,value)=>{if(!value){e.innerHTML="";return}const html=value;const msg=document.createElement("div");msg.innerHTML=html;const shadow=e.attachShadow({mode:"open"});shadow.appendChild(msg);return}));_export("default",PreviewDocument=class PreviewDocument extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,fileContentID,name}=this.parameters;const pdf=`/api/files/pdf/${appFileID}/${fileContentID}/${name}/${name}.pdf`;const download=`/api/files/download/${appFileID}/${fileContentID}/${name}`;this.title=name;this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("a",{href:pdf,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-print",text:"Print"})),XNode.create("a",{href:download,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-download",text:"Download"})));this.renderer=XNode.create("div",null,XNode.create("div",{text:"..."}));const html=yield FetchBuilder.get(`/api/files/html/${appFileID}/${fileContentID}/${name}/${name}.html`).responseAsText();this.renderer=XNode.create("div",{"style-overflow-y":"hidden"},XNode.create("div",Object.assign({"data-overflow":"auto"},renderHTML(html))))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/preview/document/PreviewDocument");System.register(["tslib","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,AtomBinder,Bind,BindableProperty,XNode,AtomControl,ChildEnumerator,styled,AtomVideoPlayer,isTouchEnabled,gatherElements,numberToText,durationText,noSoundIcon,mute,low,mid,high,getPlayIcon;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreAtomBinder){AtomBinder=_webAtomsCoreDistCoreAtomBinder.AtomBinder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){isTouchEnabled=/android|iPhone|iPad/i.test(navigator.userAgent);styled.css`
|
|
3290
|
+
`.installGlobal("div[data-pinch-zoom]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/pinch-zoom-view-style");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","./styles/pinch-zoom-view-style"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomControl,PinchZoomView,center,distance;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_stylesPinchZoomViewStyle){}],execute:function(){center=ev=>{const touch=ev.touches[0];if(touch){return{x:touch.clientX,y:touch.clientY}}return{x:0,y:0}};distance=(first,second)=>Math.hypot(first.pageX-second.pageX,first.pageY-second.pageY);_export("default",PinchZoomView=class PinchZoomView extends AtomControl{preCreate(){this.element.title="Use mouse wheel to zoom";this.loading=false;this.zoom={scale:0,anchorX:0,anchorY:0,x:0,y:0};this.element.dataset.pinchZoom="true";this.render(XNode.create("div",null,XNode.create("div",{class:"image-container"},XNode.create("img",{src:Bind.oneWay((()=>this.getSource(this.source))),"event-load":()=>{this.loading=false;this.updateZoom(this.zoom)}})),XNode.create("i",{class:Bind.oneWay((()=>this.loading?"spinner fa-duotone fa-spinner fa-spin":"hide"))}),XNode.create("i",{"event-click":()=>this.updateZoom(),class:Bind.oneWay((()=>this.zoom.scale?"scale fa-solid fa-arrows-minimize":"hide")),title:"Display entire image"})));this.imageContainer=this.element.firstElementChild;this.image=this.imageContainer.firstElementChild;const scrollView=this.element;let previous;let touchMoveDisposable;let touchEndDisposable;this.bindEvent(scrollView,"touchstart",(evs=>{previous=center(evs);let previousDistance=undefined;touchMoveDisposable!==null&&touchMoveDisposable!==void 0?touchMoveDisposable:touchMoveDisposable=this.bindEvent(scrollView,"touchmove",(ev=>{var _a;ev.preventDefault();(_a=ev.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(ev);let{x,y,anchorX,anchorY,scale}=this.zoom;if(ev.touches.length===2){const rect=this.element.getBoundingClientRect();const first=ev.touches[0];const second=ev.touches[1];anchorX=(first.clientX+second.clientX)/2-rect.left;anchorY=(first.clientY+second.clientY)/2-rect.top;const newScale=distance(first,second);if(previousDistance===void 0){previousDistance=newScale;return}if(previousDistance===newScale){return}scale+=newScale-previousDistance;previousDistance=newScale;this.updateZoom({anchorX,anchorY,x,y,scale});return}if(!previous){return}const cp=center(ev);x+=cp.x-previous.x;y+=cp.y-previous.y;previous=cp;this.updateZoom({anchorX,anchorY,x,y,scale})}));touchEndDisposable!==null&&touchEndDisposable!==void 0?touchEndDisposable:touchEndDisposable=this.bindEvent(scrollView,"touchend",(ev=>{touchMoveDisposable===null||touchMoveDisposable===void 0?void 0:touchMoveDisposable.dispose();touchEndDisposable===null||touchEndDisposable===void 0?void 0:touchEndDisposable.dispose();touchMoveDisposable=undefined;touchEndDisposable=undefined;previousDistance=undefined}))}));let mouseMoveDisposable;let mouseUpDisposable;this.bindEvent(scrollView,"mousedown",(ev=>{this.element.dataset.state="grabbing";previous={x:ev.clientX,y:ev.clientY};mouseMoveDisposable!==null&&mouseMoveDisposable!==void 0?mouseMoveDisposable:mouseMoveDisposable=this.bindEvent(scrollView,"mousemove",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);const{anchorX,anchorY,scale}=this.zoom;let{x,y}=this.zoom;const cp={x:e.clientX,y:e.clientY};x+=cp.x-previous.x;y+=cp.y-previous.y;previous=cp;this.updateZoom({anchorX,anchorY,x,y,scale})}));mouseUpDisposable!==null&&mouseUpDisposable!==void 0?mouseUpDisposable:mouseUpDisposable=this.bindEvent(scrollView,"mouseup",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);this.element.dataset.state="";previous=null;mouseMoveDisposable.dispose();mouseUpDisposable.dispose();mouseMoveDisposable=undefined;mouseUpDisposable=undefined}))}));this.bindEvent(scrollView,"wheel",(ev=>{var _a;const target=ev.currentTarget;ev.preventDefault();(_a=ev.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(ev);const newScale=this.zoom.scale-(ev.deltaY<0?-50:50);const anchorX=ev.offsetX;const anchorY=ev.offsetY;const{x,y}=this.zoom;this.updateZoom({anchorX,anchorY,x,y,scale:newScale<0?0:newScale})}),undefined,{passive:false})}getSource(text){if(text){this.loading=true}return text}updateZoom(zoom={x:0,y:0,anchorX:0,anchorY:0,scale:0}){const{anchorX,anchorY,x,y}=zoom;let{scale}=zoom;this.zoom=zoom;const image=this.image;if(!image.naturalHeight){return}const maxHeight=this.element.clientWidth>this.element.clientHeight;const s=maxHeight?this.element.clientWidth/image.naturalWidth:this.element.clientHeight/image.naturalHeight;if(scale<=0){scale=0}const newWidth=this.element.clientWidth+scale+"px";const newHeight=this.element.clientHeight+scale+"px";this.image.style.maxWidth=this.element.clientWidth+"px";this.image.style.maxHeight=this.element.clientHeight+"px";if(scale<=0){this.imageContainer.style.transform="";return}const clientWidth=this.element.clientWidth;const scaleFactor=(clientWidth+scale)/clientWidth;this.imageContainer.style.transformOrigin=`${anchorX}px ${anchorY}`;this.imageContainer.style.transform=`translate(${x}px, ${y}px) scale(${scaleFactor})`}});__decorate([BindableProperty,__metadata("design:type",Object)],PinchZoomView.prototype,"zoom",void 0);__decorate([BindableProperty,__metadata("design:type",String)],PinchZoomView.prototype,"source",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],PinchZoomView.prototype,"loading",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/PinchZoomView");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/PinchZoomView","../../../../../common/controls/buttons/IconButton"],(function(_export,_context){"use strict";var __awaiter,ContentPage,XNode,PinchZoomView,IconButton,PreviewImage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicPinchZoomView){PinchZoomView=_webAtomsWebControlsDistBasicPinchZoomView.default},function(_commonControlsButtonsIconButton){IconButton=_commonControlsButtonsIconButton.IconButton}],execute:function(){_export("default",PreviewImage=class PreviewImage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,fileContentID,name}=this.parameters;const pdf=`/api/files/pdf/${appFileID}/${fileContentID}/${name}/${name}.pdf`;const download=`/api/files/download/${appFileID}/${fileContentID}/${name}`;this.title=name;this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("a",{href:pdf,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-print",text:"Print"})),XNode.create("a",{href:download,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-download",text:"Download"})));const webp=/\.(jpg|png|jpeg|bmp)/i.test(name)?`/api/files/download/${appFileID}/${fileContentID}/${name}`:`/api/files/webp/${appFileID}/${fileContentID}/${name}/${name}.webp`;this.renderer=XNode.create("div",{"data-display":"grid","data-align-items":"stretch"},XNode.create(PinchZoomView,{source:webp}))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/preview/image/PreviewImage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/XNode","../../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,ContentPage,FetchBuilder,XNode,IconButton,AtomControl,PreviewDocument,renderHTML;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonControlsButtonsIconButton){IconButton=_commonControlsButtonsIconButton.IconButton},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){renderHTML=AtomControl.registerProperty("data-html","html",((c,e,value)=>{if(!value){e.innerHTML="";return}const html=value;const msg=document.createElement("div");msg.innerHTML=html;const shadow=e.attachShadow({mode:"open"});shadow.appendChild(msg);return}));_export("default",PreviewDocument=class PreviewDocument extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,fileContentID,name}=this.parameters;const pdf=`/api/files/pdf/${appFileID}/${fileContentID}/${name}/${name}.pdf`;const download=`/api/files/download/${appFileID}/${fileContentID}/${name}`;this.title=name;this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("a",{href:pdf,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-print",text:"Print"})),XNode.create("a",{href:download,target:"_blank"},XNode.create(IconButton,{icon:"fas fa-download",text:"Download"})));this.renderer=XNode.create("div",null,XNode.create("div",{text:"..."}));const html=yield FetchBuilder.get(`/api/files/html/${appFileID}/${fileContentID}/${name}/${name}.html`).responseAsText();this.renderer=XNode.create("div",{"style-overflow-y":"hidden"},XNode.create("div",{"data-position":"absolute-fill","data-overflow":"auto"},XNode.create("div",Object.assign({"data-margin-left":"auto","data-margin-right":"auto"},renderHTML(html)))))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/files/preview/document/PreviewDocument");System.register(["tslib","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,AtomBinder,Bind,BindableProperty,XNode,AtomControl,ChildEnumerator,styled,AtomVideoPlayer,isTouchEnabled,gatherElements,numberToText,durationText,noSoundIcon,mute,low,mid,high,getPlayIcon;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreAtomBinder){AtomBinder=_webAtomsCoreDistCoreAtomBinder.AtomBinder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){isTouchEnabled=/android|iPhone|iPad/i.test(navigator.userAgent);styled.css`
|
|
3295
3291
|
|
|
3296
3292
|
display: grid;
|
|
3297
3293
|
grid-template-rows: auto 1fr auto auto auto;
|