@social-mail/social-mail-client 1.2.665 → 1.2.667

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.
@@ -1077,7 +1077,7 @@ html, body {
1077
1077
  align-items: center;
1078
1078
  justify-items: center;
1079
1079
  }
1080
- `.installGlobal("[site-signup-page]");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}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 result=yield FetchBuilder.post("/social-mail/user/signup").jsonBody(this.model).responseAsJson()}))}});__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/SiteSignupPage");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/style/styled","@web-atoms/core/dist/core/sleep","@web-atoms/web-controls/dist/PageNavigator","./SiteSignupPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,XNode,Bind,Form,FormField,EmailIconTextButton,VerificationToken,ToggleButtonBar,PhoneEditor,Action,QRCodeControl,styled,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(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_SiteSignupPage){SiteSignupPage=_SiteSignupPage.default}],execute:function(){styled.css`
1080
+ `.installGlobal("[site-signup-page]");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 result=yield FetchBuilder.post("/social-mail/user/signup").jsonBody(this.model).responseAsJson()}))}});__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/SiteSignupPage");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/style/styled","@web-atoms/core/dist/core/sleep","@web-atoms/web-controls/dist/PageNavigator","./SiteSignupPage"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,XNode,Bind,Form,FormField,EmailIconTextButton,VerificationToken,ToggleButtonBar,PhoneEditor,Action,QRCodeControl,styled,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(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistCoreSleep){sleep=_webAtomsCoreDistCoreSleep.default},function(_webAtomsWebControlsDistPageNavigator){PageNavigator=_webAtomsWebControlsDistPageNavigator.default},function(_SiteSignupPage){SiteSignupPage=_SiteSignupPage.default}],execute:function(){styled.css`
1081
1081
  & [data-page-element=content] {
1082
1082
  display: grid;
1083
1083
  align-items: center;
@@ -1338,7 +1338,7 @@ html, body {
1338
1338
  & img {
1339
1339
  max-width: 90%;
1340
1340
  }
1341
- `.installLocal();_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)).responseAsText():Promise.resolve(""),specifications?FetchBuilder.get(signedUrl(specifications)).responseAsText():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])).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/public/store/pages/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/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","@web-atoms/core/dist/style/styled","../commands/StoreCommands","../StoreUrlService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,Action,AtomRepeater,ContentPage,InfiniteRepeater,formatPrice,Sql,StoreTag,StoreMediaFile,StoreItem,EntityService,styled,StoreCommands,StoreUrlService,StoreProductListPage;_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(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_StoreUrlService){StoreUrlService=_StoreUrlService.StoreUrlService}],execute:function(){styled.css`
1341
+ `.installLocal();_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)).responseAsText():Promise.resolve(""),specifications?FetchBuilder.get(signedUrl(specifications)).responseAsText():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/public/store/pages/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/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","@web-atoms/core/dist/style/styled","../commands/StoreCommands","../StoreUrlService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,Bind,InjectProperty,XNode,Action,AtomRepeater,ContentPage,InfiniteRepeater,formatPrice,Sql,StoreTag,StoreMediaFile,StoreItem,EntityService,styled,StoreCommands,StoreUrlService,StoreProductListPage;_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(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_StoreUrlService){StoreUrlService=_StoreUrlService.StoreUrlService}],execute:function(){styled.css`
1342
1342
 
1343
1343
  display:grid;
1344
1344
  grid-template-rows: auto 1fr auto;
@@ -1487,7 +1487,7 @@ html, body {
1487
1487
  grid-row: 3;
1488
1488
  }
1489
1489
 
1490
- `.installGlobal("[data-shopping-cart-list=shopping-cart-list]");_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;return XNode.create("div",{class:"store-item"},XNode.create("a",{class:"name",title:item.name||((_a=item.variantFor)===null||_a===void 0?void 0:_a.name)||item.name,text:item.name||((_b=item.variantFor)===null||_b===void 0?void 0:_b.name)||item.name,href:StoreCommands.productDetail.displayRoute(item)}),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:StoreCommands.productDetail.displayRoute(item)},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 file=yield this.entityService.query(StoreMediaFile,"siteQuery",item.publicFolderID).where((x=>x.isPreview===true)).orderBy((x=>x.sortOrder)).firstOrDefault();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/pages/StoreProductListPage");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/StoreOrdersPage")});StoreCommands.order=Command.create({route:"/store/order/{journalID}",routeOrder:10,openPage:()=>_context.import("../pages/StoreOrderPage")});StoreCommands.productDetail=Command.create({route:"/store/{storeItemID}",routeOrder:100,openPage:()=>_context.import("../pages/StoreProductDetailPage")});StoreCommands.productList=Command.create({route:"/store",routeOrder:1e3,openPage:()=>_context.import("../pages/StoreProductListPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/commands/StoreCommands");System.register(["tslib","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","../../style/GlobalStyle","@web-atoms/core/dist/Pack","./styles/common","@web-atoms/core/dist/core/Command","./commands/StoreCommands","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/core/Route","../../common/TestMode"],(function(_export,_context){"use strict";var __awaiter,__decorate,MobileDesktopApp,Pack,Command,StoreCommands,styled,Route,AppLocation,StoreApp;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_styleGlobalStyle){},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_stylesCommon){},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation}],execute:function(){styled.css`
1490
+ `.installGlobal("[data-shopping-cart-list=shopping-cart-list]");_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;return XNode.create("div",{class:"store-item"},XNode.create("a",{class:"name",title:item.name||((_a=item.variantFor)===null||_a===void 0?void 0:_a.name)||item.name,text:item.name||((_b=item.variantFor)===null||_b===void 0?void 0:_b.name)||item.name,href:StoreCommands.productDetail.displayRoute(item)}),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:StoreCommands.productDetail.displayRoute(item)},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 file=yield this.entityService.query(StoreMediaFile,"siteQuery",item.publicFolderID).where((x=>x.isPreview===true)).include((x=>x.appFile)).orderBy((x=>x.sortOrder)).firstOrDefault();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/pages/StoreProductListPage");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/StoreOrdersPage")});StoreCommands.order=Command.create({route:"/store/order/{journalID}",routeOrder:10,openPage:()=>_context.import("../pages/StoreOrderPage")});StoreCommands.productDetail=Command.create({route:"/store/{storeItemID}",routeOrder:100,openPage:()=>_context.import("../pages/StoreProductDetailPage")});StoreCommands.productList=Command.create({route:"/store",routeOrder:1e3,openPage:()=>_context.import("../pages/StoreProductListPage")})}}}));AmdLoader.instance.setup("@social-mail/social-mail-client/dist/public/store/commands/StoreCommands");System.register(["tslib","@web-atoms/web-controls/dist/desktop-app/MobileDesktopApp","../../style/GlobalStyle","@web-atoms/core/dist/Pack","./styles/common","@web-atoms/core/dist/core/Command","./commands/StoreCommands","@web-atoms/core/dist/style/styled","@web-atoms/core/dist/core/Route","../../common/TestMode"],(function(_export,_context){"use strict";var __awaiter,__decorate,MobileDesktopApp,Pack,Command,StoreCommands,styled,Route,AppLocation,StoreApp;return{setters:[function(_tslib){__awaiter=_tslib.__awaiter;__decorate=_tslib.__decorate},function(_webAtomsWebControlsDistDesktopAppMobileDesktopApp){MobileDesktopApp=_webAtomsWebControlsDistDesktopAppMobileDesktopApp.default},function(_styleGlobalStyle){},function(_webAtomsCoreDistPack){Pack=_webAtomsCoreDistPack.default},function(_stylesCommon){},function(_webAtomsCoreDistCoreCommand){Command=_webAtomsCoreDistCoreCommand.default},function(_commandsStoreCommands){StoreCommands=_commandsStoreCommands.default},function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default},function(_webAtomsCoreDistCoreRoute){Route=_webAtomsCoreDistCoreRoute.default},function(_commonTestMode){AppLocation=_commonTestMode.AppLocation}],execute:function(){styled.css`
1491
1491
  & [data-page-app=page-app] > [data-container] {
1492
1492
  position: static;
1493
1493
  overflow: auto !important;