@social-mail/social-mail-client 1.2.707 → 1.2.708
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/AdminAppIndex.pack.js +1 -1
- package/dist/admin/AdminAppIndex.pack.js.map +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js +1 -1
- package/dist/admin/AdminAppIndex.pack.min.js.map +1 -1
- package/dist/common/AppUrlService.js +1 -1
- package/dist/common/AppUrlService.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.js +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.js.map +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.min.js +1 -1
- package/dist/site-editor-app/SiteEditorApp.pack.min.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/web/AppIndex.pack.js +2 -2
- package/dist/web/AppIndex.pack.js.map +1 -1
- package/dist/web/AppIndex.pack.min.js +2 -2
- package/dist/web/AppIndex.pack.min.js.map +1 -1
- package/dist/web/drawer/AppDrawer.js +1 -1
- package/dist/web/drawer/AppDrawer.js.map +1 -1
- package/package.json +1 -1
- package/src/common/AppUrlService.ts +1 -1
- package/src/web/drawer/AppDrawer.tsx +1 -1
|
@@ -2477,7 +2477,7 @@ and limitations under the License.
|
|
|
2477
2477
|
border-bottom: solid 1px #80808080;
|
|
2478
2478
|
min-width: 250px;
|
|
2479
2479
|
}
|
|
2480
|
-
`.installGlobal("[data-app-form=app-form]")}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/form/AppForm");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","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../date/DateFormats","../../../form/AppForm"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,UserAuthFactor,InjectProperty,UserService,XNode,AddIconTextButton,DeleteIconTextButton,SaveIconTextButton,FormField,Bind,Action,AtomRepeater,DateFormats,AppForm,MultiFactorSetupPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton;DeleteIconTextButton=_controlsButtonsIconButton.DeleteIconTextButton;SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats},function(_formAppForm){AppForm=_formAppForm.default}],execute:function(){_export("default",MultiFactorSetupPage=class MultiFactorSetupPage extends ContentPage{init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();const{multiFactor}=this.model;this.title="Setup Multi Factor Authentication";if(!((_a=this.model.authFactors)===null||_a===void 0?void 0:_a.length)){yield this.notSetup();return}if(multiFactor){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(AppForm,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),XNode.create("div",{"data-layout":"command-row"},XNode.create("div",null,"Multi factor authentication is enabled."),XNode.create(DeleteIconTextButton,{text:"Disable"}))));return}const disable=!((_b=this.model.authFactors)===null||_b===void 0?void 0:_b.length)||!this.model.authFactors.some((i=>i.method==="totp"&&i.verified))||this.model.authFactors.filter((i=>i.method==="one-time")).length<8;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(AppForm,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),disable&&XNode.create("div",null,"You must add at least one authenticator and generate 8 OTPs (one time passwords) to enable Multi factor authentication."),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{disabled:disable,"style-color":disable?"gray":"","data-click-event":"enable-multi-factor",text:"Enable"}),XNode.create(DeleteIconTextButton,{"data-submit-event":"clear-all",text:"Clear All"})),multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(DeleteIconTextButton,{text:"Disable"}))))}))}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"})))}notSetup(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create("p",null,"You account is not secure, please setup multi factor authentication."),XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}))}))}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=[];for(let index=0;index<8;index++){authList.push(UserAuthFactor.create({method:"one-time"}))}yield this.userService.save(this.model);let text="";for(const iterator of authList){if(!(iterator===null||iterator===void 0?void 0:iterator.displaySecret)){continue}text+="\r\n"+iterator.displaySecret}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 passwords 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, click go to previous screen."),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.init(),text:"Go"}))))}))}clearAll(){return __awaiter(this,void 0,void 0,(function*(){const all=this.model.authFactors;if(!(all===null||all===void 0?void 0:all.length)){return}for(const iterator of all){iterator.$deleted=true}yield this.userService.save(this.model);yield this.init()}))}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.save(this.model);yield this.init()}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],MultiFactorSetupPage.prototype,"userService",void 0);__decorate([Action({onEvent:"clear-all",confirm:"Are you sure you want to delete all existing methods?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"clearAll",null);__decorate([Action({onEvent:"enable-multi-factor",success:"Multi factor authentication enabled successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"enableMultiFactor",null);__decorate([Action({onEvent:"save-auth-factor",success:"Authenticator setup successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"saveAuthFactor",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../EntityService","../../model/model","@web-atoms/date-time/dist/DateTime","../../common/Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,WebSiteFolder,WebSiteFolderVersion,DateTime,Sql,WebSiteService;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){WebSiteFolder=_modelModel.WebSiteFolder;WebSiteFolderVersion=_modelModel.WebSiteFolderVersion},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){WebSiteService=class WebSiteService{getVersions({folderID,start,size=20,cancelToken=void 0}){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(WebSiteFolderVersion).where({folderID},(p=>x=>x.folderID===p.folderID)).orderByDescending((x=>x.dateCreated)).include((x=>[x.author,x.snapshotFolder])).toPagedList({start,size,cancelToken})}))}get(id){return __awaiter(this,void 0,void 0,(function*(){const site=yield this.entityService.query(WebSiteFolder).where({id},(p=>x=>x.folderID===p.id)).include((x=>[x.folder,x.hosts,x.channels.forEach((c=>c.channel.emailAddress))])).firstOrDefault();return site}))}list({search="",start=0,size=100,showTemplate=false,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(WebSiteFolder);if(search){search=search+"%";q=q.where({search},(p=>x=>Sql.text.iLike(x.folder.name,p.search)))}if(showTemplate){q=q.where((x=>x.isTemplate===true))}return q.include((x=>[x.folder,x.hosts])).orderBy((x=>Sql.text.lower(x.folder.name))).toPagedList({start,size,cancelToken})}))}save(model){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(model).include((x=>x.folder)).copy;yield this.entityService.save(cloner);return model}))}publish(model){var _a;return __awaiter(this,void 0,void 0,(function*(){(_a=model.versions)!==null&&_a!==void 0?_a:model.versions=[];const dateCreated=DateTime.now;const folderID=model.folderID;const version=WebSiteFolderVersion.create({dateCreated,folderID,publish:true});yield this.entityService.save(version);model.versions.add(version);model.isModified=false}))}};__decorate([Inject,__metadata("design:type",EntityService)],WebSiteService.prototype,"entityService",void 0);WebSiteService=__decorate([DITransient()],WebSiteService);_export("default",WebSiteService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/websites/WebSiteService");System.register(["tslib","@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/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../../../../services/websites/WebSiteService","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Form,FormField,PopupWindowPage,AppFile,WebSiteFolder,Bind,Action,InjectProperty,WebSiteService,Checkbox,WebSiteFolderEditor;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){AppFile=_modelModel.AppFile;WebSiteFolder=_modelModel.WebSiteFolder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesWebsitesWebSiteService){WebSiteService=_servicesWebsitesWebSiteService.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",WebSiteFolderEditor=class WebSiteFolderEditor extends PopupWindowPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Create Website Folder";this.model=WebSiteFolder.create({folder:AppFile.create({name:"",isFolder:true,contentType:"application/site"}),isStatic:true});this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Name"},XNode.create("input",{autofocus:true,value:Bind.twoWaysImmediate((()=>this.model.folder.name))})),XNode.create(FormField,{label:"Template"},XNode.create(Checkbox,{checked:Bind.twoWays((()=>this.model.isTemplate)),text:"Save this as a Template"})),XNode.create(FormField,{label:"Enable"},XNode.create(Checkbox,{checked:Bind.twoWays((()=>this.model.storeEnabled)),text:"Store"})),XNode.create("div",null,"We recommend using the host name as folder name, e.g. akashkava.com"),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"save-web-site"},"Save"))))}))}saveWebSite(){return __awaiter(this,void 0,void 0,(function*(){yield this.websiteService.save(this.model);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",WebSiteService)],WebSiteFolderEditor.prototype,"websiteService",void 0);__decorate([Action({onEvent:"save-web-site",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteFolderEditor.prototype,"saveWebSite",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/edit/WebSiteFolderEditor");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/types"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,DropDown,FetchBuilder,UMD,countriesPromise,loadCountries,CountrySelect,CurrencySelect,isdForCountry,formatForCountry;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD}],execute:function(){loadCountries=()=>countriesPromise!==null&&countriesPromise!==void 0?countriesPromise:countriesPromise=FetchBuilder.get(UMD.resolvePath("@social-mail/social-mail-client/content/json/countries.json")).responseAsJson();_export("CountrySelect",CountrySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>{var _a;return((_a=item.isdCode)===null||_a===void 0?void 0:_a.startsWith("+"))?item.isdCode:`+${item.isdCode} ${item.value}`},valuePath:item=>item.value,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("CurrencySelect",CurrencySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>item.currency+"("+item.label+")",valuePath:item=>item.currency,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("isdForCountry",isdForCountry=(countryCode,prefix="")=>__awaiter(void 0,void 0,void 0,(function*(){const{isdCode}=(yield loadCountries()).find((x=>x.value===countryCode));if(prefix){return isdCode.startsWith(prefix)?isdCode:prefix+isdCode}return isdCode})));_export("formatForCountry",formatForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){const countries=yield loadCountries();const country=countries.find((c=>c.value===countryCode));if(country){const{phoneFormat}=country;if(phoneFormat&&phoneFormat!=="0.0"){return phoneFormat}}return"####.####.####"})))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/countries/CountrySelect");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/core/Bind","../../../controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","../../../../services/EntityService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/Checkbox","../../../controls/countries/CountrySelect"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,PopupWindowPage,Form,FormField,Bind,SaveIconTextButton,Action,EntityService,InjectProperty,Checkbox,CurrencySelect,WebSiteFolderSettings;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_controlsCountriesCountrySelect){CurrencySelect=_controlsCountriesCountrySelect.CurrencySelect}],execute:function(){_export("default",WebSiteFolderSettings=class WebSiteFolderSettings extends PopupWindowPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.model=Object.assign({},this.parameters);this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"From Email"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.fromEmail))})),XNode.create(FormField,{label:"Support Email"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.supportEmail))})),XNode.create(FormField,{label:"Enable"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.storeEnabled)),text:"Store"})),XNode.create(FormField,{label:"Default Currency"},XNode.create(CurrencySelect,{value:Bind.twoWaysImmediate((()=>this.model.currency))})),XNode.create(FormField,{label:""},XNode.create(SaveIconTextButton,{"data-submit-event":"save-settings",text:"Save"}))))}))}saveSettings(){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.save(this.model,(c=>c));return this.model}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],WebSiteFolderSettings.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-settings",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteFolderSettings.prototype,"saveSettings",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/edit/WebSiteFolderSettings");System.register([],(function(_export,_context){"use strict";var AppUrlService;return{setters:[],execute:function(){_export("AppUrlService",AppUrlService={editWebSite(site){return`/studio/edit/${site.folderID}`}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/AppUrlService");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../services/websites/WebSiteService","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","../edit/WebSiteFolderEditor","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Checkbox","../../../controls/repeater/InfiniteRepeater","../../../NumberFormats","../edit/WebSiteFolderSettings","../../../AppUrlService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,AtomRepeater,ContentPage,WebSiteService,Action,PageNavigator,WebSiteFolderEditor,Bind,Checkbox,InfiniteRepeater,toFileSize,WebSiteFolderSettings,AppUrlService,WebSiteListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_servicesWebsitesWebSiteService){WebSiteService=_servicesWebsitesWebSiteService.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_editWebSiteFolderEditor){WebSiteFolderEditor=_editWebSiteFolderEditor.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_controlsRepeaterInfiniteRepeater){InfiniteRepeater=_controlsRepeaterInfiniteRepeater.default},function(_NumberFormats){toFileSize=_NumberFormats.toFileSize},function(_editWebSiteFolderSettings){WebSiteFolderSettings=_editWebSiteFolderSettings.default},function(_AppUrlService){AppUrlService=_AppUrlService.AppUrlService}],execute:function(){_export("default",WebSiteListPage=class WebSiteListPage extends ContentPage{constructor(){super(...arguments);this.search="";this.showTemplate=false;this.sites=[]}init(){return __awaiter(this,void 0,void 0,(function*(){this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.showTemplate)),text:"Templates"}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({"data-layout":"data-grid",items:this.sites},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.websiteService.list({search:this.search,showTemplate:this.showTemplate,start,cancelToken}))),{itemRenderer:this.itemRenderer()})));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-click-event":"create-new-website"},"Create New Website"))}))}createNewWebsite(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(WebSiteFolderEditor);yield this.init()}))}changeSettings(item){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(WebSiteFolderSettings,item)}))}itemRenderer(){return item=>XNode.create("div",null,item.isTemplate?XNode.create("i",{title:"This is a template",class:"fa-duotone fa-folder-grid"}):XNode.create("i",{class:"fa-duotone fa-folder"}),XNode.create("a",{href:AppUrlService.editWebSite(item),text:item.folder.name}),XNode.create("label",{text:toFileSize(Number(item.folder.fileSize)+Number(item.snapshotStorage))}),XNode.create("br",null),XNode.create("a",{href:AppUrlService.editWebSite(item)},XNode.create("i",{class:"fas fa-folder"})),XNode.create("i",{"data-click-event":"change-settings",class:"fas fa-gears"}))}});__decorate([InjectProperty,__metadata("design:type",WebSiteService)],WebSiteListPage.prototype,"websiteService",void 0);__decorate([Action({onEvent:"create-new-website"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteListPage.prototype,"createNewWebsite",null);__decorate([Action({onEvent:"change-settings"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteListPage.prototype,"changeSettings",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/list/WebSiteListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/web-controls/dist/basic/AtomRepeater","./repeater/InfiniteRepeater","../../services/EntityService","@web-atoms/core/dist/core/InjectProperty","./buttons/IconButton","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,XNode,AtomControl,AtomRepeater,InfiniteRepeater,EntityService,InjectProperty,AddIconTextButton,Form,FormField,Action,styled,FormFields,EntityListControl;_export({FormFields:void 0,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(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_repeaterInfiniteRepeater){InfiniteRepeater=_repeaterInfiniteRepeater.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_buttonsIconButton){AddIconTextButton=_buttonsIconButton.AddIconTextButton},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
2480
|
+
`.installGlobal("[data-app-form=app-form]")}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/form/AppForm");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","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../date/DateFormats","../../../form/AppForm"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,UserAuthFactor,InjectProperty,UserService,XNode,AddIconTextButton,DeleteIconTextButton,SaveIconTextButton,FormField,Bind,Action,AtomRepeater,DateFormats,AppForm,MultiFactorSetupPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_modelModel){UserAuthFactor=_modelModel.UserAuthFactor},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesUserService){UserService=_servicesUserService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_controlsButtonsIconButton){AddIconTextButton=_controlsButtonsIconButton.AddIconTextButton;DeleteIconTextButton=_controlsButtonsIconButton.DeleteIconTextButton;SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_dateDateFormats){DateFormats=_dateDateFormats.DateFormats},function(_formAppForm){AppForm=_formAppForm.default}],execute:function(){_export("default",MultiFactorSetupPage=class MultiFactorSetupPage extends ContentPage{init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.model=yield this.userService.getCurrent();const{multiFactor}=this.model;this.title="Setup Multi Factor Authentication";if(!((_a=this.model.authFactors)===null||_a===void 0?void 0:_a.length)){yield this.notSetup();return}if(multiFactor){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(AppForm,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),XNode.create("div",{"data-layout":"command-row"},XNode.create("div",null,"Multi factor authentication is enabled."),XNode.create(DeleteIconTextButton,{text:"Disable"}))));return}const disable=!((_b=this.model.authFactors)===null||_b===void 0?void 0:_b.length)||!this.model.authFactors.some((i=>i.method==="totp"&&i.verified))||this.model.authFactors.filter((i=>i.method==="one-time")).length<8;this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create(AppForm,null,XNode.create(FormField,{label:"Methods"},XNode.create(AtomRepeater,{for:"table",items:this.model.authFactors,itemRenderer:item=>this.renderAuthFactor(item)})),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}),XNode.create(AddIconTextButton,{"event-click":()=>this.generateOTP(),text:"Generate OTP"})),disable&&XNode.create("div",null,"You must add at least one authenticator and generate 8 OTPs (one time passwords) to enable Multi factor authentication."),!multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{disabled:disable,"style-color":disable?"gray":"","data-click-event":"enable-multi-factor",text:"Enable"}),XNode.create(DeleteIconTextButton,{"data-submit-event":"clear-all",text:"Clear All"})),multiFactor&&XNode.create("div",{"data-layout":"command-row"},XNode.create(DeleteIconTextButton,{text:"Disable"}))))}))}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"})))}notSetup(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",{"data-layout":"center-page-900px"},XNode.create("p",null,"You account is not secure, please setup multi factor authentication."),XNode.create(AddIconTextButton,{"event-click":()=>this.addAuthenticator(),text:"Add Authenticator"}))}))}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=[];for(let index=0;index<8;index++){authList.push(UserAuthFactor.create({method:"one-time"}))}yield this.userService.save(this.model);let text="";for(const iterator of authList){if(!(iterator===null||iterator===void 0?void 0:iterator.displaySecret)){continue}text+="\r\n"+iterator.displaySecret}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 passwords 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, click go to previous screen."),XNode.create("div",{"data-layout":"command-row"},XNode.create(SaveIconTextButton,{"event-click":()=>this.init(),text:"Go"}))))}))}clearAll(){return __awaiter(this,void 0,void 0,(function*(){const all=this.model.authFactors;if(!(all===null||all===void 0?void 0:all.length)){return}for(const iterator of all){iterator.$deleted=true}yield this.userService.save(this.model);yield this.init()}))}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.save(this.model);yield this.init()}))}});__decorate([InjectProperty,__metadata("design:type",UserService)],MultiFactorSetupPage.prototype,"userService",void 0);__decorate([Action({onEvent:"clear-all",confirm:"Are you sure you want to delete all existing methods?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"clearAll",null);__decorate([Action({onEvent:"enable-multi-factor",success:"Multi factor authentication enabled successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"enableMultiFactor",null);__decorate([Action({onEvent:"save-auth-factor",success:"Authenticator setup successfully."}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],MultiFactorSetupPage.prototype,"saveAuthFactor",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/user/multi-factor/MultiFactorSetupPage");System.register(["tslib","@web-atoms/core/dist/di/DITransient","@web-atoms/core/dist/di/Inject","../EntityService","../../model/model","@web-atoms/date-time/dist/DateTime","../../common/Sql"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DITransient,Inject,EntityService,WebSiteFolder,WebSiteFolderVersion,DateTime,Sql,WebSiteService;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){WebSiteFolder=_modelModel.WebSiteFolder;WebSiteFolderVersion=_modelModel.WebSiteFolderVersion},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonSql){Sql=_commonSql.Sql}],execute:function(){WebSiteService=class WebSiteService{getVersions({folderID,start,size=20,cancelToken=void 0}){return __awaiter(this,void 0,void 0,(function*(){return this.entityService.query(WebSiteFolderVersion).where({folderID},(p=>x=>x.folderID===p.folderID)).orderByDescending((x=>x.dateCreated)).include((x=>[x.author,x.snapshotFolder])).toPagedList({start,size,cancelToken})}))}get(id){return __awaiter(this,void 0,void 0,(function*(){const site=yield this.entityService.query(WebSiteFolder).where({id},(p=>x=>x.folderID===p.id)).include((x=>[x.folder,x.hosts,x.channels.forEach((c=>c.channel.emailAddress))])).firstOrDefault();return site}))}list({search="",start=0,size=100,showTemplate=false,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(WebSiteFolder);if(search){search=search+"%";q=q.where({search},(p=>x=>Sql.text.iLike(x.folder.name,p.search)))}if(showTemplate){q=q.where((x=>x.isTemplate===true))}return q.include((x=>[x.folder,x.hosts])).orderBy((x=>Sql.text.lower(x.folder.name))).toPagedList({start,size,cancelToken})}))}save(model){return __awaiter(this,void 0,void 0,(function*(){const cloner=this.entityService.cloner(model).include((x=>x.folder)).copy;yield this.entityService.save(cloner);return model}))}publish(model){var _a;return __awaiter(this,void 0,void 0,(function*(){(_a=model.versions)!==null&&_a!==void 0?_a:model.versions=[];const dateCreated=DateTime.now;const folderID=model.folderID;const version=WebSiteFolderVersion.create({dateCreated,folderID,publish:true});yield this.entityService.save(version);model.versions.add(version);model.isModified=false}))}};__decorate([Inject,__metadata("design:type",EntityService)],WebSiteService.prototype,"entityService",void 0);WebSiteService=__decorate([DITransient()],WebSiteService);_export("default",WebSiteService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/services/websites/WebSiteService");System.register(["tslib","@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/mobile-app/MobileApp","../../../../model/model","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/core/InjectProperty","../../../../services/websites/WebSiteService","@web-atoms/web-controls/dist/basic/Checkbox"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,Form,FormField,PopupWindowPage,AppFile,WebSiteFolder,Bind,Action,InjectProperty,WebSiteService,Checkbox,WebSiteFolderEditor;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_modelModel){AppFile=_modelModel.AppFile;WebSiteFolder=_modelModel.WebSiteFolder},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesWebsitesWebSiteService){WebSiteService=_servicesWebsitesWebSiteService.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default}],execute:function(){_export("default",WebSiteFolderEditor=class WebSiteFolderEditor extends PopupWindowPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.title="Create Website Folder";this.model=WebSiteFolder.create({folder:AppFile.create({name:"",isFolder:true,contentType:"application/site"}),isStatic:true});this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Name"},XNode.create("input",{autofocus:true,value:Bind.twoWaysImmediate((()=>this.model.folder.name))})),XNode.create(FormField,{label:"Template"},XNode.create(Checkbox,{checked:Bind.twoWays((()=>this.model.isTemplate)),text:"Save this as a Template"})),XNode.create(FormField,{label:"Enable"},XNode.create(Checkbox,{checked:Bind.twoWays((()=>this.model.storeEnabled)),text:"Store"})),XNode.create("div",null,"We recommend using the host name as folder name, e.g. akashkava.com"),XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-submit-event":"save-web-site"},"Save"))))}))}saveWebSite(){return __awaiter(this,void 0,void 0,(function*(){yield this.websiteService.save(this.model);return this.model}))}});__decorate([InjectProperty,__metadata("design:type",WebSiteService)],WebSiteFolderEditor.prototype,"websiteService",void 0);__decorate([Action({onEvent:"save-web-site",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteFolderEditor.prototype,"saveWebSite",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/edit/WebSiteFolderEditor");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/DropDown","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/core/types"],(function(_export,_context){"use strict";var __awaiter,Bind,XNode,DropDown,FetchBuilder,UMD,countriesPromise,loadCountries,CountrySelect,CurrencySelect,isdForCountry,formatForCountry;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicDropDown){DropDown=_webAtomsWebControlsDistBasicDropDown.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistCoreTypes){UMD=_webAtomsCoreDistCoreTypes.UMD}],execute:function(){loadCountries=()=>countriesPromise!==null&&countriesPromise!==void 0?countriesPromise:countriesPromise=FetchBuilder.get(UMD.resolvePath("@social-mail/social-mail-client/content/json/countries.json")).responseAsJson();_export("CountrySelect",CountrySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>{var _a;return((_a=item.isdCode)===null||_a===void 0?void 0:_a.startsWith("+"))?item.isdCode:`+${item.isdCode} ${item.value}`},valuePath:item=>item.value,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("CurrencySelect",CurrencySelect=a=>XNode.create(DropDown,Object.assign({labelPath:item=>item.currency+"("+item.label+")",valuePath:item=>item.currency,items:Bind.oneTimeAsync((()=>loadCountries()))},a)));_export("isdForCountry",isdForCountry=(countryCode,prefix="")=>__awaiter(void 0,void 0,void 0,(function*(){const{isdCode}=(yield loadCountries()).find((x=>x.value===countryCode));if(prefix){return isdCode.startsWith(prefix)?isdCode:prefix+isdCode}return isdCode})));_export("formatForCountry",formatForCountry=countryCode=>__awaiter(void 0,void 0,void 0,(function*(){const countries=yield loadCountries();const country=countries.find((c=>c.value===countryCode));if(country){const{phoneFormat}=country;if(phoneFormat&&phoneFormat!=="0.0"){return phoneFormat}}return"####.####.####"})))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/countries/CountrySelect");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/core/Bind","../../../controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","../../../../services/EntityService","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/basic/Checkbox","../../../controls/countries/CountrySelect"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,PopupWindowPage,Form,FormField,Bind,SaveIconTextButton,Action,EntityService,InjectProperty,Checkbox,CurrencySelect,WebSiteFolderSettings;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){PopupWindowPage=_webAtomsWebControlsDistMobileAppMobileApp.PopupWindowPage},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_controlsButtonsIconButton){SaveIconTextButton=_controlsButtonsIconButton.SaveIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_controlsCountriesCountrySelect){CurrencySelect=_controlsCountriesCountrySelect.CurrencySelect}],execute:function(){_export("default",WebSiteFolderSettings=class WebSiteFolderSettings extends PopupWindowPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.model=Object.assign({},this.parameters);this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"From Email"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.fromEmail))})),XNode.create(FormField,{label:"Support Email"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.supportEmail))})),XNode.create(FormField,{label:"Enable"},XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.model.storeEnabled)),text:"Store"})),XNode.create(FormField,{label:"Default Currency"},XNode.create(CurrencySelect,{value:Bind.twoWaysImmediate((()=>this.model.currency))})),XNode.create(FormField,{label:""},XNode.create(SaveIconTextButton,{"data-submit-event":"save-settings",text:"Save"}))))}))}saveSettings(){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.save(this.model,(c=>c));return this.model}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],WebSiteFolderSettings.prototype,"entityService",void 0);__decorate([Action({onEvent:"save-settings",close:true}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteFolderSettings.prototype,"saveSettings",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/edit/WebSiteFolderSettings");System.register([],(function(_export,_context){"use strict";var AppUrlService;return{setters:[],execute:function(){_export("AppUrlService",AppUrlService={editWebSite(site){return`/social-mail/studio/edit/${site.folderID}`}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/AppUrlService");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../services/websites/WebSiteService","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/PageNavigator","../edit/WebSiteFolderEditor","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Checkbox","../../../controls/repeater/InfiniteRepeater","../../../NumberFormats","../edit/WebSiteFolderSettings","../../../AppUrlService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,XNode,AtomRepeater,ContentPage,WebSiteService,Action,PageNavigator,WebSiteFolderEditor,Bind,Checkbox,InfiniteRepeater,toFileSize,WebSiteFolderSettings,AppUrlService,WebSiteListPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_servicesWebsitesWebSiteService){WebSiteService=_servicesWebsitesWebSiteService.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_editWebSiteFolderEditor){WebSiteFolderEditor=_editWebSiteFolderEditor.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicCheckbox){Checkbox=_webAtomsWebControlsDistBasicCheckbox.default},function(_controlsRepeaterInfiniteRepeater){InfiniteRepeater=_controlsRepeaterInfiniteRepeater.default},function(_NumberFormats){toFileSize=_NumberFormats.toFileSize},function(_editWebSiteFolderSettings){WebSiteFolderSettings=_editWebSiteFolderSettings.default},function(_AppUrlService){AppUrlService=_AppUrlService.AppUrlService}],execute:function(){_export("default",WebSiteListPage=class WebSiteListPage extends ContentPage{constructor(){super(...arguments);this.search="";this.showTemplate=false;this.sites=[]}init(){return __awaiter(this,void 0,void 0,(function*(){this.headerRenderer=()=>XNode.create("div",{"data-layout":"header-row"},XNode.create("input",{type:"search",value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create(Checkbox,{checked:Bind.twoWaysImmediate((()=>this.showTemplate)),text:"Templates"}));this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({"data-layout":"data-grid",items:this.sites},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.websiteService.list({search:this.search,showTemplate:this.showTemplate,start,cancelToken}))),{itemRenderer:this.itemRenderer()})));this.footerRenderer=()=>XNode.create("div",{"data-layout":"command-row"},XNode.create("button",{"data-click-event":"create-new-website"},"Create New Website"))}))}createNewWebsite(){return __awaiter(this,void 0,void 0,(function*(){yield PageNavigator.pushPageForResult(WebSiteFolderEditor);yield this.init()}))}changeSettings(item){return __awaiter(this,void 0,void 0,(function*(){PageNavigator.pushPage(WebSiteFolderSettings,item)}))}itemRenderer(){return item=>XNode.create("div",null,item.isTemplate?XNode.create("i",{title:"This is a template",class:"fa-duotone fa-folder-grid"}):XNode.create("i",{class:"fa-duotone fa-folder"}),XNode.create("a",{href:AppUrlService.editWebSite(item),text:item.folder.name}),XNode.create("label",{text:toFileSize(Number(item.folder.fileSize)+Number(item.snapshotStorage))}),XNode.create("br",null),XNode.create("a",{href:AppUrlService.editWebSite(item)},XNode.create("i",{class:"fas fa-folder"})),XNode.create("i",{"data-click-event":"change-settings",class:"fas fa-gears"}))}});__decorate([InjectProperty,__metadata("design:type",WebSiteService)],WebSiteListPage.prototype,"websiteService",void 0);__decorate([Action({onEvent:"create-new-website"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],WebSiteListPage.prototype,"createNewWebsite",null);__decorate([Action({onEvent:"change-settings"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],WebSiteListPage.prototype,"changeSettings",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/pages/websites/list/WebSiteListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","@web-atoms/web-controls/dist/basic/AtomRepeater","./repeater/InfiniteRepeater","../../services/EntityService","@web-atoms/core/dist/core/InjectProperty","./buttons/IconButton","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/core/dist/view-model/Action","@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,XNode,AtomControl,AtomRepeater,InfiniteRepeater,EntityService,InjectProperty,AddIconTextButton,Form,FormField,Action,styled,FormFields,EntityListControl;_export({FormFields:void 0,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(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_repeaterInfiniteRepeater){InfiniteRepeater=_repeaterInfiniteRepeater.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_buttonsIconButton){AddIconTextButton=_buttonsIconButton.AddIconTextButton},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default}],execute:function(){styled.css`
|
|
2481
2481
|
width: 100%;
|
|
2482
2482
|
display: flex;
|
|
2483
2483
|
flex-direction: column;
|
|
@@ -3087,5 +3087,5 @@ html, body {
|
|
|
3087
3087
|
overflow: auto;
|
|
3088
3088
|
}
|
|
3089
3089
|
|
|
3090
|
-
`.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({})}),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=>XNode.create(MenuItem,{commandLink: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({})})),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"}),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"}))))}))}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.topSites()]);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","@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");
|
|
3090
|
+
`.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({})}),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=>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({})})),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"}),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"}))))}))}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.topSites()]);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","@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");
|
|
3091
3091
|
//# sourceMappingURL=AppIndex.pack.min.js.map
|