@social-mail/social-mail-client 1.0.49 → 1.0.50

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.
Files changed (33) hide show
  1. package/dist/admin/AdminAppIndex.pack.js +18 -10
  2. package/dist/admin/AdminAppIndex.pack.js.map +1 -1
  3. package/dist/admin/AdminAppIndex.pack.min.js +3 -3
  4. package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
  5. package/dist/common/controls/drag-drop/FilesDragDrop.js +19 -3
  6. package/dist/common/controls/drag-drop/FilesDragDrop.js.map +1 -1
  7. package/dist/common/controls/tree/TreeView.js +7 -2
  8. package/dist/common/controls/tree/TreeView.js.map +1 -1
  9. package/dist/model/model.js.map +1 -1
  10. package/dist/services/socket/sockets.js +3 -1
  11. package/dist/services/socket/sockets.js.map +1 -1
  12. package/dist/tsconfig.tsbuildinfo +1 -1
  13. package/dist/web/AppIndex.pack.js +208 -23
  14. package/dist/web/AppIndex.pack.js.map +1 -1
  15. package/dist/web/AppIndex.pack.min.js +16 -6
  16. package/dist/web/AppIndex.pack.min.js.map +1 -1
  17. package/dist/web/page/files/FolderPage.js +21 -4
  18. package/dist/web/page/files/FolderPage.js.map +1 -1
  19. package/dist/web/page/files/service/CloudFileService.js +11 -6
  20. package/dist/web/page/files/service/CloudFileService.js.map +1 -1
  21. package/dist/web/page/mails/MailsPage.js +7 -7
  22. package/dist/web/page/mails/MailsPage.js.map +1 -1
  23. package/dist/web/page/mails/service/MailService.js +8 -2
  24. package/dist/web/page/mails/service/MailService.js.map +1 -1
  25. package/package.json +1 -1
  26. package/src/common/controls/drag-drop/FilesDragDrop.ts +18 -3
  27. package/src/common/controls/tree/TreeView.tsx +8 -1
  28. package/src/model/model.ts +1 -0
  29. package/src/services/socket/sockets.ts +3 -1
  30. package/src/web/page/files/FolderPage.tsx +5 -5
  31. package/src/web/page/files/service/CloudFileService.ts +13 -4
  32. package/src/web/page/mails/MailsPage.tsx +8 -7
  33. package/src/web/page/mails/service/MailService.ts +6 -2
@@ -1145,7 +1145,7 @@ body {
1145
1145
  & [data-white-space=nowrap] {
1146
1146
  white-space: nowrap;
1147
1147
  }
1148
- `.installGlobal("div[data-drop-down=drop-down]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/drop-down-style");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater","./styles/drop-down-style"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,BindableProperty,XNode,AtomRepeater,askSuggestion,askSuggestionPopup,disposeChildren,MatchAnyCaseInsensitive,DropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default;askSuggestion=_AtomRepeater.askSuggestion;askSuggestionPopup=_AtomRepeater.askSuggestionPopup;disposeChildren=_AtomRepeater.disposeChildren;MatchAnyCaseInsensitive=_AtomRepeater.MatchAnyCaseInsensitive},function(_stylesDropDownStyle){}],execute:function(){_export("default",DropDown=class DropDown extends AtomRepeater{constructor(){super(...arguments);this.isPopupOpen=false}updateItems(container){}onPropertyChanged(name){super.onPropertyChanged(name);switch(name){case"labelPath":this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});break;case"prompt":this.updateClasses();break}}preCreate(){super.preCreate();this.disableSearch=false;this.prompt="Select";this.popupSuggestions=true;this.bindEvent(this.element,"click",(e=>this.openPopup(e)));this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});this.element.dataset.dropDown="drop-down";this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})))}openPopup(e){var _a,_b,_c,_d,_e;return __awaiter(this,void 0,void 0,(function*(){if(this.isPopupOpen){return}this.isPopupOpen=true;try{if(!this.popupSuggestions){const selected=yield askSuggestion(this.items,(_a=this.suggestionRenderer)!==null&&_a!==void 0?_a:this.itemRenderer,(_b=this.match)!==null&&_b!==void 0?_b:MatchAnyCaseInsensitive(this.labelPath),{title:(_c=this.suggestionPrompt)!==null&&_c!==void 0?_c:this.prompt});this.selectedItem=selected;return}const selectedItem=yield askSuggestionPopup(this,this.items,(_d=this.suggestionRenderer)!==null&&_d!==void 0?_d:this.itemRenderer,(_e=this.match)!==null&&_e!==void 0?_e:MatchAnyCaseInsensitive(this.labelPath),this.selectedItem);if(this.selectedItem!==selectedItem){this.selectedItem=selectedItem;this.element.dispatchEvent(new CustomEvent("selectionChanged",{bubbles:true,detail:selectedItem,cancelable:true}))}}finally{this.isPopupOpen=false}}))}updateClasses(){var _a;disposeChildren(this,this.element);const ir=this.itemRenderer;if(!ir){return}if(!this.selectedItem){this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})));return}const selectedItem=this.selectedItem;const index=this.items.indexOf(selectedItem);const node=ir(selectedItem,index,this);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};if(!na["data-white-space"]){na["data-white-space"]="nowrap"}this.render(XNode.create("div",null,node,XNode.create("i",{class:"fad fa-caret-circle-down"})))}});__decorate([BindableProperty,__metadata("design:type",Boolean)],DropDown.prototype,"popupSuggestions",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"search",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"prompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"suggestionPrompt",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"labelPath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"match",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"suggestionRenderer",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/DropDown");System.register([],(function(_export,_context){"use strict";var Sql;return{setters:[],execute:function(){_export("Sql",Sql=void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Sql");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __decorate,__metadata,DITransient,Inject,EntityService,User,Sql,AdminUserService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){User=_modelModel.User},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){AdminUserService=class AdminUserService{list({search="",start=0,size=50,cancelToken}){let q=this.entityService.query(User);if(search){if(/\^d+$/.test(search)){q=q.where({search},(p=>x=>x.userID===Sql.cast.asBigInt(p.search)))}const startsWith=search+"%";q=q.where({startsWith},(p=>x=>Sql.text.iLike(x.userName,p.startsWith)||Sql.text.iLike(x.displayName,p.startsWith)))}return q.include((x=>x.domainUsers.forEach((d=>d.hostedDomain.domain)))).toPagedList({start,size,cancelToken})}save(user){const cloner=this.entityService.cloner(user).include((x=>x.domainUsers)).include((x=>x.userMailboxes)).thenInclude((x=>x.mailbox));return this.entityService.save(cloner.copy)}};__decorate([Inject,__metadata("design:type",EntityService)],AdminUserService.prototype,"entityService",void 0);AdminUserService=__decorate([DITransient()],AdminUserService);_export("default",AdminUserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/DropDown","../../../../admin/pages/users/services/AdminUserService","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,DropDown,AdminUserService,XNode,Bind,UserDropDown;_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(_adminPagesUsersServicesAdminUserService){AdminUserService=_adminPagesUsersServicesAdminUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",UserDropDown=class UserDropDown extends DropDown{init(){return __awaiter(this,void 0,void 0,(function*(){this.search="";this.valuePath=user=>user.userID;this.itemRenderer=user=>XNode.create("div",null,user.displayName," (",user.userID,", ",user.userName,")");this.render(XNode.create("div",{items:Bind.oneWayAsync(((s,e,cancelToken)=>__awaiter(this,void 0,void 0,(function*(){return(yield this.userService.list({search:this.search,start:0,size:20,cancelToken})).items}))))}))}))}preCreate(){super.preCreate();this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserDropDown.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/drop-downs/user/UserDropDown","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Checkbox","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","../../../../services/EntityService","@web-atoms/core/dist/core/InjectProperty"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,UserDropDown,Bind,Checkbox,SaveIconTextButton,Action,EntityService,InjectProperty,DomainUserEditor;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsDropDownsUserUserDropDown){UserDropDown=_commonControlsDropDownsUserUserDropDown.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default}],execute:function(){_export("default",DomainUserEditor=class DomainUserEditor extends PopupWindowPage{init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).isAdmin)!==null&&_a!==void 0?_a:_b.isAdmin=false;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-domain-user"},XNode.create(FormField,{label:"User"},XNode.create(UserDropDown,{value:Bind.twoWaysImmediate((()=>this.model.userID))})),XNode.create(FormField,{label:"Admin"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isAdmin)),text:"Is Administrator (Can Create and View all mailboxes)"})),XNode.create(FormField,{"style-display":Bind.oneWay((()=>!this.model.isAdmin)),label:"Can Create Mailboxes"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.allowCreateMailbox)),text:"Can create Mailboxes"})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-type":"submit"}))))}))}saveDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(this.model).copy;yield this.entityService.save(cloner);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],DomainUserEditor.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-domain-user",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainUserEditor.prototype,"saveDomainUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor");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"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,Domain,DomainKey,DomainUser,HostedDomain,XNode,Form,TextFormField,Bind,Action,InjectProperty,AdminDomainService,Checkbox,AtomRepeater,Expander,AddIconTextButton,DeleteIconButton,SetupFolderIconButton,AdminCommands,EntityService,PageNavigator,DomainKeySetupPage,DomainUserEditor,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;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}],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;var _d,_e;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=(_d=this.model).domainKeys)!==null&&_b!==void 0?_b:_d.domainKeys=[];(_c=(_e=this.model).relays)!==null&&_c!==void 0?_c:_e.relays=[];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"}))})),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)}))}});__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)}}}));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/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,Bind,CancelToken,XNode,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(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){loadMoreSet=Symbol("loadMoreSet");pagedItemsSetter=AtomControl.registerProperty("paged-items","paged-items",((control,element,value)=>{var _b,_c;if(value&&value.items){let cancelToken=control[loadMoreSet];(_b=control.footerRenderer)!==null&&_b!==void 0?_b:control.footerRenderer=()=>XNode.create("div",{"data-click-event":"load-more-items"},XNode.create("span",{text:"Load more ... "}));(_c=control.headerRenderer)!==null&&_c!==void 0?_c:control.headerRenderer=()=>XNode.create("div",{class:"scroll-header","style-height":"1px","style-width":"100%"});if(!cancelToken){control[loadMoreSet]=cancelToken=new CancelToken;control.bindEvent(control.element,"loadMoreItems",(e=>{const ce=new CustomEvent("moreItems",{detail:{pagedItems:control.pagedItems,cancelToken},bubbles:false});control.element.dispatchEvent(ce)}))}else{cancelToken.cancel();control[loadMoreSet]=cancelToken=new CancelToken}const items=control.items;if(items&&Array.isArray(items)){items.clear();items.addAll(value.items)}else{control.items=value.items}setTimeout((()=>{var _b;const ce=(_b=control.element)===null||_b===void 0?void 0:_b.firstElementChild;ce===null||ce===void 0?void 0:ce.scrollIntoView()}),100);control.footer=value.total&&value.items&&value.items.length<value.total;control.pagedItems=value}}));scrollToBottom=({target,detail:{type,index}})=>{if(!(type==="add"&&index===0)&&type!=="reset"){return}setTimeout((()=>{const e=target.firstElementChild;console.log(e);e===null||e===void 0?void 0:e.scrollIntoView(true)}),1)};_export("default",InfiniteRepeater=class InfiniteRepeater{});_a=InfiniteRepeater;InfiniteRepeater.pagedItems=start=>{const setter=start(0);const setters=pagedItemsSetter(Bind.oneWayAsync(setter));setters["event-more-items"]=Bind.event(((s,e)=>__awaiter(void 0,void 0,void 0,(function*(){var _b,_c;const st=(_c=(_b=s.items)===null||_b===void 0?void 0:_b.length)!==null&&_c!==void 0?_c:0;if(!st){return}const cancelToken=s[loadMoreSet];const loader=start(st);const results=yield loader(s,e.target,cancelToken);s.items.addAll(results.items);s.footer=results.items.length>0}))));return setters}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater");System.register([],(function(_export,_context){"use strict";var Validators;return{setters:[],execute:function(){_export("Validators",Validators={checkPassword:password=>{const hasMinimumLength=password.length>=7;const hasNumber=/\d/.test(password);const hasSymbol=/[\@\#\$\%\^\&\*\!]/.test(password);return{hasMinimumLength,hasNumber,hasSymbol,isValid:hasMinimumLength&&hasNumber&&hasSymbol}},isValidPassword:password=>Validators.checkPassword(password).isValid})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/validators/Validators");System.register(["@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","../../validators/Validators"],(function(_export,_context){"use strict";var Bind,XNode,AtomControl,Validators,PasswordStrength;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_validatorsValidators){Validators=_validatorsValidators.Validators}],execute:function(){_export("default",PasswordStrength=class PasswordStrength extends AtomControl{constructor(){super(...arguments);this.password="";this.validation={hasMinimumLength:false,hasNumber:false,hasSymbol:false,isValid:false}}preCreate(){this.render(XNode.create("div",{"data-layout":"vertical-flex",validation:Bind.oneWay((()=>Validators.checkPassword(this.password)))},XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasMinimumLength?"green":"red")),class:Bind.oneWay((()=>this.validation.hasMinimumLength?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password is at least 7 characters long."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasNumber?"green":"red")),class:Bind.oneWay((()=>this.validation.hasNumber?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a number."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasSymbol?"green":"red")),class:Bind.oneWay((()=>this.validation.hasSymbol?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a symbol."}))))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/core/dist/core/Bind","../../../common/validators/Validators","../../../common/controls/password/PasswordStrength","@web-atoms/core/dist/view-model/Action","../../../services/EntityService","@web-atoms/date-time/dist/DateTime","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,PasswordBox,Bind,Validators,PasswordStrength,Action,EntityService,DateTime,Checkbox,EditUserPage;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonValidatorsValidators){Validators=_commonValidatorsValidators.Validators},function(_commonControlsPasswordPasswordStrength){PasswordStrength=_commonControlsPasswordPasswordStrength.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",EditUserPage=class EditUserPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).changePassword)!==null&&_a!==void 0?_a:_b.changePassword={newPassword:"",forceChangePasswordOnLogin:true};this.title=this.model.userID?`Reset Password for ${this.model.displayName} (${this.model.userID}, ${this.model.userName})`:"Add New User";this.renderer=XNode.create("div",null,XNode.create(Form,null,!this.model.userID&&XNode.create(FormField,{label:"Display Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.displayName))})),!this.model.userID&&XNode.create(FormField,{label:"Username"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.userName))})),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password is invalid"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password again",required:true,error:Bind.oneWay((()=>this.password!==this.model.changePassword.newPassword?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.changePassword.newPassword))})),XNode.create(FormField,{label:"Force Change Password"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.changePassword.forceChangePasswordOnLogin)),text:"Force user to change password on next login."})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"reset-password",text:"Save"}))))}))}resetPassword(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);this.model.dateUpdated=DateTime.utcNow;const clone=entityService.cloner(this.model).include((x=>x.changePassword)).copy;yield entityService.save(clone)}))}});__decorate([Action({onEvent:"reset-password",success:"Information saved successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditUserPage.prototype,"resetPassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage");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","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","../../../common/controls/repeater/InfiniteRepeater","@web-atoms/core/dist/core/Bind","./EditUserPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Action,PageNavigator,AtomRepeater,ContentPage,User,AdminUserService,InjectProperty,InfiniteRepeater,Bind,EditUserPage,UserListPage;_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(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},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}],execute:function(){_export("default",UserListPage=class UserListPage extends ContentPage{constructor(){super(...arguments);this.users=[];this.version=0}init(){return __awaiter(this,void 0,void 0,(function*(){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))}));this.search="";this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table",items:this.users},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({start,search:this.search,cancelToken}))),{itemRenderer:user=>XNode.create("tr",null,XNode.create("td",null,user.userID),XNode.create("td",null,user.userName),XNode.create("td",null,user.displayName),XNode.create("td",null,XNode.create("i",{"data-cursor":"pointer",class:"fas fa-key",title:"Change Password","data-click-event":"user-change-password"})))})))}))}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:"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/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,Domain,Mailbox,Sql,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){Domain=_modelModel.Domain;Mailbox=_modelModel.Mailbox},function(_Sql){Sql=_Sql.Sql}],execute:function(){MailboxService=class MailboxService{domains(){return this.entityService.query(Domain).toArray()}list({search="",start=0,size=50,version=0,cancelToken}){let q=this.entityService.query(Mailbox);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)))}}return q.include((x=>x.emailAddress)).toPagedList({start,size,cancelToken})}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);yield this.entityService.save(cloner.copy);return model}))}};__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/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 first=selectedItems[0];this.element.selectedIndex=(_b=(_a=this.items)===null||_a===void 0?void 0:_a.indexOf(first))!==null&&_b!==void 0?_b:-1;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/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"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,EmailAddress,Mailbox,XNode,Form,TextFormField,FormField,ComboBox,MailboxService,InjectProperty,Bind,Action,SocialMailApp,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},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}],execute:function(){_export("default",MailboxEditorPage=class MailboxEditorPage extends PopupWindowPage{constructor(){super(...arguments);this.domain=null}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.title="Add 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});this.model.username="";const domains=yield this.mailboxService.domains();this.model.domain=domains[0];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)),items:domains})),XNode.create(FormField,{label:"Email Address"},XNode.create("span",{text:Bind.oneWay((()=>`${this.model.username}@${this.model.domain.domain}`))})),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*(){this.model.domainID=this.model.domain.domainID;yield this.mailboxService.save(this.model);return this.model}))}});__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)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");System.register([],(function(_export,_context){"use strict";var k,m,b,kb,mb,gb,toCompactFixed,toKMBString,toFileSize,formatNumber;return{setters:[],execute:function(){k=1e3;m=k*k;b=m*k;kb=1024;mb=k*k;gb=m*k;_export("toCompactFixed",toCompactFixed=(n,decimals)=>{let text=n.toFixed(decimals);if(decimals>0){while(text.endsWith("0")){text=text.substring(0,text.length-1)}if(text.endsWith(".")){text=text.substring(0,text.length-1)}}return text});_export("toKMBString",toKMBString=(n,decimals=0,def="")=>{if(!n){return def+""}if(n>b){return toCompactFixed(n/b,decimals)+"B"}if(n>m){return toCompactFixed(n/m,decimals)+"M"}if(n>k){return toCompactFixed(n/k,decimals)+"K"}return toCompactFixed(n,0)});_export("toFileSize",toFileSize=(n,decimals=0,def="")=>{n=Number(n);if(n===0){return"0 B"}if(!n){return def+""}if(n>gb){return toCompactFixed(n/gb,decimals)+" GB"}if(n>mb){return toCompactFixed(n/mb,decimals)+" MB"}if(n>kb){return toCompactFixed(n/kb,decimals)+" KB"}return toCompactFixed(n,0)});_export("formatNumber",formatNumber=(n,{prefix="",suffix="",def="",numberToText=toKMBString}={})=>{if(!n){return def}const text=numberToText(n);return prefix+text+suffix})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/NumberFormats");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Mailbox,MailboxThread,Sql,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){Mailbox=_modelModel.Mailbox;MailboxThread=_modelModel.MailboxThread},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){MailService=class MailService{mailboxes(){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(Mailbox).include((x=>x.emailAddress)).toArray()}))}list({search="",mailboxID,start=0,size=100,version=1,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxThread).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID)).orderByDescending((x=>x.lastEmailID));if(search){const likeSearch=`%${search}%`;q=q.where({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.like(x.lastEmail.textBody,p.likeSearch)))}return q.include((x=>[x.emailAddress,x.lastEmail.recipients,x.lastEmail.attachments])).toPagedList({start,size,cancelToken})}))}send(email){return __awaiter(this,void 0,void 0,(function*(){for(const iterator of email.recipients){if(iterator.emailAddressText){iterator.emailAddressText=iterator.emailAddressText.trim()}}const cloner=this.entityService.cloner(email).include((x=>x.recipients)).include((x=>x.attachments)).copy;yield this.entityService.save(cloner)}))}};__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(["@web-atoms/core/dist/style/styled","../PageNavigator","./MobileApp","@web-atoms/core/dist/web/core/AtomUI","../basic/AtomRepeater"],(function(_export,_context){"use strict";var styled,PageNavigator,ContentPage,isMobileView,descendentElementIterator,AtomRepeater,MasterDetailPage,findItem;_export("default",void 0);return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_PageNavigator){PageNavigator=_PageNavigator.default},function(_MobileApp){ContentPage=_MobileApp.ContentPage;isMobileView=_MobileApp.isMobileView},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_basicAtomRepeater){AtomRepeater=_basicAtomRepeater.default}],execute:function(){styled.css`
1148
+ `.installGlobal("div[data-drop-down=drop-down]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/drop-down-style");System.register(["tslib","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","./AtomRepeater","./styles/drop-down-style"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,BindableProperty,XNode,AtomRepeater,askSuggestion,askSuggestionPopup,disposeChildren,MatchAnyCaseInsensitive,DropDown;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default;askSuggestion=_AtomRepeater.askSuggestion;askSuggestionPopup=_AtomRepeater.askSuggestionPopup;disposeChildren=_AtomRepeater.disposeChildren;MatchAnyCaseInsensitive=_AtomRepeater.MatchAnyCaseInsensitive},function(_stylesDropDownStyle){}],execute:function(){_export("default",DropDown=class DropDown extends AtomRepeater{constructor(){super(...arguments);this.isPopupOpen=false}updateItems(container){}onPropertyChanged(name){super.onPropertyChanged(name);switch(name){case"labelPath":this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});break;case"prompt":this.updateClasses();break}}preCreate(){super.preCreate();this.disableSearch=false;this.prompt="Select";this.popupSuggestions=true;this.bindEvent(this.element,"click",(e=>this.openPopup(e)));this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});this.element.dataset.dropDown="drop-down";this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})))}openPopup(e){var _a,_b,_c,_d,_e;return __awaiter(this,void 0,void 0,(function*(){if(this.isPopupOpen){return}this.isPopupOpen=true;try{if(!this.popupSuggestions){const selected=yield askSuggestion(this.items,(_a=this.suggestionRenderer)!==null&&_a!==void 0?_a:this.itemRenderer,(_b=this.match)!==null&&_b!==void 0?_b:MatchAnyCaseInsensitive(this.labelPath),{title:(_c=this.suggestionPrompt)!==null&&_c!==void 0?_c:this.prompt});this.selectedItem=selected;return}const selectedItem=yield askSuggestionPopup(this,this.items,(_d=this.suggestionRenderer)!==null&&_d!==void 0?_d:this.itemRenderer,(_e=this.match)!==null&&_e!==void 0?_e:MatchAnyCaseInsensitive(this.labelPath),this.selectedItem);if(this.selectedItem!==selectedItem){this.selectedItem=selectedItem;this.element.dispatchEvent(new CustomEvent("selectionChanged",{bubbles:true,detail:selectedItem,cancelable:true}))}}finally{this.isPopupOpen=false}}))}updateClasses(){var _a;disposeChildren(this,this.element);const ir=this.itemRenderer;if(!ir){return}if(!this.selectedItem){this.render(XNode.create("div",null,XNode.create("div",{"data-white-space":"nowrap",text:this.prompt}),XNode.create("i",{class:"fad fa-caret-circle-down"})));return}const selectedItem=this.selectedItem;const index=this.items.indexOf(selectedItem);const node=ir(selectedItem,index,this);const na=(_a=node.attributes)!==null&&_a!==void 0?_a:node.attributes={};if(!na["data-white-space"]){na["data-white-space"]="nowrap"}this.render(XNode.create("div",null,node,XNode.create("i",{class:"fad fa-caret-circle-down"})))}});__decorate([BindableProperty,__metadata("design:type",Boolean)],DropDown.prototype,"popupSuggestions",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"search",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"prompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],DropDown.prototype,"suggestionPrompt",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"labelPath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"match",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],DropDown.prototype,"suggestionRenderer",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/DropDown");System.register([],(function(_export,_context){"use strict";var Sql;return{setters:[],execute:function(){_export("Sql",Sql=void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Sql");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __decorate,__metadata,DITransient,Inject,EntityService,User,Sql,AdminUserService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){User=_modelModel.User},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){AdminUserService=class AdminUserService{list({search="",start=0,size=50,cancelToken}){let q=this.entityService.query(User);if(search){if(/\^d+$/.test(search)){q=q.where({search},(p=>x=>x.userID===Sql.cast.asBigInt(p.search)))}const startsWith=search+"%";q=q.where({startsWith},(p=>x=>Sql.text.iLike(x.userName,p.startsWith)||Sql.text.iLike(x.displayName,p.startsWith)))}return q.include((x=>x.domainUsers.forEach((d=>d.hostedDomain.domain)))).toPagedList({start,size,cancelToken})}save(user){const cloner=this.entityService.cloner(user).include((x=>x.domainUsers)).include((x=>x.userMailboxes)).thenInclude((x=>x.mailbox));return this.entityService.save(cloner.copy)}};__decorate([Inject,__metadata("design:type",EntityService)],AdminUserService.prototype,"entityService",void 0);AdminUserService=__decorate([DITransient()],AdminUserService);_export("default",AdminUserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/services/AdminUserService");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/DropDown","../../../../admin/pages/users/services/AdminUserService","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,DropDown,AdminUserService,XNode,Bind,UserDropDown;_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(_adminPagesUsersServicesAdminUserService){AdminUserService=_adminPagesUsersServicesAdminUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",UserDropDown=class UserDropDown extends DropDown{init(){return __awaiter(this,void 0,void 0,(function*(){this.search="";this.valuePath=user=>user.userID;this.itemRenderer=user=>XNode.create("div",null,user.displayName," (",user.userID,", ",user.userName,")");this.render(XNode.create("div",{items:Bind.oneWayAsync(((s,e,cancelToken)=>__awaiter(this,void 0,void 0,(function*(){return(yield this.userService.list({search:this.search,start:0,size:20,cancelToken})).items}))))}))}))}preCreate(){super.preCreate();this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}});__decorate([InjectProperty,__metadata("design:type",AdminUserService)],UserDropDown.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/drop-downs/user/UserDropDown");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/drop-downs/user/UserDropDown","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Checkbox","../../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","../../../../services/EntityService","@web-atoms/core/dist/core/InjectProperty"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,UserDropDown,Bind,Checkbox,SaveIconTextButton,Action,EntityService,InjectProperty,DomainUserEditor;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsDropDownsUserUserDropDown){UserDropDown=_commonControlsDropDownsUserUserDropDown.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_commonControlsButtonsIconButton){SaveIconTextButton=_commonControlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default}],execute:function(){_export("default",DomainUserEditor=class DomainUserEditor extends PopupWindowPage{init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).isAdmin)!==null&&_a!==void 0?_a:_b.isAdmin=false;this.renderer=XNode.create("div",null,XNode.create(Form,{"data-submit-event":"save-domain-user"},XNode.create(FormField,{label:"User"},XNode.create(UserDropDown,{value:Bind.twoWaysImmediate((()=>this.model.userID))})),XNode.create(FormField,{label:"Admin"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.isAdmin)),text:"Is Administrator (Can Create and View all mailboxes)"})),XNode.create(FormField,{"style-display":Bind.oneWay((()=>!this.model.isAdmin)),label:"Can Create Mailboxes"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.allowCreateMailbox)),text:"Can create Mailboxes"})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-type":"submit"}))))}))}saveDomainUser(){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(this.model).copy;yield this.entityService.save(cloner);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],DomainUserEditor.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-domain-user",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],DomainUserEditor.prototype,"saveDomainUser",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/domains/domain-user/DomainUserEditor");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"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,Domain,DomainKey,DomainUser,HostedDomain,XNode,Form,TextFormField,Bind,Action,InjectProperty,AdminDomainService,Checkbox,AtomRepeater,Expander,AddIconTextButton,DeleteIconButton,SetupFolderIconButton,AdminCommands,EntityService,PageNavigator,DomainKeySetupPage,DomainUserEditor,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;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}],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;var _d,_e;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=(_d=this.model).domainKeys)!==null&&_b!==void 0?_b:_d.domainKeys=[];(_c=(_e=this.model).relays)!==null&&_c!==void 0?_c:_e.relays=[];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"}))})),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)}))}});__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)}}}));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/web/controls/AtomControl"],(function(_export,_context){"use strict";var __awaiter,Bind,CancelToken,XNode,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(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl}],execute:function(){loadMoreSet=Symbol("loadMoreSet");pagedItemsSetter=AtomControl.registerProperty("paged-items","paged-items",((control,element,value)=>{var _b,_c;if(value&&value.items){let cancelToken=control[loadMoreSet];(_b=control.footerRenderer)!==null&&_b!==void 0?_b:control.footerRenderer=()=>XNode.create("div",{"data-click-event":"load-more-items"},XNode.create("span",{text:"Load more ... "}));(_c=control.headerRenderer)!==null&&_c!==void 0?_c:control.headerRenderer=()=>XNode.create("div",{class:"scroll-header","style-height":"1px","style-width":"100%"});if(!cancelToken){control[loadMoreSet]=cancelToken=new CancelToken;control.bindEvent(control.element,"loadMoreItems",(e=>{const ce=new CustomEvent("moreItems",{detail:{pagedItems:control.pagedItems,cancelToken},bubbles:false});control.element.dispatchEvent(ce)}))}else{cancelToken.cancel();control[loadMoreSet]=cancelToken=new CancelToken}const items=control.items;if(items&&Array.isArray(items)){items.clear();items.addAll(value.items)}else{control.items=value.items}setTimeout((()=>{var _b;const ce=(_b=control.element)===null||_b===void 0?void 0:_b.firstElementChild;ce===null||ce===void 0?void 0:ce.scrollIntoView()}),100);control.footer=value.total&&value.items&&value.items.length<value.total;control.pagedItems=value}}));scrollToBottom=({target,detail:{type,index}})=>{if(!(type==="add"&&index===0)&&type!=="reset"){return}setTimeout((()=>{const e=target.firstElementChild;console.log(e);e===null||e===void 0?void 0:e.scrollIntoView(true)}),1)};_export("default",InfiniteRepeater=class InfiniteRepeater{});_a=InfiniteRepeater;InfiniteRepeater.pagedItems=start=>{const setter=start(0);const setters=pagedItemsSetter(Bind.oneWayAsync(setter));setters["event-more-items"]=Bind.event(((s,e)=>__awaiter(void 0,void 0,void 0,(function*(){var _b,_c;const st=(_c=(_b=s.items)===null||_b===void 0?void 0:_b.length)!==null&&_c!==void 0?_c:0;if(!st){return}const cancelToken=s[loadMoreSet];const loader=start(st);const results=yield loader(s,e.target,cancelToken);s.items.addAll(results.items);s.footer=results.items.length>0}))));return setters}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/repeater/InfiniteRepeater");System.register([],(function(_export,_context){"use strict";var Validators;return{setters:[],execute:function(){_export("Validators",Validators={checkPassword:password=>{const hasMinimumLength=password.length>=7;const hasNumber=/\d/.test(password);const hasSymbol=/[\@\#\$\%\^\&\*\!]/.test(password);return{hasMinimumLength,hasNumber,hasSymbol,isValid:hasMinimumLength&&hasNumber&&hasSymbol}},isValidPassword:password=>Validators.checkPassword(password).isValid})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/validators/Validators");System.register(["@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","../../validators/Validators"],(function(_export,_context){"use strict";var Bind,XNode,AtomControl,Validators,PasswordStrength;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_validatorsValidators){Validators=_validatorsValidators.Validators}],execute:function(){_export("default",PasswordStrength=class PasswordStrength extends AtomControl{constructor(){super(...arguments);this.password="";this.validation={hasMinimumLength:false,hasNumber:false,hasSymbol:false,isValid:false}}preCreate(){this.render(XNode.create("div",{"data-layout":"vertical-flex",validation:Bind.oneWay((()=>Validators.checkPassword(this.password)))},XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasMinimumLength?"green":"red")),class:Bind.oneWay((()=>this.validation.hasMinimumLength?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password is at least 7 characters long."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasNumber?"green":"red")),class:Bind.oneWay((()=>this.validation.hasNumber?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a number."})),XNode.create("div",{"data-layout":"row"},XNode.create("i",{"data-color":Bind.oneWay((()=>this.validation.hasSymbol?"green":"red")),class:Bind.oneWay((()=>this.validation.hasSymbol?"fas fa-check":"fas fa-times"))}),XNode.create("span",{text:"Password has a symbol."}))))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/password/PasswordStrength");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/core/dist/core/Bind","../../../common/validators/Validators","../../../common/controls/password/PasswordStrength","@web-atoms/core/dist/view-model/Action","../../../services/EntityService","@web-atoms/date-time/dist/DateTime","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,XNode,Form,FormField,PasswordBox,Bind,Validators,PasswordStrength,Action,EntityService,DateTime,Checkbox,EditUserPage;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonValidatorsValidators){Validators=_commonValidatorsValidators.Validators},function(_commonControlsPasswordPasswordStrength){PasswordStrength=_commonControlsPasswordPasswordStrength.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",EditUserPage=class EditUserPage extends PopupWindowPage{constructor(){super(...arguments);this.password=""}init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=this.parameters;(_a=(_b=this.model).changePassword)!==null&&_a!==void 0?_a:_b.changePassword={newPassword:"",forceChangePasswordOnLogin:true};this.title=this.model.userID?`Reset Password for ${this.model.displayName} (${this.model.userID}, ${this.model.userName})`:"Add New User";this.renderer=XNode.create("div",null,XNode.create(Form,null,!this.model.userID&&XNode.create(FormField,{label:"Display Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.displayName))})),!this.model.userID&&XNode.create(FormField,{label:"Username"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.userName))})),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password is invalid"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password again",required:true,error:Bind.oneWay((()=>this.password!==this.model.changePassword.newPassword?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.changePassword.newPassword))})),XNode.create(FormField,{label:"Force Change Password"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.changePassword.forceChangePasswordOnLogin)),text:"Force user to change password on next login."})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"reset-password",text:"Save"}))))}))}resetPassword(){return __awaiter(this,void 0,void 0,(function*(){const entityService=this.resolve(EntityService);this.model.dateUpdated=DateTime.utcNow;const clone=entityService.cloner(this.model).include((x=>x.changePassword)).copy;yield entityService.save(clone)}))}});__decorate([Action({onEvent:"reset-password",success:"Information saved successfully.",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],EditUserPage.prototype,"resetPassword",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/users/EditUserPage");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","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../model/model","./services/AdminUserService","@web-atoms/core/dist/core/InjectProperty","../../../common/controls/repeater/InfiniteRepeater","@web-atoms/core/dist/core/Bind","./EditUserPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Action,PageNavigator,AtomRepeater,ContentPage,User,AdminUserService,InjectProperty,InfiniteRepeater,Bind,EditUserPage,UserListPage;_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(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},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}],execute:function(){_export("default",UserListPage=class UserListPage extends ContentPage{constructor(){super(...arguments);this.users=[];this.version=0}init(){return __awaiter(this,void 0,void 0,(function*(){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))}));this.search="";this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({for:"table",items:this.users},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.userService.list({start,search:this.search,cancelToken}))),{itemRenderer:user=>XNode.create("tr",null,XNode.create("td",null,user.userID),XNode.create("td",null,user.userName),XNode.create("td",null,user.displayName),XNode.create("td",null,XNode.create("i",{"data-cursor":"pointer",class:"fas fa-key",title:"Change Password","data-click-event":"user-change-password"})))})))}))}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:"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/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,Domain,Mailbox,Sql,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){Domain=_modelModel.Domain;Mailbox=_modelModel.Mailbox},function(_Sql){Sql=_Sql.Sql}],execute:function(){MailboxService=class MailboxService{domains(){return this.entityService.query(Domain).toArray()}list({search="",start=0,size=50,version=0,cancelToken}){let q=this.entityService.query(Mailbox);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)))}}return q.include((x=>x.emailAddress)).toPagedList({start,size,cancelToken})}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);yield this.entityService.save(cloner.copy);return model}))}};__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/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 first=selectedItems[0];this.element.selectedIndex=(_b=(_a=this.items)===null||_a===void 0?void 0:_a.indexOf(first))!==null&&_b!==void 0?_b:-1;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/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"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,EmailAddress,Mailbox,XNode,Form,TextFormField,FormField,ComboBox,MailboxService,InjectProperty,Bind,Action,SocialMailApp,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},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}],execute:function(){_export("default",MailboxEditorPage=class MailboxEditorPage extends PopupWindowPage{constructor(){super(...arguments);this.domain=null}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.title="Add 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});this.model.username="";const domains=yield this.mailboxService.domains();this.model.domain=domains[0];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)),items:domains})),XNode.create(FormField,{label:"Email Address"},XNode.create("span",{text:Bind.oneWay((()=>`${this.model.username}@${this.model.domain.domain}`))})),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*(){this.model.domainID=this.model.domain.domainID;yield this.mailboxService.save(this.model);return this.model}))}});__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)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxEditorPage");System.register([],(function(_export,_context){"use strict";var k,m,b,kb,mb,gb,toCompactFixed,toKMBString,toFileSize,formatNumber;return{setters:[],execute:function(){k=1e3;m=k*k;b=m*k;kb=1024;mb=k*k;gb=m*k;_export("toCompactFixed",toCompactFixed=(n,decimals)=>{let text=n.toFixed(decimals);if(decimals>0){while(text.endsWith("0")){text=text.substring(0,text.length-1)}if(text.endsWith(".")){text=text.substring(0,text.length-1)}}return text});_export("toKMBString",toKMBString=(n,decimals=0,def="")=>{if(!n){return def+""}if(n>b){return toCompactFixed(n/b,decimals)+"B"}if(n>m){return toCompactFixed(n/m,decimals)+"M"}if(n>k){return toCompactFixed(n/k,decimals)+"K"}return toCompactFixed(n,0)});_export("toFileSize",toFileSize=(n,decimals=0,def="")=>{n=Number(n);if(n===0){return"0 B"}if(!n){return def+""}if(n>gb){return toCompactFixed(n/gb,decimals)+" GB"}if(n>mb){return toCompactFixed(n/mb,decimals)+" MB"}if(n>kb){return toCompactFixed(n/kb,decimals)+" KB"}return toCompactFixed(n,0)});_export("formatNumber",formatNumber=(n,{prefix="",suffix="",def="",numberToText=toKMBString}={})=>{if(!n){return def}const text=numberToText(n);return prefix+text+suffix})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/NumberFormats");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","@web-atoms/core/dist/di/Inject","../../../../services/EntityService","../../../../model/model","../../../../common/Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,Inject,EntityService,Mailbox,MailboxThread,Sql,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){Mailbox=_modelModel.Mailbox;MailboxThread=_modelModel.MailboxThread},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){MailService=class MailService{mailboxes(mailboxID){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(Mailbox);if(mailboxID){q=q.orderByDescending({mailboxID},(p=>x=>x.mailboxID===p.mailboxID))}return q.include((x=>x.emailAddress)).toArray()}))}list({search="",mailboxID,start=0,size=100,version=1,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(MailboxThread).where({mailboxID},(p=>x=>x.mailboxID===p.mailboxID)).orderByDescending((x=>x.lastEmailID));if(search){const likeSearch=`%${search}%`;q=q.where({search,likeSearch},(p=>x=>x.emailAddress.emailAddress===p.search||Sql.text.like(x.lastEmail.textBody,p.likeSearch)))}return q.include((x=>[x.emailAddress,x.lastEmail.recipients,x.lastEmail.attachments])).toPagedList({start,size,cancelToken})}))}send(email){return __awaiter(this,void 0,void 0,(function*(){for(const iterator of email.recipients){if(iterator.emailAddressText){iterator.emailAddressText=iterator.emailAddressText.trim()}}const cloner=this.entityService.cloner(email).include((x=>x.recipients)).include((x=>x.attachments)).copy;yield this.entityService.save(cloner)}))}};__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(["@web-atoms/core/dist/style/styled","../PageNavigator","./MobileApp","@web-atoms/core/dist/web/core/AtomUI","../basic/AtomRepeater"],(function(_export,_context){"use strict";var styled,PageNavigator,ContentPage,isMobileView,descendentElementIterator,AtomRepeater,MasterDetailPage,findItem;_export("default",void 0);return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_PageNavigator){PageNavigator=_PageNavigator.default},function(_MobileApp){ContentPage=_MobileApp.ContentPage;isMobileView=_MobileApp.isMobileView},function(_webAtomsCoreDistWebCoreAtomUI){descendentElementIterator=_webAtomsCoreDistWebCoreAtomUI.descendentElementIterator},function(_basicAtomRepeater){AtomRepeater=_basicAtomRepeater.default}],execute:function(){styled.css`
1149
1149
  & > [data-page-element=content] {
1150
1150
  display: grid;
1151
1151
  & > * {
@@ -1522,7 +1522,7 @@ body {
1522
1522
  grid-row-start: 2;
1523
1523
  grid-column-start: 2;
1524
1524
  }
1525
- `.installGlobal("*[data-item-suggestion]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/item-suggestion-style");System.register(["tslib","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/types","@web-atoms/core/dist/core/XNode","./AtomRepeater","./Chip","./InlinePopup","./styles/chips-style","./styles/item-suggestion-style"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,AtomBinder,Bind,BindableProperty,CancelToken,XNode,AtomRepeater,MatchTrue,InlinePopup,AtomChips;function getChips(target){let start=target;while(start){const chips=start.atomControl;if(chips&&chips instanceof AtomChips){return chips}start=start.parentElement}}function askSuggestionPopup(host,opener,itemRenderer,suggestionFilter,cancelToken){class Suggestions extends InlinePopup{create(){this.opener=opener;this.render(XNode.create("div",{"data-suggestion-popup":"suggestion-popup"},XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",selectedItem:Bind.oneWay((()=>this.opener.anchorItem)),itemRenderer,eventDeleteSuggestion:e=>opener.element.dispatchEvent(e),visibilityFilter:suggestionFilter!==null&&suggestionFilter!==void 0?suggestionFilter:MatchTrue,"event-item-click":e=>{e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();this.close(e.detail)},items:Bind.oneWay((()=>this.opener.suggestions))}))))}}return Suggestions.showControl(host,{cancelToken,alignment:"auto"})}function Suggestion({icon,label,header,deleteIcon},...nodes){return XNode.create("div",{"data-item-suggestion":"suggestion"},icon&&XNode.create("i",{class:"icon "+icon}),header&&XNode.create("label",{class:"header",text:header}),label&&XNode.create("label",{class:"label",text:label}),...nodes,deleteIcon&&XNode.create("i",{class:"delete "+deleteIcon,"data-click-event":"remove-suggestion"}))}_export({Suggestion,default:void 0});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreAtomBinder){AtomBinder=_webAtomsCoreDistCoreAtomBinder.AtomBinder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default;MatchTrue=_AtomRepeater.MatchTrue},function(_Chip){_export("Chip",_Chip.default)},function(_InlinePopup){InlinePopup=_InlinePopup.default},function(_stylesChipsStyle){},function(_stylesItemSuggestionStyle){}],execute:function(){document.body.addEventListener("focusin",(e=>{const chips=getChips(e.target);chips===null||chips===void 0?void 0:chips.setFocus(true)}));document.body.addEventListener("focusout",(e=>{const chips=getChips(e.target);chips===null||chips===void 0?void 0:chips.setFocus(false)}));document.body.addEventListener("keydown",(e=>{const chips=getChips(e.target);chips===null||chips===void 0?void 0:chips.onKey(e)}));_export("default",AtomChips=class AtomChips extends AtomRepeater{get searchType(){return this.searchInput.type}set searchType(v){this.searchInput.type=v}get enterKeyHint(){return this.searchInput.enterKeyHint}set enterKeyHint(v){this.searchInput.enterKeyHint=v}onPropertyChanged(name){var _a;super.onPropertyChanged(name);switch(name){case"labelPath":this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});break;case"prompt":this.updateClasses();break;case"focused":this.updatePopup();break;case"suggestions":(_a=this.suggestionsWatcher)===null||_a===void 0?void 0:_a.dispose();this.suggestionsWatcher=undefined;const suggestions=this.suggestions;if(suggestions){this.suggestionsWatcher=this.registerDisposable(suggestions.watch((()=>{this.updatePopup()})))}this.updatePopup();break}}preCreate(){super.preCreate();this.preventDuplicates=true;this.softDeleteProperty=null;this.prompt="Search";this.element.setAttribute("data-atom-chips","atom-chips");this.element.setAttribute("data-mode","search");this.suggestionFilter=MatchTrue;this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});this.element.dataset.dropDown="drop-down";this.render(XNode.create("div",null,XNode.create("div",{class:"presenter"}),XNode.create("input",{class:"search",placeholder:Bind.oneWay((()=>this.prompt)),value:Bind.twoWaysImmediate((()=>this.search)),type:"search"}),XNode.create("div",{class:"footer"})));this.itemsPresenter=this.element.children[0];this.searchInput=this.element.children[1];this.footerPresenter=this.element.children[2];this.bindEvent(this.element,"removeChip",(e=>e.defaultPrevented||this.removeItem(e.detail)));this.bindEvent(this.element,"undoRemoveChip",(e=>e.defaultPrevented||this.undoRemoveItem(e.detail)));this.bindEvent(this.searchInput,"blur",(()=>{const search=this.search;setTimeout((()=>{if(this.onBlurItemToChip&&search){const item=this.onBlurItemToChip(search);if(item){this.items.add(item);this.searchInput.value="";this.search=""}}}),50)}))}setFocus(hasFocus){if(hasFocus){if(this.focusTimeout){clearTimeout(this.focusTimeout);this.focusTimeout=void 0}this.focused=true;return}this.focusTimeout=setTimeout((()=>{this.focusTimeout=void 0;this.focused=false}),1500)}updatePopup(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){const suggestions=this.suggestions;if(!this.focused){(_a=this.popupCancelToken)===null||_a===void 0?void 0:_a.cancel();this.popupCancelToken=null;return}const detail=this.suggestions;const ce=new CustomEvent("suggestions-requested",{detail});this.element.dispatchEvent(ce);if(ce.defaultPrevented){return}const{promise}=ce;if(promise){yield promise}if(ce.detail!==this.suggestions){this.suggestions=ce.detail}if(!(suggestions===null||suggestions===void 0?void 0:suggestions.length)){(_b=this.popupCancelToken)===null||_b===void 0?void 0:_b.cancel();this.popupCancelToken=null;return}if(this.popupCancelToken){return}const cancelToken=this.popupCancelToken=new CancelToken;try{let selectedItem=yield askSuggestionPopup(this.element,this,(_c=this.suggestionRenderer)!==null&&_c!==void 0?_c:this.itemRenderer,this.suggestionFilter,cancelToken);const itemToChip=this.itemToChip;if(itemToChip){selectedItem=itemToChip(selectedItem,this.search)}this.addItem(selectedItem);this.search="";this.popupCancelToken=null}catch(e){this.popupCancelToken=null;if(CancelToken.isCancelled(e)){return}console.warn(e)}}))}addItem(selectedItem){var _a;const ce=new CustomEvent("suggestionChosen",{detail:selectedItem,cancelable:true,bubbles:true});this.element.dispatchEvent(ce);if(!ce.defaultPrevented){const item=ce.detail;const vp=(_a=this.valuePath)!==null&&_a!==void 0?_a:x=>x;const v=vp(item);for(const iterator of this.items){if(v===vp(iterator)){return}}this.items.add(ce.detail)}}undoRemoveItem(item){let{softDeleteProperty}=this;softDeleteProperty=typeof softDeleteProperty!=="string"?"$deleted":softDeleteProperty;item[softDeleteProperty]=false;AtomBinder.refreshValue(this.items,"length");this.refreshItem(item)}removeItem(item){let{softDeleteProperty}=this;if(softDeleteProperty){softDeleteProperty=typeof softDeleteProperty!=="string"?"$deleted":softDeleteProperty;item[softDeleteProperty]=true;AtomBinder.refreshValue(this.items,"length");this.refreshItem(item)}else{this.items.remove(item)}}onKey(e){var _a,_b;const suggested=this.suggestions;const onKeyPressedItemToChip=this.onKeyPressedItemToChip;if(onKeyPressedItemToChip&&this.search){const item=onKeyPressedItemToChip(e.key,this.search);if(item){this.addItem(item);this.searchInput.value="";return}}switch(e.key){case"Enter":(_a=e.preventDefault)===null||_a===void 0?void 0:_a.call(e);(_b=e.stopImmediatePropagation)===null||_b===void 0?void 0:_b.call(e);setTimeout((()=>{let anchorItem=this.anchorItem;const itemToChip=this.itemToChip;if(itemToChip){anchorItem=itemToChip(anchorItem,this.search)}if(!anchorItem){return}this.addItem(anchorItem);this.anchorIndex=0;this.anchorItem=null;this.search=""}),1);break;case"ArrowDown":if(suggested){if(!this.anchorItem){this.anchorIndex=0}else{if(this.anchorIndex<suggested.length-1){this.anchorIndex++}}this.anchorItem=suggested[this.anchorIndex]}break;case"ArrowUp":if(suggested){if(!this.anchorItem){return}if(this.anchorIndex){this.anchorIndex--}this.anchorItem=suggested[this.anchorIndex]}break}}});__decorate([BindableProperty,__metadata("design:type",Array)],AtomChips.prototype,"suggestions",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"search",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"prompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"suggestionPrompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"softDeleteProperty",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"labelPath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"match",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"suggestionRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"suggestionFilter",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],AtomChips.prototype,"focused",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"onKeyPressedItemToChip",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"onBlurItemToChip",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/AtomChips");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}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");System.register(["tslib","@web-atoms/core/dist/di/Inject","../EntityService","../../common/Sql","../../model/model","../../common/cache/CacheTTL","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Inject,EntityService,Sql,EmailAddress,CacheTTL,DISingleton,cacheVersion,cacheSeconds,hideActivityIndicator,EmailAddressService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_EntityService){EntityService=_EntityService.default},function(_commonSql){Sql=_commonSql.Sql},function(_modelModel){EmailAddress=_modelModel.EmailAddress},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cacheVersion="1";cacheSeconds=CacheTTL.seconds.oneDay;hideActivityIndicator=true;EmailAddressService=class EmailAddressService{getName(ea){return __awaiter(this,void 0,void 0,(function*(){const f=yield this.entityService.query(EmailAddress).where({ea},(p=>x=>x.emailAddress===p.ea)).firstOrDefault({cacheSeconds,cacheVersion,hideActivityIndicator});return f===null||f===void 0?void 0:f.name}))}search(search,cancelToken){return __awaiter(this,void 0,void 0,(function*(){if(!search){return[]}if(!/\%$/.test(search)){search=search+"%"}const list=yield this.entityService.query(EmailAddress).where({search},(p=>x=>Sql.text.like(x.emailAddress,p.search))).orderByDescending((x=>x.emailAddressID)).toPagedList({start:0,size:10,count:false,cacheSeconds,cacheVersion,cancelToken,hideActivityIndicator});return list.items}))}};__decorate([Inject,__metadata("design:type",EntityService)],EmailAddressService.prototype,"entityService",void 0);EmailAddressService=__decorate([DISingleton()],EmailAddressService);_export("default",EmailAddressService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email-addresses/EmailAddressService");System.register(["tslib","@web-atoms/web-controls/dist/basic/AtomChips","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","../../../services/email-addresses/EmailAddressService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,AtomChips,Chip,EmailRecipient,XNode,Bind,InjectProperty,EmailAddressService,EmailRecipientChips;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistBasicAtomChips){AtomChips=_webAtomsWebControlsDistBasicAtomChips.default;Chip=_webAtomsWebControlsDistBasicAtomChips.Chip},function(_modelModel){EmailRecipient=_modelModel.EmailRecipient},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesEmailAddressesEmailAddressService){EmailAddressService=_servicesEmailAddressesEmailAddressService.default}],execute:function(){_export("default",EmailRecipientChips=class EmailRecipientChips extends AtomChips{preCreate(){super.preCreate();this.search="";this.suggestions=[];this.itemToChip=(item,text)=>{if(typeof item==="string"){return this.createRecipient(item)}const{name,emailAddress,emailAddressID}=item;return EmailRecipient.create({emailAddressID,name,emailAddressText:emailAddress})};this.itemRenderer=item=>XNode.create(Chip,{title:item.name?item.emailAddressText:void 0,label:item.name||item.emailAddressText});this.suggestionRenderer=item=>XNode.create("div",{"data-layout":"vertical-flex-stretch-items"},item.name&&item.name!==item.emailAddress&&XNode.create("div",{text:item.name}),XNode.create("div",{text:item.emailAddress}));this.onKeyPressedItemToChip=(key,search)=>{if(key==="Enter"||key==="Comma"){return this.createRecipient(search)}};this.onBlurItemToChip=search=>this.createRecipient(search);this.render(XNode.create("div",{suggestions:Bind.oneWayAsync(((c,e,ct)=>this.addressService.search(this.search,ct)))}))}createRecipient(search){search=search===null||search===void 0?void 0:search.trim();if(!search){return}if(!/\@/.test(search)){return}const er=EmailRecipient.create({emailAddressText:search});if(!er.name&&er.emailAddressText){this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const n=yield this.addressService.getName(er.emailAddressText);if(n){er.name=n;this.refreshItem(er)}}))))}return er}});__decorate([InjectProperty,__metadata("design:type",EmailAddressService)],EmailRecipientChips.prototype,"addressService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailRecipientChips");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../model/model","@web-atoms/core/dist/view-model/Action","./service/MailService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/date-time/dist/DateTime","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/TitleEditor","../../../common/controls/email-recipients/EmailRecipientChips"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InlineHtmlEditorWithToolbar,XNode,Bind,Form,FormField,HorizontalFormField,AppFile,Email,EmailRecipient,Action,MailService,InjectProperty,DateTime,AtomRepeater,TitleEditor,EmailRecipientChips,ComposeMailPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_commonControlsHtmlInlineHtmlEditorWithToolbar){InlineHtmlEditorWithToolbar=_commonControlsHtmlInlineHtmlEditorWithToolbar.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default;HorizontalFormField=_webAtomsWebControlsDistBasicFormField.HorizontalFormField},function(_modelModel){AppFile=_modelModel.AppFile;Email=_modelModel.Email;EmailRecipient=_modelModel.EmailRecipient},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_serviceMailService){MailService=_serviceMailService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicTitleEditor){TitleEditor=_webAtomsWebControlsDistBasicTitleEditor.default},function(_commonControlsEmailRecipientsEmailRecipientChips){EmailRecipientChips=_commonControlsEmailRecipientsEmailRecipientChips.default}],execute:function(){_export("default",ComposeMailPage=class ComposeMailPage extends PopupWindowPage{init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(this.parameters.subject){this.title="Reply: "+this.parameters.subject}else{this.title="Compose New"}this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:Email.create({subject:(_b=this.parameters.subject)!==null&&_b!==void 0?_b:"",textBody:"",htmlBody:`<div contentEditable="true"><p><br/><br/><br/><br/><br/></p></div>`,recipients:[],attachments:[]});if(this.parameters.emailAddress){this.model.recipients.add(EmailRecipient.create({emailAddressText:this.parameters.emailAddress,emailAddressID:(_c=this.parameters.emailAddressID)!==null&&_c!==void 0?_c:void 0}))}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(HorizontalFormField,{label:"To:"},XNode.create(EmailRecipientChips,{items:this.model.recipients})),XNode.create(FormField,{label:""},XNode.create(TitleEditor,{placeholder:"Subject",capitalize:"words",value:Bind.twoWaysImmediate((()=>this.model.subject))})),XNode.create(InlineHtmlEditorWithToolbar,{presenter:Bind.presenter((c=>this.editor=c)),content:this.model.htmlBody,"style-min-height":"200px"}),XNode.create(AtomRepeater,{items:this.model.attachments,itemRenderer:item=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:item.name}))}),XNode.create("div",{"data-layout":"sticky-command-row"},XNode.create("button",{"data-click-event":"send-email",text:"Send"}),XNode.create("button",{"data-click-event":"save-email",text:"Save"}))))}))}filesAvailable({files,extra}){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){(_a=(_b=this.model).attachments)!==null&&_a!==void 0?_a:_b.attachments=[];for(const iterator of files){this.model.attachments.add(AppFile.create({appFileID:iterator.appFileID,name:iterator.file.name,contentType:iterator.file.type,contentDisposition:iterator.inline?"inline":"attachment",contentID:iterator.inline?iterator.appFileID.toString():void 0}))}}))}sendEmail(){return __awaiter(this,void 0,void 0,(function*(){if(!this.model.recipients.length){throw new Error("No recipients specified")}if(!this.model.subject){throw new Error("No subject specified")}const{html,text}=this.editor.htmlTextContent;this.model.htmlBody=html;this.model.textBody=text;if(!this.model.textBody){throw new Error("Email is empty")}this.model.senderID=this.parameters.mailboxID;this.model.status="scheduled";this.model.dateSent=DateTime.utcNow;yield this.mailService.send(this.model)}))}saveEmail(){return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.send(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],ComposeMailPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"filesAvailable",null);__decorate([Action({onEvent:"send-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"sendEmail",null);__decorate([Action({onEvent:"save-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"saveEmail",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ComposeMailPage");System.register(["tslib","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/types","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,AtomDisposableList,UMD,DISingleton,SocketNamespace,io,cache,of,MailboxSocket;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistCoreAtomDisposableList){AtomDisposableList=_webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cache=new Map;of=name=>__awaiter(void 0,void 0,void 0,(function*(){io!==null&&io!==void 0?io:io=(yield UMD.import("https://cdn.jsdelivr.net/npm/socket.io-client@4.6.0/dist/socket.io.min.js")).io;const value=io(name,{transports:["websocket"]});yield new Promise(((resolve,reject)=>{value.on("connect",resolve)}));return value}));SocketNamespace=class SocketNamespace{static for(ns){let sn=cache.get(ns);if(!sn){sn=new SocketNamespace(ns);cache.set(ns,sn)}return sn}constructor(ns){this.ns=ns;this.rooms=new Map}connect(roomName,events){var _a;return __awaiter(this,void 0,void 0,(function*(){(_a=this.socket)!==null&&_a!==void 0?_a:this.socket=yield this.init();let room=this.rooms.get(roomName);if(!room){room=new Set;this.rooms.set(roomName,room);this.socket.emit("join",roomName)}const disposables=new AtomDisposableList;for(const key in events){if(Object.prototype.hasOwnProperty.call(events,key)){const element=events[key];const handler=(...a)=>{var _a;return(_a=element(...a))===null||_a===void 0?void 0:_a.catch(console.error)};room.add(handler);this.socket.on(key,handler);disposables.add((()=>{this.socket.off(key,handler);room.delete(handler)}))}}disposables.add((()=>this.clear(roomName)));return disposables}))}clear(roomName){const room=this.rooms.get(roomName);if(room.size===0){this.rooms.delete(roomName);this.socket.emit("leave",roomName)}}init(){const init=()=>__awaiter(this,void 0,void 0,(function*(){const ns=yield of("/"+this.ns);return ns}));const value=init();Object.defineProperty(this,"init",{value:()=>value});return value}};_export("MailboxSocket",MailboxSocket=class MailboxSocket{join(room,events){return __awaiter(this,void 0,void 0,(function*(){const ns=SocketNamespace.for("mailbox");return ns.connect(room,events)}))}});_export("MailboxSocket",MailboxSocket=__decorate([DISingleton()],MailboxSocket))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/socket/sockets");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __rest,XNode,styled,toggleDetails,setEventHandler;function LimitedText(_a,...nodes){var{text="",height=100}=_a,a=__rest(_a,["text","height"]);setEventHandler===null||setEventHandler===void 0?void 0:setEventHandler();const h=typeof height==="number"?`${height}px`:height;return XNode.create("div",Object.assign({"data-mode":"collapsed","data-max-height":h,"style-max-height":h,"data-limited-text":"limited-text"},a),text&&XNode.create("p",{text}),...nodes,XNode.create("div",{"style-top":h,"data-element":"more"},XNode.create("button",{class:"fa-solid fa-angles-up"})))}_export("default",LimitedText);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
1525
+ `.installGlobal("*[data-item-suggestion]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/item-suggestion-style");System.register(["tslib","@web-atoms/core/dist/core/AtomBinder","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/types","@web-atoms/core/dist/core/XNode","./AtomRepeater","./Chip","./InlinePopup","./styles/chips-style","./styles/item-suggestion-style"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,AtomBinder,Bind,BindableProperty,CancelToken,XNode,AtomRepeater,MatchTrue,InlinePopup,AtomChips;function getChips(target){let start=target;while(start){const chips=start.atomControl;if(chips&&chips instanceof AtomChips){return chips}start=start.parentElement}}function askSuggestionPopup(host,opener,itemRenderer,suggestionFilter,cancelToken){class Suggestions extends InlinePopup{create(){this.opener=opener;this.render(XNode.create("div",{"data-suggestion-popup":"suggestion-popup"},XNode.create("div",{class:"items"},XNode.create(AtomRepeater,{class:"presenter",selectedItem:Bind.oneWay((()=>this.opener.anchorItem)),itemRenderer,eventDeleteSuggestion:e=>opener.element.dispatchEvent(e),visibilityFilter:suggestionFilter!==null&&suggestionFilter!==void 0?suggestionFilter:MatchTrue,"event-item-click":e=>{e.preventDefault();e.stopImmediatePropagation();e.stopPropagation();this.close(e.detail)},items:Bind.oneWay((()=>this.opener.suggestions))}))))}}return Suggestions.showControl(host,{cancelToken,alignment:"auto"})}function Suggestion({icon,label,header,deleteIcon},...nodes){return XNode.create("div",{"data-item-suggestion":"suggestion"},icon&&XNode.create("i",{class:"icon "+icon}),header&&XNode.create("label",{class:"header",text:header}),label&&XNode.create("label",{class:"label",text:label}),...nodes,deleteIcon&&XNode.create("i",{class:"delete "+deleteIcon,"data-click-event":"remove-suggestion"}))}_export({Suggestion,default:void 0});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreAtomBinder){AtomBinder=_webAtomsCoreDistCoreAtomBinder.AtomBinder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreTypes){CancelToken=_webAtomsCoreDistCoreTypes.CancelToken},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_AtomRepeater){AtomRepeater=_AtomRepeater.default;MatchTrue=_AtomRepeater.MatchTrue},function(_Chip){_export("Chip",_Chip.default)},function(_InlinePopup){InlinePopup=_InlinePopup.default},function(_stylesChipsStyle){},function(_stylesItemSuggestionStyle){}],execute:function(){document.body.addEventListener("focusin",(e=>{const chips=getChips(e.target);chips===null||chips===void 0?void 0:chips.setFocus(true)}));document.body.addEventListener("focusout",(e=>{const chips=getChips(e.target);chips===null||chips===void 0?void 0:chips.setFocus(false)}));document.body.addEventListener("keydown",(e=>{const chips=getChips(e.target);chips===null||chips===void 0?void 0:chips.onKey(e)}));_export("default",AtomChips=class AtomChips extends AtomRepeater{get searchType(){return this.searchInput.type}set searchType(v){this.searchInput.type=v}get enterKeyHint(){return this.searchInput.enterKeyHint}set enterKeyHint(v){this.searchInput.enterKeyHint=v}onPropertyChanged(name){var _a;super.onPropertyChanged(name);switch(name){case"labelPath":this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});break;case"prompt":this.updateClasses();break;case"focused":this.updatePopup();break;case"suggestions":(_a=this.suggestionsWatcher)===null||_a===void 0?void 0:_a.dispose();this.suggestionsWatcher=undefined;const suggestions=this.suggestions;if(suggestions){this.suggestionsWatcher=this.registerDisposable(suggestions.watch((()=>{this.updatePopup()})))}this.updatePopup();break}}preCreate(){super.preCreate();this.preventDuplicates=true;this.softDeleteProperty=null;this.prompt="Search";this.element.setAttribute("data-atom-chips","atom-chips");this.element.setAttribute("data-mode","search");this.suggestionFilter=MatchTrue;this.valuePath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.value)!==null&&_a!==void 0?_a:item};this.labelPath=item=>{var _a;return(_a=item===null||item===void 0?void 0:item.label)!==null&&_a!==void 0?_a:item};this.itemRenderer=item=>XNode.create("div",{text:this.labelPath(item)});this.element.dataset.dropDown="drop-down";this.render(XNode.create("div",null,XNode.create("div",{class:"presenter"}),XNode.create("input",{class:"search",placeholder:Bind.oneWay((()=>this.prompt)),value:Bind.twoWaysImmediate((()=>this.search)),type:"search"}),XNode.create("div",{class:"footer"})));this.itemsPresenter=this.element.children[0];this.searchInput=this.element.children[1];this.footerPresenter=this.element.children[2];this.bindEvent(this.element,"removeChip",(e=>e.defaultPrevented||this.removeItem(e.detail)));this.bindEvent(this.element,"undoRemoveChip",(e=>e.defaultPrevented||this.undoRemoveItem(e.detail)));this.bindEvent(this.searchInput,"blur",(()=>{const search=this.search;setTimeout((()=>{if(this.onBlurItemToChip&&search){const item=this.onBlurItemToChip(search);if(item){this.items.add(item);this.searchInput.value="";this.search=""}}}),50)}))}setFocus(hasFocus){if(hasFocus){if(this.focusTimeout){clearTimeout(this.focusTimeout);this.focusTimeout=void 0}this.focused=true;return}this.focusTimeout=setTimeout((()=>{this.focusTimeout=void 0;this.focused=false}),1500)}updatePopup(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){const suggestions=this.suggestions;if(!this.focused){(_a=this.popupCancelToken)===null||_a===void 0?void 0:_a.cancel();this.popupCancelToken=null;return}const detail=this.suggestions;const ce=new CustomEvent("suggestions-requested",{detail});this.element.dispatchEvent(ce);if(ce.defaultPrevented){return}const{promise}=ce;if(promise){yield promise}if(ce.detail!==this.suggestions){this.suggestions=ce.detail}if(!(suggestions===null||suggestions===void 0?void 0:suggestions.length)){(_b=this.popupCancelToken)===null||_b===void 0?void 0:_b.cancel();this.popupCancelToken=null;return}if(this.popupCancelToken){return}const cancelToken=this.popupCancelToken=new CancelToken;try{let selectedItem=yield askSuggestionPopup(this.element,this,(_c=this.suggestionRenderer)!==null&&_c!==void 0?_c:this.itemRenderer,this.suggestionFilter,cancelToken);const itemToChip=this.itemToChip;if(itemToChip){selectedItem=itemToChip(selectedItem,this.search)}this.addItem(selectedItem);this.search="";this.popupCancelToken=null}catch(e){this.popupCancelToken=null;if(CancelToken.isCancelled(e)){return}console.warn(e)}}))}addItem(selectedItem){var _a;const ce=new CustomEvent("suggestionChosen",{detail:selectedItem,cancelable:true,bubbles:true});this.element.dispatchEvent(ce);if(!ce.defaultPrevented){const item=ce.detail;const vp=(_a=this.valuePath)!==null&&_a!==void 0?_a:x=>x;const v=vp(item);for(const iterator of this.items){if(v===vp(iterator)){return}}this.items.add(ce.detail)}}undoRemoveItem(item){let{softDeleteProperty}=this;softDeleteProperty=typeof softDeleteProperty!=="string"?"$deleted":softDeleteProperty;item[softDeleteProperty]=false;AtomBinder.refreshValue(this.items,"length");this.refreshItem(item)}removeItem(item){let{softDeleteProperty}=this;if(softDeleteProperty){softDeleteProperty=typeof softDeleteProperty!=="string"?"$deleted":softDeleteProperty;item[softDeleteProperty]=true;AtomBinder.refreshValue(this.items,"length");this.refreshItem(item)}else{this.items.remove(item)}}onKey(e){var _a,_b;const suggested=this.suggestions;const onKeyPressedItemToChip=this.onKeyPressedItemToChip;if(onKeyPressedItemToChip&&this.search){const item=onKeyPressedItemToChip(e.key,this.search);if(item){this.addItem(item);this.searchInput.value="";return}}switch(e.key){case"Enter":(_a=e.preventDefault)===null||_a===void 0?void 0:_a.call(e);(_b=e.stopImmediatePropagation)===null||_b===void 0?void 0:_b.call(e);setTimeout((()=>{let anchorItem=this.anchorItem;const itemToChip=this.itemToChip;if(itemToChip){anchorItem=itemToChip(anchorItem,this.search)}if(!anchorItem){return}this.addItem(anchorItem);this.anchorIndex=0;this.anchorItem=null;this.search=""}),1);break;case"ArrowDown":if(suggested){if(!this.anchorItem){this.anchorIndex=0}else{if(this.anchorIndex<suggested.length-1){this.anchorIndex++}}this.anchorItem=suggested[this.anchorIndex]}break;case"ArrowUp":if(suggested){if(!this.anchorItem){return}if(this.anchorIndex){this.anchorIndex--}this.anchorItem=suggested[this.anchorIndex]}break}}});__decorate([BindableProperty,__metadata("design:type",Array)],AtomChips.prototype,"suggestions",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"search",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"prompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"suggestionPrompt",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomChips.prototype,"softDeleteProperty",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"labelPath",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"match",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"suggestionRenderer",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"suggestionFilter",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],AtomChips.prototype,"focused",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"onKeyPressedItemToChip",void 0);__decorate([BindableProperty,__metadata("design:type",Function)],AtomChips.prototype,"onBlurItemToChip",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/AtomChips");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}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");System.register(["tslib","@web-atoms/core/dist/di/Inject","../EntityService","../../common/Sql","../../model/model","../../common/cache/CacheTTL","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Inject,EntityService,Sql,EmailAddress,CacheTTL,DISingleton,cacheVersion,cacheSeconds,hideActivityIndicator,EmailAddressService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_EntityService){EntityService=_EntityService.default},function(_commonSql){Sql=_commonSql.Sql},function(_modelModel){EmailAddress=_modelModel.EmailAddress},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cacheVersion="1";cacheSeconds=CacheTTL.seconds.oneDay;hideActivityIndicator=true;EmailAddressService=class EmailAddressService{getName(ea){return __awaiter(this,void 0,void 0,(function*(){const f=yield this.entityService.query(EmailAddress).where({ea},(p=>x=>x.emailAddress===p.ea)).firstOrDefault({cacheSeconds,cacheVersion,hideActivityIndicator});return f===null||f===void 0?void 0:f.name}))}search(search,cancelToken){return __awaiter(this,void 0,void 0,(function*(){if(!search){return[]}if(!/\%$/.test(search)){search=search+"%"}const list=yield this.entityService.query(EmailAddress).where({search},(p=>x=>Sql.text.like(x.emailAddress,p.search))).orderByDescending((x=>x.emailAddressID)).toPagedList({start:0,size:10,count:false,cacheSeconds,cacheVersion,cancelToken,hideActivityIndicator});return list.items}))}};__decorate([Inject,__metadata("design:type",EntityService)],EmailAddressService.prototype,"entityService",void 0);EmailAddressService=__decorate([DISingleton()],EmailAddressService);_export("default",EmailAddressService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/email-addresses/EmailAddressService");System.register(["tslib","@web-atoms/web-controls/dist/basic/AtomChips","../../../model/model","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","../../../services/email-addresses/EmailAddressService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,AtomChips,Chip,EmailRecipient,XNode,Bind,InjectProperty,EmailAddressService,EmailRecipientChips;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistBasicAtomChips){AtomChips=_webAtomsWebControlsDistBasicAtomChips.default;Chip=_webAtomsWebControlsDistBasicAtomChips.Chip},function(_modelModel){EmailRecipient=_modelModel.EmailRecipient},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesEmailAddressesEmailAddressService){EmailAddressService=_servicesEmailAddressesEmailAddressService.default}],execute:function(){_export("default",EmailRecipientChips=class EmailRecipientChips extends AtomChips{preCreate(){super.preCreate();this.search="";this.suggestions=[];this.itemToChip=(item,text)=>{if(typeof item==="string"){return this.createRecipient(item)}const{name,emailAddress,emailAddressID}=item;return EmailRecipient.create({emailAddressID,name,emailAddressText:emailAddress})};this.itemRenderer=item=>XNode.create(Chip,{title:item.name?item.emailAddressText:void 0,label:item.name||item.emailAddressText});this.suggestionRenderer=item=>XNode.create("div",{"data-layout":"vertical-flex-stretch-items"},item.name&&item.name!==item.emailAddress&&XNode.create("div",{text:item.name}),XNode.create("div",{text:item.emailAddress}));this.onKeyPressedItemToChip=(key,search)=>{if(key==="Enter"||key==="Comma"){return this.createRecipient(search)}};this.onBlurItemToChip=search=>this.createRecipient(search);this.render(XNode.create("div",{suggestions:Bind.oneWayAsync(((c,e,ct)=>this.addressService.search(this.search,ct)))}))}createRecipient(search){search=search===null||search===void 0?void 0:search.trim();if(!search){return}if(!/\@/.test(search)){return}const er=EmailRecipient.create({emailAddressText:search});if(!er.name&&er.emailAddressText){this.app.runAsync((()=>__awaiter(this,void 0,void 0,(function*(){const n=yield this.addressService.getName(er.emailAddressText);if(n){er.name=n;this.refreshItem(er)}}))))}return er}});__decorate([InjectProperty,__metadata("design:type",EmailAddressService)],EmailRecipientChips.prototype,"addressService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/email-recipients/EmailRecipientChips");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/controls/html/InlineHtmlEditorWithToolbar","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../model/model","@web-atoms/core/dist/view-model/Action","./service/MailService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/date-time/dist/DateTime","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/TitleEditor","../../../common/controls/email-recipients/EmailRecipientChips"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,InlineHtmlEditorWithToolbar,XNode,Bind,Form,FormField,HorizontalFormField,AppFile,Email,EmailRecipient,Action,MailService,InjectProperty,DateTime,AtomRepeater,TitleEditor,EmailRecipientChips,ComposeMailPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_commonControlsHtmlInlineHtmlEditorWithToolbar){InlineHtmlEditorWithToolbar=_commonControlsHtmlInlineHtmlEditorWithToolbar.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default;HorizontalFormField=_webAtomsWebControlsDistBasicFormField.HorizontalFormField},function(_modelModel){AppFile=_modelModel.AppFile;Email=_modelModel.Email;EmailRecipient=_modelModel.EmailRecipient},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_serviceMailService){MailService=_serviceMailService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicTitleEditor){TitleEditor=_webAtomsWebControlsDistBasicTitleEditor.default},function(_commonControlsEmailRecipientsEmailRecipientChips){EmailRecipientChips=_commonControlsEmailRecipientsEmailRecipientChips.default}],execute:function(){_export("default",ComposeMailPage=class ComposeMailPage extends PopupWindowPage{init(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){if(this.parameters.subject){this.title="Reply: "+this.parameters.subject}else{this.title="Compose New"}this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:Email.create({subject:(_b=this.parameters.subject)!==null&&_b!==void 0?_b:"",textBody:"",htmlBody:`<div contentEditable="true"><p><br/><br/><br/><br/><br/></p></div>`,recipients:[],attachments:[]});if(this.parameters.emailAddress){this.model.recipients.add(EmailRecipient.create({emailAddressText:this.parameters.emailAddress,emailAddressID:(_c=this.parameters.emailAddressID)!==null&&_c!==void 0?_c:void 0}))}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(HorizontalFormField,{label:"To:"},XNode.create(EmailRecipientChips,{items:this.model.recipients})),XNode.create(FormField,{label:""},XNode.create(TitleEditor,{placeholder:"Subject",capitalize:"words",value:Bind.twoWaysImmediate((()=>this.model.subject))})),XNode.create(InlineHtmlEditorWithToolbar,{presenter:Bind.presenter((c=>this.editor=c)),content:this.model.htmlBody,"style-min-height":"200px"}),XNode.create(AtomRepeater,{items:this.model.attachments,itemRenderer:item=>XNode.create("div",{"data-layout":"row"},XNode.create("span",{text:item.name}))}),XNode.create("div",{"data-layout":"sticky-command-row"},XNode.create("button",{"data-click-event":"send-email",text:"Send"}),XNode.create("button",{"data-click-event":"save-email",text:"Save"}))))}))}filesAvailable({files,extra}){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){(_a=(_b=this.model).attachments)!==null&&_a!==void 0?_a:_b.attachments=[];for(const iterator of files){this.model.attachments.add(AppFile.create({appFileID:iterator.appFileID,name:iterator.file.name,contentType:iterator.file.type,contentDisposition:iterator.inline?"inline":"attachment",contentID:iterator.inline?iterator.appFileID.toString():void 0}))}}))}sendEmail(){return __awaiter(this,void 0,void 0,(function*(){if(!this.model.recipients.length){throw new Error("No recipients specified")}if(!this.model.subject){throw new Error("No subject specified")}const{html,text}=this.editor.htmlTextContent;this.model.htmlBody=html;this.model.textBody=text;if(!this.model.textBody){throw new Error("Email is empty")}this.model.senderID=this.parameters.mailboxID;this.model.status="scheduled";this.model.dateSent=DateTime.utcNow;yield this.mailService.send(this.model)}))}saveEmail(){return __awaiter(this,void 0,void 0,(function*(){yield this.mailService.send(this.model)}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],ComposeMailPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"files-available"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"filesAvailable",null);__decorate([Action({onEvent:"send-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"sendEmail",null);__decorate([Action({onEvent:"save-email",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],ComposeMailPage.prototype,"saveEmail",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/ComposeMailPage");System.register(["tslib","@web-atoms/core/dist/core/AtomDisposableList","@web-atoms/core/dist/core/types","@web-atoms/core/dist/di/DISingleton"],(function(_export,_context){"use strict";var __awaiter,__decorate,AtomDisposableList,UMD,DISingleton,SocketNamespace,io,cache,of,MailboxSocket;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsCoreDistCoreAtomDisposableList){AtomDisposableList=_webAtomsCoreDistCoreAtomDisposableList.AtomDisposableList},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default}],execute:function(){cache=new Map;of=name=>__awaiter(void 0,void 0,void 0,(function*(){io!==null&&io!==void 0?io:io=(yield UMD.import("https://cdn.jsdelivr.net/npm/socket.io-client@4.6.0/dist/socket.io.min.js")).io;const value=io(name,{transports:["websocket"]});yield new Promise(((resolve,reject)=>{value.on("connect",resolve)}));return value}));SocketNamespace=class SocketNamespace{static for(ns){let sn=cache.get(ns);if(!sn){sn=new SocketNamespace(ns);cache.set(ns,sn)}return sn}constructor(ns){this.ns=ns;this.rooms=new Map}connect(roomName,events){var _a;return __awaiter(this,void 0,void 0,(function*(){(_a=this.socket)!==null&&_a!==void 0?_a:this.socket=yield this.init();let room=this.rooms.get(roomName);if(!room){room=new Set;this.rooms.set(roomName,room);this.socket.emit("join",roomName)}const disposables=new AtomDisposableList;for(const key in events){if(Object.prototype.hasOwnProperty.call(events,key)){const element=events[key];const handler=(...a)=>{var _a;return(_a=element(...a))===null||_a===void 0?void 0:_a.catch(console.error)};room.add(handler);this.socket.on(key,handler);disposables.add((()=>{this.socket.off(key,handler);room.delete(handler)}))}}disposables.add((()=>this.clear(roomName)));return disposables}))}clear(roomName){const room=this.rooms.get(roomName);if(room.size===0){this.rooms.delete(roomName);this.socket.emit("leave",roomName)}}init(){const init=()=>__awaiter(this,void 0,void 0,(function*(){const ns=yield of("/"+this.ns);return ns}));const value=init();Object.defineProperty(this,"init",{value:()=>value});return value}};_export("MailboxSocket",MailboxSocket=class MailboxSocket{join(room,events){return __awaiter(this,void 0,void 0,(function*(){const disposables=new AtomDisposableList;const ns=SocketNamespace.for("mailbox");ns.connect(room,events).then((v=>disposables.add(v)),console.error);return disposables}))}});_export("MailboxSocket",MailboxSocket=__decorate([DISingleton()],MailboxSocket))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/socket/sockets");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __rest,XNode,styled,toggleDetails,setEventHandler;function LimitedText(_a,...nodes){var{text="",height=100}=_a,a=__rest(_a,["text","height"]);setEventHandler===null||setEventHandler===void 0?void 0:setEventHandler();const h=typeof height==="number"?`${height}px`:height;return XNode.create("div",Object.assign({"data-mode":"collapsed","data-max-height":h,"style-max-height":h,"data-limited-text":"limited-text"},a),text&&XNode.create("p",{text}),...nodes,XNode.create("div",{"style-top":h,"data-element":"more"},XNode.create("button",{class:"fa-solid fa-angles-up"})))}_export("default",LimitedText);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
1526
1526
  position: relative;
1527
1527
  overflow: hidden;
1528
1528
  contain: content;
@@ -1608,7 +1608,7 @@ body {
1608
1608
  }
1609
1609
  }
1610
1610
  }
1611
- `.installLocal();_export("default",MailsPage=class MailsPage extends MasterDetailPage{constructor(){super(...arguments);this.mails=[];this.search="";this.selectedThread=null;this.previousThread=null;this.version=1}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const mailboxes=yield this.mailService.mailboxes();this.element.className=css;this.actionRenderer=()=>XNode.create("i",{class:"fas fa-plus","data-click-event":"compose-email"});const mailboxID=this.parameters.id;const first=(_a=mailboxID?mailboxes.find((m=>m.mailboxID===mailboxID)):null)!==null&&_a!==void 0?_a:mailboxes[0];this.currentMailboxID=first.mailboxID;this.registerDisposable(yield this.resolve(MailboxSocket).join(this.currentMailboxID.toString(),{newMail:(_,emailAddressID,emailID)=>{this.version++}}));document.title=(_b=first===null||first===void 0?void 0:first.emailAddress)===null||_b===void 0?void 0:_b.name;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create(DropDown,{items:mailboxes,labelPath:item=>item.emailAddress.emailAddress,valuePath:item=>item.mailboxID,value:Bind.twoWaysImmediate((()=>this.currentMailboxID))}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({class:"threads","data-list-selection":"default","data-items-updated-event":"mails-available","data-selection-updated-event":"mail-selected",selectedItem:Bind.twoWays((()=>this.selectedThread)),selectOnClick:true,items:this.mails},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailService.list({start,size:200,search:this.search,mailboxID:this.currentMailboxID,version:this.version,cancelToken}))),{itemRenderer:item=>XNode.create("div",{class:"mailbox-thread","data-unread":item.unread>0},item.emailAddress.name!==item.emailAddress.emailAddress&&XNode.create("div",{class:"name",text:item.emailAddress.name}),XNode.create("div",{class:"email-address",text:item.emailAddress.emailAddress}),item.unread&&XNode.create("div",{class:"unread",text:item.unread,title:`Unread ${item.unread} out of ${item.total}`}))})))}))}mailsAvailable(){return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){this.selectedThread=this.mails[0];return}const st=this.mails.find((x=>x.mailboxID===this.selectedThread.mailboxID&&x.emailAddressID===this.selectedThread.emailAddressID));if(st!==this.selectedThread){this.selectedThread=st}}))}mailSelected(){var _a;return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){return}if(((_a=this.previousThread)===null||_a===void 0?void 0:_a.emailAddressID)===this.selectedThread.emailAddressID){return}this.previousThread=this.selectedThread;this.openDetail(ConversationPage,this.selectedThread)}))}composeEmail(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(ComposeMailPage,{mailboxID:this.currentMailboxID});this.version++}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],MailsPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"mails-available",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailsAvailable",null);__decorate([Action({onEvent:"mail-selected",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailSelected",null);__decorate([Action({onEvent:"compose-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"composeEmail",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/MailsPage");System.register(["@web-atoms/core/dist/core/Command"],(function(_export,_context){"use strict";var Command,Commands,CommonCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default;Commands=_webAtomsCoreDistCoreCommand.Commands}],execute:function(){_export("default",CommonCommands=class CommonCommands extends Commands{});CommonCommands.openMailbox=Command.create({route:"/mailbox/{id}",routeOrder:50,openPage:()=>_context.import("../../web/page/mails/MailsPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/commands/CommonCommands");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../controls/repeater/InfiniteRepeater","./services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","./MailboxEditorPage","../../NumberFormats","../../commands/CommonCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,XNode,AtomRepeater,ContentPage,InfiniteRepeater,MailboxService,InjectProperty,Action,PageNavigator,MailboxEditorPage,toFileSize,CommonCommands,MailboxListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_controlsRepeaterInfiniteRepeater){InfiniteRepeater=_controlsRepeaterInfiniteRepeater.default},function(_servicesMailboxService){MailboxService=_servicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_MailboxEditorPage){MailboxEditorPage=_MailboxEditorPage.default},function(_NumberFormats){toFileSize=_NumberFormats.toFileSize},function(_commandsCommonCommands){CommonCommands=_commandsCommonCommands.default}],execute:function(){_export("default",MailboxListPage=class MailboxListPage extends ContentPage{constructor(){super(...arguments);this.search="";this.mailboxes=[];this.version=0}init(){return __awaiter(this,void 0,void 0,(function*(){this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create("i",{class:"fas fa-plus","data-click-event":"add-mailbox"}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({items:this.mailboxes},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailboxService.list({start,cancelToken,search:this.search,version:this.version}))),{itemRenderer:item=>XNode.create("tr",null,XNode.create("td",null,XNode.create("a",{href:CommonCommands.openMailbox.displayRoute({id:item.mailboxID}),target:"_blank","data-click-event":"route"},item.emailAddress.emailAddress)),XNode.create("td",null,toFileSize(item.storage)),XNode.create("td",null,toFileSize(item.maxStorage)))})))}))}addMailbox(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(MailboxEditorPage);this.version++}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],MailboxListPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"add-mailbox"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxListPage.prototype,"addMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage");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/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/ComboBox","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,PopupWindowPage,DomainRelay,DomainRelayTypeArray,XNode,Form,TextFormField,FormField,ComboBox,Bind,EditRelayPage;function prepare({host,username,password},{from,recipients,content}){return __awaiter(this,void 0,void 0,(function*(){const body=new FormData;body.append("from",from);body.append("recipients",recipients.join(","));body.append("content",content);const r=yield fetch(`${host}/api/queue/raw`,{headers:{"x-id":username,"x-auth":password},body});if(r.status>=300){throw new Error(yield r.text())}const{id}=yield r.json();return{id,status:()=>__awaiter(this,void 0,void 0,(function*(){var _a;const{error}=(_a=yield fetch(`${host}/api/queue/status/${id}`).then((x=>x.json())))!==null&&_a!==void 0?_a:{};return{error}}))}}))}_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){DomainRelay=_modelModel.DomainRelay;DomainRelayTypeArray=_modelModel.DomainRelayTypeArray},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonControlsFormRequiredFormField){TextFormField=_commonControlsFormRequiredFormField.TextFormField},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",EditRelayPage=class EditRelayPage extends PopupWindowPage{init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:DomainRelay.create({type:"smtp"});(_b=this.model).script||(_b.script=prepare.toString());this.renderer=XNode.create("div",{"data-width":"screen-medium"},XNode.create(Form,null,XNode.create(FormField,{label:"Type"},XNode.create(ComboBox,{items:DomainRelayTypeArray,value:Bind.twoWaysImmediate((()=>this.model.type))})),XNode.create(TextFormField,{label:"Host/Server",value:()=>this.model.host}),XNode.create(TextFormField,{label:"Username",value:()=>this.model.username}),XNode.create(TextFormField,{label:"Password",value:()=>this.model.password}),XNode.create(FormField,{label:"Script",required:Bind.oneWay((()=>this.model.type==="https")),"style-display":Bind.oneWay((()=>this.model.type==="https"))},XNode.create("textarea",{rows:20,value:Bind.twoWaysImmediate((()=>this.model.script))}))))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage");System.register(["@web-atoms/core/dist/core/Command","../../common/commands/CommonCommands"],(function(_export,_context){"use strict";var Command,CommonCommands,AdminCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default}],execute:function(){_export("default",AdminCommands=class AdminCommands extends CommonCommands{});AdminCommands.openHome=Command.create({route:"/admin",routeOrder:1e3,openPage:()=>_context.import("../pages/home/AdminHome")});AdminCommands.openDomainList=Command.create({route:"/admin/domains",routeOrder:100,openPage:()=>_context.import("../pages/domains/DomainListPage")});AdminCommands.openDomain=Command.create({route:"/admin/domains/{domainID}",openPage:()=>_context.import("../pages/domains/edit/EditDomainPage")});AdminCommands.openUserList=Command.create({route:"/admin/users",routeOrder:100,openPage:()=>_context.import("../pages/users/UserListPage")});AdminCommands.openMailboxList=Command.create({route:"/admin/mailboxes",routeOrder:100,openPage:()=>_context.import("../../common/pages/mailboxes/MailboxListPage")});AdminCommands.editRelay=Command.create({openPage:()=>_context.import("../pages/relays/edit/EditRelayPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/commands/AdminCommands");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../../../services/UserService","../../controls/password/PasswordStrength","../../validators/Validators"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,Form,FormField,LoginSession,Bind,PasswordBox,Action,InjectProperty,UserService,PasswordStrength,Validators,LoginPage;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_modelModel){LoginSession=_modelModel.LoginSession},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_controlsPasswordPasswordStrength){PasswordStrength=_controlsPasswordPasswordStrength.default},function(_validatorsValidators){Validators=_validatorsValidators.Validators}],execute:function(){_export("default",LoginPage=class LoginPage extends ContentPage{constructor(){super(...arguments);this.password=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=LoginSession.create({});this.model.userName="";this.model.checkPassword="";this.render(XNode.create("div",null,XNode.create("div",{"data-layout":"center-all"},XNode.create(Form,null,XNode.create(FormField,{label:"Username"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.userName))})),XNode.create(FormField,{label:"Username"},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.checkPassword))})),XNode.create("div",null,XNode.create("button",{"data-layout":"accent-button","data-submit-event":"login",text:"Login"}))))))}))}login(){var _a;return __awaiter(this,void 0,void 0,(function*(){try{yield this.userService.login(this.model);return}catch(error){if(!/change the password/i.test((_a=error.stack)!==null&&_a!==void 0?_a:error)){throw error}}this.model.newPassword="";this.renderer=XNode.create("div",null,XNode.create("div",{"data-layout":"center-all"},XNode.create(Form,null,XNode.create("div",null,"Update your password, your one time password is expired."),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password must contain one symbol, one number and should be minimum 7 characters"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password Again",required:true,error:Bind.oneWay((()=>this.model.newPassword!==this.password?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.newPassword))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"login",text:"Change Password & Login"})))))}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],LoginPage.prototype,"userService",void 0);__decorate([Action({onEvent:"login"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],LoginPage.prototype,"login",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/LoginPage");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode;function MenuItem({label,icon,click=undefined,href="",commandLink="",target=undefined}){return href||commandLink?XNode.create("a",{"data-layout":"menu-item","data-click-event":commandLink?"route":void 0,href:href||commandLink,target,"event-click":click},XNode.create("i",{class:icon}),XNode.create("span",{text:label})):XNode.create("div",{"data-layout":"menu-item","event-click":click},XNode.create("i",{class:icon}),XNode.create("span",{text:label}))}_export("default",MenuItem);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/menu/MenuItem");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../common/SocialMailApp","../commands/AdminCommands","../../common/controls/menu/MenuItem"],(function(_export,_context){"use strict";var __awaiter,XNode,styled,Drawer,SocialMailApp,AdminCommands,MenuItem,AdminDrawer,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistMobileAppMobileApp){Drawer=_webAtomsWebControlsDistMobileAppMobileApp.Drawer},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_commonControlsMenuMenuItem){MenuItem=_commonControlsMenuMenuItem.default}],execute:function(){css=styled.css`
1611
+ `.installLocal();_export("default",MailsPage=class MailsPage extends MasterDetailPage{constructor(){super(...arguments);this.mails=[];this.search="";this.selectedThread=null;this.previousThread=null;this.version=1}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){const mailboxID=this.parameters.id;const mailboxes=yield this.mailService.mailboxes(mailboxID);this.element.className=css;this.actionRenderer=()=>XNode.create("i",{class:"fas fa-plus","data-click-event":"compose-email"});const first=(_a=mailboxID?mailboxes.find((m=>m.mailboxID===mailboxID)):null)!==null&&_a!==void 0?_a:mailboxes[0];this.currentMailboxID=first.mailboxID;document.title=(_b=first===null||first===void 0?void 0:first.emailAddress)===null||_b===void 0?void 0:_b.name;this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create(DropDown,{items:mailboxes,labelPath:item=>item.emailAddress.emailAddress,valuePath:item=>item.mailboxID,value:Bind.twoWaysImmediate((()=>this.currentMailboxID))}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({class:"threads","data-list-selection":"default","data-items-updated-event":"mails-available","data-selection-updated-event":"mail-selected",selectedItem:Bind.twoWays((()=>this.selectedThread)),selectOnClick:true,items:this.mails},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailService.list({start,size:200,search:this.search,mailboxID:this.currentMailboxID,version:this.version,cancelToken}))),{itemRenderer:item=>XNode.create("div",{class:"mailbox-thread","data-unread":item.unread>0},item.emailAddress.name!==item.emailAddress.emailAddress&&XNode.create("div",{class:"name",text:item.emailAddress.name}),XNode.create("div",{class:"email-address",text:item.emailAddress.emailAddress}),item.unread&&XNode.create("div",{class:"unread",text:item.unread,title:`Unread ${item.unread} out of ${item.total}`}))})));this.registerDisposable(yield this.resolve(MailboxSocket).join(this.currentMailboxID.toString(),{newMail:(_,emailAddressID,emailID)=>{this.version++}}))}))}mailsAvailable(){return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){this.selectedThread=this.mails[0];return}const st=this.mails.find((x=>x.mailboxID===this.selectedThread.mailboxID&&x.emailAddressID===this.selectedThread.emailAddressID));if(st!==this.selectedThread){this.selectedThread=st}}))}mailSelected(){var _a;return __awaiter(this,void 0,void 0,(function*(){if(!this.selectedThread){return}if(((_a=this.previousThread)===null||_a===void 0?void 0:_a.emailAddressID)===this.selectedThread.emailAddressID){return}this.previousThread=this.selectedThread;this.openDetail(ConversationPage,this.selectedThread)}))}composeEmail(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResultOrCancel(ComposeMailPage,{mailboxID:this.currentMailboxID});this.version++}))}});__decorate([InjectProperty,__metadata("design:type",MailService)],MailsPage.prototype,"mailService",void 0);__decorate([Action({onEvent:"mails-available",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailsAvailable",null);__decorate([Action({onEvent:"mail-selected",defer:100}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"mailSelected",null);__decorate([Action({onEvent:"compose-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailsPage.prototype,"composeEmail",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/mails/MailsPage");System.register(["@web-atoms/core/dist/core/Command"],(function(_export,_context){"use strict";var Command,Commands,CommonCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default;Commands=_webAtomsCoreDistCoreCommand.Commands}],execute:function(){_export("default",CommonCommands=class CommonCommands extends Commands{});CommonCommands.openMailbox=Command.create({route:"/mailbox/{id}",routeOrder:50,openPage:()=>_context.import("../../web/page/mails/MailsPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/commands/CommonCommands");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../controls/repeater/InfiniteRepeater","./services/MailboxService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","./MailboxEditorPage","../../NumberFormats","../../commands/CommonCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,XNode,AtomRepeater,ContentPage,InfiniteRepeater,MailboxService,InjectProperty,Action,PageNavigator,MailboxEditorPage,toFileSize,CommonCommands,MailboxListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_controlsRepeaterInfiniteRepeater){InfiniteRepeater=_controlsRepeaterInfiniteRepeater.default},function(_servicesMailboxService){MailboxService=_servicesMailboxService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_MailboxEditorPage){MailboxEditorPage=_MailboxEditorPage.default},function(_NumberFormats){toFileSize=_NumberFormats.toFileSize},function(_commandsCommonCommands){CommonCommands=_commandsCommonCommands.default}],execute:function(){_export("default",MailboxListPage=class MailboxListPage extends ContentPage{constructor(){super(...arguments);this.search="";this.mailboxes=[];this.version=0}init(){return __awaiter(this,void 0,void 0,(function*(){this.titleRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create("i",{class:"fas fa-plus","data-click-event":"add-mailbox"}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({items:this.mailboxes},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.mailboxService.list({start,cancelToken,search:this.search,version:this.version}))),{itemRenderer:item=>XNode.create("tr",null,XNode.create("td",null,XNode.create("a",{href:CommonCommands.openMailbox.displayRoute({id:item.mailboxID}),target:"_blank","data-click-event":"route"},item.emailAddress.emailAddress)),XNode.create("td",null,toFileSize(item.storage)),XNode.create("td",null,toFileSize(item.maxStorage)))})))}))}addMailbox(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(MailboxEditorPage);this.version++}))}});__decorate([InjectProperty,__metadata("design:type",MailboxService)],MailboxListPage.prototype,"mailboxService",void 0);__decorate([Action({onEvent:"add-mailbox"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MailboxListPage.prototype,"addMailbox",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/mailboxes/MailboxListPage");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/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/ComboBox","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,PopupWindowPage,DomainRelay,DomainRelayTypeArray,XNode,Form,TextFormField,FormField,ComboBox,Bind,EditRelayPage;function prepare({host,username,password},{from,recipients,content}){return __awaiter(this,void 0,void 0,(function*(){const body=new FormData;body.append("from",from);body.append("recipients",recipients.join(","));body.append("content",content);const r=yield fetch(`${host}/api/queue/raw`,{headers:{"x-id":username,"x-auth":password},body});if(r.status>=300){throw new Error(yield r.text())}const{id}=yield r.json();return{id,status:()=>__awaiter(this,void 0,void 0,(function*(){var _a;const{error}=(_a=yield fetch(`${host}/api/queue/status/${id}`).then((x=>x.json())))!==null&&_a!==void 0?_a:{};return{error}}))}}))}_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){DomainRelay=_modelModel.DomainRelay;DomainRelayTypeArray=_modelModel.DomainRelayTypeArray},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_commonControlsFormRequiredFormField){TextFormField=_commonControlsFormRequiredFormField.TextFormField},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicComboBox){ComboBox=_webAtomsWebControlsDistBasicComboBox.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",EditRelayPage=class EditRelayPage extends PopupWindowPage{init(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){this.model=(_a=this.parameters.model)!==null&&_a!==void 0?_a:DomainRelay.create({type:"smtp"});(_b=this.model).script||(_b.script=prepare.toString());this.renderer=XNode.create("div",{"data-width":"screen-medium"},XNode.create(Form,null,XNode.create(FormField,{label:"Type"},XNode.create(ComboBox,{items:DomainRelayTypeArray,value:Bind.twoWaysImmediate((()=>this.model.type))})),XNode.create(TextFormField,{label:"Host/Server",value:()=>this.model.host}),XNode.create(TextFormField,{label:"Username",value:()=>this.model.username}),XNode.create(TextFormField,{label:"Password",value:()=>this.model.password}),XNode.create(FormField,{label:"Script",required:Bind.oneWay((()=>this.model.type==="https")),"style-display":Bind.oneWay((()=>this.model.type==="https"))},XNode.create("textarea",{rows:20,value:Bind.twoWaysImmediate((()=>this.model.script))}))))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/pages/relays/edit/EditRelayPage");System.register(["@web-atoms/core/dist/core/Command","../../common/commands/CommonCommands"],(function(_export,_context){"use strict";var Command,CommonCommands,AdminCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default}],execute:function(){_export("default",AdminCommands=class AdminCommands extends CommonCommands{});AdminCommands.openHome=Command.create({route:"/admin",routeOrder:1e3,openPage:()=>_context.import("../pages/home/AdminHome")});AdminCommands.openDomainList=Command.create({route:"/admin/domains",routeOrder:100,openPage:()=>_context.import("../pages/domains/DomainListPage")});AdminCommands.openDomain=Command.create({route:"/admin/domains/{domainID}",openPage:()=>_context.import("../pages/domains/edit/EditDomainPage")});AdminCommands.openUserList=Command.create({route:"/admin/users",routeOrder:100,openPage:()=>_context.import("../pages/users/UserListPage")});AdminCommands.openMailboxList=Command.create({route:"/admin/mailboxes",routeOrder:100,openPage:()=>_context.import("../../common/pages/mailboxes/MailboxListPage")});AdminCommands.editRelay=Command.create({openPage:()=>_context.import("../pages/relays/edit/EditRelayPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/commands/AdminCommands");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/PasswordBox","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../../../services/UserService","../../controls/password/PasswordStrength","../../validators/Validators"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,Form,FormField,LoginSession,Bind,PasswordBox,Action,InjectProperty,UserService,PasswordStrength,Validators,LoginPage;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_modelModel){LoginSession=_modelModel.LoginSession},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicPasswordBox){PasswordBox=_webAtomsWebControlsDistBasicPasswordBox.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_controlsPasswordPasswordStrength){PasswordStrength=_controlsPasswordPasswordStrength.default},function(_validatorsValidators){Validators=_validatorsValidators.Validators}],execute:function(){_export("default",LoginPage=class LoginPage extends ContentPage{constructor(){super(...arguments);this.password=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=LoginSession.create({});this.model.userName="";this.model.checkPassword="";this.render(XNode.create("div",null,XNode.create("div",{"data-layout":"center-all"},XNode.create(Form,null,XNode.create(FormField,{label:"Username"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.userName))})),XNode.create(FormField,{label:"Username"},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.checkPassword))})),XNode.create("div",null,XNode.create("button",{"data-layout":"accent-button","data-submit-event":"login",text:"Login"}))))))}))}login(){var _a;return __awaiter(this,void 0,void 0,(function*(){try{yield this.userService.login(this.model);return}catch(error){if(!/change the password/i.test((_a=error.stack)!==null&&_a!==void 0?_a:error)){throw error}}this.model.newPassword="";this.renderer=XNode.create("div",null,XNode.create("div",{"data-layout":"center-all"},XNode.create(Form,null,XNode.create("div",null,"Update your password, your one time password is expired."),XNode.create(FormField,{label:"Password",required:true,error:Bind.oneWay((()=>Validators.isValidPassword(this.password)?"":"Password must contain one symbol, one number and should be minimum 7 characters"))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.password))})),XNode.create(PasswordStrength,{password:Bind.oneWay((()=>this.password))}),XNode.create(FormField,{label:"Password Again",required:true,error:Bind.oneWay((()=>this.model.newPassword!==this.password?"Passwords do not match":""))},XNode.create(PasswordBox,{value:Bind.twoWaysImmediate((()=>this.model.newPassword))})),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"login",text:"Change Password & Login"})))))}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],LoginPage.prototype,"userService",void 0);__decorate([Action({onEvent:"login"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],LoginPage.prototype,"login",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/LoginPage");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode;function MenuItem({label,icon,click=undefined,href="",commandLink="",target=undefined}){return href||commandLink?XNode.create("a",{"data-layout":"menu-item","data-click-event":commandLink?"route":void 0,href:href||commandLink,target,"event-click":click},XNode.create("i",{class:icon}),XNode.create("span",{text:label})):XNode.create("div",{"data-layout":"menu-item","event-click":click},XNode.create("i",{class:icon}),XNode.create("span",{text:label}))}_export("default",MenuItem);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/menu/MenuItem");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../common/SocialMailApp","../commands/AdminCommands","../../common/controls/menu/MenuItem"],(function(_export,_context){"use strict";var __awaiter,XNode,styled,Drawer,SocialMailApp,AdminCommands,MenuItem,AdminDrawer,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistMobileAppMobileApp){Drawer=_webAtomsWebControlsDistMobileAppMobileApp.Drawer},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_commonControlsMenuMenuItem){MenuItem=_commonControlsMenuMenuItem.default}],execute:function(){css=styled.css`
1612
1612
  min-width: 200px;
1613
1613
  `.installLocal();_export("default",AdminDrawer=class AdminDrawer extends Drawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.user=SocialMailApp.user;this.renderer=XNode.create("div",null,XNode.create("div",{"data-background-color":"accent"},XNode.create("div",{"data-padding":"large","data-font-size":"large","data-color":"white",text:"Social Mail Admin"})),XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AdminCommands.openHome.displayRoute({})}),XNode.create(MenuItem,{icon:"fas fa-folder",label:"Domains",commandLink:AdminCommands.openDomainList.displayRoute({})}),XNode.create(MenuItem,{icon:"fas fa-user",label:"Users",commandLink:AdminCommands.openUserList.displayRoute({})}),XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:AdminCommands.openMailboxList.displayRoute({})}))}))}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/drawer/AdminDrawer");System.register(["@web-atoms/core/dist/core/XNode"],(function(_export,_context){"use strict";var XNode,ModuleInfo;return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default}],execute:function(){_export("ModuleInfo",ModuleInfo=typeof moduleInfo==="undefined"?[]:[XNode.create("div",{title:`${moduleInfo.server.package}@${moduleInfo.server.version}`},moduleInfo.server.version),XNode.create("div",{title:`${moduleInfo.ui.package}@${moduleInfo.ui.version}`},moduleInfo.ui.version)])}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/ModuleInfo");System.register(["tslib","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","../style/GlobalStyle","../services/UserService","@web-atoms/core/dist/core/InjectProperty","./commands/AdminCommands","@web-atoms/web-controls/dist/PageNavigator","../common/pages/user/LoginPage","./drawer/AdminDrawer","@web-atoms/core/dist/core/Command","@web-atoms/core/dist/core/Route","../services/files/LocalFileService","@web-atoms/core/dist/core/XNode","../common/controls/ModuleInfo"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Pack,MobileDesktopApp,UserService,InjectProperty,AdminCommands,PageNavigator,LoginPage,AdminDrawer,Command,Route,LocalFileService,XNode,ModuleInfo,AdminAppIndex;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_styleGlobalStyle){},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commandsAdminCommands){AdminCommands=_commandsAdminCommands.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_commonPagesUserLoginPage){LoginPage=_commonPagesUserLoginPage.default},function(_drawerAdminDrawer){AdminDrawer=_drawerAdminDrawer.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonControlsModuleInfo){ModuleInfo=_commonControlsModuleInfo.ModuleInfo}],execute:function(){AdminAppIndex=class AdminAppIndex extends MobileDesktopApp{init(){var _a;return __awaiter(this,void 0,void 0,(function*(){AdminCommands.install(this);this.resolve(LocalFileService);const user=yield this.userService.getUser();if(!user||!((_a=user.roles)===null||_a===void 0?void 0:_a.some((r=>r.roleName==="Administrator")))){PageNavigator.openPage(LoginPage);return}this.drawerMenu=AdminDrawer;if(!Command.invokeRoute()){AdminCommands.openHome.dispatch()}if(this.desktopApp){this.desktopApp.statusBarRenderer=()=>XNode.create("div",{"data-layout":"row"},XNode.create("div",{"data-flex":"stretch-full"}),...ModuleInfo)}}))}};__decorate([InjectProperty,__metadata("design:type",UserService)],AdminAppIndex.prototype,"userService",void 0);AdminAppIndex=__decorate([Pack],AdminAppIndex);_export("default",AdminAppIndex);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(/\d+\./.test(location.hostname)){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/admin/AdminAppIndex");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`
1614
1614
  padding: 5px;