@foxy.io/elements 1.21.3 → 1.21.5
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/cdn/foxy-access-recovery-form.js +1 -1
- package/dist/cdn/foxy-attribute-form.js +1 -1
- package/dist/cdn/foxy-cancellation-form.js +1 -1
- package/dist/cdn/foxy-cart-form.js +1 -1
- package/dist/cdn/foxy-coupon-code-form.js +1 -1
- package/dist/cdn/foxy-coupon-form.js +1 -1
- package/dist/cdn/foxy-custom-field-form.js +1 -1
- package/dist/cdn/foxy-customer-form.js +1 -1
- package/dist/cdn/foxy-customer-portal-settings.js +1 -1
- package/dist/cdn/foxy-customer-portal.js +1 -1
- package/dist/cdn/foxy-customer.js +1 -1
- package/dist/cdn/foxy-donation.js +1 -1
- package/dist/cdn/foxy-email-template-form.js +1 -1
- package/dist/cdn/foxy-gift-card-code-form.js +1 -1
- package/dist/cdn/foxy-gift-card-form.js +1 -1
- package/dist/cdn/foxy-item-form.js +1 -1
- package/dist/cdn/foxy-items-form.js +1 -1
- package/dist/cdn/foxy-report-form.js +1 -1
- package/dist/cdn/foxy-shipment-card.js +1 -1
- package/dist/cdn/foxy-sign-in-form.js +1 -1
- package/dist/cdn/foxy-subscription-form.js +1 -1
- package/dist/cdn/foxy-tax-form.js +1 -1
- package/dist/cdn/foxy-template-config-form.js +1 -1
- package/dist/cdn/foxy-template-form.js +1 -1
- package/dist/cdn/foxy-transaction.js +1 -1
- package/dist/cdn/foxy-user-form.js +1 -1
- package/dist/cdn/foxy-users-table.js +1 -1
- package/dist/cdn/{shared-f621ccee.js → shared-2adb2ad2.js} +1 -1
- package/dist/cdn/shared-2d1ef71c.js +1 -0
- package/dist/cdn/{shared-ca87cf22.js → shared-31aeab75.js} +1 -1
- package/dist/cdn/{shared-c6a01446.js → shared-97d58f8b.js} +1 -1
- package/dist/cdn/{shared-454f172e.js → shared-d8bb42a2.js} +1 -1
- package/dist/elements/private/Choice/Choice.d.ts +3 -2
- package/dist/elements/private/Choice/Choice.js +5 -0
- package/dist/elements/private/Choice/Choice.js.map +1 -1
- package/dist/elements/private/Choice/machine.js +33 -0
- package/dist/elements/private/Choice/machine.js.map +1 -1
- package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.d.ts +1 -0
- package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.js +8 -0
- package/dist/elements/public/AccessRecoveryForm/AccessRecoveryForm.js.map +1 -1
- package/dist/elements/public/Donation/Donation.js +3 -3
- package/dist/elements/public/Donation/Donation.js.map +1 -1
- package/dist/elements/public/SignInForm/SignInForm.d.ts +1 -0
- package/dist/elements/public/SignInForm/SignInForm.js +8 -0
- package/dist/elements/public/SignInForm/SignInForm.js.map +1 -1
- package/package.json +1 -1
- package/dist/cdn/shared-be99323d.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./foxy-custom-field-form.js";import"./foxy-custom-field-card.js";import"./foxy-applied-tax-card.js";import"./foxy-discount-card.js";import"./foxy-shipment-card.js";import"./foxy-payment-card.js";import"./foxy-item-form.js";import"./shared-7097364f.js";import"./shared-45926e43.js";import{I as t}from"./shared-8c11a711.js";import{I as r}from"./shared-e262920d.js";import"./foxy-customer-card.js";import"./foxy-form-dialog.js";import"./foxy-customer.js";import{h as o,c as e}from"./shared-7f33a83a.js";import{i}from"./shared-d3bf9ac0.js";import"./shared-bc814810.js";import"./shared-3d241b7f.js";import{_ as s}from"./shared-a8ced8bf.js";import{N as n}from"./shared-dc91f7ae.js";import{a}from"./shared-2cc638ad.js";import{B as d}from"./shared-dcdb6ea1.js";import"./shared-2092d86f.js";import"./shared-62c088b7.js";import"./shared-0ce006b9.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-4f037e43.js";import"./shared-67546e10.js";import"./shared-4e709717.js";import"./shared-955db6b4.js";import"./shared-d6276c83.js";import"./shared-e3ab56d1.js";import"./shared-ed0dee03.js";import"./shared-be66c2e7.js";import"./shared-08156595.js";import"./shared-5ea18e60.js";import"./shared-5a4829e3.js";import"./shared-be99323d.js";import"./shared-bd252323.js";import"./shared-7d4fb1a2.js";import"./shared-4849ef5b.js";import"./shared-6cb1015f.js";import"./shared-08e27fe9.js";import"./shared-11c2efc8.js";import"./shared-9f905d9f.js";import"./shared-f621ccee.js";import"./shared-404aa9cc.js";import"./shared-d8dc97f0.js";import"./shared-5378bd8c.js";import"./shared-88c4cfec.js";import"./shared-1433fc29.js";import"./shared-62d636b5.js";import"./foxy-address-card.js";import"./foxy-item-card.js";import"./shared-94fc438b.js";import"./foxy-nucleon-element.js";import"./shared-274c49b0.js";import"./shared-a01b5597.js";import"./shared-3dbe9aaa.js";import"./shared-8f8abcd6.js";import"./foxy-discount-detail-card.js";import"./foxy-coupon-detail-card.js";import"./foxy-item-option-card.js";import"./foxy-item-option-form.js";import"./foxy-coupon-card.js";import"./shared-c8f5c306.js";import"./foxy-discount-builder.js";import"./shared-d519a301.js";import"./shared-e6f3e9f0.js";import"./shared-81f9dc9a.js";import"./shared-ca87cf22.js";import"./shared-bc7f58ef.js";import"./shared-f7e4cd67.js";import"./foxy-subscription-card.js";import"./shared-5c804971.js";import"./foxy-subscription-form.js";import"./shared-a29b600a.js";import"./foxy-collection-page.js";import"./foxy-swipe-actions.js";import"./foxy-pagination.js";import"./foxy-cancellation-form.js";import"./foxy-transaction-card.js";import"./shared-38b37888.js";import"./shared-75e78c70.js";import"./shared-99065f2a.js";import"./foxy-payment-method-card.js";import"./foxy-transactions-table.js";import"./shared-d3bf404a.js";import"./foxy-collection-pages.js";import"./foxy-customer-form.js";import"./shared-b738ee96.js";import"./foxy-address-form.js";import"./foxy-table.js";import"./shared-61e74612.js";let l,c=t=>t;customElements.define("foxy-internal-transaction-customer-control",class extends r{renderControl(){var t,r,e,s;return o(l||(l=c` <foxy-internal-details summary="customer" infer="" open> <foxy-form-dialog header="header" infer="dialog" form="foxy-customer" href="${0}" id="dialog"> </foxy-form-dialog> <button class="w-full text-left block rounded-b-l transition-colors hover-bg-contrast-5 focus-outline-none focus-ring-2 focus-ring-primary-50" @click="${0}"> <foxy-customer-card infer="card" class="p-m" href="${0}"> </foxy-customer-card> </button> </foxy-internal-details> `),i(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:customer"].href),(t=>{this.renderRoot.querySelector("#dialog").show(t.currentTarget)}),i(null===(s=null===(e=this.nucleon)||void 0===e?void 0:e.data)||void 0===s?void 0:s._links["fx:customer"].href))}});let f,m=t=>t;customElements.define("foxy-internal-transaction-post-action-control",class extends r{constructor(){super(...arguments),this.theme=null,this.href=null,this.__state="idle"}static get properties(){return s(s({},super.properties),{},{__state:{type:String},theme:{type:String},href:{type:String}})}renderControl(){const t=this.__state,r="fail"===t?"error":"idle"===t?this.theme:"";return o(f||(f=m` <foxy-internal-confirm-dialog header="header" infer="confirm" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button class="w-full" theme="${0} tertiary" ?disabled="${0}" @click="${0}"> <foxy-i18n key="${0}" infer=""></foxy-i18n> </vaadin-button> `),(t=>!t.detail.cancelled&&this.__submit()),r,"busy"===t||this.disabled,(t=>{this.renderRoot.querySelector("#confirm").show(t.currentTarget)}),t)}async __submit(){var t;if("busy"!==this.__state)try{this.__state="busy";const r=new n.API(this),o=await r.fetch(null!==(t=this.href)&&void 0!==t?t:"",{method:"POST"});this.__state=o.ok?"idle":"fail",o.ok&&this.dispatchEvent(new CustomEvent("done"))}catch(t){this.__state="fail"}}});let u,p,h,y,x,v=t=>t;customElements.define("foxy-internal-transaction-actions-control",class extends r{renderControl(){var t,r,e,i,s,n,a,d;return o(u||(u=v` <div class="divide-y divide-contrast-10"> ${0} ${0} ${0} ${0} </div> `),(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:capture"])?this.__renderCaptureAction():"",(null===(i=null===(e=this.nucleon)||void 0===e?void 0:e.data)||void 0===i?void 0:i._links["fx:void"])?this.__renderVoidAction():"",(null===(n=null===(s=this.nucleon)||void 0===s?void 0:s.data)||void 0===n?void 0:n._links["fx:refund"])?this.__renderRefundAction():"",(null===(d=null===(a=this.nucleon)||void 0===a?void 0:a.data)||void 0===d?void 0:d._links["fx:send_emails"])?this.__renderSendEmailsAction():"")}__renderSendEmailsAction(){var t,r;return o(p||(p=v` <foxy-internal-transaction-post-action-control infer="send-emails" theme="contrast" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:send_emails"].href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}__renderCaptureAction(){var t,r;return o(h||(h=v` <foxy-internal-transaction-post-action-control theme="success" infer="capture" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:capture"].href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}__renderVoidAction(){var t,r,e;return o(y||(y=v` <foxy-internal-transaction-post-action-control theme="error" infer="void" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(e=null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:void"])||void 0===e?void 0:e.href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}__renderRefundAction(){var t,r,e;return o(x||(x=v` <foxy-internal-transaction-post-action-control theme="contrast" infer="refund" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(e=null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:refund"])||void 0===e?void 0:e.href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}});let j,_,b,$,g,k,w,S=t=>t;customElements.define("foxy-internal-transaction-summary-control",class extends r{renderControl(){var t;return o(j||(j=S` <div class="border-t border-transparent"> <div class="h-m flex items-center justify-between"> <div class="text-xl font-bold">${0}</div> <div>${0}</div> </div> <div class="border-t border-contrast-10 mb-s"></div> ${0} </div> `),this.__renderPrice(),(null===(t=this.nucleon)||void 0===t?void 0:t.data)?this.__renderStatus():"",this.__renderTotals())}__renderStatus(){var t,r;const e={authorized:"bg-success text-success-contrast",completed:"bg-success text-success-contrast",declined:"bg-error text-error-contrast",rejected:"bg-error text-error-contrast"},i=(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r.status)||"completed";return o(_||(_=S` <foxy-i18n class="flex items-center h-xs px-s text-s font-semibold rounded ${0}" infer="" key="transaction_${0}"> </foxy-i18n> `),i in e?e[i]:"bg-contrast-5 text-contrast",i)}__renderPrice(){var t;const r=null===(t=this.nucleon)||void 0===t?void 0:t.data,e=null==r?void 0:r.currency_code;if(!r)return o(b||(b=S`--`));const i={amount:`${r.total_order} ${e}`};return o($||($=S`<foxy-i18n infer="" key="price" .options="${0}"></foxy-i18n>`),i)}__renderTotals(){var t;const r=null===(t=this.nucleon)||void 0===t?void 0:t.data,e=null==r?void 0:r.currency_code;return["total_item_price","total_shipping","total_tax"].map((t=>{const i={amount:`${null==r?void 0:r[t]} ${e}`};return o(g||(g=S` <div class="flex justify-between text-m text-secondary"> <foxy-i18n key="${0}" infer=""></foxy-i18n> ${0} </div> `),t,r?o(k||(k=S`<foxy-i18n infer="" key="price" .options="${0}"></foxy-i18n>`),i):o(w||(w=S`<span>--</span>`)))}))}});let A,E,C=t=>t;class T extends(a(t,"transaction")){static get styles(){return[...super.styles,e(A||(A=C`#body{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(18.75 * var(--lumo-space-m)),1fr))}#body>:first-child{grid-column-start:1;grid-column-end:-2}`))]}get readonlySelector(){var t,r,o;return Boolean(null!==(r=null===(t=this.data)||void 0===t?void 0:t._links["fx:void"])&&void 0!==r?r:null===(o=this.data)||void 0===o?void 0:o._links["fx:refund"])?super.readonlySelector:new d(`${super.readonlySelector} attributes custom-fields`)}renderBody(){var t,r,e,s,n,a;return o(E||(E=C` <div id="body" class="gap-m"> <foxy-internal-async-details-control infer="shipments" first="${0}" item="foxy-shipment-card" open> </foxy-internal-async-details-control> <div class="grid gap-m self-start"> <foxy-internal-transaction-summary-control infer="summary"> </foxy-internal-transaction-summary-control> <foxy-internal-transaction-customer-control infer="customer"> </foxy-internal-transaction-customer-control> <foxy-internal-async-details-control infer="payments" class="max-w-full overflow-hidden" first="${0}" limit="1" item="foxy-payment-card" open> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="discounts" first="${0}" limit="5" item="foxy-discount-card"> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="applied-taxes" first="${0}" limit="5" item="foxy-applied-tax-card"> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="custom-fields" first="${0}" limit="5" form="foxy-custom-field-form" item="foxy-custom-field-card" .related="${0}"> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="attributes" first="${0}" limit="5" form="foxy-attribute-form" item="foxy-attribute-card" .related="${0}"> </foxy-internal-async-details-control> <foxy-internal-transaction-actions-control infer="actions"> </foxy-internal-transaction-actions-control> </div> </div> `),i(null===(t=this.data)||void 0===t?void 0:t._links["fx:shipments"].href),i(null===(r=this.data)||void 0===r?void 0:r._links["fx:payments"].href),i(null===(e=this.data)||void 0===e?void 0:e._links["fx:discounts"].href),i(null===(s=this.data)||void 0===s?void 0:s._links["fx:applied_taxes"].href),i(null===(n=this.data)||void 0===n?void 0:n._links["fx:custom_fields"].href),[this.href],i(null===(a=this.data)||void 0===a?void 0:a._links["fx:attributes"].href),[this.href])}}customElements.define("foxy-transaction",T);export{T as Transaction};
|
|
1
|
+
import"./foxy-attribute-card.js";import"./foxy-attribute-form.js";import"./foxy-custom-field-form.js";import"./foxy-custom-field-card.js";import"./foxy-applied-tax-card.js";import"./foxy-discount-card.js";import"./foxy-shipment-card.js";import"./foxy-payment-card.js";import"./foxy-item-form.js";import"./shared-7097364f.js";import"./shared-45926e43.js";import{I as t}from"./shared-8c11a711.js";import{I as r}from"./shared-e262920d.js";import"./foxy-customer-card.js";import"./foxy-form-dialog.js";import"./foxy-customer.js";import{h as o,c as e}from"./shared-7f33a83a.js";import{i}from"./shared-d3bf9ac0.js";import"./shared-bc814810.js";import"./shared-3d241b7f.js";import{_ as s}from"./shared-a8ced8bf.js";import{N as n}from"./shared-dc91f7ae.js";import{a}from"./shared-2cc638ad.js";import{B as d}from"./shared-dcdb6ea1.js";import"./shared-2092d86f.js";import"./shared-62c088b7.js";import"./shared-0ce006b9.js";import"./shared-0479553e.js";import"./foxy-spinner.js";import"./shared-4f037e43.js";import"./shared-67546e10.js";import"./shared-4e709717.js";import"./shared-955db6b4.js";import"./shared-d6276c83.js";import"./shared-e3ab56d1.js";import"./shared-ed0dee03.js";import"./shared-be66c2e7.js";import"./shared-08156595.js";import"./shared-5ea18e60.js";import"./shared-5a4829e3.js";import"./shared-2d1ef71c.js";import"./shared-bd252323.js";import"./shared-7d4fb1a2.js";import"./shared-4849ef5b.js";import"./shared-6cb1015f.js";import"./shared-08e27fe9.js";import"./shared-11c2efc8.js";import"./shared-9f905d9f.js";import"./shared-2adb2ad2.js";import"./shared-404aa9cc.js";import"./shared-d8dc97f0.js";import"./shared-5378bd8c.js";import"./shared-88c4cfec.js";import"./shared-1433fc29.js";import"./shared-62d636b5.js";import"./foxy-address-card.js";import"./foxy-item-card.js";import"./shared-94fc438b.js";import"./foxy-nucleon-element.js";import"./shared-274c49b0.js";import"./shared-a01b5597.js";import"./shared-3dbe9aaa.js";import"./shared-8f8abcd6.js";import"./foxy-discount-detail-card.js";import"./foxy-coupon-detail-card.js";import"./foxy-item-option-card.js";import"./foxy-item-option-form.js";import"./foxy-coupon-card.js";import"./shared-c8f5c306.js";import"./foxy-discount-builder.js";import"./shared-d519a301.js";import"./shared-e6f3e9f0.js";import"./shared-81f9dc9a.js";import"./shared-31aeab75.js";import"./shared-bc7f58ef.js";import"./shared-f7e4cd67.js";import"./foxy-subscription-card.js";import"./shared-5c804971.js";import"./foxy-subscription-form.js";import"./shared-a29b600a.js";import"./foxy-collection-page.js";import"./foxy-swipe-actions.js";import"./foxy-pagination.js";import"./foxy-cancellation-form.js";import"./foxy-transaction-card.js";import"./shared-38b37888.js";import"./shared-75e78c70.js";import"./shared-99065f2a.js";import"./foxy-payment-method-card.js";import"./foxy-transactions-table.js";import"./shared-d3bf404a.js";import"./foxy-collection-pages.js";import"./foxy-customer-form.js";import"./shared-b738ee96.js";import"./foxy-address-form.js";import"./foxy-table.js";import"./shared-61e74612.js";let l,c=t=>t;customElements.define("foxy-internal-transaction-customer-control",class extends r{renderControl(){var t,r,e,s;return o(l||(l=c` <foxy-internal-details summary="customer" infer="" open> <foxy-form-dialog header="header" infer="dialog" form="foxy-customer" href="${0}" id="dialog"> </foxy-form-dialog> <button class="w-full text-left block rounded-b-l transition-colors hover-bg-contrast-5 focus-outline-none focus-ring-2 focus-ring-primary-50" @click="${0}"> <foxy-customer-card infer="card" class="p-m" href="${0}"> </foxy-customer-card> </button> </foxy-internal-details> `),i(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:customer"].href),(t=>{this.renderRoot.querySelector("#dialog").show(t.currentTarget)}),i(null===(s=null===(e=this.nucleon)||void 0===e?void 0:e.data)||void 0===s?void 0:s._links["fx:customer"].href))}});let f,m=t=>t;customElements.define("foxy-internal-transaction-post-action-control",class extends r{constructor(){super(...arguments),this.theme=null,this.href=null,this.__state="idle"}static get properties(){return s(s({},super.properties),{},{__state:{type:String},theme:{type:String},href:{type:String}})}renderControl(){const t=this.__state,r="fail"===t?"error":"idle"===t?this.theme:"";return o(f||(f=m` <foxy-internal-confirm-dialog header="header" infer="confirm" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <vaadin-button class="w-full" theme="${0} tertiary" ?disabled="${0}" @click="${0}"> <foxy-i18n key="${0}" infer=""></foxy-i18n> </vaadin-button> `),(t=>!t.detail.cancelled&&this.__submit()),r,"busy"===t||this.disabled,(t=>{this.renderRoot.querySelector("#confirm").show(t.currentTarget)}),t)}async __submit(){var t;if("busy"!==this.__state)try{this.__state="busy";const r=new n.API(this),o=await r.fetch(null!==(t=this.href)&&void 0!==t?t:"",{method:"POST"});this.__state=o.ok?"idle":"fail",o.ok&&this.dispatchEvent(new CustomEvent("done"))}catch(t){this.__state="fail"}}});let u,p,h,y,x,v=t=>t;customElements.define("foxy-internal-transaction-actions-control",class extends r{renderControl(){var t,r,e,i,s,n,a,d;return o(u||(u=v` <div class="divide-y divide-contrast-10"> ${0} ${0} ${0} ${0} </div> `),(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:capture"])?this.__renderCaptureAction():"",(null===(i=null===(e=this.nucleon)||void 0===e?void 0:e.data)||void 0===i?void 0:i._links["fx:void"])?this.__renderVoidAction():"",(null===(n=null===(s=this.nucleon)||void 0===s?void 0:s.data)||void 0===n?void 0:n._links["fx:refund"])?this.__renderRefundAction():"",(null===(d=null===(a=this.nucleon)||void 0===a?void 0:a.data)||void 0===d?void 0:d._links["fx:send_emails"])?this.__renderSendEmailsAction():"")}__renderSendEmailsAction(){var t,r;return o(p||(p=v` <foxy-internal-transaction-post-action-control infer="send-emails" theme="contrast" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:send_emails"].href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}__renderCaptureAction(){var t,r;return o(h||(h=v` <foxy-internal-transaction-post-action-control theme="success" infer="capture" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:capture"].href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}__renderVoidAction(){var t,r,e;return o(y||(y=v` <foxy-internal-transaction-post-action-control theme="error" infer="void" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(e=null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:void"])||void 0===e?void 0:e.href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}__renderRefundAction(){var t,r,e;return o(x||(x=v` <foxy-internal-transaction-post-action-control theme="contrast" infer="refund" href="${0}" @done="${0}"> </foxy-internal-transaction-post-action-control> `),i(null===(e=null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r._links["fx:refund"])||void 0===e?void 0:e.href),(()=>{var t;return null===(t=this.nucleon)||void 0===t?void 0:t.refresh()}))}});let j,_,b,$,g,k,w,S=t=>t;customElements.define("foxy-internal-transaction-summary-control",class extends r{renderControl(){var t;return o(j||(j=S` <div class="border-t border-transparent"> <div class="h-m flex items-center justify-between"> <div class="text-xl font-bold">${0}</div> <div>${0}</div> </div> <div class="border-t border-contrast-10 mb-s"></div> ${0} </div> `),this.__renderPrice(),(null===(t=this.nucleon)||void 0===t?void 0:t.data)?this.__renderStatus():"",this.__renderTotals())}__renderStatus(){var t,r;const e={authorized:"bg-success text-success-contrast",completed:"bg-success text-success-contrast",declined:"bg-error text-error-contrast",rejected:"bg-error text-error-contrast"},i=(null===(r=null===(t=this.nucleon)||void 0===t?void 0:t.data)||void 0===r?void 0:r.status)||"completed";return o(_||(_=S` <foxy-i18n class="flex items-center h-xs px-s text-s font-semibold rounded ${0}" infer="" key="transaction_${0}"> </foxy-i18n> `),i in e?e[i]:"bg-contrast-5 text-contrast",i)}__renderPrice(){var t;const r=null===(t=this.nucleon)||void 0===t?void 0:t.data,e=null==r?void 0:r.currency_code;if(!r)return o(b||(b=S`--`));const i={amount:`${r.total_order} ${e}`};return o($||($=S`<foxy-i18n infer="" key="price" .options="${0}"></foxy-i18n>`),i)}__renderTotals(){var t;const r=null===(t=this.nucleon)||void 0===t?void 0:t.data,e=null==r?void 0:r.currency_code;return["total_item_price","total_shipping","total_tax"].map((t=>{const i={amount:`${null==r?void 0:r[t]} ${e}`};return o(g||(g=S` <div class="flex justify-between text-m text-secondary"> <foxy-i18n key="${0}" infer=""></foxy-i18n> ${0} </div> `),t,r?o(k||(k=S`<foxy-i18n infer="" key="price" .options="${0}"></foxy-i18n>`),i):o(w||(w=S`<span>--</span>`)))}))}});let A,E,C=t=>t;class T extends(a(t,"transaction")){static get styles(){return[...super.styles,e(A||(A=C`#body{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(18.75 * var(--lumo-space-m)),1fr))}#body>:first-child{grid-column-start:1;grid-column-end:-2}`))]}get readonlySelector(){var t,r,o;return Boolean(null!==(r=null===(t=this.data)||void 0===t?void 0:t._links["fx:void"])&&void 0!==r?r:null===(o=this.data)||void 0===o?void 0:o._links["fx:refund"])?super.readonlySelector:new d(`${super.readonlySelector} attributes custom-fields`)}renderBody(){var t,r,e,s,n,a;return o(E||(E=C` <div id="body" class="gap-m"> <foxy-internal-async-details-control infer="shipments" first="${0}" item="foxy-shipment-card" open> </foxy-internal-async-details-control> <div class="grid gap-m self-start"> <foxy-internal-transaction-summary-control infer="summary"> </foxy-internal-transaction-summary-control> <foxy-internal-transaction-customer-control infer="customer"> </foxy-internal-transaction-customer-control> <foxy-internal-async-details-control infer="payments" class="max-w-full overflow-hidden" first="${0}" limit="1" item="foxy-payment-card" open> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="discounts" first="${0}" limit="5" item="foxy-discount-card"> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="applied-taxes" first="${0}" limit="5" item="foxy-applied-tax-card"> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="custom-fields" first="${0}" limit="5" form="foxy-custom-field-form" item="foxy-custom-field-card" .related="${0}"> </foxy-internal-async-details-control> <foxy-internal-async-details-control infer="attributes" first="${0}" limit="5" form="foxy-attribute-form" item="foxy-attribute-card" .related="${0}"> </foxy-internal-async-details-control> <foxy-internal-transaction-actions-control infer="actions"> </foxy-internal-transaction-actions-control> </div> </div> `),i(null===(t=this.data)||void 0===t?void 0:t._links["fx:shipments"].href),i(null===(r=this.data)||void 0===r?void 0:r._links["fx:payments"].href),i(null===(e=this.data)||void 0===e?void 0:e._links["fx:discounts"].href),i(null===(s=this.data)||void 0===s?void 0:s._links["fx:applied_taxes"].href),i(null===(n=this.data)||void 0===n?void 0:n._links["fx:custom_fields"].href),[this.href],i(null===(a=this.data)||void 0===a?void 0:a._links["fx:attributes"].href),[this.href])}}customElements.define("foxy-transaction",T);export{T as Transaction};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-08156595.js";import"./shared-bc814810.js";import"./shared-3d241b7f.js";import"./foxy-spinner.js";import"./shared-7097364f.js";export{U as UserForm}from"./shared-
|
|
1
|
+
import"./shared-08156595.js";import"./shared-bc814810.js";import"./shared-3d241b7f.js";import"./foxy-spinner.js";import"./shared-7097364f.js";export{U as UserForm}from"./shared-97d58f8b.js";import"./shared-be66c2e7.js";import"./shared-0ce006b9.js";import"./shared-2cc638ad.js";import"./shared-a8ced8bf.js";import"./shared-7f33a83a.js";import"./shared-5ea18e60.js";import"./shared-9f905d9f.js";import"./shared-955db6b4.js";import"./shared-dcdb6ea1.js";import"./shared-67546e10.js";import"./shared-d3bf9ac0.js";import"./shared-4e709717.js";import"./shared-4f037e43.js";import"./shared-62c088b7.js";import"./shared-2092d86f.js";import"./shared-9f436277.js";import"./shared-5a4829e3.js";import"./shared-2d1ef71c.js";import"./shared-bd252323.js";import"./shared-7d4fb1a2.js";import"./shared-ed0dee03.js";import"./shared-4849ef5b.js";import"./shared-6cb1015f.js";import"./shared-08e27fe9.js";import"./shared-11c2efc8.js";import"./shared-e3ab56d1.js";import"./shared-2adb2ad2.js";import"./shared-404aa9cc.js";import"./shared-d8dc97f0.js";import"./shared-dc91f7ae.js";import"./shared-d6276c83.js";import"./shared-b738ee96.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-bc814810.js";import"./foxy-form-dialog.js";import{r as s}from"./shared-
|
|
1
|
+
import"./shared-bc814810.js";import"./foxy-form-dialog.js";import{r as s}from"./shared-97d58f8b.js";import"./foxy-spinner.js";import"./shared-7097364f.js";import{h as e}from"./shared-7f33a83a.js";import{T as a}from"./shared-d3bf404a.js";import{a as r}from"./shared-2cc638ad.js";import"./shared-be66c2e7.js";import"./shared-0ce006b9.js";import"./shared-3d241b7f.js";import"./shared-a8ced8bf.js";import"./shared-9f905d9f.js";import"./shared-955db6b4.js";import"./shared-dcdb6ea1.js";import"./shared-67546e10.js";import"./shared-d3bf9ac0.js";import"./shared-4e709717.js";import"./shared-4f037e43.js";import"./shared-d6276c83.js";import"./shared-08156595.js";import"./shared-5ea18e60.js";import"./shared-9f436277.js";import"./shared-62c088b7.js";import"./shared-5a4829e3.js";import"./shared-2d1ef71c.js";import"./shared-bd252323.js";import"./shared-7d4fb1a2.js";import"./shared-ed0dee03.js";import"./shared-4849ef5b.js";import"./shared-6cb1015f.js";import"./shared-08e27fe9.js";import"./shared-11c2efc8.js";import"./shared-e3ab56d1.js";import"./shared-2adb2ad2.js";import"./shared-404aa9cc.js";import"./shared-d8dc97f0.js";import"./shared-dc91f7ae.js";import"./shared-b738ee96.js";import"./shared-2092d86f.js";import"./foxy-nucleon-element.js";let t,d,o,i,m,n,l,p=s=>s;class f extends(r(a,"users-table")){constructor(){super(...arguments),this.columns=[f.nameColumn,f.emailColumn,f.rolesColumn,f.lastUpdatedColumn,f.actionsColumn]}render(){return e(t||(t=p` <foxy-form-dialog parent="${0}" form="foxy-user-form" lang="${0}" ns="${0}" id="form"> </foxy-form-dialog> ${0} `),this.href,this.lang,this.ns,super.render())}}f.nameColumn={cell:s=>e(d||(d=p` <span data-testclass="name" class="text-m font-medium"> ${0} ${0} </span> `),s.data.first_name,s.data.last_name)},f.emailColumn={hideBelow:"md",cell:s=>e(o||(o=p` <span data-testclass="email" class="text-m text-secondary">${0}</span> `),s.data.email)},f.rolesColumn={cell:a=>e(i||(i=p` <div data-testclass="roles" class="flex space-x-s"> ${0} </div> `),["is_merchant","is_programmer","is_front_end_developer","is_designer"].map((r=>e(m||(m=p` <div class="${0}" style="width:1rem;height:1rem"> ${0} </div> `),a.data[r]?"":"text-disabled",s.find((s=>s.property===r)).icon))))},f.lastUpdatedColumn={hideBelow:"lg",cell:s=>e(n||(n=p` <span data-testclass="lastUpdated" class="text-m text-secondary font-tnum"> <foxy-i18n options="${0}" lang="${0}" key="date" ns="${0}"> </foxy-i18n> <foxy-i18n options="${0}" lang="${0}" key="time" ns="${0}"> </foxy-i18n> </span> `),JSON.stringify({value:s.data.date_modified}),s.lang,s.ns,JSON.stringify({value:s.data.date_modified}),s.lang,s.ns)},f.actionsColumn={cell:s=>e(l||(l=p` <vaadin-button data-testclass="actions" theme="tertiary small" @click="${0}"> <foxy-i18n lang="${0}" key="update" ns="${0}"></foxy-i18n> </vaadin-button> `),(e=>{const a=e.target,r=a.getRootNode().querySelector("#form");r.href=s.data._links.self.href,r.show(a)}),s.lang,s.ns)},customElements.define("foxy-users-table",f);export{f as UsersTable};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{_ as e}from"./shared-a8ced8bf.js";import{E as t,T as n,C as s}from"./shared-be66c2e7.js";import"./shared-5ea18e60.js";import{O as i}from"./shared-6cb1015f.js";import{T as r}from"./shared-08156595.js";import{h as o,P as a}from"./shared-0ce006b9.js";import{L as l}from"./shared-404aa9cc.js";import{b as A}from"./shared-08e27fe9.js";import{P as d,a as h,F as m}from"./shared-62c088b7.js";import{y as c,w as u,x as p}from"./shared-2cc638ad.js";import{c as g,L as v,h as y}from"./shared-7f33a83a.js";import{D as b}from"./shared-
|
|
1
|
+
import{_ as e}from"./shared-a8ced8bf.js";import{E as t,T as n,C as s}from"./shared-be66c2e7.js";import"./shared-5ea18e60.js";import{O as i}from"./shared-6cb1015f.js";import{T as r}from"./shared-08156595.js";import{h as o,P as a}from"./shared-0ce006b9.js";import{L as l}from"./shared-404aa9cc.js";import{b as A}from"./shared-08e27fe9.js";import{P as d,a as h,F as m}from"./shared-62c088b7.js";import{y as c,w as u,x as p}from"./shared-2cc638ad.js";import{c as g,L as v,h as y}from"./shared-7f33a83a.js";import{D as b}from"./shared-2d1ef71c.js";class _ extends CustomEvent{constructor(e){super("change",{detail:e})}}class f extends _{}const w=o`<dom-module id="lumo-list-box" theme-for="vaadin-list-box">
|
|
2
2
|
<template>
|
|
3
3
|
<style>
|
|
4
4
|
:host {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e}from"./shared-a8ced8bf.js";import"./shared-62c088b7.js";import"./shared-be66c2e7.js";import"./shared-5a4829e3.js";import"./shared-bd252323.js";import"./shared-08156595.js";import"./shared-7d4fb1a2.js";import"./shared-ed0dee03.js";import{d as t,P as a,A as s,L as i,c as n,h as r}from"./shared-7f33a83a.js";import"./shared-4849ef5b.js";import"./shared-6cb1015f.js";import{p as o}from"./shared-7097364f.js";import{a as l,x as d}from"./shared-2cc638ad.js";import{T as u,U as c,V as h,W as m,X as v,Y as g,Z as p,$ as y,b,a0 as f,a1 as x,a2 as _,a3 as w,a4 as $,a5 as E,a6 as k,m as T,a7 as S}from"./shared-dcdb6ea1.js";import{I as V}from"./shared-4f037e43.js";import{s as C}from"./shared-11c2efc8.js";import{i as A}from"./shared-e3ab56d1.js";var M={raise:u,send:c,sendParent:h,sendUpdate:m,log:v,cancel:g,start:p,stop:y,assign:b,after:f,done:x,respond:_,forwardTo:w,escalate:$,choose:E,pure:k};const j=t((e=>t=>{const{element:i,name:n,strings:r}=t.committer;if(2!==r.length||""!==r[0]||""!==r[1])throw new Error("live directive bindings must not contain any static values");if(t.committer.parts.length>1)throw new Error("live directive must be the only directive for an attribute or property");if(t instanceof a)i[n]!==e&&t.setValue(e);else{if(!(t instanceof s))throw new Error("live directive can only be used on attributes or properties");i.getAttribute(n)!==e&&t.setValue(e)}}));class I extends CustomEvent{constructor(e){super("change",{detail:e})}}class U extends CustomEvent{constructor(e){super("change",{detail:e})}}class F extends U{}let D,P,q=e=>e;class L extends(l(V(i))){constructor(){super(...arguments),this.label="",this.value="",this.disabled=!1,this.readonly=!1,this.errorMessage="",this.__i18n={formatValue:e=>e.join(""),parseValue:e=>{const{count:t,units:a}=o(e);return[t.toString(),a]}},this.__getItems=T((e=>{const t=o(e).count;return[{value:"d",label:this.t("day",{count:t})},{value:"w",label:this.t("week",{count:t})},{value:"m",label:this.t("month",{count:t})},{value:"y",label:this.t("year",{count:t})}]}))}static get properties(){return e(e({},super.properties),{},{checkValidity:{attribute:!1},errorMessage:{type:String,attribute:"error-message"},disabled:{type:Boolean,reflect:!0},readonly:{type:Boolean,reflect:!0},label:{type:String},value:{type:String}})}static get styles(){return n(D||(D=q`:host{display:block}vaadin-custom-field{width:100%;font-size:0;line-height:0;padding-top:0!important}vaadin-custom-field::part(label){padding-bottom:var(--lumo-space-s)}vaadin-custom-field::part(error-message)[aria-hidden=false]{padding-top:var(--lumo-space-xs)}vaadin-combo-box,vaadin-integer-field{width:calc(50% - (var(--lumo-space-s)/ 2))}vaadin-integer-field{margin-right:var(--lumo-space-s);padding:0}vaadin-combo-box::part(text-field){padding:0}`))}render(){return r(P||(P=q` <vaadin-custom-field data-testid="field" .i18n="${0}" .label="${0}" .value="${0}" ?disabled="${0}" ?readonly="${0}" .errorMessage="${0}" .checkValidity="${0}" @change="${0}"> <vaadin-integer-field data-testid="value" min="1" max="999" has-controls prevent-invalid-input ?invalid="${0}" ?disabled="${0}" ?readonly="${0}"> </vaadin-integer-field> <vaadin-combo-box data-testid="units" item-value-path="value" item-label-path="label" .items="${0}" ?invalid="${0}" ?disabled="${0}" ?readonly="${0}"> </vaadin-combo-box> </vaadin-custom-field> `),this.__i18n,this.label,j(this.value),this.disabled,this.readonly,this.errorMessage,this.checkValidity,this.__handleChange,!this.checkValidity(),this.disabled,this.readonly,this.__getItems(this.value),!this.checkValidity(),this.disabled,this.readonly)}updated(e){super.updated(e);const t=this.renderRoot.firstElementChild;t.value!==this.value&&(t.value=this.value)}checkValidity(){return!0}__handleChange(e){const t=e.target;this.value=t.value,this.dispatchEvent(new F(this.value))}}const N=S({id:"choice",type:"parallel",context:{defaultCustomValue:"",customValue:null,custom:!1,items:[],value:null,type:"text",min:null,max:null},states:{mutability:{initial:"editable",states:{editable:{},readonly:{}},on:{SET_READONLY:[{target:".editable",cond:"isPayloadFalsey"},{target:".readonly",cond:"isPayloadTruthy"}]}},interactivity:{initial:"enabled",states:{enabled:{},disabled:{}},on:{SET_DISABLED:[{target:".enabled",cond:"isPayloadFalsey"},{target:".disabled",cond:"isPayloadTruthy"}]}},selection:{initial:"unknown",states:{unknown:{always:[{target:"multiple",cond:"isValueArray"},{target:"single"}]},none:{},single:{},multiple:{}}},extension:{initial:"unknown",states:{unknown:{always:[{target:"present",cond:"hasCustom"},{target:"absent"}]},absent:{},present:{initial:"unknown",states:{unknown:{always:[{target:"selected",cond:"hasCustomValue"},{target:"available"}]},available:{on:{SET_TYPE:{actions:"setType"}}},selected:{initial:"unknown",states:{unknown:{always:[{target:"number",cond:"showsNumberField"},{target:"integer",cond:"showsIntegerField"},{target:"textarea",cond:"showsTextarea"},{target:"frequency",cond:"showsFrequency"},{target:"text"}]},text:{},frequency:{},textarea:{},integer:{type:"parallel",states:{min:{initial:"unknown",states:{unknown:{always:[{target:"custom",cond:"hasMinConstraint"},{target:"none"}]},none:{},custom:{}}},max:{initial:"unknown",states:{unknown:{always:[{target:"custom",cond:"hasMaxConstraint"},{target:"none"}]},none:{},custom:{}}}}},number:{type:"parallel",states:{min:{initial:"unknown",states:{unknown:{always:[{target:"custom",cond:"hasMinConstraint"},{target:"none"}]},none:{},custom:{}}},max:{initial:"unknown",states:{unknown:{always:[{target:"custom",cond:"hasMaxConstraint"},{target:"none"}]},none:{},custom:{}}}}}}}}}}}},on:{SET_DEFAULT_CUSTOM_VALUE:{actions:"setDefaultCustomValue"},SET_CUSTOM:{actions:"setCustom",target:[".selection.unknown",".extension.unknown"]},SET_VALUE:{actions:"setValue",target:[".selection.unknown",".extension.unknown"]},SET_ITEMS:{actions:"setItems",target:[".selection.unknown",".extension.unknown"]},SET_TYPE:{actions:"setType",target:".extension.unknown"},SET_MIN:{actions:"setMin",target:".extension.unknown"},SET_MAX:{actions:"setMax",target:".extension.unknown"}}},{guards:{isPayloadFalsey:(e,t)=>!t.data,isPayloadTruthy:(e,t)=>!!t.data,isValueArray:e=>Array.isArray(e.value),showsIntegerField:e=>"integer"===e.type,showsNumberField:e=>"number"===e.type,showsFrequency:e=>"frequency"===e.type,showsTextarea:e=>"textarea"===e.type,hasMinConstraint:e=>"number"==typeof e.min,hasMaxConstraint:e=>"number"==typeof e.max,hasCustomValue:e=>"string"==typeof e.customValue,hasCustom:e=>e.custom},actions:{setDefaultCustomValue:M.assign({defaultCustomValue:(e,t)=>t.data}),setValue:M.assign({value:(e,t)=>t.data,customValue:(e,t)=>Array.isArray(t.data)?t.data.find((t=>!e.items.includes(t))):e.items.includes(t.data)?null:t.data}),setCustom:M.assign({custom:(e,t)=>t.data}),setItems:M.assign({items:(e,t)=>t.data}),setType:M.assign({type:(e,t)=>t.data}),setMin:M.assign({min:(e,t)=>t.data}),setMax:M.assign({max:(e,t)=>t.data})}});let B,O,Y,R,X,z,W,Z,G,H,J,K,Q,ee,te=e=>e;const ae=`@foxy.io/elements::other[${(Math.pow(10,10)*Math.random()).toFixed(0)}]`;class se extends d{constructor(){super(...arguments),this.getText=e=>e,this.__service=A(N).onChange((()=>this.requestUpdate())).onTransition((({changed:e})=>e&&this.requestUpdate())).start()}static get scopedElements(){return{"vaadin-integer-field":customElements.get("vaadin-integer-field"),"vaadin-number-field":customElements.get("vaadin-number-field"),"vaadin-text-field":customElements.get("vaadin-text-field"),"x-frequency-input":L,"vaadin-text-area":customElements.get("vaadin-text-area"),"iron-icon":customElements.get("iron-icon")}}static get styles(){return[super.styles,n(Y||(Y=te`:host{--item-width:calc((var(--lumo-space-m) * 2) + 1.25rem)}.ml-xxl{margin-left:var(--item-width)}.item{height:var(--lumo-size-l);width:var(--item-width)}.radio{height:1.25rem;width:1.25rem}.check{height:1.125rem;width:1.125rem}.dot{height:.5rem;width:.5rem}`))]}static get properties(){return e(e({},super.properties),{},{defaultCustomValue:{type:String,attribute:"default-custom-value"},disabled:{type:Boolean},readonly:{type:Boolean},custom:{type:Boolean},type:{type:String},min:{type:Number},max:{type:Number},value:{type:Array},items:{type:Array},getText:{attribute:!1}})}get defaultCustomValue(){return this.__service.state.context.defaultCustomValue}set defaultCustomValue(e){this.__service.send("SET_DEFAULT_CUSTOM_VALUE",{data:e})}get readonly(){return this.__service.state.matches("mutability.readonly")}set readonly(e){this.__service.send("SET_READONLY",{data:e})}get disabled(){return this.__service.state.matches("interactivity.disabled")}set disabled(e){this.__service.send("SET_DISABLED",{data:e})}get custom(){return this.__service.state.matches("extension.present")}set custom(e){this.__service.send("SET_CUSTOM",{data:e})}get type(){return this.__service.state.context.type}set type(e){this.__service.send("SET_TYPE",{data:e})}get min(){return this.__service.state.context.min}set min(e){this.__service.send("SET_MIN",{data:e})}get max(){return this.__service.state.context.max}set max(e){this.__service.send("SET_MAX",{data:e})}get value(){return this.__service.state.context.value}set value(e){this.__service.send("SET_VALUE",{data:e})}get items(){return this.__service.state.context.items}set items(e){this.__service.send("SET_ITEMS",{data:e})}render(){const e=this.custom?[...this.items,ae]:this.items,t=Array.isArray(this.value),a=this.__service.state.matches("extension.present.selected"),s=r(R||(R=te` ${0} `),e.map(((e,s,i)=>{var n;const o=this.custom&&s===i.length-1,l=o?a:t?!!(null===(n=this.value)||void 0===n?void 0:n.includes(e)):e===String(this.value),d=this.disabled||!this._isI18nReady,u=C({value:o?ae:e,name:t?e:"choice","data-testid":`item-${e}`,"?disabled":d,"@change":t=>{if(this.readonly)return t.preventDefault();const a=t.target.checked,s=e===ae?this.defaultCustomValue:e,i=this.value;Array.isArray(i)?this.value=e===ae?a?[...i,s]:i.slice(0,i.length-1):a?[s,...i]:i.filter((e=>e!==s)):this.value=a?s:null,this.dispatchEvent(new I(this.value))}}),c=r(X||(X=te` <div> ${0} </div> `),e===ae?this._t("choice.other").toString():r(z||(z=te`<slot name="${0}">${0}</slot>`),`${e}-label`,this.getText(e)));return r(W||(W=te` <div class="ml-xxl border-t border-contrast-10 ${0}"></div> ${0} <div class="mr-m ml-xxl"> ${0} ${0} </div> `),s?"":"hidden",t?function(e,t,a,s,i){const n="transition ease-in-out duration-200",o=`${n} transform ${a?"scale-100":"scale-0"} ${e?"text-contrast-70":"text-tint"}`;return r(O||(O=te` <label class="group flex items-center ${0}"> <div class="item flex items-center justify-center flex-shrink-0 text-primary-contrast"> <div class="check rounded-s ${0} ${0} ${0} focus-within-shadow-outline"> <iron-icon icon="lumo:checkmark" class="block w-full h-full ${0}"></iron-icon> <input type="checkbox" class="sr-only" .checked="${0}" ...="${0}"> </div> </div> <div class="font-lumo leading-m ${0}">${0}</div> </label> `),t||e?"":"cursor-pointer","border "+(e?"border-dashed border-contrast-30":"border-transparent"),n,e?"":t?a?"bg-primary-50":"bg-contrast-10":a?"bg-primary":"bg-contrast-20 group-hover-bg-contrast-30",o,a,s,t?"text-disabled":e?"text-secondary":"text-body",i)}(this.readonly,d,l,u,c):function(e,t,a,s,i){const n="transition ease-in-out duration-200",o=`${n} ${t||e?"":"shadow-xs"} transform ${a?"scale-100":"scale-0"} ${e?"bg-contrast-70":"bg-tint"}`;return r(B||(B=te` <label class="group flex items-center ${0}"> <div class="item flex items-center justify-center flex-shrink-0"> <div class="flex radio rounded-full ${0} ${0} ${0} focus-within-shadow-outline"> <div class="dot m-auto rounded-full ${0}"></div> <input type="radio" class="sr-only" .checked="${0}" ...="${0}"> </div> </div> <div class="font-lumo leading-m ${0}">${0}</div> </label> `),t||e?"":"cursor-pointer","border "+(e?"border-dashed border-contrast-30":"border-transparent"),n,e?"":t?a?"bg-primary-50":"bg-contrast-10":a?"bg-primary":"bg-contrast-20 group-hover-bg-contrast-30",o,a,s,t?"text-disabled":e?"text-secondary":"text-body",i)}(this.readonly,d,l,u,c),e===ae&&a?this.__field:"",e!==ae?r(Z||(Z=te`<slot name="${0}"></slot>`),e):"")})));return r(G||(G=te`<form>${0}</form> `),s)}get __field(){const e=C({placeholder:this._t("choice.other").toString(),class:"w-full mb-m",value:this.__service.state.context.customValue,max:this.max,min:this.min,ns:this.ns,"?disabled":this.disabled,"?readonly":this.readonly,"data-testid":"field","@change":e=>{e.stopPropagation();const t=e.target.value;Array.isArray(this.value)?this.value=this.value.slice(0,this.value.length-1).concat(t):this.value=t,this.dispatchEvent(new I(this.value))}});return"frequency"===this.type?r(H||(H=te`<x-frequency-input ...="${0}"></x-frequency-input>`),e):"integer"===this.type?r(J||(J=te`<vaadin-integer-field ...="${0}" has-controls></vaadin-integer-field>`),e):"number"===this.type?r(K||(K=te`<vaadin-number-field ...="${0}" has-controls></vaadin-number-field>`),e):"textarea"===this.type?r(Q||(Q=te`<vaadin-text-area ...="${0}"></vaadin-text-area>`),e):r(ee||(ee=te`<vaadin-text-field ...="${0}"></vaadin-text-field>`),e)}}export{se as C,U as D,L as F,I as a,M as b};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{T as e,D as t,E as a,C as i}from"./shared-be66c2e7.js";import{O as s,I as o,a as r}from"./shared-6cb1015f.js";import{h as n,G as l,P as d,D as h,t as u,b as c,s as p}from"./shared-0ce006b9.js";import"./shared-bc814810.js";import"./shared-5ea18e60.js";import{T as m}from"./shared-08156595.js";import"./shared-
|
|
1
|
+
import{T as e,D as t,E as a,C as i}from"./shared-be66c2e7.js";import{O as s,I as o,a as r}from"./shared-6cb1015f.js";import{h as n,G as l,P as d,D as h,t as u,b as c,s as p}from"./shared-0ce006b9.js";import"./shared-bc814810.js";import"./shared-5ea18e60.js";import{T as m}from"./shared-08156595.js";import"./shared-2adb2ad2.js";import{D as _,t as f,f as v,a as g}from"./shared-62c088b7.js";import{a as y,b}from"./shared-08e27fe9.js";const D=n`<dom-module id="lumo-date-picker-overlay" theme-for="vaadin-date-picker-overlay">
|
|
2
2
|
<template>
|
|
3
3
|
<style include="lumo-menu-overlay">
|
|
4
4
|
[part="overlay"] {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./shared-08156595.js";import"./shared-bc814810.js";import"./shared-3d241b7f.js";import"./foxy-spinner.js";import"./shared-7097364f.js";import{C as e}from"./shared-9f436277.js";import"./shared-
|
|
1
|
+
import"./shared-08156595.js";import"./shared-bc814810.js";import"./shared-3d241b7f.js";import"./foxy-spinner.js";import"./shared-7097364f.js";import{C as e}from"./shared-9f436277.js";import"./shared-2d1ef71c.js";import"./shared-9f905d9f.js";import"./shared-2adb2ad2.js";import{s,h as t}from"./shared-7f33a83a.js";import{S as i,T as r,a}from"./shared-2cc638ad.js";import"./shared-bd252323.js";import"./shared-7d4fb1a2.js";import"./shared-4849ef5b.js";import"./shared-6cb1015f.js";import{m as n}from"./shared-dcdb6ea1.js";import{G as l}from"./shared-d8dc97f0.js";import"./shared-be66c2e7.js";import"./shared-5ea18e60.js";import"./shared-62c088b7.js";import"./shared-5a4829e3.js";import{c as o}from"./shared-4e709717.js";import{C as d}from"./shared-67546e10.js";import{N as h}from"./shared-dc91f7ae.js";import{i as m}from"./shared-d3bf9ac0.js";import{v as c}from"./shared-b738ee96.js";let f,C,p,g,u=e=>e;const v=[{property:"is_merchant",icon:s(f||(f=u`<svg class="fill-current h-full w-full" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M22.8961 8.89L21.7932 4.52C21.5622 3.62 20.7429 3 19.7871 3H5.1979C4.25259 3 3.42283 3.63 3.20225 4.52L2.0994 8.89C1.84732 9.91 2.07839 10.95 2.75061 11.77C2.83464 11.88 2.95017 11.96 3.0447 12.06V19C3.0447 20.1 3.99001 21 5.14538 21H19.8501C21.0055 21 21.9508 20.1 21.9508 19V12.06C22.0453 11.97 22.1609 11.88 22.2449 11.78C22.9171 10.96 23.1587 9.91 22.8961 8.89ZM19.7556 4.99L20.8584 9.36C20.9635 9.78 20.8689 10.2 20.5958 10.53C20.4488 10.71 20.1337 11 19.6085 11C18.9678 11 18.4111 10.51 18.3376 9.86L17.7284 5L19.7556 4.99ZM13.5481 5H15.6067L16.1739 9.52C16.2264 9.91 16.1004 10.3 15.8273 10.59C15.5962 10.85 15.2601 11 14.8295 11C14.1258 11 13.5481 10.41 13.5481 9.69V5ZM8.81106 9.52L9.38874 5H11.4474V9.69C11.4474 10.41 10.8697 11 10.0925 11C9.73536 11 9.40975 10.85 9.15767 10.59C8.89509 10.3 8.76905 9.91 8.81106 9.52ZM4.13705 9.36L5.1979 5H7.26706L6.65787 9.86C6.57384 10.51 6.02766 11 5.38696 11C4.87229 11 4.54669 10.71 4.41014 10.53C4.12655 10.21 4.03202 9.78 4.13705 9.36ZM5.14538 19V12.97C5.22941 12.98 5.30293 13 5.38696 13C6.30075 13 7.13052 12.64 7.73971 12.05C8.36992 12.65 9.21019 13 10.166 13C11.0798 13 11.8991 12.64 12.5082 12.07C13.1279 12.64 13.9682 13 14.9135 13C15.7958 13 16.6361 12.65 17.2663 12.05C17.8755 12.64 18.7052 13 19.619 13C19.7031 13 19.7766 12.98 19.8606 12.97V19H5.14538Z" /></svg>`)),key:"merchant"},{property:"is_programmer",icon:s(C||(C=u`<svg class="fill-current h-full w-full" viewBox="0 0 20 18" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 3C0 1.34315 1.34315 0 3 0H17C18.6569 0 20 1.34315 20 3V15C20 16.6569 18.6569 18 17 18H3C1.34315 18 0 16.6569 0 15V3ZM3 2C2.44772 2 2 2.44772 2 3V15C2 15.5523 2.44772 16 3 16H17C17.5523 16 18 15.5523 18 15V3C18 2.44772 17.5523 2 17 2H3ZM4.29289 4.29289C4.68342 3.90237 5.31658 3.90237 5.70711 4.29289L9.70711 8.29289C9.89464 8.48043 10 8.73478 10 9C10 9.26522 9.89464 9.51957 9.70711 9.70711L5.70711 13.7071C5.31658 14.0976 4.68342 14.0976 4.29289 13.7071C3.90237 13.3166 3.90237 12.6834 4.29289 12.2929L7.58579 9L4.29289 5.70711C3.90237 5.31658 3.90237 4.68342 4.29289 4.29289ZM9 13C9 12.4477 9.44771 12 10 12H15C15.5523 12 16 12.4477 16 13C16 13.5523 15.5523 14 15 14H10C9.44771 14 9 13.5523 9 13Z"/></svg>`)),key:"backend_developer"},{property:"is_front_end_developer",icon:s(p||(p=u`<svg class="fill-current h-full w-full" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M14.2747 4.03847C14.8058 4.1902 15.1132 4.74368 14.9615 5.27472L10.9615 19.2747C10.8098 19.8058 10.2563 20.1132 9.72528 19.9615C9.19424 19.8098 8.88675 19.2563 9.03848 18.7253L13.0385 4.72528C13.1902 4.19424 13.7437 3.88675 14.2747 4.03847ZM6.70711 7.29289C7.09763 7.68342 7.09763 8.31658 6.70711 8.7071L3.41421 12L6.70711 15.2929C7.09763 15.6834 7.09763 16.3166 6.70711 16.7071C6.31658 17.0976 5.68342 17.0976 5.29289 16.7071L1.29289 12.7071C0.902369 12.3166 0.902369 11.6834 1.29289 11.2929L5.29289 7.29289C5.68342 6.90237 6.31658 6.90237 6.70711 7.29289ZM17.2929 7.29289C17.6834 6.90237 18.3166 6.90237 18.7071 7.29289L22.7071 11.2929C22.8946 11.4804 23 11.7348 23 12C23 12.2652 22.8946 12.5196 22.7071 12.7071L18.7071 16.7071C18.3166 17.0976 17.6834 17.0976 17.2929 16.7071C16.9024 16.3166 16.9024 15.6834 17.2929 15.2929L20.5858 12L17.2929 8.70711C16.9024 8.31658 16.9024 7.68342 17.2929 7.29289Z" /></svg>`)),key:"frontend_developer"},{property:"is_designer",icon:s(g||(g=u`<svg class="fill-current h-full w-full" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M10 20C4.49 20 0 15.51 0 10C0 4.49 4.49 0 10 0C15.51 0 20 4.04 20 9C20 12.31 17.31 15 14 15H12.23C11.95 15 11.73 15.22 11.73 15.5C11.73 15.62 11.78 15.73 11.86 15.83C12.27 16.3 12.5 16.89 12.5 17.5C12.5 18.88 11.38 20 10 20ZM10 2C5.59 2 2 5.59 2 10C2 14.41 5.59 18 10 18C10.28 18 10.5 17.78 10.5 17.5C10.5 17.34 10.42 17.22 10.36 17.15C9.95 16.69 9.73 16.1 9.73 15.5C9.73 14.12 10.85 13 12.23 13H14C16.21 13 18 11.21 18 9C18 5.14 14.41 2 10 2Z" /><path d="M4.5 11C5.32843 11 6 10.3284 6 9.5C6 8.67157 5.32843 8 4.5 8C3.67157 8 3 8.67157 3 9.5C3 10.3284 3.67157 11 4.5 11Z" /><path d="M7.5 7C8.32843 7 9 6.32843 9 5.5C9 4.67157 8.32843 4 7.5 4C6.67157 4 6 4.67157 6 5.5C6 6.32843 6.67157 7 7.5 7Z" /><path d="M12.5 7C13.3284 7 14 6.32843 14 5.5C14 4.67157 13.3284 4 12.5 4C11.6716 4 11 4.67157 11 5.5C11 6.32843 11.6716 7 12.5 7Z" /><path d="M15.5 11C16.3284 11 17 10.3284 17 9.5C17 8.67157 16.3284 8 15.5 8C14.6716 8 14 8.67157 14 9.5C14 10.3284 14.6716 11 15.5 11Z" /></svg>`)),key:"designer"}];let y,x,_,b=e=>e;const $=i(r(d(a(h,"user-form"))));class w extends ${constructor(){super(...arguments),this.__getValidator=n((e=>()=>!this.errors.some((s=>s.startsWith(e))))),this.__bindField=n((e=>s=>{const t=s.target;this.edit({[e]:t.value})}))}static get scopedElements(){return{"foxy-internal-confirm-dialog":customElements.get("foxy-internal-confirm-dialog"),"vaadin-text-field":customElements.get("vaadin-text-field"),"vaadin-button":customElements.get("vaadin-button"),"foxy-spinner":customElements.get("foxy-spinner"),"x-checkbox":e,"foxy-i18n":customElements.get("foxy-i18n"),"x-group":l}}static get v8n(){return[({first_name:e})=>!e||e.length<=50||"first_name_too_long",({last_name:e})=>!e||e.length<=50||"last_name_too_long",({email:e})=>e&&e.length>0||"email_required",({email:e})=>e&&e.length<=100||"email_too_long",({email:e})=>e&&c(e)||"email_invalid_email",({phone:e})=>!e||e.length<=50||"phone_too_long"]}render(){var e,s;const i=this.in({idle:{template:{dirty:"valid"}}}),r=this.in({idle:{snapshot:{dirty:"valid"}}}),a=i||r,n=this.in("busy"),l=this.in("fail"),d=n||l||this.disabled;return t(y||(y=b` <foxy-internal-confirm-dialog data-testid="confirm" message="delete_prompt" confirm="delete" cancel="cancel" header="delete" theme="primary error" lang="${0}" ns="${0}" id="confirm" @hide="${0}"> </foxy-internal-confirm-dialog> <div data-testid="wrapper" aria-busy="${0}" aria-live="polite" class="space-y-l relative"> <div class="grid grid-cols-1 sm-grid-cols-2 gap-m"> ${0} </div> <x-group frame> ${0} </x-group> <vaadin-button data-testid="action" theme="${0}" class="w-full" ?disabled="${0}" @click="${0}"> <foxy-i18n lang="${0}" key="${0}" ns="${0}"> </foxy-i18n> </vaadin-button> <div data-testid="spinner" class="${0}"> <foxy-spinner layout="vertical" class="m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l" state="${0}" lang="${0}" ns="${0} ${0}"> </foxy-spinner> </div> </div> `),this.lang,this.ns,this.__handleConfirmHide,this.in("busy"),["first_name","last_name","email","phone"].map((e=>t(x||(x=b` <vaadin-text-field error-message="${0}" data-testid="${0}" ?disabled="${0}" ?readonly="${0}" class="w-full" label="${0}" value="${0}" .checkValidity="${0}" @input="${0}" @keydown="${0}"> </vaadin-text-field> `),this.__getErrorMessage(e),e,d,this.readonly,this.t(e),m(this.form[e]),this.__getValidator(e),this.__bindField(e),this.__handleKeyDown))),v.map(((e,s)=>t(_||(_=b` <hr class="${0}" style="margin-left:calc((var(--lumo-space-m) * 2) + 1.125rem)"> <x-checkbox class="w-full p-m" ?readonly="${0}" ?disabled="${0}" ?checked="${0}" @change="${0}"> <div class="flex items-start leading-s"> <div class="flex-1 flex flex-col"> <foxy-i18n key="${0}" lang="${0}" ns="${0}"></foxy-i18n> <foxy-i18n class="text-s text-secondary" lang="${0}" key="${0}_explainer" ns="${0}"> </foxy-i18n> </div> <div class="mt-xs" style="width:1.125rem;height:1.125rem">${0}</div> </div> </x-checkbox> `),s>0?"border-contrast-10":"hidden",this.readonly,d,this.form[e.property],(s=>{const t=s.target;this.edit({[e.property]:t.checked})}),e.key,this.lang,this.ns,this.lang,e.key,this.ns,e.icon))),this.in("idle")?""+(this.href?"error":"primary success"):"",this.in({idle:"template"})&&!a||d,this.__handleActionClick,this.lang,this.href?"delete":"create",this.ns,o({"transition duration-500 ease-in-out absolute inset-0 flex":!0,"opacity-0 pointer-events-none":!n&&!l}),l?"error":n?"busy":"empty",this.lang,this.ns,null!==(s=null===(e=customElements.get("foxy-spinner"))||void 0===e?void 0:e.defaultNS)&&void 0!==s?s:"")}__getErrorMessage(e){const s=this.errors.find((s=>s.startsWith(e)));return s?this.t(s.replace(e,"v8n")):""}__handleActionClick(e){if(this.in({idle:"snapshot"})){this.renderRoot.querySelector("#confirm").show(e.currentTarget)}else this.submit()}__handleConfirmHide(e){e.detail.cancelled||this.delete()}__handleKeyDown(e){"Enter"===e.key&&this.submit()}}customElements.define("foxy-user-form",w);export{w as U,v as r};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as e}from"./shared-a8ced8bf.js";import{B as t}from"./shared-bc814810.js";import{c as r,h as s}from"./shared-7f33a83a.js";import{x as n}from"./shared-2cc638ad.js";import{I as o}from"./shared-
|
|
1
|
+
import{_ as e}from"./shared-a8ced8bf.js";import{B as t}from"./shared-bc814810.js";import{c as r,h as s}from"./shared-7f33a83a.js";import{x as n}from"./shared-2cc638ad.js";import{I as o}from"./shared-2adb2ad2.js";let i,a,l,c=e=>e;class d{constructor(e="unknown"){this.type=e}}class h extends CustomEvent{constructor(){super("reload")}}class p extends n{constructor(){super(...arguments),this.type="unknown",this.reload=!1}static get scopedElements(){return{"vaadin-button":t,"iron-icon":customElements.get("iron-icon"),"x-i18n":o}}static get styles(){return[super.styles,r(i||(i=c`:host{position:absolute;top:0;right:0;bottom:0;left:0}.container-narrow{max-width:400px}`))]}static get properties(){return e(e({},super.properties),{},{reload:{type:Boolean,reflect:!0},type:{type:String}})}render(){return s(a||(a=c` <article class="bg-base font-lumo text-center leading-m p-m h-full flex flex-col items-center justify-center"> <iron-icon icon="lumo:error" class="text-error w-l h-l mb-m"></iron-icon> <header class="text-xl text-header container-narrow font-medium"> <x-i18n ns="${0}" lang="${0}" key="errors.${0}.title"></x-i18n> </header> <p class="text-m text-secondary container-narrow mb-l"> <x-i18n ns="${0}" lang="${0}" key="errors.${0}.message"></x-i18n> </p> <div class="flex space-x-s"> <a rel="nofollow noreferrer noopener" href="${0}" target="_blank" class="px-m py-xs text-primary font-medium tracking-wide border border-contrast-10 rounded transition-colors duration-200 hover-bg-primary-10 hover-border-primary-10 focus-outline-none focus-shadow-outline" router-ignore> <x-i18n ns="${0}" lang="${0}" key="errors.${0}.action"></x-i18n> </a> ${0} </div> </article> `),this.ns,this.lang,this.type,this.ns,this.lang,this.type,this._i18n.t(`errors.${this.type}.href`).toString(),this.ns,this.lang,this.type,this.reload?s(l||(l=c` <vaadin-button data-testid="reload" theme="primary" @click="${0}"> <x-i18n ns="${0}" lang="${0}" key="reload"></x-i18n> <iron-icon icon="icons:refresh" slot="suffix"></iron-icon> </vaadin-button> `),(()=>this.dispatchEvent(new h)),this.ns,this.lang):"")}}export{p as E,d as F};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import '@polymer/iron-icon';
|
|
2
2
|
import '@vaadin/vaadin-lumo-styles/icons';
|
|
3
3
|
import '@vaadin/vaadin-text-field/vaadin-integer-field';
|
|
4
|
+
import '@vaadin/vaadin-text-field/vaadin-number-field';
|
|
4
5
|
import '@vaadin/vaadin-text-field/vaadin-text-area';
|
|
5
6
|
import '@vaadin/vaadin-text-field/vaadin-text-field';
|
|
6
7
|
import { CSSResultArray, PropertyDeclarations, TemplateResult } from 'lit-element';
|
|
@@ -20,8 +21,8 @@ export declare class Choice extends Translatable {
|
|
|
20
21
|
set disabled(data: boolean);
|
|
21
22
|
get custom(): boolean;
|
|
22
23
|
set custom(data: boolean);
|
|
23
|
-
get type(): 'text' | 'textarea' | 'integer' | 'frequency';
|
|
24
|
-
set type(data: 'text' | 'textarea' | 'integer' | 'frequency');
|
|
24
|
+
get type(): 'text' | 'textarea' | 'integer' | 'number' | 'frequency';
|
|
25
|
+
set type(data: 'text' | 'textarea' | 'integer' | 'number' | 'frequency');
|
|
25
26
|
get min(): number | null;
|
|
26
27
|
set min(data: number | null);
|
|
27
28
|
get max(): number | null;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import '@polymer/iron-icon';
|
|
2
2
|
import '@vaadin/vaadin-lumo-styles/icons';
|
|
3
3
|
import '@vaadin/vaadin-text-field/vaadin-integer-field';
|
|
4
|
+
import '@vaadin/vaadin-text-field/vaadin-number-field';
|
|
4
5
|
import '@vaadin/vaadin-text-field/vaadin-text-area';
|
|
5
6
|
import '@vaadin/vaadin-text-field/vaadin-text-field';
|
|
6
7
|
import { css, html } from 'lit-element';
|
|
@@ -66,6 +67,7 @@ export class Choice extends Translatable {
|
|
|
66
67
|
static get scopedElements() {
|
|
67
68
|
return {
|
|
68
69
|
'vaadin-integer-field': customElements.get('vaadin-integer-field'),
|
|
70
|
+
'vaadin-number-field': customElements.get('vaadin-number-field'),
|
|
69
71
|
'vaadin-text-field': customElements.get('vaadin-text-field'),
|
|
70
72
|
'x-frequency-input': FrequencyInput,
|
|
71
73
|
'vaadin-text-area': customElements.get('vaadin-text-area'),
|
|
@@ -264,6 +266,9 @@ export class Choice extends Translatable {
|
|
|
264
266
|
else if (this.type === 'integer') {
|
|
265
267
|
return html `<vaadin-integer-field ...=${attributes} has-controls></vaadin-integer-field>`;
|
|
266
268
|
}
|
|
269
|
+
else if (this.type === 'number') {
|
|
270
|
+
return html `<vaadin-number-field ...=${attributes} has-controls></vaadin-number-field>`;
|
|
271
|
+
}
|
|
267
272
|
else if (this.type === 'textarea') {
|
|
268
273
|
return html `<vaadin-text-area ...=${attributes}></vaadin-text-area>`;
|
|
269
274
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Choice.js","sourceRoot":"","sources":["../../../../src/elements/private/Choice/Choice.ts"],"names":[],"mappings":"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","sourcesContent":["import '@polymer/iron-icon';\nimport '@vaadin/vaadin-lumo-styles/icons';\nimport '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport '@vaadin/vaadin-text-field/vaadin-text-area';\nimport '@vaadin/vaadin-text-field/vaadin-text-field';\n\nimport { CSSResultArray, PropertyDeclarations, TemplateResult, css, html } from 'lit-element';\n\nimport { AttributePart } from 'lit-html';\nimport { ChoiceChangeEvent } from './ChoiceChangeEvent';\nimport { FrequencyInput } from '../FrequencyInput/FrequencyInput';\nimport { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport { Translatable } from '../../../mixins/translatable';\nimport { interpret } from 'xstate';\nimport { machine } from './machine';\nimport { spread } from '@open-wc/lit-helpers/src/spread';\n\nconst VALUE_OTHER = `@foxy.io/elements::other[${(Math.pow(10, 10) * Math.random()).toFixed(0)}]`;\n\nfunction radio(\n readonly: boolean,\n disabled: boolean,\n checked: boolean,\n attrs: (part: AttributePart) => void,\n label: TemplateResult\n) {\n const enabledBg = checked ? 'bg-primary' : 'bg-contrast-20 group-hover-bg-contrast-30';\n const disabledBg = checked ? 'bg-primary-50' : 'bg-contrast-10';\n const scale = checked ? 'scale-100' : 'scale-0';\n const color = disabled ? 'text-disabled' : readonly ? 'text-secondary' : 'text-body';\n const ease = 'transition ease-in-out duration-200';\n const dotBg = readonly ? 'bg-contrast-70' : 'bg-tint';\n const dot = `${ease} ${disabled || readonly ? '' : 'shadow-xs'} transform ${scale} ${dotBg}`;\n const bg = readonly ? '' : disabled ? disabledBg : enabledBg;\n const border = `border ${readonly ? 'border-dashed border-contrast-30' : 'border-transparent'}`;\n\n return html`\n <label class=\"group flex items-center ${disabled || readonly ? '' : 'cursor-pointer'}\">\n <div class=\"item flex items-center justify-center flex-shrink-0\">\n <div class=\"flex radio rounded-full ${border} ${ease} ${bg} focus-within-shadow-outline\">\n <div class=\"dot m-auto rounded-full ${dot}\"></div>\n <input type=\"radio\" class=\"sr-only\" .checked=${checked} ...=${attrs} />\n </div>\n </div>\n <div class=\"font-lumo leading-m ${color}\">${label}</div>\n </label>\n `;\n}\n\nfunction check(\n readonly: boolean,\n disabled: boolean,\n checked: boolean,\n attrs: (part: AttributePart) => void,\n label: TemplateResult\n) {\n const enabledBg = checked ? 'bg-primary' : 'bg-contrast-20 group-hover-bg-contrast-30';\n const disabledBg = checked ? 'bg-primary-50' : 'bg-contrast-10';\n const scale = checked ? 'scale-100' : 'scale-0';\n const color = disabled ? 'text-disabled' : readonly ? 'text-secondary' : 'text-body';\n const ease = 'transition ease-in-out duration-200';\n const dot = `${ease} transform ${scale} ${readonly ? 'text-contrast-70' : 'text-tint'}`;\n const bg = readonly ? '' : disabled ? disabledBg : enabledBg;\n const border = `border ${readonly ? 'border-dashed border-contrast-30' : 'border-transparent'}`;\n\n return html`\n <label class=\"group flex items-center ${disabled || readonly ? '' : 'cursor-pointer'}\">\n <div class=\"item flex items-center justify-center flex-shrink-0 text-primary-contrast\">\n <div class=\"check rounded-s ${border} ${ease} ${bg} focus-within-shadow-outline\">\n <iron-icon icon=\"lumo:checkmark\" class=\"block w-full h-full ${dot}\"></iron-icon>\n <input type=\"checkbox\" class=\"sr-only\" .checked=${checked} ...=${attrs} />\n </div>\n </div>\n <div class=\"font-lumo leading-m ${color}\">${label}</div>\n </label>\n `;\n}\n\nexport class Choice extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-integer-field': customElements.get('vaadin-integer-field'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'x-frequency-input': FrequencyInput,\n 'vaadin-text-area': customElements.get('vaadin-text-area'),\n 'iron-icon': customElements.get('iron-icon'),\n };\n }\n\n public static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n --item-width: calc((var(--lumo-space-m) * 2) + 1.25rem);\n }\n .ml-xxl {\n margin-left: var(--item-width);\n }\n .item {\n height: var(--lumo-size-l);\n width: var(--item-width);\n }\n .radio {\n height: 1.25rem;\n width: 1.25rem;\n }\n .check {\n height: 1.125rem;\n width: 1.125rem;\n }\n .dot {\n height: 0.5rem;\n width: 0.5rem;\n }\n `,\n ];\n }\n\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultCustomValue: { type: String, attribute: 'default-custom-value' },\n disabled: { type: Boolean },\n readonly: { type: Boolean },\n custom: { type: Boolean },\n type: { type: String },\n min: { type: Number },\n max: { type: Number },\n value: { type: Array },\n items: { type: Array },\n getText: { attribute: false },\n };\n }\n\n public getText: (value: string) => string = v => v;\n\n private __service = interpret(machine)\n .onChange(() => this.requestUpdate())\n .onTransition(({ changed }) => changed && this.requestUpdate())\n .start();\n\n public get defaultCustomValue(): string {\n return this.__service.state.context.defaultCustomValue;\n }\n\n public set defaultCustomValue(data: string) {\n this.__service.send('SET_DEFAULT_CUSTOM_VALUE', { data });\n }\n\n public get readonly(): boolean {\n return this.__service.state.matches('mutability.readonly');\n }\n\n public set readonly(data: boolean) {\n this.__service.send('SET_READONLY', { data });\n }\n\n public get disabled(): boolean {\n return this.__service.state.matches('interactivity.disabled');\n }\n\n public set disabled(data: boolean) {\n this.__service.send('SET_DISABLED', { data });\n }\n\n public get custom(): boolean {\n return this.__service.state.matches('extension.present');\n }\n\n public set custom(data: boolean) {\n this.__service.send('SET_CUSTOM', { data });\n }\n\n public get type(): 'text' | 'textarea' | 'integer' | 'frequency' {\n return this.__service.state.context.type;\n }\n\n public set type(data: 'text' | 'textarea' | 'integer' | 'frequency') {\n this.__service.send('SET_TYPE', { data });\n }\n\n public get min(): number | null {\n return this.__service.state.context.min;\n }\n\n public set min(data: number | null) {\n this.__service.send('SET_MIN', { data });\n }\n\n public get max(): number | null {\n return this.__service.state.context.max;\n }\n\n public set max(data: number | null) {\n this.__service.send('SET_MAX', { data });\n }\n\n public get value(): null | string | string[] {\n return this.__service.state.context.value;\n }\n\n public set value(data: null | string | string[]) {\n this.__service.send('SET_VALUE', { data });\n }\n\n public get items(): string[] {\n return this.__service.state.context.items;\n }\n\n public set items(data: string[]) {\n this.__service.send('SET_ITEMS', { data });\n }\n\n public render(): TemplateResult {\n const items = this.custom ? [...this.items, VALUE_OTHER] : this.items;\n const multiple = Array.isArray(this.value);\n const otherChecked = this.__service.state.matches('extension.present.selected');\n\n const children = html`\n ${items.map((item, index, array) => {\n const other = this.custom && index === array.length - 1;\n const checked = other\n ? otherChecked\n : multiple\n ? !!this.value?.includes(item)\n : item === String(this.value);\n const disabled = this.disabled || !this._isI18nReady;\n const attributes = spread({\n 'value': other ? VALUE_OTHER : item,\n 'name': multiple ? item : 'choice',\n 'data-testid': `item-${item}`,\n '?disabled': disabled,\n '@change': (evt: Event) => {\n if (this.readonly) return evt.preventDefault();\n\n const checked = (evt.target as HTMLInputElement).checked;\n const newItem = item === VALUE_OTHER ? this.defaultCustomValue : item;\n const value = this.value;\n\n if (Array.isArray(value)) {\n if (item === VALUE_OTHER) {\n this.value = checked ? [...value, newItem] : value.slice(0, value.length - 1);\n } else {\n this.value = checked ? [newItem, ...value] : value.filter(v => v !== newItem);\n }\n } else {\n this.value = checked ? newItem : null;\n }\n\n this.dispatchEvent(new ChoiceChangeEvent(this.value));\n },\n });\n const label = html`\n <div>\n ${item === VALUE_OTHER\n ? this._t('choice.other').toString()\n : html`<slot name=${`${item}-label`}>${this.getText(item)}</slot>`}\n </div>\n `;\n return html`\n <div class=\"ml-xxl border-t border-contrast-10 ${index ? '' : 'hidden'}\"></div>\n ${multiple\n ? check(this.readonly, disabled, checked, attributes, label)\n : radio(this.readonly, disabled, checked, attributes, label)}\n <div class=\"mr-m ml-xxl\">\n ${item === VALUE_OTHER && otherChecked ? this.__field : ''}\n ${item !== VALUE_OTHER ? html`<slot name=${item}></slot>` : ''}\n </div>\n `;\n })}\n `;\n\n return html`<form>${children}</form> `;\n }\n\n private get __field() {\n const handleInput = (evt: Event) => {\n evt.stopPropagation();\n const customValue = (evt.target as HTMLInputElement).value;\n\n if (Array.isArray(this.value)) {\n this.value = this.value.slice(0, this.value.length - 1).concat(customValue);\n } else {\n this.value = customValue;\n }\n\n this.dispatchEvent(new ChoiceChangeEvent(this.value));\n };\n\n const attributes = spread({\n 'placeholder': this._t('choice.other').toString(),\n 'class': 'w-full mb-m',\n 'value': this.__service.state.context.customValue,\n 'max': this.max,\n 'min': this.min,\n 'ns': this.ns,\n '?disabled': this.disabled,\n '?readonly': this.readonly,\n 'data-testid': 'field',\n '@change': handleInput,\n });\n\n if (this.type === 'frequency') {\n return html`<x-frequency-input ...=${attributes}></x-frequency-input>`;\n } else if (this.type === 'integer') {\n return html`<vaadin-integer-field ...=${attributes} has-controls></vaadin-integer-field>`;\n } else if (this.type === 'textarea') {\n return html`<vaadin-text-area ...=${attributes}></vaadin-text-area>`;\n } else {\n return html`<vaadin-text-field ...=${attributes}></vaadin-text-field>`;\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Choice.js","sourceRoot":"","sources":["../../../../src/elements/private/Choice/Choice.ts"],"names":[],"mappings":"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","sourcesContent":["import '@polymer/iron-icon';\nimport '@vaadin/vaadin-lumo-styles/icons';\nimport '@vaadin/vaadin-text-field/vaadin-integer-field';\nimport '@vaadin/vaadin-text-field/vaadin-number-field';\nimport '@vaadin/vaadin-text-field/vaadin-text-area';\nimport '@vaadin/vaadin-text-field/vaadin-text-field';\n\nimport { CSSResultArray, PropertyDeclarations, TemplateResult, css, html } from 'lit-element';\n\nimport { AttributePart } from 'lit-html';\nimport { ChoiceChangeEvent } from './ChoiceChangeEvent';\nimport { FrequencyInput } from '../FrequencyInput/FrequencyInput';\nimport { ScopedElementsMap } from '@open-wc/scoped-elements';\nimport { Translatable } from '../../../mixins/translatable';\nimport { interpret } from 'xstate';\nimport { machine } from './machine';\nimport { spread } from '@open-wc/lit-helpers/src/spread';\n\nconst VALUE_OTHER = `@foxy.io/elements::other[${(Math.pow(10, 10) * Math.random()).toFixed(0)}]`;\n\nfunction radio(\n readonly: boolean,\n disabled: boolean,\n checked: boolean,\n attrs: (part: AttributePart) => void,\n label: TemplateResult\n) {\n const enabledBg = checked ? 'bg-primary' : 'bg-contrast-20 group-hover-bg-contrast-30';\n const disabledBg = checked ? 'bg-primary-50' : 'bg-contrast-10';\n const scale = checked ? 'scale-100' : 'scale-0';\n const color = disabled ? 'text-disabled' : readonly ? 'text-secondary' : 'text-body';\n const ease = 'transition ease-in-out duration-200';\n const dotBg = readonly ? 'bg-contrast-70' : 'bg-tint';\n const dot = `${ease} ${disabled || readonly ? '' : 'shadow-xs'} transform ${scale} ${dotBg}`;\n const bg = readonly ? '' : disabled ? disabledBg : enabledBg;\n const border = `border ${readonly ? 'border-dashed border-contrast-30' : 'border-transparent'}`;\n\n return html`\n <label class=\"group flex items-center ${disabled || readonly ? '' : 'cursor-pointer'}\">\n <div class=\"item flex items-center justify-center flex-shrink-0\">\n <div class=\"flex radio rounded-full ${border} ${ease} ${bg} focus-within-shadow-outline\">\n <div class=\"dot m-auto rounded-full ${dot}\"></div>\n <input type=\"radio\" class=\"sr-only\" .checked=${checked} ...=${attrs} />\n </div>\n </div>\n <div class=\"font-lumo leading-m ${color}\">${label}</div>\n </label>\n `;\n}\n\nfunction check(\n readonly: boolean,\n disabled: boolean,\n checked: boolean,\n attrs: (part: AttributePart) => void,\n label: TemplateResult\n) {\n const enabledBg = checked ? 'bg-primary' : 'bg-contrast-20 group-hover-bg-contrast-30';\n const disabledBg = checked ? 'bg-primary-50' : 'bg-contrast-10';\n const scale = checked ? 'scale-100' : 'scale-0';\n const color = disabled ? 'text-disabled' : readonly ? 'text-secondary' : 'text-body';\n const ease = 'transition ease-in-out duration-200';\n const dot = `${ease} transform ${scale} ${readonly ? 'text-contrast-70' : 'text-tint'}`;\n const bg = readonly ? '' : disabled ? disabledBg : enabledBg;\n const border = `border ${readonly ? 'border-dashed border-contrast-30' : 'border-transparent'}`;\n\n return html`\n <label class=\"group flex items-center ${disabled || readonly ? '' : 'cursor-pointer'}\">\n <div class=\"item flex items-center justify-center flex-shrink-0 text-primary-contrast\">\n <div class=\"check rounded-s ${border} ${ease} ${bg} focus-within-shadow-outline\">\n <iron-icon icon=\"lumo:checkmark\" class=\"block w-full h-full ${dot}\"></iron-icon>\n <input type=\"checkbox\" class=\"sr-only\" .checked=${checked} ...=${attrs} />\n </div>\n </div>\n <div class=\"font-lumo leading-m ${color}\">${label}</div>\n </label>\n `;\n}\n\nexport class Choice extends Translatable {\n public static get scopedElements(): ScopedElementsMap {\n return {\n 'vaadin-integer-field': customElements.get('vaadin-integer-field'),\n 'vaadin-number-field': customElements.get('vaadin-number-field'),\n 'vaadin-text-field': customElements.get('vaadin-text-field'),\n 'x-frequency-input': FrequencyInput,\n 'vaadin-text-area': customElements.get('vaadin-text-area'),\n 'iron-icon': customElements.get('iron-icon'),\n };\n }\n\n public static get styles(): CSSResultArray {\n return [\n super.styles,\n css`\n :host {\n --item-width: calc((var(--lumo-space-m) * 2) + 1.25rem);\n }\n .ml-xxl {\n margin-left: var(--item-width);\n }\n .item {\n height: var(--lumo-size-l);\n width: var(--item-width);\n }\n .radio {\n height: 1.25rem;\n width: 1.25rem;\n }\n .check {\n height: 1.125rem;\n width: 1.125rem;\n }\n .dot {\n height: 0.5rem;\n width: 0.5rem;\n }\n `,\n ];\n }\n\n public static get properties(): PropertyDeclarations {\n return {\n ...super.properties,\n defaultCustomValue: { type: String, attribute: 'default-custom-value' },\n disabled: { type: Boolean },\n readonly: { type: Boolean },\n custom: { type: Boolean },\n type: { type: String },\n min: { type: Number },\n max: { type: Number },\n value: { type: Array },\n items: { type: Array },\n getText: { attribute: false },\n };\n }\n\n public getText: (value: string) => string = v => v;\n\n private __service = interpret(machine)\n .onChange(() => this.requestUpdate())\n .onTransition(({ changed }) => changed && this.requestUpdate())\n .start();\n\n public get defaultCustomValue(): string {\n return this.__service.state.context.defaultCustomValue;\n }\n\n public set defaultCustomValue(data: string) {\n this.__service.send('SET_DEFAULT_CUSTOM_VALUE', { data });\n }\n\n public get readonly(): boolean {\n return this.__service.state.matches('mutability.readonly');\n }\n\n public set readonly(data: boolean) {\n this.__service.send('SET_READONLY', { data });\n }\n\n public get disabled(): boolean {\n return this.__service.state.matches('interactivity.disabled');\n }\n\n public set disabled(data: boolean) {\n this.__service.send('SET_DISABLED', { data });\n }\n\n public get custom(): boolean {\n return this.__service.state.matches('extension.present');\n }\n\n public set custom(data: boolean) {\n this.__service.send('SET_CUSTOM', { data });\n }\n\n public get type(): 'text' | 'textarea' | 'integer' | 'number' | 'frequency' {\n return this.__service.state.context.type;\n }\n\n public set type(data: 'text' | 'textarea' | 'integer' | 'number' | 'frequency') {\n this.__service.send('SET_TYPE', { data });\n }\n\n public get min(): number | null {\n return this.__service.state.context.min;\n }\n\n public set min(data: number | null) {\n this.__service.send('SET_MIN', { data });\n }\n\n public get max(): number | null {\n return this.__service.state.context.max;\n }\n\n public set max(data: number | null) {\n this.__service.send('SET_MAX', { data });\n }\n\n public get value(): null | string | string[] {\n return this.__service.state.context.value;\n }\n\n public set value(data: null | string | string[]) {\n this.__service.send('SET_VALUE', { data });\n }\n\n public get items(): string[] {\n return this.__service.state.context.items;\n }\n\n public set items(data: string[]) {\n this.__service.send('SET_ITEMS', { data });\n }\n\n public render(): TemplateResult {\n const items = this.custom ? [...this.items, VALUE_OTHER] : this.items;\n const multiple = Array.isArray(this.value);\n const otherChecked = this.__service.state.matches('extension.present.selected');\n\n const children = html`\n ${items.map((item, index, array) => {\n const other = this.custom && index === array.length - 1;\n const checked = other\n ? otherChecked\n : multiple\n ? !!this.value?.includes(item)\n : item === String(this.value);\n const disabled = this.disabled || !this._isI18nReady;\n const attributes = spread({\n 'value': other ? VALUE_OTHER : item,\n 'name': multiple ? item : 'choice',\n 'data-testid': `item-${item}`,\n '?disabled': disabled,\n '@change': (evt: Event) => {\n if (this.readonly) return evt.preventDefault();\n\n const checked = (evt.target as HTMLInputElement).checked;\n const newItem = item === VALUE_OTHER ? this.defaultCustomValue : item;\n const value = this.value;\n\n if (Array.isArray(value)) {\n if (item === VALUE_OTHER) {\n this.value = checked ? [...value, newItem] : value.slice(0, value.length - 1);\n } else {\n this.value = checked ? [newItem, ...value] : value.filter(v => v !== newItem);\n }\n } else {\n this.value = checked ? newItem : null;\n }\n\n this.dispatchEvent(new ChoiceChangeEvent(this.value));\n },\n });\n const label = html`\n <div>\n ${item === VALUE_OTHER\n ? this._t('choice.other').toString()\n : html`<slot name=${`${item}-label`}>${this.getText(item)}</slot>`}\n </div>\n `;\n return html`\n <div class=\"ml-xxl border-t border-contrast-10 ${index ? '' : 'hidden'}\"></div>\n ${multiple\n ? check(this.readonly, disabled, checked, attributes, label)\n : radio(this.readonly, disabled, checked, attributes, label)}\n <div class=\"mr-m ml-xxl\">\n ${item === VALUE_OTHER && otherChecked ? this.__field : ''}\n ${item !== VALUE_OTHER ? html`<slot name=${item}></slot>` : ''}\n </div>\n `;\n })}\n `;\n\n return html`<form>${children}</form> `;\n }\n\n private get __field() {\n const handleInput = (evt: Event) => {\n evt.stopPropagation();\n const customValue = (evt.target as HTMLInputElement).value;\n\n if (Array.isArray(this.value)) {\n this.value = this.value.slice(0, this.value.length - 1).concat(customValue);\n } else {\n this.value = customValue;\n }\n\n this.dispatchEvent(new ChoiceChangeEvent(this.value));\n };\n\n const attributes = spread({\n 'placeholder': this._t('choice.other').toString(),\n 'class': 'w-full mb-m',\n 'value': this.__service.state.context.customValue,\n 'max': this.max,\n 'min': this.min,\n 'ns': this.ns,\n '?disabled': this.disabled,\n '?readonly': this.readonly,\n 'data-testid': 'field',\n '@change': handleInput,\n });\n\n if (this.type === 'frequency') {\n return html`<x-frequency-input ...=${attributes}></x-frequency-input>`;\n } else if (this.type === 'integer') {\n return html`<vaadin-integer-field ...=${attributes} has-controls></vaadin-integer-field>`;\n } else if (this.type === 'number') {\n return html`<vaadin-number-field ...=${attributes} has-controls></vaadin-number-field>`;\n } else if (this.type === 'textarea') {\n return html`<vaadin-text-area ...=${attributes}></vaadin-text-area>`;\n } else {\n return html`<vaadin-text-field ...=${attributes}></vaadin-text-field>`;\n }\n }\n}\n"]}
|
|
@@ -69,6 +69,7 @@ export const machine = createMachine({
|
|
|
69
69
|
states: {
|
|
70
70
|
unknown: {
|
|
71
71
|
always: [
|
|
72
|
+
{ target: 'number', cond: 'showsNumberField' },
|
|
72
73
|
{ target: 'integer', cond: 'showsIntegerField' },
|
|
73
74
|
{ target: 'textarea', cond: 'showsTextarea' },
|
|
74
75
|
{ target: 'frequency', cond: 'showsFrequency' },
|
|
@@ -109,6 +110,37 @@ export const machine = createMachine({
|
|
|
109
110
|
},
|
|
110
111
|
},
|
|
111
112
|
},
|
|
113
|
+
number: {
|
|
114
|
+
type: 'parallel',
|
|
115
|
+
states: {
|
|
116
|
+
min: {
|
|
117
|
+
initial: 'unknown',
|
|
118
|
+
states: {
|
|
119
|
+
unknown: {
|
|
120
|
+
always: [
|
|
121
|
+
{ target: 'custom', cond: 'hasMinConstraint' },
|
|
122
|
+
{ target: 'none' },
|
|
123
|
+
],
|
|
124
|
+
},
|
|
125
|
+
none: {},
|
|
126
|
+
custom: {},
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
max: {
|
|
130
|
+
initial: 'unknown',
|
|
131
|
+
states: {
|
|
132
|
+
unknown: {
|
|
133
|
+
always: [
|
|
134
|
+
{ target: 'custom', cond: 'hasMaxConstraint' },
|
|
135
|
+
{ target: 'none' },
|
|
136
|
+
],
|
|
137
|
+
},
|
|
138
|
+
none: {},
|
|
139
|
+
custom: {},
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
112
144
|
},
|
|
113
145
|
},
|
|
114
146
|
},
|
|
@@ -131,6 +163,7 @@ export const machine = createMachine({
|
|
|
131
163
|
isPayloadTruthy: (_, evt) => !!evt.data,
|
|
132
164
|
isValueArray: ctx => Array.isArray(ctx.value),
|
|
133
165
|
showsIntegerField: ctx => ctx.type === 'integer',
|
|
166
|
+
showsNumberField: ctx => ctx.type === 'number',
|
|
134
167
|
showsFrequency: ctx => ctx.type === 'frequency',
|
|
135
168
|
showsTextarea: ctx => ctx.type === 'textarea',
|
|
136
169
|
hasMinConstraint: ctx => typeof ctx.min === 'number',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"machine.js","sourceRoot":"","sources":["../../../../src/elements/private/Choice/machine.ts"],"names":[],"mappings":"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","sourcesContent":["import { actions, createMachine } from 'xstate';\n\nimport { Choice } from './Choice';\n\ntype Context = Pick<Choice, 'custom' | 'items' | 'value' | 'type' | 'min' | 'max'> & {\n customValue: string | null;\n defaultCustomValue: string;\n};\n\nexport const machine = createMachine<Context>(\n {\n id: 'choice',\n type: 'parallel',\n context: {\n defaultCustomValue: '',\n customValue: null,\n custom: false,\n items: [],\n value: null,\n type: 'text',\n min: null,\n max: null,\n },\n states: {\n mutability: {\n initial: 'editable',\n states: {\n editable: {},\n readonly: {},\n },\n on: {\n SET_READONLY: [\n { target: '.editable', cond: 'isPayloadFalsey' },\n { target: '.readonly', cond: 'isPayloadTruthy' },\n ],\n },\n },\n\n interactivity: {\n initial: 'enabled',\n states: {\n enabled: {},\n disabled: {},\n },\n on: {\n SET_DISABLED: [\n { target: '.enabled', cond: 'isPayloadFalsey' },\n { target: '.disabled', cond: 'isPayloadTruthy' },\n ],\n },\n },\n\n selection: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [{ target: 'multiple', cond: 'isValueArray' }, { target: 'single' }],\n },\n none: {},\n single: {},\n multiple: {},\n },\n },\n\n extension: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [{ target: 'present', cond: 'hasCustom' }, { target: 'absent' }],\n },\n absent: {},\n present: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [{ target: 'selected', cond: 'hasCustomValue' }, { target: 'available' }],\n },\n available: { on: { SET_TYPE: { actions: 'setType' } } },\n selected: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'integer', cond: 'showsIntegerField' },\n { target: 'textarea', cond: 'showsTextarea' },\n { target: 'frequency', cond: 'showsFrequency' },\n { target: 'text' },\n ],\n },\n text: {},\n frequency: {},\n textarea: {},\n integer: {\n type: 'parallel',\n states: {\n min: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'custom', cond: 'hasMinConstraint' },\n { target: 'none' },\n ],\n },\n none: {},\n custom: {},\n },\n },\n max: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'custom', cond: 'hasMaxConstraint' },\n { target: 'none' },\n ],\n },\n none: {},\n custom: {},\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n on: {\n SET_DEFAULT_CUSTOM_VALUE: { actions: 'setDefaultCustomValue' },\n SET_CUSTOM: { actions: 'setCustom', target: ['.selection.unknown', '.extension.unknown'] },\n SET_VALUE: { actions: 'setValue', target: ['.selection.unknown', '.extension.unknown'] },\n SET_ITEMS: { actions: 'setItems', target: ['.selection.unknown', '.extension.unknown'] },\n SET_TYPE: { actions: 'setType', target: '.extension.unknown' },\n SET_MIN: { actions: 'setMin', target: '.extension.unknown' },\n SET_MAX: { actions: 'setMax', target: '.extension.unknown' },\n },\n },\n {\n guards: {\n isPayloadFalsey: (_, evt) => !evt.data,\n isPayloadTruthy: (_, evt) => !!evt.data,\n isValueArray: ctx => Array.isArray(ctx.value),\n showsIntegerField: ctx => ctx.type === 'integer',\n showsFrequency: ctx => ctx.type === 'frequency',\n showsTextarea: ctx => ctx.type === 'textarea',\n hasMinConstraint: ctx => typeof ctx.min === 'number',\n hasMaxConstraint: ctx => typeof ctx.max === 'number',\n hasCustomValue: ctx => typeof ctx.customValue === 'string',\n hasCustom: ctx => ctx.custom,\n },\n actions: {\n setDefaultCustomValue: actions.assign({ defaultCustomValue: (_, evt) => evt.data }),\n setValue: actions.assign({\n value: (_, evt) => evt.data,\n customValue: (ctx, evt) =>\n Array.isArray(evt.data)\n ? evt.data.find(v => !ctx.items.includes(v))\n : ctx.items.includes(evt.data)\n ? null\n : evt.data,\n }),\n setCustom: actions.assign({ custom: (_, evt) => evt.data }),\n setItems: actions.assign({ items: (_, evt) => evt.data }),\n setType: actions.assign({ type: (_, evt) => evt.data }),\n setMin: actions.assign({ min: (_, evt) => evt.data }),\n setMax: actions.assign({ max: (_, evt) => evt.data }),\n },\n }\n);\n"]}
|
|
1
|
+
{"version":3,"file":"machine.js","sourceRoot":"","sources":["../../../../src/elements/private/Choice/machine.ts"],"names":[],"mappings":"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","sourcesContent":["import { actions, createMachine } from 'xstate';\n\nimport { Choice } from './Choice';\n\ntype Context = Pick<Choice, 'custom' | 'items' | 'value' | 'type' | 'min' | 'max'> & {\n customValue: string | null;\n defaultCustomValue: string;\n};\n\nexport const machine = createMachine<Context>(\n {\n id: 'choice',\n type: 'parallel',\n context: {\n defaultCustomValue: '',\n customValue: null,\n custom: false,\n items: [],\n value: null,\n type: 'text',\n min: null,\n max: null,\n },\n states: {\n mutability: {\n initial: 'editable',\n states: {\n editable: {},\n readonly: {},\n },\n on: {\n SET_READONLY: [\n { target: '.editable', cond: 'isPayloadFalsey' },\n { target: '.readonly', cond: 'isPayloadTruthy' },\n ],\n },\n },\n\n interactivity: {\n initial: 'enabled',\n states: {\n enabled: {},\n disabled: {},\n },\n on: {\n SET_DISABLED: [\n { target: '.enabled', cond: 'isPayloadFalsey' },\n { target: '.disabled', cond: 'isPayloadTruthy' },\n ],\n },\n },\n\n selection: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [{ target: 'multiple', cond: 'isValueArray' }, { target: 'single' }],\n },\n none: {},\n single: {},\n multiple: {},\n },\n },\n\n extension: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [{ target: 'present', cond: 'hasCustom' }, { target: 'absent' }],\n },\n absent: {},\n present: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [{ target: 'selected', cond: 'hasCustomValue' }, { target: 'available' }],\n },\n available: { on: { SET_TYPE: { actions: 'setType' } } },\n selected: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'number', cond: 'showsNumberField' },\n { target: 'integer', cond: 'showsIntegerField' },\n { target: 'textarea', cond: 'showsTextarea' },\n { target: 'frequency', cond: 'showsFrequency' },\n { target: 'text' },\n ],\n },\n text: {},\n frequency: {},\n textarea: {},\n integer: {\n type: 'parallel',\n states: {\n min: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'custom', cond: 'hasMinConstraint' },\n { target: 'none' },\n ],\n },\n none: {},\n custom: {},\n },\n },\n max: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'custom', cond: 'hasMaxConstraint' },\n { target: 'none' },\n ],\n },\n none: {},\n custom: {},\n },\n },\n },\n },\n number: {\n type: 'parallel',\n states: {\n min: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'custom', cond: 'hasMinConstraint' },\n { target: 'none' },\n ],\n },\n none: {},\n custom: {},\n },\n },\n max: {\n initial: 'unknown',\n states: {\n unknown: {\n always: [\n { target: 'custom', cond: 'hasMaxConstraint' },\n { target: 'none' },\n ],\n },\n none: {},\n custom: {},\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n },\n on: {\n SET_DEFAULT_CUSTOM_VALUE: { actions: 'setDefaultCustomValue' },\n SET_CUSTOM: { actions: 'setCustom', target: ['.selection.unknown', '.extension.unknown'] },\n SET_VALUE: { actions: 'setValue', target: ['.selection.unknown', '.extension.unknown'] },\n SET_ITEMS: { actions: 'setItems', target: ['.selection.unknown', '.extension.unknown'] },\n SET_TYPE: { actions: 'setType', target: '.extension.unknown' },\n SET_MIN: { actions: 'setMin', target: '.extension.unknown' },\n SET_MAX: { actions: 'setMax', target: '.extension.unknown' },\n },\n },\n {\n guards: {\n isPayloadFalsey: (_, evt) => !evt.data,\n isPayloadTruthy: (_, evt) => !!evt.data,\n isValueArray: ctx => Array.isArray(ctx.value),\n showsIntegerField: ctx => ctx.type === 'integer',\n showsNumberField: ctx => ctx.type === 'number',\n showsFrequency: ctx => ctx.type === 'frequency',\n showsTextarea: ctx => ctx.type === 'textarea',\n hasMinConstraint: ctx => typeof ctx.min === 'number',\n hasMaxConstraint: ctx => typeof ctx.max === 'number',\n hasCustomValue: ctx => typeof ctx.customValue === 'string',\n hasCustom: ctx => ctx.custom,\n },\n actions: {\n setDefaultCustomValue: actions.assign({ defaultCustomValue: (_, evt) => evt.data }),\n setValue: actions.assign({\n value: (_, evt) => evt.data,\n customValue: (ctx, evt) =>\n Array.isArray(evt.data)\n ? evt.data.find(v => !ctx.items.includes(v))\n : ctx.items.includes(evt.data)\n ? null\n : evt.data,\n }),\n setCustom: actions.assign({ custom: (_, evt) => evt.data }),\n setItems: actions.assign({ items: (_, evt) => evt.data }),\n setType: actions.assign({ type: (_, evt) => evt.data }),\n setMin: actions.assign({ min: (_, evt) => evt.data }),\n setMax: actions.assign({ max: (_, evt) => evt.data }),\n },\n }\n);\n"]}
|
|
@@ -154,5 +154,13 @@ export class AccessRecoveryForm extends Base {
|
|
|
154
154
|
</main>
|
|
155
155
|
`;
|
|
156
156
|
}
|
|
157
|
+
async _sendPost(edits) {
|
|
158
|
+
const body = JSON.stringify(edits);
|
|
159
|
+
const data = await this._fetch(this.parent, { body, method: 'POST' });
|
|
160
|
+
const rumour = NucleonElement.Rumour(this.group);
|
|
161
|
+
const related = [...this.related, this.parent];
|
|
162
|
+
rumour.share({ data, related, source: data._links.self.href });
|
|
163
|
+
return data;
|
|
164
|
+
}
|
|
157
165
|
}
|
|
158
166
|
//# sourceMappingURL=AccessRecoveryForm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AccessRecoveryForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AccessRecoveryForm/AccessRecoveryForm.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AAEjE,OAAO,EAAE,cAAc,EAAE,4CAAyC;AAElE,OAAO,EAAE,cAAc,EAAE,qCAAkC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,wCAAqC;AACjE,OAAO,EAAE,QAAQ,EAAE,oCAAiC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAC3D,OAAO,EAAE,QAAQ,IAAI,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAEtD,MAAM,EAAE,GAAG,sBAAsB,CAAC;AAClC,MAAM,IAAI,GAAG,cAAc,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;AAEtF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,kBAAmB,SAAQ,IAAU;IAAlD;;QAQE,cAAS,GAAc,EAAE,CAAC;QAET,yBAAoB,GAAG,GAAG,EAAE;YAC3C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QAEe,kBAAa,GAAG,GAAG,EAAE;;YACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAE7C,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3E,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;YAC/E,MAAM,iBAAiB,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAExF,MAAM,aAAa,GAAG,CAAC,GAAkB,EAAE,EAAE;gBAC3C,IAAI,GAAG,CAAC,GAAG,KAAK,OAAO;oBAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YACzC,CAAC,CAAC;YAEF,MAAM,WAAW,GAAG,CAAC,GAAe,EAAE,EAAE;gBACtC,IAAI,CAAC,IAAI,CAAC;oBACR,MAAM,EAAE,EAAE,KAAK,EAAG,GAAG,CAAC,MAA4B,CAAC,KAAK,EAAE;oBAC1D,IAAI,EAAE,OAAO;iBACd,CAAC,CAAC;YACL,CAAC,CAAC;YAEF,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;;0BAGzB,iBAAiB;;;kBAGzB,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE;kBAC1B,SAAS,OAAC,IAAI,CAAC,IAAI,CAAC,MAAM,0CAAE,KAAK,CAAC;sBAC9B,MAAM,IAAI,MAAM,IAAI,QAAQ,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;sBAC5E,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC;2BACvC,IAAI,CAAC,oBAAoB;mBACjC,WAAW;qBACT,aAAa;;;;UAIxB,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC;;KAE7C,CAAC;QACJ,CAAC,CAAC;QAEe,oBAAe,GAAG,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,4BAA4B,CAAC;YACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC;YAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,wBAAwB,CAAC;YAElE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC;;kEAEa,KAAK;0EACG,IAAI;4BAClD,IAAI,CAAC,IAAI,QAAQ,GAAG,OAAO,IAAI,CAAC,EAAE;;;UAGpD,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;KAE/C,CAAC;QACJ,CAAC,CAAC;QAEe,mBAAc,GAAG,GAAG,EAAE;YACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;YACzC,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;YAC7C,MAAM,gBAAgB,GAAG,MAAM,IAAI,MAAM,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;YAElE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;;;;;;sBAM9B,gBAAgB,IAAI,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;mBACpE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE;;4BAEV,IAAI,CAAC,IAAI,4BAA4B,IAAI,CAAC,EAAE;;;UAG9D,IAAI,CAAC,oBAAoB,CAAC,cAAc,CAAC;;KAE9C,CAAC;QACJ,CAAC,CAAC;IAqCJ,CAAC;IAzIC,MAAM,KAAK,GAAG;QACZ,OAAO;YACL,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAA,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,KAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,gBAAgB;YACvE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,WAAC,OAAA,OAAO,OAAC,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,KAAK,mCAAI,EAAE,CAAC,IAAI,qBAAqB,CAAA,EAAA;SACpE,CAAC;IACJ,CAAC;IAiGD,MAAM;;QACJ,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;QAE/B,OAAO,IAAI,CAAA;;;;oBAIK,MAAM;;;UAGhB,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,EAAE;UACjE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;UAChF,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE;;;;kBAI3D,QAAQ,CAAC;YACf,2DAA2D,EAAE,IAAI;YACjE,+BAA+B,EAAE,CAAC,MAAM;SACzC,CAAC;;;;;;mBAMO,IAAI,CAAC,IAAI;kBACV,IAAI,CAAC,EAAE,IAAI,YAAA,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC,0CAAE,SAAS,mCAAI,EAAE;;;;;KAK3E,CAAC;IACJ,CAAC;CACF","sourcesContent":["import { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { EmailFieldElement } from '@vaadin/vaadin-text-field/vaadin-email-field';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { validate as isEmail } from 'email-validator';\n\nconst NS = 'access-recovery-form';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Email-based \"forgot password\" form.\n *\n * @slot email:before\n * @slot email:after\n *\n * @slot message:before\n * @slot message:after\n *\n * @slot submit:before\n * @slot submit:after\n *\n * @element foxy-access-recovery-form\n * @since 1.4.0\n */\nexport class AccessRecoveryForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ detail: d }) => (d?.email && d.email.length > 0) || 'email_required',\n ({ detail: d }) => isEmail(d?.email ?? '') || 'email_invalid_email',\n ];\n }\n\n templates: Templates = {};\n\n private readonly __checkEmailValidity = () => {\n return !this.errors.some(err => err.startsWith('email'));\n };\n\n private readonly __renderEmail = () => {\n const isFailed = this.in('fail');\n const isBusy = this.in('busy');\n const isDone = this.in({ idle: 'snapshot' });\n\n const emailErrors = this.errors.filter(error => error.startsWith('email'));\n const emailErrorKeys = emailErrors.map(error => error.replace('email', 'v8n'));\n const emailErrorMessage = emailErrorKeys[0] ? this.t(emailErrorKeys[0]).toString() : '';\n\n const handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Enter') this.submit();\n };\n\n const handleInput = (evt: InputEvent) => {\n this.edit({\n detail: { email: (evt.target as EmailFieldElement).value },\n type: 'email',\n });\n };\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('email:before')}\n\n <vaadin-email-field\n error-message=${emailErrorMessage}\n data-testid=\"email\"\n class=\"w-full\"\n label=${this.t('email').toString()}\n value=${ifDefined(this.form.detail?.email)}\n ?disabled=${isBusy || isDone || isFailed || this.disabledSelector.matches('email', true)}\n ?readonly=${this.readonlySelector.matches('email', true)}\n .checkValidity=${this.__checkEmailValidity}\n @input=${handleInput}\n @keydown=${handleKeyDown}\n >\n </vaadin-email-field>\n\n ${this.renderTemplateOrSlot('email:after')}\n </div>\n `;\n };\n\n private readonly __renderMessage = () => {\n const isFailed = this.in('fail');\n const color = isFailed ? 'bg-error-10 text-error' : 'bg-success-10 text-success';\n const icon = isFailed ? 'lumo:error' : 'lumo:cog';\n const key = isFailed ? 'unknown_error' : 'recover_access_success';\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('message:before')}\n\n <p class=\"leading-s flex items-start text-s rounded p-s ${color}\">\n <iron-icon class=\"flex-shrink-0 icon-inline text-l mr-s\" icon=${icon}></iron-icon>\n <foxy-i18n lang=${this.lang} key=${key} ns=${this.ns} data-testid=\"message\"></foxy-i18n>\n </p>\n\n ${this.renderTemplateOrSlot('message:after')}\n </div>\n `;\n };\n\n private readonly __renderSubmit = () => {\n const isFailed = this.in('fail');\n const isValid = this.errors.length === 0;\n const isBusy = this.in('busy');\n const isDone = this.in({ idle: 'snapshot' });\n const isDisabledByForm = isBusy || isDone || !isValid || isFailed;\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('submit:before')}\n\n <vaadin-button\n data-testid=\"submit\"\n class=\"w-full\"\n theme=\"primary\"\n ?disabled=${isDisabledByForm || this.disabledSelector.matches('submit', true)}\n @click=${() => this.submit()}\n >\n <foxy-i18n lang=${this.lang} key=\"recover_access\" ns=${this.ns}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('submit:after')}\n </div>\n `;\n };\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n const isDone = this.in({ idle: 'snapshot' }) || this.in('fail');\n const isBusy = this.in('busy');\n\n return html`\n <main\n data-testid=\"wrapper\"\n aria-live=\"polite\"\n aria-busy=${isBusy}\n class=\"relative font-lumo text-m leading-m space-y-m\"\n >\n ${hiddenSelector.matches('email', true) ? '' : this.__renderEmail()}\n ${hiddenSelector.matches('message', true) || !isDone ? '' : this.__renderMessage()}\n ${hiddenSelector.matches('submit', true) ? '' : this.__renderSubmit()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !isBusy,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=\"busy\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </main>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AccessRecoveryForm.js","sourceRoot":"","sources":["../../../../src/elements/public/AccessRecoveryForm/AccessRecoveryForm.ts"],"names":[],"mappings":"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","sourcesContent":["import { Data, Templates } from './types';\nimport { TemplateResult, html } from 'lit-element';\n\nimport { ConfigurableMixin } from '../../../mixins/configurable';\nimport { EmailFieldElement } from '@vaadin/vaadin-text-field/vaadin-email-field';\nimport { NucleonElement } from '../NucleonElement/NucleonElement';\nimport { NucleonV8N } from '../NucleonElement/types';\nimport { ThemeableMixin } from '../../../mixins/themeable';\nimport { TranslatableMixin } from '../../../mixins/translatable';\nimport { classMap } from '../../../utils/class-map';\nimport { ifDefined } from 'lit-html/directives/if-defined';\nimport { validate as isEmail } from 'email-validator';\n\nconst NS = 'access-recovery-form';\nconst Base = ThemeableMixin(ConfigurableMixin(TranslatableMixin(NucleonElement, NS)));\n\n/**\n * Email-based \"forgot password\" form.\n *\n * @slot email:before\n * @slot email:after\n *\n * @slot message:before\n * @slot message:after\n *\n * @slot submit:before\n * @slot submit:after\n *\n * @element foxy-access-recovery-form\n * @since 1.4.0\n */\nexport class AccessRecoveryForm extends Base<Data> {\n static get v8n(): NucleonV8N<Data> {\n return [\n ({ detail: d }) => (d?.email && d.email.length > 0) || 'email_required',\n ({ detail: d }) => isEmail(d?.email ?? '') || 'email_invalid_email',\n ];\n }\n\n templates: Templates = {};\n\n private readonly __checkEmailValidity = () => {\n return !this.errors.some(err => err.startsWith('email'));\n };\n\n private readonly __renderEmail = () => {\n const isFailed = this.in('fail');\n const isBusy = this.in('busy');\n const isDone = this.in({ idle: 'snapshot' });\n\n const emailErrors = this.errors.filter(error => error.startsWith('email'));\n const emailErrorKeys = emailErrors.map(error => error.replace('email', 'v8n'));\n const emailErrorMessage = emailErrorKeys[0] ? this.t(emailErrorKeys[0]).toString() : '';\n\n const handleKeyDown = (evt: KeyboardEvent) => {\n if (evt.key === 'Enter') this.submit();\n };\n\n const handleInput = (evt: InputEvent) => {\n this.edit({\n detail: { email: (evt.target as EmailFieldElement).value },\n type: 'email',\n });\n };\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('email:before')}\n\n <vaadin-email-field\n error-message=${emailErrorMessage}\n data-testid=\"email\"\n class=\"w-full\"\n label=${this.t('email').toString()}\n value=${ifDefined(this.form.detail?.email)}\n ?disabled=${isBusy || isDone || isFailed || this.disabledSelector.matches('email', true)}\n ?readonly=${this.readonlySelector.matches('email', true)}\n .checkValidity=${this.__checkEmailValidity}\n @input=${handleInput}\n @keydown=${handleKeyDown}\n >\n </vaadin-email-field>\n\n ${this.renderTemplateOrSlot('email:after')}\n </div>\n `;\n };\n\n private readonly __renderMessage = () => {\n const isFailed = this.in('fail');\n const color = isFailed ? 'bg-error-10 text-error' : 'bg-success-10 text-success';\n const icon = isFailed ? 'lumo:error' : 'lumo:cog';\n const key = isFailed ? 'unknown_error' : 'recover_access_success';\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('message:before')}\n\n <p class=\"leading-s flex items-start text-s rounded p-s ${color}\">\n <iron-icon class=\"flex-shrink-0 icon-inline text-l mr-s\" icon=${icon}></iron-icon>\n <foxy-i18n lang=${this.lang} key=${key} ns=${this.ns} data-testid=\"message\"></foxy-i18n>\n </p>\n\n ${this.renderTemplateOrSlot('message:after')}\n </div>\n `;\n };\n\n private readonly __renderSubmit = () => {\n const isFailed = this.in('fail');\n const isValid = this.errors.length === 0;\n const isBusy = this.in('busy');\n const isDone = this.in({ idle: 'snapshot' });\n const isDisabledByForm = isBusy || isDone || !isValid || isFailed;\n\n return html`\n <div>\n ${this.renderTemplateOrSlot('submit:before')}\n\n <vaadin-button\n data-testid=\"submit\"\n class=\"w-full\"\n theme=\"primary\"\n ?disabled=${isDisabledByForm || this.disabledSelector.matches('submit', true)}\n @click=${() => this.submit()}\n >\n <foxy-i18n lang=${this.lang} key=\"recover_access\" ns=${this.ns}></foxy-i18n>\n </vaadin-button>\n\n ${this.renderTemplateOrSlot('submit:after')}\n </div>\n `;\n };\n\n render(): TemplateResult {\n const hiddenSelector = this.hiddenSelector;\n const isDone = this.in({ idle: 'snapshot' }) || this.in('fail');\n const isBusy = this.in('busy');\n\n return html`\n <main\n data-testid=\"wrapper\"\n aria-live=\"polite\"\n aria-busy=${isBusy}\n class=\"relative font-lumo text-m leading-m space-y-m\"\n >\n ${hiddenSelector.matches('email', true) ? '' : this.__renderEmail()}\n ${hiddenSelector.matches('message', true) || !isDone ? '' : this.__renderMessage()}\n ${hiddenSelector.matches('submit', true) ? '' : this.__renderSubmit()}\n\n <div\n data-testid=\"spinner\"\n class=${classMap({\n 'transition duration-500 ease-in-out absolute inset-0 flex': true,\n 'opacity-0 pointer-events-none': !isBusy,\n })}\n >\n <foxy-spinner\n layout=\"vertical\"\n class=\"m-auto p-m bg-base shadow-xs rounded-t-l rounded-b-l\"\n state=\"busy\"\n lang=${this.lang}\n ns=\"${this.ns} ${customElements.get('foxy-spinner')?.defaultNS ?? ''}\"\n >\n </foxy-spinner>\n </div>\n </main>\n `;\n }\n\n protected async _sendPost(edits: Partial<Data>): Promise<Data> {\n const body = JSON.stringify(edits);\n const data = await this._fetch(this.parent, { body, method: 'POST' });\n\n const rumour = NucleonElement.Rumour(this.group);\n const related = [...this.related, this.parent];\n rumour.share({ data, related, source: data._links.self.href });\n\n return data;\n }\n}\n"]}
|