@social-mail/social-mail-client 1.2.208 → 1.2.210

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.
@@ -4322,7 +4322,7 @@ display: grid;
4322
4322
  padding-left: 2px;
4323
4323
  padding-top: 1px;
4324
4324
  font-family: monospace;
4325
- `.installGlobal("input[data-mask]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/masked-input-style");System.register(["tslib","@web-atoms/core/dist/core/XNode","./styles/masked-input-style"],(function(_export,_context){"use strict";var __rest,XNode,updateMask;function MaskedInput(_a){var{mask}=_a,a=__rest(_a,["mask"]);return XNode.create("input",Object.assign({"data-mask":mask,"event-change":updateMask,"event-keypress":updateMask,"event-keyup":updateMask},a))}_export("default",MaskedInput);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_stylesMaskedInputStyle){}],execute:function(){updateMask=e=>{const target=e.target;const mask=target.dataset.mask;if(!mask){return}let result="";const value=target.value;for(let index=0,elementIndex=0;elementIndex<value.length;elementIndex++,index++){const element=value[elementIndex];const maskElement=mask[index];switch(maskElement){case"#":result+=/[0-9]/.test(element)?element:"";continue;case".":if(element!=="."){result+="."}result+=element;break}}if(target.value!==result){target.value=result}}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/MaskedInput");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/types"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,DropDown,FetchBuilder,UMD,countriesPromise,loadCountries,CountrySelect,isdForCountry,formatForCountry;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD}],execute:function(){loadCountries=()=>countriesPromise!==null&&countriesPromise!==void 0?countriesPromise:countriesPromise=FetchBuilder.get(UMD.resolvePath("@social-mail/social-mail-client/content/json/countries.json")).responseAsJson();_export("CountrySelect",CountrySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>{var _a;return((_a=item.isdCode)===null||_a===void 0?void 0:_a.startsWith("+"))?item.isdCode:`+${item.isdCode} ${item.value}`},valuePath:item=>item.value,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("isdForCountry",isdForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){return(yield loadCountries()).find((x=>x.value===countryCode)).isdCode})));_export("formatForCountry",formatForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){const countries=yield loadCountries();const country=countries.find((c=>c.value===countryCode));if(country){const{phoneFormat}=country;if(phoneFormat&&phoneFormat!=="0.0"){return phoneFormat}}return"####.####.####"})))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/countries/CountrySelect");System.register(["tslib","@web-atoms/core/dist/core/Bind","@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/MaskedInput","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/Pack","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/controls/countries/CountrySelect"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,XNode,Form,FormField,MaskedInput,FetchBuilder,Action,styled,Pack,ContentPage,CountrySelect,formatForCountry,isdForCountry,css,SignupPage;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicMaskedInput){MaskedInput=_webAtomsWebControlsDistBasicMaskedInput.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_commonControlsCountriesCountrySelect){CountrySelect=_commonControlsCountriesCountrySelect.CountrySelect;formatForCountry=_commonControlsCountriesCountrySelect.formatForCountry;isdForCountry=_commonControlsCountriesCountrySelect.isdForCountry}],execute:function(){css=styled.css`
4325
+ `.installGlobal("input[data-mask]")}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/styles/masked-input-style");System.register(["tslib","@web-atoms/core/dist/core/XNode","./styles/masked-input-style"],(function(_export,_context){"use strict";var __rest,XNode,updateMask;function MaskedInput(_a){var{mask}=_a,a=__rest(_a,["mask"]);return XNode.create("input",Object.assign({"data-mask":mask,"event-change":updateMask,"event-keypress":updateMask,"event-keyup":updateMask},a))}_export("default",MaskedInput);return{setters:[function(_tslib){__rest=_tslib.__rest},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_stylesMaskedInputStyle){}],execute:function(){updateMask=e=>{const target=e.target;const mask=target.dataset.mask;if(!mask){return}let result="";const value=target.value;for(let index=0,elementIndex=0;elementIndex<value.length;elementIndex++,index++){const element=value[elementIndex];const maskElement=mask[index];switch(maskElement){case"#":result+=/[0-9]/.test(element)?element:"";continue;case".":if(element!=="."){result+="."}result+=element;break}}if(target.value!==result){target.value=result}}}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/MaskedInput");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/types"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,DropDown,FetchBuilder,UMD,countriesPromise,loadCountries,CountrySelect,isdForCountry,formatForCountry;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD}],execute:function(){loadCountries=()=>countriesPromise!==null&&countriesPromise!==void 0?countriesPromise:countriesPromise=FetchBuilder.get(UMD.resolvePath("@social-mail/social-mail-client/content/json/countries.json")).responseAsJson();_export("CountrySelect",CountrySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>{var _a;return((_a=item.isdCode)===null||_a===void 0?void 0:_a.startsWith("+"))?item.isdCode:`+${item.isdCode} ${item.value}`},valuePath:item=>item.value,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("isdForCountry",isdForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){return(yield loadCountries()).find((x=>x.value===countryCode)).isdCode})));_export("formatForCountry",formatForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){const countries=yield loadCountries();const country=countries.find((c=>c.value===countryCode));if(country){const{phoneFormat}=country;if(phoneFormat&&phoneFormat!=="0.0"){return phoneFormat}}return"####.####.####"})))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/countries/CountrySelect");System.register(["tslib","@web-atoms/core/dist/core/Bind","@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/MaskedInput","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/style/styled","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/controls/countries/CountrySelect"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,XNode,Form,FormField,MaskedInput,FetchBuilder,Action,styled,ContentPage,CountrySelect,formatForCountry,isdForCountry,SignupPage,css;_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(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicMaskedInput){MaskedInput=_webAtomsWebControlsDistBasicMaskedInput.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_commonControlsCountriesCountrySelect){CountrySelect=_commonControlsCountriesCountrySelect.CountrySelect;formatForCountry=_commonControlsCountriesCountrySelect.formatForCountry;isdForCountry=_commonControlsCountriesCountrySelect.isdForCountry}],execute:function(){css=styled.css`
4326
4326
  & [data-page-element=content] {
4327
4327
  & > * {
4328
4328
  display: flex;
@@ -4350,7 +4350,7 @@ display: grid;
4350
4350
  }
4351
4351
  }
4352
4352
  }
4353
- `.installLocal();SignupPage=class SignupPage extends ContentPage{constructor(){super(...arguments);this.termsAgreed=false;this.model={name:"",username:"",password:"",passwordAgain:"",phoneNumber:"",country:"US",phoneNumberText:"",captcha:{code:""},phone:{code:""}}}init(){return __awaiter(this,void 0,void 0,(function*(){this.hideToolbar=true;this.element.className=css;this.title="Social Mail Signup";const{id}=yield FetchBuilder.put("/api/users/captcha").responseAsJson();this.model.captcha.id=id;this.renderer=XNode.create("div",null,XNode.create("div",null,XNode.create("div",{"data-max-width":"size-large"},XNode.create(Form,null,XNode.create(FormField,{label:"Your Name"},XNode.create("input",{autofocus:true,placeholder:"Display Name",value:Bind.twoWaysImmediate((()=>this.model.name))})),XNode.create(FormField,{label:"Email Address"},XNode.create("div",{"data-layout":"row","data-padding":"auto"},XNode.create("input",{"data-border":"none",placeholder:"first-last-name",style:"outline: none",type:"text",value:Bind.twoWaysImmediate((()=>this.model.username))}),XNode.create("span",{text:"@socialmail.me"}))),XNode.create("details",null,XNode.create("summary",null,"Username Policy"),"Please choose username that resembles your real legal name. Any other name will be banned and blocked permanently. And you will not be able to create new username with same phone number as well."),XNode.create(FormField,{label:"Password"},XNode.create("input",{type:"password",value:Bind.twoWaysImmediate((()=>this.model.password))})),XNode.create(FormField,{label:"Password Again"},XNode.create("input",{type:"password",value:Bind.twoWaysImmediate((()=>this.model.passwordAgain))})),XNode.create(FormField,{label:"Phone Number"},XNode.create("div",{"data-layout":"row"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.model.country))}),XNode.create(MaskedInput,{"data-mask":Bind.oneWayAsync((()=>formatForCountry(this.model.country))),value:Bind.twoWaysImmediate((()=>this.model.phoneNumberText))}))),XNode.create("div",null,"We require phone number verification to prevent misuse and fraud over the email. And it will also help you in setting up two factor authentication to prevent hackers from accessing your private emails."),XNode.create("br",null),XNode.create("br",null),XNode.create(FormField,{label:"Captcha"},XNode.create("img",{src:`/api/users/captcha/${id}`})),XNode.create(FormField,{label:"Enter 5 Digit Code"},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.model.captcha.code))})),XNode.create("div",{"data-layout":"row"},XNode.create("input",{type:"checkbox",checked:Bind.twoWaysImmediate((()=>this.termsAgreed))}),XNode.create("span",{text:"I agree the "}),XNode.create("a",{href:"https://socialmail.in/terms.html",target:"_blank"},"Terms & Conditions")),XNode.create("div",{"data-layout":"row"},XNode.create("button",{"data-layout":"go-button","data-submit-event":"signup"},"Signup"))))))}))}signup(){return __awaiter(this,void 0,void 0,(function*(){const{model}=this;if(!this.termsAgreed){throw new Error("You must agree to Terms & Conditions.")}if(!model.password){throw new Error("Password is required")}if(model.password.length<7){throw new Error("Password is cannot be less than 7 characters")}if(/\s/i.test(model.password)){throw new Error("Password must not any whitespace characters")}const isdCode=yield isdForCountry(model.country);const phoneNumber=model.phoneNumberText.replace(/[^0-9]/g,"");model.phoneNumber=isdCode.startsWith("+")?isdCode+phoneNumber:`+${isdCode}${phoneNumber}`;const{userID,phone={},captcha={}}=yield FetchBuilder.post("/api/users/signup").jsonBody(model).responseAsJson();if(userID){location.href="/";return}if(captcha){model.captcha.verified=captcha.verified}if(phone===null||phone===void 0?void 0:phone.verified){model.phone.verified=phone.verified}if(phone===null||phone===void 0?void 0:phone.id){model.phone.id=phone.id;yield this.askPhoneCode()}}))}askPhoneCode(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create("div",null,XNode.create("div",{"data-max-width":"size-large"},XNode.create("h3",null,"Phone Verification Code"),XNode.create("p",null,"We have send text verification code on your phone number, please enter the code below to verify."),XNode.create(Form,null,XNode.create(FormField,{label:""},XNode.create("input",{type:"tel",autofocus:true,value:Bind.twoWaysImmediate((()=>this.model.phone.code))})),XNode.create("div",null,XNode.create("button",{"data-layout":"go-button","data-submit-event":"signup"},"Complete Signup"))))))}))}};__decorate([Action({onEvent:"signup"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SignupPage.prototype,"signup",null);SignupPage=__decorate([Pack],SignupPage);_export("default",SignupPage)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/users/SignupPage");System.register([],(function(_export,_context){"use strict";var FileTypes;_export("default",void 0);return{setters:[],execute:function(){_export("default",FileTypes=class FileTypes{static canPreview(file){if(/(image|video|audio)\//.test(file.contentType)){return true}return/\.(pdf|docx|docm|pptx|pptm|xlsx|xlsm|doc|xls|pdf|ppt|dot|xlst|sxw|sxc|sxd|sxi|sxm|sxg|txt)$/i.test(file.name)}static isMedia(file){return/^(audio|video)\//i.test(file.contentType)}static isImage(file){return/^image\//i.test(file.contentType)||/\.(jpg|png|bmp|gif|tif|tiff|jiff|jpg)$/i.test(file.name)}static isDocument(file){return/\.(pdf|docx|docm|pptx|pptm|xlsx|xlsm|doc|xls|pdf|ppt|dot|xlst|sxw|sxc|sxd|sxi|sxm|sxg|txt|md)$/i.test(file.name)}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/FileTypes");System.register(["@web-atoms/core/dist/core/Command","../../common/commands/CommonCommands","../../services/FileTypes"],(function(_export,_context){"use strict";var Command,CommonCommands,FileTypes,AppCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default},function(_servicesFileTypes){FileTypes=_servicesFileTypes.default}],execute:function(){_export("default",AppCommands=class AppCommands extends CommonCommands{static getPreviewCommand(p){if(FileTypes.isDocument(p)){return this.previewHtml}if(FileTypes.isImage(p)){return this.previewImage}if(FileTypes.isMedia(p)){return this.previewMedia}}});AppCommands.openHome=Command.create({route:"/",routeOrder:200,openPage:()=>_context.import("../page/home/HomePage")});AppCommands.openMailboxList=Command.create({route:"/mailboxes",routeOrder:100,openPage:()=>_context.import("../../common/pages/mailboxes/MailboxListPage")});AppCommands.openMails=Command.create({route:"/mails",routeOrder:100,openPage:()=>_context.import("../page/mails/MailboxContacts")});AppCommands.openFiles=Command.create({route:"/files/{id}",routeOrder:100,openPage:()=>_context.import("../page/files/FolderPage")});AppCommands.openTemplates=Command.create({route:"/templates",routeOrder:100,routeDefaults:{templates:true},openPage:()=>_context.import("../page/files/FolderPage")});AppCommands.previewImage=Command.create({route:"/social-mail/file-preview/image/{appFileID}/{fileContentID}/{name}",pushPage:()=>_context.import("../page/files/preview/image/PreviewImage")});AppCommands.previewHtml=Command.create({route:"/social-mail/file-preview/html/{appFileID}/{fileContentID}/{name}",pushPage:()=>_context.import("../page/files/preview/document/PreviewDocument")});AppCommands.previewMedia=Command.create({route:"/social-mail/file-preview/media/{appFileID}/{fileContentID}/{name}",pushPage:()=>_context.import("../page/files/preview/media/PreviewMedia")});AppCommands.signup=Command.create({route:"/social-mail/users/signup",openPage:()=>_context.import("../page/users/SignupPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/AppCommands");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
4353
+ `.installLocal();_export("default",SignupPage=class SignupPage extends ContentPage{constructor(){super(...arguments);this.termsAgreed=false;this.model={name:"",username:"",password:"",passwordAgain:"",phoneNumber:"",country:"US",phoneNumberText:"",captcha:{code:""},phone:{code:""}}}init(){return __awaiter(this,void 0,void 0,(function*(){this.hideToolbar=true;this.element.className=css;this.title="Social Mail Signup";const{id}=yield FetchBuilder.put("/api/users/captcha").responseAsJson();this.model.captcha.id=id;this.renderer=XNode.create("div",null,XNode.create("div",null,XNode.create("div",{"data-max-width":"size-large"},XNode.create(Form,null,XNode.create(FormField,{label:"Your Name"},XNode.create("input",{autofocus:true,placeholder:"Display Name",value:Bind.twoWaysImmediate((()=>this.model.name))})),XNode.create(FormField,{label:"Email Address"},XNode.create("div",{"data-layout":"row","data-padding":"auto"},XNode.create("input",{"data-border":"none",placeholder:"first-last-name",style:"outline: none",type:"text",value:Bind.twoWaysImmediate((()=>this.model.username))}),XNode.create("span",{text:"@socialmail.me"}))),XNode.create("details",null,XNode.create("summary",null,"Username Policy"),"Please choose username that resembles your real legal name. Any other name will be banned and blocked permanently. And you will not be able to create new username with same phone number as well."),XNode.create(FormField,{label:"Password"},XNode.create("input",{type:"password",value:Bind.twoWaysImmediate((()=>this.model.password))})),XNode.create(FormField,{label:"Password Again"},XNode.create("input",{type:"password",value:Bind.twoWaysImmediate((()=>this.model.passwordAgain))})),XNode.create(FormField,{label:"Phone Number"},XNode.create("div",{"data-layout":"row"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.model.country))}),XNode.create(MaskedInput,{"data-mask":Bind.oneWayAsync((()=>formatForCountry(this.model.country))),value:Bind.twoWaysImmediate((()=>this.model.phoneNumberText))}))),XNode.create("div",null,"We require phone number verification to prevent misuse and fraud over the email. And it will also help you in setting up two factor authentication to prevent hackers from accessing your private emails."),XNode.create("br",null),XNode.create("br",null),XNode.create(FormField,{label:"Captcha"},XNode.create("img",{src:`/api/users/captcha/${id}`})),XNode.create(FormField,{label:"Enter 5 Digit Code"},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.model.captcha.code))})),XNode.create("div",{"data-layout":"row"},XNode.create("input",{type:"checkbox",checked:Bind.twoWaysImmediate((()=>this.termsAgreed))}),XNode.create("span",{text:"I agree the "}),XNode.create("a",{href:"https://socialmail.in/terms.html",target:"_blank"},"Terms & Conditions")),XNode.create("div",{"data-layout":"row"},XNode.create("button",{"data-layout":"go-button","data-submit-event":"signup"},"Signup"))))))}))}signup(){return __awaiter(this,void 0,void 0,(function*(){const{model}=this;if(!this.termsAgreed){throw new Error("You must agree to Terms & Conditions.")}if(!model.password){throw new Error("Password is required")}if(model.password.length<7){throw new Error("Password is cannot be less than 7 characters")}if(/\s/i.test(model.password)){throw new Error("Password must not any whitespace characters")}const isdCode=yield isdForCountry(model.country);const phoneNumber=model.phoneNumberText.replace(/[^0-9]/g,"");model.phoneNumber=isdCode.startsWith("+")?isdCode+phoneNumber:`+${isdCode}${phoneNumber}`;const{userID,phone={},captcha={}}=yield FetchBuilder.post("/api/users/signup").jsonBody(model).responseAsJson();if(userID){location.href="/";return}if(captcha){model.captcha.verified=captcha.verified}if(phone===null||phone===void 0?void 0:phone.verified){model.phone.verified=phone.verified}if(phone===null||phone===void 0?void 0:phone.id){model.phone.id=phone.id;yield this.askPhoneCode()}}))}askPhoneCode(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create("div",null,XNode.create("div",{"data-max-width":"size-large"},XNode.create("h3",null,"Phone Verification Code"),XNode.create("p",null,"We have send text verification code on your phone number, please enter the code below to verify."),XNode.create(Form,null,XNode.create(FormField,{label:""},XNode.create("input",{type:"tel",autofocus:true,value:Bind.twoWaysImmediate((()=>this.model.phone.code))})),XNode.create("div",null,XNode.create("button",{"data-layout":"go-button","data-submit-event":"signup"},"Complete Signup"))))))}))}});__decorate([Action({onEvent:"signup"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SignupPage.prototype,"signup",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/page/users/SignupPage");System.register([],(function(_export,_context){"use strict";var FileTypes;_export("default",void 0);return{setters:[],execute:function(){_export("default",FileTypes=class FileTypes{static canPreview(file){if(/(image|video|audio)\//.test(file.contentType)){return true}return/\.(pdf|docx|docm|pptx|pptm|xlsx|xlsm|doc|xls|pdf|ppt|dot|xlst|sxw|sxc|sxd|sxi|sxm|sxg|txt)$/i.test(file.name)}static isMedia(file){return/^(audio|video)\//i.test(file.contentType)}static isImage(file){return/^image\//i.test(file.contentType)||/\.(jpg|png|bmp|gif|tif|tiff|jiff|jpg)$/i.test(file.name)}static isDocument(file){return/\.(pdf|docx|docm|pptx|pptm|xlsx|xlsm|doc|xls|pdf|ppt|dot|xlst|sxw|sxc|sxd|sxi|sxm|sxg|txt|md)$/i.test(file.name)}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/FileTypes");System.register(["@web-atoms/core/dist/core/Command","../../common/commands/CommonCommands","../../services/FileTypes"],(function(_export,_context){"use strict";var Command,CommonCommands,FileTypes,AppCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commonCommandsCommonCommands){CommonCommands=_commonCommandsCommonCommands.default},function(_servicesFileTypes){FileTypes=_servicesFileTypes.default}],execute:function(){_export("default",AppCommands=class AppCommands extends CommonCommands{static getPreviewCommand(p){if(FileTypes.isDocument(p)){return this.previewHtml}if(FileTypes.isImage(p)){return this.previewImage}if(FileTypes.isMedia(p)){return this.previewMedia}}});AppCommands.openHome=Command.create({route:"/",routeOrder:200,openPage:()=>_context.import("../page/home/HomePage")});AppCommands.openMailboxList=Command.create({route:"/mailboxes",routeOrder:100,openPage:()=>_context.import("../../common/pages/mailboxes/MailboxListPage")});AppCommands.openMails=Command.create({route:"/mails",routeOrder:100,openPage:()=>_context.import("../page/mails/MailboxContacts")});AppCommands.openFiles=Command.create({route:"/files/{id}",routeOrder:100,openPage:()=>_context.import("../page/files/FolderPage")});AppCommands.openTemplates=Command.create({route:"/templates",routeOrder:100,routeDefaults:{templates:true},openPage:()=>_context.import("../page/files/FolderPage")});AppCommands.previewImage=Command.create({route:"/social-mail/file-preview/image/{appFileID}/{fileContentID}/{name}",pushPage:()=>_context.import("../page/files/preview/image/PreviewImage")});AppCommands.previewHtml=Command.create({route:"/social-mail/file-preview/html/{appFileID}/{fileContentID}/{name}",pushPage:()=>_context.import("../page/files/preview/document/PreviewDocument")});AppCommands.previewMedia=Command.create({route:"/social-mail/file-preview/media/{appFileID}/{fileContentID}/{name}",pushPage:()=>_context.import("../page/files/preview/media/PreviewMedia")});AppCommands.signup=Command.create({route:"/social-mail/users/signup",openPage:()=>_context.import("../page/users/SignupPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/commands/AppCommands");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
4354
4354
 
4355
4355
  div[data-desktop-app=desktop-app] {
4356
4356
  width: 100%;
@@ -4481,5 +4481,5 @@ html, body {
4481
4481
  overflow: auto;
4482
4482
  }
4483
4483
 
4484
- `.installLocal();_export("default",AppDrawer=class AppDrawer extends Drawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.user=SocialMailApp.user;const{mailboxes,channels,drives,websites}=yield this.getItems();this.renderer=XNode.create("div",null,XNode.create("div",{class:"header","data-padding":"large","data-font-size":"large","data-color":"white",text:SocialMailApp.config.name}),XNode.create("div",{class:"menus"},XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AppCommands.openHome.displayRoute({})}),mailboxes.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:null}),...mailboxes.map((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({})})),channels.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Channels",commandLink:null}),...channels.map((mb=>XNode.create(MenuItem,{commandLink:AppCommands.openChannel.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress})))),drives.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Drives",commandLink:null}),...drives.map((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({})})),websites.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Web Sites",commandLink:null}),...websites.map((d=>{var _a;return XNode.create(MenuItem,{commandLink:AppCommands.editWebSite.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.openWebSiteList.displayRoute({})})),mailboxes.length&&XNode.create(MenuItem,{icon:"fas fa-money-check-pen",label:"Templates",commandLink:AppCommands.openTemplates.displayRoute({templates:true})}),mailboxes.length&&XNode.create(MenuItem,{icon:"fas fa-envelopes-bulk",label:"All Mailboxes",commandLink:AppCommands.openMailboxList.displayRoute({})}),XNode.create(ExpanderMenu,{isExpanded:false},XNode.create(MenuItem,{icon:"fas fa-gears",label:"Account Settings"}),!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:"Logout","data-click-event":"user-logout"}))))}))}getItems(){return __awaiter(this,void 0,void 0,(function*(){const ms=this.resolve(MailboxService);const fs=this.resolve(CloudFileService);const[mailboxes,channels,drives,websites]=yield Promise.all([ms.top(),ms.top({isChannel:true}),fs.top(),fs.top(true)]);return{mailboxes,channels,drives,websites}}))}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([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","../../../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","../../../form/AppForm"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserAuthFactor,InjectProperty,UserService,XNode,SaveIconTextButton,FormField,Bind,Action,DateFormats,AppForm,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(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats},function(_formAppForm){AppForm=_formAppForm.default}],execute:function(){_export("default",SetupMultiFactorPage=class SetupMultiFactorPage extends PopupWindowPage{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(AppForm,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.addAuthenticator();return}text+="\r\n";this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(AppForm,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.addAuthenticator(),text:"Setup Authenticator"}))))}))}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([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"],(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,_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}],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.pathname)){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)}}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(/\d+\./.test(location.hostname)){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/AppIndex");
4484
+ `.installLocal();_export("default",AppDrawer=class AppDrawer extends Drawer{init(){return __awaiter(this,void 0,void 0,(function*(){this.element.className=css;this.user=SocialMailApp.user;const{mailboxes,channels,drives,websites}=yield this.getItems();this.renderer=XNode.create("div",null,XNode.create("div",{class:"header","data-padding":"large","data-font-size":"large","data-color":"white",text:SocialMailApp.config.name}),XNode.create("div",{class:"menus"},XNode.create(MenuItem,{icon:"fas fa-home",label:"Home",commandLink:AppCommands.openHome.displayRoute({})}),mailboxes.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-envelope",label:"Mailboxes",commandLink:null}),...mailboxes.map((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({})})),channels.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Channels",commandLink:null}),...channels.map((mb=>XNode.create(MenuItem,{commandLink:AppCommands.openChannel.displayRoute({id:mb.mailboxID}),label:mb.emailAddress.name,description:mb.emailAddress.emailAddress,title:mb.emailAddress.emailAddress})))),drives.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Drives",commandLink:null}),...drives.map((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({})})),websites.length&&XNode.create(ExpanderMenu,{isExpanded:true},XNode.create(MenuItem,{icon:"fas fa-hard-drive",label:"Web Sites",commandLink:null}),...websites.map((d=>{var _a;return XNode.create(MenuItem,{commandLink:AppCommands.editWebSite.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.openWebSiteList.displayRoute({})})),mailboxes.length&&XNode.create(MenuItem,{icon:"fas fa-money-check-pen",label:"Templates",commandLink:AppCommands.openTemplates.displayRoute({templates:true})}),mailboxes.length&&XNode.create(MenuItem,{icon:"fas fa-envelopes-bulk",label:"All Mailboxes",commandLink:AppCommands.openMailboxList.displayRoute({})}),XNode.create(ExpanderMenu,{isExpanded:false},XNode.create(MenuItem,{icon:"fas fa-gears",label:"Account Settings"}),!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:"Logout","data-click-event":"user-logout"}))))}))}getItems(){return __awaiter(this,void 0,void 0,(function*(){const ms=this.resolve(MailboxService);const fs=this.resolve(CloudFileService);const[mailboxes,channels,drives,websites]=yield Promise.all([ms.top(),ms.top({isChannel:true}),fs.top(),fs.top(true)]);return{mailboxes,channels,drives,websites}}))}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([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","../../../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","../../../form/AppForm"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,PopupWindowPage,UserAuthFactor,InjectProperty,UserService,XNode,SaveIconTextButton,FormField,Bind,Action,DateFormats,AppForm,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(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats},function(_formAppForm){AppForm=_formAppForm.default}],execute:function(){_export("default",SetupMultiFactorPage=class SetupMultiFactorPage extends PopupWindowPage{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(AppForm,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.addAuthenticator();return}text+="\r\n";this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(AppForm,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.addAuthenticator(),text:"Setup Authenticator"}))))}))}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([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"],(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,_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}],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)}}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(/\d+\./.test(location.hostname)){return"#!"+url}return url}}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/web/AppIndex");
4485
4485
  //# sourceMappingURL=AppIndex.pack.min.js.map