@social-mail/social-mail-client 1.2.721 → 1.2.722
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/public/store/StoreApp.pack.js +4 -1
- package/dist/public/store/StoreApp.pack.js.map +1 -1
- package/dist/public/store/StoreApp.pack.min.js +1 -1
- package/dist/public/store/StoreApp.pack.min.js.map +1 -1
- package/dist/public/store/pages/StoreOrderPage.d.ts.map +1 -1
- package/dist/public/store/pages/StoreOrderPage.js +4 -1
- package/dist/public/store/pages/StoreOrderPage.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/public/store/pages/StoreOrderPage.tsx +7 -0
|
@@ -1083,7 +1083,7 @@ html, body {
|
|
|
1083
1083
|
align-items: center;
|
|
1084
1084
|
justify-items: center;
|
|
1085
1085
|
}
|
|
1086
|
-
`.installGlobal("[site-login-page]");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/pages/SiteLoginPage");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/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(_pagesSiteLoginPage){SiteLoginPage=_pagesSiteLoginPage.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/public/user/WebSiteUserService");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/common/date/DateFormats");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/public/store/pages/StoreOrdersPage");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/common/controls/Loader");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","../../../common/controls/Loader","../../../model/model","../../../common/date/DateFormats","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,XNode,Loader,StoreJournal,StoreJournalCoupon,DateFormats,AtomRepeater,Bind,AddIconTextButton,Action,DateTime,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(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_modelModel){StoreJournal=_modelModel.StoreJournal;StoreJournalCoupon=_modelModel.StoreJournalCoupon},function(_commonDateDateFormats){DateFormats=_commonDateDateFormats.DateFormats},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.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),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/StoreOrderPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/controls/Loader","@web-atoms/core/dist/core/InjectProperty","../../user/WebSiteUserService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,Loader,InjectProperty,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(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.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("@social-mail/social-mail-client/dist/public/store/pages/StoreBuyPage");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled,svgAsCssDataUrl,svg;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default;svgAsCssDataUrl=_webAtomsCoreDistStyleStyled.svgAsCssDataUrl}],execute:function(){svg=svgAsCssDataUrl(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">\x3c!--!Font Awesome Pro 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.--\x3e<path d="M502.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L336 130.7 336 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L502.6 54.6zM80 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L176 381.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L80 272z"/></svg>`);styled.css`
|
|
1086
|
+
`.installGlobal("[site-login-page]");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/pages/SiteLoginPage");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/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(_pagesSiteLoginPage){SiteLoginPage=_pagesSiteLoginPage.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/public/user/WebSiteUserService");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/common/date/DateFormats");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/public/store/pages/StoreOrdersPage");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/common/controls/Loader");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","../../../common/controls/Loader","../../../model/model","../../../common/date/DateFormats","@web-atoms/web-controls/dist/basic/AtomRepeater","@web-atoms/core/dist/core/Bind","../../../common/controls/buttons/IconButton","@web-atoms/core/dist/view-model/Action","@web-atoms/date-time/dist/DateTime"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,InjectProperty,ContentPage,EntityService,XNode,Loader,StoreJournal,StoreJournalCoupon,DateFormats,AtomRepeater,Bind,AddIconTextButton,Action,DateTime,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(_webAtomsCoreDistCoreXNode){XNode=_webAtomsCoreDistCoreXNode.default},function(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_modelModel){StoreJournal=_modelModel.StoreJournal;StoreJournalCoupon=_modelModel.StoreJournalCoupon},function(_commonDateDateFormats){DateFormats=_commonDateDateFormats.DateFormats},function(_webAtomsWebControlsDistBasicAtomRepeater){AtomRepeater=_webAtomsWebControlsDistBasicAtomRepeater.default},function(_webAtomsCoreDistCoreBind){Bind=_webAtomsCoreDistCoreBind.default},function(_commonControlsButtonsIconButton){AddIconTextButton=_commonControlsButtonsIconButton.AddIconTextButton},function(_webAtomsCoreDistViewModelAction){Action=_webAtomsCoreDistViewModelAction.default},function(_webAtomsDateTimeDistDateTime){DateTime=_webAtomsDateTimeDistDateTime.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/StoreOrderPage");System.register(["tslib","@web-atoms/core/dist/core/XNode","@web-atoms/web-controls/dist/mobile-app/MobileApp","../../../common/controls/Loader","@web-atoms/core/dist/core/InjectProperty","../../user/WebSiteUserService"],(function(_export,_context){"use strict";var __awaiter,__decorate,__metadata,XNode,ContentPage,Loader,InjectProperty,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(_commonControlsLoader){Loader=_commonControlsLoader.default},function(_webAtomsCoreDistCoreInjectProperty){InjectProperty=_webAtomsCoreDistCoreInjectProperty.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("@social-mail/social-mail-client/dist/public/store/pages/StoreBuyPage");System.register(["@web-atoms/core/dist/style/styled"],(function(_export,_context){"use strict";var styled,svgAsCssDataUrl,svg;return{setters:[function(_webAtomsCoreDistStyleStyled){styled=_webAtomsCoreDistStyleStyled.default;svgAsCssDataUrl=_webAtomsCoreDistStyleStyled.svgAsCssDataUrl}],execute:function(){svg=svgAsCssDataUrl(`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">\x3c!--!Font Awesome Pro 6.6.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license (Commercial License) Copyright 2024 Fonticons, Inc.--\x3e<path d="M502.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L336 130.7 336 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0L502.6 54.6zM80 272c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0L9.4 457.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L176 381.3l0 50.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L80 272z"/></svg>`);styled.css`
|
|
1087
1087
|
position: relative;
|
|
1088
1088
|
cursor: grab;
|
|
1089
1089
|
overflow: hidden;
|