@social-mail/social-mail-client 1.2.710 → 1.2.711

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.
@@ -3102,5 +3102,5 @@ html, body {
3102
3102
  overflow: auto;
3103
3103
  }
3104
3104
 
3105
- `.installGlobal("drawer-menu");_export("default",BaseDrawer=class BaseDrawer extends Drawer{constructor(app,e=document.createElement("drawer-menu")){super(app,e)}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/drawer/BaseDrawer");System.register(["tslib","@web-atoms/core/dist/core/XNode","../../common/SocialMailApp","../../common/controls/menu/MenuItem","../commands/AppCommands","@web-atoms/web-controls/dist/basic/Expander","../../common/NumberFormats","@web-atoms/core/dist/view-model/Action","../../common/commands/CommonCommands","../../services/LoginService","../../common/AppUrlService","@web-atoms/core/dist/core/InjectProperty","../../common/MenuService","../../common/controls/menu/MenuRepeater","../../common/controls/drawer/BaseDrawer","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,SocialMailApp,MenuItem,AppCommands,ExpanderMenu,toFileSize,Action,CommonCommands,LoginService,AppUrlService,InjectProperty,MenuService,MenuRepeater,BaseDrawer,Bind,AppDrawer;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_commonControlsMenuMenuItem){MenuItem=_commonControlsMenuMenuItem.default},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_webAtomsWebControlsDistBasicExpander){ExpanderMenu=_webAtomsWebControlsDistBasicExpander.ExpanderMenu},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default},function(_servicesLoginService){LoginService=_servicesLoginService.default},function(_commonAppUrlService){AppUrlService=_commonAppUrlService.AppUrlService},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonMenuService){MenuService=_commonMenuService.default},function(_commonControlsMenuMenuRepeater){MenuRepeater=_commonControlsMenuMenuRepeater.default},function(_commonControlsDrawerBaseDrawer){BaseDrawer=_commonControlsDrawerBaseDrawer.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",AppDrawer=class AppDrawer extends BaseDrawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.user=SocialMailApp.user;this.renderer=XNode.create("div",null,XNode.create("header",null,SocialMailApp.config.name),XNode.create("section",null,XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AppCommands.openHome.displayRoute({})}),XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.mailboxes,itemRenderer:mb=>XNode.create(MenuItem,{commandLink:AppCommands.openMailbox.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress})}),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openMailboxList.displayRoute({})})),XNode.create(ExpanderMenu,{"style-display":Bind.oneWay((()=>this.menuService.channels.length>0)),isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Channels",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.channels,itemRenderer:mb=>XNode.create(MenuItem,{commandLink:AppCommands.openChannel.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress})})),XNode.create(ExpanderMenu,{"style-display":Bind.oneWay((()=>this.menuService.drives.length>0)),isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Drives",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.drives,itemRenderer:d=>{var _a;return XNode.create(MenuItem,{commandLink:AppCommands.openFiles.displayRoute({id:d.appFileID}),label:d.name,description:`${(_a=d.creator)===null||_a===void 0?void 0:_a.displayName} ${BigInt(d.fileSize)>BigInt(0)?"("+toFileSize(d.fileSize)+")":""}`})}}),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openDrives.displayRoute({})})),XNode.create(ExpanderMenu,{"style-display":Bind.oneWay((()=>this.menuService.websites.length>0)),isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Web Sites",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.websites,itemRenderer:d=>XNode.create(MenuItem,{href:AppUrlService.editWebSite(d),label:d.folder.name,description:toFileSize(Number(d.folder.fileSize)+Number(d.snapshotStorage))})}),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openWebSiteList.displayRoute({})})),XNode.create(ExpanderMenu,{isExpanded:false},XNode.create(MenuItem,{icon:"fas fa-gears",label:"Account Settings"}),XNode.create(MenuItem,{label:"Dns Zones",commandLink:CommonCommands.dnsZoneList.displayRoute({})}),!SocialMailApp.config.externalLogin&&XNode.create(MenuItem,{label:"Change Password",commandLink:CommonCommands.changePassword.displayRoute({})}),!SocialMailApp.config.externalLogin&&XNode.create(MenuItem,{label:"Multi Factor",commandLink:CommonCommands.setupMultiFactor.displayRoute({})}),XNode.create(MenuItem,{label:"Access Tokens",commandLink:CommonCommands.accessTokenList.displayRoute({})}),XNode.create(MenuItem,{label:"Logout","data-click-event":"user-logout"}))))}))}userLogout(){return __awaiter(this,void 0,void 0,(function*(){const loginService=this.resolve(LoginService);yield loginService.logout()}))}onClick(none,e){var _a;(_a=this.selected)===null||_a===void 0?void 0:_a.removeAttribute("data-selected");let start=e.target;while(start!==e.currentTarget){if(start.getAttribute("data-layout")==="menu-item"){start.setAttribute("data-selected","true");this.selected=start;break}start=start.parentElement}}});__decorate([InjectProperty,__metadata("design:type",MenuService)],AppDrawer.prototype,"menuService",void 0);__decorate([Action({onEvent:"user-logout"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],AppDrawer.prototype,"userLogout",null);__decorate([Action({onEvent:"click"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,MouseEvent]),__metadata("design:returntype",void 0)],AppDrawer.prototype,"onClick",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/drawer/AppDrawer");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/di/DITransient","@web-atoms/core/dist/di/Inject","./EntityService","../model/model","@web-atoms/core/dist/services/FetchBuilder","../common/apiPath"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,LoginSession,FetchBuilder,apiPath,WebPushService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_EntityService){EntityService=_EntityService.default},function(_modelModel){LoginSession=_modelModel.LoginSession},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){WebPushService=class WebPushService{register(){return __awaiter(this,void 0,void 0,(function*(){try{if(!("serviceWorker"in navigator)){return}const r=yield navigator.serviceWorker.ready;let s=yield r.pushManager.getSubscription();if(!s){s=yield this.createRegistration(r);if(!s){return}}yield this.updateRegistration(s)}catch(error){console.error(error)}}))}createRegistration(r){return __awaiter(this,void 0,void 0,(function*(){const permission=yield Notification.requestPermission();if(permission!=="granted"){return}const{webPush:{publicKey}}=yield FetchBuilder.get(apiPath("/api/push/keys")).responseAsJson();const s=yield r.pushManager.subscribe({userVisibleOnly:true,applicationServerKey:publicKey});return s}))}updateRegistration(s){return __awaiter(this,void 0,void 0,(function*(){const session=yield this.entityService.query(LoginSession,"currentUser").firstOrDefault();session.deviceToken=JSON.stringify(s);session.deviceTokenType="WebPush";const cloner=this.entityService.cloner(session);yield this.entityService.save(cloner.copy)}))}};__decorate([Inject,__metadata("design:type",EntityService)],WebPushService.prototype,"entityService",void 0);WebPushService=__decorate([DITransient()],WebPushService);_export("default",WebPushService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/WebPushService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/buttons/IconButton","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../../date/DateFormats","../../../controls/countries/CountrySelect","@web-atoms/web-controls/dist/basic/MaskedInput","../../../controls/qrcode/QRCode","@web-atoms/core/dist/core/sleep","../../../../services/EntityService","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserAuthFactor,InjectProperty,UserService,XNode,Form,AddIconTextButton,SaveIconTextButton,FormField,Bind,Action,DateFormats,CountrySelect,formatForCountry,isdForCountry,MaskedInput,QRCodeControl,sleep,EntityService,DateTime,SetupMultiFactorPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton;SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats},function(_controlsCountriesCountrySelect){CountrySelect=_controlsCountriesCountrySelect.CountrySelect;formatForCountry=_controlsCountriesCountrySelect.formatForCountry;isdForCountry=_controlsCountriesCountrySelect.isdForCountry},function(_webAtomsWebControlsDistBasicMaskedInput){MaskedInput=_webAtomsWebControlsDistBasicMaskedInput.default},function(_controlsQrcodeQRCode){QRCodeControl=_controlsQrcodeQRCode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){_export("default",SetupMultiFactorPage=class SetupMultiFactorPage extends PopupWindowPage{constructor(){super(...arguments);this.countryCode="US";this.phoneNumber=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();const{multiFactor}=this.model;this.title="Please setup security";yield this.generateOTP()}))}renderAuthFactor(item){if(item.method==="totp"){return XNode.create("tr",null,XNode.create("td",null,"Authenticator"),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}if(item.method==="one-time"){return XNode.create("tr",null,XNode.create("td",null,"OTP"),XNode.create("td",null,item.hint,"*****************"),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}return XNode.create("tr",null,XNode.create("td",null,item.method),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}addAuthenticator(){return __awaiter(this,void 0,void 0,(function*(){const authFactor=yield this.userService.createAuthFactor(this.model);this.authFactor=authFactor;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:""},XNode.create("div",null,"Scan following QR Code in any compatible Authenticator App. Enter the generated code and hit the verify button.")),XNode.create(FormField,{label:"Secret"},XNode.create("img",{src:authFactor.qrCodeDataUrl})),XNode.create(FormField,{label:"Code",required:true,error:Bind.oneWay((()=>this.authFactor.token?"":"Code is required"))},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.authFactor.token))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-auth-factor",text:"Verify"}))))}))}generateOTP(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const authList=(_a=(_b=this.model).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[];let generated=false;const newAuth=[];while(authList.filter((x=>x.method==="one-time")).length<=8){const af=UserAuthFactor.create({method:"one-time"});authList.push(af);newAuth.push(af)}yield this.userService.saveAuthFactors(newAuth);let text="";for(const iterator of authList){if(!(iterator===null||iterator===void 0?void 0:iterator.displaySecret)){continue}generated=true;text+="\r\n"+iterator.displaySecret}if(!generated){yield this.verifyCellPhone();return}text+="\r\n";this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"One Time Passwords"},XNode.create("div",null,"Please copy and save these one time codes somewhere safe. You can use them if you cannot access Authenticator app.")),XNode.create(FormField,{label:""},XNode.create("textarea",{rows:12,value:text})),XNode.create("div",null,"After copying, setup authenticator to finish."),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.verifyCellPhone(),text:"Verify Cell Phone"}))))}))}verifyCellPhone(){return __awaiter(this,void 0,void 0,(function*(){const pv=this.model.authFactors.find((x=>x.method==="otp-in"));if(!pv){return yield this.addCellPhone()}if(pv.verified){this.model.multiFactor=true;yield this.userService.save(this.model);this.renderer=XNode.create("div",null,XNode.create("div",null,"Your phone has been verified, you can optionally add",XNode.create("br",null),"Google Authenticator or similar as backup code generator",XNode.create("br",null),"that you can use in case of poor cellular network."),XNode.create("div",null,XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"})));return}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(QRCodeControl,{smsConfig:pv.verificationToken.externalConfig})));const es=this.entityService;const id=pv.authFactorID;do{yield sleep(5e3);pv.dateUpdated=DateTime.now;yield es.save(pv,(c=>c));if(pv.verified){break}}while(true);this.model.multiFactor=true;yield this.userService.save(this.model);yield this.verifyCellPhone()}))}addCellPhone(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Phone Number"},XNode.create("div",{"data-layout":"row"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.countryCode))}),XNode.create(MaskedInput,{mask:Bind.oneWayAsync((()=>formatForCountry(this.countryCode))),value:Bind.twoWaysImmediate((()=>this.phoneNumber))}))),XNode.create("div",null,"In next screen, you will be asked ",XNode.create("br",null)," to verify your phone number.",XNode.create("br",null),XNode.create("br",null),XNode.create("br",null),XNode.create("br",null),XNode.create("br",null)),XNode.create(FormField,{label:""},XNode.create(AddIconTextButton,{"data-submit-event":"add-phone-number"}))))}))}addPhoneNumber(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const es=this.entityService;const isdCode=yield isdForCountry(this.countryCode,"+");const phoneNumber=isdCode+this.phoneNumber.replace(/[^\d]/g,"");const uaf=UserAuthFactor.create({userID:this.model.userID,isdCode,phoneNumber,method:"otp-in"});const m=yield es.save(uaf,(c=>c));if(m.verificationToken){uaf.verificationToken=m.verificationToken}((_a=(_b=this.model).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[]).add(uaf);yield this.verifyCellPhone()}))}enableMultiFactor(){return __awaiter(this,void 0,void 0,(function*(){this.model.multiFactor=true;yield this.userService.save(this.model);yield this.init()}))}saveAuthFactor(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.verify(this.authFactor);this.model.multiFactor=true;yield this.userService.save(this.model);location.reload()}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],SetupMultiFactorPage.prototype,"userService",void 0);__decorate([InjectProperty,__metadata("design:type",EntityService)],SetupMultiFactorPage.prototype,"entityService",void 0);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"verifyCellPhone",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"addCellPhone",null);__decorate([Action({onEvent:"add-phone-number"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"addPhoneNumber",null);__decorate([Action({onEvent:"enable-multi-factor",success:"Multi factor authentication enabled successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"enableMultiFactor",null);__decorate([Action({onEvent:"save-auth-factor",success:"Multi Factor Login is setup successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"saveAuthFactor",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/SetupMultiFactorPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/core/dist/core/Route","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/core/dist/core/Command","./commands/AppCommands","../style/GlobalStyle","../services/LoginService","../common/pages/user/login/LoginPage","./drawer/AppDrawer","../services/files/LocalFileService","../common/controls/ModuleInfo","@web-atoms/core/dist/core/sleep","../services/WebPushService","../common/pages/user/multi-factor/SetupMultiFactorPage","../common/SocialMailApp","./page/users/SignupPage","./page/mails/mini-compose/MiniComposePage","../common/TestMode"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,Pack,MobileDesktopApp,Route,PageNavigator,Command,AppCommands,LoginService,LoginPage,AppDrawer,LocalFileService,ModuleInfo,sleep,WebPushService,SetupMultiFactorPage,SocialMailApp,SignupPage,MiniComposePage,AppLocation,_a,_b,_c,_d,AppIndex;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_styleGlobalStyle){},function(_servicesLoginService){LoginService=_servicesLoginService.default},function(_commonPagesUserLoginLoginPage){LoginPage=_commonPagesUserLoginLoginPage.default},function(_drawerAppDrawer){AppDrawer=_drawerAppDrawer.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default},function(_commonControlsModuleInfo){ModuleInfo=_commonControlsModuleInfo.ModuleInfo},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_servicesWebPushService){WebPushService=_servicesWebPushService.default},function(_commonPagesUserMultiFactorSetupMultiFactorPage){SetupMultiFactorPage=_commonPagesUserMultiFactorSetupMultiFactorPage.default},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_pageUsersSignupPage){SignupPage=_pageUsersSignupPage.default},function(_pageMailsMiniComposeMiniComposePage){MiniComposePage=_pageMailsMiniComposeMiniComposePage.default},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation}],execute:function(){(_a=(_c=Symbol).asyncDispose)!==null&&_a!==void 0?_a:_c.asyncDispose=Symbol("asyncDispose");(_b=(_d=Symbol).dispose)!==null&&_b!==void 0?_b:_d.dispose=Symbol("dispose");AppIndex=class AppIndex extends MobileDesktopApp{init(){return __awaiter(this,void 0,void 0,(function*(){AppCommands.install(this);this.resolve(LocalFileService);const currentUser=yield this.userService.getUser();if(!currentUser){if(SocialMailApp.config.externalLogin){location.href=SocialMailApp.config.externalLogin}if(/\/signup$/i.test(location.href)||/\/signup\//i.test(location.href)){PageNavigator.openPage(SignupPage);return}PageNavigator.openPage(LoginPage);return}this.drawerMenu=AppDrawer;while(!currentUser.multiFactor){yield PageNavigator.pushPageForResultOrCancel(SetupMultiFactorPage)}if(!Command.invokeRoute()){AppCommands.openHome.dispatch()}if(this.desktopApp){this.desktopApp.statusBarRenderer=()=>{var _a;return XNode.create("div",{"data-layout":"row"},((_a=currentUser.roles)===null||_a===void 0?void 0:_a.find((x=>/^admin/i.test(x.roleName))))&&XNode.create("a",{href:"/admin",target:"_blank"},"Admin"),XNode.create("div",{"data-flex":"stretch-full"}),...ModuleInfo)}}const url=new URL(location.href);const mailto=url.searchParams.get("mailto");if(mailto){PageNavigator.pushPage(MiniComposePage,{asAttachment:false,thread:{},mailto})}yield sleep(500);yield this.resolve(WebPushService).register()}))}};__decorate([InjectProperty,__metadata("design:type",LoginService)],AppIndex.prototype,"userService",void 0);AppIndex=__decorate([Pack],AppIndex);_export("default",AppIndex);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(AppLocation.isLocalTesting){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/AppIndex");
3105
+ `.installGlobal("drawer-menu");_export("default",BaseDrawer=class BaseDrawer extends Drawer{constructor(app,e=document.createElement("drawer-menu")){super(app,e)}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/drawer/BaseDrawer");System.register(["tslib","@web-atoms/core/dist/core/XNode","../../common/SocialMailApp","../../common/controls/menu/MenuItem","../commands/AppCommands","@web-atoms/web-controls/dist/basic/Expander","../../common/NumberFormats","@web-atoms/core/dist/view-model/Action","../../common/commands/CommonCommands","../../services/LoginService","../../common/AppUrlService","@web-atoms/core/dist/core/InjectProperty","../../common/MenuService","../../common/controls/menu/MenuRepeater","../../common/controls/drawer/BaseDrawer","@web-atoms/core/dist/core/Bind"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,SocialMailApp,MenuItem,AppCommands,ExpanderMenu,toFileSize,Action,CommonCommands,LoginService,AppUrlService,InjectProperty,MenuService,MenuRepeater,BaseDrawer,Bind,AppDrawer;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_commonControlsMenuMenuItem){MenuItem=_commonControlsMenuMenuItem.default},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_webAtomsWebControlsDistBasicExpander){ExpanderMenu=_webAtomsWebControlsDistBasicExpander.ExpanderMenu},function(_commonNumberFormats){toFileSize=_commonNumberFormats.toFileSize},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default},function(_servicesLoginService){LoginService=_servicesLoginService.default},function(_commonAppUrlService){AppUrlService=_commonAppUrlService.AppUrlService},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonMenuService){MenuService=_commonMenuService.default},function(_commonControlsMenuMenuRepeater){MenuRepeater=_commonControlsMenuMenuRepeater.default},function(_commonControlsDrawerBaseDrawer){BaseDrawer=_commonControlsDrawerBaseDrawer.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default}],execute:function(){_export("default",AppDrawer=class AppDrawer extends BaseDrawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.user=SocialMailApp.user;this.renderer=XNode.create("div",null,XNode.create("header",null,SocialMailApp.config.name),XNode.create("section",null,XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AppCommands.openHome.displayRoute({})}),XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.mailboxes,itemRenderer:mb=>XNode.create(MenuItem,{commandLink:AppCommands.openMailbox.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress})}),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openMailboxList.displayRoute({})})),XNode.create(ExpanderMenu,{"style-display":Bind.oneWay((()=>this.menuService.channels.length>0)),isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Channels",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.channels,itemRenderer:mb=>XNode.create(MenuItem,{commandLink:AppCommands.openChannel.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress})})),XNode.create(ExpanderMenu,{"style-display":Bind.oneWay((()=>this.menuService.drives.length>0)),isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Drives",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.drives,itemRenderer:d=>{var _a;return XNode.create(MenuItem,{commandLink:AppCommands.openFiles.displayRoute({id:d.appFileID}),label:d.name,description:`${(_a=d.creator)===null||_a===void 0?void 0:_a.displayName} ${BigInt(d.fileSize)>BigInt(0)?"("+toFileSize(d.fileSize)+")":""}`})}}),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openDrives.displayRoute({})})),XNode.create(ExpanderMenu,{"style-display":Bind.oneWay((()=>this.menuService.websites.length>0)),isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Web Sites",commandLink:null}),XNode.create(MenuRepeater,{items:this.menuService.websites,itemRenderer:d=>XNode.create(MenuItem,{href:AppUrlService.editWebSite(d),target:`_web_${d.folderID}`,label:d.folder.name,description:toFileSize(Number(d.folder.fileSize)+Number(d.snapshotStorage))})}),XNode.create(MenuItem,{label:"All",commandLink:AppCommands.openWebSiteList.displayRoute({})})),XNode.create(ExpanderMenu,{isExpanded:false},XNode.create(MenuItem,{icon:"fas fa-gears",label:"Account Settings"}),XNode.create(MenuItem,{label:"Dns Zones",commandLink:CommonCommands.dnsZoneList.displayRoute({})}),!SocialMailApp.config.externalLogin&&XNode.create(MenuItem,{label:"Change Password",commandLink:CommonCommands.changePassword.displayRoute({})}),!SocialMailApp.config.externalLogin&&XNode.create(MenuItem,{label:"Multi Factor",commandLink:CommonCommands.setupMultiFactor.displayRoute({})}),XNode.create(MenuItem,{label:"Access Tokens",commandLink:CommonCommands.accessTokenList.displayRoute({})}),XNode.create(MenuItem,{label:"Logout","data-click-event":"user-logout"}))))}))}userLogout(){return __awaiter(this,void 0,void 0,(function*(){const loginService=this.resolve(LoginService);yield loginService.logout()}))}onClick(none,e){var _a;(_a=this.selected)===null||_a===void 0?void 0:_a.removeAttribute("data-selected");let start=e.target;while(start!==e.currentTarget){if(start.getAttribute("data-layout")==="menu-item"){start.setAttribute("data-selected","true");this.selected=start;break}start=start.parentElement}}});__decorate([InjectProperty,__metadata("design:type",MenuService)],AppDrawer.prototype,"menuService",void 0);__decorate([Action({onEvent:"user-logout"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],AppDrawer.prototype,"userLogout",null);__decorate([Action({onEvent:"click"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object,MouseEvent]),__metadata("design:returntype",void 0)],AppDrawer.prototype,"onClick",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/drawer/AppDrawer");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/di/DITransient","@web-atoms/core/dist/di/Inject","./EntityService","../model/model","@web-atoms/core/dist/services/FetchBuilder","../common/apiPath"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,LoginSession,FetchBuilder,apiPath,WebPushService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDITransient){DITransient=_webAtomsCoreDistDiDITransient.default},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_EntityService){EntityService=_EntityService.default},function(_modelModel){LoginSession=_modelModel.LoginSession},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_commonApiPath){apiPath=_commonApiPath.apiPath}],execute:function(){WebPushService=class WebPushService{register(){return __awaiter(this,void 0,void 0,(function*(){try{if(!("serviceWorker"in navigator)){return}const r=yield navigator.serviceWorker.ready;let s=yield r.pushManager.getSubscription();if(!s){s=yield this.createRegistration(r);if(!s){return}}yield this.updateRegistration(s)}catch(error){console.error(error)}}))}createRegistration(r){return __awaiter(this,void 0,void 0,(function*(){const permission=yield Notification.requestPermission();if(permission!=="granted"){return}const{webPush:{publicKey}}=yield FetchBuilder.get(apiPath("/api/push/keys")).responseAsJson();const s=yield r.pushManager.subscribe({userVisibleOnly:true,applicationServerKey:publicKey});return s}))}updateRegistration(s){return __awaiter(this,void 0,void 0,(function*(){const session=yield this.entityService.query(LoginSession,"currentUser").firstOrDefault();session.deviceToken=JSON.stringify(s);session.deviceTokenType="WebPush";const cloner=this.entityService.cloner(session);yield this.entityService.save(cloner.copy)}))}};__decorate([Inject,__metadata("design:type",EntityService)],WebPushService.prototype,"entityService",void 0);WebPushService=__decorate([DITransient()],WebPushService);_export("default",WebPushService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/WebPushService");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/InjectProperty","../services/UserService","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/Form","../../../controls/buttons/IconButton","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","../../../date/DateFormats","../../../controls/countries/CountrySelect","@web-atoms/web-controls/dist/basic/MaskedInput","../../../controls/qrcode/QRCode","@web-atoms/core/dist/core/sleep","../../../../services/EntityService","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserAuthFactor,InjectProperty,UserService,XNode,Form,AddIconTextButton,SaveIconTextButton,FormField,Bind,Action,DateFormats,CountrySelect,formatForCountry,isdForCountry,MaskedInput,QRCodeControl,sleep,EntityService,DateTime,SetupMultiFactorPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton;SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats},function(_controlsCountriesCountrySelect){CountrySelect=_controlsCountriesCountrySelect.CountrySelect;formatForCountry=_controlsCountriesCountrySelect.formatForCountry;isdForCountry=_controlsCountriesCountrySelect.isdForCountry},function(_webAtomsWebControlsDistBasicMaskedInput){MaskedInput=_webAtomsWebControlsDistBasicMaskedInput.default},function(_controlsQrcodeQRCode){QRCodeControl=_controlsQrcodeQRCode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){_export("default",SetupMultiFactorPage=class SetupMultiFactorPage extends PopupWindowPage{constructor(){super(...arguments);this.countryCode="US";this.phoneNumber=""}init(){return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();const{multiFactor}=this.model;this.title="Please setup security";yield this.generateOTP()}))}renderAuthFactor(item){if(item.method==="totp"){return XNode.create("tr",null,XNode.create("td",null,"Authenticator"),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}if(item.method==="one-time"){return XNode.create("tr",null,XNode.create("td",null,"OTP"),XNode.create("td",null,item.hint,"*****************"),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}return XNode.create("tr",null,XNode.create("td",null,item.method),XNode.create("td",null,item.hint),XNode.create("td",null,DateFormats.relative.short(item.dateUpdated)),XNode.create("td",null,XNode.create("i",{class:"fas fa-check green"})))}addAuthenticator(){return __awaiter(this,void 0,void 0,(function*(){const authFactor=yield this.userService.createAuthFactor(this.model);this.authFactor=authFactor;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:""},XNode.create("div",null,"Scan following QR Code in any compatible Authenticator App. Enter the generated code and hit the verify button.")),XNode.create(FormField,{label:"Secret"},XNode.create("img",{src:authFactor.qrCodeDataUrl})),XNode.create(FormField,{label:"Code",required:true,error:Bind.oneWay((()=>this.authFactor.token?"":"Code is required"))},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.authFactor.token))})),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"data-submit-event":"save-auth-factor",text:"Verify"}))))}))}generateOTP(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const authList=(_a=(_b=this.model).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[];let generated=false;const newAuth=[];while(authList.filter((x=>x.method==="one-time")).length<=8){const af=UserAuthFactor.create({method:"one-time"});authList.push(af);newAuth.push(af)}yield this.userService.saveAuthFactors(newAuth);let text="";for(const iterator of authList){if(!(iterator===null||iterator===void 0?void 0:iterator.displaySecret)){continue}generated=true;text+="\r\n"+iterator.displaySecret}if(!generated){yield this.verifyCellPhone();return}text+="\r\n";this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(Form,null,XNode.create(FormField,{label:"One Time Passwords"},XNode.create("div",null,"Please copy and save these one time codes somewhere safe. You can use them if you cannot access Authenticator app.")),XNode.create(FormField,{label:""},XNode.create("textarea",{rows:12,value:text})),XNode.create("div",null,"After copying, setup authenticator to finish."),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.verifyCellPhone(),text:"Verify Cell Phone"}))))}))}verifyCellPhone(){return __awaiter(this,void 0,void 0,(function*(){const pv=this.model.authFactors.find((x=>x.method==="otp-in"));if(!pv){return yield this.addCellPhone()}if(pv.verified){this.model.multiFactor=true;yield this.userService.save(this.model);this.renderer=XNode.create("div",null,XNode.create("div",null,"Your phone has been verified, you can optionally add",XNode.create("br",null),"Google Authenticator or similar as backup code generator",XNode.create("br",null),"that you can use in case of poor cellular network."),XNode.create("div",null,XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"})));return}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(QRCodeControl,{smsConfig:pv.verificationToken.externalConfig})));const es=this.entityService;const id=pv.authFactorID;do{yield sleep(5e3);pv.dateUpdated=DateTime.now;yield es.save(pv,(c=>c));if(pv.verified){break}}while(true);this.model.multiFactor=true;yield this.userService.save(this.model);yield this.verifyCellPhone()}))}addCellPhone(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Phone Number"},XNode.create("div",{"data-layout":"row"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.countryCode))}),XNode.create(MaskedInput,{mask:Bind.oneWayAsync((()=>formatForCountry(this.countryCode))),value:Bind.twoWaysImmediate((()=>this.phoneNumber))}))),XNode.create("div",null,"In next screen, you will be asked ",XNode.create("br",null)," to verify your phone number.",XNode.create("br",null),XNode.create("br",null),XNode.create("br",null),XNode.create("br",null),XNode.create("br",null)),XNode.create(FormField,{label:""},XNode.create(AddIconTextButton,{"data-submit-event":"add-phone-number"}))))}))}addPhoneNumber(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const es=this.entityService;const isdCode=yield isdForCountry(this.countryCode,"+");const phoneNumber=isdCode+this.phoneNumber.replace(/[^\d]/g,"");const uaf=UserAuthFactor.create({userID:this.model.userID,isdCode,phoneNumber,method:"otp-in"});const m=yield es.save(uaf,(c=>c));if(m.verificationToken){uaf.verificationToken=m.verificationToken}((_a=(_b=this.model).authFactors)!==null&&_a!==void 0?_a:_b.authFactors=[]).add(uaf);yield this.verifyCellPhone()}))}enableMultiFactor(){return __awaiter(this,void 0,void 0,(function*(){this.model.multiFactor=true;yield this.userService.save(this.model);yield this.init()}))}saveAuthFactor(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.verify(this.authFactor);this.model.multiFactor=true;yield this.userService.save(this.model);location.reload()}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],SetupMultiFactorPage.prototype,"userService",void 0);__decorate([InjectProperty,__metadata("design:type",EntityService)],SetupMultiFactorPage.prototype,"entityService",void 0);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"verifyCellPhone",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"addCellPhone",null);__decorate([Action({onEvent:"add-phone-number"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"addPhoneNumber",null);__decorate([Action({onEvent:"enable-multi-factor",success:"Multi factor authentication enabled successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"enableMultiFactor",null);__decorate([Action({onEvent:"save-auth-factor",success:"Multi Factor Login is setup successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SetupMultiFactorPage.prototype,"saveAuthFactor",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/SetupMultiFactorPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","@web-atoms/core/dist/core/Route","@web-atoms/web-controls/dist/PageNavigator","@web-atoms/core/dist/core/Command","./commands/AppCommands","../style/GlobalStyle","../services/LoginService","../common/pages/user/login/LoginPage","./drawer/AppDrawer","../services/files/LocalFileService","../common/controls/ModuleInfo","@web-atoms/core/dist/core/sleep","../services/WebPushService","../common/pages/user/multi-factor/SetupMultiFactorPage","../common/SocialMailApp","./page/users/SignupPage","./page/mails/mini-compose/MiniComposePage","../common/TestMode"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,Pack,MobileDesktopApp,Route,PageNavigator,Command,AppCommands,LoginService,LoginPage,AppDrawer,LocalFileService,ModuleInfo,sleep,WebPushService,SetupMultiFactorPage,SocialMailApp,SignupPage,MiniComposePage,AppLocation,_a,_b,_c,_d,AppIndex;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsAppCommands){AppCommands=_commandsAppCommands.default},function(_styleGlobalStyle){},function(_servicesLoginService){LoginService=_servicesLoginService.default},function(_commonPagesUserLoginLoginPage){LoginPage=_commonPagesUserLoginLoginPage.default},function(_drawerAppDrawer){AppDrawer=_drawerAppDrawer.default},function(_servicesFilesLocalFileService){LocalFileService=_servicesFilesLocalFileService.default},function(_commonControlsModuleInfo){ModuleInfo=_commonControlsModuleInfo.ModuleInfo},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_servicesWebPushService){WebPushService=_servicesWebPushService.default},function(_commonPagesUserMultiFactorSetupMultiFactorPage){SetupMultiFactorPage=_commonPagesUserMultiFactorSetupMultiFactorPage.default},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_pageUsersSignupPage){SignupPage=_pageUsersSignupPage.default},function(_pageMailsMiniComposeMiniComposePage){MiniComposePage=_pageMailsMiniComposeMiniComposePage.default},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation}],execute:function(){(_a=(_c=Symbol).asyncDispose)!==null&&_a!==void 0?_a:_c.asyncDispose=Symbol("asyncDispose");(_b=(_d=Symbol).dispose)!==null&&_b!==void 0?_b:_d.dispose=Symbol("dispose");AppIndex=class AppIndex extends MobileDesktopApp{init(){return __awaiter(this,void 0,void 0,(function*(){AppCommands.install(this);this.resolve(LocalFileService);const currentUser=yield this.userService.getUser();if(!currentUser){if(SocialMailApp.config.externalLogin){location.href=SocialMailApp.config.externalLogin}if(/\/signup$/i.test(location.href)||/\/signup\//i.test(location.href)){PageNavigator.openPage(SignupPage);return}PageNavigator.openPage(LoginPage);return}this.drawerMenu=AppDrawer;while(!currentUser.multiFactor){yield PageNavigator.pushPageForResultOrCancel(SetupMultiFactorPage)}if(!Command.invokeRoute()){AppCommands.openHome.dispatch()}if(this.desktopApp){this.desktopApp.statusBarRenderer=()=>{var _a;return XNode.create("div",{"data-layout":"row"},((_a=currentUser.roles)===null||_a===void 0?void 0:_a.find((x=>/^admin/i.test(x.roleName))))&&XNode.create("a",{href:"/admin",target:"_blank"},"Admin"),XNode.create("div",{"data-flex":"stretch-full"}),...ModuleInfo)}}const url=new URL(location.href);const mailto=url.searchParams.get("mailto");if(mailto){PageNavigator.pushPage(MiniComposePage,{asAttachment:false,thread:{},mailto})}yield sleep(500);yield this.resolve(WebPushService).register()}))}};__decorate([InjectProperty,__metadata("design:type",LoginService)],AppIndex.prototype,"userService",void 0);AppIndex=__decorate([Pack],AppIndex);_export("default",AppIndex);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(AppLocation.isLocalTesting){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/AppIndex");
3106
3106
  //# sourceMappingURL=AppIndex.pack.min.js.map