@social-mail/social-mail-client 1.4.39 → 1.4.41

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.
@@ -32,5 +32,5 @@ var __awaiter=this&&this.__awaiter||function(thisArg,_arguments,P,generator){fun
32
32
  & img.qr-code {
33
33
  width: 256px;
34
34
  }
35
- `.installGlobal("qr-code");generateUrl=item=>{const body=item.keyword?`${item.keyword} ${item.code}`:item.code;if(/android/i.test(navigator.userAgent)){return`SMS:${item.phoneNumber}?body=${encodeURIComponent(body)}`}return`SMS:${item.phoneNumber}?&body=${encodeURIComponent(body)}`};_export("default",QRCodeControl=class QRCodeControl extends AtomControl{constructor(app,e=document.createElement("qr-code")){super(app,e);this.smsConfig=null;this.selectedConfig=null;this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}init(){return __awaiter(this,void 0,void 0,(function*(){if(!this.smsConfig){return}if(typeof this.smsConfig==="string"){this.smsConfig=JSON.parse(this.smsConfig)}this.selectedConfig=this.smsConfig.config[0];const isMobile=/ios|iphone|android/i.test(navigator.userAgent);if(isMobile){this.renderer=XNode.create("div",null,XNode.create(AppForm,null,XNode.create("h4",null,"Please verify your phone number"),XNode.create("div",null,"Click on following button, that will open your Messages(SMS/Text) screen with your verification code, please click send on your Messages screen."),XNode.create(FormField,{label:"Country"},XNode.create(DropDown,{itemRenderer:x=>XNode.create("label",{text:x.countryCode}),items:this.smsConfig.config,selectedItem:Bind.twoWaysImmediate((()=>this.selectedConfig))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{href:Bind.oneWay((()=>generateUrl(this.selectedConfig))),target:"_blank",text:"Open Messages"}))));return}this.renderer=XNode.create("div",null,XNode.create(AppForm,null,XNode.create("h4",null,"Please verify your phone number"),XNode.create("div",null,"Scan following QR Code with your phone to open the Messages(SMS/Text) with generated code. And hit the send button."),XNode.create(FormField,{label:"Country"},XNode.create(DropDown,{itemRenderer:x=>XNode.create("label",{text:x.countryCode}),items:this.smsConfig.config,selectedItem:Bind.twoWaysImmediate((()=>this.selectedConfig))})),XNode.create("div",null,XNode.create("img",{class:"qr-code",src:Bind.oneWay((()=>`data:image/svg+xml;base64,${btoa(this.selectedConfig.qrCodeUrl)}`))}))))}))}});__decorate([BindableProperty,__metadata("design:type",Object)],QRCodeControl.prototype,"smsConfig",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/user/pages/signup/SiteSignupPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/Form","@web-atoms/core/dist/core/Bind","../../../../common/controls/phone-editor/PhoneEditor","@web-atoms/core/dist/view-model/Action","../../../../model/model","@web-atoms/core/dist/core/InjectProperty","../../../../services/EntityService","../../../../common/controls/buttons/IconButton","../../../../common/controls/qrcode/QRCode","@web-atoms/core/dist/core/sleep","../../../../common/controls/countries/CountrySelect","@web-atoms/core/dist/services/FetchBuilder","./SiteSignupPage.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,XNode,FormField,Form,Bind,PhoneEditor,Action,StoreAccountAddress,VerificationToken,InjectProperty,EntityService,EmailIconTextButton,QRCodeControl,sleep,CountrySelect,FetchBuilder,SiteSignupPage,pending,done;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsPhoneEditorPhoneEditor){PhoneEditor=_commonControlsPhoneEditorPhoneEditor.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_modelModel){StoreAccountAddress=_modelModel.StoreAccountAddress;VerificationToken=_modelModel.VerificationToken},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_commonControlsButtonsIconButton){EmailIconTextButton=_commonControlsButtonsIconButton.EmailIconTextButton},function(_commonControlsQrcodeQRCode){QRCodeControl=_commonControlsQrcodeQRCode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_commonControlsCountriesCountrySelect){CountrySelect=_commonControlsCountriesCountrySelect.CountrySelect},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_SiteSignupPageLocalLess){}],execute:function(){pending="⬜";done="✅";_export("default",SiteSignupPage=class SiteSignupPage extends ContentPage{constructor(){super(...arguments);this.model={name:"",billingAddress:StoreAccountAddress.create({}),shippingAddress:StoreAccountAddress.create({})};this.step=1}getHeader(){if(this.emailVerified){return XNode.create("div",null,XNode.create("h5",null,"Signup"),XNode.create("ol",null,XNode.create("li",null,"✅ Email Verified"),XNode.create("li",null,this.step>1?done:pending," Add Phone Number"),XNode.create("li",null,this.step>2?done:pending," Confirm Phone Number"),XNode.create("li",null,this.step>3?done:pending," Add Name/Address Details")))}return XNode.create("div",null,XNode.create("h5",null,"Signup"),XNode.create("ol",null,XNode.create("li",null,"✅ Phone Verification"),XNode.create("li",null,this.step>1?done:pending," Add Email Address"),XNode.create("li",null,this.step>2?done:pending," Confirm Email Address"),XNode.create("li",null,this.step>3?done:pending," Name/Address Details")))}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.element.setAttribute("site-signup-page","true");this.model.phone=this.parameters.phone;this.model.email=this.parameters.email;this.model.captcha=this.parameters.captcha;const emailVerified=((_a=this.parameters.email)===null||_a===void 0?void 0:_a.accessCode)&&((_b=this.parameters.email)===null||_b===void 0?void 0:_b.verifyCode);this.emailVerified=emailVerified;if(emailVerified){yield this.askPhoneNumber();return}this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create("div",null,"To complete signup, please verify your email address."),XNode.create(FormField,{label:"Email"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.email.verifyAddresses))})),XNode.create("div",null,XNode.create("button",{"data-submit-event":"request-verification"},"Request Code"))))}))}askPhoneNumber(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create("div",null,"To complete signup, please verify your phone number."),XNode.create(FormField,{label:"Cell Phone"},XNode.create(PhoneEditor,{value:Bind.twoWaysImmediate((()=>this.model.phone.verifyAddresses))})),XNode.create("div",null,XNode.create("button",{"data-submit-event":"request-verification"},"Verify"))))}))}requestVerification(){return __awaiter(this,void 0,void 0,(function*(){this.step=2;const verifyEmail=!this.emailVerified;const v=verifyEmail?this.model.email:this.model.phone;yield this.entityService.save(v);if(!verifyEmail){yield this.displayQRCode(v);return}this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create(FormField,{label:"Email Verification"},XNode.create("div",null,"We have sent you the verification code in your email, please enter it again to complete the verification.")),XNode.create(FormField,{label:"Code"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.email.verifyCode))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{text:"Proceed","data-submit-event":"verify-email"}))))}))}verifyEmail(){return __awaiter(this,void 0,void 0,(function*(){const v=this.model.email;const vt=yield this.entityService.invoke(VerificationToken,"verifyCode",v,v.verificationID,v.accessCode,this.model.email.verifyCode);if(!vt.verified){throw new Error("Verification failed, try again")}yield this.askForSignup()}))}displayQRCode(ve){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create(QRCodeControl,{smsConfig:JSON.parse(ve.externalConfig)})));for(let index=0;index<100;index++){try{const v=yield this.entityService.query(VerificationToken,"get",ve.verificationID,ve.accessCode).firstOrDefault();if(v.verified){ve.verified=true;break}}catch(_a){}yield sleep(5e3)}yield this.askForSignup()}))}askForSignup(){return __awaiter(this,void 0,void 0,(function*(){this.step=3;this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create(FormField,{label:"Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.name))})),XNode.create("details",{open:true},XNode.create("summary",null,"Billing"),XNode.create("div",null,XNode.create(FormField,{label:"Full Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.title))})),XNode.create(FormField,{label:"Tax IDs"},XNode.create("div",{"data-layout":"flex-wrap"},XNode.create("input",{placeholder:"GST",value:Bind.twoWaysImmediate((()=>this.model.billingAddress.gstTaxID))}),XNode.create("input",{placeholder:"Income Tax",value:Bind.twoWaysImmediate((()=>this.model.billingAddress.incomeTaxID))}))),XNode.create(FormField,{label:"Address Line 1"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.line1))})),XNode.create(FormField,{label:"Address Line 2"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.line2))})),XNode.create(FormField,{label:"Address Line 3"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.line3))})),XNode.create(FormField,{label:"City"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.city))})),XNode.create(FormField,{label:"State"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.state))})),XNode.create(FormField,{label:"Country"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.countryCode))})))),XNode.create("details",null,XNode.create("summary",null,"Shipping"),XNode.create("div",null,XNode.create(FormField,{label:"Full Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.title))})),XNode.create(FormField,{label:"Tax IDs"},XNode.create("div",{"data-layout":"flex-wrap"},XNode.create("input",{placeholder:"GST",value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.gstTaxID))}),XNode.create("input",{placeholder:"Income Tax",value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.incomeTaxID))}))),XNode.create(FormField,{label:"Address Line 1"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.line1))})),XNode.create(FormField,{label:"Address Line 2"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.line2))})),XNode.create(FormField,{label:"Address Line 3"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.line3))})),XNode.create(FormField,{label:"City"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.city))})),XNode.create(FormField,{label:"State"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.state))})),XNode.create(FormField,{label:"Country"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.countryCode))})))),XNode.create("div",null,XNode.create("button",{"data-submit-event":"user-signup"},"Signup"))))}))}userSignup(){return __awaiter(this,void 0,void 0,(function*(){delete this.model.email.addresses;delete this.model.phone.addresses;const{userID}=yield FetchBuilder.post("/social-mail/user/signup").jsonBody(this.model).asJson();if(userID){location.reload()}}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],SiteSignupPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"request-verification"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteSignupPage.prototype,"requestVerification",null);__decorate([Action({onEvent:"verify-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteSignupPage.prototype,"verifyEmail",null);__decorate([Action({onEvent:"user-signup"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteSignupPage.prototype,"userSignup",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/user/pages/login/SiteLoginPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../services/EntityService","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/buttons/IconButton","../../../../model/model","@web-atoms/web-controls/dist/basic/ToggleButtonBar","../../../../common/controls/phone-editor/PhoneEditor","@web-atoms/core/dist/view-model/Action","../../../../common/controls/qrcode/QRCode","@web-atoms/core/dist/core/sleep","@web-atoms/web-controls/dist/PageNavigator","../signup/SiteSignupPage","./SiteLoginPage.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,XNode,Bind,Form,FormField,EmailIconTextButton,VerificationToken,ToggleButtonBar,PhoneEditor,Action,QRCodeControl,sleep,PageNavigator,SiteSignupPage,SiteLoginPage,verifyModes;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsButtonsIconButton){EmailIconTextButton=_commonControlsButtonsIconButton.EmailIconTextButton},function(_modelModel){VerificationToken=_modelModel.VerificationToken},function(_webAtomsWebControlsDistBasicToggleButtonBar){ToggleButtonBar=_webAtomsWebControlsDistBasicToggleButtonBar.default},function(_commonControlsPhoneEditorPhoneEditor){PhoneEditor=_commonControlsPhoneEditorPhoneEditor.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsQrcodeQRCode){QRCodeControl=_commonControlsQrcodeQRCode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_signupSiteSignupPage){SiteSignupPage=_signupSiteSignupPage.default},function(_SiteLoginPageLocalLess){}],execute:function(){verifyModes=[{label:"Email",value:"email"},{label:"Cell Phone",value:"phone"}];_export("default",SiteLoginPage=class SiteLoginPage extends ContentPage{constructor(){super(...arguments);this.model={name:"",captcha:VerificationToken.create({type:"captcha",accessCode:"",verifyCode:"",verifyAddresses:""}),email:VerificationToken.create({type:"email",accessCode:"",verifyCode:"",verifyAddresses:""}),phone:VerificationToken.create({type:"sms",accessCode:"",verifyCode:"",verifyAddresses:""})};this.verifyMode="email"}init(){return __awaiter(this,void 0,void 0,(function*(){this.element.setAttribute("site-login-page","site-login");const captcha=yield this.entityService.save(this.model.captcha);const{verificationID,accessCode}=captcha;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Verify"},XNode.create(ToggleButtonBar,{items:verifyModes,value:Bind.twoWaysImmediate((()=>this.verifyMode))})),XNode.create(FormField,{label:"Email","style-display":Bind.oneWay((()=>this.verifyMode==="email"))},XNode.create("input",{autofocus:true,value:Bind.twoWaysImmediate((()=>this.model.email.verifyAddresses))})),XNode.create(FormField,{label:"Cell Phone","style-display":Bind.oneWay((()=>this.verifyMode==="phone"))},XNode.create(PhoneEditor,{value:Bind.twoWaysImmediate((()=>this.model.phone.verifyAddresses))})),XNode.create(FormField,{label:"Captcha"},XNode.create("img",{src:`/api/users/captcha/${verificationID}/${accessCode}`})),XNode.create(FormField,{label:"Enter 5 Digit Code"},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.model.captcha.verifyCode))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{text:"Verify","data-submit-event":"proceed-verification"}))))}))}proceedVerification(){return __awaiter(this,void 0,void 0,(function*(){const captcha=this.model.captcha;const{verificationID:id,accessCode}=captcha;const vt=yield this.entityService.invoke(VerificationToken,"verifyCode",captcha,id,accessCode,this.model.captcha.verifyCode);if(!vt.verified){throw new Error("Verification failed, try again")}const isEmail=this.verifyMode==="email";const v=isEmail?this.model.email:this.model.phone;yield this.entityService.save(v);if(!isEmail){yield this.displayPhoneVerification(v);return}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Email Verification"},XNode.create("div",null,"We have sent you the verification code in your email, please enter it again to complete the verification.")),XNode.create(FormField,{label:"Code"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.email.verifyCode))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{text:"Verify","data-submit-event":"verify-email"}))))}))}displayPhoneVerification(ve){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(QRCodeControl,{smsConfig:JSON.parse(ve.externalConfig)}));for(let index=0;index<100;index++){const v=yield this.entityService.query(VerificationToken,"get",ve.verificationID,ve.accessCode).firstOrDefault();if(v.verified){ve.verified=true;ve.verifyCode="verified";ve.userID=v.userID;if(v.userID){yield this.login(ve);return}break}yield sleep(5e3)}yield this.askForSignup()}))}verifyEmail(){return __awaiter(this,void 0,void 0,(function*(){const v=this.model.email;const vt=yield this.entityService.invoke(VerificationToken,"verifyCode",v,v.verificationID,v.accessCode,this.model.email.verifyCode);if(!vt.verified){throw new Error("Verification failed, try again")}if(vt.userID){yield this.login(vt);return}yield this.askForSignup()}))}askForSignup(){return __awaiter(this,void 0,void 0,(function*(){const{captcha,email,phone}=this.model;PageNavigator.openPage(SiteSignupPage,{captcha,email,phone})}))}login(v){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.invoke(VerificationToken,"login",v,v.verificationID,v.accessCode);location.reload()}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],SiteLoginPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"proceed-verification"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteLoginPage.prototype,"proceedVerification",null);__decorate([Action({onEvent:"verify-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteLoginPage.prototype,"verifyEmail",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],SiteLoginPage.prototype,"login",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/user/WebSiteUserService");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","../../model/model","@web-atoms/core/dist/di/Inject","../../services/EntityService","../../common/SocialMailApp","@web-atoms/core/dist/App","@web-atoms/web-controls/dist/PageNavigator","./pages/login/SiteLoginPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,LoginSession,Inject,EntityService,SocialMailApp,App,PageNavigator,SiteLoginPage,WebSiteUserService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_modelModel){LoginSession=_modelModel.LoginSession},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_pagesLoginSiteLoginPage){SiteLoginPage=_pagesLoginSiteLoginPage.default}],execute:function(){WebSiteUserService=class WebSiteUserService{constructor(){this.user=null}getUser(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){(_a=this.user)!==null&&_a!==void 0?_a:this.user=(_b=yield this.entityService.query(LoginSession,"currentUser").firstOrDefault())===null||_b===void 0?void 0:_b.user;SocialMailApp.user=this.user;if((_c=this.user)===null||_c===void 0?void 0:_c.userID){return this.user}yield PageNavigator.pushPageForResultOrCancel(SiteLoginPage);return this.user}))}};__decorate([Inject,__metadata("design:type",EntityService)],WebSiteUserService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",App)],WebSiteUserService.prototype,"app",void 0);WebSiteUserService=__decorate([DISingleton()],WebSiteUserService);_export("default",WebSiteUserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/date/DateFormats");System.register(["@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var DateTime,DIVISIONS,DateFormats;return{setters:[function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){DIVISIONS=[{amount:60,name:"seconds"},{amount:60,name:"minutes"},{amount:24,name:"hours"},{amount:7,name:"days"},{amount:4.34524,name:"weeks"},{amount:12,name:"months"},{amount:Number.POSITIVE_INFINITY,name:"years"}];_export("DateFormats",DateFormats={diff(d){if(!d){return""}if(!(d instanceof DateTime)){d=typeof d==="string"?new DateTime(d):DateTime.from(d)}const today=DateTime.now;let diff=today.diff(d);if(diff.totalMilliseconds<0){diff=d.diff(today)}if(diff.totalHours<=24){if(diff.totalSeconds<=180){return"now"}if(diff.totalMinutes<60){return Math.round(diff.totalMinutes)+"m"}return Math.round(diff.totalHours)+"h"}if(diff.totalDays<=30){return Math.round(diff.totalDays)+"d"}if(diff.totalDays<=365){return Math.round(diff.totalDays/30)+"mo"}return Math.round(diff.totalDays/365)+"yr"},withWeekDayAndTime(d,def=""){var _a;if(!d){return def}d=DateTime.from(d);return(_a=d===null||d===void 0?void 0:d.toLocaleString(navigator.language,{year:"numeric",month:"short",day:"numeric",weekday:"short",hour12:true,minute:"numeric",hour:"numeric"}))!==null&&_a!==void 0?_a:def},relative:{short(d){if(!d){return""}d=DateTime.from(d);const now=DateTime.now;if(now<d){return"in "+DateFormats.diff(d)}return DateFormats.diff(d)+" ago"}}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/orders/StoreOrdersPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../services/EntityService","../../../../model/model","../../../../common/Sql","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../../common/controls/repeater/InfiniteRepeater","../../../user/WebSiteUserService","../../../../common/date/DateFormats","../../commands/StoreCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,StoreJournal,Sql,XNode,AtomRepeater,InfiniteRepeater,WebSiteUserService,DateFormats,StoreCommands,StoreOrderPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){StoreJournal=_modelModel.StoreJournal},function(_commonSql){Sql=_commonSql.Sql},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_userWebSiteUserService){WebSiteUserService=_userWebSiteUserService.default},function(_commonDateDateFormats){DateFormats=_commonDateDateFormats.DateFormats},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default}],execute:function(){_export("default",StoreOrderPage=class StoreOrderPage extends ContentPage{constructor(){super(...arguments);this.search="";this.items=[]}init(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.getUser();this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({items:this.items,"data-layout":"data-grid"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.load({search:this.search,start,cancelToken}))),{itemRenderer:item=>XNode.create("div",null,XNode.create("label",{text:item.journalID}),XNode.create("label",{text:DateFormats.relative.short(item.dateCreated)}),XNode.create("label",{text:item.status}),XNode.create("br",null),XNode.create("a",{href:StoreCommands.order.displayRoute(item)},XNode.create("button",{text:"Details"})),item.status!=="paid"?XNode.create("a",{href:`/store/checkout/${item.journalID}`},XNode.create("button",{"data-click-event":"pay"},XNode.create("i",{class:"fas fa-pay"}),"Pay")):XNode.create("label",{text:"Paid"}))})))}))}load({search,start,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(StoreJournal);if(search){search=search+"%";q=q.where({search},(p=>x=>x.lineItems.some((l=>Sql.text.iLike(l.item.name,p.search)))))}return q.toPagedList({start,cancelToken})}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreOrderPage.prototype,"entityService",void 0);__decorate([InjectProperty,__metadata("design:type",WebSiteUserService)],StoreOrderPage.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/Loader");System.register(["@web-atoms/core/dist/core/XNode","@social-mail/social-mail-client/content/images/gif/loader.gif"],(function(_export,_context){"use strict";var XNode,loaderImage;function Loader(){return XNode.create("div",{"data-position":"absolute-fill","data-layout":"center-all"},XNode.create("img",{src:loaderImage}))}_export("default",Loader);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_socialMailSocialMailClientContentImagesGifLoaderGif){loaderImage=_socialMailSocialMailClientContentImagesGifLoaderGif.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/order/StoreOrderPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/date-time/dist/DateTime","../../../../common/controls/buttons/IconButton","../../../../common/controls/Loader","../../../../common/date/DateFormats","../../../../model/model","../../../../services/EntityService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,XNode,AtomRepeater,Bind,Action,DateTime,AddIconTextButton,Loader,DateFormats,StoreJournalCoupon,StoreJournal,EntityService,StoreOrderPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_commonDateDateFormats){DateFormats=_commonDateDateFormats.DateFormats},function(_modelModel){StoreJournalCoupon=_modelModel.StoreJournalCoupon;StoreJournal=_modelModel.StoreJournal},function(_servicesEntityService){EntityService=_servicesEntityService.default}],execute:function(){_export("default",StoreOrderPage=class StoreOrderPage extends ContentPage{constructor(){super(...arguments);this.model=null;this.newCoupon=StoreJournalCoupon.create({})}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null));const order=this.model=yield this.load();this.newCoupon.orderID=order.journalID;(_a=order.paymentAttempts)!==null&&_a!==void 0?_a:order.paymentAttempts=[];(_b=order.orderCoupons)!==null&&_b!==void 0?_b:order.orderCoupons=[];order.paymentAttempts=order.paymentAttempts.orderByDescending((x=>x.success));this.renderer=XNode.create("div",null,XNode.create("table",null,XNode.create("tr",null,XNode.create("td",null,"OrderID"),XNode.create("td",null,order.journalID)),XNode.create("tr",null,XNode.create("td",null,"Created At"),XNode.create("td",null,DateFormats.withWeekDayAndTime(order.dateCreated))),XNode.create("tr",null,XNode.create("td",null,"Updated At"),XNode.create("td",null,DateFormats.withWeekDayAndTime(order.dateUpdated)))),XNode.create("table",{"style-width":"300px"},XNode.create("thead",null,XNode.create("th",null,"Item"),XNode.create("th",null,"Qty"),XNode.create("th",null,"Amount"),XNode.create("th",null,"Taxes")),XNode.create("tbody",null,...order.lineItems.map((item=>{var _a;return XNode.create("tr",null,XNode.create("td",null,item.item.name),XNode.create("td",null,item.quantity),XNode.create("td",null,item.amount),XNode.create("td",null,(_a=item.taxes)!==null&&_a!==void 0?_a:"0"))})))),XNode.create("table",null,XNode.create("tr",null,XNode.create("td",null,"Total"),XNode.create("td",null,order.total))),XNode.create("br",null),XNode.create("div",null,XNode.create(AtomRepeater,{for:"table",header:true,headerRenderer:x=>XNode.create("thead",null,XNode.create("th",null,"Coupons")),itemRenderer:x=>XNode.create("tbody",null,XNode.create("tr",null,XNode.create("td",{colSpan:2},XNode.create("label",{text:x.couponCode}),XNode.create("i",{"data-click-event":"delete-coupon",class:"fas fa-times-circle"})))),items:this.model.orderCoupons,footer:Bind.oneWay((()=>this.newCoupon)),footerRenderer:()=>XNode.create("tfoot",null,XNode.create("th",null,XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.newCoupon.couponCode))})),XNode.create("th",null,XNode.create(AddIconTextButton,{"data-click-event":"add-coupon"})))})),XNode.create("br",null),order.status!=="paid"&&XNode.create("div",null,XNode.create(AddIconTextButton,{href:`/store/checkout/${order.journalID}`,text:"Checkout"})),XNode.create("table",null,XNode.create("thead",null,XNode.create("caption",null,"Payments")),...order.paymentAttempts.map((a=>XNode.create("tr",null,XNode.create("td",null,DateFormats.relative.short(a.dateCreated)),XNode.create("td",null,a.success?"Paid":"-"))))))}))}load(){return __awaiter(this,void 0,void 0,(function*(){const orderID=this.parameters.journalID;const order=yield this.entityService.query(StoreJournal).where({orderID},(p=>x=>x.journalID===p.orderID)).include((x=>[x.paymentAttempts,x.buyer,x.buyerBillingAddress,x.orderCoupons,x.lineItems.forEach((l=>[l.itemPrice,l.item]))])).firstOrDefault();return order}))}addCoupon(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const coupon=Object.assign({},this.newCoupon);((_a=(_b=this.model).orderCoupons)!==null&&_a!==void 0?_a:_b.orderCoupons=[]).add(coupon);try{this.model.dateUpdated=DateTime.now;yield this.entityService.save(this.model,(c=>c.include((x=>x.orderCoupons))))}catch(error){this.model.orderCoupons.remove(coupon);throw error}location.reload()}))}deleteCoupon(coupon){return __awaiter(this,void 0,void 0,(function*(){coupon.$deleted=true;this.model.dateUpdated=DateTime.now;yield this.entityService.save(this.model,(c=>c.include((x=>x.orderCoupons))));this.model.orderCoupons.remove(coupon)}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreOrderPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"add-coupon"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],StoreOrderPage.prototype,"addCoupon",null);__decorate([Action({onEvent:"delete-coupon",confirm:"Are you sure you want to delete this coupon?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],StoreOrderPage.prototype,"deleteCoupon",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/buy/StoreBuyPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","../../../../common/controls/Loader","../../../user/WebSiteUserService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,InjectProperty,Loader,WebSiteUserService,StoreBuyPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_userWebSiteUserService){WebSiteUserService=_userWebSiteUserService.default}],execute:function(){_export("default",StoreBuyPage=class StoreBuyPage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null),";");yield this.us.getUser();location.reload()}))}});__decorate([InjectProperty,__metadata("design:type",WebSiteUserService)],StoreBuyPage.prototype,"us",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ZoomView");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","./styles/zoom-view.global.less"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomControl,ZoomView,center,distance,findLargestDistance;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_stylesZoomViewGlobalLess){}],execute:function(){center=ev=>{const touch=ev.touches[0];if(touch){return{x:touch.clientX,y:touch.clientY}}return{x:0,y:0}};distance=(first,second)=>Math.hypot(first.pageX-second.pageX,first.pageY-second.pageY);findLargestDistance=touches=>{let pair=null;for(let i=0;i<touches.length;i++){const t1=touches[i];for(let j=i+1;j<touches.length;j++){const t2=touches[j];const distance=Math.hypot(t1.pageX-t2.pageX,t1.pageY-t2.pageY);if(pair===null){pair={t1,t2,distance};continue}if(pair.distance<distance){pair={t1,t2,distance}}}}return pair};_export("default",ZoomView=class ZoomView extends AtomControl{preCreate(){this.element.title="Use mouse wheel to zoom";this.loading=false;this.zoom={scale:0,anchorX:0,anchorY:0,x:0,y:0};this.element.setAttribute("data-zoom-view","zoom-view");this.element.draggable=false;this.render(XNode.create("div",null,XNode.create("div",{class:"scroll"},XNode.create("img",{class:"image-container",src:Bind.oneWay((()=>this.getSource(this.source))),"style-opacity":Bind.oneWay((()=>this.loading?"0.3":"1")),"event-load":()=>{this.loading=false;this.updateZoom(this.zoom)}})),XNode.create("i",{class:Bind.oneWay((()=>this.loading?"spinner fa-duotone fa-spinner fa-spin":"hide"))}),XNode.create("i",{"event-click":()=>this.updateZoom(),class:Bind.oneWay((()=>this.zoom.scale?"scale":"hide")),title:"Display entire image"})));this.scrollDiv=this.element.firstElementChild;this.imageContainer=this.scrollDiv.firstElementChild;this.image=this.imageContainer;const scrollView=this.element;let previous;let touchMoveDisposable;let touchEndDisposable;this.bindEvent(scrollView,"touchstart",(evs=>{previous=center(evs);let previousDistance=undefined;touchMoveDisposable!==null&&touchMoveDisposable!==void 0?touchMoveDisposable:touchMoveDisposable=this.bindEvent(scrollView,"touchmove",(ev=>{let{x,y,anchorX,anchorY,scale}=this.zoom;if(ev.touches.length>1){ev.preventDefault();ev.stopImmediatePropagation();const rect=this.element.getBoundingClientRect();const ld=findLargestDistance(ev.touches);const first=ld.t1;const second=ld.t2;const newScale=ld.distance;if(previousDistance===void 0){previousDistance=newScale;return}if(previousDistance===newScale){return}anchorX=(first.clientX+second.clientX)/2-rect.left;anchorY=(first.clientY+second.clientY)/2-rect.top;scale+=newScale-previousDistance;previousDistance=newScale;this.updateZoom({anchorX,anchorY,x,y,scale});return}}));touchEndDisposable!==null&&touchEndDisposable!==void 0?touchEndDisposable:touchEndDisposable=this.bindEvent(scrollView,"touchend",(ev=>{touchMoveDisposable===null||touchMoveDisposable===void 0?void 0:touchMoveDisposable.dispose();touchEndDisposable===null||touchEndDisposable===void 0?void 0:touchEndDisposable.dispose();touchMoveDisposable=undefined;touchEndDisposable=undefined;previousDistance=undefined}))}));let mouseMoveDisposable;let mouseUpDisposable;this.bindEvent(scrollView,"dragstart",(ev=>{ev.preventDefault();ev.stopImmediatePropagation()}));this.bindEvent(scrollView,"mousedown",(ev=>{this.element.dataset.state="grabbing";previous={x:ev.clientX,y:ev.clientY};mouseMoveDisposable!==null&&mouseMoveDisposable!==void 0?mouseMoveDisposable:mouseMoveDisposable=this.bindEvent(scrollView,"mousemove",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);const cp={x:e.clientX,y:e.clientY};const diffX=previous.x-cp.x;const diffY=previous.y-cp.y;previous=cp;this.scrollDiv.scrollBy(diffX,diffY)}));mouseUpDisposable!==null&&mouseUpDisposable!==void 0?mouseUpDisposable:mouseUpDisposable=this.bindEvent(scrollView,"mouseup",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);this.element.dataset.state="";previous=null;mouseMoveDisposable.dispose();mouseUpDisposable.dispose();mouseMoveDisposable=undefined;mouseUpDisposable=undefined}))}));this.bindEvent(scrollView,"wheel",(ev=>{var _a;ev.preventDefault();(_a=ev.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(ev);const newScale=this.zoom.scale-(ev.deltaY<0?-50:50);const anchorX=ev.offsetX;const anchorY=ev.offsetY;const{x,y}=this.zoom;this.updateZoom({anchorX,anchorY,x,y,scale:newScale<0?0:newScale})}),undefined,{passive:false})}getSource(text){if(text){this.loading=true}return text}updateZoom(zoom={x:0,y:0,anchorX:0,anchorY:0,scale:0}){const{anchorX,anchorY,x,y}=zoom;let{scale}=zoom;this.zoom=zoom;const image=this.image;if(!image.naturalHeight){return}const maxHeight=this.element.clientWidth>this.element.clientHeight;const s=maxHeight?this.element.clientWidth/image.naturalWidth:this.element.clientHeight/image.naturalHeight;if(scale<=0){scale=0}const{clientWidth,clientHeight}=this.element;if(scale<=0){this.element.scrollTo(0,0);this.imageContainer.style.transform=``;return}const scaleFactor=(clientWidth+scale)/clientWidth;this.imageContainer.style.transformOrigin=`${anchorX}px ${anchorY}px`;this.imageContainer.style.transform=`scale(${scaleFactor})`;const e=this.imageContainer.getBoundingClientRect();const left=-e.left;const top=-e.top;this.imageContainer.style.transformOrigin="0 0";const de=this.imageContainer.getBoundingClientRect();this.scrollDiv.scrollTo({left:left+de.left,top:top+de.top,behavior:"instant"})}});__decorate([BindableProperty,__metadata("design:type",Object)],ZoomView.prototype,"zoom",void 0);__decorate([BindableProperty,__metadata("design:type",String)],ZoomView.prototype,"source",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],ZoomView.prototype,"loading",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/currency");System.register([],(function(_export,_context){"use strict";var CurrencySymbols;function formatCurrency(n,currency){if(n===void 0||n===null){return""}n=Number(n);return n.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0,style:"currency",currency})}function formatPrice(n){if(!n){return"Ask"}return formatCurrency(Number(n.amount)+Number(n.taxAmount),n.currency||"INR")}_export({formatCurrency,formatPrice});return{setters:[],execute:function(){_export("CurrencySymbols",CurrencySymbols={USD:"$",EUR:"€",CRC:"₡",GBP:"£",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",NGN:"₦",PHP:"₱",PLN:"zł",PYG:"₲",THB:"฿",UAH:"₴",VND:"₫"})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/fileUrl");System.register(["./apiPath"],(function(_export,_context){"use strict";var apiPath,viewFileUrl,fileUrl,imageUrl,srcSetUrl,signedImageUrl,signedUrl,storeFileUrl;return{setters:[function(_apiPath){apiPath=_apiPath.apiPath}],execute:function(){_export("viewFileUrl",viewFileUrl=(site,file)=>apiPath(`/api/site/asset/view/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${file.name}`));_export("fileUrl",fileUrl=(file,{action="download",args=void 0,fileName="",ext=""}={})=>{let name=encodeURIComponent(file.name);if(args){if(Array.isArray(args)){args=args.join(",")}ext="."+args+ext;action=action+"("+args+")"}if(ext){fileName=name+ext}if(fileName){name+="/"+fileName}const{emailID,appFileID,fileContentID}=file;if(emailID){return apiPath(`/api/emails/attachment/${action}/${emailID}/${appFileID}/${name}/`)}return apiPath(`/api/files/${action}/${appFileID}/${fileContentID}/${name}`)});fileUrl.webp=(file,size=300)=>fileUrl(file,{action:"webp",args:size,ext:".webp"});fileUrl.webm=file=>fileUrl(file,{action:"webm",ext:".webm"});fileUrl.pdf=file=>fileUrl(file,{action:"pdf",ext:".pdf"});fileUrl.html=file=>fileUrl(file,{action:"html",ext:".html"});_export("imageUrl",imageUrl=(site,file,size)=>{const name=encodeURIComponent(file.name);if(!size){return apiPath(`/api/site/asset/webp/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.webp`)}return apiPath(`/api/site/asset/webp(${size})/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.${size}.webp`)});_export("srcSetUrl",srcSetUrl=(site,file,imgUrlFunc=imageUrl)=>{const small=imgUrlFunc(site,file,480)+" 640w";const medium=imgUrlFunc(site,file,720)+" 1024w";const large=imgUrlFunc(site,file)+" 1256w";return`${small},${medium},${large}`});_export("signedImageUrl",signedImageUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0},size)=>apiPath(`/api/signed/webp(${size})/${appFileID}/${fileContentID}/${signed}/file.${size}.webp`));_export("signedUrl",signedUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0})=>apiPath(`/api/signed/download/${appFileID}/${fileContentID}/${signed}/file.dat`));_export("storeFileUrl",storeFileUrl=(rootFolderID,file,type="download",name=file.name)=>apiPath(`/api/store/file/${type}/${rootFolderID}/${file.appFileID}/${file.fileContentID}/${name}`))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/toBase36");System.register([],(function(_export,_context){"use strict";var Base36,toBase36,parseBigInt;_export("Base36",void 0);return{setters:[],execute:function(){_export("toBase36",toBase36=n=>BigInt(n).toString(36));parseBigInt=(numberString,throwOnFail=true)=>{if(!numberString){return}if(numberString.startsWith("$")){return}const keySpace="0123456789abcdefghijklmnopqrstuvwxyz";let result=BigInt(0);const keySpaceLength=BigInt(keySpace.length);for(const iterator of numberString){const value=keySpace.indexOf(iterator);if(value===-1){if(throwOnFail){throw new Error("invalid string")}return}result=result*keySpaceLength+BigInt(value)}return result};_export("Base36",Base36=class Base36{static encode(n){return BigInt(n).toString(36)}static decode(n,throwOnFail=true){var _a;return(_a=parseBigInt(n,throwOnFail))===null||_a===void 0?void 0:_a.toString()}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Slugger");System.register(["./toBase36"],(function(_export,_context){"use strict";var Base36,Slugger;return{setters:[function(_toBase){Base36=_toBase.Base36}],execute:function(){_export("Slugger",Slugger={slug(emailID,subject){const eid=Base36.encode(emailID);const suffix=`-${eid}`;const prefix=(subject||"").replace(/[^\p{L}\d]+/gimu,"-").trim();let slug="";const length=prefix.length+suffix.length;if(length>440){slug=prefix.substring(0,length-440)+suffix}else{slug=prefix+suffix}return slug.toLowerCase()}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/TestMode");System.register([],(function(_export,_context){"use strict";var AppLocation;return{setters:[],execute:function(){_export("AppLocation",AppLocation={isLocalTesting:/^\d+\.\d+\.\d+\.\d+$/.test(location.hostname)})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/StoreUrlService");System.register(["../../common/Slugger","../../common/TestMode","../../common/toBase36"],(function(_export,_context){"use strict";var Slugger,AppLocation,toBase36,StoreUrlService,old,cache;return{setters:[function(_commonSlugger){Slugger=_commonSlugger.Slugger},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation},function(_commonToBase){toBase36=_commonToBase.toBase36}],execute:function(){_export("StoreUrlService",StoreUrlService={productUrl(p){var _a,_b;const name=encodeURIComponent(Slugger.slug((_a=p.variantForID)!==null&&_a!==void 0?_a:p.storeItemID,p.name));const productID=toBase36((_b=p.variantForID)!==null&&_b!==void 0?_b:p.storeItemID);if(AppLocation.isLocalTesting){return`?detail=store/${productID}/${name}`}return`/store/${productID}/${name}`},assetUrl(item,file){return`/social-mail/sd/view/${item.publicFolderID}/${file.appFileID}/${file.appFile.name}`},assetImageUrl(item,file,size=350){return`/social-mail/sd/webp(${size})/${item.publicFolderID}/${file.appFileID}/${file.appFile.name}/${file.appFile.name}.${size}.webp`},getParameters(){var _a,_b;const url=(_a=window.pageUrl)!==null&&_a!==void 0?_a:new URL(location.href);let pathname=url===null||url===void 0?void 0:url.pathname;const detail=url.searchParams.get("detail");if(detail){pathname="/"+detail}const{1:root,2:route,3:p1,4:p2}=(_b=/^\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\/?/.exec(pathname))!==null&&_b!==void 0?_b:[];if(root!=="store"){return{}}switch(route){case"login":return{login:{storeID:p1}};case"orders":return{orders:{storeID:p1}};case"orders":return{order:{storeID:p1,orderID:p2}};case"buy":return{buy:{productID:p1,currency:p2||"INR"}};case"checkout":return{checkout:{orderID:p1}}}return{detail:{storeID:route,productID:p1,currency:p2||"INR"}}}});old=StoreUrlService.getParameters;cache=void 0;StoreUrlService.getParameters=(...a)=>cache!==null&&cache!==void 0?cache:cache=old.apply(StoreUrlService,a)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/detail/StoreProductDetailPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/ToggleButtonBar","@web-atoms/web-controls/dist/basic/ZoomView","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../common/currency","../../../../common/fileUrl","../../../../model/model","../../../../services/EntityService","../../../user/WebSiteUserService","../../StoreUrlService","./StoreProductDetailPage.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,FetchBuilder,Action,AtomRepeater,ToggleButtonBar,ZoomView,ContentPage,formatPrice,signedUrl,StoreItem,EntityService,WebSiteUserService,StoreUrlService,StoreProductDetailPage,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicToggleButtonBar){ToggleButtonBar=_webAtomsWebControlsDistBasicToggleButtonBar.default},function(_webAtomsWebControlsDistBasicZoomView){ZoomView=_webAtomsWebControlsDistBasicZoomView.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_commonCurrency){formatPrice=_commonCurrency.formatPrice},function(_commonFileUrl){signedUrl=_commonFileUrl.signedUrl},function(_modelModel){StoreItem=_modelModel.StoreItem},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_userWebSiteUserService){WebSiteUserService=_userWebSiteUserService.default},function(_StoreUrlService){StoreUrlService=_StoreUrlService.StoreUrlService},function(_StoreProductDetailPageLocalLess){}],execute:function(){css="store-product-detail-page";_export("default",StoreProductDetailPage=class StoreProductDetailPage extends ContentPage{constructor(app,e){super(app,e);this.selectedVariant=null;this.selectedSize=null;this.selectedFile=null;this.images=[];this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}getFiles(item,variant,size){var _a,_b,_c;const variantFiles=(_a=variant===null||variant===void 0?void 0:variant.mediaFiles)===null||_a===void 0?void 0:_a.filter((x=>x.isPreview));const files=(_c=variantFiles!==null&&variantFiles!==void 0?variantFiles:(_b=item.mediaFiles)===null||_b===void 0?void 0:_b.filter((x=>x.isPreview)))!==null&&_c!==void 0?_c:[];if(size===null||size===void 0?void 0:size.mediaFiles){files.push(...size.mediaFiles.filter((x=>x.isPreview)))}this.selectedFile=files[0];return files}init(){var _a,_b,_c,_d,_e,_f,_g,_h,_j;return __awaiter(this,void 0,void 0,(function*(){this.itemID=this.parameters.storeItemID;this.renderer=XNode.create("div",null,XNode.create("label",{text:"..."}));this.model=yield this.getItem();const offer=(_a=this.model.mediaFiles)===null||_a===void 0?void 0:_a.find((x=>x.title==="offer.html"));const specifications=(_b=this.model.mediaFiles)===null||_b===void 0?void 0:_b.find((x=>x.title==="specs.html"));const price=(_c=this.model.storeItemPrices)===null||_c===void 0?void 0:_c[0];const[offerHtml,specHtml]=yield Promise.all([offer?FetchBuilder.get(signedUrl(offer)).asText():Promise.resolve(""),specifications?FetchBuilder.get(signedUrl(specifications)).asText():Promise.resolve("")]);this.selectedSize=(_e=(_d=this.model.sizes)===null||_d===void 0?void 0:_d[0])!==null&&_e!==void 0?_e:null;this.selectedVariant=(_g=(_f=this.model.variants)===null||_f===void 0?void 0:_f[0])!==null&&_g!==void 0?_g:null;this.renderer=XNode.create("div",{class:css,images:Bind.oneWay((()=>this.getFiles(this.model,this.selectedVariant,this.selectedSize)))},XNode.create("h2",{class:"title"},this.model.name),XNode.create("section",{class:"product"},XNode.create("section",{class:"photos"},XNode.create(AtomRepeater,{selectOnClick:true,items:Bind.oneWay((()=>this.images)),selectedItem:Bind.twoWaysImmediate((()=>this.selectedFile)),itemRenderer:x=>XNode.create("img",{class:"thumbnail","data-click-event":"change-image","data-id":x.appFileID,src:StoreUrlService.assetImageUrl(this.model,x,150)}),class:"thumbnails"}),XNode.create(ZoomView,{class:"preview",source:Bind.oneWay((()=>StoreUrlService.assetImageUrl(this.model,this.selectedFile,720)))})),XNode.create("section",{class:"offers","data-layout":"vertical-flex"},offerHtml&&XNode.create("section",{innerHTML:offerHtml}),XNode.create("p",null,this.model.description),XNode.create("p",{class:"price"},XNode.create("label",{text:formatPrice(price)})),XNode.create("button",{"data-click-event":"buy-now",class:"buy"},"Buy"),((_h=this.model.sizes)===null||_h===void 0?void 0:_h.length)&&XNode.create(ToggleButtonBar,{items:this.model.sizes,selectedItem:Bind.twoWaysImmediate((()=>this.selectedSize)),itemRenderer:x=>XNode.create("div",{"data-item-type":"toggle-button"},XNode.create("span",{text:x.name}))}),((_j=this.model.variants)===null||_j===void 0?void 0:_j.length)&&XNode.create(ToggleButtonBar,{items:this.model.variants,selectedItem:Bind.twoWaysImmediate((()=>this.selectedVariant)),itemRenderer:x=>XNode.create("div",{"data-item-type":"toggle-button"},XNode.create("span",{text:x.name}))}))),XNode.create("section",{"data-flex":"stretch-full"},XNode.create("section",{innerHTML:specHtml})))}))}changeImage({id}){this.selectedFile=this.model.mediaFiles.find((x=>x.appFileID===id))}buyNow(){return __awaiter(this,void 0,void 0,(function*(){const userService=this.resolve(WebSiteUserService);const user=yield userService.getUser();location.href="/store/buy/"+this.model.storeItemID}))}getItem(){return __awaiter(this,void 0,void 0,(function*(){const itemID=this.itemID;return this.entityService.query(StoreItem,"storeQuery").where({itemID},(p=>x=>x.storeItemID===p.itemID)).include((x=>[x.storeItemPrices,x.storeItemTags.forEach((t=>t.tag)),x.variants.forEach((t=>[t.mediaFiles,t.storeItemPrices])),x.sizes.forEach((t=>[t.mediaFiles,t.storeItemPrices])),x.mediaFiles.forEach((t=>t.appFile))])).firstOrDefault()}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreProductDetailPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"change-image"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],StoreProductDetailPage.prototype,"changeImage",null);__decorate([Action({onEvent:"buy-now"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],StoreProductDetailPage.prototype,"buyNow",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");System.register([],(function(_export,_context){"use strict";var CacheTTL;return{setters:[],execute:function(){_export("CacheTTL",CacheTTL={seconds:{oneHour:60*60,oneDay:60*60*24,oneMonth:60*60*24*30,fifteenMinutes:15*60}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/list/StoreProductListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../common/controls/repeater/InfiniteRepeater","../../../../common/currency","../../../../common/Sql","../../../../model/model","../../../../services/EntityService","../../commands/StoreCommands","../../StoreUrlService","../../../../common/cache/CacheTTL","../../../../common/Slugger","./StoreProductList.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,Action,AtomRepeater,ContentPage,InfiniteRepeater,formatPrice,Sql,StoreTag,StoreMediaFile,StoreItem,EntityService,StoreCommands,StoreUrlService,CacheTTL,Slugger,StoreProductListPage,cacheSeconds,cacheVersion;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_commonCurrency){formatPrice=_commonCurrency.formatPrice},function(_commonSql){Sql=_commonSql.Sql},function(_modelModel){StoreTag=_modelModel.StoreTag;StoreMediaFile=_modelModel.StoreMediaFile;StoreItem=_modelModel.StoreItem},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_StoreUrlService){StoreUrlService=_StoreUrlService.StoreUrlService},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_commonSlugger){Slugger=_commonSlugger.Slugger},function(_StoreProductListLocalLess){}],execute:function(){cacheSeconds=CacheTTL.seconds.fifteenMinutes;cacheVersion="v1";_export("default",StoreProductListPage=class StoreProductListPage extends ContentPage{constructor(app,e){super(app,e);this.search="";this.items=[];this.tags=[];this.version=0;this.element.setAttribute("data-shopping-cart-list","shopping-cart-list")}init(){return __awaiter(this,void 0,void 0,(function*(){this.render(XNode.create("div",{"data-shopping-cart-list":"shopping-cart-list"},XNode.create("header",null,XNode.create(AtomRepeater,{class:"search-tags",items:this.tags,itemRenderer:x=>XNode.create("div",{"data-layout":"row"}," ",XNode.create("label",{text:`${x.tag.label} (${x.count})`})," ",XNode.create("i",{"data-click-event":"remove-tag",class:"fas fa-times-circle"})," ")}),XNode.create("input",{type:"search",class:"search",value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create(AtomRepeater,{class:"tags",items:Bind.oneWayAsync(((c,e,cancelToken)=>this.searchTags(this.search,cancelToken,this.version)),{default:[]}),itemRenderer:x=>XNode.create("label",{text:`${x.tag.label} (${x.count})`}),"data-click-event":"select-tag"})),XNode.create(AtomRepeater,Object.assign({for:"section",items:this.items},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.searchItems({start,search:this.search,version:this.version,cancelToken}))),{itemRenderer:item=>{var _a,_b,_c,_d,_e,_f,_g,_h,_j;const name=item.name||((_a=item.variantFor)===null||_a===void 0?void 0:_a.name)||item.name;const storeItemID=((_b=item.variantFor)===null||_b===void 0?void 0:_b.storeItemID)||item.storeItemID;const slug=Slugger.slug(item.storeItemID,name);const href=StoreCommands.productDetail.displayRoute({storeItemID,name:slug});return XNode.create("div",{class:"store-item"},XNode.create("a",{class:"name",title:name,text:name,href}),XNode.create("label",{class:"description",title:item.description||((_c=item.variantFor)===null||_c===void 0?void 0:_c.description)||item.description,text:item.description||((_d=item.variantFor)===null||_d===void 0?void 0:_d.description)||item.description}),XNode.create("img",{src:Bind.oneTimeAsync((()=>this.downloadImage(item)))}),XNode.create("a",{title:item.name||((_e=item.variantFor)===null||_e===void 0?void 0:_e.name)||item.name,href},XNode.create("button",{class:"buy",text:"Buy"})),XNode.create("div",{class:"price"},XNode.create("label",{text:formatPrice((_g=(_f=item.storeItemPrices)===null||_f===void 0?void 0:_f[0])!==null&&_g!==void 0?_g:(_j=(_h=item.variantFor)===null||_h===void 0?void 0:_h.storeItemPrices)===null||_j===void 0?void 0:_j[0])})))}})),XNode.create("footer",null)))}))}removeTag(tag){this.tags.remove(tag);this.version++}selectTag(tag){if(this.tags.find((t=>t.tagID===tag.tagID))){return}this.tags.add(tag);this.version++}searchTags(search,cancelToken,v){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(StoreTag,"storeQuery");if(search){search=search.trim().toLocaleLowerCase()+"%";q=q.where({search},(p=>x=>(Sql.text.like(x.tag.lowerCaseName,p.search)||Sql.text.like(x.tag.parent.lowerCaseName,p.search))&&x.count>0))}if(this.tags.length){const ids=this.tags.map((t=>t.tagID));q=q.where({ids},(p=>x=>!Sql.in(x.tagID,p.ids)))}const tags=yield q.orderByDescending((x=>x.count)).include((x=>x.tag)).toPagedList({size:10,cancelToken});return tags.items}))}downloadImage(item){return __awaiter(this,void 0,void 0,(function*(){const{publicFolderID,storeItemID}=item;const file=yield this.entityService.query(StoreMediaFile,"siteQuery",publicFolderID).where({storeItemID},(p=>x=>x.storeItemID===p.storeItemID&&x.isPreview===true)).include((x=>x.appFile)).orderBy((x=>x.sortOrder)).firstOrDefault({cacheVersion,cacheSeconds});if(!file){return}return StoreUrlService.assetImageUrl(item,file,350)}))}searchItems({start,search="",size=50,version=0,cancelToken}){var _a;return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(StoreItem,"storeQuery").where((x=>x.itemType in["product","service","resource","variant","e-product"]&&x.sizeForID===null));if(search){search=search+"%";const lowerSearch=search.trim().toLocaleLowerCase();q=q.where({search,lowerSearch},(p=>x=>Sql.text.iLike(x.name,p.search)||Sql.text.iLike(x.description,p.search)||x.sizes.some((s=>Sql.text.iLike(s.name,p.search)||Sql.text.iLike(s.description,p.search)))||x.variants.some((s=>Sql.text.iLike(s.name,p.search)||Sql.text.iLike(s.description,p.search)))||x.storeItemTags.some((t=>Sql.text.like(t.tag.lowerCaseName,p.lowerSearch)||Sql.text.like(t.tag.parent.lowerCaseName,p.lowerSearch)))))}if(this.tags.length){const ids=this.tags.map((t=>t.tagID));q=q.where({ids},(p=>x=>x.storeItemTags.some((st=>Sql.in(st.tagID,p.ids)))))}const items=yield q.orderByDescending((x=>x.storeItemID)).include((x=>[x.storeItemPrices,x.storeItemTags.forEach((t=>t.tag)),x.variantFor])).toPagedList({start,size,cancelToken});const tasks=[];for(const item of items.items){(_a=item.storeItemTags)===null||_a===void 0?void 0:_a.sort(((a,b)=>a.sortOrder-b.sortOrder))}return items}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreProductListPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"remove-tag"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],StoreProductListPage.prototype,"removeTag",null);__decorate([Action({onEvent:"select-tag"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],StoreProductListPage.prototype,"selectTag",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/commands/StoreCommands");System.register(["@web-atoms/core/dist/core/Command"],(function(_export,_context){"use strict";var Command,Commands,StoreCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default;Commands=_webAtomsCoreDistCoreCommand.Commands}],execute:function(){_export("default",StoreCommands=class StoreCommands extends Commands{});StoreCommands.orders=Command.create({route:"/store/orders",routeOrder:10,openPage:()=>_context.import("../pages/orders/StoreOrdersPage")});StoreCommands.order=Command.create({route:"/store/order/{journalID}",routeOrder:10,openPage:()=>_context.import("../pages/order/StoreOrderPage")});StoreCommands.buy=Command.create({route:"/store/buy/{productID}",routeOrder:10,openPage:()=>_context.import("../pages/buy/StoreBuyPage")});StoreCommands.productDetail=Command.create({route:"/store/{storeItemID}/{*name}",routeOrder:100,openPage:()=>_context.import("../pages/detail/StoreProductDetailPage")});StoreCommands.productList=Command.create({route:"/store",routeOrder:1e3,openPage:()=>_context.import("../pages/list/StoreProductListPage")})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/NotificationPopup");System.register(["../../core/XNode","./PopupService","./NotifcationPopup.global.less"],(function(_export,_context){"use strict";var XNode,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow},function(_NotifcationPopupGlobalLess){}],execute:function(){css="web-atoms-notification-popup"}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WindowService");System.register(["tslib","../../App","../../Atom","../../core/AtomLoader","../../core/AtomUri","../../core/FormattedError","../../core/FormattedString","../../core/types","../../di/Inject","../../di/RegisterSingleton","../../di/ServiceCollection","../../services/JsonService","../../services/NavigationService","../../view-model/AtomWindowViewModel","../../web/core/AtomUI","../controls/AtomAlertWindow","../controls/AtomNotification","../controls/AtomWindow","../styles/AtomPopupStyle","../styles/AtomStyleSheet","../styles/StyleBuilder","./NotificationPopup","./PopupService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomLoader,AtomUri,FormattedError,FormattedString,CancelToken,Inject,RegisterSingleton,Scope,ServiceCollection,JsonService,NavigationService,AtomWindowViewModel,AtomUI,AtomAlertWindow,AtomNotification,AtomWindow,AtomPopupStyle,AtomStyleSheet,cssNumberToString,NotificationPopup,PopupService,WindowService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomLoader){AtomLoader=_coreAtomLoader.AtomLoader},function(_coreAtomUri){AtomUri=_coreAtomUri.AtomUri},function(_coreFormattedError){FormattedError=_coreFormattedError.default},function(_coreFormattedString){FormattedString=_coreFormattedString.default},function(_coreTypes){CancelToken=_coreTypes.CancelToken},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_diServiceCollection){Scope=_diServiceCollection.Scope;ServiceCollection=_diServiceCollection.ServiceCollection},function(_servicesJsonService){JsonService=_servicesJsonService.JsonService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_webCoreAtomUI){AtomUI=_webCoreAtomUI.AtomUI},function(_controlsAtomAlertWindow){AtomAlertWindow=_controlsAtomAlertWindow.default},function(_controlsAtomNotification){AtomNotification=_controlsAtomNotification.default},function(_controlsAtomWindow){AtomWindow=_controlsAtomWindow.AtomWindow},function(_stylesAtomPopupStyle){AtomPopupStyle=_stylesAtomPopupStyle.AtomPopupStyle},function(_stylesAtomStyleSheet){AtomStyleSheet=_stylesAtomStyleSheet.AtomStyleSheet},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString},function(_NotificationPopup){NotificationPopup=_NotificationPopup.default},function(_PopupService){PopupService=_PopupService.default}],execute:function(){_export("WindowService",WindowService=class WindowService extends NavigationService{get title(){return window.document.title}set title(v){window.document.title=v}get location(){return new AtomUri(location.href)}set location(v){location.href=v.toString()}constructor(app,jsonService){super(app);this.jsonService=jsonService;this.popups=[];this.hostForElementFunc=[];this.lastPopupID=0;this.screen=app.screen;let st="desktop";if(/mobile|android|ios/i.test(window.navigator.userAgent)){st="mobile";if(/tablet/i.test(window.navigator.userAgent)){st="tablet"}}this.screen.screenType=st;if(window){const update=e=>{this.refreshScreen()};if(st!=="mobile"){window.addEventListener("resize",update);window.addEventListener("scroll",update);document.body.addEventListener("scroll",update);document.body.addEventListener("resize",update)}setTimeout((()=>{update(null)}),1e3)}}registerHostForWindow(f){this.hostForElementFunc.push(f);return{dispose:()=>{this.hostForElementFunc.remove(f)}}}navigate(url){location.href=url}back(){window.history.back()}register(id,type){ServiceCollection.instance.register(type,null,Scope.Transient,id)}confirm(message,title){return PopupService.confirm({message,title})}alert(message,title){if(!(message instanceof FormattedString||typeof message==="string")){if(message instanceof FormattedError){message=message.formattedMessage}else{message=message.message?message.message:message.toString()}}return PopupService.alert({message,title})}refresh(){location.reload()}getHostForElement(){const ce=PopupService.lastTarget;if(!ce){return null}for(const iterator of this.hostForElementFunc){const e=iterator(ce);if(e){return e}}return null}refreshScreen(){const height=this.screen.height=window.innerHeight||document.body.clientHeight;const width=this.screen.width=window.innerWidth||document.body.clientWidth;this.screen.scrollLeft=window.scrollX||document.body.scrollLeft||0;this.screen.scrollTop=window.scrollY||document.body.scrollTop||0;this.screen.orientation=width>height?"landscape":"portrait"}notify(message,title,type,delay){return __awaiter(this,void 0,void 0,(function*(){try{const notification=NotificationPopup({message,type});const cancelToken=new CancelToken(delay!==null&&delay!==void 0?delay:5e3);yield notification.showWindow(notification,{title,cancelToken})}catch(ex){console.error(ex)}}))}openWindow(url,options){return __awaiter(this,void 0,void 0,(function*(){yield Atom.delay(1);const lastTarget=PopupService.lastTarget;const{view:popup,returnPromise,disposables}=yield AtomLoader.loadView(url,this.app,true,(()=>this.app.resolve(AtomWindowViewModel,true)));if(options&&options.onInit){options.onInit(popup)}const cancelToken=options.cancelToken;if(cancelToken){if(cancelToken.cancelled){this.app.callLater((()=>{this.remove(popup,true)}))}cancelToken.registerForCancel((()=>{this.remove(popup,true)}))}const e=popup.element;let isPopup=true;if(popup instanceof AtomWindow){isPopup=false;e.style.opacity="0"}popup.registerDisposable({dispose:()=>{PopupService.lastTarget=lastTarget}});if(isPopup){const root=popup.element;const last=PopupService.lastTarget;const closePopup=et=>{let target=et.target;while(target){if(target===root||target===last){return}target=target.parentElement}this.remove(popup,true)};document.body.addEventListener("click",closePopup);popup.registerDisposable({dispose:()=>{document.body.removeEventListener("click",closePopup)}})}e._logicalParent=lastTarget;e.sourceUrl=url;const pvm=popup.viewModel;if(pvm){let ce=PopupService.lastTarget;if(ce){while(!ce.atomControl){ce=ce.parentElement;if(!ce){break}}if(ce&&ce.atomControl&&ce.atomControl.viewModel){pvm.parent=ce.atomControl.viewModel}}}const theme=this.app.get(AtomStyleSheet).getNamedStyle(AtomPopupStyle);e.style.zIndex=1e4+this.lastPopupID+"";const isNotification=popup instanceof AtomNotification;if(isPopup){const sr=AtomUI.screenOffset(PopupService.lastTarget);const x=sr.x;const y=sr.y;const h=sr.height;e.style.position="absolute";e.style.left=x+"px";e.style.top=y+h+"px";e.classList.add(theme.name);this.popups.push(popup);disposables.add((()=>{this.popups.remove(popup)}));document.body.appendChild(e);if(isNotification){e.style.opacity="0";this.centerElement(popup)}}else{const eHost=(options===null||options===void 0?void 0:options.modal)?null:this.getHostForElement();if(eHost){eHost.appendChild(e)}else{const host=document.createElement("div");document.body.appendChild(host);host.style.position="absolute";host.appendChild(e);disposables.add({dispose(){host.remove()}});this.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,this.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,this.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,this.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,this.screen)}}popup.bindEvent(document.body,"keyup",(keyboardEvent=>{if(keyboardEvent.key==="Escape"){this.app.runAsync((()=>this.remove(popup)))}}));disposables.add({dispose:()=>{e.innerHTML="";e.remove()}});return yield returnPromise}))}centerElement(c){const e=c.element;const parent=e.parentElement;if(parent===window||parent===document.body){setTimeout((()=>{const ew=(document.body.offsetWidth-e.offsetWidth)/2;const eh=window.scrollY+(window.innerHeight-e.offsetHeight)/2;e.style.left=`${ew}px`;e.style.top=`${eh}px`;e.style.removeProperty("opacity")}),200);return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerElement(c)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerElement(c)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;e.style.left=`${x}px`;e.style.top=`${y}px`;e.style.removeProperty("opacity")}});WindowService.alertWindow=AtomAlertWindow;_export("WindowService",WindowService=__decorate([RegisterSingleton,__param(0,Inject),__param(1,Inject),__metadata("design:paramtypes",[App,JsonService])],WindowService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomTheme");System.register(["tslib","../../App","../../core/Colors","../../di/Inject","../../di/RegisterSingleton","../../services/NavigationService","../styles/AtomStyleSheet"],(function(_export,_context){"use strict";var __decorate,__metadata,__param,App,Colors,Inject,RegisterSingleton,NavigationService,AtomStyleSheet,AtomTheme;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_coreColors){Colors=_coreColors.default},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_stylesAtomStyleSheet){AtomStyleSheet=_stylesAtomStyleSheet.AtomStyleSheet}],execute:function(){_export("AtomTheme",AtomTheme=class AtomTheme extends AtomStyleSheet{constructor(app,navigationService){super(app,"atom-theme");this.navigationService=navigationService;this.bgColor=Colors.white;this.color=Colors.gray;this.hoverColor=Colors.lightGray;this.activeColor=Colors.lightBlue;this.selectedBgColor=Colors.blue;this.selectedColor=Colors.white;this.padding=5;setTimeout((()=>{window.addEventListener("resize",(()=>{setTimeout((()=>{this.pushUpdate()}),10)}));document.body.addEventListener("resize",(()=>{setTimeout((()=>{this.pushUpdate()}),10)}))}),1e3)}});_export("AtomTheme",AtomTheme=__decorate([RegisterSingleton,__param(0,Inject),__param(1,Inject),__metadata("design:paramtypes",[App,NavigationService])],AtomTheme))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/WebApp");System.register(["../App","../core/AtomOnce","../core/AtomUri","../di/ServiceCollection","../services/BusyIndicatorService","../services/NavigationService","./services/WebBusyIndicatorService","./services/WindowService","./styles/AtomStyleSheet","./styles/AtomTheme"],(function(_export,_context){"use strict";var App,AtomOnce,AtomUri,ServiceCollection,BusyIndicatorService,NavigationService,WebBusyIndicatorService,WindowService,AtomStyleSheet,AtomTheme,WebApp;_export("default",void 0);return{setters:[function(_App){App=_App.App},function(_coreAtomOnce){AtomOnce=_coreAtomOnce.AtomOnce},function(_coreAtomUri){AtomUri=_coreAtomUri.AtomUri},function(_diServiceCollection){ServiceCollection=_diServiceCollection.ServiceCollection},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_servicesWebBusyIndicatorService){WebBusyIndicatorService=_servicesWebBusyIndicatorService.WebBusyIndicatorService},function(_servicesWindowService){WindowService=_servicesWindowService.WindowService},function(_stylesAtomStyleSheet){AtomStyleSheet=_stylesAtomStyleSheet.AtomStyleSheet},function(_stylesAtomTheme){AtomTheme=_stylesAtomTheme.AtomTheme}],execute:function(){_export("default",WebApp=class WebApp extends App{get parentElement(){return document.body}get root(){return this.mRoot}set root(v){const old=this.mRoot;if(old){old.dispose()}this.mRoot=v;if(!v){return}const pe=this.parentElement;const de=Array.from(pe.children);for(const iterator of de){iterator.remove()}pe.appendChild(v.element)}get theme(){return this.get(AtomStyleSheet)}set theme(v){this.put(AtomTheme,v);this.put(AtomStyleSheet,v)}get contextId(){var _a;(_a=this.mContextId)!==null&&_a!==void 0?_a:this.mContextId=parseInt((this.url.hash.contextId||"0").toString(),10);if(!this.mContextId){for(let index=0;index<100;index++){const cid=`contextId${index}`;const cidData=sessionStorage.getItem(`contextId${index}`);if(!cidData){this.mContextId=index;sessionStorage.setItem(cid,cid);this.url.hash.contextId=index;this.syncUrl();break}}}return`contextId_${this.mContextId}`}constructor(){super();this.hashUpdater=new AtomOnce;this.url=new AtomUri(location.href);this.put(NavigationService,this.resolve(WindowService));this.put(WebApp,this);this.put(BusyIndicatorService,this.resolve(WebBusyIndicatorService));ServiceCollection.instance.registerSingleton(AtomStyleSheet,(sp=>sp.resolve(AtomTheme)));window.addEventListener("hashchange",(()=>{this.hashUpdater.run((()=>{this.url=new AtomUri(location.href)}))}));this.initPromise=new Promise(((resolve,reject)=>{this.onReady(resolve)}))}updateDefaultStyle(textContent){if(this.styleElement){if(this.styleElement.textContent===textContent){return}}const ss=document.createElement("style");ss.textContent=textContent;if(this.styleElement){this.styleElement.remove()}document.head.appendChild(ss);this.styleElement=ss}syncUrl(){this.hashUpdater.run((()=>{const currentUrl=new AtomUri(location.href);const sourceHash=this.url.hash;const keyValues=[];let modified=false;for(const key in sourceHash){if(/^\_\$\_/.test(key)){continue}if(sourceHash.hasOwnProperty(key)){const element=sourceHash[key];const cv=currentUrl.hash[key];if(element!==undefined){keyValues.push({key,value:element})}if(cv===element){continue}modified=true}}if(!modified){return}const hash=keyValues.map((s=>`${s.key}=${encodeURIComponent(s.value)}`)).join("&");location.hash=hash}))}invokeReady(){if(document.readyState==="complete"){super.invokeReady();return}document.addEventListener("readystatechange",(e=>{super.invokeReady()}))}});(function(){if(typeof window.CustomEvent==="function"){return false}function CustomEvent(event,params){params=params||{bubbles:false,cancelable:false,detail:null};const evt=document.createEvent("CustomEvent");evt.initCustomEvent(event,params.bubbles,params.cancelable,params.detail);return evt}window.CustomEvent=CustomEvent})()}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/StoreApp");System.register(["tslib","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","../../style/GlobalStyle","@web-atoms/core/dist/Pack","@web-atoms/core/dist/core/Command","./commands/StoreCommands","@web-atoms/core/dist/core/Route","../../common/TestMode","@web-atoms/core/dist/web/WebApp","./StoreApp.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,MobileDesktopApp,Pack,Command,StoreCommands,Route,AppLocation,WebApp,StoreApp;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_styleGlobalStyle){},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation},function(_webAtomsCoreDistWebWebApp){WebApp=_webAtomsCoreDistWebWebApp.default},function(_StoreAppLocalLess){}],execute:function(){if(AppLocation.isLocalTesting){WebApp.installStyleSheet("/styles/styler.css");WebApp.installStyleSheet("/styles/vars.css")}StoreApp=class StoreApp extends MobileDesktopApp{init(){return __awaiter(this,void 0,void 0,(function*(){StoreCommands.install(this);this.element.setAttribute("store-app","store-app");if(!Command.invokeRoute()){StoreCommands.productList.dispatch()}}))}};StoreApp=__decorate([Pack],StoreApp);_export("default",StoreApp);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(AppLocation.isLocalTesting){return"#!"+url}return url}}}}));window.installStyleSheet("./StoreApp.pack.global.less.css");window.installStyleSheet("./StoreApp.pack.local.less.css");
35
+ `.installGlobal("qr-code");generateUrl=item=>{const body=item.keyword?`${item.keyword} ${item.code}`:item.code;if(/android/i.test(navigator.userAgent)){return`SMS:${item.phoneNumber}?body=${encodeURIComponent(body)}`}return`SMS:${item.phoneNumber}?&body=${encodeURIComponent(body)}`};_export("default",QRCodeControl=class QRCodeControl extends AtomControl{constructor(app,e=document.createElement("qr-code")){super(app,e);this.smsConfig=null;this.selectedConfig=null;this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}init(){return __awaiter(this,void 0,void 0,(function*(){if(!this.smsConfig){return}if(typeof this.smsConfig==="string"){this.smsConfig=JSON.parse(this.smsConfig)}this.selectedConfig=this.smsConfig.config[0];const isMobile=/ios|iphone|android/i.test(navigator.userAgent);if(isMobile){this.renderer=XNode.create("div",null,XNode.create(AppForm,null,XNode.create("h4",null,"Please verify your phone number"),XNode.create("div",null,"Click on following button, that will open your Messages(SMS/Text) screen with your verification code, please click send on your Messages screen."),XNode.create(FormField,{label:"Country"},XNode.create(DropDown,{itemRenderer:x=>XNode.create("label",{text:x.countryCode}),items:this.smsConfig.config,selectedItem:Bind.twoWaysImmediate((()=>this.selectedConfig))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{href:Bind.oneWay((()=>generateUrl(this.selectedConfig))),target:"_blank",text:"Open Messages"}))));return}this.renderer=XNode.create("div",null,XNode.create(AppForm,null,XNode.create("h4",null,"Please verify your phone number"),XNode.create("div",null,"Scan following QR Code with your phone to open the Messages(SMS/Text) with generated code. And hit the send button."),XNode.create(FormField,{label:"Country"},XNode.create(DropDown,{itemRenderer:x=>XNode.create("label",{text:x.countryCode}),items:this.smsConfig.config,selectedItem:Bind.twoWaysImmediate((()=>this.selectedConfig))})),XNode.create("div",null,XNode.create("img",{class:"qr-code",src:Bind.oneWay((()=>`data:image/svg+xml;base64,${btoa(this.selectedConfig.qrCodeUrl)}`))}))))}))}});__decorate([BindableProperty,__metadata("design:type",Object)],QRCodeControl.prototype,"smsConfig",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/user/pages/signup/SiteSignupPage");System.register(["tslib","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/FormField","@web-atoms/web-controls/dist/basic/Form","@web-atoms/core/dist/core/Bind","../../../../common/controls/phone-editor/PhoneEditor","@web-atoms/core/dist/view-model/Action","../../../../model/model","@web-atoms/core/dist/core/InjectProperty","../../../../services/EntityService","../../../../common/controls/buttons/IconButton","../../../../common/controls/qrcode/QRCode","@web-atoms/core/dist/core/sleep","../../../../common/controls/countries/CountrySelect","@web-atoms/core/dist/services/FetchBuilder","./SiteSignupPage.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,ContentPage,XNode,FormField,Form,Bind,PhoneEditor,Action,StoreAccountAddress,VerificationToken,InjectProperty,EntityService,EmailIconTextButton,QRCodeControl,sleep,CountrySelect,FetchBuilder,SiteSignupPage,pending,done;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsPhoneEditorPhoneEditor){PhoneEditor=_commonControlsPhoneEditorPhoneEditor.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_modelModel){StoreAccountAddress=_modelModel.StoreAccountAddress;VerificationToken=_modelModel.VerificationToken},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_commonControlsButtonsIconButton){EmailIconTextButton=_commonControlsButtonsIconButton.EmailIconTextButton},function(_commonControlsQrcodeQRCode){QRCodeControl=_commonControlsQrcodeQRCode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_commonControlsCountriesCountrySelect){CountrySelect=_commonControlsCountriesCountrySelect.CountrySelect},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_SiteSignupPageLocalLess){}],execute:function(){pending="⬜";done="✅";_export("default",SiteSignupPage=class SiteSignupPage extends ContentPage{constructor(){super(...arguments);this.model={name:"",billingAddress:StoreAccountAddress.create({}),shippingAddress:StoreAccountAddress.create({})};this.step=1}getHeader(){if(this.emailVerified){return XNode.create("div",null,XNode.create("h5",null,"Signup"),XNode.create("ol",null,XNode.create("li",null,"✅ Email Verified"),XNode.create("li",null,this.step>1?done:pending," Add Phone Number"),XNode.create("li",null,this.step>2?done:pending," Confirm Phone Number"),XNode.create("li",null,this.step>3?done:pending," Add Name/Address Details")))}return XNode.create("div",null,XNode.create("h5",null,"Signup"),XNode.create("ol",null,XNode.create("li",null,"✅ Phone Verification"),XNode.create("li",null,this.step>1?done:pending," Add Email Address"),XNode.create("li",null,this.step>2?done:pending," Confirm Email Address"),XNode.create("li",null,this.step>3?done:pending," Name/Address Details")))}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.element.setAttribute("site-signup-page","true");this.model.phone=this.parameters.phone;this.model.email=this.parameters.email;this.model.captcha=this.parameters.captcha;const emailVerified=((_a=this.parameters.email)===null||_a===void 0?void 0:_a.accessCode)&&((_b=this.parameters.email)===null||_b===void 0?void 0:_b.verifyCode);this.emailVerified=emailVerified;if(emailVerified){yield this.askPhoneNumber();return}this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create("div",null,"To complete signup, please verify your email address."),XNode.create(FormField,{label:"Email"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.email.verifyAddresses))})),XNode.create("div",null,XNode.create("button",{"data-submit-event":"request-verification"},"Request Code"))))}))}askPhoneNumber(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create("div",null,"To complete signup, please verify your phone number."),XNode.create(FormField,{label:"Cell Phone"},XNode.create(PhoneEditor,{value:Bind.twoWaysImmediate((()=>this.model.phone.verifyAddresses))})),XNode.create("div",null,XNode.create("button",{"data-submit-event":"request-verification"},"Verify"))))}))}requestVerification(){return __awaiter(this,void 0,void 0,(function*(){this.step=2;const verifyEmail=!this.emailVerified;const v=verifyEmail?this.model.email:this.model.phone;yield this.entityService.save(v);if(!verifyEmail){yield this.displayQRCode(v);return}this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create(FormField,{label:"Email Verification"},XNode.create("div",null,"We have sent you the verification code in your email, please enter it again to complete the verification.")),XNode.create(FormField,{label:"Code"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.email.verifyCode))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{text:"Proceed","data-submit-event":"verify-email"}))))}))}verifyEmail(){return __awaiter(this,void 0,void 0,(function*(){const v=this.model.email;const vt=yield this.entityService.invoke(VerificationToken,"verifyCode",v,v.verificationID,v.accessCode,this.model.email.verifyCode);if(!vt.verified){throw new Error("Verification failed, try again")}yield this.askForSignup()}))}displayQRCode(ve){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create(QRCodeControl,{smsConfig:JSON.parse(ve.externalConfig)})));for(let index=0;index<100;index++){try{const v=yield this.entityService.query(VerificationToken,"get",ve.verificationID,ve.accessCode).firstOrDefault();if(v.verified){ve.verified=true;break}}catch(_a){}yield sleep(5e3)}yield this.askForSignup()}))}askForSignup(){return __awaiter(this,void 0,void 0,(function*(){this.step=3;this.renderer=XNode.create("div",null,XNode.create(Form,null,this.getHeader(),XNode.create(FormField,{label:"Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.name))})),XNode.create("details",{open:true},XNode.create("summary",null,"Billing"),XNode.create("div",null,XNode.create(FormField,{label:"Full Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.title))})),XNode.create(FormField,{label:"Tax IDs"},XNode.create("div",{"data-layout":"flex-wrap"},XNode.create("input",{placeholder:"GST",value:Bind.twoWaysImmediate((()=>this.model.billingAddress.gstTaxID))}),XNode.create("input",{placeholder:"Income Tax",value:Bind.twoWaysImmediate((()=>this.model.billingAddress.incomeTaxID))}))),XNode.create(FormField,{label:"Address Line 1"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.line1))})),XNode.create(FormField,{label:"Address Line 2"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.line2))})),XNode.create(FormField,{label:"Address Line 3"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.line3))})),XNode.create(FormField,{label:"City"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.city))})),XNode.create(FormField,{label:"State"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.state))})),XNode.create(FormField,{label:"Country"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.model.billingAddress.countryCode))})))),XNode.create("details",null,XNode.create("summary",null,"Shipping"),XNode.create("div",null,XNode.create(FormField,{label:"Full Name"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.title))})),XNode.create(FormField,{label:"Tax IDs"},XNode.create("div",{"data-layout":"flex-wrap"},XNode.create("input",{placeholder:"GST",value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.gstTaxID))}),XNode.create("input",{placeholder:"Income Tax",value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.incomeTaxID))}))),XNode.create(FormField,{label:"Address Line 1"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.line1))})),XNode.create(FormField,{label:"Address Line 2"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.line2))})),XNode.create(FormField,{label:"Address Line 3"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.line3))})),XNode.create(FormField,{label:"City"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.city))})),XNode.create(FormField,{label:"State"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.state))})),XNode.create(FormField,{label:"Country"},XNode.create(CountrySelect,{value:Bind.twoWaysImmediate((()=>this.model.shippingAddress.countryCode))})))),XNode.create("div",null,XNode.create("button",{"data-submit-event":"user-signup"},"Signup"))))}))}userSignup(){return __awaiter(this,void 0,void 0,(function*(){delete this.model.email.addresses;delete this.model.phone.addresses;const{userID}=yield FetchBuilder.post("/social-mail/user/signup").jsonBody(this.model).asJson();if(userID){location.reload()}}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],SiteSignupPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"request-verification"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteSignupPage.prototype,"requestVerification",null);__decorate([Action({onEvent:"verify-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteSignupPage.prototype,"verifyEmail",null);__decorate([Action({onEvent:"user-signup"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteSignupPage.prototype,"userSignup",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/user/pages/login/SiteLoginPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../services/EntityService","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/core/Bind","@web-atoms/web-controls/dist/basic/Form","@web-atoms/web-controls/dist/basic/FormField","../../../../common/controls/buttons/IconButton","../../../../model/model","@web-atoms/web-controls/dist/basic/ToggleButtonBar","../../../../common/controls/phone-editor/PhoneEditor","@web-atoms/core/dist/view-model/Action","../../../../common/controls/qrcode/QRCode","@web-atoms/core/dist/core/sleep","@web-atoms/web-controls/dist/PageNavigator","../signup/SiteSignupPage","./SiteLoginPage.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,XNode,Bind,Form,FormField,EmailIconTextButton,VerificationToken,ToggleButtonBar,PhoneEditor,Action,QRCodeControl,sleep,PageNavigator,SiteSignupPage,SiteLoginPage,verifyModes;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsWebControlsDistBasicForm){Form=_webAtomsWebControlsDistBasicForm.default},function(_webAtomsWebControlsDistBasicFormField){FormField=_webAtomsWebControlsDistBasicFormField.default},function(_commonControlsButtonsIconButton){EmailIconTextButton=_commonControlsButtonsIconButton.EmailIconTextButton},function(_modelModel){VerificationToken=_modelModel.VerificationToken},function(_webAtomsWebControlsDistBasicToggleButtonBar){ToggleButtonBar=_webAtomsWebControlsDistBasicToggleButtonBar.default},function(_commonControlsPhoneEditorPhoneEditor){PhoneEditor=_commonControlsPhoneEditorPhoneEditor.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_commonControlsQrcodeQRCode){QRCodeControl=_commonControlsQrcodeQRCode.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_signupSiteSignupPage){SiteSignupPage=_signupSiteSignupPage.default},function(_SiteLoginPageLocalLess){}],execute:function(){verifyModes=[{label:"Email",value:"email"},{label:"Cell Phone",value:"phone"}];_export("default",SiteLoginPage=class SiteLoginPage extends ContentPage{constructor(){super(...arguments);this.model={name:"",captcha:VerificationToken.create({type:"captcha",accessCode:"",verifyCode:"",verifyAddresses:""}),email:VerificationToken.create({type:"email",accessCode:"",verifyCode:"",verifyAddresses:""}),phone:VerificationToken.create({type:"sms",accessCode:"",verifyCode:"",verifyAddresses:""})};this.verifyMode="email"}init(){return __awaiter(this,void 0,void 0,(function*(){this.element.setAttribute("site-login-page","site-login");const captcha=yield this.entityService.save(this.model.captcha);const{verificationID,accessCode}=captcha;this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Verify"},XNode.create(ToggleButtonBar,{items:verifyModes,value:Bind.twoWaysImmediate((()=>this.verifyMode))})),XNode.create(FormField,{label:"Email","style-display":Bind.oneWay((()=>this.verifyMode==="email"))},XNode.create("input",{autofocus:true,value:Bind.twoWaysImmediate((()=>this.model.email.verifyAddresses))})),XNode.create(FormField,{label:"Cell Phone","style-display":Bind.oneWay((()=>this.verifyMode==="phone"))},XNode.create(PhoneEditor,{value:Bind.twoWaysImmediate((()=>this.model.phone.verifyAddresses))})),XNode.create(FormField,{label:"Captcha"},XNode.create("img",{src:`/api/users/captcha/${verificationID}/${accessCode}`})),XNode.create(FormField,{label:"Enter 5 Digit Code"},XNode.create("input",{type:"tel",value:Bind.twoWaysImmediate((()=>this.model.captcha.verifyCode))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{text:"Verify","data-submit-event":"proceed-verification"}))))}))}proceedVerification(){return __awaiter(this,void 0,void 0,(function*(){const captcha=this.model.captcha;const{verificationID:id,accessCode}=captcha;const vt=yield this.entityService.invoke(VerificationToken,"verifyCode",captcha,id,accessCode,this.model.captcha.verifyCode);if(!vt.verified){throw new Error("Verification failed, try again")}const isEmail=this.verifyMode==="email";const v=isEmail?this.model.email:this.model.phone;yield this.entityService.save(v);if(!isEmail){yield this.displayPhoneVerification(v);return}this.renderer=XNode.create("div",null,XNode.create(Form,null,XNode.create(FormField,{label:"Email Verification"},XNode.create("div",null,"We have sent you the verification code in your email, please enter it again to complete the verification.")),XNode.create(FormField,{label:"Code"},XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.model.email.verifyCode))})),XNode.create("div",null,XNode.create(EmailIconTextButton,{text:"Verify","data-submit-event":"verify-email"}))))}))}displayPhoneVerification(ve){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(QRCodeControl,{smsConfig:JSON.parse(ve.externalConfig)}));for(let index=0;index<100;index++){const v=yield this.entityService.query(VerificationToken,"get",ve.verificationID,ve.accessCode).firstOrDefault();if(v.verified){ve.verified=true;ve.verifyCode="verified";ve.userID=v.userID;if(v.userID){yield this.login(ve);return}break}yield sleep(5e3)}yield this.askForSignup()}))}verifyEmail(){return __awaiter(this,void 0,void 0,(function*(){const v=this.model.email;const vt=yield this.entityService.invoke(VerificationToken,"verifyCode",v,v.verificationID,v.accessCode,this.model.email.verifyCode);if(!vt.verified){throw new Error("Verification failed, try again")}if(vt.userID){yield this.login(vt);return}yield this.askForSignup()}))}askForSignup(){return __awaiter(this,void 0,void 0,(function*(){const{captcha,email,phone}=this.model;PageNavigator.openPage(SiteSignupPage,{captcha,email,phone})}))}login(v){return __awaiter(this,void 0,void 0,(function*(){yield this.entityService.invoke(VerificationToken,"login",v,v.verificationID,v.accessCode);location.reload()}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],SiteLoginPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"proceed-verification"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteLoginPage.prototype,"proceedVerification",null);__decorate([Action({onEvent:"verify-email"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],SiteLoginPage.prototype,"verifyEmail",null);__decorate([Action({}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],SiteLoginPage.prototype,"login",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/user/WebSiteUserService");System.register(["tslib","@web-atoms/core/dist/di/DISingleton","../../model/model","@web-atoms/core/dist/di/Inject","../../services/EntityService","../../common/SocialMailApp","@web-atoms/core/dist/App","@web-atoms/web-controls/dist/PageNavigator","./pages/login/SiteLoginPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,DISingleton,LoginSession,Inject,EntityService,SocialMailApp,App,PageNavigator,SiteLoginPage,WebSiteUserService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistDiDISingleton){DISingleton=_webAtomsCoreDistDiDISingleton.default},function(_modelModel){LoginSession=_modelModel.LoginSession},function(_webAtomsCoreDistDiInject){Inject=_webAtomsCoreDistDiInject.Inject},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_commonSocialMailApp){SocialMailApp=_commonSocialMailApp.default},function(_webAtomsCoreDistApp){App=_webAtomsCoreDistApp.App},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_pagesLoginSiteLoginPage){SiteLoginPage=_pagesLoginSiteLoginPage.default}],execute:function(){WebSiteUserService=class WebSiteUserService{constructor(){this.user=null}getUser(){var _a,_b,_c;return __awaiter(this,void 0,void 0,(function*(){(_a=this.user)!==null&&_a!==void 0?_a:this.user=(_b=yield this.entityService.query(LoginSession,"currentUser").firstOrDefault())===null||_b===void 0?void 0:_b.user;SocialMailApp.user=this.user;if((_c=this.user)===null||_c===void 0?void 0:_c.userID){return this.user}yield PageNavigator.pushPageForResultOrCancel(SiteLoginPage);return this.user}))}};__decorate([Inject,__metadata("design:type",EntityService)],WebSiteUserService.prototype,"entityService",void 0);__decorate([Inject,__metadata("design:type",App)],WebSiteUserService.prototype,"app",void 0);WebSiteUserService=__decorate([DISingleton()],WebSiteUserService);_export("default",WebSiteUserService)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/date/DateFormats");System.register(["@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var DateTime,DIVISIONS,DateFormats;return{setters:[function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default}],execute:function(){DIVISIONS=[{amount:60,name:"seconds"},{amount:60,name:"minutes"},{amount:24,name:"hours"},{amount:7,name:"days"},{amount:4.34524,name:"weeks"},{amount:12,name:"months"},{amount:Number.POSITIVE_INFINITY,name:"years"}];_export("DateFormats",DateFormats={diff(d){if(!d){return""}if(!(d instanceof DateTime)){d=typeof d==="string"?new DateTime(d):DateTime.from(d)}const today=DateTime.now;let diff=today.diff(d);if(diff.totalMilliseconds<0){diff=d.diff(today)}if(diff.totalHours<=24){if(diff.totalSeconds<=180){return"now"}if(diff.totalMinutes<60){return Math.round(diff.totalMinutes)+"m"}return Math.round(diff.totalHours)+"h"}if(diff.totalDays<=30){return Math.round(diff.totalDays)+"d"}if(diff.totalDays<=365){return Math.round(diff.totalDays/30)+"mo"}return Math.round(diff.totalDays/365)+"yr"},withWeekDayAndTime(d,def=""){var _a;if(!d){return def}d=DateTime.from(d);return(_a=d===null||d===void 0?void 0:d.toLocaleString(navigator.language,{year:"numeric",month:"short",day:"numeric",weekday:"short",hour12:true,minute:"numeric",hour:"numeric"}))!==null&&_a!==void 0?_a:def},relative:{short(d){if(!d){return""}d=DateTime.from(d);const now=DateTime.now;if(now<d){return"in "+DateFormats.diff(d)}return DateFormats.diff(d)+" ago"}}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/orders/StoreOrdersPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../services/EntityService","../../../../model/model","../../../../common/Sql","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","../../../../common/controls/repeater/InfiniteRepeater","../../../user/WebSiteUserService","../../../../common/date/DateFormats","../../commands/StoreCommands"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,StoreJournal,Sql,XNode,AtomRepeater,InfiniteRepeater,WebSiteUserService,DateFormats,StoreCommands,StoreOrderPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_modelModel){StoreJournal=_modelModel.StoreJournal},function(_commonSql){Sql=_commonSql.Sql},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_userWebSiteUserService){WebSiteUserService=_userWebSiteUserService.default},function(_commonDateDateFormats){DateFormats=_commonDateDateFormats.DateFormats},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default}],execute:function(){_export("default",StoreOrderPage=class StoreOrderPage extends ContentPage{constructor(){super(...arguments);this.search="";this.items=[]}init(){return __awaiter(this,void 0,void 0,(function*(){yield this.userService.getUser();this.renderer=XNode.create("div",null,XNode.create(AtomRepeater,Object.assign({items:this.items,"data-layout":"data-grid"},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.load({search:this.search,start,cancelToken}))),{itemRenderer:item=>XNode.create("div",null,XNode.create("label",{text:item.journalID}),XNode.create("label",{text:DateFormats.relative.short(item.dateCreated)}),XNode.create("label",{text:item.status}),XNode.create("br",null),XNode.create("a",{href:StoreCommands.order.displayRoute(item)},XNode.create("button",{text:"Details"})),item.status!=="paid"?XNode.create("a",{href:`/store/checkout/${item.journalID}`},XNode.create("button",{"data-click-event":"pay"},XNode.create("i",{class:"fas fa-pay"}),"Pay")):XNode.create("label",{text:"Paid"}))})))}))}load({search,start,cancelToken}){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(StoreJournal);if(search){search=search+"%";q=q.where({search},(p=>x=>x.lineItems.some((l=>Sql.text.iLike(l.item.name,p.search)))))}return q.toPagedList({start,cancelToken})}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreOrderPage.prototype,"entityService",void 0);__decorate([InjectProperty,__metadata("design:type",WebSiteUserService)],StoreOrderPage.prototype,"userService",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/controls/Loader");System.register(["@web-atoms/core/dist/core/XNode","@social-mail/social-mail-client/content/images/gif/loader.gif"],(function(_export,_context){"use strict";var XNode,loaderImage;function Loader(){return XNode.create("div",{"data-position":"absolute-fill","data-layout":"center-all"},XNode.create("img",{src:loaderImage}))}_export("default",Loader);return{setters:[function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_socialMailSocialMailClientContentImagesGifLoaderGif){loaderImage=_socialMailSocialMailClientContentImagesGifLoaderGif.default}],execute:function(){}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/order/StoreOrderPage");System.register(["tslib","@web-atoms/core/dist/core/InjectProperty","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/view-model/Action","@web-atoms/date-time/dist/DateTime","../../../../common/controls/buttons/IconButton","../../../../common/controls/Loader","../../../../common/date/DateFormats","../../../../model/model","../../../../services/EntityService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,XNode,AtomRepeater,Bind,Action,DateTime,AddIconTextButton,Loader,DateFormats,StoreJournalCoupon,StoreJournal,EntityService,StoreOrderPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_commonDateDateFormats){DateFormats=_commonDateDateFormats.DateFormats},function(_modelModel){StoreJournalCoupon=_modelModel.StoreJournalCoupon;StoreJournal=_modelModel.StoreJournal},function(_servicesEntityService){EntityService=_servicesEntityService.default}],execute:function(){_export("default",StoreOrderPage=class StoreOrderPage extends ContentPage{constructor(){super(...arguments);this.model=null;this.newCoupon=StoreJournalCoupon.create({})}init(){var _a,_b;return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null));const order=this.model=yield this.load();this.newCoupon.orderID=order.journalID;(_a=order.paymentAttempts)!==null&&_a!==void 0?_a:order.paymentAttempts=[];(_b=order.orderCoupons)!==null&&_b!==void 0?_b:order.orderCoupons=[];order.paymentAttempts=order.paymentAttempts.orderByDescending((x=>x.success));this.renderer=XNode.create("div",null,XNode.create("table",null,XNode.create("tr",null,XNode.create("td",null,"OrderID"),XNode.create("td",null,order.journalID)),XNode.create("tr",null,XNode.create("td",null,"Created At"),XNode.create("td",null,DateFormats.withWeekDayAndTime(order.dateCreated))),XNode.create("tr",null,XNode.create("td",null,"Updated At"),XNode.create("td",null,DateFormats.withWeekDayAndTime(order.dateUpdated)))),XNode.create("table",{"style-width":"300px"},XNode.create("thead",null,XNode.create("th",null,"Item"),XNode.create("th",null,"Qty"),XNode.create("th",null,"Amount"),XNode.create("th",null,"Taxes")),XNode.create("tbody",null,...order.lineItems.map((item=>{var _a;return XNode.create("tr",null,XNode.create("td",null,item.item.name),XNode.create("td",null,item.quantity),XNode.create("td",null,item.amount),XNode.create("td",null,(_a=item.taxes)!==null&&_a!==void 0?_a:"0"))})))),XNode.create("table",null,XNode.create("tr",null,XNode.create("td",null,"Total"),XNode.create("td",null,order.total))),XNode.create("br",null),XNode.create("div",null,XNode.create(AtomRepeater,{for:"table",header:true,headerRenderer:x=>XNode.create("thead",null,XNode.create("th",null,"Coupons")),itemRenderer:x=>XNode.create("tbody",null,XNode.create("tr",null,XNode.create("td",{colSpan:2},XNode.create("label",{text:x.couponCode}),XNode.create("i",{"data-click-event":"delete-coupon",class:"fas fa-times-circle"})))),items:this.model.orderCoupons,footer:Bind.oneWay((()=>this.newCoupon)),footerRenderer:()=>XNode.create("tfoot",null,XNode.create("th",null,XNode.create("input",{value:Bind.twoWaysImmediate((()=>this.newCoupon.couponCode))})),XNode.create("th",null,XNode.create(AddIconTextButton,{"data-click-event":"add-coupon"})))})),XNode.create("br",null),order.status!=="paid"&&XNode.create("div",null,XNode.create(AddIconTextButton,{href:`/store/checkout/${order.journalID}`,text:"Checkout"})),XNode.create("table",null,XNode.create("thead",null,XNode.create("caption",null,"Payments")),...order.paymentAttempts.map((a=>XNode.create("tr",null,XNode.create("td",null,DateFormats.relative.short(a.dateCreated)),XNode.create("td",null,a.success?"Paid":"-"))))))}))}load(){return __awaiter(this,void 0,void 0,(function*(){const orderID=this.parameters.journalID;const order=yield this.entityService.query(StoreJournal).where({orderID},(p=>x=>x.journalID===p.orderID)).include((x=>[x.paymentAttempts,x.buyer,x.buyerBillingAddress,x.orderCoupons,x.lineItems.forEach((l=>[l.itemPrice,l.item]))])).firstOrDefault();return order}))}addCoupon(){var _a;var _b;return __awaiter(this,void 0,void 0,(function*(){const coupon=Object.assign({},this.newCoupon);((_a=(_b=this.model).orderCoupons)!==null&&_a!==void 0?_a:_b.orderCoupons=[]).add(coupon);try{this.model.dateUpdated=DateTime.now;yield this.entityService.save(this.model,(c=>c.include((x=>x.orderCoupons))))}catch(error){this.model.orderCoupons.remove(coupon);throw error}location.reload()}))}deleteCoupon(coupon){return __awaiter(this,void 0,void 0,(function*(){coupon.$deleted=true;this.model.dateUpdated=DateTime.now;yield this.entityService.save(this.model,(c=>c.include((x=>x.orderCoupons))));this.model.orderCoupons.remove(coupon)}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreOrderPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"add-coupon"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],StoreOrderPage.prototype,"addCoupon",null);__decorate([Action({onEvent:"delete-coupon",confirm:"Are you sure you want to delete this coupon?"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",Promise)],StoreOrderPage.prototype,"deleteCoupon",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/buy/StoreBuyPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","@web-atoms/core/dist/core/InjectProperty","../../../../common/controls/Loader","../../../user/WebSiteUserService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,InjectProperty,Loader,WebSiteUserService,StoreBuyPage;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_userWebSiteUserService){WebSiteUserService=_userWebSiteUserService.default}],execute:function(){_export("default",StoreBuyPage=class StoreBuyPage extends ContentPage{init(){return __awaiter(this,void 0,void 0,(function*(){this.renderer=XNode.create("div",null,XNode.create(Loader,null),";");yield this.us.getUser();location.reload()}))}});__decorate([InjectProperty,__metadata("design:type",WebSiteUserService)],StoreBuyPage.prototype,"us",void 0)}}}));AmdLoader.instance.setup("@web-atoms/web-controls/dist/basic/ZoomView");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/BindableProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/web/controls/AtomControl","./styles/zoom-view.global.less"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomControl,ZoomView,center,distance,findLargestDistance;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreBindableProperty){BindableProperty=_webAtomsCoreDistCoreBindableProperty.BindableProperty},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistWebControlsAtomControl){AtomControl=_webAtomsCoreDistWebControlsAtomControl.AtomControl},function(_stylesZoomViewGlobalLess){}],execute:function(){center=ev=>{const touch=ev.touches[0];if(touch){return{x:touch.clientX,y:touch.clientY}}return{x:0,y:0}};distance=(first,second)=>Math.hypot(first.pageX-second.pageX,first.pageY-second.pageY);findLargestDistance=touches=>{let pair=null;for(let i=0;i<touches.length;i++){const t1=touches[i];for(let j=i+1;j<touches.length;j++){const t2=touches[j];const distance=Math.hypot(t1.pageX-t2.pageX,t1.pageY-t2.pageY);if(pair===null){pair={t1,t2,distance};continue}if(pair.distance<distance){pair={t1,t2,distance}}}}return pair};_export("default",ZoomView=class ZoomView extends AtomControl{preCreate(){this.element.title="Use mouse wheel to zoom";this.loading=false;this.zoom={scale:0,anchorX:0,anchorY:0,x:0,y:0};this.element.setAttribute("data-zoom-view","zoom-view");this.element.draggable=false;this.render(XNode.create("div",null,XNode.create("div",{class:"scroll"},XNode.create("img",{class:"image-container",src:Bind.oneWay((()=>this.getSource(this.source))),"style-opacity":Bind.oneWay((()=>this.loading?"0.3":"1")),"event-load":()=>{this.loading=false;this.updateZoom(this.zoom)}})),XNode.create("i",{class:Bind.oneWay((()=>this.loading?"spinner fa-duotone fa-spinner fa-spin":"hide"))}),XNode.create("i",{"event-click":()=>this.updateZoom(),class:Bind.oneWay((()=>this.zoom.scale?"scale":"hide")),title:"Display entire image"})));this.scrollDiv=this.element.firstElementChild;this.imageContainer=this.scrollDiv.firstElementChild;this.image=this.imageContainer;const scrollView=this.element;let previous;let touchMoveDisposable;let touchEndDisposable;this.bindEvent(scrollView,"touchstart",(evs=>{previous=center(evs);let previousDistance=undefined;touchMoveDisposable!==null&&touchMoveDisposable!==void 0?touchMoveDisposable:touchMoveDisposable=this.bindEvent(scrollView,"touchmove",(ev=>{let{x,y,anchorX,anchorY,scale}=this.zoom;if(ev.touches.length>1){ev.preventDefault();ev.stopImmediatePropagation();const rect=this.element.getBoundingClientRect();const ld=findLargestDistance(ev.touches);const first=ld.t1;const second=ld.t2;const newScale=ld.distance;if(previousDistance===void 0){previousDistance=newScale;return}if(previousDistance===newScale){return}anchorX=(first.clientX+second.clientX)/2-rect.left;anchorY=(first.clientY+second.clientY)/2-rect.top;scale+=newScale-previousDistance;previousDistance=newScale;this.updateZoom({anchorX,anchorY,x,y,scale});return}}));touchEndDisposable!==null&&touchEndDisposable!==void 0?touchEndDisposable:touchEndDisposable=this.bindEvent(scrollView,"touchend",(ev=>{touchMoveDisposable===null||touchMoveDisposable===void 0?void 0:touchMoveDisposable.dispose();touchEndDisposable===null||touchEndDisposable===void 0?void 0:touchEndDisposable.dispose();touchMoveDisposable=undefined;touchEndDisposable=undefined;previousDistance=undefined}))}));let mouseMoveDisposable;let mouseUpDisposable;this.bindEvent(scrollView,"dragstart",(ev=>{ev.preventDefault();ev.stopImmediatePropagation()}));this.bindEvent(scrollView,"mousedown",(ev=>{this.element.dataset.state="grabbing";previous={x:ev.clientX,y:ev.clientY};mouseMoveDisposable!==null&&mouseMoveDisposable!==void 0?mouseMoveDisposable:mouseMoveDisposable=this.bindEvent(scrollView,"mousemove",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);const cp={x:e.clientX,y:e.clientY};const diffX=previous.x-cp.x;const diffY=previous.y-cp.y;previous=cp;this.scrollDiv.scrollBy(diffX,diffY)}));mouseUpDisposable!==null&&mouseUpDisposable!==void 0?mouseUpDisposable:mouseUpDisposable=this.bindEvent(scrollView,"mouseup",(e=>{var _a;e.preventDefault();(_a=e.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(e);this.element.dataset.state="";previous=null;mouseMoveDisposable.dispose();mouseUpDisposable.dispose();mouseMoveDisposable=undefined;mouseUpDisposable=undefined}))}));this.bindEvent(scrollView,"wheel",(ev=>{var _a;ev.preventDefault();(_a=ev.stopImmediatePropagation)===null||_a===void 0?void 0:_a.call(ev);const newScale=this.zoom.scale-(ev.deltaY<0?-50:50);const anchorX=ev.offsetX;const anchorY=ev.offsetY;const{x,y}=this.zoom;this.updateZoom({anchorX,anchorY,x,y,scale:newScale<0?0:newScale})}),undefined,{passive:false})}getSource(text){if(text){this.loading=true}return text}updateZoom(zoom={x:0,y:0,anchorX:0,anchorY:0,scale:0}){const{anchorX,anchorY,x,y}=zoom;let{scale}=zoom;this.zoom=zoom;const image=this.image;if(!image.naturalHeight){return}const maxHeight=this.element.clientWidth>this.element.clientHeight;const s=maxHeight?this.element.clientWidth/image.naturalWidth:this.element.clientHeight/image.naturalHeight;if(scale<=0){scale=0}const{clientWidth,clientHeight}=this.element;if(scale<=0){this.element.scrollTo(0,0);this.imageContainer.style.transform=``;return}const scaleFactor=(clientWidth+scale)/clientWidth;this.imageContainer.style.transformOrigin=`${anchorX}px ${anchorY}px`;this.imageContainer.style.transform=`scale(${scaleFactor})`;const e=this.imageContainer.getBoundingClientRect();const left=-e.left;const top=-e.top;this.imageContainer.style.transformOrigin="0 0";const de=this.imageContainer.getBoundingClientRect();this.scrollDiv.scrollTo({left:left+de.left,top:top+de.top,behavior:"instant"})}});__decorate([BindableProperty,__metadata("design:type",Object)],ZoomView.prototype,"zoom",void 0);__decorate([BindableProperty,__metadata("design:type",String)],ZoomView.prototype,"source",void 0);__decorate([BindableProperty,__metadata("design:type",Boolean)],ZoomView.prototype,"loading",void 0)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/currency");System.register([],(function(_export,_context){"use strict";var CurrencySymbols;function formatCurrency(n,currency){if(n===void 0||n===null){return""}n=Number(n);return n.toLocaleString(void 0,{minimumFractionDigits:0,maximumFractionDigits:0,style:"currency",currency})}function formatPrice(n){if(!n){return"Ask"}return formatCurrency(Number(n.amount)+Number(n.taxAmount),n.currency||"INR")}_export({formatCurrency,formatPrice});return{setters:[],execute:function(){_export("CurrencySymbols",CurrencySymbols={USD:"$",EUR:"€",CRC:"₡",GBP:"£",ILS:"₪",INR:"₹",JPY:"¥",KRW:"₩",NGN:"₦",PHP:"₱",PLN:"zł",PYG:"₲",THB:"฿",UAH:"₴",VND:"₫"})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/fileUrl");System.register(["./apiPath"],(function(_export,_context){"use strict";var apiPath,viewFileUrl,fileUrl,imageUrl,srcSetUrl,signedImageUrl,signedUrl,storeFileUrl;return{setters:[function(_apiPath){apiPath=_apiPath.apiPath}],execute:function(){_export("viewFileUrl",viewFileUrl=(site,file)=>apiPath(`/api/site/asset/view/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${file.name}`));_export("fileUrl",fileUrl=(file,{action="download",args=void 0,fileName="",ext=""}={})=>{let name=encodeURIComponent(file.name);if(args){if(Array.isArray(args)){args=args.join(",")}ext="."+args+ext;action=action+"("+args+")"}if(ext){fileName=name+ext}if(fileName){name+="/"+fileName}const{emailID,appFileID,fileContentID}=file;if(emailID){return apiPath(`/api/emails/attachment/${action}/${emailID}/${appFileID}/${name}/`)}return apiPath(`/api/files/${action}/${appFileID}/${fileContentID}/${name}`)});fileUrl.webp=(file,size=300)=>fileUrl(file,{action:"webp",args:size,ext:".webp"});fileUrl.webm=file=>fileUrl(file,{action:"webm",ext:".webm"});fileUrl.pdf=file=>fileUrl(file,{action:"pdf",ext:".pdf"});fileUrl.html=file=>fileUrl(file,{action:"html",ext:".html"});_export("imageUrl",imageUrl=(site,file,size)=>{const name=encodeURIComponent(file.name);if(!size){return apiPath(`/api/site/asset/webp/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.webp`)}return apiPath(`/api/site/asset/webp(${size})/${site.appFileID}/${file.appFileID}/${file.fileContentID}/${name}.${size}.webp`)});_export("srcSetUrl",srcSetUrl=(site,file,imgUrlFunc=imageUrl)=>{const small=imgUrlFunc(site,file,480)+" 640w";const medium=imgUrlFunc(site,file,720)+" 1024w";const large=imgUrlFunc(site,file)+" 1256w";return`${small},${medium},${large}`});_export("signedImageUrl",signedImageUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0},size)=>apiPath(`/api/signed/webp(${size})/${appFileID}/${fileContentID}/${signed}/file.${size}.webp`));_export("signedUrl",signedUrl=({fileID=0,appFileID=fileID,fileContentID=void 0,signed=void 0})=>apiPath(`/api/signed/download/${appFileID}/${fileContentID}/${signed}/file.dat`));_export("storeFileUrl",storeFileUrl=(rootFolderID,file,type="download",name=file.name)=>apiPath(`/api/store/file/${type}/${rootFolderID}/${file.appFileID}/${file.fileContentID}/${name}`))}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/toBase36");System.register([],(function(_export,_context){"use strict";var Base36,toBase36,parseBigInt;_export("Base36",void 0);return{setters:[],execute:function(){_export("toBase36",toBase36=n=>BigInt(n).toString(36));parseBigInt=(numberString,throwOnFail=true)=>{if(!numberString){return}if(numberString.startsWith("$")){return}const keySpace="0123456789abcdefghijklmnopqrstuvwxyz";let result=BigInt(0);const keySpaceLength=BigInt(keySpace.length);for(const iterator of numberString){const value=keySpace.indexOf(iterator);if(value===-1){if(throwOnFail){throw new Error("invalid string")}return}result=result*keySpaceLength+BigInt(value)}return result};_export("Base36",Base36=class Base36{static encode(n){return BigInt(n).toString(36)}static decode(n,throwOnFail=true){var _a;return(_a=parseBigInt(n,throwOnFail))===null||_a===void 0?void 0:_a.toString()}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/Slugger");System.register(["./toBase36"],(function(_export,_context){"use strict";var Base36,Slugger;return{setters:[function(_toBase){Base36=_toBase.Base36}],execute:function(){_export("Slugger",Slugger={slug(emailID,subject){const eid=Base36.encode(emailID);const suffix=`-${eid}`;const prefix=(subject||"").replace(/[^\p{L}\d]+/gimu,"-").trim();let slug="";const length=prefix.length+suffix.length;if(length>440){slug=prefix.substring(0,length-440)+suffix}else{slug=prefix+suffix}return slug.toLowerCase()}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/TestMode");System.register([],(function(_export,_context){"use strict";var AppLocation;return{setters:[],execute:function(){_export("AppLocation",AppLocation={isLocalTesting:/^\d+\.\d+\.\d+\.\d+$/.test(location.hostname)})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/StoreUrlService");System.register(["../../common/Slugger","../../common/TestMode","../../common/toBase36"],(function(_export,_context){"use strict";var Slugger,AppLocation,toBase36,StoreUrlService,old,cache;return{setters:[function(_commonSlugger){Slugger=_commonSlugger.Slugger},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation},function(_commonToBase){toBase36=_commonToBase.toBase36}],execute:function(){_export("StoreUrlService",StoreUrlService={productUrl(p){var _a,_b;const name=encodeURIComponent(Slugger.slug((_a=p.variantForID)!==null&&_a!==void 0?_a:p.storeItemID,p.name));const productID=toBase36((_b=p.variantForID)!==null&&_b!==void 0?_b:p.storeItemID);if(AppLocation.isLocalTesting){return`?detail=store/${productID}/${name}`}return`/store/${productID}/${name}`},assetUrl(item,file){return`/social-mail/sd/view/${item.publicFolderID}/${file.appFileID}/${file.appFile.name}`},assetImageUrl(item,file,size=350){return`/social-mail/sd/webp(${size})/${item.publicFolderID}/${file.appFileID}/${file.appFile.name}/${file.appFile.name}.${size}.webp`},getParameters(){var _a,_b;const url=(_a=window.pageUrl)!==null&&_a!==void 0?_a:new URL(location.href);let pathname=url===null||url===void 0?void 0:url.pathname;const detail=url.searchParams.get("detail");if(detail){pathname="/"+detail}const{1:root,2:route,3:p1,4:p2}=(_b=/^\/([^\/]+)\/([^\/]+)\/?([^\/]+)?\/?/.exec(pathname))!==null&&_b!==void 0?_b:[];if(root!=="store"){return{}}switch(route){case"login":return{login:{storeID:p1}};case"orders":return{orders:{storeID:p1}};case"orders":return{order:{storeID:p1,orderID:p2}};case"buy":return{buy:{productID:p1,currency:p2||"INR"}};case"checkout":return{checkout:{orderID:p1}}}return{detail:{storeID:route,productID:p1,currency:p2||"INR"}}}});old=StoreUrlService.getParameters;cache=void 0;StoreUrlService.getParameters=(...a)=>cache!==null&&cache!==void 0?cache:cache=old.apply(StoreUrlService,a)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/detail/StoreProductDetailPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/services/FetchBuilder","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/basic/ToggleButtonBar","@web-atoms/web-controls/dist/basic/ZoomView","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../common/currency","../../../../common/fileUrl","../../../../model/model","../../../../services/EntityService","../../../user/WebSiteUserService","../../StoreUrlService","./StoreProductDetailPage.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,FetchBuilder,Action,AtomRepeater,ToggleButtonBar,ZoomView,ContentPage,formatPrice,signedUrl,StoreItem,EntityService,WebSiteUserService,StoreUrlService,StoreProductDetailPage,css;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistServicesFetchBuilder){FetchBuilder=_webAtomsCoreDistServicesFetchBuilder.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistBasicToggleButtonBar){ToggleButtonBar=_webAtomsWebControlsDistBasicToggleButtonBar.default},function(_webAtomsWebControlsDistBasicZoomView){ZoomView=_webAtomsWebControlsDistBasicZoomView.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_commonCurrency){formatPrice=_commonCurrency.formatPrice},function(_commonFileUrl){signedUrl=_commonFileUrl.signedUrl},function(_modelModel){StoreItem=_modelModel.StoreItem},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_userWebSiteUserService){WebSiteUserService=_userWebSiteUserService.default},function(_StoreUrlService){StoreUrlService=_StoreUrlService.StoreUrlService},function(_StoreProductDetailPageLocalLess){}],execute:function(){css="store-product-detail-page";_export("default",StoreProductDetailPage=class StoreProductDetailPage extends ContentPage{constructor(app,e){super(app,e);this.selectedVariant=null;this.selectedSize=null;this.selectedFile=null;this.images=[];this.runAfterInit((()=>this.app.runAsync((()=>this.init()))))}getFiles(item,variant,size){var _a,_b,_c;const variantFiles=(_a=variant===null||variant===void 0?void 0:variant.mediaFiles)===null||_a===void 0?void 0:_a.filter((x=>x.isPreview));const files=(_c=variantFiles!==null&&variantFiles!==void 0?variantFiles:(_b=item.mediaFiles)===null||_b===void 0?void 0:_b.filter((x=>x.isPreview)))!==null&&_c!==void 0?_c:[];if(size===null||size===void 0?void 0:size.mediaFiles){files.push(...size.mediaFiles.filter((x=>x.isPreview)))}this.selectedFile=files[0];return files}init(){var _a,_b,_c,_d,_e,_f,_g,_h,_j;return __awaiter(this,void 0,void 0,(function*(){this.itemID=this.parameters.storeItemID;this.renderer=XNode.create("div",null,XNode.create("label",{text:"..."}));this.model=yield this.getItem();const offer=(_a=this.model.mediaFiles)===null||_a===void 0?void 0:_a.find((x=>x.title==="offer.html"));const specifications=(_b=this.model.mediaFiles)===null||_b===void 0?void 0:_b.find((x=>x.title==="specs.html"));const price=(_c=this.model.storeItemPrices)===null||_c===void 0?void 0:_c[0];const[offerHtml,specHtml]=yield Promise.all([offer?FetchBuilder.get(signedUrl(offer)).asText():Promise.resolve(""),specifications?FetchBuilder.get(signedUrl(specifications)).asText():Promise.resolve("")]);this.selectedSize=(_e=(_d=this.model.sizes)===null||_d===void 0?void 0:_d[0])!==null&&_e!==void 0?_e:null;this.selectedVariant=(_g=(_f=this.model.variants)===null||_f===void 0?void 0:_f[0])!==null&&_g!==void 0?_g:null;this.renderer=XNode.create("div",{class:css,images:Bind.oneWay((()=>this.getFiles(this.model,this.selectedVariant,this.selectedSize)))},XNode.create("h2",{class:"title"},this.model.name),XNode.create("section",{class:"product"},XNode.create("section",{class:"photos"},XNode.create(AtomRepeater,{selectOnClick:true,items:Bind.oneWay((()=>this.images)),selectedItem:Bind.twoWaysImmediate((()=>this.selectedFile)),itemRenderer:x=>XNode.create("img",{class:"thumbnail","data-click-event":"change-image","data-id":x.appFileID,src:StoreUrlService.assetImageUrl(this.model,x,150)}),class:"thumbnails"}),XNode.create(ZoomView,{class:"preview",source:Bind.oneWay((()=>StoreUrlService.assetImageUrl(this.model,this.selectedFile,720)))})),XNode.create("section",{class:"offers","data-layout":"vertical-flex"},offerHtml&&XNode.create("section",{innerHTML:offerHtml}),XNode.create("p",null,this.model.description),XNode.create("p",{class:"price"},XNode.create("label",{text:formatPrice(price)})),XNode.create("button",{"data-click-event":"buy-now",class:"buy"},"Buy"),((_h=this.model.sizes)===null||_h===void 0?void 0:_h.length)&&XNode.create(ToggleButtonBar,{items:this.model.sizes,selectedItem:Bind.twoWaysImmediate((()=>this.selectedSize)),itemRenderer:x=>XNode.create("div",{"data-item-type":"toggle-button"},XNode.create("span",{text:x.name}))}),((_j=this.model.variants)===null||_j===void 0?void 0:_j.length)&&XNode.create(ToggleButtonBar,{items:this.model.variants,selectedItem:Bind.twoWaysImmediate((()=>this.selectedVariant)),itemRenderer:x=>XNode.create("div",{"data-item-type":"toggle-button"},XNode.create("span",{text:x.name}))}))),XNode.create("section",{"data-flex":"stretch-full"},XNode.create("section",{innerHTML:specHtml})))}))}changeImage({id}){this.selectedFile=this.model.mediaFiles.find((x=>x.appFileID===id))}buyNow(){return __awaiter(this,void 0,void 0,(function*(){const userService=this.resolve(WebSiteUserService);const user=yield userService.getUser();location.href="/store/buy/"+this.model.storeItemID}))}getItem(){return __awaiter(this,void 0,void 0,(function*(){const itemID=this.itemID;return this.entityService.query(StoreItem,"storeQuery").where({itemID},(p=>x=>x.storeItemID===p.itemID)).include((x=>[x.storeItemPrices,x.storeItemTags.forEach((t=>t.tag)),x.variants.forEach((t=>[t.mediaFiles,t.storeItemPrices])),x.sizes.forEach((t=>[t.mediaFiles,t.storeItemPrices])),x.mediaFiles.forEach((t=>t.appFile))])).firstOrDefault()}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreProductDetailPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"change-image"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],StoreProductDetailPage.prototype,"changeImage",null);__decorate([Action({onEvent:"buy-now"}),__metadata("design:type",Function),__metadata("design:paramtypes",[]),__metadata("design:returntype",Promise)],StoreProductDetailPage.prototype,"buyNow",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/common/cache/CacheTTL");System.register([],(function(_export,_context){"use strict";var CacheTTL;return{setters:[],execute:function(){_export("CacheTTL",CacheTTL={seconds:{oneHour:60*60,oneDay:60*60*24,oneMonth:60*60*24*30,fifteenMinutes:15*60}})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/pages/list/StoreProductListPage");System.register(["tslib","@web-atoms/core/dist/core/Bind","@web-atoms/core/dist/core/InjectProperty","@web-atoms/core/dist/core/XNode","@web-atoms/core/dist/view-model/Action","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../../common/controls/repeater/InfiniteRepeater","../../../../common/currency","../../../../common/Sql","../../../../model/model","../../../../services/EntityService","../../commands/StoreCommands","../../StoreUrlService","../../../../common/cache/CacheTTL","../../../../common/Slugger","./StoreProductList.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,Action,AtomRepeater,ContentPage,InfiniteRepeater,formatPrice,Sql,StoreTag,StoreMediaFile,StoreItem,EntityService,StoreCommands,StoreUrlService,CacheTTL,Slugger,StoreProductListPage,cacheSeconds,cacheVersion;_export("default",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.default},function(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsWebControlsDistMobileAppMobileApp){ContentPage=_webAtomsWebControlsDistMobileAppMobileApp.ContentPage},function(_commonControlsRepeaterInfiniteRepeater){InfiniteRepeater=_commonControlsRepeaterInfiniteRepeater.default},function(_commonCurrency){formatPrice=_commonCurrency.formatPrice},function(_commonSql){Sql=_commonSql.Sql},function(_modelModel){StoreTag=_modelModel.StoreTag;StoreMediaFile=_modelModel.StoreMediaFile;StoreItem=_modelModel.StoreItem},function(_servicesEntityService){EntityService=_servicesEntityService.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_StoreUrlService){StoreUrlService=_StoreUrlService.StoreUrlService},function(_commonCacheCacheTTL){CacheTTL=_commonCacheCacheTTL.CacheTTL},function(_commonSlugger){Slugger=_commonSlugger.Slugger},function(_StoreProductListLocalLess){}],execute:function(){cacheSeconds=CacheTTL.seconds.fifteenMinutes;cacheVersion="v1";_export("default",StoreProductListPage=class StoreProductListPage extends ContentPage{constructor(app,e){super(app,e);this.search="";this.items=[];this.tags=[];this.version=0;this.element.setAttribute("data-shopping-cart-list","shopping-cart-list")}init(){return __awaiter(this,void 0,void 0,(function*(){this.render(XNode.create("div",{"data-shopping-cart-list":"shopping-cart-list"},XNode.create("header",null,XNode.create(AtomRepeater,{class:"search-tags",items:this.tags,itemRenderer:x=>XNode.create("div",{"data-layout":"row"}," ",XNode.create("label",{text:`${x.tag.label} (${x.count})`})," ",XNode.create("i",{"data-click-event":"remove-tag",class:"fas fa-times-circle"})," ")}),XNode.create("input",{type:"search",class:"search",value:Bind.twoWaysImmediate((()=>this.search))}),XNode.create(AtomRepeater,{class:"tags",items:Bind.oneWayAsync(((c,e,cancelToken)=>this.searchTags(this.search,cancelToken,this.version)),{default:[]}),itemRenderer:x=>XNode.create("label",{text:`${x.tag.label} (${x.count})`}),"data-click-event":"select-tag"})),XNode.create(AtomRepeater,Object.assign({for:"section",items:this.items},InfiniteRepeater.pagedItems((start=>(c,e,cancelToken)=>this.searchItems({start,search:this.search,version:this.version,cancelToken}))),{itemRenderer:item=>{var _a,_b,_c,_d,_e,_f,_g,_h,_j;const name=item.name||((_a=item.variantFor)===null||_a===void 0?void 0:_a.name)||item.name;const storeItemID=((_b=item.variantFor)===null||_b===void 0?void 0:_b.storeItemID)||item.storeItemID;const slug=Slugger.slug(item.storeItemID,name);const href=StoreCommands.productDetail.displayRoute({storeItemID,name:slug});return XNode.create("div",{class:"store-item"},XNode.create("a",{class:"name",title:name,text:name,href}),XNode.create("label",{class:"description",title:item.description||((_c=item.variantFor)===null||_c===void 0?void 0:_c.description)||item.description,text:item.description||((_d=item.variantFor)===null||_d===void 0?void 0:_d.description)||item.description}),XNode.create("img",{src:Bind.oneTimeAsync((()=>this.downloadImage(item)))}),XNode.create("a",{title:item.name||((_e=item.variantFor)===null||_e===void 0?void 0:_e.name)||item.name,href},XNode.create("button",{class:"buy",text:"Buy"})),XNode.create("div",{class:"price"},XNode.create("label",{text:formatPrice((_g=(_f=item.storeItemPrices)===null||_f===void 0?void 0:_f[0])!==null&&_g!==void 0?_g:(_j=(_h=item.variantFor)===null||_h===void 0?void 0:_h.storeItemPrices)===null||_j===void 0?void 0:_j[0])})))}})),XNode.create("footer",null)))}))}removeTag(tag){this.tags.remove(tag);this.version++}selectTag(tag){if(this.tags.find((t=>t.tagID===tag.tagID))){return}this.tags.add(tag);this.version++}searchTags(search,cancelToken,v){return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(StoreTag,"storeQuery");if(search){search=search.trim().toLocaleLowerCase()+"%";q=q.where({search},(p=>x=>(Sql.text.like(x.tag.lowerCaseName,p.search)||Sql.text.like(x.tag.parent.lowerCaseName,p.search))&&x.count>0))}if(this.tags.length){const ids=this.tags.map((t=>t.tagID));q=q.where({ids},(p=>x=>!Sql.in(x.tagID,p.ids)))}const tags=yield q.orderByDescending((x=>x.count)).include((x=>x.tag)).toPagedList({size:10,cancelToken});return tags.items}))}downloadImage(item){return __awaiter(this,void 0,void 0,(function*(){const{publicFolderID,storeItemID}=item;const file=yield this.entityService.query(StoreMediaFile,"siteQuery",publicFolderID).where({storeItemID},(p=>x=>x.storeItemID===p.storeItemID&&x.isPreview===true)).include((x=>x.appFile)).orderBy((x=>x.sortOrder)).firstOrDefault({cacheVersion,cacheSeconds});if(!file){return}return StoreUrlService.assetImageUrl(item,file,350)}))}searchItems({start,search="",size=50,version=0,cancelToken}){var _a;return __awaiter(this,void 0,void 0,(function*(){let q=this.entityService.query(StoreItem,"storeQuery").where((x=>x.itemType in["product","service","resource","variant","e-product"]&&x.sizeForID===null));if(search){search=search+"%";const lowerSearch=search.trim().toLocaleLowerCase();q=q.where({search,lowerSearch},(p=>x=>Sql.text.iLike(x.name,p.search)||Sql.text.iLike(x.description,p.search)||x.sizes.some((s=>Sql.text.iLike(s.name,p.search)||Sql.text.iLike(s.description,p.search)))||x.variants.some((s=>Sql.text.iLike(s.name,p.search)||Sql.text.iLike(s.description,p.search)))||x.storeItemTags.some((t=>Sql.text.like(t.tag.lowerCaseName,p.lowerSearch)||Sql.text.like(t.tag.parent.lowerCaseName,p.lowerSearch)))))}if(this.tags.length){const ids=this.tags.map((t=>t.tagID));q=q.where({ids},(p=>x=>x.storeItemTags.some((st=>Sql.in(st.tagID,p.ids)))))}const items=yield q.orderByDescending((x=>x.storeItemID)).include((x=>[x.storeItemPrices,x.storeItemTags.forEach((t=>t.tag)),x.variantFor])).toPagedList({start,size,cancelToken});const tasks=[];for(const item of items.items){(_a=item.storeItemTags)===null||_a===void 0?void 0:_a.sort(((a,b)=>a.sortOrder-b.sortOrder))}return items}))}});__decorate([InjectProperty,__metadata("design:type",EntityService)],StoreProductListPage.prototype,"entityService",void 0);__decorate([Action({onEvent:"remove-tag"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],StoreProductListPage.prototype,"removeTag",null);__decorate([Action({onEvent:"select-tag"}),__metadata("design:type",Function),__metadata("design:paramtypes",[Object]),__metadata("design:returntype",void 0)],StoreProductListPage.prototype,"selectTag",null)}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/commands/StoreCommands");System.register(["@web-atoms/core/dist/core/Command"],(function(_export,_context){"use strict";var Command,Commands,StoreCommands;_export("default",void 0);return{setters:[function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default;Commands=_webAtomsCoreDistCoreCommand.Commands}],execute:function(){_export("default",StoreCommands=class StoreCommands extends Commands{});StoreCommands.orders=Command.create({route:"/store/orders",routeOrder:10,openPage:()=>_context.import("../pages/orders/StoreOrdersPage")});StoreCommands.order=Command.create({route:"/store/order/{journalID}",routeOrder:10,openPage:()=>_context.import("../pages/order/StoreOrderPage")});StoreCommands.buy=Command.create({route:"/store/buy/{productID}",routeOrder:10,openPage:()=>_context.import("../pages/buy/StoreBuyPage")});StoreCommands.productDetail=Command.create({route:"/store/{storeItemID}/{*name}",routeOrder:100,openPage:()=>_context.import("../pages/detail/StoreProductDetailPage")});StoreCommands.productList=Command.create({route:"/store",routeOrder:1e3,openPage:()=>_context.import("../pages/list/StoreProductListPage")})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/AtomOnce");System.register([],(function(_export,_context){"use strict";var AtomOnce;_export("AtomOnce",void 0);return{setters:[],execute:function(){_export("AtomOnce",AtomOnce=class AtomOnce{run(f){if(this.isRunning){return}let isAsync=false;try{this.isRunning=true;const p=f();if(p&&p.then&&p.catch){isAsync=true;p.then((()=>{this.isRunning=false})).catch((()=>{this.isRunning=false}))}}finally{if(!isAsync){this.isRunning=false}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/StyleBuilder");System.register([],(function(_export,_context){"use strict";var StyleBuilder;function cssNumberToString(n,unit="px"){if(typeof n==="number"){if(n===0){return n+""}return n+unit}return n}_export({cssNumberToString,default:void 0});return{setters:[],execute:function(){_export("default",StyleBuilder=class StyleBuilder{static get newStyle(){return new StyleBuilder}constructor(style){this.style=style;this.style=this.style||{}}toStyle(){return this.style}size(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({width,height})}roundBorder(radius){radius=cssNumberToString(radius);return this.merge({borderRadius:radius,padding:radius})}border(borderWidth,borderColor,borderStyle="solid"){borderWidth=cssNumberToString(borderWidth);return this.merge({borderWidth,borderStyle,borderColor})}center(width,height){width=cssNumberToString(width);height=cssNumberToString(height);return this.merge({position:"absolute",left:0,right:0,top:0,bottom:0,width,height,margin:"auto"})}absolute(left,top,right,bottom){left=cssNumberToString(left);top=cssNumberToString(top);if(right!==undefined){right=cssNumberToString(right);bottom=cssNumberToString(bottom);return this.merge({position:"absolute",left,top,right,bottom})}return this.merge({position:"absolute",left,top})}merge(style){return new StyleBuilder(Object.assign(Object.assign({},this.style),style))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WebBusyIndicatorService");System.register(["tslib","../../App","../../di/Inject","../../di/RegisterSingleton","../../services/BusyIndicatorService","../../services/NavigationService","../controls/AtomControl","../styles/StyleBuilder"],(function(_export,_context){"use strict";var __decorate,__metadata,App,Inject,RegisterSingleton,BusyIndicatorService,NavigationService,AtomControl,cssNumberToString,WebBusyIndicatorService;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_App){App=_App.App},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_controlsAtomControl){AtomControl=_controlsAtomControl.AtomControl},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString}],execute:function(){_export("WebBusyIndicatorService",WebBusyIndicatorService=class WebBusyIndicatorService extends BusyIndicatorService{constructor(){super(...arguments);this.zIndex=5e4;this.indicators=0}createIndicator(){const host=document.createElement("div");const popup=new AtomControl(this.app,host);host.className="indicator-host";const span=document.createElement("i");const divStyle=host.style;divStyle.position="absolute";divStyle.overflow="hidden";divStyle.left=divStyle.right=divStyle.bottom=divStyle.top="0";divStyle.zIndex=this.zIndex+++"";const spanStyle=span.style;spanStyle.position="absolute";spanStyle.margin="auto";spanStyle.width="16px";spanStyle.height="16px";spanStyle.overflow="hidden";spanStyle.maxHeight="100%";spanStyle.maxWidth="100%";spanStyle.left=spanStyle.right=spanStyle.bottom=spanStyle.top="0";span.className="fas fa-spinner fa-spin";host.appendChild(span);const ws=this.navigationService;const e=ws.getHostForElement();if(e){e.appendChild(host)}else{document.body.appendChild(host);ws.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,ws.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,ws.screen)}popup.registerDisposable({dispose:()=>{host.remove()}});return popup}});__decorate([Inject,__metadata("design:type",NavigationService)],WebBusyIndicatorService.prototype,"navigationService",void 0);__decorate([Inject,__metadata("design:type",App)],WebBusyIndicatorService.prototype,"app",void 0);_export("WebBusyIndicatorService",WebBusyIndicatorService=__decorate([RegisterSingleton],WebBusyIndicatorService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/Atom");System.register(["tslib"],(function(_export,_context){"use strict";var __awaiter,Atom;_export("Atom",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter}],execute:function(){_export("Atom",Atom=class Atom{static superProperty(tc,target,name){let c=tc;do{c=Object.getPrototypeOf(c);if(!c){throw new Error("No property descriptor found for "+name)}const pd=Object.getOwnPropertyDescriptor(c.prototype,name);if(!pd){continue}return pd.get.apply(target)}while(true)}static get(target,path){const segments=path.split(".");for(const iterator of segments){if(target===undefined||target===null){return target}target=target[iterator]}return target}static delay(n,ct){return new Promise(((resolve,reject)=>{const h={};h.id=setTimeout((()=>{resolve()}),n);if(ct){ct.registerForCancel((()=>{clearTimeout(h.id);reject(new Error("cancelled"))}))}}))}static encodeParameters(p){if(!p){return""}let s="";for(const key in p){if(p.hasOwnProperty(key)){const element=p[key];let v=element;if(v===undefined||v===null){continue}if(v instanceof Date){v=v.toISOString()}else if(typeof element==="object"){v=JSON.stringify(element)}if(s){s+="&"}s+=`${key}=${encodeURIComponent(v)}`}}return s}static url(url,query,hash){if(!url){return url}let p=this.encodeParameters(query);if(p){if(url.indexOf("?")===-1){url+="?"}else{url+="&"}url+=p}p=this.encodeParameters(hash);if(p){if(url.indexOf("#")===-1){url+="#"}else{url+="&"}url+=p}return url}static postAsync(app,f){return new Promise(((resolve,reject)=>{app.callLater((()=>__awaiter(this,void 0,void 0,(function*(){try{resolve(yield f())}catch(error){reject(error)}}))))}))}});Atom.designMode=false}}}));AmdLoader.instance.setup("@web-atoms/core/dist/core/FormattedError");System.register([],(function(_export,_context){"use strict";var FormattedError;_export("default",void 0);return{setters:[],execute:function(){_export("default",FormattedError=class FormattedError{constructor(msg){const e=new Error(msg.toString());e.formattedMessage=msg;e.__proto__=FormattedError.prototype;return e}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/baseTypes");System.register([],(function(_export,_context){"use strict";function registerInit(target,fx){const t=target;const inits=t._$_inits=t._$_inits||[];inits.push(fx)}_export("registerInit",registerInit);return{setters:[],execute:function(){}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomViewModel");System.register(["tslib","../App","../Atom","../core/AtomBinder","../core/AtomDisposableList","../core/AtomWatcher","../core/BindableProperty","../di/Inject","./baseTypes"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomBinder,AtomDisposableList,AtomWatcher,BindableProperty,Inject,registerInit,AtomViewModel;function runDecoratorInits(){const v=this.constructor.prototype;if(!v){return}const ris=v._$_inits;if(ris){for(const ri of ris){ri.call(this,this)}}}function privateInit(){return __awaiter(this,void 0,void 0,(function*(){try{yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){runDecoratorInits.apply(this)}))));yield Atom.postAsync(this.app,(()=>__awaiter(this,void 0,void 0,(function*(){yield this.init();this.onReady()}))));if(this.postInit){for(const i of this.postInit){i()}this.postInit=null}}finally{const pi=this.pendingInits;this.pendingInits=null;for(const iterator of pi){iterator()}}}))}function waitForReady(vm){return __awaiter(this,void 0,void 0,(function*(){while(vm.pendingInits){yield Atom.delay(100)}}))}function Receive(...channel){return(target,key)=>{registerInit(target,(vm=>{const fx=vm[key];const a=(ch,d)=>{const p=fx.call(vm,ch,d);if(p&&p.then&&p.catch){p.catch((e=>{console.warn(e)}))}};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,a))}}))}}function BindableReceive(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=(cx,m)=>{vm[key]=m};const ivm=vm;for(const c of channel){ivm.registerDisposable(ivm.app.subscribe(c,fx))}}));return bp}}function BindableBroadcast(...channel){return(target,key)=>{const bp=BindableProperty(target,key);registerInit(target,(vm=>{const fx=t=>{const v=vm[key];for(const c of channel){vm.app.broadcast(c,v)}};const d=new AtomWatcher(vm,[key.split(".")],fx);d.init();vm.registerDisposable(d)}));return bp}}function Watch(target,key,descriptor){registerInit(target,(vm=>{const ivm=vm;if(descriptor&&descriptor.get){ivm.setupWatch(descriptor.get,(()=>{vm.refresh(key.toString())}));return}ivm.setupWatch(vm[key])}))}function CachedWatch(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const ivm=vm;const fieldName=`_${key}`;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){const c=ivm[fieldName]||(ivm[fieldName]={value:getMethod.apply(ivm)});return c.value}});ivm.setupWatch(getMethod,(()=>{ivm[fieldName]=null;AtomBinder.refreshValue(ivm,key)}))}))}function Validate(target,key,descriptor){const getMethod=descriptor.get;descriptor.get=()=>null;registerInit(target,(vm=>{const initialized={i:false};const ivm=vm;Object.defineProperty(ivm,key,{enumerable:true,configurable:true,get(){if(vm.mShouldValidate&&initialized.i){return getMethod.apply(this)}return null}});ivm.setupWatch(getMethod,(()=>{initialized.i=true;vm.refresh(key.toString())}),true,key.toString());return}))}_export({waitForReady,Receive,BindableReceive,BindableBroadcast,Watch,CachedWatch,Validate});return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomBinder){AtomBinder=_coreAtomBinder.AtomBinder},function(_coreAtomDisposableList){AtomDisposableList=_coreAtomDisposableList.AtomDisposableList},function(_coreAtomWatcher){AtomWatcher=_coreAtomWatcher.AtomWatcher},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_diInject){Inject=_diInject.Inject},function(_baseTypes){registerInit=_baseTypes.registerInit}],execute:function(){_export("AtomViewModel",AtomViewModel=class AtomViewModel{get isReady(){return this.pendingInits===null}get errors(){const e=[];if(!this.mShouldValidate){return e}for(const v of this.validations){if(!v.initialized){return e}const error=this[v.name];if(error){e.push({name:v.name,error})}}return e}get parent(){return this.mParent}set parent(v){if(this.mParent&&this.mParent.mChildren){this.mParent.mChildren.remove(this)}this.mParent=v;if(v){const c=v.mChildren||(v.mChildren=[]);c.add(this);this.registerDisposable({dispose:()=>{c.remove(this)}})}}get isValid(){let valid=true;const validateWasFalse=this.mShouldValidate===false;this.mShouldValidate=true;for(const v of this.validations){if(!v.initialized){v.watcher.init(true);v.initialized=true}if(this[v.name]){if(validateWasFalse){AtomBinder.refreshValue(this,v.name)}valid=false}}if(this.mChildren){for(const child of this.mChildren){if(!child.isValid){valid=false}}}AtomBinder.refreshValue(this,"errors");return valid}constructor(app){this.app=app;this.disposables=null;this.validations=[];this.pendingInits=[];this.mShouldValidate=false;this.app.runAsync((()=>privateInit.apply(this)))}resetValidations(resetChildren=true){this.mShouldValidate=false;for(const v of this.validations){this.refresh(v.name)}if(resetChildren&&this.mChildren){for(const iterator of this.mChildren){iterator.resetValidations(resetChildren)}}}runAfterInit(f){if(this.pendingInits){this.pendingInits.push(f);return}f()}refresh(name){AtomBinder.refreshValue(this,name)}init(){return __awaiter(this,void 0,void 0,(function*(){}))}dispose(){if(this.disposables){this.disposables.dispose()}}registerDisposable(d){this.disposables=this.disposables||new AtomDisposableList;return this.disposables.add(d)}onReady(){}setupWatch(ft,proxy,forValidation,name){const d=new AtomWatcher(this,ft,proxy,this);if(forValidation){this.validations=this.validations||[];this.validations.push({name,watcher:d,initialized:false})}else{d.init()}return this.registerDisposable(d)}onPropertyChanged(name){}});_export("AtomViewModel",AtomViewModel=__decorate([__param(0,Inject),__metadata("design:paramtypes",[App])],AtomViewModel))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/view-model/AtomWindowViewModel");System.register(["tslib","../services/NavigationService","./AtomViewModel"],(function(_export,_context){"use strict";var __awaiter,NavigationService,AtomViewModel,AtomWindowViewModel;_export("AtomWindowViewModel",void 0);return{setters:[function(_tslib){__awaiter=_tslib.__awaiter},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_AtomViewModel){AtomViewModel=_AtomViewModel.AtomViewModel}],execute:function(){_export("AtomWindowViewModel",AtomWindowViewModel=class AtomWindowViewModel extends AtomViewModel{close(result){this.app.broadcast(`atom-window-close:${this.windowName}`,result)}cancel(){return __awaiter(this,void 0,void 0,(function*(){if(this.closeWarning){const navigationService=this.app.resolve(NavigationService);if(!(yield navigationService.confirm(this.closeWarning,"Are you sure?"))){return false}}this.app.broadcast(`atom-window-cancel:${this.windowName}`,"cancelled");return true}))}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomWindowStyle");System.register(["@web-atoms/core/src/web/images/close-button-hover.svg","../styles/AtomStyle"],(function(_export,_context){"use strict";var closeButtonHover,AtomStyle,AtomWindowStyle;_export("AtomWindowStyle",void 0);return{setters:[function(_webAtomsCoreSrcWebImagesCloseButtonHoverSvg){closeButtonHover=_webAtomsCoreSrcWebImagesCloseButtonHoverSvg.default},function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomWindowStyle",AtomWindowStyle=class AtomWindowStyle extends AtomStyle{get root(){return Object.assign(Object.assign({},this.frameHost),{subclasses:{" .close-button":this.closeButton," .command-bar-presenter":this.commandBarPresenter," .command-bar":this.commandBar," .content-presenter":this.contentPresenter," .content":this.content," .frame":this.frame," .title":this.title," .title-host":this.titleHost," .title-presenter":this.titlePresenter}})}get frameHost(){return{position:"absolute",left:0,right:0,top:0,bottom:0,backgroundColor:"#50505080"}}get frame(){return{position:"absolute",minHeight:"100px",minWidth:"300px",margin:"auto",border:"solid 1px #808080",borderRadius:"5px",backgroundColor:"white"}}get titlePresenter(){return{position:"relative",left:0,right:0,top:0,height:"37px"}}get titleHost(){return{position:"absolute",left:0,right:0,padding:"7px",minHeight:"32px",backgroundColor:"#404040",color:"white",top:0,borderTopRightRadius:"4px",borderTopLeftRadius:"4px"}}get title(){return{margin:"auto"}}get closeButton(){return{position:"absolute",right:"6px",top:"7px",width:"0",height:"0",padding:"9px",border:"none",backgroundColor:"transparent",backgroundImage:closeButtonHover}}get content(){return{}}get contentPresenter(){return{position:"relative",padding:"10px",background:"white"}}get commandBarPresenter(){return{left:0,right:0,bottom:0,padding:"5px",backgroundColor:"#d4d4d4",textAlign:"right",borderBottomRightRadius:"4px",borderBottomLeftRadius:"4px"}}get commandBar(){return{subclasses:{" button":{borderRadius:"3px",marginLeft:"5px",marginRight:"5px",padding:"4px 16px",backgroundColor:"whitesmoke",border:"1px solid gray"}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomAlertWindowStyle");System.register(["../../core/Colors","./AtomWindowStyle"],(function(_export,_context){"use strict";var Colors,AtomWindowStyle,AtomAlertWindowStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomWindowStyle){AtomWindowStyle=_AtomWindowStyle.AtomWindowStyle}],execute:function(){_export("default",AtomAlertWindowStyle=class AtomAlertWindowStyle extends AtomWindowStyle{get titleHost(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"titleHost")),{color:Colors.black,backgroundColor:Colors.white})}get contentPresenter(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"contentPresenter")),{padding:"0px 10px 30px 10px",textAlign:"center",color:Colors.rgba(51,51,51)})}get commandBar(){return Object.assign(Object.assign({},this.getBaseProperty(AtomAlertWindowStyle,"commandBar")),{textAlign:"center",subclasses:{" button":this.buttonStyle," .yes-button":{backgroundColor:Colors.rgba(0,128,0)}," .no-button":{backgroundColor:Colors.rgba(255,0,0)}}})}get buttonStyle(){return{border:"none",color:Colors.white,width:"50%",height:"40px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomTemplate");System.register(["./AtomControl"],(function(_export,_context){"use strict";var AtomControl,AtomTemplate;_export("AtomTemplate",void 0);return{setters:[function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("AtomTemplate",AtomTemplate=class AtomTemplate extends AtomControl{})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomWindow");System.register(["../../App","../../core/Bind","../../core/XNode","../styles/AtomWindowStyle","./AtomControl","./AtomTemplate"],(function(_export,_context){"use strict";var App,Bind,XNode,AtomWindowStyle,AtomControl,AtomTemplate,AtomWindowFrameTemplate,AtomWindowTitleTemplate,AtomWindow;function getTemplateParent(e){const tp=e._templateParent;if(tp){return tp}const p=e._logicalParent||e.parentElement;if(p){return getTemplateParent(p)}}_export({getTemplateParent,AtomWindowFrameTemplate:void 0,AtomWindow:void 0});return{setters:[function(_App){App=_App.App},function(_coreBind){Bind=_coreBind.default},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomWindowStyle){AtomWindowStyle=_stylesAtomWindowStyle.AtomWindowStyle},function(_AtomControl){AtomControl=_AtomControl.AtomControl},function(_AtomTemplate){AtomTemplate=_AtomTemplate.AtomTemplate}],execute:function(){_export("AtomWindowFrameTemplate",AtomWindowFrameTemplate=class AtomWindowFrameTemplate extends AtomTemplate{get templateParent(){return getTemplateParent(this.element)}preCreate(){this.titlePresenter=null;this.commandPresenter=null;this.contentPresenter=null;super.preCreate()}create(){this.render(XNode.create("div",{class:"frame",styleWidth:Bind.oneWay((()=>this.templateParent.width||undefined)),styleHeight:Bind.oneWay((()=>this.templateParent.height||undefined)),styleLeft:Bind.oneWay((()=>this.templateParent.x>=0?`${this.templateParent.x}px`:undefined)),styleTop:Bind.oneWay((()=>this.templateParent.y>=0?`${this.templateParent.y}px`:undefined)),styleMarginTop:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginLeft:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginRight:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined)),styleMarginBottom:Bind.oneWay((()=>this.templateParent.x>=0?"0":undefined))},XNode.create("div",{class:"title-presenter",presenter:Bind.presenter("titlePresenter")}),XNode.create("div",{class:"content-presenter",presenter:Bind.presenter("contentPresenter")}),XNode.create("div",{class:"command-bar-presenter",presenter:Bind.presenter("commandPresenter")})))}});AtomWindowTitleTemplate=class AtomWindowTitleTemplate extends AtomControl{get templateParent(){return getTemplateParent(this.element)}create(){this.render(XNode.create("div",{class:"title-host"},XNode.create("span",{class:"title",text:Bind.oneWay((()=>this.templateParent.title))}),XNode.create("button",{class:"close-button",eventClick:Bind.event((()=>this.templateParent.close()))})))}};_export("AtomWindow",AtomWindow=class AtomWindow extends AtomControl{constructor(){super(...arguments);this.title="";this.width="";this.height="";this.x=-1;this.y=-1;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;this.isReady=false}get templateParent(){return getTemplateParent(this.element)}onPropertyChanged(name){switch(name){case"windowTemplate":case"commandTemplate":case"frameTemplate":this.invalidate();break}}close(){const vm=this.viewModel;if(vm.cancel){this.app.runAsync((()=>vm.cancel()));return}const message=`atom-window-cancel:${this.id}`;const device=this.app.resolve(App);device.broadcast(message,"cancelled")}onUpdateUI(){if(!(this.windowTemplate&&this.frameTemplate)){return}if(this.isReady){return}this.bind(this.element,"title",[["viewModel","title"]]);const frame=new this.frameTemplate(this.app);const fe=frame.element;const titleContent=new this.titleTemplate(this.app);titleContent.element._templateParent=this;frame.titlePresenter.appendChild(titleContent.element);this.setupDragging(frame.titlePresenter);this.element.classList.add("frame-host");fe._logicalParent=this.element;fe._templateParent=this;if(!frame.contentPresenter){throw new Error("ContentPresenter must be set inside frameTemplate before creating window")}const content=new this.windowTemplate(this.app);content.element._templateParent=this;this.setElementClass(content.element,{content:1});frame.contentPresenter.appendChild(content.element);if(this.commandTemplate){if(!frame.commandPresenter){throw new Error("CommandPresenter must be set inside frameTemplate"+"before creating window if command template is present")}const command=new this.commandTemplate(this.app);command.element._templateParent=this;this.setElementClass(command.element,{"command-bar":1});frame.commandPresenter.appendChild(command.element)}this.append(frame);setTimeout((()=>{this.centerFrame(frame.element)}),100);this.isReady=true}preCreate(){this.defaultControlStyle=AtomWindowStyle;this.title=null;this.width="";this.height="";this.x=-1;this.y=-1;this.windowTemplate=null;this.commandTemplate=null;this.titleTemplate=AtomWindowTitleTemplate;this.frameTemplate=AtomWindowFrameTemplate;super.preCreate();this.render(XNode.create("div",{styleClass:Bind.oneTime((()=>this.controlStyle.name))}))}centerFrame(e){if(!this.element){return}const parent=this.element.parentElement;if(parent===window||parent===document.body){return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerFrame(e)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;this.x=x;this.y=y;e.style.opacity="1";this.element.style.removeProperty("opacity")}setupDragging(tp){this.bindEvent(tp,"mousedown",(startEvent=>{startEvent.preventDefault();const disposables=[];const offset={x:tp.parentElement.offsetLeft,y:tp.parentElement.offsetTop};const rect={x:startEvent.clientX,y:startEvent.clientY};const cursor=tp.style.cursor;tp.style.cursor="move";disposables.push(this.bindEvent(document.body,"mousemove",(moveEvent=>{const{clientX,clientY}=moveEvent;const dx=clientX-rect.x;const dy=clientY-rect.y;offset.x+=dx;offset.y+=dy;this.x=offset.x;this.y=offset.y;rect.x=clientX;rect.y=clientY})));disposables.push(this.bindEvent(document.body,"mouseup",(endEvent=>{tp.style.cursor=cursor;for(const iterator of disposables){iterator.dispose()}})))}))}});AtomWindow.windowTemplate=XNode.prepare("windowTemplate",true,true);AtomWindow.commandTemplate=XNode.prepare("commandTemplate",true,true);AtomWindow.titleTemplate=XNode.prepare("titleTemplate",true,true);AtomWindow.frameTemplate=XNode.prepare("frameTemplate",true,true)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomAlertWindow");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../../view-model/AtomWindowViewModel","../styles/AtomAlertWindowStyle","./AtomWindow"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomWindowViewModel,AtomAlertWindowStyle,AtomWindow,AtomAlertWindow,AtomAlertViewModel;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_stylesAtomAlertWindowStyle){AtomAlertWindowStyle=_stylesAtomAlertWindowStyle.default},function(_AtomWindow){AtomWindow=_AtomWindow.AtomWindow}],execute:function(){_export("default",AtomAlertWindow=class AtomAlertWindow extends AtomWindow{create(){this.defaultControlStyle=AtomAlertWindowStyle;this.viewModel=this.resolve(AtomAlertViewModel);this.render(XNode.create(AtomWindow,{title:Bind.oneWay((()=>this.viewModel.title))},XNode.create(AtomWindow.windowTemplate,null,XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message))})),XNode.create(AtomWindow.commandTemplate,null,XNode.create("div",null,XNode.create("button",{class:"yes-button",styleDisplay:Bind.oneWay((()=>this.viewModel.okTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.okTitle)),eventClick:()=>this.viewModel.onOkClicked()}),XNode.create("button",{class:"no-button",styleMarginBottom:Bind.oneWay((()=>this.viewModel.cancelTitle?"0":"10px")),styleDisplay:Bind.oneWay((()=>this.viewModel.cancelTitle?"":"none")),text:Bind.oneWay((()=>this.viewModel.cancelTitle)),eventClick:()=>this.viewModel.onCancelClicked()})))))}});AtomAlertViewModel=class AtomAlertViewModel extends AtomWindowViewModel{onOkClicked(){this.close(true)}onCancelClicked(){this.cancel()}};__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"title",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"message",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"okTitle",void 0);__decorate([BindableProperty,__metadata("design:type",String)],AtomAlertViewModel.prototype,"cancelTitle",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomNotificationStyle");System.register(["../../core/Colors","./AtomStyle"],(function(_export,_context){"use strict";var Colors,AtomStyle,AtomNotificationStyle;_export("default",void 0);return{setters:[function(_coreColors){Colors=_coreColors.default},function(_AtomStyle){AtomStyle=_AtomStyle.AtomStyle}],execute:function(){_export("default",AtomNotificationStyle=class AtomNotificationStyle extends AtomStyle{get root(){return{padding:"5px",borderRadius:"5px",border:"solid 1px lightgray",fontFamily:"Verdana, Geneva, sans-serif",fontSize:"16px",subclasses:{".error":{borderColor:Colors.red,color:Colors.red},".warning":{backgroundColor:Colors.lightYellow}}}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/controls/AtomNotification");System.register(["tslib","../../core/Bind","../../core/BindableProperty","../../core/XNode","../styles/AtomNotificationStyle","./AtomControl"],(function(_export,_context){"use strict";var __decorate,__metadata,Bind,BindableProperty,XNode,AtomNotificationStyle,AtomControl,AtomNotification;_export("default",void 0);return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata},function(_coreBind){Bind=_coreBind.default},function(_coreBindableProperty){BindableProperty=_coreBindableProperty.BindableProperty},function(_coreXNode){XNode=_coreXNode.default},function(_stylesAtomNotificationStyle){AtomNotificationStyle=_stylesAtomNotificationStyle.default},function(_AtomControl){AtomControl=_AtomControl.AtomControl}],execute:function(){_export("default",AtomNotification=class AtomNotification extends AtomControl{constructor(){super(...arguments);this.timeout=5e3;this.timeoutKey=null}onPropertyChanged(name){switch(name){case"timeout":this.setupTimeout();break}}create(){this.defaultControlStyle=AtomNotificationStyle;this.render(XNode.create("div",{formattedText:Bind.oneWay((()=>this.viewModel.message)),timeout:Bind.oneWay((()=>this.viewModel.timeout||5e3)),styleClass:Bind.oneWay((()=>({[this.controlStyle.name]:1,error:this.viewModel.type&&/error/i.test(this.viewModel.type),warning:this.viewModel.type&&/warn/i.test(this.viewModel.type)})))}))}setupTimeout(){if(this.timeoutKey){clearTimeout(this.timeoutKey)}this.timeoutKey=setTimeout((()=>{if(this.element){this.app.broadcast(`atom-window-close:${this.id}`,"")}}),this.timeout)}});__decorate([BindableProperty,__metadata("design:type",Number)],AtomNotification.prototype,"timeout",void 0)}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomPopupStyle");System.register(["../styles/AtomStyle"],(function(_export,_context){"use strict";var AtomStyle,AtomPopupStyle;_export("AtomPopupStyle",void 0);return{setters:[function(_stylesAtomStyle){AtomStyle=_stylesAtomStyle.AtomStyle}],execute:function(){_export("AtomPopupStyle",AtomPopupStyle=class AtomPopupStyle extends AtomStyle{get root(){return{backgroundColor:"white",border:"solid 1px lightgray",padding:"5px",borderRadius:"5px"}}})}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/NotificationPopup");System.register(["../../core/XNode","./PopupService","./NotifcationPopup.global.less"],(function(_export,_context){"use strict";var XNode,PopupWindow,css;function NotificationPopup({message,type}){return class Notification extends PopupWindow{create(){if(message instanceof XNode){this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)}},message));return}this.render(XNode.create("div",{styleClass:{[css]:1,error:/error/i.test(type),warning:/warn/i.test(type)},formattedText:message}))}}}_export("default",NotificationPopup);return{setters:[function(_coreXNode){XNode=_coreXNode.default},function(_PopupService){PopupWindow=_PopupService.PopupWindow},function(_NotifcationPopupGlobalLess){}],execute:function(){css="web-atoms-notification-popup"}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/services/WindowService");System.register(["tslib","../../App","../../Atom","../../core/AtomLoader","../../core/AtomUri","../../core/FormattedError","../../core/FormattedString","../../core/types","../../di/Inject","../../di/RegisterSingleton","../../di/ServiceCollection","../../services/JsonService","../../services/NavigationService","../../view-model/AtomWindowViewModel","../../web/core/AtomUI","../controls/AtomAlertWindow","../controls/AtomNotification","../controls/AtomWindow","../styles/AtomPopupStyle","../styles/AtomStyleSheet","../styles/StyleBuilder","./NotificationPopup","./PopupService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,__param,App,Atom,AtomLoader,AtomUri,FormattedError,FormattedString,CancelToken,Inject,RegisterSingleton,Scope,ServiceCollection,JsonService,NavigationService,AtomWindowViewModel,AtomUI,AtomAlertWindow,AtomNotification,AtomWindow,AtomPopupStyle,AtomStyleSheet,cssNumberToString,NotificationPopup,PopupService,WindowService;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_Atom){Atom=_Atom.Atom},function(_coreAtomLoader){AtomLoader=_coreAtomLoader.AtomLoader},function(_coreAtomUri){AtomUri=_coreAtomUri.AtomUri},function(_coreFormattedError){FormattedError=_coreFormattedError.default},function(_coreFormattedString){FormattedString=_coreFormattedString.default},function(_coreTypes){CancelToken=_coreTypes.CancelToken},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_diServiceCollection){Scope=_diServiceCollection.Scope;ServiceCollection=_diServiceCollection.ServiceCollection},function(_servicesJsonService){JsonService=_servicesJsonService.JsonService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_viewModelAtomWindowViewModel){AtomWindowViewModel=_viewModelAtomWindowViewModel.AtomWindowViewModel},function(_webCoreAtomUI){AtomUI=_webCoreAtomUI.AtomUI},function(_controlsAtomAlertWindow){AtomAlertWindow=_controlsAtomAlertWindow.default},function(_controlsAtomNotification){AtomNotification=_controlsAtomNotification.default},function(_controlsAtomWindow){AtomWindow=_controlsAtomWindow.AtomWindow},function(_stylesAtomPopupStyle){AtomPopupStyle=_stylesAtomPopupStyle.AtomPopupStyle},function(_stylesAtomStyleSheet){AtomStyleSheet=_stylesAtomStyleSheet.AtomStyleSheet},function(_stylesStyleBuilder){cssNumberToString=_stylesStyleBuilder.cssNumberToString},function(_NotificationPopup){NotificationPopup=_NotificationPopup.default},function(_PopupService){PopupService=_PopupService.default}],execute:function(){_export("WindowService",WindowService=class WindowService extends NavigationService{get title(){return window.document.title}set title(v){window.document.title=v}get location(){return new AtomUri(location.href)}set location(v){location.href=v.toString()}constructor(app,jsonService){super(app);this.jsonService=jsonService;this.popups=[];this.hostForElementFunc=[];this.lastPopupID=0;this.screen=app.screen;let st="desktop";if(/mobile|android|ios/i.test(window.navigator.userAgent)){st="mobile";if(/tablet/i.test(window.navigator.userAgent)){st="tablet"}}this.screen.screenType=st;if(window){const update=e=>{this.refreshScreen()};if(st!=="mobile"){window.addEventListener("resize",update);window.addEventListener("scroll",update);document.body.addEventListener("scroll",update);document.body.addEventListener("resize",update)}setTimeout((()=>{update(null)}),1e3)}}registerHostForWindow(f){this.hostForElementFunc.push(f);return{dispose:()=>{this.hostForElementFunc.remove(f)}}}navigate(url){location.href=url}back(){window.history.back()}register(id,type){ServiceCollection.instance.register(type,null,Scope.Transient,id)}confirm(message,title){return PopupService.confirm({message,title})}alert(message,title){if(!(message instanceof FormattedString||typeof message==="string")){if(message instanceof FormattedError){message=message.formattedMessage}else{message=message.message?message.message:message.toString()}}return PopupService.alert({message,title})}refresh(){location.reload()}getHostForElement(){const ce=PopupService.lastTarget;if(!ce){return null}for(const iterator of this.hostForElementFunc){const e=iterator(ce);if(e){return e}}return null}refreshScreen(){const height=this.screen.height=window.innerHeight||document.body.clientHeight;const width=this.screen.width=window.innerWidth||document.body.clientWidth;this.screen.scrollLeft=window.scrollX||document.body.scrollLeft||0;this.screen.scrollTop=window.scrollY||document.body.scrollTop||0;this.screen.orientation=width>height?"landscape":"portrait"}notify(message,title,type,delay){return __awaiter(this,void 0,void 0,(function*(){try{const notification=NotificationPopup({message,type});const cancelToken=new CancelToken(delay!==null&&delay!==void 0?delay:5e3);yield notification.showWindow(notification,{title,cancelToken})}catch(ex){console.error(ex)}}))}openWindow(url,options){return __awaiter(this,void 0,void 0,(function*(){yield Atom.delay(1);const lastTarget=PopupService.lastTarget;const{view:popup,returnPromise,disposables}=yield AtomLoader.loadView(url,this.app,true,(()=>this.app.resolve(AtomWindowViewModel,true)));if(options&&options.onInit){options.onInit(popup)}const cancelToken=options.cancelToken;if(cancelToken){if(cancelToken.cancelled){this.app.callLater((()=>{this.remove(popup,true)}))}cancelToken.registerForCancel((()=>{this.remove(popup,true)}))}const e=popup.element;let isPopup=true;if(popup instanceof AtomWindow){isPopup=false;e.style.opacity="0"}popup.registerDisposable({dispose:()=>{PopupService.lastTarget=lastTarget}});if(isPopup){const root=popup.element;const last=PopupService.lastTarget;const closePopup=et=>{let target=et.target;while(target){if(target===root||target===last){return}target=target.parentElement}this.remove(popup,true)};document.body.addEventListener("click",closePopup);popup.registerDisposable({dispose:()=>{document.body.removeEventListener("click",closePopup)}})}e._logicalParent=lastTarget;e.sourceUrl=url;const pvm=popup.viewModel;if(pvm){let ce=PopupService.lastTarget;if(ce){while(!ce.atomControl){ce=ce.parentElement;if(!ce){break}}if(ce&&ce.atomControl&&ce.atomControl.viewModel){pvm.parent=ce.atomControl.viewModel}}}const theme=this.app.get(AtomStyleSheet).getNamedStyle(AtomPopupStyle);e.style.zIndex=1e4+this.lastPopupID+"";const isNotification=popup instanceof AtomNotification;if(isPopup){const sr=AtomUI.screenOffset(PopupService.lastTarget);const x=sr.x;const y=sr.y;const h=sr.height;e.style.position="absolute";e.style.left=x+"px";e.style.top=y+h+"px";e.classList.add(theme.name);this.popups.push(popup);disposables.add((()=>{this.popups.remove(popup)}));document.body.appendChild(e);if(isNotification){e.style.opacity="0";this.centerElement(popup)}}else{const eHost=(options===null||options===void 0?void 0:options.modal)?null:this.getHostForElement();if(eHost){eHost.appendChild(e)}else{const host=document.createElement("div");document.body.appendChild(host);host.style.position="absolute";host.appendChild(e);disposables.add({dispose(){host.remove()}});this.refreshScreen();popup.bind(host,"styleLeft",[["this","scrollLeft"]],false,cssNumberToString,this.screen);popup.bind(host,"styleTop",[["this","scrollTop"]],false,cssNumberToString,this.screen);popup.bind(host,"styleWidth",[["this","width"]],false,cssNumberToString,this.screen);popup.bind(host,"styleHeight",[["this","height"]],false,cssNumberToString,this.screen)}}popup.bindEvent(document.body,"keyup",(keyboardEvent=>{if(keyboardEvent.key==="Escape"){this.app.runAsync((()=>this.remove(popup)))}}));disposables.add({dispose:()=>{e.innerHTML="";e.remove()}});return yield returnPromise}))}centerElement(c){const e=c.element;const parent=e.parentElement;if(parent===window||parent===document.body){setTimeout((()=>{const ew=(document.body.offsetWidth-e.offsetWidth)/2;const eh=window.scrollY+(window.innerHeight-e.offsetHeight)/2;e.style.left=`${ew}px`;e.style.top=`${eh}px`;e.style.removeProperty("opacity")}),200);return}if(parent.offsetWidth<=0||parent.offsetHeight<=0){setTimeout((()=>{this.centerElement(c)}),100);return}if(e.offsetWidth<=0||e.offsetHeight<=0){setTimeout((()=>{this.centerElement(c)}),100);return}const x=(parent.offsetWidth-e.offsetWidth)/2;const y=(parent.offsetHeight-e.offsetHeight)/2;e.style.left=`${x}px`;e.style.top=`${y}px`;e.style.removeProperty("opacity")}});WindowService.alertWindow=AtomAlertWindow;_export("WindowService",WindowService=__decorate([RegisterSingleton,__param(0,Inject),__param(1,Inject),__metadata("design:paramtypes",[App,JsonService])],WindowService))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/styles/AtomTheme");System.register(["tslib","../../App","../../core/Colors","../../di/Inject","../../di/RegisterSingleton","../../services/NavigationService","../styles/AtomStyleSheet"],(function(_export,_context){"use strict";var __decorate,__metadata,__param,App,Colors,Inject,RegisterSingleton,NavigationService,AtomStyleSheet,AtomTheme;return{setters:[function(_tslib){__decorate=_tslib.__decorate;__metadata=_tslib.__metadata;__param=_tslib.__param},function(_App){App=_App.App},function(_coreColors){Colors=_coreColors.default},function(_diInject){Inject=_diInject.Inject},function(_diRegisterSingleton){RegisterSingleton=_diRegisterSingleton.RegisterSingleton},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_stylesAtomStyleSheet){AtomStyleSheet=_stylesAtomStyleSheet.AtomStyleSheet}],execute:function(){_export("AtomTheme",AtomTheme=class AtomTheme extends AtomStyleSheet{constructor(app,navigationService){super(app,"atom-theme");this.navigationService=navigationService;this.bgColor=Colors.white;this.color=Colors.gray;this.hoverColor=Colors.lightGray;this.activeColor=Colors.lightBlue;this.selectedBgColor=Colors.blue;this.selectedColor=Colors.white;this.padding=5;setTimeout((()=>{window.addEventListener("resize",(()=>{setTimeout((()=>{this.pushUpdate()}),10)}));document.body.addEventListener("resize",(()=>{setTimeout((()=>{this.pushUpdate()}),10)}))}),1e3)}});_export("AtomTheme",AtomTheme=__decorate([RegisterSingleton,__param(0,Inject),__param(1,Inject),__metadata("design:paramtypes",[App,NavigationService])],AtomTheme))}}}));AmdLoader.instance.setup("@web-atoms/core/dist/web/WebApp");System.register(["../App","../core/AtomOnce","../core/AtomUri","../di/ServiceCollection","../services/BusyIndicatorService","../services/NavigationService","./services/WebBusyIndicatorService","./services/WindowService","./styles/AtomStyleSheet","./styles/AtomTheme"],(function(_export,_context){"use strict";var App,AtomOnce,AtomUri,ServiceCollection,BusyIndicatorService,NavigationService,WebBusyIndicatorService,WindowService,AtomStyleSheet,AtomTheme,WebApp;_export("default",void 0);return{setters:[function(_App){App=_App.App},function(_coreAtomOnce){AtomOnce=_coreAtomOnce.AtomOnce},function(_coreAtomUri){AtomUri=_coreAtomUri.AtomUri},function(_diServiceCollection){ServiceCollection=_diServiceCollection.ServiceCollection},function(_servicesBusyIndicatorService){BusyIndicatorService=_servicesBusyIndicatorService.BusyIndicatorService},function(_servicesNavigationService){NavigationService=_servicesNavigationService.NavigationService},function(_servicesWebBusyIndicatorService){WebBusyIndicatorService=_servicesWebBusyIndicatorService.WebBusyIndicatorService},function(_servicesWindowService){WindowService=_servicesWindowService.WindowService},function(_stylesAtomStyleSheet){AtomStyleSheet=_stylesAtomStyleSheet.AtomStyleSheet},function(_stylesAtomTheme){AtomTheme=_stylesAtomTheme.AtomTheme}],execute:function(){_export("default",WebApp=class WebApp extends App{get parentElement(){return document.body}get root(){return this.mRoot}set root(v){const old=this.mRoot;if(old){old.dispose()}this.mRoot=v;if(!v){return}const pe=this.parentElement;const de=Array.from(pe.children);for(const iterator of de){iterator.remove()}pe.appendChild(v.element)}get theme(){return this.get(AtomStyleSheet)}set theme(v){this.put(AtomTheme,v);this.put(AtomStyleSheet,v)}get contextId(){var _a;(_a=this.mContextId)!==null&&_a!==void 0?_a:this.mContextId=parseInt((this.url.hash.contextId||"0").toString(),10);if(!this.mContextId){for(let index=0;index<100;index++){const cid=`contextId${index}`;const cidData=sessionStorage.getItem(`contextId${index}`);if(!cidData){this.mContextId=index;sessionStorage.setItem(cid,cid);this.url.hash.contextId=index;this.syncUrl();break}}}return`contextId_${this.mContextId}`}constructor(){super();this.hashUpdater=new AtomOnce;this.url=new AtomUri(location.href);this.put(NavigationService,this.resolve(WindowService));this.put(WebApp,this);this.put(BusyIndicatorService,this.resolve(WebBusyIndicatorService));ServiceCollection.instance.registerSingleton(AtomStyleSheet,(sp=>sp.resolve(AtomTheme)));window.addEventListener("hashchange",(()=>{this.hashUpdater.run((()=>{this.url=new AtomUri(location.href)}))}));this.initPromise=new Promise(((resolve,reject)=>{this.onReady(resolve)}))}updateDefaultStyle(textContent){if(this.styleElement){if(this.styleElement.textContent===textContent){return}}const ss=document.createElement("style");ss.textContent=textContent;if(this.styleElement){this.styleElement.remove()}document.head.appendChild(ss);this.styleElement=ss}syncUrl(){this.hashUpdater.run((()=>{const currentUrl=new AtomUri(location.href);const sourceHash=this.url.hash;const keyValues=[];let modified=false;for(const key in sourceHash){if(/^\_\$\_/.test(key)){continue}if(sourceHash.hasOwnProperty(key)){const element=sourceHash[key];const cv=currentUrl.hash[key];if(element!==undefined){keyValues.push({key,value:element})}if(cv===element){continue}modified=true}}if(!modified){return}const hash=keyValues.map((s=>`${s.key}=${encodeURIComponent(s.value)}`)).join("&");location.hash=hash}))}invokeReady(){if(document.readyState==="complete"){super.invokeReady();return}document.addEventListener("readystatechange",(e=>{super.invokeReady()}))}});(function(){if(typeof window.CustomEvent==="function"){return false}function CustomEvent(event,params){params=params||{bubbles:false,cancelable:false,detail:null};const evt=document.createEvent("CustomEvent");evt.initCustomEvent(event,params.bubbles,params.cancelable,params.detail);return evt}window.CustomEvent=CustomEvent})()}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/StoreApp");System.register(["tslib","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","../../style/GlobalStyle","@web-atoms/core/dist/Pack","@web-atoms/core/dist/core/Command","./commands/StoreCommands","@web-atoms/core/dist/core/Route","../../common/TestMode","@web-atoms/core/dist/web/WebApp","./StoreApp.local.less"],(function(_export,_context){"use strict";var __awaiter,__decorate,MobileDesktopApp,Pack,Command,StoreCommands,Route,AppLocation,WebApp,StoreApp;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_styleGlobalStyle){},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation},function(_webAtomsCoreDistWebWebApp){WebApp=_webAtomsCoreDistWebWebApp.default},function(_StoreAppLocalLess){}],execute:function(){if(AppLocation.isLocalTesting){WebApp.installStyleSheet("/styles/styler.css");WebApp.installStyleSheet("/styles/vars.css")}StoreApp=class StoreApp extends MobileDesktopApp{init(){return __awaiter(this,void 0,void 0,(function*(){StoreCommands.install(this);this.element.setAttribute("store-app","store-app");if(!Command.invokeRoute()){StoreCommands.productList.dispatch()}}))}};StoreApp=__decorate([Pack],StoreApp);_export("default",StoreApp);Route.encodeUrl=url=>{if(url.startsWith("#")){return url}if(AppLocation.isLocalTesting){return"#!"+url}return url}}}}));window.installStyleSheet(new URL("./StoreApp.pack.global.less.css",document.currentScript.src).toString());window.installStyleSheet(new URL("./StoreApp.pack.local.less.css",document.currentScript.src).toString());
36
36
  //# sourceMappingURL=StoreApp.pack.min.js.map