@social-mail/social-mail-client 1.2.734 → 1.2.736
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 +87 -34
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +8 -8
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/admin/pages/users/UserDetailsPage.js +1 -1
- package/dist/admin/pages/users/UserDetailsPage.js.map +1 -1
- package/dist/admin/pages/users/files/EditFileAccessPage.d.ts.map +1 -1
- package/dist/admin/pages/users/files/EditFileAccessPage.js +4 -0
- package/dist/admin/pages/users/files/EditFileAccessPage.js.map +1 -1
- package/dist/common/pages/files/service/CloudFileService.d.ts +4 -2
- package/dist/common/pages/files/service/CloudFileService.d.ts.map +1 -1
- package/dist/common/pages/files/service/CloudFileService.js +6 -3
- package/dist/common/pages/files/service/CloudFileService.js.map +1 -1
- package/dist/common/pages/folders/ChooserFolderPage.d.ts.map +1 -1
- package/dist/common/pages/folders/ChooserFolderPage.js +3 -2
- package/dist/common/pages/folders/ChooserFolderPage.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.js +7 -4
- package/dist/public/channel/ChannelView.pack.js.map +1 -1
- package/dist/public/channel/ChannelView.pack.min.js +1 -1
- package/dist/public/channel/ChannelView.pack.min.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.js +79 -31
- package/dist/site-editor-app/SiteEditorApp.pack.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.min.js +5 -5
- package/dist/site-editor-app/SiteEditorApp.pack.min.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +79 -31
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +6 -6
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/page/mails/mini-compose/Insert.d.ts.map +1 -1
- package/dist/web/page/mails/mini-compose/Insert.js +7 -4
- package/dist/web/page/mails/mini-compose/Insert.js.map +1 -1
- package/dist/web/page/mails/mini-compose/MiniComposeBox.d.ts.map +1 -1
- package/dist/web/page/mails/mini-compose/MiniComposeBox.js +23 -9
- package/dist/web/page/mails/mini-compose/MiniComposeBox.js.map +1 -1
- package/node_modules/@web-atoms/email-dom/dist/DomToString.d.ts +1 -0
- package/node_modules/@web-atoms/email-dom/dist/DomToString.d.ts.map +1 -1
- package/node_modules/@web-atoms/email-dom/dist/DomToString.js +7 -4
- package/node_modules/@web-atoms/email-dom/dist/DomToString.js.map +1 -1
- package/node_modules/@web-atoms/email-dom/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/email-dom/package.json +1 -1
- package/node_modules/@web-atoms/email-dom/src/DomToString.tsx +4 -4
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.d.ts +10 -2
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.d.ts.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.js +36 -11
- package/node_modules/@web-atoms/web-controls/dist/basic/UploadEvent.js.map +1 -1
- package/node_modules/@web-atoms/web-controls/dist/tsconfig.tsbuildinfo +1 -1
- package/node_modules/@web-atoms/web-controls/package.json +1 -1
- package/node_modules/@web-atoms/web-controls/src/basic/UploadEvent.tsx +37 -7
- package/package.json +3 -3
- package/src/admin/pages/users/UserDetailsPage.tsx +1 -1
- package/src/admin/pages/users/files/EditFileAccessPage.tsx +4 -0
- package/src/common/pages/files/service/CloudFileService.ts +7 -4
- package/src/common/pages/folders/ChooserFolderPage.tsx +7 -2
- package/src/web/page/mails/mini-compose/Insert.tsx +7 -3
- package/src/web/page/mails/mini-compose/MiniComposeBox.tsx +32 -8
|
@@ -1255,7 +1255,7 @@ html, body {
|
|
|
1255
1255
|
width: 100%;
|
|
1256
1256
|
}
|
|
1257
1257
|
|
|
1258
|
-
`.installGlobal("[data-attachment-file]");LocalFileService=class LocalFileService extends TaskManager{constructor(){super();this.rateLimit=4;document.body.addEventListener("uploadRequested",(ce=>{const{target,detail:{files,extra,uploadEvent,convert}}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:ce.detail});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}))}uploadFileParts(file,extra,cancelToken,progress){return __awaiter(this,void 0,void 0,(function*(){let size=file.size;const parts=[];const tasks=[];const maxSize=4*1024*1024;let start=0;const fud=new FileUploader;while(size>0){const blobSize=Math.min(maxSize,file.size-start);const part=new File([file.slice(start,start+blobSize)],"file.dat");size-=blobSize;start+=blobSize;const uploadRequest=fud.upload({url:apiPath("/api/tmp/upload"),file:part,cancelToken,progress:()=>{const done=parts.reduce(((pv,cv)=>pv+cv.done),0)||0;progress===null||progress===void 0?void 0:progress(done/parts.length)}});parts.push(uploadRequest);tasks.push(uploadRequest.promise)}const tempUrls=yield Promise.all(tasks);const tempKeys=tempUrls.map((x=>x.key));const name=file.name;const{parentID,appFileID,folder}=extra;const appFile=yield FetchBuilder.post(apiPath("/api/upload")).form("name",name).form("tempKeys",JSON.stringify(tempKeys)).form("contentType",file.type).query("parentID",parentID).query("appFileID",appFileID).query("folder",folder).responseAsJson();return{url:appFile.url,downloadUrl:appFile.url,file,contentType:appFile.contentType,fileContentID:appFile.fileContentID,appFileID:appFile.appFileID}}))}uploadFile(file,extra,ct,progress){return __awaiter(this,void 0,void 0,(function*(){let folder=void 0;if(file.webkitRelativePath){const folders=file.webkitRelativePath.split("/");folders.pop();if(folders.length){folder=folders.join("/")}}if(typeof extra==="string"){extra=JSON.parse(extra)}const sha256=yield this.sha256(file);if(extra===null||extra===void 0?void 0:extra.parentID){const existing=yield this.entityService.query(AppFile,"children",extra.parentID,folder?folder+"/"+file.name:file.name,sha256).firstOrDefault();if(existing){const{appFileID,url}=existing;return{appFileID,file,url}}}if(file.size>4*1024*1024){if(folder){extra!==null&&extra!==void 0?extra:extra={};extra.folder=folder}return yield this.uploadFileParts(file,extra,ct,progress)}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=apiPath("/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(folder){s.append("folder",folder)}postUrl+="?"+s.toString();xhr.open("POST",postUrl,true);xhr.send(body)}))}))}upload({files,extra,convert,uploadEvent,maxSize},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 targetFile=file;if(convert){if(/video/i.test(targetFile.type)&&targetFile.size>maxSize){targetFile=yield FFService.convert(targetFile)}}let lastError;for(let i=0;i<3;i++){try{uploadFile.progress=.01;const r=yield this.uploadFile(targetFile,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,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/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,WebSiteFolder,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;WebSiteFolder=_modelModel.WebSiteFolder},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{topSites(){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;const q=this.entityService.query(WebSiteFolder);const top=yield q.orderByDescending({userID},(p=>x=>x.folder.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.currentVersionID)).include((x=>x.folder.creator)).toPagedList({size:3,count:false});return top.items}))}top(site=false){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null));q=site?q.where((x=>x.contentType==="application/site")):q.where((x=>x.contentType==="folder"));const top=yield q.orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.dateUpdated)).include((x=>x.creator)).toPagedList({size:3,count:false});return top.items}))}drives({start=0,size=50,search="",version=1,contentType=void 0,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null&&x.contentType!=="snapshot"));if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.creator.userName,p.search)))}if(contentType){q=q.where({contentType},(p=>x=>x.contentType===p.contentType))}return q.include((x=>x.creator)).orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.fileSize)).toPagedList({start,size,cancelToken})}))}allTemplates(){return __awaiter(this,void 0,void 0,(function*(){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray();const roots=children.map((x=>x.path+"%"));const all=yield this.entityService.query(AppFile).where({roots},(p=>x=>Sql.text.likeAny(x.path,p.roots))).toArray();return all.filter((x=>!x.parentID))}))}getFile(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).firstOrDefault({cancelToken});return folder}))}getFolder(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});if(folder.children){folder.children.remove((x=>!x.isFolder))}else{folder.children=[]}return folder}))}root({id,templates=false,cancelToken=null}){var _a;return __awaiter(this,void 0,void 0,(function*(){let root;if(templates){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray({cancelToken});root=AppFile.create({name:"Templates",isFolder:true,appFileID:0,creator:User.create({}),children});return root}root=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id&&x.isDeleted===false)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});(_a=root.children)===null||_a===void 0?void 0:_a.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));return root}))}rootFolders(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null)).include((x=>x.creator)).toArray()}))}createFolder({name,parentID}){return __awaiter(this,void 0,void 0,(function*(){const dateCreated=DateTime.now;const r=yield this.entityService.save(AppFile.create({name,parentID,isFolder:true,contentType:"folder",dateCreated,dateUpdated:dateCreated}));return this.entityService.query(AppFile).where({id:r.appFileID},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).firstOrDefault()}))}expand(folder,showDeleted=false,accept=void 0){return __awaiter(this,void 0,void 0,(function*(){const parentID=folder.appFileID;const q=accept?this.entityService.query(AppFile).where({parentID,showDeleted,accept},(p=>x=>x.parentID===p.parentID&&(x.isFolder===true||x.contentType===p.accept)&&x.isDeleted===p.showDeleted)):this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isFolder===true&&x.isDeleted===p.showDeleted));const files=yield q.toArray({hideActivityIndicator});const{children}=folder;for(const iterator of files){if(children.some((c=>c.appFileID===iterator.appFileID))){continue}children.add(iterator)}}))}files({search="",accept="",folder,cancelToken,showDeleted=false,showSnapShot=false,showFolder=true,includeFilesInFolder=true}){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const parentID=folder===null||folder===void 0?void 0:folder.appFileID;if(!parentID){return folder===null||folder===void 0?void 0:folder.children}let q=this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isDeleted===p.showDeleted));if(search){if(!/\%/.test(search)){search=search+"%"}q=q.where({search},(p=>x=>Sql.text.like(x.name,p.search)))}if(accept){const contentTypes=accept.split(/\,/g).map((x=>x.replace("*","%").trim())).filter((x=>x));q=q.where({contentTypes},(p=>x=>x.isFolder||Sql.text.iLikeAny(x.contentType,p.contentTypes)))}if(!showFolder){q=q.where((x=>x.isFolder===false)).orderBy((x=>x.name))}else{q=q.orderByDescending((x=>x.isFolder)).thenBy((x=>x.name))}if(!showSnapShot){q=q.where((x=>x.contentType!=="snapshot"))}const files=yield q.toArray({cancelToken});const results=[];for(const iterator of files){if(!iterator.isFolder){if(accept&&iterator.parentID===folder.appFileID){const children=(_a=folder.children)!==null&&_a!==void 0?_a:folder.children=[];if(!children.some((f=>f.appFileID===iterator.appFileID))){if(includeFilesInFolder||iterator.isFolder){children.add(iterator)}}}results.push(iterator);continue}const fx=folder.children.find((f=>f.appFileID===iterator.appFileID));if(fx){results.push(fx);fx.fileSize=iterator.fileSize;continue}(_b=iterator.children)!==null&&_b!==void 0?_b:iterator.children=[];folder.children.add(iterator);results.push(iterator)}results.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));results.refresh();return results}))}children(parentID,name,sha256){return this.entityService.query(AppFile,"children",parentID,name,sha256)}saveFile(fm){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,content,parentID,folder}=fm;return this.localFileService.uploadFile(content,{appFileID,parentID,folder})}))}save(file){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.save(file,(c=>c));return file}))}delete(files){return __awaiter(this,void 0,void 0,(function*(){files=files.map((({$type,appFileID})=>({$type,appFileID,isDeleted:true})));yield this.entityService.save(files)}))}getFilePath(root,selectedFile){var _a;const[ignore,...segments]=selectedFile.path.split("/");let path="";for(const iterator of segments){if(selectedFile.appFileID===iterator){break}root=(_a=root.children)===null||_a===void 0?void 0:_a.find((x=>x.appFileID===iterator));if(!root){return path}path+=root.name+"/"}return path}};__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/common/pages/files/service/CloudFileService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","../../controls/tree/TreeView","../../../model/model","@web-atoms/core/dist/core/InjectProperty","../../controls/buttons/IconButton","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/basic/AtomRepeater","../files/service/CloudFileService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,TreeView,AppFile,InjectProperty,SaveIconTextButton,Bind,styled,AtomRepeater,CloudFileService,ChooserFolderPage,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_controlsTreeTreeView){TreeView=_controlsTreeTreeView.default},function(_modelModel){AppFile=_modelModel.AppFile},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_filesServiceCloudFileService){CloudFileService=_filesServiceCloudFileService.default}],execute:function(){css=styled.css`
|
|
1258
|
+
`.installGlobal("[data-attachment-file]");LocalFileService=class LocalFileService extends TaskManager{constructor(){super();this.rateLimit=4;document.body.addEventListener("uploadRequested",(ce=>{const{target,detail:{files,extra,uploadEvent,convert}}=ce;ce.preventDefault();this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const detail=yield FileUploadWindow.showModal({parameters:ce.detail});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}))}uploadFileParts(file,extra,cancelToken,progress){return __awaiter(this,void 0,void 0,(function*(){let size=file.size;const parts=[];const tasks=[];const maxSize=4*1024*1024;let start=0;const fud=new FileUploader;while(size>0){const blobSize=Math.min(maxSize,file.size-start);const part=new File([file.slice(start,start+blobSize)],"file.dat");size-=blobSize;start+=blobSize;const uploadRequest=fud.upload({url:apiPath("/api/tmp/upload"),file:part,cancelToken,progress:()=>{const done=parts.reduce(((pv,cv)=>pv+cv.done),0)||0;progress===null||progress===void 0?void 0:progress(done/parts.length)}});parts.push(uploadRequest);tasks.push(uploadRequest.promise)}const tempUrls=yield Promise.all(tasks);const tempKeys=tempUrls.map((x=>x.key));const name=file.name;const{parentID,appFileID,folder}=extra;const appFile=yield FetchBuilder.post(apiPath("/api/upload")).form("name",name).form("tempKeys",JSON.stringify(tempKeys)).form("contentType",file.type).query("parentID",parentID).query("appFileID",appFileID).query("folder",folder).responseAsJson();return{url:appFile.url,downloadUrl:appFile.url,file,contentType:appFile.contentType,fileContentID:appFile.fileContentID,appFileID:appFile.appFileID}}))}uploadFile(file,extra,ct,progress){return __awaiter(this,void 0,void 0,(function*(){let folder=void 0;if(file.webkitRelativePath){const folders=file.webkitRelativePath.split("/");folders.pop();if(folders.length){folder=folders.join("/")}}if(typeof extra==="string"){extra=JSON.parse(extra)}const sha256=yield this.sha256(file);if(extra===null||extra===void 0?void 0:extra.parentID){const existing=yield this.entityService.query(AppFile,"children",extra.parentID,folder?folder+"/"+file.name:file.name,sha256).firstOrDefault();if(existing){const{appFileID,url}=existing;return{appFileID,file,url}}}if(file.size>4*1024*1024){if(folder){extra!==null&&extra!==void 0?extra:extra={};extra.folder=folder}return yield this.uploadFileParts(file,extra,ct,progress)}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=apiPath("/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(folder){s.append("folder",folder)}postUrl+="?"+s.toString();xhr.open("POST",postUrl,true);xhr.send(body)}))}))}upload({files,extra,convert,uploadEvent,maxSize},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 targetFile=file;if(convert){if(/video/i.test(targetFile.type)&&targetFile.size>maxSize){targetFile=yield FFService.convert(targetFile)}}let lastError;for(let i=0;i<3;i++){try{uploadFile.progress=.01;const r=yield this.uploadFile(targetFile,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,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/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,WebSiteFolder,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;WebSiteFolder=_modelModel.WebSiteFolder},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{topSites(){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;const q=this.entityService.query(WebSiteFolder);const top=yield q.orderByDescending({userID},(p=>x=>x.folder.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.currentVersionID)).include((x=>x.folder.creator)).toPagedList({size:3,count:false});return top.items}))}top(site=false){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null));q=site?q.where((x=>x.contentType==="application/site")):q.where((x=>x.contentType==="folder"));const top=yield q.orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.dateUpdated)).include((x=>x.creator)).toPagedList({size:3,count:false});return top.items}))}drives({start=0,size=50,search="",version=1,contentType=void 0,cancelToken,orderBy=void 0}){return __awaiter(this,void 0,void 0,(function*(){const userID=SocialMailApp.user.userID;let q=this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null&&x.contentType!=="snapshot"));if(search){q=q.where({search},(p=>x=>Sql.text.includes(x.creator.userName,p.search)))}if(contentType){q=q.where({contentType},(p=>x=>x.contentType===p.contentType))}orderBy!==null&&orderBy!==void 0?orderBy:orderBy=q1=>q1.orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.fileSize));const oq=orderBy(q);return oq.include((x=>x.creator)).toPagedList({start,size,cancelToken})}))}allTemplates(){return __awaiter(this,void 0,void 0,(function*(){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray();const roots=children.map((x=>x.path+"%"));const all=yield this.entityService.query(AppFile).where({roots},(p=>x=>Sql.text.likeAny(x.path,p.roots))).toArray();return all.filter((x=>!x.parentID))}))}getFile(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).firstOrDefault({cancelToken});return folder}))}getFolder(id,cancelToken=null){return __awaiter(this,void 0,void 0,(function*(){const folder=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});if(folder.children){folder.children.remove((x=>!x.isFolder))}else{folder.children=[]}return folder}))}root({id,templates=false,cancelToken=null}){var _a;return __awaiter(this,void 0,void 0,(function*(){let root;if(templates){const children=yield this.entityService.query(AppFile).where((x=>x.templates.some((c=>true)))).toArray({cancelToken});root=AppFile.create({name:"Templates",isFolder:true,appFileID:0,creator:User.create({}),children});return root}root=yield this.entityService.query(AppFile).where({id},(p=>x=>x.appFileID===p.id&&x.isDeleted===false)).include((x=>x.creator)).include((x=>x.children)).firstOrDefault({cancelToken});(_a=root.children)===null||_a===void 0?void 0:_a.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));return root}))}rootFolders(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(AppFile).where((x=>x.isFolder===true&&x.parentID===null&&x.path!==null)).include((x=>x.creator)).toArray()}))}createFolder({name,parentID}){return __awaiter(this,void 0,void 0,(function*(){const dateCreated=DateTime.now;const r=yield this.entityService.save(AppFile.create({name,parentID,isFolder:true,contentType:"folder",dateCreated,dateUpdated:dateCreated}));return this.entityService.query(AppFile).where({id:r.appFileID},(p=>x=>x.appFileID===p.id)).include((x=>x.creator)).firstOrDefault()}))}expand(folder,showDeleted=false,accept=void 0){return __awaiter(this,void 0,void 0,(function*(){const parentID=folder.appFileID;const q=accept?this.entityService.query(AppFile).where({parentID,showDeleted,accept},(p=>x=>x.parentID===p.parentID&&(x.isFolder===true||x.contentType===p.accept)&&x.isDeleted===p.showDeleted)):this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isFolder===true&&x.isDeleted===p.showDeleted));const files=yield q.toArray({hideActivityIndicator});const{children}=folder;for(const iterator of files){if(children.some((c=>c.appFileID===iterator.appFileID))){continue}children.add(iterator)}}))}files({search="",accept="",folder,cancelToken,showDeleted=false,showSnapShot=false,showFolder=true,includeFilesInFolder=true}){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const parentID=folder===null||folder===void 0?void 0:folder.appFileID;if(!parentID){return folder===null||folder===void 0?void 0:folder.children}let q=this.entityService.query(AppFile).where({parentID,showDeleted},(p=>x=>x.parentID===p.parentID&&x.isDeleted===p.showDeleted));if(search){if(!/\%/.test(search)){search=search+"%"}q=q.where({search},(p=>x=>Sql.text.like(x.name,p.search)))}if(accept){const contentTypes=accept.split(/\,/g).map((x=>x.replace("*","%").trim())).filter((x=>x));q=q.where({contentTypes},(p=>x=>x.isFolder||Sql.text.iLikeAny(x.contentType,p.contentTypes)))}if(!showFolder){q=q.where((x=>x.isFolder===false)).orderBy((x=>x.name))}else{q=q.orderByDescending((x=>x.isFolder)).thenBy((x=>x.name))}if(!showSnapShot){q=q.where((x=>x.contentType!=="snapshot"))}const files=yield q.toArray({cancelToken});const results=[];for(const iterator of files){if(!iterator.isFolder){if(accept&&iterator.parentID===folder.appFileID){const children=(_a=folder.children)!==null&&_a!==void 0?_a:folder.children=[];if(!children.some((f=>f.appFileID===iterator.appFileID))){if(includeFilesInFolder||iterator.isFolder){children.add(iterator)}}}results.push(iterator);continue}const fx=folder.children.find((f=>f.appFileID===iterator.appFileID));if(fx){results.push(fx);fx.fileSize=iterator.fileSize;continue}(_b=iterator.children)!==null&&_b!==void 0?_b:iterator.children=[];folder.children.add(iterator);results.push(iterator)}results.sort(((a,b)=>a.isFolder?Number.MIN_SAFE_INTEGER:b.isFolder?Number.MAX_SAFE_INTEGER:a.name.localeCompare(b.name)));results.refresh();return results}))}children(parentID,name,sha256){return this.entityService.query(AppFile,"children",parentID,name,sha256)}saveFile(fm){return __awaiter(this,void 0,void 0,(function*(){const{appFileID,content,parentID,folder}=fm;return this.localFileService.uploadFile(content,{appFileID,parentID,folder})}))}save(file){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.save(file,(c=>c));return file}))}delete(files){return __awaiter(this,void 0,void 0,(function*(){files=files.map((({$type,appFileID})=>({$type,appFileID,isDeleted:true})));yield this.entityService.save(files)}))}getFilePath(root,selectedFile){var _a;const[ignore,...segments]=selectedFile.path.split("/");let path="";for(const iterator of segments){if(selectedFile.appFileID===iterator){break}root=(_a=root.children)===null||_a===void 0?void 0:_a.find((x=>x.appFileID===iterator));if(!root){return path}path+=root.name+"/"}return path}};__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/common/pages/files/service/CloudFileService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","../../controls/tree/TreeView","../../../model/model","@web-atoms/core/dist/core/InjectProperty","../../controls/buttons/IconButton","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/basic/AtomRepeater","../files/service/CloudFileService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,TreeView,AppFile,InjectProperty,SaveIconTextButton,Bind,styled,AtomRepeater,CloudFileService,ChooserFolderPage,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_controlsTreeTreeView){TreeView=_controlsTreeTreeView.default},function(_modelModel){AppFile=_modelModel.AppFile},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_filesServiceCloudFileService){CloudFileService=_filesServiceCloudFileService.default}],execute:function(){css=styled.css`
|
|
1259
1259
|
display: grid;
|
|
1260
1260
|
grid-template-columns: auto auto;
|
|
1261
1261
|
|
|
@@ -1265,7 +1265,7 @@ html, body {
|
|
|
1265
1265
|
& > .files {
|
|
1266
1266
|
grid-column: 2;
|
|
1267
1267
|
}
|
|
1268
|
-
`.installLocal();_export("default",ChooserFolderPage=class ChooserFolderPage extends PopupWindowPage{constructor(){super(...arguments);this.selected=null;this.selectedFile=null;this.search=""}init(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){(_a=this.parameters)!==null&&_a!==void 0?_a:this.parameters={};(_b=(_c=this.parameters).chooseFile)!==null&&_b!==void 0?_b:_c.chooseFile=false;this.title="Choose the folder";this.root=AppFile.create({name:"Drives"});const drives=yield this.cloudFileService.drives({start:0,size:-1,cancelToken:null,contentType:this.parameters.contentType});this.root.children=drives.items;this.renderer=XNode.create("div",{class:css},XNode.create(TreeView,{class:"folders",childrenProperty:item=>{var _a;return(_a=item.children)!==null&&_a!==void 0?_a:item.children=[]},root:this.root,selectedItem:Bind.twoWaysImmediate((()=>this.selected))}),this.parameters.chooseFile&&XNode.create(AtomRepeater,{class:"files","data-layout":"list","data-list-selection":"default",selectOnClick:true,selectedItem:Bind.twoWaysImmediate((()=>this.selectedFile)),items:Bind.oneWayAsync(((c,e,cancelToken)=>this.cloudFileService.files({search:this.search,folder:this.selected,cancelToken})))}));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row","style-display":Bind.oneWay((()=>!!(this.parameters.chooseFile?this.selectedFile:this.selected)))},XNode.create(SaveIconTextButton,{"event-click":()=>this.close(this.selected),text:"Choose"}))}))}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],ChooserFolderPage.prototype,"cloudFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/folders/ChooserFolderPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../../common/controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../services/AdminDomainService","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/Expander","../../../../common/controls/buttons/IconButton","../../../commands/AdminCommands","../../../../services/EntityService","@web-atoms/web-controls/dist/PageNavigator","./DomainKeySetupPage","../domain-user/DomainUserEditor","../../../../common/pages/folders/ChooserFolderPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,Domain,DomainKey,DomainUser,EmailTemplate,HostedDomain,XNode,Form,TextFormField,Bind,Action,InjectProperty,AdminDomainService,Checkbox,AtomRepeater,Expander,AddIconTextButton,DeleteIconButton,SetupFolderIconButton,AdminCommands,EntityService,PageNavigator,DomainKeySetupPage,DomainUserEditor,ChooserFolderPage,EditDomainPage,summary;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){Domain=_modelModel.Domain;DomainKey=_modelModel.DomainKey;DomainUser=_modelModel.DomainUser;EmailTemplate=_modelModel.EmailTemplate;HostedDomain=_modelModel.HostedDomain},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonControlsFormRequiredFormField){TextFormField=_commonControlsFormRequiredFormField.TextFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicExpander){Expander=_webAtomsWebControlsDistBasicExpander.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton;DeleteIconButton=_commonControlsButtonsIconButton.DeleteIconButton;SetupFolderIconButton=_commonControlsButtonsIconButton.SetupFolderIconButton},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_DomainKeySetupPage){DomainKeySetupPage=_DomainKeySetupPage.default},function(_domainUserDomainUserEditor){DomainUserEditor=_domainUserDomainUserEditor.default},function(_commonPagesFoldersChooserFolderPage){ChooserFolderPage=_commonPagesFoldersChooserFolderPage.default}],execute:function(){summary=text=>{if(!text){return text}if(text.length>50){return text.substring(0,20)+"..."+text.substring(text.length-20)}return text};_export("default",EditDomainPage=class EditDomainPage extends ContentPage{init(){var _a,_b,_c,_d;var _e,_f,_g;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:this.parameters.domainID?yield this.domainService.get(this.parameters.domainID):HostedDomain.create({enableReceive:true,enableSend:true,useRelay:true,domain:Domain.create({name:""})});(_b=(_e=this.model).domainKeys)!==null&&_b!==void 0?_b:_e.domainKeys=[];(_c=(_f=this.model).relays)!==null&&_c!==void 0?_c:_f.relays=[];(_d=(_g=this.model).templates)!==null&&_d!==void 0?_d:_g.templates=[];this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,this.model.domainID?XNode.create("span",{text:this.model.domain.name}):XNode.create(TextFormField,{required:true,label:"Domain",value:()=>this.model.domain.name}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableReceive)),text:"Receive Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableSend)),text:"Send Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.useRelay)),text:"Use Domain Relay"}),this.model.domainID&&XNode.create(Expander,{isExpanded:false},XNode.create("label",{text:"Relays"}),XNode.create(AtomRepeater,{items:this.model.relays,footer:true,footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":AdminCommands.editRelay.eventName,text:"New Relay"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Domain Keys"}),XNode.create(AtomRepeater,{items:this.model.domainKeys,footer:true,for:"table",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.name}),XNode.create("td",null,XNode.create("span",{text:summary(item.publicKey)})),XNode.create("td",null,XNode.create(SetupFolderIconButton,{"event-click":()=>PageNavigator.pushPage(DomainKeySetupPage,item)})),XNode.create("td",null,XNode.create(DeleteIconButton,{"data-click-event":"delete-domain-key"}))),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-key",text:"New Domain Key"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Users"}),XNode.create(AtomRepeater,{items:this.model.domainUsers,footer:true,itemRenderer:du=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:`${du.user.displayName} (${du.userID}, ${du.user.userName})`}),du.isAdmin&&XNode.create("span",{text:"is admin"}),du.allowCreateMailbox&&XNode.create("span",{text:"can create mailbox"})),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-user",text:"Add User"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Templates"}),XNode.create(AtomRepeater,{items:this.model.templates,footer:true,itemRenderer:du=>XNode.create("div",{"data-layout":"row"},XNode.create("i",{class:"fas fa-folder"}),XNode.create("span",{text:`${du.folder.name}`})),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-template",text:"Add Template"}))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-layout":"accent-button","data-submit-event":"save-domain",text:"Save"}))))}))}saveDomain(){return __awaiter(this,void 0,void 0,(function*(){yield this.domainService.save(this.model);return this.model}))}deleteDomainKey(dk){return __awaiter(this,void 0,void 0,(function*(){dk.$deleted=true;yield this.domainService.save(this.model);this.model.domainKeys.remove(dk)}))}addDomainKey(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);const dk=DomainKey.create({domainID:this.model.domainID});yield entityService.save(dk);this.model.domainKeys.add(dk)}))}addDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const domainUser=yield PageNavigator.pushPageForResult(DomainUserEditor,DomainUser.create({domainID:this.model.domainID}));this.model.domainUsers.add(domainUser)}))}addDomainTemplate(){return __awaiter(this,void 0,void 0,(function*(){const folder=yield PageNavigator.pushPageForResult(ChooserFolderPage);this.model.templates.add(EmailTemplate.create({folderID:folder.appFileID,folder}));yield this.domainService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],EditDomainPage.prototype,"domainService",void 0);__decorate([Action({onEvent:"save-domain",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"saveDomain",null);__decorate([Action({onEvent:"delete-domain-key",confirm:"Are you sure you want to delete this?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"deleteDomainKey",null);__decorate([Action({onEvent:"add-domain-key"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainKey",null);__decorate([Action({onEvent:"add-domain-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainUser",null);__decorate([Action({onEvent:"add-domain-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainTemplate",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","./services/AdminDomainService","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","./edit/EditDomainPage","../../commands/AdminCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,AtomRepeater,InjectProperty,AdminDomainService,Action,PageNavigator,EditDomainPage,AdminCommands,DomainListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_editEditDomainPage){EditDomainPage=_editEditDomainPage.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default}],execute:function(){_export("default",DomainListPage=class DomainListPage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Domains";this.domains=yield this.adminDomainService.list();this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-domain",class:"fas fa-plus"});this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,{items:this.domains,itemRenderer:domain=>XNode.create("div",null,XNode.create("a",{"data-click-event":"route",href:AdminCommands.openDomain.displayRoute(domain)},domain.domain.name))}))}))}addDomain(){return __awaiter(this,void 0,void 0,(function*(){const domain=yield PageNavigator.pushPageForResult(EditDomainPage,{});this.domains.add(domain)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],DomainListPage.prototype,"adminDomainService",void 0);__decorate([Action({onEvent:"add-domain"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainListPage.prototype,"addDomain",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/types","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,Bind,CancelToken,XNode,styled,AtomControl,InfiniteRepeater,_a,loadMoreSet,pagedItemsSetter,scrollToBottom;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){loadMoreSet=Symbol("loadMoreSet");styled.css`
|
|
1268
|
+
`.installLocal();_export("default",ChooserFolderPage=class ChooserFolderPage extends PopupWindowPage{constructor(){super(...arguments);this.selected=null;this.selectedFile=null;this.search=""}init(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){(_a=this.parameters)!==null&&_a!==void 0?_a:this.parameters={};(_b=(_c=this.parameters).chooseFile)!==null&&_b!==void 0?_b:_c.chooseFile=false;this.title="Choose the folder";this.root=AppFile.create({name:"Drives/Web Sites"});const drives=yield this.cloudFileService.drives({start:0,size:-1,cancelToken:null,contentType:this.parameters.contentType,orderBy:q=>q.orderBy((i=>i.name))});this.root.children=drives.items;this.renderer=XNode.create("div",{class:css},XNode.create(TreeView,{class:"folders",childrenProperty:item=>{var _a;return(_a=item.children)!==null&&_a!==void 0?_a:item.children=[]},root:this.root,selectedItem:Bind.twoWaysImmediate((()=>this.selected))}),this.parameters.chooseFile&&XNode.create(AtomRepeater,{class:"files","data-layout":"list","data-list-selection":"default",selectOnClick:true,selectedItem:Bind.twoWaysImmediate((()=>this.selectedFile)),items:Bind.oneWayAsync(((c,e,cancelToken)=>this.cloudFileService.files({search:this.search,folder:this.selected,cancelToken})))}));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row","style-display":Bind.oneWay((()=>!!(this.parameters.chooseFile?this.selectedFile:this.selected)))},XNode.create(SaveIconTextButton,{"event-click":()=>this.close(this.selected),text:"Choose"}))}))}});__decorate([InjectProperty,__metadata("design:type",CloudFileService)],ChooserFolderPage.prototype,"cloudFileService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/folders/ChooserFolderPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../../common/controls/form/RequiredFormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../services/AdminDomainService","@web-atoms/web-controls/dist/basic/Checkbox","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/Expander","../../../../common/controls/buttons/IconButton","../../../commands/AdminCommands","../../../../services/EntityService","@web-atoms/web-controls/dist/PageNavigator","./DomainKeySetupPage","../domain-user/DomainUserEditor","../../../../common/pages/folders/ChooserFolderPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,Domain,DomainKey,DomainUser,EmailTemplate,HostedDomain,XNode,Form,TextFormField,Bind,Action,InjectProperty,AdminDomainService,Checkbox,AtomRepeater,Expander,AddIconTextButton,DeleteIconButton,SetupFolderIconButton,AdminCommands,EntityService,PageNavigator,DomainKeySetupPage,DomainUserEditor,ChooserFolderPage,EditDomainPage,summary;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){Domain=_modelModel.Domain;DomainKey=_modelModel.DomainKey;DomainUser=_modelModel.DomainUser;EmailTemplate=_modelModel.EmailTemplate;HostedDomain=_modelModel.HostedDomain},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonControlsFormRequiredFormField){TextFormField=_commonControlsFormRequiredFormField.TextFormField},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicExpander){Expander=_webAtomsWebControlsDistBasicExpander.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton;DeleteIconButton=_commonControlsButtonsIconButton.DeleteIconButton;SetupFolderIconButton=_commonControlsButtonsIconButton.SetupFolderIconButton},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_DomainKeySetupPage){DomainKeySetupPage=_DomainKeySetupPage.default},function(_domainUserDomainUserEditor){DomainUserEditor=_domainUserDomainUserEditor.default},function(_commonPagesFoldersChooserFolderPage){ChooserFolderPage=_commonPagesFoldersChooserFolderPage.default}],execute:function(){summary=text=>{if(!text){return text}if(text.length>50){return text.substring(0,20)+"..."+text.substring(text.length-20)}return text};_export("default",EditDomainPage=class EditDomainPage extends ContentPage{init(){var _a,_b,_c,_d;var _e,_f,_g;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:this.parameters.domainID?yield this.domainService.get(this.parameters.domainID):HostedDomain.create({enableReceive:true,enableSend:true,useRelay:true,domain:Domain.create({name:""})});(_b=(_e=this.model).domainKeys)!==null&&_b!==void 0?_b:_e.domainKeys=[];(_c=(_f=this.model).relays)!==null&&_c!==void 0?_c:_f.relays=[];(_d=(_g=this.model).templates)!==null&&_d!==void 0?_d:_g.templates=[];this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,this.model.domainID?XNode.create("span",{text:this.model.domain.name}):XNode.create(TextFormField,{required:true,label:"Domain",value:()=>this.model.domain.name}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableReceive)),text:"Receive Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.enableSend)),text:"Send Mails"}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.useRelay)),text:"Use Domain Relay"}),this.model.domainID&&XNode.create(Expander,{isExpanded:false},XNode.create("label",{text:"Relays"}),XNode.create(AtomRepeater,{items:this.model.relays,footer:true,footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":AdminCommands.editRelay.eventName,text:"New Relay"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Domain Keys"}),XNode.create(AtomRepeater,{items:this.model.domainKeys,footer:true,for:"table",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.name}),XNode.create("td",null,XNode.create("span",{text:summary(item.publicKey)})),XNode.create("td",null,XNode.create(SetupFolderIconButton,{"event-click":()=>PageNavigator.pushPage(DomainKeySetupPage,item)})),XNode.create("td",null,XNode.create(DeleteIconButton,{"data-click-event":"delete-domain-key"}))),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-key",text:"New Domain Key"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Users"}),XNode.create(AtomRepeater,{items:this.model.domainUsers,footer:true,itemRenderer:du=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:`${du.user.displayName} (${du.userID}, ${du.user.userName})`}),du.isAdmin&&XNode.create("span",{text:"is admin"}),du.allowCreateMailbox&&XNode.create("span",{text:"can create mailbox"})),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-user",text:"Add User"}))})),this.model.domainID&&XNode.create(Expander,{isExpanded:true},XNode.create("label",{text:"Templates"}),XNode.create(AtomRepeater,{items:this.model.templates,footer:true,itemRenderer:du=>XNode.create("div",{"data-layout":"row"},XNode.create("i",{class:"fas fa-folder"}),XNode.create("span",{text:`${du.folder.name}`})),footerRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(AddIconTextButton,{"data-click-event":"add-domain-template",text:"Add Template"}))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-layout":"accent-button","data-submit-event":"save-domain",text:"Save"}))))}))}saveDomain(){return __awaiter(this,void 0,void 0,(function*(){yield this.domainService.save(this.model);return this.model}))}deleteDomainKey(dk){return __awaiter(this,void 0,void 0,(function*(){dk.$deleted=true;yield this.domainService.save(this.model);this.model.domainKeys.remove(dk)}))}addDomainKey(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);const dk=DomainKey.create({domainID:this.model.domainID});yield entityService.save(dk);this.model.domainKeys.add(dk)}))}addDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const domainUser=yield PageNavigator.pushPageForResult(DomainUserEditor,DomainUser.create({domainID:this.model.domainID}));this.model.domainUsers.add(domainUser)}))}addDomainTemplate(){return __awaiter(this,void 0,void 0,(function*(){const folder=yield PageNavigator.pushPageForResult(ChooserFolderPage);this.model.templates.add(EmailTemplate.create({folderID:folder.appFileID,folder}));yield this.domainService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],EditDomainPage.prototype,"domainService",void 0);__decorate([Action({onEvent:"save-domain",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"saveDomain",null);__decorate([Action({onEvent:"delete-domain-key",confirm:"Are you sure you want to delete this?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"deleteDomainKey",null);__decorate([Action({onEvent:"add-domain-key"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainKey",null);__decorate([Action({onEvent:"add-domain-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainUser",null);__decorate([Action({onEvent:"add-domain-template"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainPage.prototype,"addDomainTemplate",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/edit/EditDomainPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","./services/AdminDomainService","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","./edit/EditDomainPage","../../commands/AdminCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,AtomRepeater,InjectProperty,AdminDomainService,Action,PageNavigator,EditDomainPage,AdminCommands,DomainListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesAdminDomainService){AdminDomainService=_servicesAdminDomainService.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_editEditDomainPage){EditDomainPage=_editEditDomainPage.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default}],execute:function(){_export("default",DomainListPage=class DomainListPage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Domains";this.domains=yield this.adminDomainService.list();this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-domain",class:"fas fa-plus"});this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,{items:this.domains,itemRenderer:domain=>XNode.create("div",null,XNode.create("a",{"data-click-event":"route",href:AdminCommands.openDomain.displayRoute(domain)},domain.domain.name))}))}))}addDomain(){return __awaiter(this,void 0,void 0,(function*(){const domain=yield PageNavigator.pushPageForResult(EditDomainPage,{});this.domains.add(domain)}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],DomainListPage.prototype,"adminDomainService",void 0);__decorate([Action({onEvent:"add-domain"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainListPage.prototype,"addDomain",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/DomainListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/types","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,Bind,CancelToken,XNode,styled,AtomControl,InfiniteRepeater,_a,loadMoreSet,pagedItemsSetter,scrollToBottom;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){loadMoreSet=Symbol("loadMoreSet");styled.css`
|
|
1269
1269
|
|
|
1270
1270
|
margin: 10px;
|
|
1271
1271
|
padding: 10px;
|
|
@@ -1342,17 +1342,17 @@ html, body {
|
|
|
1342
1342
|
padding: 10px;
|
|
1343
1343
|
border: solid 1px lightgray;
|
|
1344
1344
|
border-radius: 10px;
|
|
1345
|
-
`.installGlobal("div[data-collection-editor]");hasKeys=(model,schema)=>{for(const iterator of schema.schema.keys){if(!model[iterator.name]){return false}}return true}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/collection-editor/CollectionEditor");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/Bind","../../domains/services/AdminDomainService","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/Checkbox","../../../../common/controls/buttons/IconButton","../../../../services/EntityService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,Action,PopupWindowPage,DomainUser,Bind,AdminDomainService,Form,FormField,DropDown,Checkbox,SaveIconTextButton,EntityService,EditDomainUserPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){DomainUser=_modelModel.DomainUser},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_domainsServicesAdminDomainService){AdminDomainService=_domainsServicesAdminDomainService.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_servicesEntityService){EntityService=_servicesEntityService.default}],execute:function(){_export("default",EditDomainUserPage=class EditDomainUserPage extends PopupWindowPage{constructor(){super(...arguments);this.model=null}init(){var _a,_b,_c,_d,_e;var _f,_g,_h;return __awaiter(this,void 0,void 0,(function*(){this.title="Choose Domain Configuration";const domains=yield this.adminDomainService.list();this.model=(_a=this.parameters)!==null&&_a!==void 0?_a:DomainUser.create({});(_b=(_f=this.model).hostedDomain)!==null&&_b!==void 0?_b:_f.hostedDomain=domains[0];(_c=(_g=this.model).domainID)!==null&&_c!==void 0?_c:_g.domainID=(_d=this.model.hostedDomain)===null||_d===void 0?void 0:_d.domainID;(_e=(_h=this.model).allowCreateMailbox)!==null&&_e!==void 0?_e:_h.allowCreateMailbox=false;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Domain"},XNode.create(DropDown,{items:domains,itemRenderer:item=>XNode.create("div",{text:item.domain.name}),valuePath:item=>item.domainID,value:Bind.twoWaysImmediate((()=>this.model.domainID))})),XNode.create(FormField,{label:"Is Admin"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isAdmin)),text:" can create and view all mailboxes"})),XNode.create(FormField,{label:"Create Mailbox","style-display":Bind.oneWay((()=>!this.model.isAdmin))},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.allowCreateMailbox)),text:" can create mailboxe for self use"})),XNode.create(FormField,{label:"Prefix","style-display":Bind.oneWay((()=>this.model.allowCreateMailbox))},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.prefix))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.save(),text:"Save"}))))}))}save(){return __awaiter(this,void 0,void 0,(function*(){if(this.model.domainID&&this.model.userID){const es=this.resolve(EntityService);yield es.save(es.cloner(this.model).copy)}return this.model}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],EditDomainUserPage.prototype,"adminDomainService",void 0);__decorate([Action({close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainUserPage.prototype,"save",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/domains/EditDomainUserPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../Sql","../../../SocialMailApp"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,HostedDomain,Mailbox,MailboxContact,UserPushSubscription,Sql,SocialMailApp,MailboxService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){HostedDomain=_modelModel.HostedDomain;Mailbox=_modelModel.Mailbox;MailboxContact=_modelModel.MailboxContact;UserPushSubscription=_modelModel.UserPushSubscription},function(_Sql){Sql=_Sql.Sql},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default}],execute:function(){MailboxService=class MailboxService{domains(onlyHosted=false){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(HostedDomain);const hosted=yield q.include((x=>x.domain)).toArray();return hosted.map((x=>x.domain))}))}top({isChannel=false}={}){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(Mailbox);const{userID}=SocialMailApp.user;const top=yield q.include((x=>x.emailAddress)).where({isChannel},(p=>x=>x.isChannel===p.isChannel)).orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.dateUpdated)).toPagedList({size:3,count:false});yield this.updateNotify(top.items);return top.items}))}updateNotify(items){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){if(!(items===null||items===void 0?void 0:items.length)){return}const{userID}=SocialMailApp.user;const ids=items.map((x=>x.mailboxID));const all=yield this.entityService.query(UserPushSubscription).where({ids,userID},(p=>x=>x.userID===p.userID&&x.mailboxID in p.ids&&x.emailAddressID===null)).toArray();const map=new Map(all.map((x=>[x.mailboxID,x])));for(const iterator of items){iterator.notify=(_b=(_a=map.get(iterator.mailboxID))===null||_a===void 0?void 0:_a.notify)!==null&&_b!==void 0?_b:false}}))}list({search="",start=0,size=50,domainID=0,version=0,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox);if(domainID){q=q.where({domainID},(p=>x=>x.domainID===p.domainID))}if(search){if(search.endsWith("@")){search=`${search}%`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else if(search.startsWith("@")){search=`%${search}`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else{if(!search.includes("%")){search=`%${search}%`}q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)||Sql.text.like(x.emailAddress.name,p.search)))}}const all=yield q.include((x=>x.emailAddress)).toPagedList({start,size,cancelToken});yield this.updateNotify(all.items);return all}))}toggleNotify(m){return __awaiter(this,void 0,void 0,(function*(){const{mailboxID}=m;let n=yield this.entityService.query(UserPushSubscription).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===null)).firstOrDefault();if(!n){const{userID}=SocialMailApp.user;n=UserPushSubscription.create({userID,mailboxID})}n.notify=!m.notify;yield this.entityService.save(n);m.notify=n.notify}))}get(id){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(Mailbox).where({id},(p=>x=>x.mailboxID===p.id)).include((x=>[x.userMailboxes,x.syncTargets,x.emailAddress,x.domain])).firstOrDefault()}))}save(model){return __awaiter(this,void 0,void 0,(function*(){if(model.name){model.name=model.name.trim()}if(model.username){model.username=model.username.trim()}const cloner=this.entityService.cloner(model).include((x=>x.userMailboxes));yield this.entityService.save(cloner.copy);return model}))}saveContact(mc,retry=3){return __awaiter(this,void 0,void 0,(function*(){const{emailAddressText,mailboxID}=mc;const emailAddress=emailAddressText.trim().toLocaleLowerCase();const q=this.entityService.query(MailboxContact).where({mailboxID,emailAddress},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddress.emailAddress===p.emailAddress)).include((x=>x.emailAddress));const result=yield q.firstOrDefault();if(result){return result}try{yield this.entityService.save(mc);return yield q.firstOrDefault()}catch(error){if(retry--){return yield this.saveContact(mc,retry)}throw error}}))}saveSyncTarget(syncTarget){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(syncTarget).copy;yield this.entityService.save(cloner)}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailboxService.prototype,"entityService",void 0);MailboxService=__decorate([DITransient()],MailboxService);_export("default",MailboxService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/FormField","../../../../common/pages/mailboxes/services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/view-model/Action","../../../../common/controls/repeater/InfiniteRepeater"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserMailbox,XNode,Form,Bind,FormField,MailboxService,InjectProperty,AtomRepeater,Action,InfiniteRepeater,EditUserMailboxPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){UserMailbox=_modelModel.UserMailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonPagesMailboxesServicesMailboxService){MailboxService=_commonPagesMailboxesServicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default}],execute:function(){_export("default",EditUserMailboxPage=class EditUserMailboxPage extends PopupWindowPage{constructor(){super(...arguments);this.search="";this.selectedMailbox=null}init(){var _a;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters)!==null&&_a!==void 0?_a:UserMailbox.create({});this.title="Select 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(Form,null,XNode.create(FormField,{label:"Choose Mailbox"},XNode.create(AtomRepeater,Object.assign({"data-list-selection":"default","data-layout":"list",selectOnClick:true,"data-click-event":"select-mailbox"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailboxService.list({search:this.search,cancelToken,start,size:10}))),{itemRenderer:item=>XNode.create("div",{text:item.emailAddress.emailAddress})})))))}))}selectMailbox(mailbox){return __awaiter(this,void 0,void 0,(function*(){return{mailbox,mailboxID:mailbox.mailboxID}}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],EditUserMailboxPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"select-mailbox",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],EditUserMailboxPage.prototype,"selectMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/mailboxes/EditUserMailboxPage");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater"],(function(_export,_context){"use strict";var __decorate,__metadata,BindableProperty,XNode,AtomRepeater,ComboBox;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default}],execute:function(){_export("default",ComboBox=class ComboBox extends AtomRepeater{constructor(app,e=document.createElement("select")){super(app,e);this.isChanging=false;this.selectedItems=[]}updateItems(container){var _a,_b;if(this.isChanging){return}super.updateItems(container);const selectedItems=this.selectedItems;if(!selectedItems){return}if(selectedItems.length===0){return}this.isChanging=true;const value=this.value;const valuePath=(_a=this.valuePath)!==null&&_a!==void 0?_a:item=>item;this.element.selectedIndex=(_b=this.items)===null||_b===void 0?void 0:_b.findIndex((v=>valuePath(v)==value));this.isChanging=false}updateClasses(){if(this.isChanging){return}super.updateClasses();this.updateItems()}preCreate(){super.preCreate();this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item.toString()};this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item.toString()};this.itemRenderer=item=>XNode.create("option",null,this.labelPath(item));this.bindEvent(this.element,"change",(()=>this.changeSelection()))}changeSelection(){if(this.isChanging){return}this.isChanging=true;const index=this.element.selectedIndex;if(index!==-1){const si=this.selectedItems;if(si){si.set(0,this.items[index])}}this.isChanging=false}});__decorate([BindableProperty,__metadata("design:type",Object)],ComboBox.prototype,"labelPath",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ComboBox");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/PageNavigator","../../../../common/pages/folders/ChooserFolderPage","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/NumberFormats","@web-atoms/web-controls/dist/basic/ComboBox","@web-atoms/core/dist/core/Bind","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,AppFileAccess,AppFileAccessTypeArray,XNode,PageNavigator,ChooserFolderPage,Form,FormField,toFileSize,ComboBox,Bind,SaveIconTextButton,Action,EditFileAccessPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){AppFileAccess=_modelModel.AppFileAccess;AppFileAccessTypeArray=_modelModel.AppFileAccessTypeArray},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_commonPagesFoldersChooserFolderPage){ChooserFolderPage=_commonPagesFoldersChooserFolderPage.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",EditFileAccessPage=class EditFileAccessPage extends PopupWindowPage{init(){var _a,_b,_c;var _d,_e;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters)!==null&&_a!==void 0?_a:AppFileAccess.create({});const file=yield PageNavigator.pushPageForResultOrCancel(ChooserFolderPage,{});(_d=this.model).type||(_d.type="read");(_b=(_e=this.model).file)!==null&&_b!==void 0?_b:_e.file=file;this.model.fileID=file.appFileID;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Folder"},XNode.create("div",null,file.name)),file.creator&&XNode.create(FormField,{label:"Owner"},XNode.create("div",null,(_c=file.creator)===null||_c===void 0?void 0:_c.displayName)),XNode.create(FormField,{label:"Size"},XNode.create("div",null,toFileSize(file.fileSize))),XNode.create(FormField,{label:"Access Type"},XNode.create(ComboBox,{value:Bind.twoWaysImmediate((()=>this.model.type)),items:AppFileAccessTypeArray})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-access"}))))}))}saveAccess(){return __awaiter(this,void 0,void 0,(function*(){return this.model}))}});__decorate([Action({onEvent:"save-access",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditFileAccessPage.prototype,"saveAccess",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/files/EditFileAccessPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/types"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,DropDown,FetchBuilder,UMD,countriesPromise,loadCountries,CountrySelect,CurrencySelect,isdForCountry,formatForCountry;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD}],execute:function(){loadCountries=()=>countriesPromise!==null&&countriesPromise!==void 0?countriesPromise:countriesPromise=FetchBuilder.get(UMD.resolvePath("@social-mail/social-mail-client/content/json/countries.json")).responseAsJson();_export("CountrySelect",CountrySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>{var _a;return((_a=item.isdCode)===null||_a===void 0?void 0:_a.startsWith("+"))?item.isdCode:`+${item.isdCode} ${item.value}`},valuePath:item=>item.value,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("CurrencySelect",CurrencySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>item.currency+"("+item.label+")",valuePath:item=>item.currency,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("isdForCountry",isdForCountry=(countryCode,prefix="")=>__awaiter(void 0,void 0,void 0,(function*(){const{isdCode}=(yield loadCountries()).find((x=>x.value===countryCode));if(prefix){return isdCode.startsWith(prefix)?isdCode:prefix+isdCode}return isdCode})));_export("formatForCountry",formatForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){const countries=yield loadCountries();const country=countries.find((c=>c.value===countryCode));if(country){const{phoneFormat}=country;if(phoneFormat&&phoneFormat!=="0.0"){return phoneFormat}}return"####.####.####"})))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/countries/CountrySelect");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/countries/CountrySelect","@web-atoms/core/dist/core/Bind","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../../../../services/EntityService","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserAuthFactor,XNode,Form,FormField,CountrySelect,isdForCountry,Bind,SaveIconTextButton,Action,InjectProperty,EntityService,DateTime,UpdatePhoneNumberPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsCountriesCountrySelect){CountrySelect=_commonControlsCountriesCountrySelect.CountrySelect;isdForCountry=_commonControlsCountriesCountrySelect.isdForCountry},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){_export("default",UpdatePhoneNumberPage=class UpdatePhoneNumberPage extends PopupWindowPage{constructor(){super(...arguments);this.model=UserAuthFactor.create({isdCode:"",phoneNumber:""});this.countryCode="IN"}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Add New Phone Number";this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"ISD Code"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.countryCode))})),XNode.create(FormField,{label:"Phone Number"},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.model.phoneNumber))})),XNode.create(FormField,{label:""},XNode.create(SaveIconTextButton,{"data-submit-event":"save-phone",text:"Save"}))))}))}savePhone(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){let isdCode=yield isdForCountry(this.countryCode);if(!isdCode.startsWith("+")){isdCode="+"+isdCode}const phoneNumber=isdCode+this.model.phoneNumber;const{userID}=this.parameters;let ua=yield this.entityService.query(UserAuthFactor).where({phoneNumber,userID},(p=>x=>x.userID===p.userID&&x.phoneNumber===p.phoneNumber&&x.method==="otp-in")).firstOrDefault();if(!ua){ua=UserAuthFactor.create({userID,phoneNumber,isdCode,method:"otp-in",verified:true})}ua.verified=true;ua.dateUpdated=DateTime.now;yield this.entityService.save(ua,(c=>c));((_a=(_b=this.parameters).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[]).add(ua);return ua}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],UpdatePhoneNumberPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-phone",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UpdatePhoneNumberPage.prototype,"savePhone",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/phone-numbers/UpdatePhoneNumberPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/ExpressionParser","../buttons/IconButton","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/core/dist/core/Bind","../../../services/EntityService","@web-atoms/core/dist/style/styled","../../../model/model","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,AtomRepeater,ExpressionParser,AddIconTextButton,DeleteIconButton,PageNavigator,Bind,EntityService,styled,modelEntitySchemas,AtomControl,Action,CollectionEditorEx,hasKeys;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreExpressionParser){ExpressionParser=_webAtomsCoreDistCoreExpressionParser.default},function(_buttonsIconButton){AddIconTextButton=_buttonsIconButton.AddIconTextButton;DeleteIconButton=_buttonsIconButton.DeleteIconButton},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_modelModel){modelEntitySchemas=_modelModel.modelEntitySchemas},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){styled.css`
|
|
1345
|
+
`.installGlobal("div[data-collection-editor]");hasKeys=(model,schema)=>{for(const iterator of schema.schema.keys){if(!model[iterator.name]){return false}}return true}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/collection-editor/CollectionEditor");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/Bind","../../domains/services/AdminDomainService","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/web-controls/dist/basic/Checkbox","../../../../common/controls/buttons/IconButton","../../../../services/EntityService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,Action,PopupWindowPage,DomainUser,Bind,AdminDomainService,Form,FormField,DropDown,Checkbox,SaveIconTextButton,EntityService,EditDomainUserPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){DomainUser=_modelModel.DomainUser},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_domainsServicesAdminDomainService){AdminDomainService=_domainsServicesAdminDomainService.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_servicesEntityService){EntityService=_servicesEntityService.default}],execute:function(){_export("default",EditDomainUserPage=class EditDomainUserPage extends PopupWindowPage{constructor(){super(...arguments);this.model=null}init(){var _a,_b,_c,_d,_e;var _f,_g,_h;return __awaiter(this,void 0,void 0,(function*(){this.title="Choose Domain Configuration";const domains=yield this.adminDomainService.list();this.model=(_a=this.parameters)!==null&&_a!==void 0?_a:DomainUser.create({});(_b=(_f=this.model).hostedDomain)!==null&&_b!==void 0?_b:_f.hostedDomain=domains[0];(_c=(_g=this.model).domainID)!==null&&_c!==void 0?_c:_g.domainID=(_d=this.model.hostedDomain)===null||_d===void 0?void 0:_d.domainID;(_e=(_h=this.model).allowCreateMailbox)!==null&&_e!==void 0?_e:_h.allowCreateMailbox=false;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Domain"},XNode.create(DropDown,{items:domains,itemRenderer:item=>XNode.create("div",{text:item.domain.name}),valuePath:item=>item.domainID,value:Bind.twoWaysImmediate((()=>this.model.domainID))})),XNode.create(FormField,{label:"Is Admin"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isAdmin)),text:" can create and view all mailboxes"})),XNode.create(FormField,{label:"Create Mailbox","style-display":Bind.oneWay((()=>!this.model.isAdmin))},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.allowCreateMailbox)),text:" can create mailboxe for self use"})),XNode.create(FormField,{label:"Prefix","style-display":Bind.oneWay((()=>this.model.allowCreateMailbox))},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.prefix))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.save(),text:"Save"}))))}))}save(){return __awaiter(this,void 0,void 0,(function*(){if(this.model.domainID&&this.model.userID){const es=this.resolve(EntityService);yield es.save(es.cloner(this.model).copy)}return this.model}))}});__decorate([InjectProperty,__metadata("design:type",AdminDomainService)],EditDomainUserPage.prototype,"adminDomainService",void 0);__decorate([Action({close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditDomainUserPage.prototype,"save",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/domains/EditDomainUserPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../Sql","../../../SocialMailApp"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,HostedDomain,Mailbox,MailboxContact,UserPushSubscription,Sql,SocialMailApp,MailboxService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){HostedDomain=_modelModel.HostedDomain;Mailbox=_modelModel.Mailbox;MailboxContact=_modelModel.MailboxContact;UserPushSubscription=_modelModel.UserPushSubscription},function(_Sql){Sql=_Sql.Sql},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default}],execute:function(){MailboxService=class MailboxService{domains(onlyHosted=false){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(HostedDomain);const hosted=yield q.include((x=>x.domain)).toArray();return hosted.map((x=>x.domain))}))}top({isChannel=false}={}){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(Mailbox);const{userID}=SocialMailApp.user;const top=yield q.include((x=>x.emailAddress)).where({isChannel},(p=>x=>x.isChannel===p.isChannel)).orderByDescending({userID},(p=>x=>x.userPins.some((s=>p.userID===s.userID)))).thenByDescending((x=>x.dateUpdated)).toPagedList({size:3,count:false});yield this.updateNotify(top.items);return top.items}))}updateNotify(items){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){if(!(items===null||items===void 0?void 0:items.length)){return}const{userID}=SocialMailApp.user;const ids=items.map((x=>x.mailboxID));const all=yield this.entityService.query(UserPushSubscription).where({ids,userID},(p=>x=>x.userID===p.userID&&x.mailboxID in p.ids&&x.emailAddressID===null)).toArray();const map=new Map(all.map((x=>[x.mailboxID,x])));for(const iterator of items){iterator.notify=(_b=(_a=map.get(iterator.mailboxID))===null||_a===void 0?void 0:_a.notify)!==null&&_b!==void 0?_b:false}}))}list({search="",start=0,size=50,domainID=0,version=0,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox);if(domainID){q=q.where({domainID},(p=>x=>x.domainID===p.domainID))}if(search){if(search.endsWith("@")){search=`${search}%`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else if(search.startsWith("@")){search=`%${search}`;q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)))}else{if(!search.includes("%")){search=`%${search}%`}q=q.where({search},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)||Sql.text.like(x.emailAddress.name,p.search)))}}const all=yield q.include((x=>x.emailAddress)).toPagedList({start,size,cancelToken});yield this.updateNotify(all.items);return all}))}toggleNotify(m){return __awaiter(this,void 0,void 0,(function*(){const{mailboxID}=m;let n=yield this.entityService.query(UserPushSubscription).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===null)).firstOrDefault();if(!n){const{userID}=SocialMailApp.user;n=UserPushSubscription.create({userID,mailboxID})}n.notify=!m.notify;yield this.entityService.save(n);m.notify=n.notify}))}get(id){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(Mailbox).where({id},(p=>x=>x.mailboxID===p.id)).include((x=>[x.userMailboxes,x.syncTargets,x.emailAddress,x.domain])).firstOrDefault()}))}save(model){return __awaiter(this,void 0,void 0,(function*(){if(model.name){model.name=model.name.trim()}if(model.username){model.username=model.username.trim()}const cloner=this.entityService.cloner(model).include((x=>x.userMailboxes));yield this.entityService.save(cloner.copy);return model}))}saveContact(mc,retry=3){return __awaiter(this,void 0,void 0,(function*(){const{emailAddressText,mailboxID}=mc;const emailAddress=emailAddressText.trim().toLocaleLowerCase();const q=this.entityService.query(MailboxContact).where({mailboxID,emailAddress},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddress.emailAddress===p.emailAddress)).include((x=>x.emailAddress));const result=yield q.firstOrDefault();if(result){return result}try{yield this.entityService.save(mc);return yield q.firstOrDefault()}catch(error){if(retry--){return yield this.saveContact(mc,retry)}throw error}}))}saveSyncTarget(syncTarget){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(syncTarget).copy;yield this.entityService.save(cloner)}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailboxService.prototype,"entityService",void 0);MailboxService=__decorate([DITransient()],MailboxService);_export("default",MailboxService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/services/MailboxService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/FormField","../../../../common/pages/mailboxes/services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/view-model/Action","../../../../common/controls/repeater/InfiniteRepeater"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserMailbox,XNode,Form,Bind,FormField,MailboxService,InjectProperty,AtomRepeater,Action,InfiniteRepeater,EditUserMailboxPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){UserMailbox=_modelModel.UserMailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonPagesMailboxesServicesMailboxService){MailboxService=_commonPagesMailboxesServicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default}],execute:function(){_export("default",EditUserMailboxPage=class EditUserMailboxPage extends PopupWindowPage{constructor(){super(...arguments);this.search="";this.selectedMailbox=null}init(){var _a;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters)!==null&&_a!==void 0?_a:UserMailbox.create({});this.title="Select 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(Form,null,XNode.create(FormField,{label:"Choose Mailbox"},XNode.create(AtomRepeater,Object.assign({"data-list-selection":"default","data-layout":"list",selectOnClick:true,"data-click-event":"select-mailbox"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailboxService.list({search:this.search,cancelToken,start,size:10}))),{itemRenderer:item=>XNode.create("div",{text:item.emailAddress.emailAddress})})))))}))}selectMailbox(mailbox){return __awaiter(this,void 0,void 0,(function*(){return{mailbox,mailboxID:mailbox.mailboxID}}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],EditUserMailboxPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"select-mailbox",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],EditUserMailboxPage.prototype,"selectMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/mailboxes/EditUserMailboxPage");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater"],(function(_export,_context){"use strict";var __decorate,__metadata,BindableProperty,XNode,AtomRepeater,ComboBox;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default}],execute:function(){_export("default",ComboBox=class ComboBox extends AtomRepeater{constructor(app,e=document.createElement("select")){super(app,e);this.isChanging=false;this.selectedItems=[]}updateItems(container){var _a,_b;if(this.isChanging){return}super.updateItems(container);const selectedItems=this.selectedItems;if(!selectedItems){return}if(selectedItems.length===0){return}this.isChanging=true;const value=this.value;const valuePath=(_a=this.valuePath)!==null&&_a!==void 0?_a:item=>item;this.element.selectedIndex=(_b=this.items)===null||_b===void 0?void 0:_b.findIndex((v=>valuePath(v)==value));this.isChanging=false}updateClasses(){if(this.isChanging){return}super.updateClasses();this.updateItems()}preCreate(){super.preCreate();this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item.toString()};this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item.toString()};this.itemRenderer=item=>XNode.create("option",null,this.labelPath(item));this.bindEvent(this.element,"change",(()=>this.changeSelection()))}changeSelection(){if(this.isChanging){return}this.isChanging=true;const index=this.element.selectedIndex;if(index!==-1){const si=this.selectedItems;if(si){si.set(0,this.items[index])}}this.isChanging=false}});__decorate([BindableProperty,__metadata("design:type",Object)],ComboBox.prototype,"labelPath",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ComboBox");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/PageNavigator","../../../../common/pages/folders/ChooserFolderPage","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/NumberFormats","@web-atoms/web-controls/dist/basic/ComboBox","@web-atoms/core/dist/core/Bind","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,AppFileAccess,AppFileAccessTypeArray,XNode,PageNavigator,ChooserFolderPage,Form,FormField,toFileSize,ComboBox,Bind,SaveIconTextButton,Action,EditFileAccessPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){AppFileAccess=_modelModel.AppFileAccess;AppFileAccessTypeArray=_modelModel.AppFileAccessTypeArray},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_commonPagesFoldersChooserFolderPage){ChooserFolderPage=_commonPagesFoldersChooserFolderPage.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){_export("default",EditFileAccessPage=class EditFileAccessPage extends PopupWindowPage{init(){var _a,_b,_c;var _d,_e;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters)!==null&&_a!==void 0?_a:AppFileAccess.create({});const file=yield PageNavigator.pushPageForResultOrCancel(ChooserFolderPage,{});if(!file){this.cancel();return}(_d=this.model).type||(_d.type="read");(_b=(_e=this.model).file)!==null&&_b!==void 0?_b:_e.file=file;this.model.fileID=file.appFileID;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Folder"},XNode.create("div",null,file.name)),file.creator&&XNode.create(FormField,{label:"Owner"},XNode.create("div",null,(_c=file.creator)===null||_c===void 0?void 0:_c.displayName)),XNode.create(FormField,{label:"Size"},XNode.create("div",null,toFileSize(file.fileSize))),XNode.create(FormField,{label:"Access Type"},XNode.create(ComboBox,{value:Bind.twoWaysImmediate((()=>this.model.type)),items:AppFileAccessTypeArray})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-access"}))))}))}saveAccess(){return __awaiter(this,void 0,void 0,(function*(){return this.model}))}});__decorate([Action({onEvent:"save-access",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditFileAccessPage.prototype,"saveAccess",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/files/EditFileAccessPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/types"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,DropDown,FetchBuilder,UMD,countriesPromise,loadCountries,CountrySelect,CurrencySelect,isdForCountry,formatForCountry;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD}],execute:function(){loadCountries=()=>countriesPromise!==null&&countriesPromise!==void 0?countriesPromise:countriesPromise=FetchBuilder.get(UMD.resolvePath("@social-mail/social-mail-client/content/json/countries.json")).responseAsJson();_export("CountrySelect",CountrySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>{var _a;return((_a=item.isdCode)===null||_a===void 0?void 0:_a.startsWith("+"))?item.isdCode:`+${item.isdCode} ${item.value}`},valuePath:item=>item.value,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("CurrencySelect",CurrencySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>item.currency+"("+item.label+")",valuePath:item=>item.currency,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("isdForCountry",isdForCountry=(countryCode,prefix="")=>__awaiter(void 0,void 0,void 0,(function*(){const{isdCode}=(yield loadCountries()).find((x=>x.value===countryCode));if(prefix){return isdCode.startsWith(prefix)?isdCode:prefix+isdCode}return isdCode})));_export("formatForCountry",formatForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){const countries=yield loadCountries();const country=countries.find((c=>c.value===countryCode));if(country){const{phoneFormat}=country;if(phoneFormat&&phoneFormat!=="0.0"){return phoneFormat}}return"####.####.####"})))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/countries/CountrySelect");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/countries/CountrySelect","@web-atoms/core/dist/core/Bind","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../../../../services/EntityService","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserAuthFactor,XNode,Form,FormField,CountrySelect,isdForCountry,Bind,SaveIconTextButton,Action,InjectProperty,EntityService,DateTime,UpdatePhoneNumberPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsCountriesCountrySelect){CountrySelect=_commonControlsCountriesCountrySelect.CountrySelect;isdForCountry=_commonControlsCountriesCountrySelect.isdForCountry},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){_export("default",UpdatePhoneNumberPage=class UpdatePhoneNumberPage extends PopupWindowPage{constructor(){super(...arguments);this.model=UserAuthFactor.create({isdCode:"",phoneNumber:""});this.countryCode="IN"}init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Add New Phone Number";this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"ISD Code"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.countryCode))})),XNode.create(FormField,{label:"Phone Number"},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.model.phoneNumber))})),XNode.create(FormField,{label:""},XNode.create(SaveIconTextButton,{"data-submit-event":"save-phone",text:"Save"}))))}))}savePhone(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){let isdCode=yield isdForCountry(this.countryCode);if(!isdCode.startsWith("+")){isdCode="+"+isdCode}const phoneNumber=isdCode+this.model.phoneNumber;const{userID}=this.parameters;let ua=yield this.entityService.query(UserAuthFactor).where({phoneNumber,userID},(p=>x=>x.userID===p.userID&&x.phoneNumber===p.phoneNumber&&x.method==="otp-in")).firstOrDefault();if(!ua){ua=UserAuthFactor.create({userID,phoneNumber,isdCode,method:"otp-in",verified:true})}ua.verified=true;ua.dateUpdated=DateTime.now;yield this.entityService.save(ua,(c=>c));((_a=(_b=this.parameters).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[]).add(ua);return ua}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],UpdatePhoneNumberPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-phone",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UpdatePhoneNumberPage.prototype,"savePhone",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/phone-numbers/UpdatePhoneNumberPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/ExpressionParser","../buttons/IconButton","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/core/dist/core/Bind","../../../services/EntityService","@web-atoms/core/dist/style/styled","../../../model/model","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/view-model/Action"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,AtomRepeater,ExpressionParser,AddIconTextButton,DeleteIconButton,PageNavigator,Bind,EntityService,styled,modelEntitySchemas,AtomControl,Action,CollectionEditorEx,hasKeys;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreExpressionParser){ExpressionParser=_webAtomsCoreDistCoreExpressionParser.default},function(_buttonsIconButton){AddIconTextButton=_buttonsIconButton.AddIconTextButton;DeleteIconButton=_buttonsIconButton.DeleteIconButton},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_modelModel){modelEntitySchemas=_modelModel.modelEntitySchemas},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default}],execute:function(){styled.css`
|
|
1346
1346
|
|
|
1347
1347
|
&[data-collection-editor-ex][data-collection-editor-ex][data-collection-editor-ex] {
|
|
1348
1348
|
overflow: visible;
|
|
1349
1349
|
}
|
|
1350
1350
|
|
|
1351
|
-
`.installGlobal("[data-collection-editor-ex]");hasKeys=(model,schema)=>{for(const iterator of schema.schema.keys){if(!model[iterator.name]){return false}}return true};_export("default",CollectionEditorEx=class CollectionEditorEx extends AtomControl{constructor(app,e=document.createElement("details")){super(app,e);this.label="";this.model=null;this.field=null;this.pageResultToItem=null;this.itemFactory=null;this.itemRenderer=null;this.inlineAddRenderer=null;this.inlineAdd=false;this.addPage=null;this.editPage=null;this.autoFocus=false;this.saveAfterAdd=true;this.layout="data-grid";this.footer=null;this.addItemDefaults=null;this.schema=null;this.items=[];this.fieldName=null;this.relation=null;this.element.setAttribute("data-collection-editor-ex","collection-editor-ex");this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}init(){var _a;var _b,_c;return __awaiter(this,void 0,void 0,(function*(){const fieldName=ExpressionParser.parsePath(this.field)[0][0];this.fieldName=fieldName;if(this.model){(_a=(_b=this.model)[_c=this.fieldName])!==null&&_a!==void 0?_a:_b[_c]=[]}this.inlineAdd||(this.inlineAdd=!!this.inlineAddRenderer);const fx=()=>{var _a;var _b,_c;return(_a=(_b=this.model)[_c=this.fieldName])!==null&&_a!==void 0?_a:_b[_c]=[]};const exp=`() => this.model`;fx.toString=()=>exp;this.renderer=XNode.create("details",{"data-border":"frame",open:true,items:Bind.oneWay(fx),schema:Bind.oneWay((()=>modelEntitySchemas[this.model.$type])),relation:Bind.oneWay((()=>this.schema.schema.relations.find((x=>x.name===this.fieldName))))},XNode.create("summary",{text:Bind.oneWay((()=>this.label))}),XNode.create("div",null,XNode.create(AtomRepeater,{presenter:Bind.presenter((c=>this.repeater=c)),"data-layout":this.layout,"event-delete-collection-item":ce=>this.deleteItem(ce.detail),items:Bind.oneWay((()=>this.items)),footer:Bind.oneWay((()=>{var _a;return this.inlineAdd?this.relation.relatedModel.create(Object.assign({},(_a=this.addItemDefaults)!==null&&_a!==void 0?_a:{})):void 0})),footerRenderer:newItem=>{var _a,_b;const node=this.inlineAddRenderer?this.inlineAddRenderer(newItem):this.itemRenderer(newItem);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};na["data-margin"]="default";node.children.push(XNode.create("span",null,XNode.create("button",{"event-click":()=>__awaiter(this,void 0,void 0,(function*(){var _c;yield this.addNewItemInList(newItem);this.repeater.footer=this.relation.relatedModel.create(Object.assign({},(_c=this.addItemDefaults)!==null&&_c!==void 0?_c:{}))})),text:"Add"})));for(const iterator of node.children){const a=(_b=iterator.attributes)!==null&&_b!==void 0?_b:iterator.attributes={};a["data-margin"]="default"}return node},itemRenderer:item=>{var _a,_b;const node=this.itemRenderer(item);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};na["data-margin"]="default";node.children.push(XNode.create("span",null,XNode.create(DeleteIconButton,{"data-click-event":"delete-collection-item"})));for(const iterator of node.children){if(iterator===false){continue}const a=(_b=iterator.attributes)!==null&&_b!==void 0?_b:iterator.attributes={};a["data-margin"]="default"}return node}}),this.footer?this.footer():!this.inlineAdd&&XNode.create("div",null,XNode.create(AddIconTextButton,{"event-click":()=>this.onAddItem(),text:"Add New"}))))}))}deleteItem(item){return __awaiter(this,void 0,void 0,(function*(){const{items,repeater}=this;if(typeof item.$deleted==="undefined"){items.remove(item);return}item.$deleted=true;const es=repeater.app.resolve(EntityService);const copy=es.cloner(item).copy;yield es.save(copy);items.remove(item)}))}onAddItem(){var _a;return __awaiter(this,void 0,void 0,(function*(){const{addPage,addItemDefaults,pageResultToItem,itemFactory}=this;let newItem;if(addPage){const result=yield PageNavigator.pushPageForResult(addPage,Object.assign({},addItemDefaults!==null&&addItemDefaults!==void 0?addItemDefaults:{}));newItem=pageResultToItem?pageResultToItem(result):result}else{newItem=(_a=itemFactory===null||itemFactory===void 0?void 0:itemFactory())!==null&&_a!==void 0?_a:this.relation.relatedModel.create(Object.assign({},addItemDefaults!==null&&addItemDefaults!==void 0?addItemDefaults:{}))}if(!newItem){return}if(newItem===null||newItem===void 0?void 0:newItem.then){newItem=yield newItem}yield this.addNewItemInList(newItem)}))}addNewItemInList(newItem){return __awaiter(this,void 0,void 0,(function*(){const{repeater,model,schema}=this;if(hasKeys(model,schema)&&this.saveAfterAdd){const es=this.resolve(EntityService);const draft=Object.assign(Object.assign({},model),{[this.fieldName]:[newItem]});let clone=es.cloner(draft);clone=clone.include((x=>x[this.fieldName]));yield es.save(clone.copy)}repeater.items.add(newItem)}))}});__decorate([Action({confirm:"Are you sure you want to delete this?",confirmTitle:"Confirm Delete"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],CollectionEditorEx.prototype,"deleteItem",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],CollectionEditorEx.prototype,"onAddItem",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/collection-editor/CollectionEditorEx");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../common/NumberFormats","../../../common/controls/collection-editor/CollectionEditor","./domains/EditDomainUserPage","./mailboxes/EditUserMailboxPage","./files/EditFileAccessPage","../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/PageNavigator","./EditUserPage","./phone-numbers/UpdatePhoneNumberPage","@web-atoms/core/dist/core/Bind","../../../common/controls/collection-editor/CollectionEditorEx","../../../services/EntityService","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,UserStatusArray,AdminUserService,InjectProperty,XNode,Form,toFileSize,CollectionEditor,EditDomainUserPage,EditUserMailboxPage,EditFileAccessPage,DeleteIconTextButton,SaveIconTextButton,Action,FormField,PageNavigator,EditUserPage,UpdatePhoneNumberPage,Bind,CollectionEditorEx,EntityService,DateTime,UserDetailsPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){UserStatusArray=_modelModel.UserStatusArray},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_commonControlsCollectionEditorCollectionEditor){CollectionEditor=_commonControlsCollectionEditorCollectionEditor.default},function(_domainsEditDomainUserPage){EditDomainUserPage=_domainsEditDomainUserPage.default},function(_mailboxesEditUserMailboxPage){EditUserMailboxPage=_mailboxesEditUserMailboxPage.default},function(_filesEditFileAccessPage){EditFileAccessPage=_filesEditFileAccessPage.default},function(_commonControlsButtonsIconButton){DeleteIconTextButton=_commonControlsButtonsIconButton.DeleteIconTextButton;SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_EditUserPage){EditUserPage=_EditUserPage.default},function(_phoneNumbersUpdatePhoneNumberPage){UpdatePhoneNumberPage=_phoneNumbersUpdatePhoneNumberPage.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsCollectionEditorCollectionEditorEx){CollectionEditorEx=_commonControlsCollectionEditorCollectionEditorEx.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){_export("default",UserDetailsPage=class UserDetailsPage extends ContentPage{init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.get(this.parameters.userID);this.title=this.model.userName;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create("div",{"data-layout":"vertical-flex-stretch-items"},XNode.create("div",{"data-layout":"frame-vertical-flex"},XNode.create(FormField,{label:"Username:"},XNode.create("label",null,this.model.userName)),XNode.create("div",{"data-layout":"row"},"Status: ",XNode.create("span",{"data-color":this.model.status==="active"?"green":this.model.status==="blocked"?"red":"black"},(_b=(_a=UserStatusArray.find((x=>x.value===this.model.status)))===null||_a===void 0?void 0:_a.label)!==null&&_b!==void 0?_b:this.model.status," ")),XNode.create("div",{"data-layout":"command-row"},this.model.status!=="active"&&XNode.create(SaveIconTextButton,{"data-submit-event":"activate-user",text:"Activate"}),this.model.status!=="blocked"&&XNode.create(DeleteIconTextButton,{"data-submit-event":"block-user",text:"Block"}),(this.model.multiFactor||((_c=this.model.authFactors)===null||_c===void 0?void 0:_c.length))&&XNode.create(DeleteIconTextButton,{"data-submit-event":"reset-mfa",text:"Reset MFA"}),XNode.create(SaveIconTextButton,{"data-click-event":"change-password",text:"Change Password"}),this.model.status!=="external"&&XNode.create(SaveIconTextButton,{"data-click-event":"update-phone-number",text:"Update Cell"})))),XNode.create(CollectionEditorEx,{label:"Security",model:this.model,field:x=>x.authFactors,inlineAdd:true,inlineAddRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(SaveIconTextButton,{"data-click-event":"update-phone-number",text:"Add Cell Phone"}),this.model.multiFactor?XNode.create(DeleteIconTextButton,{"data-submit-event":"reset-mfa",text:"Reset MFA"}):XNode.create(SaveIconTextButton,{"data-click-event":"enable-mfa",text:"Update Cell"})),itemRenderer:item=>XNode.create("div",null,XNode.create("label",{text:item.method}),XNode.create("label",{text:item.phoneNumber}))}),XNode.create("div",{"data-layout":"frame-vertical-flex"},XNode.create(Form,null,XNode.create(FormField,{label:"Max Storage"},XNode.create("input",{type:"number",value:Bind.twoWaysImmediate((()=>this.model.maxStorage))})),XNode.create(FormField,{label:"Max External Mailboxes"},XNode.create("input",{type:"number",value:Bind.twoWaysImmediate((()=>this.model.maxExternalInboxes))})),XNode.create(FormField,{label:"Max Child Users"},XNode.create("input",{type:"number",value:Bind.twoWaysImmediate((()=>this.model.maxChildUsers))})),XNode.create(FormField,{label:""},XNode.create(SaveIconTextButton,{"data-click-event":"save-user",text:"Save"})))),XNode.create(CollectionEditor,{label:"Domains",model:this.model,collection:"domainUsers",addPage:EditDomainUserPage,itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.hostedDomain.domain.name}),XNode.create("td",{text:item.allowCreateMailbox?"can create mailbox":item.isAdmin?" is admin":""}),XNode.create("td",{text:item.prefix}))}),XNode.create(CollectionEditor,{label:"Mailboxes",model:this.model,addPage:EditUserMailboxPage,collection:"userMailboxes",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.mailbox.emailAddress.emailAddress}),XNode.create("td",{text:toFileSize(item.mailbox.storage)}))}),XNode.create(CollectionEditor,{label:"Drives/Files",model:this.model,addPage:EditFileAccessPage,collection:"fileAccessList",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.file.name}),XNode.create("td",{text:item.type}),XNode.create("td",{text:toFileSize(item.file.fileSize)}))})))}))}activateUser(){return __awaiter(this,void 0,void 0,(function*(){this.model.status="active";yield this.userService.save(this.model);yield this.init()}))}blockUser(){return __awaiter(this,void 0,void 0,(function*(){this.model.status="blocked";yield this.userService.save(this.model);yield this.init()}))}resetMFA(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.resetMFA(this.model);yield this.init()}))}enableMFA(){return __awaiter(this,void 0,void 0,(function*(){this.model.enableMultiFactor=true;this.model.dateUpdated=DateTime.now;const es=this.resolve(EntityService);yield es.save(this.model,(c=>c));yield this.init()}))}changePassword(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EditUserPage,this.model)}))}updatePhoneNumber(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(UpdatePhoneNumberPage,this.model)}))}saveUser(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserDetailsPage.prototype,"userService",void 0);__decorate([Action({onEvent:"activate-user",confirm:"Are you sure you want to activate the user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"activateUser",null);__decorate([Action({onEvent:"block-user",confirm:"Are you sure you want to block the user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"blockUser",null);__decorate([Action({onEvent:"reset-mfa",confirm:"Are you sure you want to reset multi factor authentications for this user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"resetMFA",null);__decorate([Action({onEvent:"enable-mfa",confirm:"Are you sure you want to enable multi factor authentications for this user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"enableMFA",null);__decorate([Action({onEvent:"change-password"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"changePassword",null);__decorate([Action({onEvent:"update-phone-number"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"updatePhoneNumber",null);__decorate([Action({onEvent:"save-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"saveUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/UserDetailsPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","../../../common/controls/repeater/InfiniteRepeater","@web-atoms/core/dist/core/Bind","./EditUserPage","@web-atoms/web-controls/dist/mobile-app/MasterDetailPage","./UserDetailsPage","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Action,PageNavigator,AtomRepeater,User,AdminUserService,InjectProperty,InfiniteRepeater,Bind,EditUserPage,MasterDetailPage,UserDetailsPage,styled,Checkbox,UserListPage,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_modelModel){User=_modelModel.User},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_EditUserPage){EditUserPage=_EditUserPage.default},function(_webAtomsWebControlsDistMobileAppMasterDetailPage){MasterDetailPage=_webAtomsWebControlsDistMobileAppMasterDetailPage.default},function(_UserDetailsPage){UserDetailsPage=_UserDetailsPage.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){css=styled.css`
|
|
1351
|
+
`.installGlobal("[data-collection-editor-ex]");hasKeys=(model,schema)=>{for(const iterator of schema.schema.keys){if(!model[iterator.name]){return false}}return true};_export("default",CollectionEditorEx=class CollectionEditorEx extends AtomControl{constructor(app,e=document.createElement("details")){super(app,e);this.label="";this.model=null;this.field=null;this.pageResultToItem=null;this.itemFactory=null;this.itemRenderer=null;this.inlineAddRenderer=null;this.inlineAdd=false;this.addPage=null;this.editPage=null;this.autoFocus=false;this.saveAfterAdd=true;this.layout="data-grid";this.footer=null;this.addItemDefaults=null;this.schema=null;this.items=[];this.fieldName=null;this.relation=null;this.element.setAttribute("data-collection-editor-ex","collection-editor-ex");this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}init(){var _a;var _b,_c;return __awaiter(this,void 0,void 0,(function*(){const fieldName=ExpressionParser.parsePath(this.field)[0][0];this.fieldName=fieldName;if(this.model){(_a=(_b=this.model)[_c=this.fieldName])!==null&&_a!==void 0?_a:_b[_c]=[]}this.inlineAdd||(this.inlineAdd=!!this.inlineAddRenderer);const fx=()=>{var _a;var _b,_c;return(_a=(_b=this.model)[_c=this.fieldName])!==null&&_a!==void 0?_a:_b[_c]=[]};const exp=`() => this.model`;fx.toString=()=>exp;this.renderer=XNode.create("details",{"data-border":"frame",open:true,items:Bind.oneWay(fx),schema:Bind.oneWay((()=>modelEntitySchemas[this.model.$type])),relation:Bind.oneWay((()=>this.schema.schema.relations.find((x=>x.name===this.fieldName))))},XNode.create("summary",{text:Bind.oneWay((()=>this.label))}),XNode.create("div",null,XNode.create(AtomRepeater,{presenter:Bind.presenter((c=>this.repeater=c)),"data-layout":this.layout,"event-delete-collection-item":ce=>this.deleteItem(ce.detail),items:Bind.oneWay((()=>this.items)),footer:Bind.oneWay((()=>{var _a;return this.inlineAdd?this.relation.relatedModel.create(Object.assign({},(_a=this.addItemDefaults)!==null&&_a!==void 0?_a:{})):void 0})),footerRenderer:newItem=>{var _a,_b;const node=this.inlineAddRenderer?this.inlineAddRenderer(newItem):this.itemRenderer(newItem);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};na["data-margin"]="default";node.children.push(XNode.create("span",null,XNode.create("button",{"event-click":()=>__awaiter(this,void 0,void 0,(function*(){var _c;yield this.addNewItemInList(newItem);this.repeater.footer=this.relation.relatedModel.create(Object.assign({},(_c=this.addItemDefaults)!==null&&_c!==void 0?_c:{}))})),text:"Add"})));for(const iterator of node.children){const a=(_b=iterator.attributes)!==null&&_b!==void 0?_b:iterator.attributes={};a["data-margin"]="default"}return node},itemRenderer:item=>{var _a,_b;const node=this.itemRenderer(item);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};na["data-margin"]="default";node.children.push(XNode.create("span",null,XNode.create(DeleteIconButton,{"data-click-event":"delete-collection-item"})));for(const iterator of node.children){if(iterator===false){continue}const a=(_b=iterator.attributes)!==null&&_b!==void 0?_b:iterator.attributes={};a["data-margin"]="default"}return node}}),this.footer?this.footer():!this.inlineAdd&&XNode.create("div",null,XNode.create(AddIconTextButton,{"event-click":()=>this.onAddItem(),text:"Add New"}))))}))}deleteItem(item){return __awaiter(this,void 0,void 0,(function*(){const{items,repeater}=this;if(typeof item.$deleted==="undefined"){items.remove(item);return}item.$deleted=true;const es=repeater.app.resolve(EntityService);const copy=es.cloner(item).copy;yield es.save(copy);items.remove(item)}))}onAddItem(){var _a;return __awaiter(this,void 0,void 0,(function*(){const{addPage,addItemDefaults,pageResultToItem,itemFactory}=this;let newItem;if(addPage){const result=yield PageNavigator.pushPageForResult(addPage,Object.assign({},addItemDefaults!==null&&addItemDefaults!==void 0?addItemDefaults:{}));newItem=pageResultToItem?pageResultToItem(result):result}else{newItem=(_a=itemFactory===null||itemFactory===void 0?void 0:itemFactory())!==null&&_a!==void 0?_a:this.relation.relatedModel.create(Object.assign({},addItemDefaults!==null&&addItemDefaults!==void 0?addItemDefaults:{}))}if(!newItem){return}if(newItem===null||newItem===void 0?void 0:newItem.then){newItem=yield newItem}yield this.addNewItemInList(newItem)}))}addNewItemInList(newItem){return __awaiter(this,void 0,void 0,(function*(){const{repeater,model,schema}=this;if(hasKeys(model,schema)&&this.saveAfterAdd){const es=this.resolve(EntityService);const draft=Object.assign(Object.assign({},model),{[this.fieldName]:[newItem]});let clone=es.cloner(draft);clone=clone.include((x=>x[this.fieldName]));yield es.save(clone.copy)}repeater.items.add(newItem)}))}});__decorate([Action({confirm:"Are you sure you want to delete this?",confirmTitle:"Confirm Delete"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],CollectionEditorEx.prototype,"deleteItem",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],CollectionEditorEx.prototype,"onAddItem",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/collection-editor/CollectionEditorEx");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../common/NumberFormats","../../../common/controls/collection-editor/CollectionEditor","./domains/EditDomainUserPage","./mailboxes/EditUserMailboxPage","./files/EditFileAccessPage","../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/PageNavigator","./EditUserPage","./phone-numbers/UpdatePhoneNumberPage","@web-atoms/core/dist/core/Bind","../../../common/controls/collection-editor/CollectionEditorEx","../../../services/EntityService","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,UserStatusArray,AdminUserService,InjectProperty,XNode,Form,toFileSize,CollectionEditor,EditDomainUserPage,EditUserMailboxPage,EditFileAccessPage,DeleteIconTextButton,SaveIconTextButton,Action,FormField,PageNavigator,EditUserPage,UpdatePhoneNumberPage,Bind,CollectionEditorEx,EntityService,DateTime,UserDetailsPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){UserStatusArray=_modelModel.UserStatusArray},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_commonControlsCollectionEditorCollectionEditor){CollectionEditor=_commonControlsCollectionEditorCollectionEditor.default},function(_domainsEditDomainUserPage){EditDomainUserPage=_domainsEditDomainUserPage.default},function(_mailboxesEditUserMailboxPage){EditUserMailboxPage=_mailboxesEditUserMailboxPage.default},function(_filesEditFileAccessPage){EditFileAccessPage=_filesEditFileAccessPage.default},function(_commonControlsButtonsIconButton){DeleteIconTextButton=_commonControlsButtonsIconButton.DeleteIconTextButton;SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_EditUserPage){EditUserPage=_EditUserPage.default},function(_phoneNumbersUpdatePhoneNumberPage){UpdatePhoneNumberPage=_phoneNumbersUpdatePhoneNumberPage.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsCollectionEditorCollectionEditorEx){CollectionEditorEx=_commonControlsCollectionEditorCollectionEditorEx.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){_export("default",UserDetailsPage=class UserDetailsPage extends ContentPage{init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.get(this.parameters.userID);this.title=this.model.userName;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create("div",{"data-layout":"vertical-flex-stretch-items"},XNode.create("div",{"data-layout":"frame-vertical-flex"},XNode.create(FormField,{label:"Username:"},XNode.create("label",null,this.model.userName)),XNode.create("div",{"data-layout":"row"},"Status: ",XNode.create("span",{"data-color":this.model.status==="active"?"green":this.model.status==="blocked"?"red":"black"},(_b=(_a=UserStatusArray.find((x=>x.value===this.model.status)))===null||_a===void 0?void 0:_a.label)!==null&&_b!==void 0?_b:this.model.status," ")),XNode.create("div",{"data-layout":"command-row"},this.model.status!=="active"&&XNode.create(SaveIconTextButton,{"data-submit-event":"activate-user",text:"Activate"}),this.model.status!=="blocked"&&XNode.create(DeleteIconTextButton,{"data-submit-event":"block-user",text:"Block"}),(this.model.multiFactor||((_c=this.model.authFactors)===null||_c===void 0?void 0:_c.length))&&XNode.create(DeleteIconTextButton,{"data-submit-event":"reset-mfa",text:"Reset MFA"}),XNode.create(SaveIconTextButton,{"data-click-event":"change-password",text:"Change Password"}),this.model.status!=="external"&&XNode.create(SaveIconTextButton,{"data-click-event":"update-phone-number",text:"Update Cell"})))),XNode.create(CollectionEditorEx,{label:"Security",model:this.model,field:x=>x.authFactors,inlineAdd:true,inlineAddRenderer:()=>XNode.create("div",{"data-layout":"row"},XNode.create(SaveIconTextButton,{"data-click-event":"update-phone-number",text:"Add Cell Phone"}),this.model.multiFactor?XNode.create(DeleteIconTextButton,{"data-submit-event":"reset-mfa",text:"Reset MFA"}):XNode.create(SaveIconTextButton,{"data-click-event":"enable-mfa",text:"Update Cell"})),itemRenderer:item=>XNode.create("div",null,XNode.create("label",{text:item.method}),XNode.create("label",{text:item.phoneNumber}))}),XNode.create("div",{"data-layout":"frame-vertical-flex"},XNode.create(Form,null,XNode.create(FormField,{label:"Max Storage"},XNode.create("input",{type:"number",value:Bind.twoWaysImmediate((()=>this.model.maxStorage))})),XNode.create(FormField,{label:"Max External Mailboxes"},XNode.create("input",{type:"number",value:Bind.twoWaysImmediate((()=>this.model.maxExternalInboxes))})),XNode.create(FormField,{label:"Max Child Users"},XNode.create("input",{type:"number",value:Bind.twoWaysImmediate((()=>this.model.maxChildUsers))})),XNode.create(FormField,{label:""},XNode.create(SaveIconTextButton,{"data-click-event":"save-user",text:"Save"})))),XNode.create(CollectionEditor,{label:"Domains",model:this.model,collection:"domainUsers",addPage:EditDomainUserPage,itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.hostedDomain.domain.name}),XNode.create("td",{text:item.allowCreateMailbox?"can create mailbox":item.isAdmin?" is admin":""}),XNode.create("td",{text:item.prefix}))}),XNode.create(CollectionEditor,{label:"Mailboxes",model:this.model,addPage:EditUserMailboxPage,collection:"userMailboxes",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.mailbox.emailAddress.emailAddress}),XNode.create("td",{text:toFileSize(item.mailbox.storage)}))}),XNode.create(CollectionEditor,{label:"Drives/Web Sites",model:this.model,addPage:EditFileAccessPage,collection:"fileAccessList",itemRenderer:item=>XNode.create("tr",null,XNode.create("td",{text:item.file.name}),XNode.create("td",{text:item.type}),XNode.create("td",{text:toFileSize(item.file.fileSize)}))})))}))}activateUser(){return __awaiter(this,void 0,void 0,(function*(){this.model.status="active";yield this.userService.save(this.model);yield this.init()}))}blockUser(){return __awaiter(this,void 0,void 0,(function*(){this.model.status="blocked";yield this.userService.save(this.model);yield this.init()}))}resetMFA(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.resetMFA(this.model);yield this.init()}))}enableMFA(){return __awaiter(this,void 0,void 0,(function*(){this.model.enableMultiFactor=true;this.model.dateUpdated=DateTime.now;const es=this.resolve(EntityService);yield es.save(this.model,(c=>c));yield this.init()}))}changePassword(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EditUserPage,this.model)}))}updatePhoneNumber(){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(UpdatePhoneNumberPage,this.model)}))}saveUser(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.save(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserDetailsPage.prototype,"userService",void 0);__decorate([Action({onEvent:"activate-user",confirm:"Are you sure you want to activate the user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"activateUser",null);__decorate([Action({onEvent:"block-user",confirm:"Are you sure you want to block the user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"blockUser",null);__decorate([Action({onEvent:"reset-mfa",confirm:"Are you sure you want to reset multi factor authentications for this user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"resetMFA",null);__decorate([Action({onEvent:"enable-mfa",confirm:"Are you sure you want to enable multi factor authentications for this user?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"enableMFA",null);__decorate([Action({onEvent:"change-password"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"changePassword",null);__decorate([Action({onEvent:"update-phone-number"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"updatePhoneNumber",null);__decorate([Action({onEvent:"save-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserDetailsPage.prototype,"saveUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/UserDetailsPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","../../../common/controls/repeater/InfiniteRepeater","@web-atoms/core/dist/core/Bind","./EditUserPage","@web-atoms/web-controls/dist/mobile-app/MasterDetailPage","./UserDetailsPage","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Action,PageNavigator,AtomRepeater,User,AdminUserService,InjectProperty,InfiniteRepeater,Bind,EditUserPage,MasterDetailPage,UserDetailsPage,styled,Checkbox,UserListPage,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_modelModel){User=_modelModel.User},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_EditUserPage){EditUserPage=_EditUserPage.default},function(_webAtomsWebControlsDistMobileAppMasterDetailPage){MasterDetailPage=_webAtomsWebControlsDistMobileAppMasterDetailPage.default},function(_UserDetailsPage){UserDetailsPage=_UserDetailsPage.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){css=styled.css`
|
|
1352
1352
|
&[data-page-type=master-detail] > [data-page-element=content][data-mode=desktop] {
|
|
1353
1353
|
grid-template-columns: 150px 1fr auto;
|
|
1354
1354
|
}
|
|
1355
|
-
`.installLocal();_export("default",UserListPage=class UserListPage extends MasterDetailPage{constructor(){super(...arguments);this.users=[];this.version=0;this.external=false;this.selectedUser=null}init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-user",class:"fas fa-plus"});this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{placeholder:"Search Users",value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.external)),text:"External"}));this.search="";this.renderer=XNode.create("div",null,XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table","data-layout":"data-grid",selectOnClick:true,"data-list-selection":"default","data-selection-updated-event":"user-selected","data-event-items-updated":"users-loaded",selectedItem:Bind.twoWaysImmediate((()=>this.selectedUser)),items:this.users},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({start,search:this.search,cancelToken,external:this.external,v:this.version}))),{itemRenderer:user=>XNode.create("div",null,XNode.create("label",null,user.userID),XNode.create("div",null,XNode.create("div",null,XNode.create("label",{text:user.userName}),XNode.create("label",{"data-font-size":"x-small",text:user.displayName}))),XNode.create("label",null,user.multiFactor?"2FA":"-"))}))))}))}usersLoaded(){if(this.selectedUser){if(this.users.includes(this.selectedUser)){return}this.selectedUser=this.users.find((x=>x.userID===this.selectedUser.userID));if(this.selectedUser){return}}this.selectedUser=this.users[0]}userSelected(){if(!this.selectedUser){return}this.openDetail(UserDetailsPage,this.selectedUser)}addDomain(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(EditUserPage,User.create({userName:"",displayName:"",changePassword:{forceChangePasswordOnLogin:true,newPassword:""}}));this.version++}))}userChangePassword(model){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EditUserPage,model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserListPage.prototype,"userService",void 0);__decorate([Action({onEvent:"users-loaded",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],UserListPage.prototype,"usersLoaded",null);__decorate([Action({onEvent:"user-selected"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],UserListPage.prototype,"userSelected",null);__decorate([Action({onEvent:"add-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserListPage.prototype,"addDomain",null);__decorate([Action({onEvent:"user-change-password"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],UserListPage.prototype,"userChangePassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/UserListPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","./services/AdminUserService","../../../common/controls/repeater/InfiniteRepeater","../../../common/controls/buttons/IconButton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InjectProperty,XNode,AtomRepeater,Bind,AdminUserService,InfiniteRepeater,SaveIconTextButton,ChooseUserPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton}],execute:function(){_export("default",ChooseUserPage=class ChooseUserPage extends PopupWindowPage{constructor(){super(...arguments);this.search="";this.users=[];this.selectedUser=null}init(){return __awaiter(this,void 0,void 0,(function*(){this.titleRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),placeholder:"Search User"}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({items:this.users,selectOnClick:true,"data-layout":"list",selectedItem:Bind.twoWaysImmediate((()=>this.selectedUser)),"data-list-selection":"default","data-selection-updated-event":"selection-updated"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({search:this.search,start,cancelToken}))),{itemRenderer:user=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:user.userName}))})));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row","style-display":Bind.oneWay((()=>!!this.selectedUser))},XNode.create(SaveIconTextButton,{"event-click":()=>this.close(this.selectedUser),text:"Select"}))}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],ChooseUserPage.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/ChooseUserPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/ComboBox","./services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../SocialMailApp","@web-atoms/web-controls/dist/basic/AtomRepeater","../../controls/buttons/IconButton","@web-atoms/web-controls/dist/PageNavigator","../../../admin/pages/users/ChooseUserPage","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,EmailAddress,Mailbox,UserMailbox,XNode,Form,TextFormField,FormField,ComboBox,MailboxService,InjectProperty,Bind,Action,SocialMailApp,AtomRepeater,AddIconTextButton,PageNavigator,ChooseUserPage,Checkbox,MailboxEditorPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){EmailAddress=_modelModel.EmailAddress;Mailbox=_modelModel.Mailbox;UserMailbox=_modelModel.UserMailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){TextFormField=_controlsFormRequiredFormField.TextFormField},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_servicesMailboxService){MailboxService=_servicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_adminPagesUsersChooseUserPage){ChooseUserPage=_adminPagesUsersChooseUserPage.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",MailboxEditorPage=class MailboxEditorPage extends PopupWindowPage{init(){var _a,_b,_c,_d;var _e,_f;return __awaiter(this,void 0,void 0,(function*(){this.title="Add Hosted Mailbox";this.model=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.model)!==null&&_b!==void 0?_b:Mailbox.create({emailAddress:EmailAddress.create({emailAddress:""}),maxStorage:1*1024*1024*1024,userMailboxes:[]});if(this.parameters.domainID){this.model.domainID=this.parameters.domainID}(_c=(_e=this.model).isChannel)!==null&&_c!==void 0?_c:_e.isChannel=false;(_d=(_f=this.model).isPrivateChannel)!==null&&_d!==void 0?_d:_f.isPrivateChannel=false;this.model.username="";const domains=yield this.mailboxService.domains(true);this.model.name=SocialMailApp.user.displayName;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-mailbox"},XNode.create(TextFormField,{label:"Name",value:()=>this.model.name}),XNode.create(TextFormField,{label:"Email Prefix/Username",value:()=>this.model.username}),XNode.create(FormField,{label:"Domain"},XNode.create(ComboBox,{labelPath:item=>item===null||item===void 0?void 0:item.name,valuePath:item=>item===null||item===void 0?void 0:item.domainID,selectedItem:Bind.twoWaysImmediate((()=>this.model.domain)),value:Bind.twoWaysImmediate((()=>this.model.domainID)),items:domains})),XNode.create(FormField,{label:"Email Address"},XNode.create("span",{text:Bind.oneWay((()=>`${this.model.username}@${this.model.domain.name}`))})),XNode.create(FormField,{label:"Create Channel"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isChannel)),text:"Create a newsletter channel, which anyone with email can subscribe"})),XNode.create(FormField,{"style-display":Bind.oneWay((()=>this.model.isChannel)),label:"Private Channel"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isPrivateChannel)),text:"Make this channel private, only users with invitation can subscribe"})),XNode.create(FormField,{label:"Add Users who can access this mailbox"},XNode.create("div",null,XNode.create(AtomRepeater,{items:this.model.userMailboxes,"data-layout":"list",itemRenderer:item=>XNode.create("div",null,XNode.create("span",{text:item.user.userName}))}),XNode.create(AddIconTextButton,{"data-click-event":"add-user",text:"User"}))),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-type":"submit","data-layout":"accept-button",text:"Add"}))))}))}saveMailbox(){return __awaiter(this,void 0,void 0,(function*(){yield this.mailboxService.save(this.model);return this.model}))}addUser(){return __awaiter(this,void 0,void 0,(function*(){const user=yield PageNavigator.pushPageForResult(ChooseUserPage);this.model.userMailboxes.add(UserMailbox.create({user,userID:user.userID}))}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],MailboxEditorPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"save-mailbox",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxEditorPage.prototype,"saveMailbox",null);__decorate([Action({onEvent:"add-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxEditorPage.prototype,"addUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");System.register(["@web-atoms/core/dist/core/EventScope"],(function(_export,_context){"use strict";var EventScope,CommonEvents;return{setters:[function(_webAtomsCoreDistCoreEventScope){EventScope=_webAtomsCoreDistCoreEventScope.default}],execute:function(){_export("CommonEvents",CommonEvents={onThreadMarkedAsRead:EventScope.create(),onThreadMarkedAsBlocked:EventScope.create(),onDraftDeleted:EventScope.create(),onFileDeleted:EventScope.create(),onEmailScheduled:EventScope.create(),onEmailUnscheduled:EventScope.create()})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/events/CommonEvents");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql","../../../../common/events/CommonEvents","@web-atoms/core/dist/services/FetchBuilder","../../../../common/apiPath"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,AppFile,Mailbox,MailboxContact,UserPushSubscription,Sql,CommonEvents,FetchBuilder,apiPath,MailService;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;Mailbox=_modelModel.Mailbox;MailboxContact=_modelModel.MailboxContact;UserPushSubscription=_modelModel.UserPushSubscription},function(_commonSql){Sql=_commonSql.Sql},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){MailService=class MailService{mailbox(mailboxID){return __awaiter(this,void 0,void 0,(function*(){const mb=yield this.entityService.query(Mailbox).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID)).include((x=>[x.emailAddress,x.folders.forEach((t=>t.tag))])).firstOrDefault();const notify=yield this.entityService.query(UserPushSubscription).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===null)).firstOrDefault();mb.notify=!!notify;const index=x=>{switch(x.tag.name.toLocaleLowerCase()){case"contacts":return 1;case"new":return 2;case"spam":return 3;case"blocked":return 4}return 100};mb.folders.sort(((a,b)=>index(a)-index(b)));if(mb.folders.length){mb.folders[0].main=true}mb.folders.remove((x=>!x.main&&!x.count));return mb}))}list({search="",searchInMessages=false,mailboxID,conversationType="all",start=0,size=20,version=1,folderID=null,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxContact).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID));if(folderID){q=q.where({folderID},(p=>x=>x.folderTagID===p.folderID))}switch(conversationType){case"open":q=q.where((x=>x.openThreads!==0));break;case"closed":q=q.where((x=>x.openThreads===0));break}if(search){const likeSearch=`${search}%`;if(searchInMessages){q=q.where({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.iLike(x.lastEmail.textBody,p.likeSearch)||Sql.text.iLike(x.lastEmail.subject,p.likeSearch)||Sql.text.iLike(x.emailAddress.name,p.likeSearch)||Sql.text.iLike(x.lastEmail.senderName,p.likeSearch)));q=q.orderByDescending({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.iLike(x.emailAddress.name,p.likeSearch))).thenByDescending((x=>x.dateUpdated))}else{q=q.where({likeSearch},(p=>x=>x.emailAddress.names.some((n=>Sql.text.like(n.nameToken.word,p.likeSearch)))||Sql.text.like(x.emailAddress.domain.name,p.likeSearch))).orderByDescending((x=>x.dateUpdated))}}else{q=q.orderByDescending((x=>x.dateUpdated))}return q.include((x=>[x.emailAddress,x.lastEmail])).toPagedList({start,size,cancelToken})}))}raw(email){return __awaiter(this,void 0,void 0,(function*(){const{mimeFileID}=email;return FetchBuilder.get(apiPath(`/api/emails/logs/${mimeFileID}/${email.emailID}.eml`)).responseAsText()}))}send(email){return __awaiter(this,void 0,void 0,(function*(){const{textBody}=email;if(textBody&&!email.subject){const lines=textBody.split("\n");for(const line of lines){if(!line.trim()){continue}email.subject||(email.subject=line.trim().substring(0,80));break}}for(const iterator of email.recipients){if(iterator.emailAddressText){iterator.emailAddressText=iterator.emailAddressText.trim()}}yield this.entityService.save(email,(c=>c.include((x=>x.recipients)).include((x=>x.attachments))));CommonEvents.onEmailScheduled.dispatchEvent(email)}))}deleteAttachment(file){return __awaiter(this,void 0,void 0,(function*(){const{appFileID}=file;yield this.entityService.save(AppFile.create({$deleted:true,appFileID}));CommonEvents.onFileDeleted.dispatchEvent(file)}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailService.prototype,"entityService",void 0);MailService=__decorate([DISingleton()],MailService);_export("default",MailService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/MailService");System.register([],(function(_export,_context){"use strict";function newCSSStyleDeclaration(){const e=document.createElement("div");return e.style}function mergeStyle(...styles){var _a,_b;const s=newCSSStyleDeclaration();for(const iterator of styles){if(!iterator){continue}if(iterator instanceof CSSStyleDeclaration){for(let index=0;index<iterator.length;index++){const name=iterator[index];let value=(_a=iterator[name])===null||_a===void 0?void 0:_a.toString();if(value===void 0||value===null||value===""){continue}s[name]=value}continue}for(const key in iterator){if(Object.prototype.hasOwnProperty.call(iterator,key)){const element=(_b=iterator[key])===null||_b===void 0?void 0:_b.toString();if(!element){continue}s[key]=element}}}return s}_export({newCSSStyleDeclaration,default:mergeStyle});return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/email-dom/dist/style/mergeStyle");System.register(["../style/mergeStyle"],(function(_export,_context){"use strict";var newCSSStyleDeclaration,StyleHelper,toStyle;_export("default",void 0);return{setters:[function(_styleMergeStyle){newCSSStyleDeclaration=_styleMergeStyle.newCSSStyleDeclaration}],execute:function(){toStyle=style=>{var _a;if(typeof style==="string"){const css=style;const cs=newCSSStyleDeclaration();cs.cssText=css;return cs}const s=newCSSStyleDeclaration();if(style instanceof CSSStyleDeclaration){return style}for(const key in style){if(Object.prototype.hasOwnProperty.call(style,key)){const element=(_a=style[key])===null||_a===void 0?void 0:_a.toString();if(element===void 0||element===null||element===""){continue}s[key]=element}}return s};_export("default",StyleHelper=class StyleHelper{static styleToString(style,props){var _a;if(!style){return}const cs=toStyle(style);if(props){const ps=toStyle(props);for(let index=0;index<ps.length;index++){const key=ps[index];let value=(_a=ps[key])===null||_a===void 0?void 0:_a.toString();if(value===void 0||value===null||value===""){continue}cs[key]=value}}const allKeys=[];for(let index=0;index<cs.length;index++){const key=cs[index];allKeys.push(key)}for(const key of allKeys){if(!cs[key]){cs.removeProperty(key)}}return cs.cssText}})}}}));AmdLoader.instance.setup("@web-atoms/email-dom/dist/dom/StyleHelper");System.register(["@web-atoms/core/dist/core/XNode","./dom/StyleHelper"],(function(_export,_context){"use strict";var XNode,StyleHelper;function DomToString(node){const div=document.createElement("div");render(div,XNode.create("div",null,node));return div.innerHTML}function render(div,node){var _a;while(typeof node.name==="function"){node=node.name(node.attributes,...node.children)}const a=node.attributes;if(a){for(const key in a){if(Object.prototype.hasOwnProperty.call(a,key)){let element=a[key];if(element===null||element===void 0){continue}if(typeof element==="object"&&key==="style"){element=StyleHelper.styleToString(element)}else{element=element.toString()}if(!element){continue}switch(key){case"text":div.textContent=element;continue;case"innerHTML":div.innerHTML=element;continue}if(key.startsWith("styler-")){div.setAttribute(key,element);continue}if(key.startsWith("style")&&key.length>5){div.style[key.substring(5)]=element;continue}if(key.startsWith("data")&&key.length>4){if(key.indexOf("-")!==-1){div.setAttribute(key,element);continue}div.dataset[key.substring(4)]=element;continue}div.setAttribute(key,element)}}}if(!((_a=node.children)===null||_a===void 0?void 0:_a.length)){return}for(let iterator of node.children){if(iterator===false||iterator===void 0||iterator===null){continue}if(typeof iterator!=="object"){div.appendChild(document.createTextNode(iterator.toString()));continue}while(typeof iterator.name==="function"){iterator=iterator.name(iterator.attributes,...iterator.children)}const child=document.createElement(iterator.name);div.appendChild(child);render(child,iterator)}}_export("default",DomToString);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_domStyleHelper){StyleHelper=_domStyleHelper.default}],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/email-dom/dist/DomToString");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/entity/dist/models/TaskManager","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,__decorate,DISingleton,TaskManager,FetchBuilder,EmailContentDownloader;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsEntityDistModelsTaskManager){TaskManager=_webAtomsEntityDistModelsTaskManager.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){EmailContentDownloader=class EmailContentDownloader extends TaskManager{download(mce){return this.downloadFromUrl(mce.htmlBodyUrl,mce.email)}downloadFromUrl(url,email){return __awaiter(this,void 0,void 0,(function*(){if(!window.caches){const text=yield FetchBuilder.get(url).responseAsText();return email.htmlBody=text}const cache=yield window.caches.open("email-content-cache");const cacheKey=new URL(url,location.href);const content=yield cache.match(cacheKey);if(content){return email.htmlBody=yield content.text()}return yield this.run((()=>__awaiter(this,void 0,void 0,(function*(){for(let i=0;i<3;i++){try{const text=yield FetchBuilder.get(url).responseAsText();yield cache.put(cacheKey,new Response(text,{headers:{"cache-control":"public, max-age=86000"}}));return email.htmlBody=text}catch(error){console.error(error)}}}))))}))}};EmailContentDownloader=__decorate([DISingleton({})],EmailContentDownloader);_export("default",EmailContentDownloader)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email/EmailContentDownloader");System.register([],(function(_export,_context){"use strict";var CacheTTL;return{setters:[],execute:function(){_export("CacheTTL",CacheTTL={seconds:{oneHour:60*60,oneDay:60*60*24,oneMonth:60*60*24*30,fifteenMinutes:15*60}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");System.register(["tslib","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/cache/CacheTTL","@web-atoms/date-time/dist/DateTime","../../../../services/email/EmailContentDownloader","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Inject,EntityService,Email,EmailEngagement,CacheTTL,DateTime,EmailContentDownloader,DISingleton,cacheSeconds,EngagementService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Email=_modelModel.Email;EmailEngagement=_modelModel.EmailEngagement},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cacheSeconds=CacheTTL.seconds.oneMonth;EngagementService=class EngagementService{downloadEngagements(email){return __awaiter(this,void 0,void 0,(function*(){try{const{emailID}=email;let now=DateTime.now;const minute=Math.floor(now.minute/5);now=now.addMinutes(-minute);const cacheVersion=email.dateUpdated?DateTime.from(email.dateUpdated).msSinceEpoch.toString(36):"-";email.engagements=yield this.entityService.query(EmailEngagement).where({emailID},(p=>x=>x.emailID===p.emailID)).toArray({cacheVersion,cacheSeconds:300})}catch(error){console.error(error)}}))}list({start=0,size=50,engagement="",emailID=0,mailboxID=0,emailAddressID=0,dateUpdated=null}){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(Email).where({mailboxID,emailAddressID,engagement,emailID},(p=>x=>x.engagement===p.engagement&&x.parentID===p.emailID));const cacheVersion=dateUpdated?DateTime.from(dateUpdated).msSinceEpoch.toString(36):"-";const list=yield q.toPagedList({start,size,cacheVersion,cacheSeconds});return list}))}};__decorate([Inject,__metadata("design:type",EntityService)],EngagementService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],EngagementService.prototype,"emailContentDownloader",void 0);EngagementService=__decorate([DISingleton()],EngagementService);_export("default",EngagementService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/EngagementService");System.register(["@web-atoms/core/dist/core/EventScope"],(function(_export,_context){"use strict";var EventScope,MailAppEvents;return{setters:[function(_webAtomsCoreDistCoreEventScope){EventScope=_webAtomsCoreDistCoreEventScope.default}],execute:function(){_export("MailAppEvents",MailAppEvents={mailboxContactUpdated:EventScope.create()})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/MailAppEvents");System.register(["./apiPath"],(function(_export,_context){"use strict";var apiPath,viewFileUrl,fileUrl,imageUrl,srcSetUrl,signedImageUrl,signedUrl,storeFileUrl;return{setters:[function(_apiPath){apiPath=_apiPath.apiPath}],execute:function(){_export("viewFileUrl",viewFileUrl=(site,file)=>apiPath(`/api/site/asset/view/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${file.name}`));_export("fileUrl",fileUrl=(file,{action="download",args=void 0,fileName="",ext=""}={})=>{let name=encodeURIComponent(file.name);if(args){if(Array.isArray(args)){args=args.join(",")}ext="."+args+ext;action=action+"("+args+")"}if(ext){fileName=name+ext}if(fileName){name+="/"+fileName}const{emailID,appFileID,fileContentID}=file;if(emailID){return apiPath(`/api/emails/attachment/${action}/${emailID}/${appFileID}/${name}/`)}return apiPath(`/api/files/${action}/${appFileID}/${fileContentID}/${name}`)});fileUrl.webp=(file,size=300)=>fileUrl(file,{action:"webp",args:size,ext:".webp"});fileUrl.webm=file=>fileUrl(file,{action:"webm",ext:".webm"});fileUrl.pdf=file=>fileUrl(file,{action:"pdf",ext:".pdf"});fileUrl.html=file=>fileUrl(file,{action:"html",ext:".html"});_export("imageUrl",imageUrl=(site,file,size)=>{const name=encodeURIComponent(file.name);if(!size){return apiPath(`/api/site/asset/webp/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.webp`)}return apiPath(`/api/site/asset/webp(${size})/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.${size}.webp`)});_export("srcSetUrl",srcSetUrl=(site,file,imgUrlFunc=imageUrl)=>{const small=imgUrlFunc(site,file,480)+" 640w";const medium=imgUrlFunc(site,file,720)+" 1024w";const large=imgUrlFunc(site,file)+" 1256w";return`${small},${medium},${large}`});_export("signedImageUrl",signedImageUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0},size)=>apiPath(`/api/signed/webp(${size})/${appFileID}/${fileContentID}/${signed}/file.${size}.webp`));_export("signedUrl",signedUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0})=>apiPath(`/api/signed/download/${appFileID}/${fileContentID}/${signed}/file.dat`));_export("storeFileUrl",storeFileUrl=(rootFolderID,file,type="download",name=file.name)=>apiPath(`/api/store/file/${type}/${rootFolderID}/${file.appFileID}/${file.fileContentID}/${name}`))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/fileUrl");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql","@web-atoms/email-dom/dist/DomToString","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/date-time/dist/DateTime","../../../../common/events/CommonEvents","../../../../services/BusyProgress","../../../../services/email/EmailContentDownloader","./EngagementService","../../../commands/MailAppEvents","../../../../common/fileUrl"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Email,EmailRecipient,MailboxContactEmail,MailboxEmail,Sql,DomToString,XNode,AtomControl,AncestorEnumerator,descendentIterator,DateTime,CommonEvents,BusyProgress,EmailContentDownloader,EngagementService,MailAppEvents,fileUrl,renderMail,ConversationService;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){Email=_modelModel.Email;EmailRecipient=_modelModel.EmailRecipient;MailboxContactEmail=_modelModel.MailboxContactEmail;MailboxEmail=_modelModel.MailboxEmail},function(_commonSql){Sql=_commonSql.Sql},function(_webAtomsEmailDomDistDomToString){DomToString=_webAtomsEmailDomDistDomToString.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){AncestorEnumerator=_webAtomsCoreDistWebCoreAtomUI.AncestorEnumerator;descendentIterator=_webAtomsCoreDistWebCoreAtomUI.descendentIterator},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_servicesBusyProgress){BusyProgress=_servicesBusyProgress.default},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_EngagementService){EngagementService=_EngagementService.default},function(_commandsMailAppEvents){MailAppEvents=_commandsMailAppEvents.MailAppEvents},function(_commonFileUrl){fileUrl=_commonFileUrl.fileUrl}],execute:function(){_export("renderMail",renderMail=AtomControl.registerProperty("data-html","html",((c,e,value)=>{var _a,_b,_c,_d;if(!value){e.innerHTML="";return}const thread=value;const mail=thread.email;let html=mail.htmlBody;const msg=document.createElement("div");if(!html){html!==null&&html!==void 0?html:html=mail.textBody;for(const iterator of html.split("\n")){const p=document.createElement("p");p.appendChild(document.createTextNode(iterator));msg.appendChild(p)}e.appendChild(msg);return}msg.innerHTML=html;let firstVisibleElement=null;for(const node of descendentIterator(msg)){if(!firstVisibleElement&&node.nodeType===Node.TEXT_NODE){const{parentElement}=node;if(parentElement.tagName!=="STYLE"&&((_a=node.nodeValue)===null||_a===void 0?void 0:_a.trim())){firstVisibleElement||(firstVisibleElement=node.parentElement)}}if(node.nodeType!==Node.ELEMENT_NODE){continue}const iterator=node;let cid=iterator.getAttribute("data-content-id");if(cid){const a=(_b=mail.attachments)===null||_b===void 0?void 0:_b.find((x=>x.contentID===cid));if(a){iterator.setAttribute("src",a.url)}}if(/^(IMG|VIDEO)$/.test(iterator.tagName)){firstVisibleElement||(firstVisibleElement=iterator);const src=iterator.getAttribute("src");iterator.setAttribute("controls","true");iterator.setAttribute("crossorigin","anonymous");if(src){if(src.startsWith("cid:")){cid=src.substring(4);const a=(_c=mail.attachments)===null||_c===void 0?void 0:_c.find((x=>x.contentID===cid));if(a){iterator.setAttribute("src",fileUrl(a));a.included=true}}if(/^http\:\/\//i.test(src)){iterator.setAttribute("src",src.substring(5))}}continue}if(iterator.tagName==="A"){iterator.target="_blank"}}const container=document.createElement("div");const style=e.ownerDocument.createElement("style");style.textContent=`\n video,img {\n max-width: 100% !important;\n }\n\n div[msg] {\n overflow: visible;\n display: flex;\n flex-direction: column;\n word-break: break-word;\n }\n `;container.appendChild(style);msg.setAttribute("msg","msg");container.appendChild(msg);if(/img|video/i.test(firstVisibleElement===null||firstVisibleElement===void 0?void 0:firstVisibleElement.tagName)){const root=AncestorEnumerator.find(e,(x=>x.hasAttribute("data-msg-container")));(root!==null&&root!==void 0?root:e).setAttribute("has-poster","true")}if(!thread.timeRead&&thread.mailboxID&&thread.mailboxID!==((_d=thread.email)===null||_d===void 0?void 0:_d.senderID)){const timeRead=DateTime.now;thread.timeRead=timeRead;const control=AtomControl.from(e);const entityService=control.app.resolve(EntityService);entityService.save(MailboxContactEmail.patch(thread,{timeRead})).then((()=>{CommonEvents.onThreadMarkedAsRead.dispatchEvent(thread)}),console.error)}if(window.previewMode){e.appendChild(container);return}const shadow=e.attachShadow({mode:"open"});shadow.appendChild(container);setTimeout((()=>{if(msg.scrollWidth>msg.offsetWidth){msg.style.scale=msg.offsetWidth/msg.scrollWidth+"";msg.style.transformOrigin="top left"}}),100);return})));ConversationService=class ConversationService{closeAllThreads(contact){return __awaiter(this,void 0,void 0,(function*(){contact.dateUpdated=DateTime.now;contact.closeAllConversations=true;yield this.entityService.save(contact,(c=>c));contact.openThreads=0;MailAppEvents.mailboxContactUpdated.dispatchEvent(contact)}))}closePermanently(contact){return __awaiter(this,void 0,void 0,(function*(){contact.autoClose=!contact.autoClose;contact.dateUpdated=DateTime.now;yield this.entityService.save(contact,(c=>c));MailAppEvents.mailboxContactUpdated.dispatchEvent(contact)}))}getDraft({mailboxID,emailAddressID,email}){return __awaiter(this,void 0,void 0,(function*(){const draft="draft";return yield this.entityService.query(MailboxContactEmail).where({mailboxID,emailAddressID,draft},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===p.emailAddressID&&x.email.status===p.draft)).orderByDescending((x=>x.emailID)).include((x=>[x.email.recipients,x.email.attachments])).firstOrDefault()}))}draft(email,mailboxContacts,create=false,saveAttachments=true,cancelToken){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(email===null||email===void 0?void 0:email.emailID){email.subject||(email.subject="");email.dateUpdated=DateTime.now;let cloner=this.entityService.cloner(Object.assign({},email));if(saveAttachments){cloner=cloner.include((x=>x.attachments))}cloner=cloner.include((x=>x.mailboxes)).include((x=>x.recipients)).include((x=>x.threadContacts));yield this.entityService.save(cloner.copy);return email}if(create&&email){const recipients=(_a=email.recipients)!==null&&_a!==void 0?_a:email.recipients=[];const mailboxes=(_b=email.mailboxes)!==null&&_b!==void 0?_b:email.mailboxes=[];const threads=(_c=email.threadContacts)!==null&&_c!==void 0?_c:email.threadContacts=[];if(!email.senderID){throw new Error("SenderID is not set")}email.status="draft";for(const{mailboxID,emailAddressID}of mailboxContacts){if(!mailboxes.some((m=>m.mailboxID===mailboxID))){mailboxes.push(MailboxEmail.create({mailboxID}))}if(!recipients.some((r=>r.emailAddressID===emailAddressID))){recipients.push(EmailRecipient.create({emailAddressID}))}if(!threads.some((r=>r.mailboxID===mailboxID))){threads.push(MailboxContactEmail.create({mailboxID,emailAddressID}))}}yield this.entityService.save(email,(c=>c.include((x=>x.mailboxes)).include((x=>x.recipients)).include((x=>x.threadContacts))))}return email}))}list({searchItems=null,mailboxID,emailAddressID,start=0,size=100,version=0,cancelToken}){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxContactEmail).where({mailboxID,emailAddressID},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===p.emailAddressID&&x.engagement===null));if(searchItems){for(const{tag,text}of searchItems){if(tag){q=q.where({tag:tag.tagID},(p=>x=>x.email.emailTags.some((t=>t.tagID===p.tag))));continue}let search=text;if(!/\%/.test(search)){search=`%${search}%`}q=q.where({search},(p=>x=>Sql.text.iLike(x.email.subject,p.search)||Sql.text.iLike(x.email.textBody,p.search)||x.email.attachments.some((a=>Sql.text.iLike(a.fileContent.textDocument.searchable,p.search)))))}}const emails=yield q.include((x=>[x.email.recipients.forEach((r=>r.emailAddress)),x.email.attachments,x.email.senderUser,x.email.senderEmail])).orderByDescending((x=>x.dateReceived)).toPagedList({start,size,cancelToken});const tasks=[];const d=BusyProgress.create();try{for(const mce of emails.items){const{email}=mce;(_a=email.htmlBody)!==null&&_a!==void 0?_a:email.htmlBody="";(_b=email.textBody)!==null&&_b!==void 0?_b:email.textBody="";tasks.push(this.downloadEmailContent(mce));tasks.push(this.engagementService.downloadEngagements(email))}yield Promise.all(tasks)}finally{(_c=d===null||d===void 0?void 0:d.dispose)===null||_c===void 0?void 0:_c.call(d)}return emails}))}stopEmail(mce){return __awaiter(this,void 0,void 0,(function*(){const{email}=mce;email.status="draft";yield this.entityService.save(email,(c=>c));CommonEvents.onEmailUnscheduled.dispatchEvent(mce)}))}downloadEmailContent(mce){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const{email}=mce;if(email.replyCount){const children=yield this.entityService.query(Email).where({emailID:email.emailID},(p=>x=>x.emailID===p.emailID&&x.engagement!==null)).orderByDescending((x=>x.emailID)).toPagedList({start:0,size:4,cacheVersion:"a",cacheSeconds:900});email.children=(_a=children===null||children===void 0?void 0:children.items)!==null&&_a!==void 0?_a:[]}else{(_b=email.children)!==null&&_b!==void 0?_b:email.children=[]}yield this.emailContentDownloader.download(mce)}))}renderText(html){const div=document.createElement("div");div.innerHTML=html;return div.textContent}renderHtml(html){const div=document.createElement("div");div.innerHTML=html;return div.innerHTML}toHtml(textBody){return DomToString(XNode.create("div",null,...textBody.split("\n").map((p=>XNode.create("p",{text:p})))))}block(thread){return __awaiter(this,void 0,void 0,(function*(){thread.blocked=!thread.blocked;const cloner=this.entityService.cloner(thread).copy;yield this.entityService.save(cloner);CommonEvents.onThreadMarkedAsBlocked.dispatchEvent(thread)}))}delete(email){return __awaiter(this,void 0,void 0,(function*(){const{emailID,status}=email;yield this.entityService.delete(Email.create({emailID,status}));CommonEvents.onDraftDeleted.dispatchEvent(email)}))}};__decorate([Inject,__metadata("design:type",EntityService)],ConversationService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],ConversationService.prototype,"emailContentDownloader",void 0);__decorate([Inject,__metadata("design:type",EngagementService)],ConversationService.prototype,"engagementService",void 0);ConversationService=__decorate([DISingleton()],ConversationService);_export("default",ConversationService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/ConversationService");System.register(["@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var PopupControl,InlinePopupControl;_export("default",void 0);return{setters:[function(_webAtomsCoreDistWebServicesPopupService){PopupControl=_webAtomsCoreDistWebServicesPopupService.PopupControl}],execute:function(){_export("default",InlinePopupControl=class InlinePopupControl extends PopupControl{static showPopup(opener,popup,options={}){const c=class extends InlinePopupControl{create(){this.render(popup)}dispatchClickEvent(e,data){let start=this.element.parentElement;while(start){const{atomControl}=start;if(atomControl){atomControl.dispatchClickEvent(e,data);return}start=start.parentElement}super.dispatchClickEvent(e,data)}};options.popupStyle=".no-style";return c.showControl(opener,options)}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/InlinePopupControl");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode;function notSet(text){return()=>{alert(`Command ${text} not set`)}}function insert(callback,command){return(s,e)=>__awaiter(this,void 0,void 0,(function*(){let r=callback(s,e);if(typeof r!=="string"){if(r===null||r===void 0?void 0:r.then){r=yield r}}if(r){if(command){command.execute(s,false,r)}else{s.executeCommand("insertHTML",false,r)}}}))}function CommandButton({icon,label,eventInsertHtml,insertCommand,title,disabled}){disabled!==null&&disabled!==void 0?disabled:disabled=Bind.oneWay((x=>x.version?!insertCommand.canExecute(x):false));if(label){return XNode.create("button",{class:"command","data-layout":"toolbar-button",disabled,eventClick:Bind.event(insert(eventInsertHtml,insertCommand)),title},XNode.create("label",{class:"label"},XNode.create("i",{class:icon}),XNode.create("span",{text:label})))}return XNode.create("button",{"data-layout":"toolbar-button",title,class:"command",disabled,eventClick:Bind.event(insert(eventInsertHtml,insertCommand))},XNode.create("i",{class:icon}))}_export({notSet,default:CommandButton});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/CommandButton");System.register([],(function(_export,_context){"use strict";var HtmlCommands;function query(name){return{canExecute(e){return e.queryCommandState(name)},execute(e,showUI,value){return e.executeCommand(name,showUI,value)}}}_export("default",void 0);return{setters:[],execute:function(){_export("default",HtmlCommands=class HtmlCommands{});HtmlCommands.backColor=query("backColor");HtmlCommands.bold=query("bold");HtmlCommands.contentReadOnly=query("contentReadOnly");HtmlCommands.copy=query("copy");HtmlCommands.createLink=query("createLink");HtmlCommands.cut=query("cut");HtmlCommands.decreaseFontSize=query("decreaseFontSize");HtmlCommands.defaultParagraphSeparator=query("defaultParagraphSeparator");HtmlCommands.enableAbsolutePositionEditor=query("enableAbsolutePositionEditor");HtmlCommands.enableInlineTableEditing=query("enableInlineTableEditing");HtmlCommands.enableObjectResizing=query("enableObjectResizing");HtmlCommands.fontName=query("fontName");HtmlCommands.fontSize=query("fontSize");HtmlCommands.foreColor=query("foreColor");HtmlCommands.formatBlock=query("formatBlock");HtmlCommands.forwardDelete=query("forwardDelete");HtmlCommands.heading=query("heading");HtmlCommands.hiliteColor=query("hiliteColor");HtmlCommands.increaseFontSize=query("increaseFontSize");HtmlCommands.indent=query("indent");HtmlCommands.insertBrOnReturn=query("insertBrOnReturn");HtmlCommands.insertHorizontalRule=query("insertHorizontalRule");HtmlCommands.insertHTML=query("insertHTML");HtmlCommands.insertImage=query("insertImage");HtmlCommands.insertOrderedList=query("insertOrderedList");HtmlCommands.insertUnorderedList=query("insertUnorderedList");HtmlCommands.insertParagraph=query("insertParagraph");HtmlCommands.insertText=query("insertText");HtmlCommands.italic=query("italic");HtmlCommands.justifyCenter=query("justifyCenter");HtmlCommands.justifyFull=query("justifyFull");HtmlCommands.justifyLeft=query("justifyLeft");HtmlCommands.justifyRight=query("justifyRight");HtmlCommands.outdent=query("outdent");HtmlCommands.paste=query("paste");HtmlCommands.redo=query("redo");HtmlCommands.removeFormat=query("removeFormat");HtmlCommands.selectAll=query("selectAll");HtmlCommands.strikeThrough=query("strikeThrough");HtmlCommands.subscript=query("subscript");HtmlCommands.superscript=query("superscript");HtmlCommands.underline=query("underline");HtmlCommands.undo=query("undo");HtmlCommands.unlink=query("unlink");HtmlCommands.useCSS=query("useCSS");HtmlCommands.styleWithCSS=query("styleWithCSS");HtmlCommands.AutoUrlDetect=query("AutoUrlDetect");HtmlCommands.enabled={canExecute(e){return true},execute(){throw new Error("not supported")}}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/HtmlCommands");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/services/PopupService","../../basic/FormField","./CommandButton","./HtmlCommands"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,PopupService,PopupWindow,FormField,CommandButton,HtmlCommands,ImageDialog;function showImageDialog(s,e){return PopupService.showWindow(e.currentTarget,ImageDialog,{title:"Add Image"})}function AddImage({eventInsertHtml=(s,e)=>s.insertImage(s,e),insertCommand=HtmlCommands.insertImage}){return CommandButton({icon:"ri-image-add-fill",insertCommand,disabled:false,title:"Insert Image",eventInsertHtml})}_export({showImageDialog,default:AddImage});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(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default;PopupWindow=_webAtomsCoreDistWebServicesPopupService.PopupWindow},function(_basicFormField){FormField=_basicFormField.default},function(_CommandButton){CommandButton=_CommandButton.default},function(_HtmlCommands){HtmlCommands=_HtmlCommands.default}],execute:function(){ImageDialog=class ImageDialog extends PopupWindow{create(){this.link="";this.alt="";this.render(XNode.create("div",null,XNode.create(FormField,{label:"Url"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.link))})),XNode.create(FormField,{label:"Alt"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.alt))})),XNode.create("div",{class:"command-bar"},XNode.create("button",{eventClick:()=>this.close(this.createImage()),text:"Add"}))))}createImage(){if(this.alt){return`<img src="${this.link}" alt="${this.alt}" />`}return`<img src="${this.link}"/>`}};__decorate([BindableProperty,__metadata("design:type",String)],ImageDialog.prototype,"link",void 0);__decorate([BindableProperty,__metadata("design:type",String)],ImageDialog.prototype,"alt",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/AddImage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/types","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/data-styles/data-styles","./commands/AddImage","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,XNode,sleep,CancelToken,AtomControl,ChildEnumerator,descendentElementIterator,showImageDialog,styled,InlineHtmlEditor;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator;descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_webAtomsDataStylesDataStyles){},function(_commandsAddImage){showImageDialog=_commandsAddImage.showImageDialog},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1355
|
+
`.installLocal();_export("default",UserListPage=class UserListPage extends MasterDetailPage{constructor(){super(...arguments);this.users=[];this.version=0;this.external=false;this.selectedUser=null}init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.actionRenderer=()=>XNode.create("i",{"data-click-event":"add-user",class:"fas fa-plus"});this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{placeholder:"Search Users",value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.external)),text:"External"}));this.search="";this.renderer=XNode.create("div",null,XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table","data-layout":"data-grid",selectOnClick:true,"data-list-selection":"default","data-selection-updated-event":"user-selected","data-event-items-updated":"users-loaded",selectedItem:Bind.twoWaysImmediate((()=>this.selectedUser)),items:this.users},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({start,search:this.search,cancelToken,external:this.external,v:this.version}))),{itemRenderer:user=>XNode.create("div",null,XNode.create("label",null,user.userID),XNode.create("div",null,XNode.create("div",null,XNode.create("label",{text:user.userName}),XNode.create("label",{"data-font-size":"x-small",text:user.displayName}))),XNode.create("label",null,user.multiFactor?"2FA":"-"))}))))}))}usersLoaded(){if(this.selectedUser){if(this.users.includes(this.selectedUser)){return}this.selectedUser=this.users.find((x=>x.userID===this.selectedUser.userID));if(this.selectedUser){return}}this.selectedUser=this.users[0]}userSelected(){if(!this.selectedUser){return}this.openDetail(UserDetailsPage,this.selectedUser)}addDomain(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(EditUserPage,User.create({userName:"",displayName:"",changePassword:{forceChangePasswordOnLogin:true,newPassword:""}}));this.version++}))}userChangePassword(model){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(EditUserPage,model)}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserListPage.prototype,"userService",void 0);__decorate([Action({onEvent:"users-loaded",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],UserListPage.prototype,"usersLoaded",null);__decorate([Action({onEvent:"user-selected"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",void 0)],UserListPage.prototype,"userSelected",null);__decorate([Action({onEvent:"add-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],UserListPage.prototype,"addDomain",null);__decorate([Action({onEvent:"user-change-password"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],UserListPage.prototype,"userChangePassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/UserListPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","./services/AdminUserService","../../../common/controls/repeater/InfiniteRepeater","../../../common/controls/buttons/IconButton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InjectProperty,XNode,AtomRepeater,Bind,AdminUserService,InfiniteRepeater,SaveIconTextButton,ChooseUserPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_servicesAdminUserService){AdminUserService=_servicesAdminUserService.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton}],execute:function(){_export("default",ChooseUserPage=class ChooseUserPage extends PopupWindowPage{constructor(){super(...arguments);this.search="";this.users=[];this.selectedUser=null}init(){return __awaiter(this,void 0,void 0,(function*(){this.titleRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search)),placeholder:"Search User"}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({items:this.users,selectOnClick:true,"data-layout":"list",selectedItem:Bind.twoWaysImmediate((()=>this.selectedUser)),"data-list-selection":"default","data-selection-updated-event":"selection-updated"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({search:this.search,start,cancelToken}))),{itemRenderer:user=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:user.userName}))})));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row","style-display":Bind.oneWay((()=>!!this.selectedUser))},XNode.create(SaveIconTextButton,{"event-click":()=>this.close(this.selectedUser),text:"Select"}))}))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],ChooseUserPage.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/ChooseUserPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../controls/form/RequiredFormField","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/ComboBox","./services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../SocialMailApp","@web-atoms/web-controls/dist/basic/AtomRepeater","../../controls/buttons/IconButton","@web-atoms/web-controls/dist/PageNavigator","../../../admin/pages/users/ChooseUserPage","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,EmailAddress,Mailbox,UserMailbox,XNode,Form,TextFormField,FormField,ComboBox,MailboxService,InjectProperty,Bind,Action,SocialMailApp,AtomRepeater,AddIconTextButton,PageNavigator,ChooseUserPage,Checkbox,MailboxEditorPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){EmailAddress=_modelModel.EmailAddress;Mailbox=_modelModel.Mailbox;UserMailbox=_modelModel.UserMailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsFormRequiredFormField){TextFormField=_controlsFormRequiredFormField.TextFormField},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_servicesMailboxService){MailboxService=_servicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_SocialMailApp){SocialMailApp=_SocialMailApp.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_adminPagesUsersChooseUserPage){ChooseUserPage=_adminPagesUsersChooseUserPage.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",MailboxEditorPage=class MailboxEditorPage extends PopupWindowPage{init(){var _a,_b,_c,_d;var _e,_f;return __awaiter(this,void 0,void 0,(function*(){this.title="Add Hosted Mailbox";this.model=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.model)!==null&&_b!==void 0?_b:Mailbox.create({emailAddress:EmailAddress.create({emailAddress:""}),maxStorage:1*1024*1024*1024,userMailboxes:[]});if(this.parameters.domainID){this.model.domainID=this.parameters.domainID}(_c=(_e=this.model).isChannel)!==null&&_c!==void 0?_c:_e.isChannel=false;(_d=(_f=this.model).isPrivateChannel)!==null&&_d!==void 0?_d:_f.isPrivateChannel=false;this.model.username="";const domains=yield this.mailboxService.domains(true);this.model.name=SocialMailApp.user.displayName;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-mailbox"},XNode.create(TextFormField,{label:"Name",value:()=>this.model.name}),XNode.create(TextFormField,{label:"Email Prefix/Username",value:()=>this.model.username}),XNode.create(FormField,{label:"Domain"},XNode.create(ComboBox,{labelPath:item=>item===null||item===void 0?void 0:item.name,valuePath:item=>item===null||item===void 0?void 0:item.domainID,selectedItem:Bind.twoWaysImmediate((()=>this.model.domain)),value:Bind.twoWaysImmediate((()=>this.model.domainID)),items:domains})),XNode.create(FormField,{label:"Email Address"},XNode.create("span",{text:Bind.oneWay((()=>`${this.model.username}@${this.model.domain.name}`))})),XNode.create(FormField,{label:"Create Channel"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isChannel)),text:"Create a newsletter channel, which anyone with email can subscribe"})),XNode.create(FormField,{"style-display":Bind.oneWay((()=>this.model.isChannel)),label:"Private Channel"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isPrivateChannel)),text:"Make this channel private, only users with invitation can subscribe"})),XNode.create(FormField,{label:"Add Users who can access this mailbox"},XNode.create("div",null,XNode.create(AtomRepeater,{items:this.model.userMailboxes,"data-layout":"list",itemRenderer:item=>XNode.create("div",null,XNode.create("span",{text:item.user.userName}))}),XNode.create(AddIconTextButton,{"data-click-event":"add-user",text:"User"}))),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-type":"submit","data-layout":"accept-button",text:"Add"}))))}))}saveMailbox(){return __awaiter(this,void 0,void 0,(function*(){yield this.mailboxService.save(this.model);return this.model}))}addUser(){return __awaiter(this,void 0,void 0,(function*(){const user=yield PageNavigator.pushPageForResult(ChooseUserPage);this.model.userMailboxes.add(UserMailbox.create({user,userID:user.userID}))}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],MailboxEditorPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"save-mailbox",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxEditorPage.prototype,"saveMailbox",null);__decorate([Action({onEvent:"add-user"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxEditorPage.prototype,"addUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");System.register(["@web-atoms/core/dist/core/EventScope"],(function(_export,_context){"use strict";var EventScope,CommonEvents;return{setters:[function(_webAtomsCoreDistCoreEventScope){EventScope=_webAtomsCoreDistCoreEventScope.default}],execute:function(){_export("CommonEvents",CommonEvents={onThreadMarkedAsRead:EventScope.create(),onThreadMarkedAsBlocked:EventScope.create(),onDraftDeleted:EventScope.create(),onFileDeleted:EventScope.create(),onEmailScheduled:EventScope.create(),onEmailUnscheduled:EventScope.create()})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/events/CommonEvents");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql","../../../../common/events/CommonEvents","@web-atoms/core/dist/services/FetchBuilder","../../../../common/apiPath"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,AppFile,Mailbox,MailboxContact,UserPushSubscription,Sql,CommonEvents,FetchBuilder,apiPath,MailService;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;Mailbox=_modelModel.Mailbox;MailboxContact=_modelModel.MailboxContact;UserPushSubscription=_modelModel.UserPushSubscription},function(_commonSql){Sql=_commonSql.Sql},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){MailService=class MailService{mailbox(mailboxID){return __awaiter(this,void 0,void 0,(function*(){const mb=yield this.entityService.query(Mailbox).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID)).include((x=>[x.emailAddress,x.folders.forEach((t=>t.tag))])).firstOrDefault();const notify=yield this.entityService.query(UserPushSubscription).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===null)).firstOrDefault();mb.notify=!!notify;const index=x=>{switch(x.tag.name.toLocaleLowerCase()){case"contacts":return 1;case"new":return 2;case"spam":return 3;case"blocked":return 4}return 100};mb.folders.sort(((a,b)=>index(a)-index(b)));if(mb.folders.length){mb.folders[0].main=true}mb.folders.remove((x=>!x.main&&!x.count));return mb}))}list({search="",searchInMessages=false,mailboxID,conversationType="all",start=0,size=20,version=1,folderID=null,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxContact).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID));if(folderID){q=q.where({folderID},(p=>x=>x.folderTagID===p.folderID))}switch(conversationType){case"open":q=q.where((x=>x.openThreads!==0));break;case"closed":q=q.where((x=>x.openThreads===0));break}if(search){const likeSearch=`${search}%`;if(searchInMessages){q=q.where({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.iLike(x.lastEmail.textBody,p.likeSearch)||Sql.text.iLike(x.lastEmail.subject,p.likeSearch)||Sql.text.iLike(x.emailAddress.name,p.likeSearch)||Sql.text.iLike(x.lastEmail.senderName,p.likeSearch)));q=q.orderByDescending({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.iLike(x.emailAddress.name,p.likeSearch))).thenByDescending((x=>x.dateUpdated))}else{q=q.where({likeSearch},(p=>x=>x.emailAddress.names.some((n=>Sql.text.like(n.nameToken.word,p.likeSearch)))||Sql.text.like(x.emailAddress.domain.name,p.likeSearch))).orderByDescending((x=>x.dateUpdated))}}else{q=q.orderByDescending((x=>x.dateUpdated))}return q.include((x=>[x.emailAddress,x.lastEmail])).toPagedList({start,size,cancelToken})}))}raw(email){return __awaiter(this,void 0,void 0,(function*(){const{mimeFileID}=email;return FetchBuilder.get(apiPath(`/api/emails/logs/${mimeFileID}/${email.emailID}.eml`)).responseAsText()}))}send(email){return __awaiter(this,void 0,void 0,(function*(){const{textBody}=email;if(textBody&&!email.subject){const lines=textBody.split("\n");for(const line of lines){if(!line.trim()){continue}email.subject||(email.subject=line.trim().substring(0,80));break}}for(const iterator of email.recipients){if(iterator.emailAddressText){iterator.emailAddressText=iterator.emailAddressText.trim()}}yield this.entityService.save(email,(c=>c.include((x=>x.recipients)).include((x=>x.attachments))));CommonEvents.onEmailScheduled.dispatchEvent(email)}))}deleteAttachment(file){return __awaiter(this,void 0,void 0,(function*(){const{appFileID}=file;yield this.entityService.save(AppFile.create({$deleted:true,appFileID}));CommonEvents.onFileDeleted.dispatchEvent(file)}))}};__decorate([Inject,__metadata("design:type",EntityService)],MailService.prototype,"entityService",void 0);MailService=__decorate([DISingleton()],MailService);_export("default",MailService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/MailService");System.register([],(function(_export,_context){"use strict";function newCSSStyleDeclaration(){const e=document.createElement("div");return e.style}function mergeStyle(...styles){var _a,_b;const s=newCSSStyleDeclaration();for(const iterator of styles){if(!iterator){continue}if(iterator instanceof CSSStyleDeclaration){for(let index=0;index<iterator.length;index++){const name=iterator[index];let value=(_a=iterator[name])===null||_a===void 0?void 0:_a.toString();if(value===void 0||value===null||value===""){continue}s[name]=value}continue}for(const key in iterator){if(Object.prototype.hasOwnProperty.call(iterator,key)){const element=(_b=iterator[key])===null||_b===void 0?void 0:_b.toString();if(!element){continue}s[key]=element}}}return s}_export({newCSSStyleDeclaration,default:mergeStyle});return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/email-dom/dist/style/mergeStyle");System.register(["../style/mergeStyle"],(function(_export,_context){"use strict";var newCSSStyleDeclaration,StyleHelper,toStyle;_export("default",void 0);return{setters:[function(_styleMergeStyle){newCSSStyleDeclaration=_styleMergeStyle.newCSSStyleDeclaration}],execute:function(){toStyle=style=>{var _a;if(typeof style==="string"){const css=style;const cs=newCSSStyleDeclaration();cs.cssText=css;return cs}const s=newCSSStyleDeclaration();if(style instanceof CSSStyleDeclaration){return style}for(const key in style){if(Object.prototype.hasOwnProperty.call(style,key)){const element=(_a=style[key])===null||_a===void 0?void 0:_a.toString();if(element===void 0||element===null||element===""){continue}s[key]=element}}return s};_export("default",StyleHelper=class StyleHelper{static styleToString(style,props){var _a;if(!style){return}const cs=toStyle(style);if(props){const ps=toStyle(props);for(let index=0;index<ps.length;index++){const key=ps[index];let value=(_a=ps[key])===null||_a===void 0?void 0:_a.toString();if(value===void 0||value===null||value===""){continue}cs[key]=value}}const allKeys=[];for(let index=0;index<cs.length;index++){const key=cs[index];allKeys.push(key)}for(const key of allKeys){if(!cs[key]){cs.removeProperty(key)}}return cs.cssText}})}}}));AmdLoader.instance.setup("@web-atoms/email-dom/dist/dom/StyleHelper");System.register(["@web-atoms/core/dist/core/XNode","./dom/StyleHelper"],(function(_export,_context){"use strict";var XNode,StyleHelper;function DomToString(node){const div=document.createElement("div");DomToElement(div,XNode.create("div",null,node));return div.innerHTML}function DomToElement(div,node){var _a;while(typeof node.name==="function"){node=node.name(node.attributes,...node.children)}const a=node.attributes;if(a){for(const key in a){if(Object.prototype.hasOwnProperty.call(a,key)){let element=a[key];if(element===null||element===void 0){continue}if(typeof element==="object"&&key==="style"){element=StyleHelper.styleToString(element)}else{element=element.toString()}if(!element){continue}switch(key){case"text":div.textContent=element;continue;case"innerHTML":div.innerHTML=element;continue}if(key.startsWith("styler-")){div.setAttribute(key,element);continue}if(key.startsWith("style")&&key.length>5){div.style[key.substring(5)]=element;continue}if(key.startsWith("data")&&key.length>4){if(key.indexOf("-")!==-1){div.setAttribute(key,element);continue}div.dataset[key.substring(4)]=element;continue}div.setAttribute(key,element)}}}if(!((_a=node.children)===null||_a===void 0?void 0:_a.length)){return}for(let iterator of node.children){if(iterator===false||iterator===void 0||iterator===null){continue}if(typeof iterator!=="object"){div.appendChild(document.createTextNode(iterator.toString()));continue}while(typeof iterator.name==="function"){iterator=iterator.name(iterator.attributes,...iterator.children)}const child=document.createElement(iterator.name);div.appendChild(child);DomToElement(child,iterator)}}_export({default:DomToString,DomToElement});return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_domStyleHelper){StyleHelper=_domStyleHelper.default}],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/email-dom/dist/DomToString");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/entity/dist/models/TaskManager","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,__decorate,DISingleton,TaskManager,FetchBuilder,EmailContentDownloader;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_webAtomsEntityDistModelsTaskManager){TaskManager=_webAtomsEntityDistModelsTaskManager.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){EmailContentDownloader=class EmailContentDownloader extends TaskManager{download(mce){return this.downloadFromUrl(mce.htmlBodyUrl,mce.email)}downloadFromUrl(url,email){return __awaiter(this,void 0,void 0,(function*(){if(!window.caches){const text=yield FetchBuilder.get(url).responseAsText();return email.htmlBody=text}const cache=yield window.caches.open("email-content-cache");const cacheKey=new URL(url,location.href);const content=yield cache.match(cacheKey);if(content){return email.htmlBody=yield content.text()}return yield this.run((()=>__awaiter(this,void 0,void 0,(function*(){for(let i=0;i<3;i++){try{const text=yield FetchBuilder.get(url).responseAsText();yield cache.put(cacheKey,new Response(text,{headers:{"cache-control":"public, max-age=86000"}}));return email.htmlBody=text}catch(error){console.error(error)}}}))))}))}};EmailContentDownloader=__decorate([DISingleton({})],EmailContentDownloader);_export("default",EmailContentDownloader)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email/EmailContentDownloader");System.register([],(function(_export,_context){"use strict";var CacheTTL;return{setters:[],execute:function(){_export("CacheTTL",CacheTTL={seconds:{oneHour:60*60,oneDay:60*60*24,oneMonth:60*60*24*30,fifteenMinutes:15*60}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");System.register(["tslib","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/cache/CacheTTL","@web-atoms/date-time/dist/DateTime","../../../../services/email/EmailContentDownloader","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Inject,EntityService,Email,EmailEngagement,CacheTTL,DateTime,EmailContentDownloader,DISingleton,cacheSeconds,EngagementService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Email=_modelModel.Email;EmailEngagement=_modelModel.EmailEngagement},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cacheSeconds=CacheTTL.seconds.oneMonth;EngagementService=class EngagementService{downloadEngagements(email){return __awaiter(this,void 0,void 0,(function*(){try{const{emailID}=email;let now=DateTime.now;const minute=Math.floor(now.minute/5);now=now.addMinutes(-minute);const cacheVersion=email.dateUpdated?DateTime.from(email.dateUpdated).msSinceEpoch.toString(36):"-";email.engagements=yield this.entityService.query(EmailEngagement).where({emailID},(p=>x=>x.emailID===p.emailID)).toArray({cacheVersion,cacheSeconds:300})}catch(error){console.error(error)}}))}list({start=0,size=50,engagement="",emailID=0,mailboxID=0,emailAddressID=0,dateUpdated=null}){return __awaiter(this,void 0,void 0,(function*(){const q=this.entityService.query(Email).where({mailboxID,emailAddressID,engagement,emailID},(p=>x=>x.engagement===p.engagement&&x.parentID===p.emailID));const cacheVersion=dateUpdated?DateTime.from(dateUpdated).msSinceEpoch.toString(36):"-";const list=yield q.toPagedList({start,size,cacheVersion,cacheSeconds});return list}))}};__decorate([Inject,__metadata("design:type",EntityService)],EngagementService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],EngagementService.prototype,"emailContentDownloader",void 0);EngagementService=__decorate([DISingleton()],EngagementService);_export("default",EngagementService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/EngagementService");System.register(["@web-atoms/core/dist/core/EventScope"],(function(_export,_context){"use strict";var EventScope,MailAppEvents;return{setters:[function(_webAtomsCoreDistCoreEventScope){EventScope=_webAtomsCoreDistCoreEventScope.default}],execute:function(){_export("MailAppEvents",MailAppEvents={mailboxContactUpdated:EventScope.create()})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/MailAppEvents");System.register(["./apiPath"],(function(_export,_context){"use strict";var apiPath,viewFileUrl,fileUrl,imageUrl,srcSetUrl,signedImageUrl,signedUrl,storeFileUrl;return{setters:[function(_apiPath){apiPath=_apiPath.apiPath}],execute:function(){_export("viewFileUrl",viewFileUrl=(site,file)=>apiPath(`/api/site/asset/view/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${file.name}`));_export("fileUrl",fileUrl=(file,{action="download",args=void 0,fileName="",ext=""}={})=>{let name=encodeURIComponent(file.name);if(args){if(Array.isArray(args)){args=args.join(",")}ext="."+args+ext;action=action+"("+args+")"}if(ext){fileName=name+ext}if(fileName){name+="/"+fileName}const{emailID,appFileID,fileContentID}=file;if(emailID){return apiPath(`/api/emails/attachment/${action}/${emailID}/${appFileID}/${name}/`)}return apiPath(`/api/files/${action}/${appFileID}/${fileContentID}/${name}`)});fileUrl.webp=(file,size=300)=>fileUrl(file,{action:"webp",args:size,ext:".webp"});fileUrl.webm=file=>fileUrl(file,{action:"webm",ext:".webm"});fileUrl.pdf=file=>fileUrl(file,{action:"pdf",ext:".pdf"});fileUrl.html=file=>fileUrl(file,{action:"html",ext:".html"});_export("imageUrl",imageUrl=(site,file,size)=>{const name=encodeURIComponent(file.name);if(!size){return apiPath(`/api/site/asset/webp/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.webp`)}return apiPath(`/api/site/asset/webp(${size})/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.${size}.webp`)});_export("srcSetUrl",srcSetUrl=(site,file,imgUrlFunc=imageUrl)=>{const small=imgUrlFunc(site,file,480)+" 640w";const medium=imgUrlFunc(site,file,720)+" 1024w";const large=imgUrlFunc(site,file)+" 1256w";return`${small},${medium},${large}`});_export("signedImageUrl",signedImageUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0},size)=>apiPath(`/api/signed/webp(${size})/${appFileID}/${fileContentID}/${signed}/file.${size}.webp`));_export("signedUrl",signedUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0})=>apiPath(`/api/signed/download/${appFileID}/${fileContentID}/${signed}/file.dat`));_export("storeFileUrl",storeFileUrl=(rootFolderID,file,type="download",name=file.name)=>apiPath(`/api/store/file/${type}/${rootFolderID}/${file.appFileID}/${file.fileContentID}/${name}`))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/fileUrl");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql","@web-atoms/email-dom/dist/DomToString","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/date-time/dist/DateTime","../../../../common/events/CommonEvents","../../../../services/BusyProgress","../../../../services/email/EmailContentDownloader","./EngagementService","../../../commands/MailAppEvents","../../../../common/fileUrl"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Email,EmailRecipient,MailboxContactEmail,MailboxEmail,Sql,DomToString,XNode,AtomControl,AncestorEnumerator,descendentIterator,DateTime,CommonEvents,BusyProgress,EmailContentDownloader,EngagementService,MailAppEvents,fileUrl,renderMail,ConversationService;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){Email=_modelModel.Email;EmailRecipient=_modelModel.EmailRecipient;MailboxContactEmail=_modelModel.MailboxContactEmail;MailboxEmail=_modelModel.MailboxEmail},function(_commonSql){Sql=_commonSql.Sql},function(_webAtomsEmailDomDistDomToString){DomToString=_webAtomsEmailDomDistDomToString.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){AncestorEnumerator=_webAtomsCoreDistWebCoreAtomUI.AncestorEnumerator;descendentIterator=_webAtomsCoreDistWebCoreAtomUI.descendentIterator},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_servicesBusyProgress){BusyProgress=_servicesBusyProgress.default},function(_servicesEmailEmailContentDownloader){EmailContentDownloader=_servicesEmailEmailContentDownloader.default},function(_EngagementService){EngagementService=_EngagementService.default},function(_commandsMailAppEvents){MailAppEvents=_commandsMailAppEvents.MailAppEvents},function(_commonFileUrl){fileUrl=_commonFileUrl.fileUrl}],execute:function(){_export("renderMail",renderMail=AtomControl.registerProperty("data-html","html",((c,e,value)=>{var _a,_b,_c,_d;if(!value){e.innerHTML="";return}const thread=value;const mail=thread.email;let html=mail.htmlBody;const msg=document.createElement("div");if(!html){html!==null&&html!==void 0?html:html=mail.textBody;for(const iterator of html.split("\n")){const p=document.createElement("p");p.appendChild(document.createTextNode(iterator));msg.appendChild(p)}e.appendChild(msg);return}msg.innerHTML=html;let firstVisibleElement=null;for(const node of descendentIterator(msg)){if(!firstVisibleElement&&node.nodeType===Node.TEXT_NODE){const{parentElement}=node;if(parentElement.tagName!=="STYLE"&&((_a=node.nodeValue)===null||_a===void 0?void 0:_a.trim())){firstVisibleElement||(firstVisibleElement=node.parentElement)}}if(node.nodeType!==Node.ELEMENT_NODE){continue}const iterator=node;let cid=iterator.getAttribute("data-content-id");if(cid){const a=(_b=mail.attachments)===null||_b===void 0?void 0:_b.find((x=>x.contentID===cid));if(a){iterator.setAttribute("src",a.url)}}if(/^(IMG|VIDEO)$/.test(iterator.tagName)){firstVisibleElement||(firstVisibleElement=iterator);const src=iterator.getAttribute("src");iterator.setAttribute("controls","true");iterator.setAttribute("crossorigin","anonymous");if(src){if(src.startsWith("cid:")){cid=src.substring(4);const a=(_c=mail.attachments)===null||_c===void 0?void 0:_c.find((x=>x.contentID===cid));if(a){iterator.setAttribute("src",fileUrl(a));a.included=true}}if(/^http\:\/\//i.test(src)){iterator.setAttribute("src",src.substring(5))}}continue}if(iterator.tagName==="A"){iterator.target="_blank"}}const container=document.createElement("div");const style=e.ownerDocument.createElement("style");style.textContent=`\n video,img {\n max-width: 100% !important;\n }\n\n div[msg] {\n overflow: visible;\n display: flex;\n flex-direction: column;\n word-break: break-word;\n }\n `;container.appendChild(style);msg.setAttribute("msg","msg");container.appendChild(msg);if(/img|video/i.test(firstVisibleElement===null||firstVisibleElement===void 0?void 0:firstVisibleElement.tagName)){const root=AncestorEnumerator.find(e,(x=>x.hasAttribute("data-msg-container")));(root!==null&&root!==void 0?root:e).setAttribute("has-poster","true")}if(!thread.timeRead&&thread.mailboxID&&thread.mailboxID!==((_d=thread.email)===null||_d===void 0?void 0:_d.senderID)){const timeRead=DateTime.now;thread.timeRead=timeRead;const control=AtomControl.from(e);const entityService=control.app.resolve(EntityService);entityService.save(MailboxContactEmail.patch(thread,{timeRead})).then((()=>{CommonEvents.onThreadMarkedAsRead.dispatchEvent(thread)}),console.error)}if(window.previewMode){e.appendChild(container);return}const shadow=e.attachShadow({mode:"open"});shadow.appendChild(container);setTimeout((()=>{if(msg.scrollWidth>msg.offsetWidth){msg.style.scale=msg.offsetWidth/msg.scrollWidth+"";msg.style.transformOrigin="top left"}}),100);return})));ConversationService=class ConversationService{closeAllThreads(contact){return __awaiter(this,void 0,void 0,(function*(){contact.dateUpdated=DateTime.now;contact.closeAllConversations=true;yield this.entityService.save(contact,(c=>c));contact.openThreads=0;MailAppEvents.mailboxContactUpdated.dispatchEvent(contact)}))}closePermanently(contact){return __awaiter(this,void 0,void 0,(function*(){contact.autoClose=!contact.autoClose;contact.dateUpdated=DateTime.now;yield this.entityService.save(contact,(c=>c));MailAppEvents.mailboxContactUpdated.dispatchEvent(contact)}))}getDraft({mailboxID,emailAddressID,email}){return __awaiter(this,void 0,void 0,(function*(){const draft="draft";return yield this.entityService.query(MailboxContactEmail).where({mailboxID,emailAddressID,draft},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===p.emailAddressID&&x.email.status===p.draft)).orderByDescending((x=>x.emailID)).include((x=>[x.email.recipients,x.email.attachments])).firstOrDefault()}))}draft(email,mailboxContacts,create=false,saveAttachments=true,cancelToken){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(email===null||email===void 0?void 0:email.emailID){email.subject||(email.subject="");email.dateUpdated=DateTime.now;let cloner=this.entityService.cloner(Object.assign({},email));if(saveAttachments){cloner=cloner.include((x=>x.attachments))}cloner=cloner.include((x=>x.mailboxes)).include((x=>x.recipients)).include((x=>x.threadContacts));yield this.entityService.save(cloner.copy);return email}if(create&&email){const recipients=(_a=email.recipients)!==null&&_a!==void 0?_a:email.recipients=[];const mailboxes=(_b=email.mailboxes)!==null&&_b!==void 0?_b:email.mailboxes=[];const threads=(_c=email.threadContacts)!==null&&_c!==void 0?_c:email.threadContacts=[];if(!email.senderID){throw new Error("SenderID is not set")}email.status="draft";for(const{mailboxID,emailAddressID}of mailboxContacts){if(!mailboxes.some((m=>m.mailboxID===mailboxID))){mailboxes.push(MailboxEmail.create({mailboxID}))}if(!recipients.some((r=>r.emailAddressID===emailAddressID))){recipients.push(EmailRecipient.create({emailAddressID}))}if(!threads.some((r=>r.mailboxID===mailboxID))){threads.push(MailboxContactEmail.create({mailboxID,emailAddressID}))}}yield this.entityService.save(email,(c=>c.include((x=>x.mailboxes)).include((x=>x.recipients)).include((x=>x.threadContacts))))}return email}))}list({searchItems=null,mailboxID,emailAddressID,start=0,size=100,version=0,cancelToken}){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxContactEmail).where({mailboxID,emailAddressID},(p=>x=>x.mailboxID===p.mailboxID&&x.emailAddressID===p.emailAddressID&&x.engagement===null));if(searchItems){for(const{tag,text}of searchItems){if(tag){q=q.where({tag:tag.tagID},(p=>x=>x.email.emailTags.some((t=>t.tagID===p.tag))));continue}let search=text;if(!/\%/.test(search)){search=`%${search}%`}q=q.where({search},(p=>x=>Sql.text.iLike(x.email.subject,p.search)||Sql.text.iLike(x.email.textBody,p.search)||x.email.attachments.some((a=>Sql.text.iLike(a.fileContent.textDocument.searchable,p.search)))))}}const emails=yield q.include((x=>[x.email.recipients.forEach((r=>r.emailAddress)),x.email.attachments,x.email.senderUser,x.email.senderEmail])).orderByDescending((x=>x.dateReceived)).toPagedList({start,size,cancelToken});const tasks=[];const d=BusyProgress.create();try{for(const mce of emails.items){const{email}=mce;(_a=email.htmlBody)!==null&&_a!==void 0?_a:email.htmlBody="";(_b=email.textBody)!==null&&_b!==void 0?_b:email.textBody="";tasks.push(this.downloadEmailContent(mce));tasks.push(this.engagementService.downloadEngagements(email))}yield Promise.all(tasks)}finally{(_c=d===null||d===void 0?void 0:d.dispose)===null||_c===void 0?void 0:_c.call(d)}return emails}))}stopEmail(mce){return __awaiter(this,void 0,void 0,(function*(){const{email}=mce;email.status="draft";yield this.entityService.save(email,(c=>c));CommonEvents.onEmailUnscheduled.dispatchEvent(mce)}))}downloadEmailContent(mce){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const{email}=mce;if(email.replyCount){const children=yield this.entityService.query(Email).where({emailID:email.emailID},(p=>x=>x.emailID===p.emailID&&x.engagement!==null)).orderByDescending((x=>x.emailID)).toPagedList({start:0,size:4,cacheVersion:"a",cacheSeconds:900});email.children=(_a=children===null||children===void 0?void 0:children.items)!==null&&_a!==void 0?_a:[]}else{(_b=email.children)!==null&&_b!==void 0?_b:email.children=[]}yield this.emailContentDownloader.download(mce)}))}renderText(html){const div=document.createElement("div");div.innerHTML=html;return div.textContent}renderHtml(html){const div=document.createElement("div");div.innerHTML=html;return div.innerHTML}toHtml(textBody){return DomToString(XNode.create("div",null,...textBody.split("\n").map((p=>XNode.create("p",{text:p})))))}block(thread){return __awaiter(this,void 0,void 0,(function*(){thread.blocked=!thread.blocked;const cloner=this.entityService.cloner(thread).copy;yield this.entityService.save(cloner);CommonEvents.onThreadMarkedAsBlocked.dispatchEvent(thread)}))}delete(email){return __awaiter(this,void 0,void 0,(function*(){const{emailID,status}=email;yield this.entityService.delete(Email.create({emailID,status}));CommonEvents.onDraftDeleted.dispatchEvent(email)}))}};__decorate([Inject,__metadata("design:type",EntityService)],ConversationService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",EmailContentDownloader)],ConversationService.prototype,"emailContentDownloader",void 0);__decorate([Inject,__metadata("design:type",EngagementService)],ConversationService.prototype,"engagementService",void 0);ConversationService=__decorate([DISingleton()],ConversationService);_export("default",ConversationService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/service/ConversationService");System.register(["@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var PopupControl,InlinePopupControl;_export("default",void 0);return{setters:[function(_webAtomsCoreDistWebServicesPopupService){PopupControl=_webAtomsCoreDistWebServicesPopupService.PopupControl}],execute:function(){_export("default",InlinePopupControl=class InlinePopupControl extends PopupControl{static showPopup(opener,popup,options={}){const c=class extends InlinePopupControl{create(){this.render(popup)}dispatchClickEvent(e,data){let start=this.element.parentElement;while(start){const{atomControl}=start;if(atomControl){atomControl.dispatchClickEvent(e,data);return}start=start.parentElement}super.dispatchClickEvent(e,data)}};options.popupStyle=".no-style";return c.showControl(opener,options)}})}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/InlinePopupControl");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode;function notSet(text){return()=>{alert(`Command ${text} not set`)}}function insert(callback,command){return(s,e)=>__awaiter(this,void 0,void 0,(function*(){let r=callback(s,e);if(typeof r!=="string"){if(r===null||r===void 0?void 0:r.then){r=yield r}}if(r){if(command){command.execute(s,false,r)}else{s.executeCommand("insertHTML",false,r)}}}))}function CommandButton({icon,label,eventInsertHtml,insertCommand,title,disabled}){disabled!==null&&disabled!==void 0?disabled:disabled=Bind.oneWay((x=>x.version?!insertCommand.canExecute(x):false));if(label){return XNode.create("button",{class:"command","data-layout":"toolbar-button",disabled,eventClick:Bind.event(insert(eventInsertHtml,insertCommand)),title},XNode.create("label",{class:"label"},XNode.create("i",{class:icon}),XNode.create("span",{text:label})))}return XNode.create("button",{"data-layout":"toolbar-button",title,class:"command",disabled,eventClick:Bind.event(insert(eventInsertHtml,insertCommand))},XNode.create("i",{class:icon}))}_export({notSet,default:CommandButton});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/CommandButton");System.register([],(function(_export,_context){"use strict";var HtmlCommands;function query(name){return{canExecute(e){return e.queryCommandState(name)},execute(e,showUI,value){return e.executeCommand(name,showUI,value)}}}_export("default",void 0);return{setters:[],execute:function(){_export("default",HtmlCommands=class HtmlCommands{});HtmlCommands.backColor=query("backColor");HtmlCommands.bold=query("bold");HtmlCommands.contentReadOnly=query("contentReadOnly");HtmlCommands.copy=query("copy");HtmlCommands.createLink=query("createLink");HtmlCommands.cut=query("cut");HtmlCommands.decreaseFontSize=query("decreaseFontSize");HtmlCommands.defaultParagraphSeparator=query("defaultParagraphSeparator");HtmlCommands.enableAbsolutePositionEditor=query("enableAbsolutePositionEditor");HtmlCommands.enableInlineTableEditing=query("enableInlineTableEditing");HtmlCommands.enableObjectResizing=query("enableObjectResizing");HtmlCommands.fontName=query("fontName");HtmlCommands.fontSize=query("fontSize");HtmlCommands.foreColor=query("foreColor");HtmlCommands.formatBlock=query("formatBlock");HtmlCommands.forwardDelete=query("forwardDelete");HtmlCommands.heading=query("heading");HtmlCommands.hiliteColor=query("hiliteColor");HtmlCommands.increaseFontSize=query("increaseFontSize");HtmlCommands.indent=query("indent");HtmlCommands.insertBrOnReturn=query("insertBrOnReturn");HtmlCommands.insertHorizontalRule=query("insertHorizontalRule");HtmlCommands.insertHTML=query("insertHTML");HtmlCommands.insertImage=query("insertImage");HtmlCommands.insertOrderedList=query("insertOrderedList");HtmlCommands.insertUnorderedList=query("insertUnorderedList");HtmlCommands.insertParagraph=query("insertParagraph");HtmlCommands.insertText=query("insertText");HtmlCommands.italic=query("italic");HtmlCommands.justifyCenter=query("justifyCenter");HtmlCommands.justifyFull=query("justifyFull");HtmlCommands.justifyLeft=query("justifyLeft");HtmlCommands.justifyRight=query("justifyRight");HtmlCommands.outdent=query("outdent");HtmlCommands.paste=query("paste");HtmlCommands.redo=query("redo");HtmlCommands.removeFormat=query("removeFormat");HtmlCommands.selectAll=query("selectAll");HtmlCommands.strikeThrough=query("strikeThrough");HtmlCommands.subscript=query("subscript");HtmlCommands.superscript=query("superscript");HtmlCommands.underline=query("underline");HtmlCommands.undo=query("undo");HtmlCommands.unlink=query("unlink");HtmlCommands.useCSS=query("useCSS");HtmlCommands.styleWithCSS=query("styleWithCSS");HtmlCommands.AutoUrlDetect=query("AutoUrlDetect");HtmlCommands.enabled={canExecute(e){return true},execute(){throw new Error("not supported")}}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/HtmlCommands");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/services/PopupService","../../basic/FormField","./CommandButton","./HtmlCommands"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,PopupService,PopupWindow,FormField,CommandButton,HtmlCommands,ImageDialog;function showImageDialog(s,e){return PopupService.showWindow(e.currentTarget,ImageDialog,{title:"Add Image"})}function AddImage({eventInsertHtml=(s,e)=>s.insertImage(s,e),insertCommand=HtmlCommands.insertImage}){return CommandButton({icon:"ri-image-add-fill",insertCommand,disabled:false,title:"Insert Image",eventInsertHtml})}_export({showImageDialog,default:AddImage});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(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default;PopupWindow=_webAtomsCoreDistWebServicesPopupService.PopupWindow},function(_basicFormField){FormField=_basicFormField.default},function(_CommandButton){CommandButton=_CommandButton.default},function(_HtmlCommands){HtmlCommands=_HtmlCommands.default}],execute:function(){ImageDialog=class ImageDialog extends PopupWindow{create(){this.link="";this.alt="";this.render(XNode.create("div",null,XNode.create(FormField,{label:"Url"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.link))})),XNode.create(FormField,{label:"Alt"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.alt))})),XNode.create("div",{class:"command-bar"},XNode.create("button",{eventClick:()=>this.close(this.createImage()),text:"Add"}))))}createImage(){if(this.alt){return`<img src="${this.link}" alt="${this.alt}" />`}return`<img src="${this.link}"/>`}};__decorate([BindableProperty,__metadata("design:type",String)],ImageDialog.prototype,"link",void 0);__decorate([BindableProperty,__metadata("design:type",String)],ImageDialog.prototype,"alt",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/AddImage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/sleep","@web-atoms/core/dist/core/types","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/data-styles/data-styles","./commands/AddImage","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,XNode,sleep,CancelToken,AtomControl,ChildEnumerator,descendentElementIterator,showImageDialog,styled,InlineHtmlEditor;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebCoreAtomUI){ChildEnumerator=_webAtomsCoreDistWebCoreAtomUI.ChildEnumerator;descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_webAtomsDataStylesDataStyles){},function(_commandsAddImage){showImageDialog=_commandsAddImage.showImageDialog},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
1356
1356
|
|
|
1357
1357
|
display: grid;
|
|
1358
1358
|
grid-template-rows: auto 1fr;
|
|
@@ -1483,7 +1483,7 @@ html, body {
|
|
|
1483
1483
|
min-height: 500px;
|
|
1484
1484
|
min-width: 700px;
|
|
1485
1485
|
}
|
|
1486
|
-
`.installLocal()}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/Source");System.register(["tslib","@web-atoms/core/dist/App","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var __rest,App,Command,StringHelper,AtomControl,PopupService,UploadEvent,acceptCache,isFileType,previousFile,uploadCommand,requestUpload,id;_export("default",void 0);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default}],execute:function(){acceptCache={};_export("isFileType",isFileType=acceptType=>{var _a;function isFileTypeFactory(accept){if(!accept||accept==="*/*"){return()=>true}const types=accept.split(/\,/g).map((x=>{x=x.trim();if(x.startsWith(".")){return file=>file.name.endsWith(x)}if(x.endsWith("/*")){const prefix=x.substring(0,x.length-1);return file=>file.type.startsWith(prefix)}return file=>file.type===x}));return file=>{for(const iterator of types){if(iterator(file)){return true}}return false}}return(_a=acceptCache[acceptType])!==null&&_a!==void 0?_a:acceptCache[acceptType]=isFileTypeFactory(acceptType)});uploadCommand=Command.create({name:"upload-command"});requestUpload=({element,multiple,authorize,extra,convert,upload,folder,uploadEvent})=>{if(authorize){if(!App.authorize()){return}}const chain=[];let start=element;while(start){chain.push(start);start=start.parentElement}previousFile===null||previousFile===void 0?void 0:previousFile.remove();const file=document.createElement("input");file.type="file";file.multiple=multiple;if(folder){file.webkitdirectory=folder}const accept=element.getAttribute("data-accept")||"*/*";file.accept=accept;const capture=element.getAttribute("data-capture");if(capture){file.capture=capture}file.style.position="absolute";file.style.left="-1000px";file.style.top="-1000px";document.body.append(file);previousFile=file;const maxSize=parseInt(element.getAttribute("data-max-size")||"0",10);const forceType=element.getAttribute("data-force-type")==="true";file.addEventListener("change",(()=>{let files=Array.from(file.files);let msg="";if(forceType||maxSize){const validated=[];const checkFileType=isFileType(accept);for(const iterator of files){if(!convert&&maxSize&&iterator.size>maxSize){msg+=`Size of ${iterator.name} is more than ${maxSize}`;continue}if(forceType){if(!checkFileType(iterator)){msg+=`${iterator.name} is invalid file.`;continue}}validated.push(iterator)}files=validated}file.remove();previousFile=null;chain.reverse();while(chain.length){const root=chain.pop();if(root.isConnected){const control=AtomControl.from(root);if(msg){control.app.runAsync((()=>PopupService.alert({message:msg})));if(files.length===0){return}}if(upload){const doUploadEvent=new CustomEvent("uploadRequested",{detail:{files,extra,convert,maxSize,uploadEvent},bubbles:true,cancelable:true});root.dispatchEvent(doUploadEvent);if(doUploadEvent.defaultPrevented){return}}root.dispatchEvent(new CustomEvent(uploadEvent,{detail:{files,extra},bubbles:true}));break}}}));setTimeout((()=>{file.dispatchEvent(new MouseEvent("click"))}))};window.addEventListener(uploadCommand.eventName,(ce=>{var _a;if(ce.defaultPrevented){return}const element=ce.target;const authorize=element.getAttribute("data-authorize")==="true";const multiple=element.getAttribute("data-multiple")==="true";const extra=(_a=element.extra)!==null&&_a!==void 0?_a:element.getAttribute("data-extra");const upload=element.getAttribute("data-upload")==="true";const folder=element.hasAttribute("data-folder");const convert=element.getAttribute("data-convert")==="true";const uploadEvent=StringHelper.fromHyphenToCamel(element.getAttribute("data-upload-event"));requestUpload({element,authorize,multiple,extra,convert,upload,folder,uploadEvent})}));id=1;_export("default",UploadEvent=class UploadEvent{static AttachUploadAction(_a){var{uploadEvent="filesAvailable",accept="*/*",capture,multiple=false,forceType=true,maxSize=524288e3,extra,convert=false,upload=true,authorize=true,ariaLabel="Upload",folder=false}=_a,others=__rest(_a,["uploadEvent","accept","capture","multiple","forceType","maxSize","extra","convert","upload","authorize","ariaLabel","folder"]);return Object.assign(Object.assign({},others),{"data-folder":folder?"true":void 0,"data-click-command":uploadCommand.name,"data-upload-event":uploadEvent,"data-accept":accept,"data-multiple":multiple?"true":"false","data-capture":capture,"data-convert":convert,"data-upload":upload?"true":"false","data-force-type":forceType?"true":"false","data-max-size":maxSize?maxSize.toString():undefined,"data-authorize":authorize.toString(),"aria-label":ariaLabel,extra})}});UploadEvent.requestUpload=requestUpload}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/UploadEvent");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`
|
|
1486
|
+
`.installLocal()}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/commands/Source");System.register(["tslib","@web-atoms/core/dist/App","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/StringHelper","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/web/services/PopupService"],(function(_export,_context){"use strict";var __rest,App,Command,StringHelper,XNode,AtomControl,PopupService,UploadEvent,acceptCache,isFileType,previousFile,uploadCommand,requestUpload,id;_export("default",void 0);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_webAtomsCoreDistCoreStringHelper){StringHelper=_webAtomsCoreDistCoreStringHelper.StringHelper},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistWebServicesPopupService){PopupService=_webAtomsCoreDistWebServicesPopupService.default}],execute:function(){acceptCache={};_export("isFileType",isFileType=acceptType=>{var _a;function isFileTypeFactory(accept){if(!accept||accept==="*/*"){return()=>true}const types=accept.split(/\,/g).map((x=>{x=x.trim();if(x.startsWith(".")){return file=>file.name.endsWith(x)}if(x.endsWith("/*")){const prefix=x.substring(0,x.length-1);return file=>file.type.startsWith(prefix)}return file=>file.type===x}));return file=>{for(const iterator of types){if(iterator(file)){return true}}return false}}return(_a=acceptCache[acceptType])!==null&&_a!==void 0?_a:acceptCache[acceptType]=isFileTypeFactory(acceptType)});uploadCommand=Command.create({name:"upload-command"});requestUpload=({element,multiple,authorize,extra,convert,upload,folder,stream,maxStreamSize,uploadEvent})=>{if(authorize){if(!App.authorize()){return}}const chain=[];let start=element;while(start){chain.push(start);start=start.parentElement}previousFile===null||previousFile===void 0?void 0:previousFile.remove();const file=document.createElement("input");file.type="file";file.multiple=multiple;if(folder){file.webkitdirectory=folder}const accept=element.getAttribute("data-accept")||"*/*";file.accept=accept;const capture=element.getAttribute("data-capture");if(capture){file.capture=capture}file.style.position="absolute";file.style.left="-1000px";file.style.top="-1000px";document.body.append(file);previousFile=file;const maxSize=parseInt(element.getAttribute("data-max-size")||"0",10);stream||(stream=element.getAttribute("data-stream")==="true");maxStreamSize!==null&&maxStreamSize!==void 0?maxStreamSize:maxStreamSize=parseInt(element.getAttribute("data-max-stream-size")||"0",10);const forceType=element.getAttribute("data-force-type")==="true";file.addEventListener("change",(()=>{let files=Array.from(file.files);let msgItems=[];if(forceType||maxSize){const validated=[];const checkFileType=isFileType(accept);for(const iterator of files){if(forceType){if(!checkFileType(iterator)){msgItems.push(`${iterator.name} is invalid file.`,XNode.create("br",null));continue}}if(stream){if(iterator.size>maxStreamSize){msgItems.push(`Size of ${iterator.name} is more than ${maxSize}.`,XNode.create("br",null));continue}validated.push(iterator);continue}if(!convert&&maxSize&&iterator.size>maxSize){msgItems.push(`Size of ${iterator.name} is more than ${maxSize}.`,XNode.create("br",null));continue}validated.push(iterator)}files=validated}file.remove();previousFile=null;chain.reverse();while(chain.length){const root=chain.pop();if(root.isConnected){const control=AtomControl.from(root);if(msgItems.length){const msg=XNode.create("p",null,...msgItems);control.app.runAsync((()=>PopupService.alert({message:msg})));if(files.length===0){return}}if(upload){const doUploadEvent=new CustomEvent("uploadRequested",{detail:{files,extra,convert,stream,maxStreamSize,maxSize,uploadEvent},bubbles:true,cancelable:true});root.dispatchEvent(doUploadEvent);if(doUploadEvent.defaultPrevented){return}}root.dispatchEvent(new CustomEvent(uploadEvent,{detail:{files,extra},bubbles:true}));break}}}));setTimeout((()=>{file.dispatchEvent(new MouseEvent("click"))}))};window.addEventListener(uploadCommand.eventName,(ce=>{var _a,_b;if(ce.defaultPrevented){return}const element=ce.target;const authorize=element.getAttribute("data-authorize")==="true";const multiple=element.getAttribute("data-multiple")==="true";const extra=(_a=element.extra)!==null&&_a!==void 0?_a:element.getAttribute("data-extra");const upload=element.getAttribute("data-upload")==="true";const folder=element.hasAttribute("data-folder");const convert=element.getAttribute("data-convert")==="true";const stream=element.getAttribute("data-stream")==="true";const maxStreamSize=parseInt((_b=element.getAttribute("data-max-stream-size"))!==null&&_b!==void 0?_b:"0",10);const uploadEvent=StringHelper.fromHyphenToCamel(element.getAttribute("data-upload-event"));requestUpload({element,authorize,multiple,extra,convert,upload,folder,stream,maxStreamSize,uploadEvent})}));id=1;_export("default",UploadEvent=class UploadEvent{static AttachUploadAction(_a){var{uploadEvent="filesAvailable",accept="*/*",capture,multiple=false,forceType=true,maxSize=524288e3,maxStreamSize=100*1024*1024,stream=false,extra,convert=false,upload=true,authorize=true,ariaLabel="Upload",folder=false}=_a,others=__rest(_a,["uploadEvent","accept","capture","multiple","forceType","maxSize","maxStreamSize","stream","extra","convert","upload","authorize","ariaLabel","folder"]);return Object.assign(Object.assign({},others),{"data-folder":folder?"true":void 0,"data-click-command":uploadCommand.name,"data-upload-event":uploadEvent,"data-accept":accept,"data-multiple":multiple?"true":"false","data-capture":capture,"data-convert":convert,"data-stream":stream?"true":"false","data-max-stream-size":maxStreamSize?maxStreamSize.toString():undefined,"data-upload":upload?"true":"false","data-force-type":forceType?"true":"false","data-max-size":maxSize?maxSize.toString():undefined,"data-authorize":authorize.toString(),"aria-label":ariaLabel,extra})}});UploadEvent.requestUpload=requestUpload}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/UploadEvent");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`
|
|
1487
1487
|
& > [data-element=editor] {
|
|
1488
1488
|
background-color: white;
|
|
1489
1489
|
color: black;
|
|
@@ -2021,7 +2021,7 @@ html, body {
|
|
|
2021
2021
|
}
|
|
2022
2022
|
}
|
|
2023
2023
|
}
|
|
2024
|
-
`.installLocal();_export("default",AtomHtmlEditor=class AtomHtmlEditor extends AtomControl{get htmlContent(){var _a,_b;try{return(_b=(_a=this.editor)===null||_a===void 0?void 0:_a.innerHTML)!==null&&_b!==void 0?_b:this.initialContent}catch(ex){console.warn(ex)}}set htmlContent(v){if(this.editor){this.editor.innerHTML=v}else{this.initialContent=v}AtomBinder.refreshValue(this,"htmlContent")}insertImage(s,e){return showImageDialog(s,e)}executeCommand(cmd,showUI,value){const r=this.editorDocument.execCommand(cmd,showUI,value);setTimeout((()=>this.version++),1);return r}queryCommandState(cmd,...a){return this.editorDocument.queryCommandState(cmd)}getStyle(name,v){try{const node=this.editorWindow.getSelection().getRangeAt(0);const e=node.startContainer.parentElement;return this.editorWindow.getComputedStyle(e)[name]}catch(ex){return null}}onPropertyChanged(name){super.onPropertyChanged(name);if(name==="tags"){this.setupTags()}}setupTags(){const doc=this.editorDocument;if(!doc){return}if(Array.isArray(this.tags)){for(const{name,style}of this.tags){if(style){const styleElement=doc.createElement("style");styleElement.textContent=`*[data-command=${name}] {\n ${style.toStyleSheet()}\n }`;doc.head.appendChild(styleElement)}}}}preCreate(){this.version=1;this.files=[];this.runAfterInit((()=>{this.setup()}));this.element.classList.add(css);this.element.classList.add("html-editor")}onPasteEvent(e){if(!e.clipboardData.types.find((x=>x==="text/html"))){return}const d=e.clipboardData.getData("text/plain");if(d){const s=window.getSelection();const r=s.getRangeAt(0);let last;const tags=[];for(const iterator of d.split("\n")){const text=iterator.trim();if(!text){continue}last=document.createElement("p");last.innerText=iterator;tags.push(last)}while(tags.length){r.insertNode(tags.pop())}r.setStartAfter(last)}e.preventDefault()}onInputEvent(e){console.log(e)}setup(){var _a;const frame=this.element.getElementsByTagName("iframe")[0];const doc=frame.contentWindow.document;doc.open();const baseUrl=`${location.protocol}//${location.host}`;doc.writeln(`<base href="${baseUrl}"></base><div id="editor"><p> </p></div>`);doc.close();const style=doc.createElement("style");style.textContent=`body {\n font-family: arial,sans-serif\n }\n #editor {\n min-height: 500px;\n }\n *[data-prompt] {\n background: yellow\n }\n `;doc.head.appendChild(style);doc.body.addEventListener("click",(e=>preventLinkClick(e,this.element,doc)));this.editor=doc.getElementById("editor");this.editor.contentEditable="true";this.editor.innerHTML=(_a=this.initialContent)!==null&&_a!==void 0?_a:"";doc.execCommand("styleWithCSS");doc.execCommand("insertBrOnReturn");const updateVersion=()=>setTimeout((()=>{this.version++;AtomBinder.refreshValue(this,"htmlContent");this.element.dispatchEvent(new CustomEvent("documentUpdated",{detail:this.editor}));this.documentUpdated(this.editor)}),1);this.editor.addEventListener("click",updateVersion);this.editor.addEventListener("keydown",updateVersion);this.editor.addEventListener("keypress",updateVersion);this.editor.addEventListener("input",updateVersion);this.editorWindow=frame.contentWindow;this.editorDocument=doc;updateVersion();this.documentCreated(this.editor);this.element.dispatchEvent(new CustomEvent("documentCreated",{detail:this.editor}));this.registerDisposable({dispose:()=>{this.editor.removeEventListener("click",updateVersion);this.editor.removeEventListener("keydown",updateVersion);this.editor.removeEventListener("keypress",updateVersion);this.editor.removeEventListener("input",updateVersion)}});this.bindEvent(this.element,"editorClick",(ce=>{var _a,_b;const{detail:{data,target}}=ce;if(data.prompt){const element=target;const result=prompt("Enter "+((_a=data.promptTitle)!==null&&_a!==void 0?_a:data.prompt),data.promptDefault);if(result){const replace=((_b=data.replace)!==null&&_b!==void 0?_b:"textContent").split(",").map((x=>x.trim()));for(const iterator of replace){const template=element.getAttribute("data-"+iterator+"-template")||element.getAttribute("data-template");if(template){element[iterator]=template.replace(data.prompt,result)}else{element[iterator]=result}}}return}if(this.tags){for(const{name,handler}of this.tags){if(name===data.command||name===data.clickEvent){handler(ce)}}}}));this.setupTags()}documentCreated(e){}documentUpdated(e){}render(node,e,creator){this.render=super.render;if(!node.children||node.children.length===0){node.children[0]=XNode.create(Toolbar,null,XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,null),XNode.create(Separator,null),XNode.create(Headings,null),XNode.create(ChangeColor,null),XNode.create(HorizontalRule,null),XNode.create(Separator,null),XNode.create(ChangeFont,null),XNode.create(ChangeFontSize,null),XNode.create(Separator,null),XNode.create(NumberedList,null),XNode.create(UnorderedList,null),XNode.create(IndentLess,null),XNode.create(IndentMore,null),XNode.create(Separator,null),XNode.create(AddImage,null),XNode.create(AttachFile,null),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null),XNode.create(RemoveFormat,null),XNode.create(Separator,null),XNode.create(Source,null))}super.render(XNode.create("div",Object.assign({},node.attributes),...node.children,XNode.create(AtomRepeater,{class:"files","event-item-delete":ce=>this.files.remove(ce.detail),items:Bind.oneWay((()=>this.files)),itemRenderer:file=>XNode.create("div",{class:"file"},XNode.create("i",{class:"ri-attachment-2"}),XNode.create("label",{text:file.name}),XNode.create("i",{"data-click-event":"item-delete",class:"ri-close-circle-fill"}))}),XNode.create("iframe",{class:"editor-frame"})))}});__decorate([BindableProperty,__metadata("design:type",String)],AtomHtmlEditor.prototype,"content",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"header",void 0);__decorate([BindableProperty,__metadata("design:type",Number)],AtomHtmlEditor.prototype,"version",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"files",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"tags",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor");System.register(["tslib","@web-atoms/core/dist/core/types","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,UMD,FetchBuilder,MonacoService,monacoPath,codeModelChangedDisposable;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){monacoPath=UMD.resolvePath("@social-mail/social-mail-client/content/modules/monaco/monaco.html");codeModelChangedDisposable=Symbol("codeModelChangedDisposable");_export("default",MonacoService=class MonacoService{static createEditor(ctrl,iframe){return __awaiter(this,void 0,void 0,(function*(){const ms=new MonacoService;const srcdoc=yield FetchBuilder.get(monacoPath).responseAsText();const{monaco,editor}=yield new Promise(((resolve,reject)=>{iframe.parentEditor={resolve,reject,codeEditor:ctrl,save(){ctrl.element.dispatchEvent(new CustomEvent("saveFile",{detail:ctrl,bubbles:true}))}};iframe.srcdoc=srcdoc}));ctrl.registerDisposable({dispose:()=>{ms.monaco=null;ms.editor=null}});ms.monaco=monaco;ms.editor=editor;ms.languages=monaco.languages.getLanguages();return ms}))}clearModels(){for(const model of this.monaco.editor.getModels()){model.dispose()}}getLanguages(){return this.languages.map((x=>{var _a,_b,_c;return{label:(_b=(_a=x.aliases)===null||_a===void 0?void 0:_a[0])!==null&&_b!==void 0?_b:x.id,value:x.id,ext:(_c=x.extensions)===null||_c===void 0?void 0:_c[0],extensions:x.extensions}}))}createModel({code,url="http://a/file.html"}){const{monaco}=this;const uri=monaco.Uri.parse(url);const model=monaco.editor.getModel(uri);if(model){model.setValue(code);return model}return monaco.editor.createModel(code,void 0,uri)}setCodeModel(ctrl,code,url,clear=false){var _a;const{monaco,editor}=this;const uri=monaco.Uri.parse(url);let model=monaco.editor.getModel(uri);if(model){model.setValue(code);editor.setModel(model);return}(_a=ctrl[codeModelChangedDisposable])===null||_a===void 0?void 0:_a.dispose();if(clear){this.clearModels()}model=monaco.editor.createModel(code,void 0,uri);editor.setModel(model);let id=0;ctrl[codeModelChangedDisposable]=ctrl.registerDisposable(model.onDidChangeContent((()=>{if(id){clearTimeout(id)}id=setTimeout((()=>{var _a;const newCode=model.getValue();const ce=new CustomEvent("codeChanged",{bubbles:true,detail:{code:newCode,originalCode:code}});ctrl.element.dispatchEvent(ce);(_a=ctrl===null||ctrl===void 0?void 0:ctrl.onCodeChanged)===null||_a===void 0?void 0:_a.call(ctrl,newCode,code)}),500)})));return model}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/MonacoService");System.register(["tslib","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var __rest,AtomControl,XNode,labelPathSetter,valuePathSetter,valueSetter,refreshItems,itemsSetter;function Select(_a){var{items,labelPath,valuePath,value}=_a,a=__rest(_a,["items","labelPath","valuePath","value"]);a[labelPathSetter.property]=labelPath;a[valuePathSetter.property]=valuePath;a[valueSetter.property]=value;a[itemsSetter.property]=items;return XNode.create("select",Object.assign({},a))}_export("default",Select);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){labelPathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["labelPath"]=value}));valuePathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["valuePath"]=value}));valueSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{var _a;element["initialValue"]=value;element["value"]=value;const select=element;let length=select.options.length;if(!length){setTimeout(refreshItems,1,element);return}const items=element["items"];if(!items){setTimeout(refreshItems,1,element);return}const vp=(_a=element["valuePath"])!==null&&_a!==void 0?_a:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};let index=0;for(const item of items){const v=vp(item);if(v==value){select.selectedIndex=index;return}index++}setTimeout(refreshItems,1,element)}));refreshItems=(element,items)=>{var _a,_b;items!==null&&items!==void 0?items:items=element["items"];element.update=true;const old=element.selectedIndex;let cv=element["initialValue"];if(old!==-1){cv=element["value"]}element.options.length=0;const lp=(_a=element["labelPath"])!==null&&_a!==void 0?_a:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};const vp=(_b=element["valuePath"])!==null&&_b!==void 0?_b:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};let i=0;let si=-1;if(items===null||items===void 0?void 0:items.length){for(const iterator of items){const option=document.createElement("option");const label=lp(iterator);const value=vp(iterator);option.text=label;option.value=value;element.options.add(option);if(cv!==void 0){if(cv==value){si=i}}i++}}if(si!=-1){element.selectedIndex=si}element.update=false};itemsSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["items"]=value;setTimeout(refreshItems,1,element,value)}))}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/Select");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/Bind","../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","./MonacoService","@web-atoms/web-controls/dist/basic/Select"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,PopupWindowPage,isMobileView,Bind,SaveIconTextButton,Action,MonacoService,Select,CodeSnippetPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;isMobileView=_webAtomsWebControlsDistMobileAppMobileApp.isMobileView},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_MonacoService){MonacoService=_MonacoService.default},function(_webAtomsWebControlsDistBasicSelect){Select=_webAtomsWebControlsDistBasicSelect.default}],execute:function(){_export("default",CodeSnippetPage=class CodeSnippetPage extends PopupWindowPage{constructor(){super(...arguments);this.languageId="html";this.code=""}init(){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,(function*(){this.code=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.code)!==null&&_b!==void 0?_b:"";this.languageId=(_d=(_c=this.parameters)===null||_c===void 0?void 0:_c.languageId)!==null&&_d!==void 0?_d:"html";this.title="Insert Code Snippet";if(!isMobileView){this.element.style.minWidth="70vw";this.element.style.minHeight="60vh"}this.renderer=XNode.create("div",{"data-display":"grid","data-align-items":"stretch","data-justify-items":"stretch"},XNode.create("iframe",null));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-click-event":"save-file"}));const iframe=this.element.querySelector("iframe");this.monacoService=yield MonacoService.createEditor(this,iframe);this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create(Select,{items:this.monacoService.getLanguages(),value:Bind.twoWaysImmediate((()=>this.languageId)),"event-input":()=>setTimeout((()=>this.createModel()))}));this.createModel()}))}save(){return __awaiter(this,void 0,void 0,(function*(){this.code=this.textModel.getValue();const colorizedText=yield this.monacoService.monaco.editor.colorize(this.code,this.textModel.getLanguageId(),{});const colorized=yield this.colorize(colorizedText);return colorized}))}codeChanged({code}){this.code=code}createModel(){var _a,_b,_c;const lang=(_a=this.monacoService.languages.find((x=>x.id===this.languageId)))!==null&&_a!==void 0?_a:this.monacoService.languages[0];this.textModel=this.monacoService.setCodeModel(this,this.code,`http://a/file${(_c=(_b=lang.extensions)===null||_b===void 0?void 0:_b[0])!==null&&_c!==void 0?_c:".txt"}`)}colorize(code){return __awaiter(this,void 0,void 0,(function*(){return code}))}});__decorate([Action({onEvent:"save-file",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],CodeSnippetPage.prototype,"save",null);__decorate([Action({onEvent:"code-changed"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],CodeSnippetPage.prototype,"codeChanged",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/CodeSnippetPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent","../../../../code-editor/CodeSnippetPage"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,PageNavigator,PopupButton,MenuItem,UploadEvent,CodeSnippetPage,convert,maxSize;function Insert({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fas fa-plus",title:"Insert",alignment},XNode.create(MenuItem,{icon:"ri-list-unordered",label:"List","event-click":Bind.event((editor=>editor.executeCommand("insertUnorderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Numbered List","event-click":Bind.event((editor=>editor.executeCommand("insertOrderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Insert Code","event-click":Bind.event((editor=>__awaiter(this,void 0,void 0,(function*(){const code=yield PageNavigator.pushPageForResult(CodeSnippetPage);editor.executeCommand("insertHTML",void 0,`<pre style="margin: 5px; border: solid 1px lightgray; padding: 10px; border-radius: 10px;" contentEditable="true" spellcheck="false">${code}</pre><br/><p contentEditable="true"></p>`)}))))}),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",multiple:true,maxSize,extra:{insert:true}}),{"data-click-event":"send-photos",icon:"fas fa-image",label:"Add Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",capture:"user",maxSize,extra:{insert:true}}),{"data-click-event":"take-photo",icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,maxSize,convert,extra:{insert:true}}),{"data-click-event":"send-video",icon:"fas fa-file-video",label:"Add Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",maxSize,convert,extra:{insert:true}}),{"data-click-event":"record-video",icon:"fa-duotone fa-video-plus",label:"Record Video"})))}_export("default",Insert);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_codeEditorCodeSnippetPage){CodeSnippetPage=_codeEditorCodeSnippetPage.default}],execute:function(){convert=false;maxSize=25*1024*1024}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Insert");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent"],(function(_export,_context){"use strict";var XNode,PopupButton,MenuItem,UploadEvent,convert,maxSize;function Attach({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fa-light fa-file-plus",title:"Attach",alignment},XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",maxSize,multiple:true,extra:{}}),{icon:"fas fa-image",label:"Attach Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",maxSize,capture:"user",extra:{}}),{icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,maxSize,convert,extra:{}}),{icon:"fas fa-file-video",label:"Attach Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",maxSize,convert,extra:{}}),{icon:"fa-duotone fa-video-plus",label:"Record Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"*/*",maxSize,extra:{}}),{icon:"fa-duotone fa-file",label:"Attach Documents","style-min-width":"150px"})))}_export("default",Attach);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default}],execute:function(){convert=false;maxSize=25*1024*1024}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Attach");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/DropDown","../../../services/EntityService","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","../../Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,DropDown,EntityService,Mailbox,XNode,Bind,Sql,MailboxDropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Mailbox=_modelModel.Mailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_Sql){Sql=_Sql.Sql}],execute:function(){_export("default",MailboxDropDown=class MailboxDropDown extends DropDown{constructor(app,e){super(app,e);this.pushInit();this.valuePath=mb=>mb.mailboxID;this.itemRenderer=mb=>XNode.create("div",null,mb.emailAddress.name," (",mb.emailAddress.emailAddress,")")}init(){return __awaiter(this,void 0,void 0,(function*(){this.search="";this.prompt="From";this.render(XNode.create("div",{items:Bind.oneWayAsync(((s,e,cancelToken)=>this.searchMailboxes(this.search,this.value,cancelToken)))}));const item=yield this.entityService.query(Mailbox).where((x=>x.isChannel===false)).orderByDescending((x=>x.dateUpdated)).include((x=>x.emailAddress)).firstOrDefault();this.items=[item];this.selectedItem=item}))}searchMailboxes(search,value,cancelToken){var _a;return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox).where((x=>x.isChannel===false));search=(_a=search===null||search===void 0?void 0:search.trim())===null||_a===void 0?void 0:_a.toLowerCase();value||(value="0");if(search){search=search+"%";q=q.where({search,value},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)||Sql.text.like(x.emailAddress.name,p.search)||Sql.text.like(x.domain.name,p.search)||x.mailboxID===p.value))}else{q=q.where({value},(p=>x=>x.mailboxID===p.value))}const items=yield q.include((x=>x.emailAddress)).toPagedList({size:10,cancelToken});return items.items}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],MailboxDropDown.prototype,"entityService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/mailboxes/MailboxDropDown");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/controls/AtomControl","../../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../../../common/controls/audio/AudioRecorder","../service/ConversationService","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","../../../../common/events/CommonEvents","../service/MailService","@web-atoms/date-time/dist/DateTime","@web-atoms/core/dist/core/sleep","../../../../common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/Bold","@web-atoms/web-controls/dist/html-editor/commands/Italic","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Underline","@web-atoms/web-controls/dist/html-editor/commands/AddLink","@web-atoms/web-controls/dist/html-editor/commands/Unlink","@web-atoms/web-controls/dist/html-editor/commands/Separator","./Insert","@web-atoms/date-time/dist/TimeSpan","./Attach","@web-atoms/core/dist/core/types","../../../../common/controls/Loader","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/web-controls/dist/basic/TitleEditor","../../../../common/controls/email-recipients/EmailRecipientChips","../../../../common/controls/mailboxes/MailboxDropDown"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,styled,AtomControl,AppFile,Email,EmailRecipient,Bind,Action,AudioRecorder,ConversationService,AtomRepeater,InjectProperty,CommonEvents,MailService,DateTime,sleep,MailHtmlEditor,Toolbar,Align,Bold,Italic,StrikeThrough,Underline,AddLink,Unlink,Separator,Insert,TimeSpan,Attach,CancelToken,Loader,descendentElementIterator,TitleEditor,EmailRecipientChips,MailboxDropDown,MiniComposeBox,css,defaultEmailBody,addRecipient;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_modelModel){AppFile=_modelModel.AppFile;Email=_modelModel.Email;EmailRecipient=_modelModel.EmailRecipient},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsAudioAudioRecorder){AudioRecorder=_commonControlsAudioAudioRecorder.default},function(_serviceConversationService){ConversationService=_serviceConversationService.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_serviceMailService){MailService=_serviceMailService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_commonControlsHtmlInlineHtmlEditorWithToolbar){MailHtmlEditor=_commonControlsHtmlInlineHtmlEditorWithToolbar.MailHtmlEditor},function(_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor){Toolbar=_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor.Toolbar},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_Insert){Insert=_Insert.default},function(_webAtomsDateTimeDistTimeSpan){TimeSpan=_webAtomsDateTimeDistTimeSpan.default},function(_Attach){Attach=_Attach.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_webAtomsWebControlsDistBasicTitleEditor){TitleEditor=_webAtomsWebControlsDistBasicTitleEditor.default},function(_commonControlsEmailRecipientsEmailRecipientChips){EmailRecipientChips=_commonControlsEmailRecipientsEmailRecipientChips.default},function(_commonControlsMailboxesMailboxDropDown){MailboxDropDown=_commonControlsMailboxesMailboxDropDown.default}],execute:function(){css=styled.css`
|
|
2024
|
+
`.installLocal();_export("default",AtomHtmlEditor=class AtomHtmlEditor extends AtomControl{get htmlContent(){var _a,_b;try{return(_b=(_a=this.editor)===null||_a===void 0?void 0:_a.innerHTML)!==null&&_b!==void 0?_b:this.initialContent}catch(ex){console.warn(ex)}}set htmlContent(v){if(this.editor){this.editor.innerHTML=v}else{this.initialContent=v}AtomBinder.refreshValue(this,"htmlContent")}insertImage(s,e){return showImageDialog(s,e)}executeCommand(cmd,showUI,value){const r=this.editorDocument.execCommand(cmd,showUI,value);setTimeout((()=>this.version++),1);return r}queryCommandState(cmd,...a){return this.editorDocument.queryCommandState(cmd)}getStyle(name,v){try{const node=this.editorWindow.getSelection().getRangeAt(0);const e=node.startContainer.parentElement;return this.editorWindow.getComputedStyle(e)[name]}catch(ex){return null}}onPropertyChanged(name){super.onPropertyChanged(name);if(name==="tags"){this.setupTags()}}setupTags(){const doc=this.editorDocument;if(!doc){return}if(Array.isArray(this.tags)){for(const{name,style}of this.tags){if(style){const styleElement=doc.createElement("style");styleElement.textContent=`*[data-command=${name}] {\n ${style.toStyleSheet()}\n }`;doc.head.appendChild(styleElement)}}}}preCreate(){this.version=1;this.files=[];this.runAfterInit((()=>{this.setup()}));this.element.classList.add(css);this.element.classList.add("html-editor")}onPasteEvent(e){if(!e.clipboardData.types.find((x=>x==="text/html"))){return}const d=e.clipboardData.getData("text/plain");if(d){const s=window.getSelection();const r=s.getRangeAt(0);let last;const tags=[];for(const iterator of d.split("\n")){const text=iterator.trim();if(!text){continue}last=document.createElement("p");last.innerText=iterator;tags.push(last)}while(tags.length){r.insertNode(tags.pop())}r.setStartAfter(last)}e.preventDefault()}onInputEvent(e){console.log(e)}setup(){var _a;const frame=this.element.getElementsByTagName("iframe")[0];const doc=frame.contentWindow.document;doc.open();const baseUrl=`${location.protocol}//${location.host}`;doc.writeln(`<base href="${baseUrl}"></base><div id="editor"><p> </p></div>`);doc.close();const style=doc.createElement("style");style.textContent=`body {\n font-family: arial,sans-serif\n }\n #editor {\n min-height: 500px;\n }\n *[data-prompt] {\n background: yellow\n }\n `;doc.head.appendChild(style);doc.body.addEventListener("click",(e=>preventLinkClick(e,this.element,doc)));this.editor=doc.getElementById("editor");this.editor.contentEditable="true";this.editor.innerHTML=(_a=this.initialContent)!==null&&_a!==void 0?_a:"";doc.execCommand("styleWithCSS");doc.execCommand("insertBrOnReturn");const updateVersion=()=>setTimeout((()=>{this.version++;AtomBinder.refreshValue(this,"htmlContent");this.element.dispatchEvent(new CustomEvent("documentUpdated",{detail:this.editor}));this.documentUpdated(this.editor)}),1);this.editor.addEventListener("click",updateVersion);this.editor.addEventListener("keydown",updateVersion);this.editor.addEventListener("keypress",updateVersion);this.editor.addEventListener("input",updateVersion);this.editorWindow=frame.contentWindow;this.editorDocument=doc;updateVersion();this.documentCreated(this.editor);this.element.dispatchEvent(new CustomEvent("documentCreated",{detail:this.editor}));this.registerDisposable({dispose:()=>{this.editor.removeEventListener("click",updateVersion);this.editor.removeEventListener("keydown",updateVersion);this.editor.removeEventListener("keypress",updateVersion);this.editor.removeEventListener("input",updateVersion)}});this.bindEvent(this.element,"editorClick",(ce=>{var _a,_b;const{detail:{data,target}}=ce;if(data.prompt){const element=target;const result=prompt("Enter "+((_a=data.promptTitle)!==null&&_a!==void 0?_a:data.prompt),data.promptDefault);if(result){const replace=((_b=data.replace)!==null&&_b!==void 0?_b:"textContent").split(",").map((x=>x.trim()));for(const iterator of replace){const template=element.getAttribute("data-"+iterator+"-template")||element.getAttribute("data-template");if(template){element[iterator]=template.replace(data.prompt,result)}else{element[iterator]=result}}}return}if(this.tags){for(const{name,handler}of this.tags){if(name===data.command||name===data.clickEvent){handler(ce)}}}}));this.setupTags()}documentCreated(e){}documentUpdated(e){}render(node,e,creator){this.render=super.render;if(!node.children||node.children.length===0){node.children[0]=XNode.create(Toolbar,null,XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,null),XNode.create(Separator,null),XNode.create(Headings,null),XNode.create(ChangeColor,null),XNode.create(HorizontalRule,null),XNode.create(Separator,null),XNode.create(ChangeFont,null),XNode.create(ChangeFontSize,null),XNode.create(Separator,null),XNode.create(NumberedList,null),XNode.create(UnorderedList,null),XNode.create(IndentLess,null),XNode.create(IndentMore,null),XNode.create(Separator,null),XNode.create(AddImage,null),XNode.create(AttachFile,null),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null),XNode.create(RemoveFormat,null),XNode.create(Separator,null),XNode.create(Source,null))}super.render(XNode.create("div",Object.assign({},node.attributes),...node.children,XNode.create(AtomRepeater,{class:"files","event-item-delete":ce=>this.files.remove(ce.detail),items:Bind.oneWay((()=>this.files)),itemRenderer:file=>XNode.create("div",{class:"file"},XNode.create("i",{class:"ri-attachment-2"}),XNode.create("label",{text:file.name}),XNode.create("i",{"data-click-event":"item-delete",class:"ri-close-circle-fill"}))}),XNode.create("iframe",{class:"editor-frame"})))}});__decorate([BindableProperty,__metadata("design:type",String)],AtomHtmlEditor.prototype,"content",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"header",void 0);__decorate([BindableProperty,__metadata("design:type",Number)],AtomHtmlEditor.prototype,"version",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"files",void 0);__decorate([BindableProperty,__metadata("design:type",Array)],AtomHtmlEditor.prototype,"tags",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor");System.register(["tslib","@web-atoms/core/dist/core/types","@web-atoms/core/dist/services/FetchBuilder"],(function(_export,_context){"use strict";var __awaiter,UMD,FetchBuilder,MonacoService,monacoPath,codeModelChangedDisposable;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default}],execute:function(){monacoPath=UMD.resolvePath("@social-mail/social-mail-client/content/modules/monaco/monaco.html");codeModelChangedDisposable=Symbol("codeModelChangedDisposable");_export("default",MonacoService=class MonacoService{static createEditor(ctrl,iframe){return __awaiter(this,void 0,void 0,(function*(){const ms=new MonacoService;const srcdoc=yield FetchBuilder.get(monacoPath).responseAsText();const{monaco,editor}=yield new Promise(((resolve,reject)=>{iframe.parentEditor={resolve,reject,codeEditor:ctrl,save(){ctrl.element.dispatchEvent(new CustomEvent("saveFile",{detail:ctrl,bubbles:true}))}};iframe.srcdoc=srcdoc}));ctrl.registerDisposable({dispose:()=>{ms.monaco=null;ms.editor=null}});ms.monaco=monaco;ms.editor=editor;ms.languages=monaco.languages.getLanguages();return ms}))}clearModels(){for(const model of this.monaco.editor.getModels()){model.dispose()}}getLanguages(){return this.languages.map((x=>{var _a,_b,_c;return{label:(_b=(_a=x.aliases)===null||_a===void 0?void 0:_a[0])!==null&&_b!==void 0?_b:x.id,value:x.id,ext:(_c=x.extensions)===null||_c===void 0?void 0:_c[0],extensions:x.extensions}}))}createModel({code,url="http://a/file.html"}){const{monaco}=this;const uri=monaco.Uri.parse(url);const model=monaco.editor.getModel(uri);if(model){model.setValue(code);return model}return monaco.editor.createModel(code,void 0,uri)}setCodeModel(ctrl,code,url,clear=false){var _a;const{monaco,editor}=this;const uri=monaco.Uri.parse(url);let model=monaco.editor.getModel(uri);if(model){model.setValue(code);editor.setModel(model);return}(_a=ctrl[codeModelChangedDisposable])===null||_a===void 0?void 0:_a.dispose();if(clear){this.clearModels()}model=monaco.editor.createModel(code,void 0,uri);editor.setModel(model);let id=0;ctrl[codeModelChangedDisposable]=ctrl.registerDisposable(model.onDidChangeContent((()=>{if(id){clearTimeout(id)}id=setTimeout((()=>{var _a;const newCode=model.getValue();const ce=new CustomEvent("codeChanged",{bubbles:true,detail:{code:newCode,originalCode:code}});ctrl.element.dispatchEvent(ce);(_a=ctrl===null||ctrl===void 0?void 0:ctrl.onCodeChanged)===null||_a===void 0?void 0:_a.call(ctrl,newCode,code)}),500)})));return model}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/MonacoService");System.register(["tslib","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var __rest,AtomControl,XNode,labelPathSetter,valuePathSetter,valueSetter,refreshItems,itemsSetter;function Select(_a){var{items,labelPath,valuePath,value}=_a,a=__rest(_a,["items","labelPath","valuePath","value"]);a[labelPathSetter.property]=labelPath;a[valuePathSetter.property]=valuePath;a[valueSetter.property]=value;a[itemsSetter.property]=items;return XNode.create("select",Object.assign({},a))}_export("default",Select);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){labelPathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["labelPath"]=value}));valuePathSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["valuePath"]=value}));valueSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{var _a;element["initialValue"]=value;element["value"]=value;const select=element;let length=select.options.length;if(!length){setTimeout(refreshItems,1,element);return}const items=element["items"];if(!items){setTimeout(refreshItems,1,element);return}const vp=(_a=element["valuePath"])!==null&&_a!==void 0?_a:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};let index=0;for(const item of items){const v=vp(item);if(v==value){select.selectedIndex=index;return}index++}setTimeout(refreshItems,1,element)}));refreshItems=(element,items)=>{var _a,_b;items!==null&&items!==void 0?items:items=element["items"];element.update=true;const old=element.selectedIndex;let cv=element["initialValue"];if(old!==-1){cv=element["value"]}element.options.length=0;const lp=(_a=element["labelPath"])!==null&&_a!==void 0?_a:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};const vp=(_b=element["valuePath"])!==null&&_b!==void 0?_b:item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};let i=0;let si=-1;if(items===null||items===void 0?void 0:items.length){for(const iterator of items){const option=document.createElement("option");const label=lp(iterator);const value=vp(iterator);option.text=label;option.value=value;element.options.add(option);if(cv!==void 0){if(cv==value){si=i}}i++}}if(si!=-1){element.selectedIndex=si}element.update=false};itemsSetter=AtomControl.registerProperty("data-items","value",((ctrl,element,value)=>{element["items"]=value;setTimeout(refreshItems,1,element,value)}))}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/Select");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/Bind","../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","./MonacoService","@web-atoms/web-controls/dist/basic/Select"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,PopupWindowPage,isMobileView,Bind,SaveIconTextButton,Action,MonacoService,Select,CodeSnippetPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage;isMobileView=_webAtomsWebControlsDistMobileAppMobileApp.isMobileView},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_MonacoService){MonacoService=_MonacoService.default},function(_webAtomsWebControlsDistBasicSelect){Select=_webAtomsWebControlsDistBasicSelect.default}],execute:function(){_export("default",CodeSnippetPage=class CodeSnippetPage extends PopupWindowPage{constructor(){super(...arguments);this.languageId="html";this.code=""}init(){var _a,_b,_c,_d;return __awaiter(this,void 0,void 0,(function*(){this.code=(_b=(_a=this.parameters)===null||_a===void 0?void 0:_a.code)!==null&&_b!==void 0?_b:"";this.languageId=(_d=(_c=this.parameters)===null||_c===void 0?void 0:_c.languageId)!==null&&_d!==void 0?_d:"html";this.title="Insert Code Snippet";if(!isMobileView){this.element.style.minWidth="70vw";this.element.style.minHeight="60vh"}this.renderer=XNode.create("div",{"data-display":"grid","data-align-items":"stretch","data-justify-items":"stretch"},XNode.create("iframe",null));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-click-event":"save-file"}));const iframe=this.element.querySelector("iframe");this.monacoService=yield MonacoService.createEditor(this,iframe);this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create(Select,{items:this.monacoService.getLanguages(),value:Bind.twoWaysImmediate((()=>this.languageId)),"event-input":()=>setTimeout((()=>this.createModel()))}));this.createModel()}))}save(){return __awaiter(this,void 0,void 0,(function*(){this.code=this.textModel.getValue();const colorizedText=yield this.monacoService.monaco.editor.colorize(this.code,this.textModel.getLanguageId(),{});const colorized=yield this.colorize(colorizedText);return colorized}))}codeChanged({code}){this.code=code}createModel(){var _a,_b,_c;const lang=(_a=this.monacoService.languages.find((x=>x.id===this.languageId)))!==null&&_a!==void 0?_a:this.monacoService.languages[0];this.textModel=this.monacoService.setCodeModel(this,this.code,`http://a/file${(_c=(_b=lang.extensions)===null||_b===void 0?void 0:_b[0])!==null&&_c!==void 0?_c:".txt"}`)}colorize(code){return __awaiter(this,void 0,void 0,(function*(){return code}))}});__decorate([Action({onEvent:"save-file",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],CodeSnippetPage.prototype,"save",null);__decorate([Action({onEvent:"code-changed"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],CodeSnippetPage.prototype,"codeChanged",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/code-editor/CodeSnippetPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent","../../../../code-editor/CodeSnippetPage"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,PageNavigator,PopupButton,MenuItem,UploadEvent,CodeSnippetPage,maxSize,stream,maxStreamSize;function Insert({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fas fa-plus",title:"Insert",alignment},XNode.create(MenuItem,{icon:"ri-list-unordered",label:"List","event-click":Bind.event((editor=>editor.executeCommand("insertUnorderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Numbered List","event-click":Bind.event((editor=>editor.executeCommand("insertOrderedList")))}),XNode.create(MenuItem,{icon:"ri-list-ordered",label:"Insert Code","event-click":Bind.event((editor=>__awaiter(this,void 0,void 0,(function*(){const code=yield PageNavigator.pushPageForResult(CodeSnippetPage);editor.executeCommand("insertHTML",void 0,`<pre style="margin: 5px; border: solid 1px lightgray; padding: 10px; border-radius: 10px;" contentEditable="true" spellcheck="false">${code}</pre><br/><p contentEditable="true"></p>`)}))))}),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",multiple:true,maxSize,extra:{insert:true}}),{"data-click-event":"send-photos",icon:"fas fa-image",label:"Add Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",capture:"user",maxSize,extra:{insert:true}}),{"data-click-event":"take-photo",icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,maxSize,stream,maxStreamSize,extra:{insert:true}}),{"data-click-event":"send-video",icon:"fas fa-file-video",label:"Add Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",maxSize,stream,maxStreamSize,extra:{insert:true}}),{"data-click-event":"record-video",icon:"fa-duotone fa-video-plus",label:"Record Video"})))}_export("default",Insert);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default},function(_codeEditorCodeSnippetPage){CodeSnippetPage=_codeEditorCodeSnippetPage.default}],execute:function(){maxSize=25*1024*1024;stream=true;maxStreamSize=100*1024*1024}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Insert");System.register(["@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/PopupButton","@web-atoms/web-controls/dist/basic/UploadEvent"],(function(_export,_context){"use strict";var XNode,PopupButton,MenuItem,UploadEvent,convert,maxSize;function Attach({alignment="above"}){return XNode.create(PopupButton,{class:"command","data-layout":"toolbar-button",icon:"fa-light fa-file-plus",title:"Attach",alignment},XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",maxSize,multiple:true,extra:{}}),{icon:"fas fa-image",label:"Attach Photos"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"image/*",maxSize,capture:"user",extra:{}}),{icon:"fa-duotone fa-camera-retro",label:"Take Photo"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",multiple:false,maxSize,convert,extra:{}}),{icon:"fas fa-file-video",label:"Attach Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"video/*",capture:"user",maxSize,convert,extra:{}}),{icon:"fa-duotone fa-video-plus",label:"Record Video"})),XNode.create(MenuItem,Object.assign({},UploadEvent.AttachUploadAction({accept:"*/*",maxSize,extra:{}}),{icon:"fa-duotone fa-file",label:"Attach Documents","style-min-width":"150px"})))}_export("default",Attach);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicPopupButton){PopupButton=_webAtomsWebControlsDistBasicPopupButton.default;MenuItem=_webAtomsWebControlsDistBasicPopupButton.MenuItem},function(_webAtomsWebControlsDistBasicUploadEvent){UploadEvent=_webAtomsWebControlsDistBasicUploadEvent.default}],execute:function(){convert=false;maxSize=25*1024*1024}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/Attach");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/DropDown","../../../services/EntityService","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","../../Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,DropDown,EntityService,Mailbox,XNode,Bind,Sql,MailboxDropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){Mailbox=_modelModel.Mailbox},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_Sql){Sql=_Sql.Sql}],execute:function(){_export("default",MailboxDropDown=class MailboxDropDown extends DropDown{constructor(app,e){super(app,e);this.pushInit();this.valuePath=mb=>mb.mailboxID;this.itemRenderer=mb=>XNode.create("div",null,mb.emailAddress.name," (",mb.emailAddress.emailAddress,")")}init(){return __awaiter(this,void 0,void 0,(function*(){this.search="";this.prompt="From";this.render(XNode.create("div",{items:Bind.oneWayAsync(((s,e,cancelToken)=>this.searchMailboxes(this.search,this.value,cancelToken)))}));const item=yield this.entityService.query(Mailbox).where((x=>x.isChannel===false)).orderByDescending((x=>x.dateUpdated)).include((x=>x.emailAddress)).firstOrDefault();this.items=[item];this.selectedItem=item}))}searchMailboxes(search,value,cancelToken){var _a;return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox).where((x=>x.isChannel===false));search=(_a=search===null||search===void 0?void 0:search.trim())===null||_a===void 0?void 0:_a.toLowerCase();value||(value="0");if(search){search=search+"%";q=q.where({search,value},(p=>x=>Sql.text.like(x.emailAddress.emailAddress,p.search)||Sql.text.like(x.emailAddress.name,p.search)||Sql.text.like(x.domain.name,p.search)||x.mailboxID===p.value))}else{q=q.where({value},(p=>x=>x.mailboxID===p.value))}const items=yield q.include((x=>x.emailAddress)).toPagedList({size:10,cancelToken});return items.items}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],MailboxDropDown.prototype,"entityService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/mailboxes/MailboxDropDown");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/web/controls/AtomControl","../../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../../../common/controls/audio/AudioRecorder","../service/ConversationService","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/InjectProperty","../../../../common/events/CommonEvents","../service/MailService","@web-atoms/date-time/dist/DateTime","@web-atoms/core/dist/core/sleep","../../../../common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/web-controls/dist/html-editor/AtomHtmlEditor","@web-atoms/web-controls/dist/html-editor/commands/Align","@web-atoms/web-controls/dist/html-editor/commands/Bold","@web-atoms/web-controls/dist/html-editor/commands/Italic","@web-atoms/web-controls/dist/html-editor/commands/StrikeThrough","@web-atoms/web-controls/dist/html-editor/commands/Underline","@web-atoms/web-controls/dist/html-editor/commands/AddLink","@web-atoms/web-controls/dist/html-editor/commands/Unlink","@web-atoms/web-controls/dist/html-editor/commands/Separator","./Insert","@web-atoms/date-time/dist/TimeSpan","./Attach","@web-atoms/core/dist/core/types","@web-atoms/email-dom/dist/DomToString","../../../../common/controls/Loader","@web-atoms/core/dist/web/core/AtomUI","@web-atoms/web-controls/dist/basic/TitleEditor","../../../../common/controls/email-recipients/EmailRecipientChips","../../../../common/controls/mailboxes/MailboxDropDown","../../../../common/fileUrl"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,styled,AtomControl,AppFile,Email,EmailRecipient,Bind,Action,AudioRecorder,ConversationService,AtomRepeater,InjectProperty,CommonEvents,MailService,DateTime,sleep,MailHtmlEditor,Toolbar,Align,Bold,Italic,StrikeThrough,Underline,AddLink,Unlink,Separator,Insert,TimeSpan,Attach,CancelToken,DomToElement,Loader,descendentElementIterator,TitleEditor,EmailRecipientChips,MailboxDropDown,fileUrl,MiniComposeBox,css,defaultEmailBody,addRecipient;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_modelModel){AppFile=_modelModel.AppFile;Email=_modelModel.Email;EmailRecipient=_modelModel.EmailRecipient},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsAudioAudioRecorder){AudioRecorder=_commonControlsAudioAudioRecorder.default},function(_serviceConversationService){ConversationService=_serviceConversationService.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonEventsCommonEvents){CommonEvents=_commonEventsCommonEvents.CommonEvents},function(_serviceMailService){MailService=_serviceMailService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_commonControlsHtmlInlineHtmlEditorWithToolbar){MailHtmlEditor=_commonControlsHtmlInlineHtmlEditorWithToolbar.MailHtmlEditor},function(_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor){Toolbar=_webAtomsWebControlsDistHtmlEditorAtomHtmlEditor.Toolbar},function(_webAtomsWebControlsDistHtmlEditorCommandsAlign){Align=_webAtomsWebControlsDistHtmlEditorCommandsAlign.default},function(_webAtomsWebControlsDistHtmlEditorCommandsBold){Bold=_webAtomsWebControlsDistHtmlEditorCommandsBold.default},function(_webAtomsWebControlsDistHtmlEditorCommandsItalic){Italic=_webAtomsWebControlsDistHtmlEditorCommandsItalic.default},function(_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough){StrikeThrough=_webAtomsWebControlsDistHtmlEditorCommandsStrikeThrough.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnderline){Underline=_webAtomsWebControlsDistHtmlEditorCommandsUnderline.default},function(_webAtomsWebControlsDistHtmlEditorCommandsAddLink){AddLink=_webAtomsWebControlsDistHtmlEditorCommandsAddLink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsUnlink){Unlink=_webAtomsWebControlsDistHtmlEditorCommandsUnlink.default},function(_webAtomsWebControlsDistHtmlEditorCommandsSeparator){Separator=_webAtomsWebControlsDistHtmlEditorCommandsSeparator.default},function(_Insert){Insert=_Insert.default},function(_webAtomsDateTimeDistTimeSpan){TimeSpan=_webAtomsDateTimeDistTimeSpan.default},function(_Attach){Attach=_Attach.default},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsEmailDomDistDomToString){DomToElement=_webAtomsEmailDomDistDomToString.DomToElement},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_webAtomsWebControlsDistBasicTitleEditor){TitleEditor=_webAtomsWebControlsDistBasicTitleEditor.default},function(_commonControlsEmailRecipientsEmailRecipientChips){EmailRecipientChips=_commonControlsEmailRecipientsEmailRecipientChips.default},function(_commonControlsMailboxesMailboxDropDown){MailboxDropDown=_commonControlsMailboxesMailboxDropDown.default},function(_commonFileUrl){fileUrl=_commonFileUrl.fileUrl}],execute:function(){css=styled.css`
|
|
2025
2025
|
display: grid;
|
|
2026
2026
|
grid-template-columns: auto 1fr auto;
|
|
2027
2027
|
grid-template-rows: auto 1fr auto;
|
|
@@ -2077,7 +2077,7 @@ html, body {
|
|
|
2077
2077
|
outline: none;
|
|
2078
2078
|
}
|
|
2079
2079
|
}
|
|
2080
|
-
`.installLocal();defaultEmailBody=`<section style="background-color: white; color: black;">\n<section contentEditable="true"> <br/></section>\n<footer data-social-mail-commands="emoji-bar"></footer>\n</section>`;addRecipient=(e,a,type)=>{var _a,_b;if(!a){return}const r=(_a=e.recipients)!==null&&_a!==void 0?_a:e.recipients=[];for(const er of a){const et=(_b=er.emailAddressText)===null||_b===void 0?void 0:_b.toLowerCase();if(r.some((x=>{var _a;return x.emailAddressID?x.emailAddressID===er.emailAddressID:((_a=x.emailAddressText)===null||_a===void 0?void 0:_a.toLowerCase())===et}))){continue}er.type=type;r.push(er)}};_export("default",MiniComposeBox=class MiniComposeBox extends AtomControl{constructor(app,e){super(app,e);this.mailboxContacts=[];this.senderID=null;this.draft=null;this.typedMessage="";this.to=null;this.cc=null;this.bcc=null;this.showSendButton=true;this.showTo=false;this.showCc=false;this.showBcc=false;this.active=false;this.savedSubject=void 0;this.savedBody=void 0;this.element.className=css;this.element.setAttribute("data-mini-compose","mini-compose");this.pushInit()}init(){var _a,_b,_c,_d,_e,_f,_g;return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null));yield sleep(100);(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=null;if(!this.draft){this.ensureDraft()}(_b=this.to)!==null&&_b!==void 0?_b:this.to=[];(_c=this.cc)!==null&&_c!==void 0?_c:this.cc=[];(_d=this.bcc)!==null&&_d!==void 0?_d:this.bcc=[];if(this.draft.recipients){for(const iterator of this.draft.recipients){if(iterator.type==="to"){this.to.add(iterator);this.showTo||(this.showTo=!((_e=this.mailboxContacts)===null||_e===void 0?void 0:_e.some((x=>x.emailAddressID===iterator.emailAddressID))));continue}if(iterator.type==="cc"){this.showTo=true;this.showCc=true;this.cc.add(iterator);continue}if(iterator.type==="bcc"){this.showTo=true;this.showCc=true;this.showBcc=true;this.bcc.add(iterator);continue}}}this.typedMessage=((_f=this.draft)===null||_f===void 0?void 0:_f.htmlBody)?this.draft.htmlBody:defaultEmailBody;this.renderer=XNode.create("div",null,XNode.create(MailHtmlEditor,{toolbar:()=>XNode.create("div",null,XNode.create(Toolbar,null,XNode.create(Insert,{alignment:this.showSendButton?"above":"below"}),XNode.create(Separator,null),XNode.create(Attach,{alignment:this.showSendButton?"above":"below"}),XNode.create(Separator,null),XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,{alignment:this.showSendButton?"above":"below"}),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null)),XNode.create("div",{"data-layout":"vertical-flex-stretch-items","style-width":"100%"},!this.senderID&&XNode.create("div",{"data-layout":"row"},"From: ",XNode.create(MailboxDropDown,{value:Bind.sourceTwoWays(this,(x=>x.source.senderID))})),XNode.create("div",{"data-layout":"row"},XNode.create(TitleEditor,{"data-flex":"stretch-full",class:"subject",placeholder:"Subject ... ",value:Bind.sourceTwoWays(this,(x=>x.source.draft.subject))}),XNode.create("i",{"style-display":Bind.source(this,(x=>!x.source.showTo)),"event-click":()=>this.showTo=true,class:"fas fa-angle-down"})),XNode.create("div",{"data-layout":"row","style-display":Bind.source(this,(x=>x.source.showTo))},XNode.create(EmailRecipientChips,{prompt:"To","data-flex":"stretch-full",items:this.to}),XNode.create("label",{"style-display":Bind.source(this,(x=>!x.source.showCc)),"event-click":()=>this.showCc=true,text:"CC"})),XNode.create("div",{"data-layout":"row","style-display":Bind.source(this,(x=>x.source.showCc))},XNode.create(EmailRecipientChips,{prompt:"Cc","data-flex":"stretch-full",items:this.cc}),XNode.create("label",{"style-display":Bind.source(this,(x=>!x.source.showBcc)),"event-click":()=>this.showBcc=true,text:"BCC"})),XNode.create(EmailRecipientChips,{prompt:"Bcc","data-flex":"stretch-full","style-display":Bind.source(this,(x=>x.source.showBcc)),items:this.bcc}))),"data-element":"editor","data-html-editor":"email-editor",presenter:Bind.presenter((c=>this.editor=c)),content:this.typedMessage,"style-min-height":"50px",attachments:Bind.oneWay((()=>this.draft.attachments))}),this.showSendButton&&XNode.create("i",{"data-element":"send",class:"fa-solid fa-microphone-lines mic","event-click":()=>this.sendAudioMessage(),"style-display":Bind.oneWay((()=>!this.typedMessage))}),this.showSendButton&&XNode.create("i",{"data-element":"send",class:"fa-solid fa-angle-double-right send","style-display":Bind.oneWay((()=>!!this.typedMessage)),"data-click-event":"send-email"}),XNode.create(AtomRepeater,{"data-element":"files",items:Bind.oneWay((()=>{var _a;return(_a=this.draft)===null||_a===void 0?void 0:_a.attachments})),"style-display":Bind.oneWay((()=>this.draft&&this.draft.attachments&&this.draft.attachments.length>0),false),"data-layout":"flex-wrap-padding",itemRenderer:item=>XNode.create("div",{"data-layout":"icon-button"},XNode.create("label",{text:item.name}),XNode.create("i",{"data-click-event":"delete-attachment",class:"fas fa-times-circle","data-cursor":"pointer","data-color":"red"}))}));yield sleep(100);if(!this.draft.subject){(_g=this.editor.element.querySelector(".subject > input"))===null||_g===void 0?void 0:_g.focus();return}const editor=this.editor.element.querySelector(`[data-element="editor"]`);for(const iterator of descendentElementIterator(editor)){if(iterator.isContentEditable){let start=iterator;let next;while((next=start.firstElementChild)&&next.tagName!=="BR"){start=next}start.focus();window.getSelection().setPosition(start.firstElementChild);return}}}))}filesAvailable({files,extra}){return __awaiter(this,void 0,void 0,(function*(){if(extra.stream){yield this.streamFiles({files,extra});return}const size=files.reduce(((pv,cv)=>pv+cv.file.size),0);if(size>20*1024*1024){if(!extra.stream){throw new Error(`Total size of attachments cannot be more than 20MB.`)}}if(extra.insert){this.ensureDraft();const firstChild=this.editor.editor.firstElementChild;for(const iterator of files){if(/^image\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("img");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}if(/^(video|audio)\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("video");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}}return}yield this.addFiles(...files)}))}streamFiles({files,extra}){return __awaiter(this,void 0,void 0,(function*(){}))}deleteAttachment(file){var _a;return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.deleteAttachment(file);(_a=this.draft)===null||_a===void 0?void 0:_a.attachments.remove(file)}))}recreateDraft(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){this.draft=null;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",attachments:[]});(_b=(_c=this.draft).attachments)!==null&&_b!==void 0?_b:_c.attachments=[]}))}onChanged(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.editor)===null||_a===void 0?void 0:_a.htmlTextContent)){return}(_b=this.draft)!==null&&_b!==void 0?_b:this.draft=Email.create({attachments:[]});const{html,text}=this.editor.htmlTextContent;if(this.savedSubject===this.draft.subject&&this.savedBody===html){return}if(this.prevSave){yield this.prevSave}this.savedSubject=this.draft.subject;this.savedBody=html;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save(false)}))}onEmailUnscheduled(mce){return __awaiter(this,void 0,void 0,(function*(){this.draft=mce.email}))}sendEmail(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.draft)===null||_a===void 0?void 0:_a.textBody)){if(!((_c=(_b=this.draft)===null||_b===void 0?void 0:_b.attachments)===null||_c===void 0?void 0:_c.length)){alert("Cannot send empty email");return}}const{html,text}=this.editor.htmlTextContent;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save();const{prevSave}=this;if(prevSave){yield prevSave}this.draft.status="scheduled";this.draft.dateSent=DateTime.now.add(TimeSpan.fromSeconds(30));this.draft.dateUpdated=DateTime.now;yield this.mailService.send(this.draft);const saved=this.draft;this.draft=Email.create({subject:"",senderID:this.senderID,htmlBody:defaultEmailBody,attachments:[]});this.editor.htmlContent=this.draft.htmlBody;this.element.dispatchEvent(new CustomEvent("emailSent",{bubbles:true,detail:saved}))}))}sendAudioMessage(){return __awaiter(this,void 0,void 0,(function*(){const uploadedFile=yield AudioRecorder.show();this.ensureDraft();this.draft.textBody=this.typedMessage;yield this.addFiles(uploadedFile)}))}save(saveAttachments=true){return __awaiter(this,void 0,void 0,(function*(){const{prevSave,saveCancelToken}=this;saveCancelToken===null||saveCancelToken===void 0?void 0:saveCancelToken.cancel();const ct=this.saveCancelToken=new CancelToken;this.prevSave=(()=>__awaiter(this,void 0,void 0,(function*(){try{if(prevSave){yield prevSave}this.draft.senderID=this.senderID;addRecipient(this.draft,this.to,"to");addRecipient(this.draft,this.cc,"cc");addRecipient(this.draft,this.bcc,"bcc");this.draft=yield this.conversationService.draft(this.draft,this.mailboxContacts,true,saveAttachments,ct)}catch(_a){}})))().catch(console.error)}))}addFiles(...files){return __awaiter(this,void 0,void 0,(function*(){this.ensureDraft();const attachments=this.draft.attachments;for(const file of files){attachments.add(this.createAppFile(file))}yield this.save()}))}createAppFile(file){return AppFile.create({appFileID:file.appFileID,contentType:file.file.type,name:file.file.name,contentID:file.appFileID.toString(36),url:file.url})}ensureDraft(){var _a,_b,_c,_d;var _e;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",senderID:this.senderID,attachments:[]});(_b=(_e=this.draft).attachments)!==null&&_b!==void 0?_b:_e.attachments=[];if(!this.draft.recipients){const recipients=this.draft.recipients=[];for(const iterator of this.mailboxContacts){if(recipients.some((x=>x.emailAddressID===iterator.emailAddressID))){continue}recipients.push(EmailRecipient.create({emailAddressID:iterator.emailAddressID,emailAddressText:(_d=(_c=iterator.emailAddress)===null||_c===void 0?void 0:_c.emailAddress)!==null&&_d!==void 0?_d:"",type:"to"}))}}}});__decorate([InjectProperty,__metadata("design:type",ConversationService)],MiniComposeBox.prototype,"conversationService",void 0);__decorate([InjectProperty,__metadata("design:type",MailService)],MiniComposeBox.prototype,"mailService",void 0);__decorate([Action({onEvent:"filesAvailable"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"filesAvailable",null);__decorate([Action({onEvent:"delete-attachment",confirm:"Are you sure you want to delete this attachment?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"deleteAttachment",null);__decorate([Action({onEvent:CommonEvents.onDraftDeleted}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"recreateDraft",null);__decorate([Action({onEvent:"input",defer:500,blockMultipleExecution:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onChanged",null);__decorate([Action({onEvent:CommonEvents.onEmailUnscheduled}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onEmailUnscheduled",null);__decorate([Action({onEvent:"send-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendEmail",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendAudioMessage",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/MiniComposeBox");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../../core/XNode","../../style/styled","./PopupService"],(function(_export,_context){"use strict";var XNode,styled,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_styleStyled){styled=_styleStyled.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow}],execute:function(){css=styled.css`
|
|
2080
|
+
`.installLocal();defaultEmailBody=`<section style="background-color: white; color: black;">\n<section contentEditable="true"> <br/></section>\n<footer data-social-mail-commands="emoji-bar"></footer>\n</section>`;addRecipient=(e,a,type)=>{var _a,_b;if(!a){return}const r=(_a=e.recipients)!==null&&_a!==void 0?_a:e.recipients=[];for(const er of a){const et=(_b=er.emailAddressText)===null||_b===void 0?void 0:_b.toLowerCase();if(r.some((x=>{var _a;return x.emailAddressID?x.emailAddressID===er.emailAddressID:((_a=x.emailAddressText)===null||_a===void 0?void 0:_a.toLowerCase())===et}))){continue}er.type=type;r.push(er)}};_export("default",MiniComposeBox=class MiniComposeBox extends AtomControl{constructor(app,e){super(app,e);this.mailboxContacts=[];this.senderID=null;this.draft=null;this.typedMessage="";this.to=null;this.cc=null;this.bcc=null;this.showSendButton=true;this.showTo=false;this.showCc=false;this.showBcc=false;this.active=false;this.savedSubject=void 0;this.savedBody=void 0;this.element.className=css;this.element.setAttribute("data-mini-compose","mini-compose");this.pushInit()}init(){var _a,_b,_c,_d,_e,_f,_g;return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null));yield sleep(100);(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=null;if(!this.draft){this.ensureDraft()}(_b=this.to)!==null&&_b!==void 0?_b:this.to=[];(_c=this.cc)!==null&&_c!==void 0?_c:this.cc=[];(_d=this.bcc)!==null&&_d!==void 0?_d:this.bcc=[];if(this.draft.recipients){for(const iterator of this.draft.recipients){if(iterator.type==="to"){this.to.add(iterator);this.showTo||(this.showTo=!((_e=this.mailboxContacts)===null||_e===void 0?void 0:_e.some((x=>x.emailAddressID===iterator.emailAddressID))));continue}if(iterator.type==="cc"){this.showTo=true;this.showCc=true;this.cc.add(iterator);continue}if(iterator.type==="bcc"){this.showTo=true;this.showCc=true;this.showBcc=true;this.bcc.add(iterator);continue}}}this.typedMessage=((_f=this.draft)===null||_f===void 0?void 0:_f.htmlBody)?this.draft.htmlBody:defaultEmailBody;this.renderer=XNode.create("div",null,XNode.create(MailHtmlEditor,{toolbar:()=>XNode.create("div",null,XNode.create(Toolbar,null,XNode.create(Insert,{alignment:this.showSendButton?"above":"below"}),XNode.create(Separator,null),XNode.create(Attach,{alignment:this.showSendButton?"above":"below"}),XNode.create(Separator,null),XNode.create(Bold,null),XNode.create(Italic,null),XNode.create(Underline,null),XNode.create(StrikeThrough,null),XNode.create(Align,{alignment:this.showSendButton?"above":"below"}),XNode.create(Separator,null),XNode.create(AddLink,null),XNode.create(Unlink,null)),XNode.create("div",{"data-layout":"vertical-flex-stretch-items","style-width":"100%"},!this.senderID&&XNode.create("div",{"data-layout":"row"},"From: ",XNode.create(MailboxDropDown,{value:Bind.sourceTwoWays(this,(x=>x.source.senderID))})),XNode.create("div",{"data-layout":"row"},XNode.create(TitleEditor,{"data-flex":"stretch-full",class:"subject",placeholder:"Subject ... ",value:Bind.sourceTwoWays(this,(x=>x.source.draft.subject))}),XNode.create("i",{"style-display":Bind.source(this,(x=>!x.source.showTo)),"event-click":()=>this.showTo=true,class:"fas fa-angle-down"})),XNode.create("div",{"data-layout":"row","style-display":Bind.source(this,(x=>x.source.showTo))},XNode.create(EmailRecipientChips,{prompt:"To","data-flex":"stretch-full",items:this.to}),XNode.create("label",{"style-display":Bind.source(this,(x=>!x.source.showCc)),"event-click":()=>this.showCc=true,text:"CC"})),XNode.create("div",{"data-layout":"row","style-display":Bind.source(this,(x=>x.source.showCc))},XNode.create(EmailRecipientChips,{prompt:"Cc","data-flex":"stretch-full",items:this.cc}),XNode.create("label",{"style-display":Bind.source(this,(x=>!x.source.showBcc)),"event-click":()=>this.showBcc=true,text:"BCC"})),XNode.create(EmailRecipientChips,{prompt:"Bcc","data-flex":"stretch-full","style-display":Bind.source(this,(x=>x.source.showBcc)),items:this.bcc}))),"data-element":"editor","data-html-editor":"email-editor",presenter:Bind.presenter((c=>this.editor=c)),content:this.typedMessage,"style-min-height":"50px",attachments:Bind.oneWay((()=>this.draft.attachments))}),this.showSendButton&&XNode.create("i",{"data-element":"send",class:"fa-solid fa-microphone-lines mic","event-click":()=>this.sendAudioMessage(),"style-display":Bind.oneWay((()=>!this.typedMessage))}),this.showSendButton&&XNode.create("i",{"data-element":"send",class:"fa-solid fa-angle-double-right send","style-display":Bind.oneWay((()=>!!this.typedMessage)),"data-click-event":"send-email"}),XNode.create(AtomRepeater,{"data-element":"files",items:Bind.oneWay((()=>{var _a;return(_a=this.draft)===null||_a===void 0?void 0:_a.attachments})),"style-display":Bind.oneWay((()=>this.draft&&this.draft.attachments&&this.draft.attachments.length>0),false),"data-layout":"flex-wrap-padding",itemRenderer:item=>XNode.create("div",{"data-layout":"icon-button"},XNode.create("label",{text:item.name}),XNode.create("i",{"data-click-event":"delete-attachment",class:"fas fa-times-circle","data-cursor":"pointer","data-color":"red"}))}));yield sleep(100);if(!this.draft.subject){(_g=this.editor.element.querySelector(".subject > input"))===null||_g===void 0?void 0:_g.focus();return}const editor=this.editor.element.querySelector(`[data-element="editor"]`);for(const iterator of descendentElementIterator(editor)){if(iterator.isContentEditable){let start=iterator;let next;while((next=start.firstElementChild)&&next.tagName!=="BR"){start=next}start.focus();window.getSelection().setPosition(start.firstElementChild);return}}}))}filesAvailable({files,extra}){return __awaiter(this,void 0,void 0,(function*(){if(extra.stream){yield this.streamFiles({files,extra});return}const size=files.reduce(((pv,cv)=>pv+cv.file.size),0);if(size>20*1024*1024){if(!extra.stream){throw new Error(`Total size of attachments cannot be more than 20MB.`)}}if(extra.insert){this.ensureDraft();const firstChild=this.editor.editor.firstElementChild;for(const iterator of files){if(/^image\//.test(iterator.contentType)){const af=this.createAppFile(iterator);const img=firstChild.ownerDocument.createElement("img");img.src=iterator.url;img.setAttribute("data-content-id",af.contentID);this.draft.attachments.add(af);firstChild.appendChild(img);const newLine=document.createElement("div");newLine.appendChild(document.createElement("br"));firstChild.appendChild(newLine);continue}if(/^(video|audio)\//.test(iterator.contentType)){const af=this.createAppFile(iterator);this.draft.attachments.add(af);const video=firstChild.ownerDocument.createElement("div");const link=af.url;const imgLink=fileUrl.webp(af,700);DomToElement(video,XNode.create("div",null,XNode.create("video",{"data-content-id":af.contentID,"data-stream-enabled":"true",autoplay:true,muted:true,poster:imgLink,src:link},XNode.create("div",null,"If you cannot see the video,",XNode.create("br",null),XNode.create("a",{"data-stream-enabled":"true","data-content-id":af.contentID,href:link},"click this link to open the video.")))));firstChild.appendChild(video);continue}}return}yield this.addFiles(...files)}))}streamFiles({files,extra}){return __awaiter(this,void 0,void 0,(function*(){}))}deleteAttachment(file){var _a;return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.deleteAttachment(file);(_a=this.draft)===null||_a===void 0?void 0:_a.attachments.remove(file)}))}recreateDraft(){var _a,_b;var _c;return __awaiter(this,void 0,void 0,(function*(){this.draft=null;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",attachments:[]});(_b=(_c=this.draft).attachments)!==null&&_b!==void 0?_b:_c.attachments=[]}))}onChanged(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.editor)===null||_a===void 0?void 0:_a.htmlTextContent)){return}(_b=this.draft)!==null&&_b!==void 0?_b:this.draft=Email.create({attachments:[]});const{html,text}=this.editor.htmlTextContent;if(this.savedSubject===this.draft.subject&&this.savedBody===html){return}if(this.prevSave){yield this.prevSave}this.savedSubject=this.draft.subject;this.savedBody=html;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save(false)}))}onEmailUnscheduled(mce){return __awaiter(this,void 0,void 0,(function*(){this.draft=mce.email}))}sendEmail(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(!((_a=this.draft)===null||_a===void 0?void 0:_a.textBody)){if(!((_c=(_b=this.draft)===null||_b===void 0?void 0:_b.attachments)===null||_c===void 0?void 0:_c.length)){alert("Cannot send empty email");return}}const{html,text}=this.editor.htmlTextContent;this.draft.htmlBody=html;this.draft.textBody=text;yield this.save();const{prevSave}=this;if(prevSave){yield prevSave}this.draft.status="scheduled";this.draft.dateSent=DateTime.now.add(TimeSpan.fromSeconds(30));this.draft.dateUpdated=DateTime.now;yield this.mailService.send(this.draft);const saved=this.draft;this.draft=Email.create({subject:"",senderID:this.senderID,htmlBody:defaultEmailBody,attachments:[]});this.editor.htmlContent=this.draft.htmlBody;this.element.dispatchEvent(new CustomEvent("emailSent",{bubbles:true,detail:saved}))}))}sendAudioMessage(){return __awaiter(this,void 0,void 0,(function*(){const uploadedFile=yield AudioRecorder.show();this.ensureDraft();this.draft.textBody=this.typedMessage;yield this.addFiles(uploadedFile)}))}save(saveAttachments=true){return __awaiter(this,void 0,void 0,(function*(){const{prevSave,saveCancelToken}=this;saveCancelToken===null||saveCancelToken===void 0?void 0:saveCancelToken.cancel();const ct=this.saveCancelToken=new CancelToken;this.prevSave=(()=>__awaiter(this,void 0,void 0,(function*(){try{if(prevSave){yield prevSave}this.draft.senderID=this.senderID;addRecipient(this.draft,this.to,"to");addRecipient(this.draft,this.cc,"cc");addRecipient(this.draft,this.bcc,"bcc");this.draft=yield this.conversationService.draft(this.draft,this.mailboxContacts,true,saveAttachments,ct)}catch(_a){}})))().catch(console.error)}))}addFiles(...files){return __awaiter(this,void 0,void 0,(function*(){this.ensureDraft();const attachments=this.draft.attachments;for(const file of files){attachments.add(this.createAppFile(file))}yield this.save()}))}createAppFile(file){return AppFile.create({appFileID:file.appFileID,contentType:file.file.type,name:file.file.name,fileContentID:file.fileContentID,contentID:file.appFileID.toString(36),url:file.url})}ensureDraft(){var _a,_b,_c,_d;var _e;(_a=this.draft)!==null&&_a!==void 0?_a:this.draft=Email.create({subject:"",senderID:this.senderID,attachments:[]});(_b=(_e=this.draft).attachments)!==null&&_b!==void 0?_b:_e.attachments=[];if(!this.draft.recipients){const recipients=this.draft.recipients=[];for(const iterator of this.mailboxContacts){if(recipients.some((x=>x.emailAddressID===iterator.emailAddressID))){continue}recipients.push(EmailRecipient.create({emailAddressID:iterator.emailAddressID,emailAddressText:(_d=(_c=iterator.emailAddress)===null||_c===void 0?void 0:_c.emailAddress)!==null&&_d!==void 0?_d:"",type:"to"}))}}}});__decorate([InjectProperty,__metadata("design:type",ConversationService)],MiniComposeBox.prototype,"conversationService",void 0);__decorate([InjectProperty,__metadata("design:type",MailService)],MiniComposeBox.prototype,"mailService",void 0);__decorate([Action({onEvent:"filesAvailable"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"filesAvailable",null);__decorate([Action({onEvent:"delete-attachment",confirm:"Are you sure you want to delete this attachment?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"deleteAttachment",null);__decorate([Action({onEvent:CommonEvents.onDraftDeleted}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"recreateDraft",null);__decorate([Action({onEvent:"input",defer:500,blockMultipleExecution:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onChanged",null);__decorate([Action({onEvent:CommonEvents.onEmailUnscheduled}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"onEmailUnscheduled",null);__decorate([Action({onEvent:"send-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendEmail",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MiniComposeBox.prototype,"sendAudioMessage",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/mini-compose/MiniComposeBox");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../../core/XNode","../../style/styled","./PopupService"],(function(_export,_context){"use strict";var XNode,styled,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_styleStyled){styled=_styleStyled.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow}],execute:function(){css=styled.css`
|
|
2081
2081
|
padding: 5px;
|
|
2082
2082
|
font-size: larger;
|
|
2083
2083
|
& .error {
|